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,46 +5972,20 @@ DataFormatPanel.prototype.addDataFont = function (container) { | ||
5972 | * @description | 5972 | * @description |
5973 | */ | 5973 | */ |
5974 | DATA_SOURCE_COMP_EL: 'varImgDataSourceEl', | 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 | let addRowNumber = 0 | 5989 | let addRowNumber = 0 |
6016 | 5990 | ||
6017 | let getDataSourceValue = () => { | 5991 | let getDataSourceValue = () => { |
@@ -6030,6 +6004,45 @@ DataFormatPanel.prototype.addDataFont = function (container) { | @@ -6030,6 +6004,45 @@ DataFormatPanel.prototype.addDataFont = function (container) { | ||
6030 | createDelRowEvent() | 6004 | createDelRowEvent() |
6031 | createSetImgEvent() | 6005 | createSetImgEvent() |
6032 | createDelPreviewImgEvent() | 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,25 +6156,12 @@ DataFormatPanel.prototype.addDataFont = function (container) { | ||
6143 | </div> | 6156 | </div> |
6144 | </div> | 6157 | </div> |
6145 | </td> | 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 | <td style="text-align: center"> | 6159 | <td style="text-align: center"> |
6153 | <button type="button" class="layui-btn layui-btn-primary layui-border-red ${enumActionEl.DEL_ROW_EL}">删除</button> | 6160 | <button type="button" class="layui-btn layui-btn-primary layui-border-red ${enumActionEl.DEL_ROW_EL}">删除</button> |
6154 | </td> | 6161 | </td> |
6155 | </tr> | 6162 | </tr> |
6156 | ` | 6163 | ` |
6157 | $(`#${enumActionEl.TABLE_BODY_EL}`).append(content) | 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 | form.render() | 6165 | form.render() |
6166 | addRowNumber++ | 6166 | addRowNumber++ |
6167 | } | 6167 | } |
@@ -6172,12 +6172,23 @@ DataFormatPanel.prototype.addDataFont = function (container) { | @@ -6172,12 +6172,23 @@ DataFormatPanel.prototype.addDataFont = function (container) { | ||
6172 | */ | 6172 | */ |
6173 | function echoFormData(info) { | 6173 | function echoFormData(info) { |
6174 | const { condition = [] } = info | 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 | addRecord() | 6178 | addRecord() |
6177 | const rowFilter = getRowFilter(index) | 6179 | const rowFilter = getRowFilter(index) |
6178 | $(`#${enumActionEl.TABLE_BODY_EL}`).find(`tr[lay-filter="${rowFilter}"] .${enumActionEl.PREVIEW_IMG_CONTAINER}>img`).attr('src', item[enumConst.IMAGE_GALLERY_IMAGE_PATH]) | 6180 | $(`#${enumActionEl.TABLE_BODY_EL}`).find(`tr[lay-filter="${rowFilter}"] .${enumActionEl.PREVIEW_IMG_CONTAINER}>img`).attr('src', item[enumConst.IMAGE_GALLERY_IMAGE_PATH]) |
6179 | form.val(rowFilter, { ...item }) | 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,6 +6218,9 @@ DataFormatPanel.prototype.addDataFont = function (container) { | ||
6207 | */ | 6218 | */ |
6208 | async function submit(callback) { | 6219 | async function submit(callback) { |
6209 | const data = Array.from({ length: addRowNumber }).map((_, row) => form.val(getRowFilter(row))).filter(item => Object.keys(item).length) | 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 | if (!validate(data)) return | 6224 | if (!validate(data)) return |
6211 | const formVal = getDataSourceValue() | 6225 | const formVal = getDataSourceValue() |
6212 | const formModel = { | 6226 | const formModel = { |
@@ -6226,7 +6240,20 @@ DataFormatPanel.prototype.addDataFont = function (container) { | @@ -6226,7 +6240,20 @@ DataFormatPanel.prototype.addDataFont = function (container) { | ||
6226 | 6240 | ||
6227 | function createLayerForm(type) { | 6241 | function createLayerForm(type) { |
6228 | const content = ` | 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 | <div class="override__table" style="padding: 0 20px"> | 6257 | <div class="override__table" style="padding: 0 20px"> |
6231 | <table class="layui-table" > | 6258 | <table class="layui-table" > |
6232 | <thead> | 6259 | <thead> |
@@ -6234,7 +6261,6 @@ DataFormatPanel.prototype.addDataFont = function (container) { | @@ -6234,7 +6261,6 @@ DataFormatPanel.prototype.addDataFont = function (container) { | ||
6234 | <th style="text-align:center">最小值(>=)</th> | 6261 | <th style="text-align:center">最小值(>=)</th> |
6235 | <th style="text-align:center">最大值(<=)</th> | 6262 | <th style="text-align:center">最大值(<=)</th> |
6236 | <th style="text-align:center">对应图片</th> | 6263 | <th style="text-align:center">对应图片</th> |
6237 | -<!-- <th style="text-align:center">对应的颜色</th>--> | ||
6238 | <th style="text-align:center">操作</th> | 6264 | <th style="text-align:center">操作</th> |
6239 | </tr> | 6265 | </tr> |
6240 | </thead> | 6266 | </thead> |
@@ -6282,6 +6308,7 @@ DataFormatPanel.prototype.addDataFont = function (container) { | @@ -6282,6 +6308,7 @@ DataFormatPanel.prototype.addDataFont = function (container) { | ||
6282 | } else { | 6308 | } else { |
6283 | echoDataSource(info) | 6309 | echoDataSource(info) |
6284 | echoFormData(info) | 6310 | echoFormData(info) |
6311 | + echoDefaultImage(info) | ||
6285 | } | 6312 | } |
6286 | generatorEventListen() | 6313 | generatorEventListen() |
6287 | }, | 6314 | }, |
@@ -13465,6 +13492,49 @@ class HandleDynamicEffect { | @@ -13465,6 +13492,49 @@ class HandleDynamicEffect { | ||
13465 | VIDEO_FLAG: 'videoComponentFlag' | 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 | static enumVideoAccessMode = { | 13538 | static enumVideoAccessMode = { |
13469 | MANUAL_ENTER: 0, | 13539 | MANUAL_ENTER: 0, |
13470 | STREAMING: 1 | 13540 | STREAMING: 1 |
@@ -13717,6 +13787,19 @@ class HandleDynamicEffect { | @@ -13717,6 +13787,19 @@ class HandleDynamicEffect { | ||
13717 | () => { | 13787 | () => { |
13718 | node.setStyle(`image;image=${imagePath};imageAspect=0;`) | 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,7 +440,17 @@ | ||
440 | opacity: 0; | 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 | .dynamic-effect__data-source-comp--override { | 454 | .dynamic-effect__data-source-comp--override { |
445 | padding: 0; | 455 | padding: 0; |
446 | } | 456 | } |