Commit a9468f6c5c60d92527a85de8ab544d496c3c7cbd
1 parent
d7612c10
perf: variable image component add default image
Showing
2 changed files
with
143 additions
and
50 deletions
| ... | ... | @@ -5972,46 +5972,20 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
| 5972 | 5972 | * @description |
| 5973 | 5973 | */ |
| 5974 | 5974 | DATA_SOURCE_COMP_EL: 'varImgDataSourceEl', |
| 5975 | - } | |
| 5976 | - | |
| 5977 | - const enumConst = { | |
| 5978 | - | |
| 5979 | - /** | |
| 5980 | - * @description 最小值 | |
| 5981 | - */ | |
| 5982 | - MIN: 'min', | |
| 5983 | - | |
| 5984 | - /** | |
| 5985 | - * @description 最大值 | |
| 5986 | - */ | |
| 5987 | - MAX: 'max', | |
| 5988 | - | |
| 5989 | - /** | |
| 5990 | - * @description 图片字段 key | |
| 5991 | - */ | |
| 5992 | - IMAGE: 'image', | |
| 5993 | 5975 | |
| 5994 | 5976 | /** |
| 5995 | - * @description 颜色 | |
| 5977 | + * @description 默认图片 | |
| 5996 | 5978 | */ |
| 5997 | - COLOR: 'color', | |
| 5979 | + DEFAULT_IMAGE_EL: 'defaultImageEl', | |
| 5998 | 5980 | |
| 5999 | 5981 | /** |
| 6000 | - * @description 图片来源 | |
| 6001 | - */ | |
| 6002 | - IMAGE_ORIGIN: 'imageOrigin', | |
| 6003 | - | |
| 6004 | - /** | |
| 6005 | - * @description 图库图形类别 | |
| 5982 | + * @description 默认图片filter | |
| 6006 | 5983 | */ |
| 6007 | - IMAGE_GALLERY_CATEGORY: 'category', | |
| 6008 | - | |
| 6009 | - /** | |
| 6010 | - * @description 图表图形路径 | |
| 6011 | - */ | |
| 6012 | - IMAGE_GALLERY_IMAGE_PATH: 'imagePath', | |
| 5984 | + DEFAULT_IMAGE_FILTER: 'defaultImageFilter' | |
| 6013 | 5985 | } |
| 6014 | 5986 | |
| 5987 | + const enumConst = HandleDynamicEffect.enumVarImageConst | |
| 5988 | + | |
| 6015 | 5989 | let addRowNumber = 0 |
| 6016 | 5990 | |
| 6017 | 5991 | let getDataSourceValue = () => { |
| ... | ... | @@ -6030,6 +6004,45 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
| 6030 | 6004 | createDelRowEvent() |
| 6031 | 6005 | createSetImgEvent() |
| 6032 | 6006 | createDelPreviewImgEvent() |
| 6007 | + createSelectDefaultImageEvent() | |
| 6008 | + createDelDefaultImageEvent() | |
| 6009 | + } | |
| 6010 | + | |
| 6011 | + /** | |
| 6012 | + * @description 选择默认图片 | |
| 6013 | + */ | |
| 6014 | + function createSelectDefaultImageEvent() { | |
| 6015 | + $(`#${enumActionEl.DEFAULT_IMAGE_EL}`).on('click', `.${enumActionEl.SET_IMG_EL}`, event => { | |
| 6016 | + if ($(event.target).hasClass(enumActionEl.DEL_PREVIEW_IMG)) return | |
| 6017 | + generatorUploadLayerComponent((imageState) => { | |
| 6018 | + $(`#${enumActionEl.DEFAULT_IMAGE_EL}`) | |
| 6019 | + .find('img').attr('src', imageState[enumConst.IMAGE_GALLERY_IMAGE_PATH]) | |
| 6020 | + | |
| 6021 | + form.val(enumActionEl.DEFAULT_IMAGE_FILTER, { | |
| 6022 | + [enumConst.IMAGE_ORIGIN]: imageState[enumConst.IMAGE_ORIGIN], | |
| 6023 | + [enumConst.IMAGE_GALLERY_CATEGORY]: imageState[enumConst.IMAGE_GALLERY_CATEGORY], | |
| 6024 | + [enumConst.IMAGE_GALLERY_IMAGE_PATH]: imageState[enumConst.IMAGE_GALLERY_IMAGE_PATH], | |
| 6025 | + }) | |
| 6026 | + | |
| 6027 | + }) | |
| 6028 | + }) | |
| 6029 | + } | |
| 6030 | + | |
| 6031 | + /** | |
| 6032 | + * @description 删除默认图片 | |
| 6033 | + */ | |
| 6034 | + function createDelDefaultImageEvent() { | |
| 6035 | + $(`#${enumActionEl.DEFAULT_IMAGE_EL}`).on('click', `.${enumActionEl.DEL_PREVIEW_IMG}`, (event) => { | |
| 6036 | + $(event.target) | |
| 6037 | + .parents(`div.${enumActionEl.PREVIEW_IMG_CONTAINER}`).find('img').attr('src', '') | |
| 6038 | + | |
| 6039 | + form.val(enumActionEl.DEFAULT_IMAGE_FILTER, { | |
| 6040 | + [enumConst.IMAGE_ORIGIN]: null, | |
| 6041 | + [enumConst.IMAGE_GALLERY_CATEGORY]: null, | |
| 6042 | + [enumConst.IMAGE_GALLERY_IMAGE_PATH]: null, | |
| 6043 | + }) | |
| 6044 | + | |
| 6045 | + }) | |
| 6033 | 6046 | } |
| 6034 | 6047 | |
| 6035 | 6048 | /** |
| ... | ... | @@ -6143,25 +6156,12 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
| 6143 | 6156 | </div> |
| 6144 | 6157 | </div> |
| 6145 | 6158 | </td> |
| 6146 | -<!-- <td>--> | |
| 6147 | -<!-- <div style="display: flex">--> | |
| 6148 | -<!-- <input class="layui-input" style="border-width: 1px; border-right: none;" autocomplete="off" ype="number" name="${enumConst.COLOR}" lay-filter="${enumConst.COLOR}" lay-verType="tips" lay-verify="required" />--> | |
| 6149 | -<!-- <div id="${getColorPickerFilter(addRowNumber)}"></div>--> | |
| 6150 | -<!-- </div>--> | |
| 6151 | -<!-- </td>--> | |
| 6152 | 6159 | <td style="text-align: center"> |
| 6153 | 6160 | <button type="button" class="layui-btn layui-btn-primary layui-border-red ${enumActionEl.DEL_ROW_EL}">删除</button> |
| 6154 | 6161 | </td> |
| 6155 | 6162 | </tr> |
| 6156 | 6163 | ` |
| 6157 | 6164 | $(`#${enumActionEl.TABLE_BODY_EL}`).append(content) |
| 6158 | - // colorpicker.render({ | |
| 6159 | - // elem: $(`#${getColorPickerFilter(addRowNumber)}`), | |
| 6160 | - // done(color) { | |
| 6161 | - // $(`#${enumActionEl.TABLE_BODY_EL} tr[lay-filter="${rowFormFilter}"]`).find(`input[lay-filter="${enumConst.COLOR}"]`).val(color) | |
| 6162 | - // }, | |
| 6163 | - // predefine: true, | |
| 6164 | - // }); | |
| 6165 | 6165 | form.render() |
| 6166 | 6166 | addRowNumber++ |
| 6167 | 6167 | } |
| ... | ... | @@ -6172,12 +6172,23 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
| 6172 | 6172 | */ |
| 6173 | 6173 | function echoFormData(info) { |
| 6174 | 6174 | const { condition = [] } = info |
| 6175 | - condition.forEach((item, index) => { | |
| 6175 | + for (let index = 0; index < condition.length; index++) { | |
| 6176 | + const item = condition[index] | |
| 6177 | + if (item[enumConst.DEFAULT_IMAGE_FLAG]) continue | |
| 6176 | 6178 | addRecord() |
| 6177 | 6179 | const rowFilter = getRowFilter(index) |
| 6178 | 6180 | $(`#${enumActionEl.TABLE_BODY_EL}`).find(`tr[lay-filter="${rowFilter}"] .${enumActionEl.PREVIEW_IMG_CONTAINER}>img`).attr('src', item[enumConst.IMAGE_GALLERY_IMAGE_PATH]) |
| 6179 | 6181 | form.val(rowFilter, { ...item }) |
| 6180 | - }) | |
| 6182 | + } | |
| 6183 | + } | |
| 6184 | + | |
| 6185 | + function echoDefaultImage(info) { | |
| 6186 | + const { condition } = info | |
| 6187 | + const data = condition.find(item => item[enumConst.DEFAULT_IMAGE_FLAG]) | |
| 6188 | + if (data) { | |
| 6189 | + $(`#${enumActionEl.DEFAULT_IMAGE_EL}`).find(`.${enumActionEl.PREVIEW_IMG_CONTAINER}>img`).attr('src', data[enumConst.IMAGE_GALLERY_IMAGE_PATH]) | |
| 6190 | + form.val(enumActionEl.DEFAULT_IMAGE_FILTER, { ...data }) | |
| 6191 | + } | |
| 6181 | 6192 | } |
| 6182 | 6193 | |
| 6183 | 6194 | /** |
| ... | ... | @@ -6207,6 +6218,9 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
| 6207 | 6218 | */ |
| 6208 | 6219 | async function submit(callback) { |
| 6209 | 6220 | const data = Array.from({ length: addRowNumber }).map((_, row) => form.val(getRowFilter(row))).filter(item => Object.keys(item).length) |
| 6221 | + const defaultImageConfig = form.val(enumActionEl.DEFAULT_IMAGE_FILTER) | |
| 6222 | + defaultImageConfig[enumConst.DEFAULT_IMAGE_FLAG] = true | |
| 6223 | + data.push(defaultImageConfig) | |
| 6210 | 6224 | if (!validate(data)) return |
| 6211 | 6225 | const formVal = getDataSourceValue() |
| 6212 | 6226 | const formModel = { |
| ... | ... | @@ -6226,7 +6240,20 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
| 6226 | 6240 | |
| 6227 | 6241 | function createLayerForm(type) { |
| 6228 | 6242 | const content = ` |
| 6229 | - <div style="width: 300px; padding: 20px 0 0 20px;" id="${enumActionEl.DATA_SOURCE_COMP_EL}"></div> | |
| 6243 | + <div id="${enumActionEl.DEFAULT_IMAGE_EL}" class="layui-form" lay-filter="${enumActionEl.DEFAULT_IMAGE_FILTER}"> | |
| 6244 | + <div style="width: 60px; padding-left: 10px;">默认图片</div> | |
| 6245 | + <div class="${enumActionEl.SET_IMG_EL}"> | |
| 6246 | + <input name="${enumConst.IMAGE_GALLERY_CATEGORY}" type="text" style="display: none"> | |
| 6247 | + <input name="${enumConst.IMAGE_GALLERY_IMAGE_PATH}" type="text" style="display: none"> | |
| 6248 | + <input name="${enumConst.IMAGE_ORIGIN}" type="text" style="display: none"> | |
| 6249 | + <div class="${enumActionEl.PREVIEW_IMG_CONTAINER}"> | |
| 6250 | + <img src="" alt=""> | |
| 6251 | + <div class="${enumActionEl.DEL_PREVIEW_IMG}">x</div> | |
| 6252 | + <div class="add__button">+</div> | |
| 6253 | + </div> | |
| 6254 | + </div> | |
| 6255 | + </div> | |
| 6256 | + <div style="width: 300px; padding: 0 0 0 20px;" id="${enumActionEl.DATA_SOURCE_COMP_EL}"></div> | |
| 6230 | 6257 | <div class="override__table" style="padding: 0 20px"> |
| 6231 | 6258 | <table class="layui-table" > |
| 6232 | 6259 | <thead> |
| ... | ... | @@ -6234,7 +6261,6 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
| 6234 | 6261 | <th style="text-align:center">最小值(>=)</th> |
| 6235 | 6262 | <th style="text-align:center">最大值(<=)</th> |
| 6236 | 6263 | <th style="text-align:center">对应图片</th> |
| 6237 | -<!-- <th style="text-align:center">对应的颜色</th>--> | |
| 6238 | 6264 | <th style="text-align:center">操作</th> |
| 6239 | 6265 | </tr> |
| 6240 | 6266 | </thead> |
| ... | ... | @@ -6282,6 +6308,7 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
| 6282 | 6308 | } else { |
| 6283 | 6309 | echoDataSource(info) |
| 6284 | 6310 | echoFormData(info) |
| 6311 | + echoDefaultImage(info) | |
| 6285 | 6312 | } |
| 6286 | 6313 | generatorEventListen() |
| 6287 | 6314 | }, |
| ... | ... | @@ -13465,6 +13492,49 @@ class HandleDynamicEffect { |
| 13465 | 13492 | VIDEO_FLAG: 'videoComponentFlag' |
| 13466 | 13493 | } |
| 13467 | 13494 | |
| 13495 | + static enumVarImageConst = { | |
| 13496 | + | |
| 13497 | + /** | |
| 13498 | + * @description 最小值 | |
| 13499 | + */ | |
| 13500 | + MIN: 'min', | |
| 13501 | + | |
| 13502 | + /** | |
| 13503 | + * @description 最大值 | |
| 13504 | + */ | |
| 13505 | + MAX: 'max', | |
| 13506 | + | |
| 13507 | + /** | |
| 13508 | + * @description 图片字段 key | |
| 13509 | + */ | |
| 13510 | + IMAGE: 'image', | |
| 13511 | + | |
| 13512 | + /** | |
| 13513 | + * @description 颜色 | |
| 13514 | + */ | |
| 13515 | + COLOR: 'color', | |
| 13516 | + | |
| 13517 | + /** | |
| 13518 | + * @description 图片来源 | |
| 13519 | + */ | |
| 13520 | + IMAGE_ORIGIN: 'imageOrigin', | |
| 13521 | + | |
| 13522 | + /** | |
| 13523 | + * @description 图库图形类别 | |
| 13524 | + */ | |
| 13525 | + IMAGE_GALLERY_CATEGORY: 'category', | |
| 13526 | + | |
| 13527 | + /** | |
| 13528 | + * @description 图表图形路径 | |
| 13529 | + */ | |
| 13530 | + IMAGE_GALLERY_IMAGE_PATH: 'imagePath', | |
| 13531 | + | |
| 13532 | + /** | |
| 13533 | + * @description 默认图片 flag | |
| 13534 | + */ | |
| 13535 | + DEFAULT_IMAGE_FLAG: 'defaultImageFlag' | |
| 13536 | + } | |
| 13537 | + | |
| 13468 | 13538 | static enumVideoAccessMode = { |
| 13469 | 13539 | MANUAL_ENTER: 0, |
| 13470 | 13540 | STREAMING: 1 |
| ... | ... | @@ -13717,6 +13787,19 @@ class HandleDynamicEffect { |
| 13717 | 13787 | () => { |
| 13718 | 13788 | node.setStyle(`image;image=${imagePath};imageAspect=0;`) |
| 13719 | 13789 | }) |
| 13790 | + } else if (!flag && node) { | |
| 13791 | + const { condition = [], attr } = this.getBindData(subscriptionId, HandleDynamicEffect.enumActType.IMAGE) | |
| 13792 | + const flag = HandleDynamicEffect.enumVarImageConst.DEFAULT_IMAGE_FLAG | |
| 13793 | + const defaultBindData = condition.find(item => item[flag]) | |
| 13794 | + if (defaultBindData) { | |
| 13795 | + const { imagePath } = defaultBindData | |
| 13796 | + if (!imagePath) return | |
| 13797 | + this.insertOnceUpdateFn( | |
| 13798 | + node, | |
| 13799 | + () => { | |
| 13800 | + node.setStyle(`image;image=${imagePath};imageAspect=0;`) | |
| 13801 | + }) | |
| 13802 | + } | |
| 13720 | 13803 | } |
| 13721 | 13804 | } |
| 13722 | 13805 | ... | ... |
| ... | ... | @@ -440,7 +440,17 @@ |
| 440 | 440 | opacity: 0; |
| 441 | 441 | } |
| 442 | 442 | |
| 443 | -/* ===== 数据动效 */ | |
| 443 | +#defaultImageEl { | |
| 444 | + display: flex; | |
| 445 | + align-items: center; | |
| 446 | + padding: 20px 0 0 20px; | |
| 447 | +} | |
| 448 | + | |
| 449 | +#defaultImageEl { | |
| 450 | + | |
| 451 | +} | |
| 452 | + | |
| 453 | +/* ===== 数据动效 ========= */ | |
| 444 | 454 | .dynamic-effect__data-source-comp--override { |
| 445 | 455 | padding: 0; |
| 446 | 456 | } | ... | ... |