Commit 08602c0dd7fe7b116ce08e5d20782700144ebd45
1 parent
51eb5277
feat: implement socket push message to update variable image
Showing
4 changed files
with
102 additions
and
37 deletions
| @@ -158,6 +158,31 @@ | @@ -158,6 +158,31 @@ | ||
| 158 | } | 158 | } | 
| 159 | } | 159 | } | 
| 160 | 160 | ||
| 161 | + /** | ||
| 162 | + * @description 枚举cell的基本属性 | ||
| 163 | + */ | ||
| 164 | + Sidebar.prototype.enumCellBasicAttribute = { | ||
| 165 | + | ||
| 166 | + /** | ||
| 167 | + * @description 组件类型 | ||
| 168 | + */ | ||
| 169 | + COMPONENT_TYPE: 'componentType' | ||
| 170 | + } | ||
| 171 | + | ||
| 172 | + /** | ||
| 173 | + * @description 枚举组件类型 | ||
| 174 | + */ | ||
| 175 | + Sidebar.prototype.enumComponentType = { | ||
| 176 | + /** | ||
| 177 | + * @description 变量图片类型 | ||
| 178 | + */ | ||
| 179 | + VAR_IMAGE: 'variableImage', | ||
| 180 | + | ||
| 181 | + /** | ||
| 182 | + * @description 图表类型 | ||
| 183 | + */ | ||
| 184 | + CHARTS: 'charts' | ||
| 185 | + } | ||
| 161 | 186 | ||
| 162 | 187 | ||
| 163 | /** | 188 | /** | 
| @@ -14,8 +14,22 @@ | @@ -14,8 +14,22 @@ | ||
| 14 | cell.vertex = true; | 14 | cell.vertex = true; | 
| 15 | this.graph.setAttributeForCell(cell, 'placeholders', '1'); | 15 | this.graph.setAttributeForCell(cell, 'placeholders', '1'); | 
| 16 | this.graph.setAttributeForCell(cell, 'currentDate', currentDate); | 16 | this.graph.setAttributeForCell(cell, 'currentDate', currentDate); | 
| 17 | - return this.createVertexTemplateFromCells([cell], cell.geometry.width, cell.geometry.height, 'realTime'); | 17 | + return this.createVertexTemplateFromCells([cell], cell.geometry.width, cell.geometry.height, '实时时间'); | 
| 18 | })), | 18 | })), | 
| 19 | + this.addEntry(this.getTagsForStencil('mxgraph.basic', '变量图片', 'basic').join(' '), mxUtils.bind(this, function () { | ||
| 20 | + const cell = new mxCell('', new mxGeometry(0, 0, 194, 95), 'image;image=images/thingskit/img-placeholder.png;imageAspect=0;'); | ||
| 21 | + cell.setVertex(true) | ||
| 22 | + this.setCellAttributes(cell, { componentType: 'variableImage' }) | ||
| 23 | + return this.createVertexTemplateFromCells([cell], cell.geometry.width, cell.geometry.height, '变量图片'); | ||
| 24 | + })) | ||
| 25 | + // this.addEntry('variableImage', mxUtils.bind(this, function () { | ||
| 26 | + // const imagePlaceholder = '/thingskit-drawio/images/thingskit/img-placeholder.png'; | ||
| 27 | + // const template = `<div><img src="${imagePlaceholder}" alt=""></div>`; | ||
| 28 | + // const cell = new mxCell(template, new mxGeometry(0, 0, 194, 195), 'text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;overflow=hidden;'); | ||
| 29 | + // cell.vertex = true; | ||
| 30 | + // this.graph.setAttributeForCell(cell, 'componentType', 'variableImage'); | ||
| 31 | + // return this.createVertexTemplateFromCells([cell], cell.geometry.width, cell.geometry.height, '变量图片'); | ||
| 32 | + // })) | ||
| 19 | ]; | 33 | ]; | 
| 20 | 34 | ||
| 21 | this.addPaletteFunctions('component', '基础元件', true, fns); | 35 | this.addPaletteFunctions('component', '基础元件', true, fns); | 
| @@ -21,12 +21,12 @@ | @@ -21,12 +21,12 @@ | ||
| 21 | this.addEntry('line chart', mxUtils.bind(this, function () { | 21 | this.addEntry('line chart', mxUtils.bind(this, function () { | 
| 22 | const id = self.generatorChartsId() | 22 | const id = self.generatorChartsId() | 
| 23 | const cell = self.generatorCell(id, enumConst.CHART_IMG_PLACEHOLDER_SIZE, enumConst.CHART_IMG_PLACEHOLDER_SIZE, enumChartType.LINE_CHART) | 23 | const cell = self.generatorCell(id, enumConst.CHART_IMG_PLACEHOLDER_SIZE, enumConst.CHART_IMG_PLACEHOLDER_SIZE, enumChartType.LINE_CHART) | 
| 24 | - return this.createVertexTemplateFromCells([ cell ], cell.geometry.width, cell.geometry.height, '折线图'); | 24 | + return this.createVertexTemplateFromCells([cell], cell.geometry.width, cell.geometry.height, '折线图'); | 
| 25 | })), | 25 | })), | 
| 26 | this.addEntry('bar chart', mxUtils.bind(this, function () { | 26 | this.addEntry('bar chart', mxUtils.bind(this, function () { | 
| 27 | const id = self.generatorChartsId() | 27 | const id = self.generatorChartsId() | 
| 28 | const cell = self.generatorCell(id, enumConst.CHART_IMG_PLACEHOLDER_SIZE, enumConst.CHART_IMG_PLACEHOLDER_SIZE, enumChartType.BAR_CHART, '/thingskit-drawio/images/thingskit/bar-chart.png') | 28 | const cell = self.generatorCell(id, enumConst.CHART_IMG_PLACEHOLDER_SIZE, enumConst.CHART_IMG_PLACEHOLDER_SIZE, enumChartType.BAR_CHART, '/thingskit-drawio/images/thingskit/bar-chart.png') | 
| 29 | - return this.createVertexTemplateFromCells([ cell ], cell.geometry.width, cell.geometry.height, '柱状图'); | 29 | + return this.createVertexTemplateFromCells([cell], cell.geometry.width, cell.geometry.height, '柱状图'); | 
| 30 | })), | 30 | })), | 
| 31 | ]; | 31 | ]; | 
| 32 | 32 | ||
| @@ -43,7 +43,7 @@ | @@ -43,7 +43,7 @@ | ||
| 43 | 43 | ||
| 44 | /** | 44 | /** | 
| 45 | * @description Sidebar 类型枚举 | 45 | * @description Sidebar 类型枚举 | 
| 46 | - * @type {{CHART_CELL_DEFAULT_WIDTH: number, CHART_CELL_HEIGHT: string, CHART_CELL_DEFAULT_HEIGHT: number, CHART_TYPE_KEY: string, CHART_CELL_WIDTH: string, CHART_COMP: string, CHART_CELL_ID: string, CHART_CONTAINER_ID_PREFIX: string, CHART_IMG_PLACEHOLDER_SIZE: number, COMPONENTS_TYPE_KEY: string, CHART_CONTAINER_CLS: string}} | 46 | + * @type {{CHART_CELL_DEFAULT_WIDTH: number, CHART_CELL_HEIGHT: string, CHART_CELL_DEFAULT_HEIGHT: number, CHART_TYPE_KEY: string, CHART_CELL_WIDTH: string, CHART_COMP: string, CHART_CELL_ID: string, CHART_CONTAINER_ID_PREFIX: string, CHART_IMG_PLACEHOLDER_SIZE: number, COMPONENT_TYPE_KEY: string, CHART_CONTAINER_CLS: string}} | 
| 47 | */ | 47 | */ | 
| 48 | Sidebar.prototype.enumConst = { | 48 | Sidebar.prototype.enumConst = { | 
| 49 | 49 | ||
| @@ -70,7 +70,7 @@ | @@ -70,7 +70,7 @@ | ||
| 70 | /** | 70 | /** | 
| 71 | * @description cell 类型是否为 charts | 71 | * @description cell 类型是否为 charts | 
| 72 | */ | 72 | */ | 
| 73 | - CHART_COMP: 'charts', | 73 | + CHART_COMP: Sidebar.prototype.enumComponentType.CHARTS, | 
| 74 | 74 | ||
| 75 | /** | 75 | /** | 
| 76 | * @description cell id key | 76 | * @description cell id key | 
| @@ -80,7 +80,7 @@ | @@ -80,7 +80,7 @@ | ||
| 80 | /** | 80 | /** | 
| 81 | * @description 组件类型 key | 81 | * @description 组件类型 key | 
| 82 | */ | 82 | */ | 
| 83 | - COMPONENTS_TYPE_KEY: 'componentsType', | 83 | + COMPONENT_TYPE_KEY: Sidebar.prototype.enumCellBasicAttribute.COMPONENT_TYPE, | 
| 84 | 84 | ||
| 85 | /** | 85 | /** | 
| 86 | * @description 图表容器 class name | 86 | * @description 图表容器 class name | 
| @@ -121,14 +121,14 @@ | @@ -121,14 +121,14 @@ | ||
| 121 | return { | 121 | return { | 
| 122 | xAxis: { | 122 | xAxis: { | 
| 123 | type: 'category', | 123 | type: 'category', | 
| 124 | - data: [ 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun' ], | 124 | + data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'], | 
| 125 | }, | 125 | }, | 
| 126 | yAxis: { | 126 | yAxis: { | 
| 127 | type: 'value', | 127 | type: 'value', | 
| 128 | }, | 128 | }, | 
| 129 | series: [ | 129 | series: [ | 
| 130 | { | 130 | { | 
| 131 | - data: [ 150, 230, 224, 218, 135, 147, 260 ], | 131 | + data: [150, 230, 224, 218, 135, 147, 260], | 
| 132 | type: 'line', | 132 | type: 'line', | 
| 133 | }, | 133 | }, | 
| 134 | ], | 134 | ], | 
| @@ -138,14 +138,14 @@ | @@ -138,14 +138,14 @@ | ||
| 138 | return { | 138 | return { | 
| 139 | xAxis: { | 139 | xAxis: { | 
| 140 | type: 'category', | 140 | type: 'category', | 
| 141 | - data: [ 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun' ], | 141 | + data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'], | 
| 142 | }, | 142 | }, | 
| 143 | yAxis: { | 143 | yAxis: { | 
| 144 | type: 'value', | 144 | type: 'value', | 
| 145 | }, | 145 | }, | 
| 146 | series: [ | 146 | series: [ | 
| 147 | { | 147 | { | 
| 148 | - data: [ 120, 200, 150, 80, 70, 110, 130 ], | 148 | + data: [120, 200, 150, 80, 70, 110, 130], | 
| 149 | type: 'bar', | 149 | type: 'bar', | 
| 150 | showBackground: true, | 150 | showBackground: true, | 
| 151 | backgroundStyle: { | 151 | backgroundStyle: { | 
| @@ -170,7 +170,7 @@ | @@ -170,7 +170,7 @@ | ||
| 170 | const enumConst = this.enumConst | 170 | const enumConst = this.enumConst | 
| 171 | const cell = new mxCell(this.createChartsNode(id, width, height, placeholderPath), new mxGeometry(0, 0, width, height), 'text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;overflow=hidden;'); | 171 | const cell = new mxCell(this.createChartsNode(id, width, height, placeholderPath), new mxGeometry(0, 0, width, height), 'text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;overflow=hidden;'); | 
| 172 | cell.setVertex(true) | 172 | cell.setVertex(true) | 
| 173 | - this.graph.setAttributeForCell(cell, enumConst.COMPONENTS_TYPE_KEY, 'charts'); | 173 | + this.graph.setAttributeForCell(cell, enumConst.COMPONENT_TYPE_KEY, 'charts'); | 
| 174 | this.graph.setAttributeForCell(cell, enumConst.CHART_CELL_ID, id); | 174 | this.graph.setAttributeForCell(cell, enumConst.CHART_CELL_ID, id); | 
| 175 | this.graph.setAttributeForCell(cell, enumConst.CHART_CELL_WIDTH, width) | 175 | this.graph.setAttributeForCell(cell, enumConst.CHART_CELL_WIDTH, width) | 
| 176 | this.graph.setAttributeForCell(cell, enumConst.CHART_CELL_HEIGHT, height) | 176 | this.graph.setAttributeForCell(cell, enumConst.CHART_CELL_HEIGHT, height) | 
| @@ -185,7 +185,7 @@ | @@ -185,7 +185,7 @@ | ||
| 185 | */ | 185 | */ | 
| 186 | Sidebar.prototype.generatorChartsId = function () { | 186 | Sidebar.prototype.generatorChartsId = function () { | 
| 187 | const enumConst = Sidebar.prototype.enumConst | 187 | const enumConst = Sidebar.prototype.enumConst | 
| 188 | - return `${ enumConst.CHART_CONTAINER_ID_PREFIX }${ Date.now() }` | 188 | + return `${enumConst.CHART_CONTAINER_ID_PREFIX}${Date.now()}` | 
| 189 | } | 189 | } | 
| 190 | 190 | ||
| 191 | /** | 191 | /** | 
| @@ -197,7 +197,7 @@ | @@ -197,7 +197,7 @@ | ||
| 197 | * @returns {string} | 197 | * @returns {string} | 
| 198 | */ | 198 | */ | 
| 199 | Sidebar.prototype.createChartsNode = function (id, width = 400, height = 400, placeholderPath = '/thingskit-drawio/images/thingskit/line-chart.png') { | 199 | Sidebar.prototype.createChartsNode = function (id, width = 400, height = 400, placeholderPath = '/thingskit-drawio/images/thingskit/line-chart.png') { | 
| 200 | - return `<div class="echarts__instance" style="width: ${ width }px; height: ${ height }px" id="${ id }"><img src="${ placeholderPath }" alt=""></div>` | 200 | + return `<div class="echarts__instance" style="width: ${width}px; height: ${height}px" id="${id}"><img src="${placeholderPath}" alt=""></div>` | 
| 201 | } | 201 | } | 
| 202 | 202 | ||
| 203 | /** | 203 | /** | 
| @@ -207,8 +207,8 @@ | @@ -207,8 +207,8 @@ | ||
| 207 | */ | 207 | */ | 
| 208 | Sidebar.prototype.isChartCell = function (cell) { | 208 | Sidebar.prototype.isChartCell = function (cell) { | 
| 209 | const enumConst = Sidebar.prototype.enumConst | 209 | const enumConst = Sidebar.prototype.enumConst | 
| 210 | - const componentsType = cell.getAttribute(enumConst.COMPONENTS_TYPE_KEY) | ||
| 211 | - return !!(componentsType && componentsType === enumConst.CHART_COMP) | 210 | + const componentType = cell.getAttribute(enumConst.COMPONENT_TYPE_KEY) | 
| 211 | + return !!(componentType && componentType === enumConst.CHART_COMP) | ||
| 212 | } | 212 | } | 
| 213 | 213 | ||
| 214 | /** | 214 | /** | 
| @@ -222,8 +222,8 @@ | @@ -222,8 +222,8 @@ | ||
| 222 | const chartOptionMapping = this.chartOptionMapping | 222 | const chartOptionMapping = this.chartOptionMapping | 
| 223 | const chartsInstanceMapping = this.chartsInstanceMapping | 223 | const chartsInstanceMapping = this.chartsInstanceMapping | 
| 224 | const chartDom = document.getElementById(id); | 224 | const chartDom = document.getElementById(id); | 
| 225 | - chartDom.style.width = `${ width }px` | ||
| 226 | - chartDom.style.height = `${ height }px` | 225 | + chartDom.style.width = `${width}px` | 
| 226 | + chartDom.style.height = `${height}px` | ||
| 227 | const myChart = echarts.init(chartDom); | 227 | const myChart = echarts.init(chartDom); | 
| 228 | const option = chartOptionMapping[chartType] ? chartOptionMapping[chartType]() : {} | 228 | const option = chartOptionMapping[chartType] ? chartOptionMapping[chartType]() : {} | 
| 229 | option && myChart.setOption(option); | 229 | option && myChart.setOption(option); | 
| @@ -304,8 +304,8 @@ | @@ -304,8 +304,8 @@ | ||
| 304 | const { width, height } = rect | 304 | const { width, height } = rect | 
| 305 | const id = self.getCellId(cell) | 305 | const id = self.getCellId(cell) | 
| 306 | const chartDom = document.getElementById(id) | 306 | const chartDom = document.getElementById(id) | 
| 307 | - chartDom.style.width = `${ width }px` | ||
| 308 | - chartDom.style.height = `${ height }px` | 307 | + chartDom.style.width = `${width}px` | 
| 308 | + chartDom.style.height = `${height}px` | ||
| 309 | self.graph.setAttributeForCell(cell, enumConst.CHART_CELL_WIDTH, width) | 309 | self.graph.setAttributeForCell(cell, enumConst.CHART_CELL_WIDTH, width) | 
| 310 | self.graph.setAttributeForCell(cell, enumConst.CHART_CELL_HEIGHT, height) | 310 | self.graph.setAttributeForCell(cell, enumConst.CHART_CELL_HEIGHT, height) | 
| 311 | const instance = chartsInstanceMapping.get(id) | 311 | const instance = chartsInstanceMapping.get(id) | 
| @@ -338,7 +338,7 @@ | @@ -338,7 +338,7 @@ | ||
| 338 | if (validateFlag) { | 338 | if (validateFlag) { | 
| 339 | const cell = self.generatorCell(id, enumConst.CHART_CELL_DEFAULT_WIDTH, enumConst.CHART_CELL_DEFAULT_HEIGHT, chartType) | 339 | const cell = self.generatorCell(id, enumConst.CHART_CELL_DEFAULT_WIDTH, enumConst.CHART_CELL_DEFAULT_HEIGHT, chartType) | 
| 340 | const _arguments = Array.prototype.slice.call(arguments, 0) | 340 | const _arguments = Array.prototype.slice.call(arguments, 0) | 
| 341 | - _arguments.splice(1, 1, [ cell ]) | 341 | + _arguments.splice(1, 1, [cell]) | 
| 342 | createTooltip.apply(this, _arguments) | 342 | createTooltip.apply(this, _arguments) | 
| 343 | } else { | 343 | } else { | 
| 344 | createTooltip.apply(this, arguments) | 344 | createTooltip.apply(this, arguments) | 
| @@ -366,7 +366,7 @@ | @@ -366,7 +366,7 @@ | ||
| 366 | domIdMapping.set(chartInstanceId, { width, height, chartType }) | 366 | domIdMapping.set(chartInstanceId, { width, height, chartType }) | 
| 367 | } | 367 | } | 
| 368 | } | 368 | } | 
| 369 | - const chartsDomList = document.querySelectorAll(`.${ enumConst.CHART_CONTAINER_CLS }`) | 369 | + const chartsDomList = document.querySelectorAll(`.${enumConst.CHART_CONTAINER_CLS}`) | 
| 370 | for (const chartDom of chartsDomList) { | 370 | for (const chartDom of chartsDomList) { | 
| 371 | const id = chartDom.getAttribute('id') | 371 | const id = chartDom.getAttribute('id') | 
| 372 | if (!domIdMapping.has(id)) { | 372 | if (!domIdMapping.has(id)) { | 
| @@ -5657,7 +5657,7 @@ DataFormatPanel.prototype.addDataFont = function (container) { | @@ -5657,7 +5657,7 @@ DataFormatPanel.prototype.addDataFont = function (container) { | ||
| 5657 | /** | 5657 | /** | 
| 5658 | * @description 图表图形路径 | 5658 | * @description 图表图形路径 | 
| 5659 | */ | 5659 | */ | 
| 5660 | - IMAGE_GALLERY_IMG_PATH: 'imgPath', | 5660 | + IMAGE_GALLERY_IMAGE_PATH: 'imagePath', | 
| 5661 | } | 5661 | } | 
| 5662 | 5662 | ||
| 5663 | const enumImageOriginType = { | 5663 | const enumImageOriginType = { | 
| @@ -5719,7 +5719,7 @@ DataFormatPanel.prototype.addDataFont = function (container) { | @@ -5719,7 +5719,7 @@ DataFormatPanel.prototype.addDataFont = function (container) { | ||
| 5719 | form.val(rowFilter, { | 5719 | form.val(rowFilter, { | 
| 5720 | [enumConst.IMAGE_ORIGIN]: null, | 5720 | [enumConst.IMAGE_ORIGIN]: null, | 
| 5721 | [enumConst.IMAGE_GALLERY_CATEGORY]: null, | 5721 | [enumConst.IMAGE_GALLERY_CATEGORY]: null, | 
| 5722 | - [enumConst.IMAGE_GALLERY_IMG_PATH]: null, | 5722 | + [enumConst.IMAGE_GALLERY_IMAGE_PATH]: null, | 
| 5723 | }) | 5723 | }) | 
| 5724 | }) | 5724 | }) | 
| 5725 | } | 5725 | } | 
| @@ -5760,7 +5760,7 @@ DataFormatPanel.prototype.addDataFont = function (container) { | @@ -5760,7 +5760,7 @@ DataFormatPanel.prototype.addDataFont = function (container) { | ||
| 5760 | $(`.${enumActionEl.IMAGE_DEL_PREVIEW_EL}`).on('click', (event) => { | 5760 | $(`.${enumActionEl.IMAGE_DEL_PREVIEW_EL}`).on('click', (event) => { | 
| 5761 | event.stopPropagation() | 5761 | event.stopPropagation() | 
| 5762 | $(`#${enumActionEl.IMAGE_PREVIEW_EL}`).attr('src', '') | 5762 | $(`#${enumActionEl.IMAGE_PREVIEW_EL}`).attr('src', '') | 
| 5763 | - imageState[enumConst.IMAGE_GALLERY_IMG_PATH] = null | 5763 | + imageState[enumConst.IMAGE_GALLERY_IMAGE_PATH] = null | 
| 5764 | }) | 5764 | }) | 
| 5765 | const uploadInst = upload.render({ | 5765 | const uploadInst = upload.render({ | 
| 5766 | elem: `#${enumActionEl.UPLOAD_LOCAL_FILE_EL}`, | 5766 | elem: `#${enumActionEl.UPLOAD_LOCAL_FILE_EL}`, | 
| @@ -5776,7 +5776,7 @@ DataFormatPanel.prototype.addDataFont = function (container) { | @@ -5776,7 +5776,7 @@ DataFormatPanel.prototype.addDataFont = function (container) { | ||
| 5776 | if (!err) { | 5776 | if (!err) { | 
| 5777 | $(`#${enumActionEl.IMAGE_PREVIEW_EL}`).attr('src', result) | 5777 | $(`#${enumActionEl.IMAGE_PREVIEW_EL}`).attr('src', result) | 
| 5778 | const { fileStaticUri = '' } = res | 5778 | const { fileStaticUri = '' } = res | 
| 5779 | - imageState[enumConst.IMAGE_GALLERY_IMG_PATH] = fileStaticUri | 5779 | + imageState[enumConst.IMAGE_GALLERY_IMAGE_PATH] = fileStaticUri | 
| 5780 | } | 5780 | } | 
| 5781 | }); | 5781 | }); | 
| 5782 | }, | 5782 | }, | 
| @@ -5817,12 +5817,12 @@ DataFormatPanel.prototype.addDataFont = function (container) { | @@ -5817,12 +5817,12 @@ DataFormatPanel.prototype.addDataFont = function (container) { | ||
| 5817 | function generatorSelectImgEventListener() { | 5817 | function generatorSelectImgEventListener() { | 
| 5818 | $(`#${enumActionEl.VAR_IMG_CONTAINER_CONTENT}`).on('click', event => { | 5818 | $(`#${enumActionEl.VAR_IMG_CONTAINER_CONTENT}`).on('click', event => { | 
| 5819 | setImageSelectedStyle(event, enumActionEl.VAR_IMG_ITEM, enumActionEl.VAR_IMG_ITEM_CHECKED) | 5819 | setImageSelectedStyle(event, enumActionEl.VAR_IMG_ITEM, enumActionEl.VAR_IMG_ITEM_CHECKED) | 
| 5820 | - imageState[enumConst.IMAGE_GALLERY_IMG_PATH] = $(event.target).find('img').attr('src') | 5820 | + imageState[enumConst.IMAGE_GALLERY_IMAGE_PATH] = $(event.target).find('img').attr('src') | 
| 5821 | }) | 5821 | }) | 
| 5822 | $(`#${enumActionEl.VAR_IMG_CONTAINER_SIDEBAR}`).on('click', event => { | 5822 | $(`#${enumActionEl.VAR_IMG_CONTAINER_SIDEBAR}`).on('click', event => { | 
| 5823 | setImageSelectedStyle(event, enumActionEl.VAR_IMG_CATEGORY, enumActionEl.VAR_IMG_CATEGORY_CHECKED) | 5823 | setImageSelectedStyle(event, enumActionEl.VAR_IMG_CATEGORY, enumActionEl.VAR_IMG_CATEGORY_CHECKED) | 
| 5824 | imageState[enumConst.IMAGE_GALLERY_CATEGORY] = $(event.target).attr(enumConst.IMAGE_GALLERY_CATEGORY) | 5824 | imageState[enumConst.IMAGE_GALLERY_CATEGORY] = $(event.target).attr(enumConst.IMAGE_GALLERY_CATEGORY) | 
| 5825 | - imageState[enumConst.IMAGE_GALLERY_IMG_PATH] = null | 5825 | + imageState[enumConst.IMAGE_GALLERY_IMAGE_PATH] = null | 
| 5826 | switchGalleryLib(event) | 5826 | switchGalleryLib(event) | 
| 5827 | }) | 5827 | }) | 
| 5828 | } | 5828 | } | 
| @@ -5874,13 +5874,14 @@ DataFormatPanel.prototype.addDataFont = function (container) { | @@ -5874,13 +5874,14 @@ DataFormatPanel.prototype.addDataFont = function (container) { | ||
| 5874 | function setCheckedImg(rowFilter) { | 5874 | function setCheckedImg(rowFilter) { | 
| 5875 | $(`#${enumActionEl.TABLE_BODY_EL}`) | 5875 | $(`#${enumActionEl.TABLE_BODY_EL}`) | 
| 5876 | .find(`tr[lay-filter="${rowFilter}"]`) | 5876 | .find(`tr[lay-filter="${rowFilter}"]`) | 
| 5877 | - .find('img').attr('src', imageState[enumConst.IMAGE_GALLERY_IMG_PATH]) | 5877 | + .find('img').attr('src', imageState[enumConst.IMAGE_GALLERY_IMAGE_PATH]) | 
| 5878 | 5878 | ||
| 5879 | form.val(rowFilter, { | 5879 | form.val(rowFilter, { | 
| 5880 | [enumConst.IMAGE_ORIGIN]: imageState[enumConst.IMAGE_ORIGIN], | 5880 | [enumConst.IMAGE_ORIGIN]: imageState[enumConst.IMAGE_ORIGIN], | 
| 5881 | [enumConst.IMAGE_GALLERY_CATEGORY]: imageState[enumConst.IMAGE_GALLERY_CATEGORY], | 5881 | [enumConst.IMAGE_GALLERY_CATEGORY]: imageState[enumConst.IMAGE_GALLERY_CATEGORY], | 
| 5882 | - [enumConst.IMAGE_GALLERY_IMG_PATH]: imageState[enumConst.IMAGE_GALLERY_IMG_PATH], | 5882 | + [enumConst.IMAGE_GALLERY_IMAGE_PATH]: imageState[enumConst.IMAGE_GALLERY_IMAGE_PATH], | 
| 5883 | }) | 5883 | }) | 
| 5884 | + | ||
| 5884 | } | 5885 | } | 
| 5885 | 5886 | ||
| 5886 | /** | 5887 | /** | 
| @@ -5984,7 +5985,7 @@ DataFormatPanel.prototype.addDataFont = function (container) { | @@ -5984,7 +5985,7 @@ DataFormatPanel.prototype.addDataFont = function (container) { | ||
| 5984 | <td> | 5985 | <td> | 
| 5985 | <div class="${enumActionEl.SET_IMG_EL}"> | 5986 | <div class="${enumActionEl.SET_IMG_EL}"> | 
| 5986 | <input name="${enumConst.IMAGE_GALLERY_CATEGORY}" type="text" style="display: none"> | 5987 | <input name="${enumConst.IMAGE_GALLERY_CATEGORY}" type="text" style="display: none"> | 
| 5987 | - <input name="${enumConst.IMAGE_GALLERY_IMG_PATH}" type="text" style="display: none"> | 5988 | + <input name="${enumConst.IMAGE_GALLERY_IMAGE_PATH}" type="text" style="display: none"> | 
| 5988 | <input name="${enumConst.IMAGE_ORIGIN}" type="text" style="display: none"> | 5989 | <input name="${enumConst.IMAGE_ORIGIN}" type="text" style="display: none"> | 
| 5989 | <div class="${enumActionEl.PREVIEW_IMG_CONTAINER}"> | 5990 | <div class="${enumActionEl.PREVIEW_IMG_CONTAINER}"> | 
| 5990 | <img src="" alt=""> | 5991 | <img src="" alt=""> | 
| @@ -6025,7 +6026,7 @@ DataFormatPanel.prototype.addDataFont = function (container) { | @@ -6025,7 +6026,7 @@ DataFormatPanel.prototype.addDataFont = function (container) { | ||
| 6025 | condition.forEach((item, index) => { | 6026 | condition.forEach((item, index) => { | 
| 6026 | addRecord() | 6027 | addRecord() | 
| 6027 | const rowFilter = getRowFilter(index) | 6028 | const rowFilter = getRowFilter(index) | 
| 6028 | - $(`#${enumActionEl.TABLE_BODY_EL}`).find(`.${enumActionEl.PREVIEW_IMG_CONTAINER}>img`).attr('src', item[enumConst.IMAGE_GALLERY_IMG_PATH]) | 6029 | + $(`#${enumActionEl.TABLE_BODY_EL}`).find(`tr[lay-filter="${rowFilter}"] .${enumActionEl.PREVIEW_IMG_CONTAINER}>img`).attr('src', item[enumConst.IMAGE_GALLERY_IMAGE_PATH]) | 
| 6029 | form.val(rowFilter, { ...item }) | 6030 | form.val(rowFilter, { ...item }) | 
| 6030 | }) | 6031 | }) | 
| 6031 | } | 6032 | } | 
| @@ -6123,9 +6124,9 @@ DataFormatPanel.prototype.addDataFont = function (container) { | @@ -6123,9 +6124,9 @@ DataFormatPanel.prototype.addDataFont = function (container) { | ||
| 6123 | const { component, echoDataSource, getValue } = generatorDataSourceComponent() | 6124 | const { component, echoDataSource, getValue } = generatorDataSourceComponent() | 
| 6124 | getDataSourceValue = getValue | 6125 | getDataSourceValue = getValue | 
| 6125 | $(`#${enumActionEl.DATA_SOURCE_COMP_EL}`).append(component) | 6126 | $(`#${enumActionEl.DATA_SOURCE_COMP_EL}`).append(component) | 
| 6126 | - const info = getLayerBindInfo('act', type) | 6127 | + const info = getLayerBindInfo('act', type) || {} | 
| 6127 | const { condition = [] } = info | 6128 | const { condition = [] } = info | 
| 6128 | - if (!info && !condition.length) { | 6129 | + if (!condition.length) { | 
| 6129 | addRecord() | 6130 | addRecord() | 
| 6130 | } else { | 6131 | } else { | 
| 6131 | echoDataSource(info) | 6132 | echoDataSource(info) | 
| @@ -12138,6 +12139,7 @@ class DispatchCenter { | @@ -12138,6 +12139,7 @@ class DispatchCenter { | ||
| 12138 | * @description 分发事件 | 12139 | * @description 分发事件 | 
| 12139 | */ | 12140 | */ | 
| 12140 | publishEvent(eventName, data, message, event, ws) { | 12141 | publishEvent(eventName, data, message, event, ws) { | 
| 12142 | + data = data ? data : {} | ||
| 12141 | Object.keys(data).forEach(() => { | 12143 | Object.keys(data).forEach(() => { | 
| 12142 | this.eventBus.emit(eventName, message, event, ws) | 12144 | this.eventBus.emit(eventName, message, event, ws) | 
| 12143 | }) | 12145 | }) | 
| @@ -12401,6 +12403,9 @@ class HandleDataInteraction { | @@ -12401,6 +12403,9 @@ class HandleDataInteraction { | ||
| 12401 | } | 12403 | } | 
| 12402 | } | 12404 | } | 
| 12403 | 12405 | ||
| 12406 | +/** | ||
| 12407 | + * @description 处理数据 | ||
| 12408 | + */ | ||
| 12404 | class HandleDynamicEffect { | 12409 | class HandleDynamicEffect { | 
| 12405 | 12410 | ||
| 12406 | /** | 12411 | /** | 
| @@ -12441,6 +12446,7 @@ class HandleDynamicEffect { | @@ -12441,6 +12446,7 @@ class HandleDynamicEffect { | ||
| 12441 | FLASH: 'FLASH', | 12446 | FLASH: 'FLASH', | 
| 12442 | DISPLAY: 'DISPLAY', | 12447 | DISPLAY: 'DISPLAY', | 
| 12443 | ROTATE: 'ROTATE', | 12448 | ROTATE: 'ROTATE', | 
| 12449 | + IMAGE: 'IMAGE', | ||
| 12444 | } | 12450 | } | 
| 12445 | 12451 | ||
| 12446 | static enumDisplayType = { | 12452 | static enumDisplayType = { | 
| @@ -12510,7 +12516,7 @@ class HandleDynamicEffect { | @@ -12510,7 +12516,7 @@ class HandleDynamicEffect { | ||
| 12510 | 12516 | ||
| 12511 | tsSubCmds.push(this.generatorMessage(slaveDeviceId ? slaveDeviceId : deviceId, cmdId, attr)) | 12517 | tsSubCmds.push(this.generatorMessage(slaveDeviceId ? slaveDeviceId : deviceId, cmdId, attr)) | 
| 12512 | 12518 | ||
| 12513 | - this.subscribeEvent(cmdId, this.dispatch(type), attr) | 12519 | + this.subscribeEvent(cmdId, this.dispatch(type)) | 
| 12514 | }) | 12520 | }) | 
| 12515 | this.sendMsg({ tsSubCmds }) | 12521 | this.sendMsg({ tsSubCmds }) | 
| 12516 | } | 12522 | } | 
| @@ -12567,6 +12573,9 @@ class HandleDynamicEffect { | @@ -12567,6 +12573,9 @@ class HandleDynamicEffect { | ||
| 12567 | case HandleDynamicEffect.enumActType.FLASH: | 12573 | case HandleDynamicEffect.enumActType.FLASH: | 
| 12568 | invoke = this.flash.bind(this) | 12574 | invoke = this.flash.bind(this) | 
| 12569 | break | 12575 | break | 
| 12576 | + case HandleDynamicEffect.enumActType.IMAGE: | ||
| 12577 | + invoke = this.varImage.bind(this) | ||
| 12578 | + break | ||
| 12570 | } | 12579 | } | 
| 12571 | return invoke | 12580 | return invoke | 
| 12572 | } | 12581 | } | 
| @@ -12576,7 +12585,7 @@ class HandleDynamicEffect { | @@ -12576,7 +12585,7 @@ class HandleDynamicEffect { | ||
| 12576 | * @param message | 12585 | * @param message | 
| 12577 | * @param attr | 12586 | * @param attr | 
| 12578 | */ | 12587 | */ | 
| 12579 | - rotate(message, attr) { | 12588 | + rotate(message) { | 
| 12580 | const { subscriptionId, data } = message | 12589 | const { subscriptionId, data } = message | 
| 12581 | const node = this.getNodeByCmdId(subscriptionId) | 12590 | const node = this.getNodeByCmdId(subscriptionId) | 
| 12582 | const { flag } = this.validate(subscriptionId, DispatchCenter.enumDynamicEffectType.ROTATE, data) | 12591 | const { flag } = this.validate(subscriptionId, DispatchCenter.enumDynamicEffectType.ROTATE, data) | 
| @@ -12603,7 +12612,7 @@ class HandleDynamicEffect { | @@ -12603,7 +12612,7 @@ class HandleDynamicEffect { | ||
| 12603 | * @param message | 12612 | * @param message | 
| 12604 | * @param attr | 12613 | * @param attr | 
| 12605 | */ | 12614 | */ | 
| 12606 | - display(message, attr) { | 12615 | + display(message) { | 
| 12607 | const { subscriptionId, data = {} } = message | 12616 | const { subscriptionId, data = {} } = message | 
| 12608 | const { flag, condition } = this.validate(subscriptionId, HandleDynamicEffect.enumActType.DISPLAY, data) | 12617 | const { flag, condition } = this.validate(subscriptionId, HandleDynamicEffect.enumActType.DISPLAY, data) | 
| 12609 | if (!flag) return | 12618 | if (!flag) return | 
| @@ -12627,7 +12636,7 @@ class HandleDynamicEffect { | @@ -12627,7 +12636,7 @@ class HandleDynamicEffect { | ||
| 12627 | * @param message | 12636 | * @param message | 
| 12628 | * @param attr | 12637 | * @param attr | 
| 12629 | */ | 12638 | */ | 
| 12630 | - flash(message, attr) { | 12639 | + flash(message) { | 
| 12631 | const { subscriptionId, data } = message | 12640 | const { subscriptionId, data } = message | 
| 12632 | const node = this.getNodeByCmdId(subscriptionId) | 12641 | const node = this.getNodeByCmdId(subscriptionId) | 
| 12633 | const { flag, condition } = this.validate(subscriptionId, HandleDynamicEffect.enumActType.FLASH, data) | 12642 | const { flag, condition } = this.validate(subscriptionId, HandleDynamicEffect.enumActType.FLASH, data) | 
| @@ -12647,6 +12656,23 @@ class HandleDynamicEffect { | @@ -12647,6 +12656,23 @@ class HandleDynamicEffect { | ||
| 12647 | } | 12656 | } | 
| 12648 | 12657 | ||
| 12649 | /** | 12658 | /** | 
| 12659 | + * @description 处理变量图片 | ||
| 12660 | + */ | ||
| 12661 | + varImage(message) { | ||
| 12662 | + const { subscriptionId, data } = message | ||
| 12663 | + const node = this.getNodeByCmdId(subscriptionId) | ||
| 12664 | + const { flag, condition } = this.validate(subscriptionId, HandleDynamicEffect.enumActType.IMAGE, data) | ||
| 12665 | + if (flag && node) { | ||
| 12666 | + const { imagePath } = condition | ||
| 12667 | + this.insertOnceUpdateFn( | ||
| 12668 | + node, | ||
| 12669 | + () => { | ||
| 12670 | + node.setStyle(`image;image=${imagePath};imageAspect=0;`) | ||
| 12671 | + }) | ||
| 12672 | + } | ||
| 12673 | + } | ||
| 12674 | + | ||
| 12675 | + /** | ||
| 12650 | * @description 验证是否满足条件列表中的任意一条 | 12676 | * @description 验证是否满足条件列表中的任意一条 | 
| 12651 | * @param subscriptionId | 12677 | * @param subscriptionId | 
| 12652 | * @param type | 12678 | * @param type |