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 | } |