Commit 1e7a7fa9634d8d058a5ef702edf2e76e8fb30c4f
1 parent
be102f67
feat: basic complete switch component data bind
Showing
4 changed files
with
217 additions
and
61 deletions
| ... | ... | @@ -130,14 +130,12 @@ const createStorage = ( |
| 130 | 130 | * @memberof Cache |
| 131 | 131 | */ |
| 132 | 132 | get(key, def = null) { |
| 133 | - console.log(this.getKey(key)) | |
| 134 | 133 | const val = this.storage.getItem(this.getKey(key)); |
| 135 | 134 | if (!val) return def; |
| 136 | 135 | |
| 137 | 136 | try { |
| 138 | 137 | const decVal = this.hasEncrypt ? this.encryption.decryptByAES(val) : val; |
| 139 | 138 | const data = JSON.parse(decVal); |
| 140 | - console.log(data) | |
| 141 | 139 | const { value, expire } = data; |
| 142 | 140 | // if (isNullOrUnDef(expire) || expire >= new Date().getTime()) { |
| 143 | 141 | // return value; | ... | ... |
| ... | ... | @@ -313,7 +313,9 @@ |
| 313 | 313 | /** |
| 314 | 314 | * @descrpiton 开关 状态设置 |
| 315 | 315 | */ |
| 316 | - SWITCH_STATE_SETTING: 'stateSetting' | |
| 316 | + SWITCH_STATE_SETTING: 'stateSetting', | |
| 317 | + | |
| 318 | + | |
| 317 | 319 | } |
| 318 | 320 | |
| 319 | 321 | /** |
| ... | ... | @@ -679,9 +681,9 @@ |
| 679 | 681 | this.setComponentPermission(VAR_IMAGE, [INTERACTION, VAR_IMAGE]) |
| 680 | 682 | this.setComponentPermission(VARIABLE, [DATA_SOURCE, INTERACTION, DYNAMIC_EFFECT]) |
| 681 | 683 | this.setComponentPermission(BAR_CHART, [DATA_SOURCE, BAR_CHART_EXPAND]) |
| 682 | - this.setComponentPermission(LINE_CHART, [DATA_SOURCE, LINE_CHART_EXPAND]) | |
| 684 | + this.setComponentPermission(LINE_CHART, [DATA_SOURCE, LINE_CHART_EXPAND]) | |
| 683 | 685 | this.setComponentPermission(VIDEO, [VIDEO_PANEL]) |
| 684 | - this.setComponentPermission(SWITCH, [SWITCH_STATE_SETTING]) | |
| 686 | + this.setComponentPermission(SWITCH, [DATA_SOURCE, SWITCH_STATE_SETTING]) | |
| 685 | 687 | |
| 686 | 688 | var thingskitEntries = [ |
| 687 | 689 | { title: mxResources.get('general'), id: 'general', image: IMAGE_PATH + '/sidebar-general.png' }, | ... | ... |
| ... | ... | @@ -4964,6 +4964,17 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
| 4964 | 4964 | let currentNodeData = null |
| 4965 | 4965 | |
| 4966 | 4966 | /** |
| 4967 | + * @description 覆盖当前节点数据 | |
| 4968 | + * @param {'act' | 'dataSources' | 'event'} key | |
| 4969 | + * @param {string} | |
| 4970 | + */ | |
| 4971 | + function overrideCurrentData(key, uuid = 'id', value = {}) { | |
| 4972 | + if (!currentNodeData[key]) currentNodeData[key] = [] | |
| 4973 | + const index = currentNodeData[key].findIndex(item => item[uuid] === value[uuid]) | |
| 4974 | + ~index ? currentNodeData[key][index] = value : currentNodeData[key].push(value) | |
| 4975 | + } | |
| 4976 | + | |
| 4977 | + /** | |
| 4967 | 4978 | * @description 保存页面信息 |
| 4968 | 4979 | */ |
| 4969 | 4980 | async function autoSaveGraphInfo() { |
| ... | ... | @@ -5066,6 +5077,7 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
| 5066 | 5077 | |
| 5067 | 5078 | /** |
| 5068 | 5079 | * @description 用于在其他位置获取数据源绑定的数据,在生成数据源面板中进行了改写 |
| 5080 | + * @return {{orgId: string, attr: string, deviceId: string, slaveDeviceId: string}} | |
| 5069 | 5081 | */ |
| 5070 | 5082 | function getDataSourceBindValue() { |
| 5071 | 5083 | |
| ... | ... | @@ -5165,19 +5177,13 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
| 5165 | 5177 | const event = currentNodeData.event ?? [] |
| 5166 | 5178 | const actionType = {} |
| 5167 | 5179 | for (const item of act) { |
| 5168 | - if (!item.condition || !item.condition?.length) { | |
| 5169 | - $(`.interaction__container input[name="${item.type}"]`).attr('disabled', true) | |
| 5170 | - } else { | |
| 5171 | - $(`.interaction__container input[name="${item.type}"]`).attr('disabled', false) | |
| 5172 | - } | |
| 5180 | + const flag = !item.condition || !item.condition?.length | |
| 5181 | + $(`.interaction__container input[name="${item.type}"]`).attr('disabled', flag) | |
| 5173 | 5182 | actionType[item.type] = item.enabled |
| 5174 | 5183 | } |
| 5175 | 5184 | for (const item of event) { |
| 5176 | - if (!item.content) { | |
| 5177 | - $(`.interaction__container input[name="${item.type}"]`).attr('disabled', true) | |
| 5178 | - } else { | |
| 5179 | - $(`.interaction__container input[name="${item.type}"]`).attr('disabled', false) | |
| 5180 | - } | |
| 5185 | + const flag = !item.content | |
| 5186 | + $(`.interaction__container input[name="${item.type}"]`).attr('disabled', flag) | |
| 5181 | 5187 | actionType[item.type] = item.enabled |
| 5182 | 5188 | } |
| 5183 | 5189 | form.val(CONTAINER_FILTER, actionType) |
| ... | ... | @@ -5219,7 +5225,7 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
| 5219 | 5225 | |
| 5220 | 5226 | |
| 5221 | 5227 | async function mount() { |
| 5222 | - const { component, echoDataSource, getValue } = generatorDataSourceComponent({ validate: false }) | |
| 5228 | + const { component, echoDataSource, getValue } = generateDataSourceComponent({ validate: false }) | |
| 5223 | 5229 | $(fragment).append(title).append(component) |
| 5224 | 5230 | $(container).append(fragment) |
| 5225 | 5231 | |
| ... | ... | @@ -5382,7 +5388,11 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
| 5382 | 5388 | type: enumDynamicEffectType.SWITCH, |
| 5383 | 5389 | category: enumCategory.ACT, |
| 5384 | 5390 | }) |
| 5391 | + const singleClick = interactionList.find(item => item.type === enumInteractionType.SINGLE) | |
| 5392 | + interactionList.length = 0 | |
| 5393 | + interactionList.push(singleClick) | |
| 5385 | 5394 | createDynamicEffectPanel() |
| 5395 | + createInteractionPanel() | |
| 5386 | 5396 | } |
| 5387 | 5397 | |
| 5388 | 5398 | /** |
| ... | ... | @@ -5833,30 +5843,30 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
| 5833 | 5843 | |
| 5834 | 5844 | function getValueOnSubmit(field) { |
| 5835 | 5845 | const basicAttr = sidebarInstance.enumCellBasicAttribute |
| 5836 | - const permissionKey = sidebarInstance.enumComponentType | |
| 5837 | - | |
| 5846 | + const componentType = sidebarInstance.enumComponentType | |
| 5838 | 5847 | |
| 5839 | 5848 | const renderMapping = { |
| 5840 | - [permissionKey.VAR_IMAGE]: getSubmitValue, | |
| 5841 | - [permissionKey.CHARTS]: getSubmitValue, | |
| 5842 | - [permissionKey.TITLE]: getSubmitValue, | |
| 5843 | - [permissionKey.VARIABLE]: getSubmitValue, | |
| 5844 | - [permissionKey.LINE]: getSubmitValue, | |
| 5845 | - [permissionKey.REAL_TIME]: getSubmitValue, | |
| 5846 | - [permissionKey.LINE_CHART]: getSubmitValue, | |
| 5847 | - [permissionKey.BAR_CHART]: getSubmitValue, | |
| 5848 | - [permissionKey.DEFAULT]: getSubmitValue, | |
| 5849 | - [permissionKey.VIDEO]: getVideoSubmitValue, | |
| 5849 | + [componentType.VAR_IMAGE]: getSubmitValue, | |
| 5850 | + [componentType.CHARTS]: getSubmitValue, | |
| 5851 | + [componentType.TITLE]: getSubmitValue, | |
| 5852 | + [componentType.VARIABLE]: getSubmitValue, | |
| 5853 | + [componentType.LINE]: getSubmitValue, | |
| 5854 | + [componentType.REAL_TIME]: getSubmitValue, | |
| 5855 | + [componentType.LINE_CHART]: getSubmitValue, | |
| 5856 | + [componentType.BAR_CHART]: getSubmitValue, | |
| 5857 | + [componentType.DEFAULT]: getSubmitValue, | |
| 5858 | + [componentType.VIDEO]: getVideoSubmitValue, | |
| 5859 | + [componentType.SWITCH]: getSwitchSubmitValue | |
| 5850 | 5860 | } |
| 5851 | 5861 | |
| 5852 | 5862 | const cell = vertices[0] |
| 5853 | - const permission = graph.getAttributeForCell(cell, basicAttr.COMPONENT_TYPE) | |
| 5863 | + const type = graph.getAttributeForCell(cell, basicAttr.COMPONENT_TYPE) | |
| 5864 | + return renderMapping[type]?.(field) || {} | |
| 5854 | 5865 | |
| 5855 | - return renderMapping[permission]?.() || {} | |
| 5856 | - | |
| 5857 | - function getSubmitValue() { | |
| 5866 | + function getSubmitValue(field) { | |
| 5858 | 5867 | const ENABLED_FLAG = 'on' |
| 5859 | 5868 | const additionalKey = HandleDataSource.enumConst |
| 5869 | + | |
| 5860 | 5870 | const value = { |
| 5861 | 5871 | configurationId, |
| 5862 | 5872 | contentId: currentPageId.id, |
| ... | ... | @@ -5910,6 +5920,43 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
| 5910 | 5920 | } |
| 5911 | 5921 | return value |
| 5912 | 5922 | } |
| 5923 | + | |
| 5924 | + /** | |
| 5925 | + * @description 处理开关组件的保存值 | |
| 5926 | + * @returns | |
| 5927 | + */ | |
| 5928 | + function getSwitchSubmitValue(field) { | |
| 5929 | + const dataSources = getDataSourceBindValue() | |
| 5930 | + const enableStatus = getEnableStatus(field) | |
| 5931 | + return { configurationId, contentId: currentPageId.id, nodeId: graphId, dataSources, ...enableStatus } | |
| 5932 | + } | |
| 5933 | + | |
| 5934 | + | |
| 5935 | + /** | |
| 5936 | + * @description 获取开启状态 | |
| 5937 | + */ | |
| 5938 | + function getEnableStatus(field = {}) { | |
| 5939 | + const ENABLED_FLAG = 'on' | |
| 5940 | + const value = {} | |
| 5941 | + const hasExistEl = $(`.layui-form[lay-filter="${CONTAINER_FILTER}"]`).find('input[type="checkbox"]') | |
| 5942 | + | |
| 5943 | + // 筛选页面中存在的数据动效事件交互复选框 | |
| 5944 | + const allState = [] | |
| 5945 | + $(hasExistEl).each((i) => { | |
| 5946 | + const state = $(hasExistEl[i]).attr('name') | |
| 5947 | + allState.push(state) | |
| 5948 | + }) | |
| 5949 | + const allType = [...interactionList, ...dynamicEffectList].filter(item => allState.includes(item.type)) | |
| 5950 | + | |
| 5951 | + for (const item of allType) { | |
| 5952 | + !value[item.category] && (value[item.category] = []) | |
| 5953 | + value[item.category].push({ | |
| 5954 | + type: item.type, | |
| 5955 | + enabled: field[item.type] === ENABLED_FLAG, | |
| 5956 | + }) | |
| 5957 | + } | |
| 5958 | + return value | |
| 5959 | + } | |
| 5913 | 5960 | } |
| 5914 | 5961 | |
| 5915 | 5962 | /** |
| ... | ... | @@ -6024,7 +6071,7 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
| 6024 | 6071 | function createSelectDefaultImageEvent() { |
| 6025 | 6072 | $(`#${enumActionEl.DEFAULT_IMAGE_EL}`).on('click', `.${enumActionEl.SET_IMG_EL}`, event => { |
| 6026 | 6073 | if ($(event.target).hasClass(enumActionEl.DEL_PREVIEW_IMG)) return |
| 6027 | - generatorUploadLayerComponent((imageState) => { | |
| 6074 | + generateUploadLayerComponent((imageState) => { | |
| 6028 | 6075 | $(`#${enumActionEl.DEFAULT_IMAGE_EL}`) |
| 6029 | 6076 | .find('img').attr('src', imageState[enumConst.IMAGE_GALLERY_IMAGE_PATH]) |
| 6030 | 6077 | |
| ... | ... | @@ -6097,7 +6144,7 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
| 6097 | 6144 | if ($(event.target).hasClass(enumActionEl.DEL_PREVIEW_IMG)) return |
| 6098 | 6145 | const rowFilter = $(event.target).parents('tr').attr('lay-filter') |
| 6099 | 6146 | // createUploadImgLayer(rowFilter) |
| 6100 | - generatorUploadLayerComponent((imageState) => { | |
| 6147 | + generateUploadLayerComponent((imageState) => { | |
| 6101 | 6148 | |
| 6102 | 6149 | $(`#${enumActionEl.TABLE_BODY_EL}`) |
| 6103 | 6150 | .find(`tr[lay-filter="${rowFilter}"]`) |
| ... | ... | @@ -6307,7 +6354,7 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
| 6307 | 6354 | 'lay-submit': '', |
| 6308 | 6355 | 'lay-filter': enumActionEl.LAYER_SUBMIT_FILTER, |
| 6309 | 6356 | }) |
| 6310 | - const { component, echoDataSource, getValue } = generatorDataSourceComponent() | |
| 6357 | + const { component, echoDataSource, getValue } = generateDataSourceComponent() | |
| 6311 | 6358 | getDataSourceValue = getValue |
| 6312 | 6359 | $(`#${enumActionEl.DATA_SOURCE_COMP_EL}`).append(component) |
| 6313 | 6360 | form.render() |
| ... | ... | @@ -6797,6 +6844,10 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
| 6797 | 6844 | * @description 处理单击 or 双击事件 |
| 6798 | 6845 | */ |
| 6799 | 6846 | function handleClickOrDbClick(event) { |
| 6847 | + const basicAttr = sidebarInstance.enumCellBasicAttribute | |
| 6848 | + const componentType = sidebarInstance.enumComponentType | |
| 6849 | + const currentNodeType = nodeInfo.getAttribute(basicAttr.COMPONENT_TYPE) | |
| 6850 | + const isControlComponent = [componentType.SWITCH].includes(currentNodeType) | |
| 6800 | 6851 | |
| 6801 | 6852 | const enumEventType = { |
| 6802 | 6853 | DOWN: "按下", |
| ... | ... | @@ -6822,6 +6873,7 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
| 6822 | 6873 | PAGE: 'PAGE', |
| 6823 | 6874 | LINK: 'LINK', |
| 6824 | 6875 | PROPS: 'PROPS', |
| 6876 | + PARAMS_SETTING: 'PARAMS_SETTING' | |
| 6825 | 6877 | } |
| 6826 | 6878 | |
| 6827 | 6879 | const enumGetValue = { |
| ... | ... | @@ -6875,6 +6927,9 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
| 6875 | 6927 | if (content.type === enumActionType.PAGE) { |
| 6876 | 6928 | $(`#${enumActionEl.PAGE_EL_ID}`).css({ display: 'block' }) |
| 6877 | 6929 | $(`#${enumActionEl.LINK_EL_ID}`).css({ display: 'none' }) |
| 6930 | + } else if (content.type === enumActionType.PARAMS_SETTING) { | |
| 6931 | + $(`#${enumActionEl.PAGE_EL_ID}`).css({ display: 'none' }) | |
| 6932 | + $(`#${enumActionEl.LINK_EL_ID}`).css({ display: 'none' }) | |
| 6878 | 6933 | } |
| 6879 | 6934 | form.val(enumActionEl.FORM_FILTER, val) |
| 6880 | 6935 | } |
| ... | ... | @@ -6897,8 +6952,9 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
| 6897 | 6952 | }, |
| 6898 | 6953 | } |
| 6899 | 6954 | await to(autoSaveGraphInfo()) |
| 6900 | - const [err] = await to(ConfigurationNodeApi.updateNodeEvent(data)) | |
| 6955 | + const [err, res] = await to(ConfigurationNodeApi.updateNodeEvent(data)) | |
| 6901 | 6956 | if (err) return |
| 6957 | + isControlComponent && overrideCurrentData('event', 'type', res) | |
| 6902 | 6958 | UseLayUi.successMsg() |
| 6903 | 6959 | callback() |
| 6904 | 6960 | } |
| ... | ... | @@ -6910,6 +6966,7 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
| 6910 | 6966 | const options = [ |
| 6911 | 6967 | { name: '打开链接', id: enumActionType.LINK }, |
| 6912 | 6968 | { name: '打开页面', id: enumActionType.PAGE }, |
| 6969 | + ...(isControlComponent ? [{ name: '参数设置', id: enumActionType.PARAMS_SETTING }] : []), | |
| 6913 | 6970 | { name: '给变量赋值', id: enumActionType.PROPS, disabled: true }, |
| 6914 | 6971 | ] |
| 6915 | 6972 | return UseLayUi.generateOptionTemplate({ dataSource: options, addPlaceholderOption: false }) |
| ... | ... | @@ -6932,6 +6989,9 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
| 6932 | 6989 | } else if (value === enumActionType.LINK) { |
| 6933 | 6990 | $(`#${enumActionEl.PAGE_EL_ID}`).css({ display: 'none' }) |
| 6934 | 6991 | $(`#${enumActionEl.LINK_EL_ID}`).css({ display: 'block' }) |
| 6992 | + } else if (value === enumActionType.PARAMS_SETTING) { | |
| 6993 | + $(`#${enumActionEl.LINK_EL_ID}`).css({ display: 'none' }) | |
| 6994 | + $(`#${enumActionEl.PAGE_EL_ID}`).css({ display: 'none' }) | |
| 6935 | 6995 | } |
| 6936 | 6996 | }) |
| 6937 | 6997 | } |
| ... | ... | @@ -6985,7 +7045,7 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
| 6985 | 7045 | form.on(`submit(${enumActionEl.LAYER_SUBMIT_FILTER})`, data => { |
| 6986 | 7046 | submit(() => { |
| 6987 | 7047 | layer.close(index) |
| 6988 | - getNodeBindInfo() | |
| 7048 | + !isControlComponent && getNodeBindInfo() | |
| 6989 | 7049 | }) |
| 6990 | 7050 | }) |
| 6991 | 7051 | }, |
| ... | ... | @@ -7286,7 +7346,7 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
| 7286 | 7346 | const { |
| 7287 | 7347 | component, |
| 7288 | 7348 | echoDataSource, |
| 7289 | - } = generatorDataSourceComponent({ overrideClass: 'dynamic-effect__data-source-comp--override' }) | |
| 7349 | + } = generateDataSourceComponent({ overrideClass: 'dynamic-effect__data-source-comp--override' }) | |
| 7290 | 7350 | $(`#${enumActionEl.DATA_SOURCE_COMP_EL}`).append(component) |
| 7291 | 7351 | form.render() |
| 7292 | 7352 | |
| ... | ... | @@ -7328,7 +7388,6 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
| 7328 | 7388 | function handleStateSetting(event) { |
| 7329 | 7389 | |
| 7330 | 7390 | const enumActionEl = { |
| 7331 | - DATA_SOURCE_COMP_EL: 'stateDataSource', | |
| 7332 | 7391 | TABLE_BODY_EL: 'stateTableBodyEl', |
| 7333 | 7392 | LAYER_SUBMIT_FILTER: 'stateSettingSubmitFilter', |
| 7334 | 7393 | ENABLE_FILTER: 'enableFilter', |
| ... | ... | @@ -7373,12 +7432,6 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
| 7373 | 7432 | VALUE: 'value' |
| 7374 | 7433 | } |
| 7375 | 7434 | |
| 7376 | - const { | |
| 7377 | - component, | |
| 7378 | - echoDataSource, | |
| 7379 | - getValue, | |
| 7380 | - } = generatorDataSourceComponent() | |
| 7381 | - | |
| 7382 | 7435 | const recordData = { |
| 7383 | 7436 | enabled: false |
| 7384 | 7437 | } |
| ... | ... | @@ -7403,7 +7456,7 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
| 7403 | 7456 | if ($(event.target).hasClass(enumActionEl.DEL_PREVIEW_IMG)) return |
| 7404 | 7457 | const rowFilter = $(event.target).parents('tr').attr('lay-filter') |
| 7405 | 7458 | // createUploadImgLayer(rowFilter) |
| 7406 | - generatorUploadLayerComponent((imageState) => { | |
| 7459 | + generateUploadLayerComponent((imageState) => { | |
| 7407 | 7460 | |
| 7408 | 7461 | $(`#${enumActionEl.TABLE_BODY_EL}`) |
| 7409 | 7462 | .find(`tr[lay-filter="${rowFilter}"]`) |
| ... | ... | @@ -7426,7 +7479,8 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
| 7426 | 7479 | </td> |
| 7427 | 7480 | <td> |
| 7428 | 7481 | <div class="layui-form-item"> |
| 7429 | - <input class="layui-input" autocomplete="off" type="number" name="${enumConst.VALUE}" lay-filter="${enumConst.VALUE}" lay-verType="tips" lay-verify="required" /> | |
| 7482 | + <input class="layui-input" autocomplete="off" type="number" name="${enumConst.VALUE}" lay-verType="tips" lay-verify="required" /> | |
| 7483 | + <input class="layui-input" autocomplete="off" style="display: none;" name="${enumConst.TYPE}" lay-verType="tips" lay-verify="required" /> | |
| 7430 | 7484 | </div> |
| 7431 | 7485 | </td> |
| 7432 | 7486 | <td> |
| ... | ... | @@ -7449,7 +7503,6 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
| 7449 | 7503 | */ |
| 7450 | 7504 | function echoData(info = {}) { |
| 7451 | 7505 | const { condition = [] } = info |
| 7452 | - echoDataSource(info) | |
| 7453 | 7506 | |
| 7454 | 7507 | condition.forEach(item => { |
| 7455 | 7508 | if (item[enumConst.TYPE] === enumConst.ENABLE_TYPE) { |
| ... | ... | @@ -7473,12 +7526,20 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
| 7473 | 7526 | function setRowFormValue(formFilter, value = {}) { |
| 7474 | 7527 | form.val(formFilter, value) |
| 7475 | 7528 | $(`#${enumActionEl.TABLE_BODY_EL} tr[lay-filter="${formFilter}"] .${enumActionEl.SET_IMG_EL} img`).attr('src', value[enumConst.IMAGE_GALLERY_IMAGE_PATH]) |
| 7529 | + form.render() | |
| 7476 | 7530 | } |
| 7477 | 7531 | |
| 7478 | 7532 | async function submit(callback) { |
| 7479 | 7533 | const enableValue = form.val(enumActionEl.ENABLE_FILTER) |
| 7480 | 7534 | const closeValue = form.val(enumActionEl.CLOSE_FILTER) |
| 7481 | - const formVal = getValue() | |
| 7535 | + | |
| 7536 | + const formVal = getDataSourceBindValue() | |
| 7537 | + | |
| 7538 | + if (![formVal.deviceId && formVal.orgId].every(Boolean)) { | |
| 7539 | + UseLayUi.topErrorMsg('请先选择数据源') | |
| 7540 | + return | |
| 7541 | + } | |
| 7542 | + | |
| 7482 | 7543 | const formModel = { |
| 7483 | 7544 | configurationId, |
| 7484 | 7545 | contentId: currentPageId.id, |
| ... | ... | @@ -7491,13 +7552,13 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
| 7491 | 7552 | await to(autoSaveGraphInfo()) |
| 7492 | 7553 | const [err, res] = await to(ConfigurationNodeApi.updateNodeAct(formModel)) |
| 7493 | 7554 | if (err) return |
| 7555 | + overrideCurrentData('act', 'type', res) | |
| 7494 | 7556 | UseLayUi.successMsg() |
| 7495 | 7557 | callback() |
| 7496 | 7558 | } |
| 7497 | 7559 | |
| 7498 | 7560 | function createLayerForm(type) { |
| 7499 | 7561 | const content = ` |
| 7500 | - <div id="${enumActionEl.DATA_SOURCE_COMP_EL}" style="width: 300px;"></div> | |
| 7501 | 7562 | <table class="layui-table"> |
| 7502 | 7563 | <colgroup> |
| 7503 | 7564 | <col width="150"> |
| ... | ... | @@ -7530,10 +7591,6 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
| 7530 | 7591 | 'lay-filter': enumActionEl.LAYER_SUBMIT_FILTER, |
| 7531 | 7592 | }) |
| 7532 | 7593 | |
| 7533 | - // render data source | |
| 7534 | - $(`#${enumActionEl.DATA_SOURCE_COMP_EL}`).append(component) | |
| 7535 | - form.render() | |
| 7536 | - | |
| 7537 | 7594 | const info = getLayerBindInfo('act', type) |
| 7538 | 7595 | const { condition = [], enabled } = info |
| 7539 | 7596 | Object.assign(recordData, { enabled }) |
| ... | ... | @@ -7543,15 +7600,13 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
| 7543 | 7600 | initialData() |
| 7544 | 7601 | } |
| 7545 | 7602 | |
| 7546 | - | |
| 7547 | 7603 | generatorEventListenner() |
| 7548 | - initialData() | |
| 7549 | 7604 | }, |
| 7550 | 7605 | yes(index) { |
| 7551 | 7606 | form.on(`submit(${enumActionEl.LAYER_SUBMIT_FILTER})`, data => { |
| 7552 | 7607 | submit(() => { |
| 7553 | 7608 | layer.close(index) |
| 7554 | - getNodeBindInfo() | |
| 7609 | + // getNodeBindInfo() | |
| 7555 | 7610 | }) |
| 7556 | 7611 | }) |
| 7557 | 7612 | }, |
| ... | ... | @@ -7570,7 +7625,7 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
| 7570 | 7625 | * @param {string} [options.overrideClass = ''] options.overrideClass |
| 7571 | 7626 | * @param {boolean} [options.validate = true ] options.validate |
| 7572 | 7627 | */ |
| 7573 | - function generatorDataSourceComponent(options = {}) { | |
| 7628 | + function generateDataSourceComponent(options = {}) { | |
| 7574 | 7629 | const { overrideClass = '', validate = true } = options |
| 7575 | 7630 | const componentFilter = `data-source__component-filter-${Date.now()}` |
| 7576 | 7631 | const componentId = `data-source__component-${Date.now()}` |
| ... | ... | @@ -7778,6 +7833,10 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
| 7778 | 7833 | }) |
| 7779 | 7834 | } |
| 7780 | 7835 | |
| 7836 | + /** | |
| 7837 | + * | |
| 7838 | + * @returns {{orgId: string, attr: string, deviceId: string, slaveDeviceId: string}} | |
| 7839 | + */ | |
| 7781 | 7840 | function getValue() { |
| 7782 | 7841 | return form.val(componentFilter) |
| 7783 | 7842 | } |
| ... | ... | @@ -7788,7 +7847,7 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
| 7788 | 7847 | /** |
| 7789 | 7848 | * @description 生成上传弹出层组件 |
| 7790 | 7849 | */ |
| 7791 | - function generatorUploadLayerComponent(callback) { | |
| 7850 | + function generateUploadLayerComponent(callback) { | |
| 7792 | 7851 | |
| 7793 | 7852 | const enumActionEl = { |
| 7794 | 7853 | /** |
| ... | ... | @@ -8076,6 +8135,95 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
| 8076 | 8135 | return { record: imageState } |
| 8077 | 8136 | } |
| 8078 | 8137 | |
| 8138 | + | |
| 8139 | + /** | |
| 8140 | + * @description TODO 图片上传容器 | |
| 8141 | + * @param {} option | |
| 8142 | + * @param {} option.el | |
| 8143 | + */ | |
| 8144 | + function generateUploadImgContainer({ el }) { | |
| 8145 | + | |
| 8146 | + | |
| 8147 | + const enumConst = { | |
| 8148 | + /** | |
| 8149 | + * @description 图片来源 | |
| 8150 | + */ | |
| 8151 | + IMAGE_ORIGIN: 'imageOrigin', | |
| 8152 | + | |
| 8153 | + /** | |
| 8154 | + * @description 图库图形类别 | |
| 8155 | + */ | |
| 8156 | + IMAGE_GALLERY_CATEGORY: 'category', | |
| 8157 | + | |
| 8158 | + /** | |
| 8159 | + * @description 图表图形路径 | |
| 8160 | + */ | |
| 8161 | + IMAGE_GALLERY_IMAGE_PATH: 'imagePath', | |
| 8162 | + } | |
| 8163 | + | |
| 8164 | + const enumActionEl = { | |
| 8165 | + | |
| 8166 | + CONTAINER_FILTER: 'imgContainerFilter', | |
| 8167 | + | |
| 8168 | + /** | |
| 8169 | + * @description | |
| 8170 | + */ | |
| 8171 | + SET_IMG_EL: 'variableImageTableSetImgEl', | |
| 8172 | + | |
| 8173 | + /** | |
| 8174 | + * @description 预览 | |
| 8175 | + */ | |
| 8176 | + PREVIEW_IMG_CONTAINER: 'img__container', | |
| 8177 | + | |
| 8178 | + /** | |
| 8179 | + * @description 删除 | |
| 8180 | + */ | |
| 8181 | + DEL_PREVIEW_IMG: 'img__delete', | |
| 8182 | + } | |
| 8183 | + | |
| 8184 | + const getFormFilter = `${enumActionEl.CONTAINER_FILTER}-${Date.now()}` | |
| 8185 | + | |
| 8186 | + function createTemplate() { | |
| 8187 | + return ` | |
| 8188 | + <div class="layui-form ${enumActionEl.SET_IMG_EL}" lay-filter="${getFormFilter}"> | |
| 8189 | + <input name="${enumConst.IMAGE_GALLERY_CATEGORY}" type="text" style="display: none"> | |
| 8190 | + <input name="${enumConst.IMAGE_GALLERY_IMAGE_PATH}" type="text" style="display: none"> | |
| 8191 | + <input name="${enumConst.IMAGE_ORIGIN}" type="text" style="display: none"> | |
| 8192 | + <div class="${enumActionEl.PREVIEW_IMG_CONTAINER}"> | |
| 8193 | + <img src="" alt=""> | |
| 8194 | + <div class="${enumActionEl.DEL_PREVIEW_IMG}">x</div> | |
| 8195 | + <div class="add__button">+</div> | |
| 8196 | + </div> | |
| 8197 | + </div> | |
| 8198 | + ` | |
| 8199 | + } | |
| 8200 | + | |
| 8201 | + /** | |
| 8202 | + * @description 设置回显 | |
| 8203 | + * @param {} value | |
| 8204 | + */ | |
| 8205 | + function setValue(value = {}) { | |
| 8206 | + form.val(getFormFilter, value) | |
| 8207 | + } | |
| 8208 | + | |
| 8209 | + /** | |
| 8210 | + * @description 获取值 | |
| 8211 | + * @returns | |
| 8212 | + */ | |
| 8213 | + function getValue() { | |
| 8214 | + return form.val(getFormFilter) || {} | |
| 8215 | + } | |
| 8216 | + | |
| 8217 | + function mount() { | |
| 8218 | + if (!el) throw Error('mount element is required') | |
| 8219 | + $(el).append(createTemplate()) | |
| 8220 | + } | |
| 8221 | + | |
| 8222 | + function generateEventLinstenner() { | |
| 8223 | + $(el) | |
| 8224 | + } | |
| 8225 | + } | |
| 8226 | + | |
| 8079 | 8227 | // 异步设置此处才能生效 -- 设置默认select和样式和初始化侧边栏生成组件和事件绑定 |
| 8080 | 8228 | setTimeout(() => { |
| 8081 | 8229 | |
| ... | ... | @@ -12316,6 +12464,16 @@ class UseLayUi { |
| 12316 | 12464 | static errorMsg(msg = '操作失败', options) { |
| 12317 | 12465 | UseLayUi.msg(msg, { ...options, icon: 5 }) |
| 12318 | 12466 | } |
| 12467 | + | |
| 12468 | + static topSuccessMsg(msg = '操作成功', options) { | |
| 12469 | + const { layer } = layui | |
| 12470 | + layer.msg(`<div style="padding: 20px; display: flex; align-items: center;"><i class="layui-layer-ico layui-layer-ico6" style="width: 30px;height: 30px;"></i><span style="margin-left: 5px">${msg}</span></div>`, { ...options, type: 1, icon: 6, time: 2000, }) | |
| 12471 | + } | |
| 12472 | + | |
| 12473 | + static topErrorMsg(msg = '操作失败', options) { | |
| 12474 | + const { layer } = layui | |
| 12475 | + layer.msg(`<div style="padding: 20px; display: flex; align-items: center;"><i class="layui-layer-ico layui-layer-ico5" style="width: 30px;height: 30px;"></i><span style="margin-left: 5px">${msg}</span></div>`, { ...options, type: 1, icon: 5, time: 2000, }) | |
| 12476 | + } | |
| 12319 | 12477 | } |
| 12320 | 12478 | |
| 12321 | 12479 | ... | ... |