Commit 30353c896536cc3e2cdf7b9dc768e5d071beec4a
Merge branch 'ww' into 'main'
feat: implement real time && trigger event See merge request huang/thingskit-drawio!11
Showing
2 changed files
with
247 additions
and
75 deletions
| 1 | -(function() | ||
| 2 | -{ | ||
| 3 | - // Adds Atlassian shapes | ||
| 4 | - Sidebar.prototype.addBasicComponentsPalette = function() | ||
| 5 | - { | ||
| 6 | - var sb = this; | ||
| 7 | - var gn = 'mxgraph.component'; | ||
| 8 | - var dt = 'component '; | ||
| 9 | - var lineTags = 'line lines connector connectors connection connections arrow arrows ' | ||
| 10 | - this.setCurrentSearchEntryLibrary('general', 'component'); | ||
| 11 | - var currentDate = getCurrentDate(); | ||
| 12 | - var fns = [ | ||
| 13 | - this.createVertexTemplateEntry('text;strokeColor=none;fillColor=none;html=1;fontSize=24;fontStyle=1;verticalAlign=middle;align=center;', 100, 40, 'Title', 'Title', null, null, 'text heading title'), | ||
| 14 | - this.createEdgeTemplateEntry('shape=filledEdge;rounded=1;fixDash=1;endArrow=none;strokeWidth=10;fillColor=#BAFDFF;edgeStyle=orthogonalEdgeStyle;flowAnimation=1;strokeColor=#6666FF;endFill=1;metaEdit=0;backgroundOutline=0;', 60, 40, '', '线条'), | ||
| 15 | - this.addEntry('timestamp date time text label', mxUtils.bind(this, function() | ||
| 16 | - { | ||
| 17 | - var cell = new mxCell('%date{yyyy-mm-dd ddd HH:MM:ss}%', new mxGeometry(0, 0, 160, 20), 'text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;overflow=hidden;'); | ||
| 18 | - cell.vertex = true; | ||
| 19 | - this.graph.setAttributeForCell(cell, 'placeholders', '1'); | ||
| 20 | - this.graph.setAttributeForCell(cell, 'date', "成都云腾五洲科技有限公司"); | ||
| 21 | - return this.createVertexTemplateFromCells([cell], cell.geometry.width, cell.geometry.height, 'Timestamps'); | ||
| 22 | - })), | ||
| 23 | - this.addEntry('动态时间', mxUtils.bind(this, function() | ||
| 24 | - { | ||
| 25 | - var cell = new mxCell('<div>%currentDate%</div><div style="font-size:30px">%date{HH:MM:ss}%</div>', new mxGeometry(0, 0, 180, 60), 'text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;overflow=hidden;'); | ||
| 26 | - cell.vertex = true; | ||
| 27 | - this.graph.setAttributeForCell(cell, 'placeholders', '1'); | ||
| 28 | - this.graph.setAttributeForCell(cell, 'currentDate', currentDate); | ||
| 29 | - return this.createVertexTemplateFromCells([cell], cell.geometry.width, cell.geometry.height, 'Variable'); | ||
| 30 | - })), | ||
| 31 | - ]; | 1 | +(function () { |
| 2 | + // Adds Atlassian shapes | ||
| 3 | + Sidebar.prototype.addBasicComponentsPalette = function () { | ||
| 4 | + var sb = this; | ||
| 5 | + var gn = 'mxgraph.component'; | ||
| 6 | + var dt = 'component '; | ||
| 7 | + var lineTags = 'line lines connector connectors connection connections arrow arrows ' | ||
| 8 | + this.setCurrentSearchEntryLibrary('general', 'component'); | ||
| 9 | + var currentDate = getCurrentDate(); | ||
| 10 | + var fns = [ | ||
| 11 | + this.createVertexTemplateEntry('text;strokeColor=none;fillColor=none;html=1;fontSize=24;fontStyle=1;verticalAlign=middle;align=center;', 100, 40, 'Title', 'Title', null, null, 'text heading title'), | ||
| 12 | + this.createEdgeTemplateEntry('shape=filledEdge;rounded=1;fixDash=1;endArrow=none;strokeWidth=10;fillColor=#BAFDFF;edgeStyle=orthogonalEdgeStyle;flowAnimation=1;strokeColor=#6666FF;endFill=1;metaEdit=0;backgroundOutline=0;', 60, 40, '', '线条'), | ||
| 13 | + this.addEntry('timestamp date time text label', mxUtils.bind(this, function () { | ||
| 14 | + var cell = new mxCell('%date{yyyy-mm-dd ddd HH:MM:ss}%', new mxGeometry(0, 0, 160, 20), 'text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;overflow=hidden;'); | ||
| 15 | + cell.vertex = true; | ||
| 16 | + this.graph.setAttributeForCell(cell, 'placeholders', '1'); | ||
| 17 | + this.graph.setAttributeForCell(cell, 'date', "成都云腾五洲科技有限公司"); | ||
| 18 | + return this.createVertexTemplateFromCells([cell], cell.geometry.width, cell.geometry.height, 'Timestamps'); | ||
| 19 | + })), | ||
| 20 | + this.addEntry('动态时间', mxUtils.bind(this, function () { | ||
| 21 | + var cell = new mxCell('<div>%currentDate%</div><div style="font-size:30px">%date{HH:MM:ss}%</div>', new mxGeometry(0, 0, 180, 60), 'text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;overflow=hidden;'); | ||
| 22 | + cell.vertex = true; | ||
| 23 | + this.graph.setAttributeForCell(cell, 'placeholders', '1'); | ||
| 24 | + this.graph.setAttributeForCell(cell, 'currentDate', currentDate); | ||
| 25 | + return this.createVertexTemplateFromCells([cell], cell.geometry.width, cell.geometry.height, 'Variable'); | ||
| 26 | + })), | ||
| 27 | + this.addEntry('real time', mxUtils.bind(this, function () { | ||
| 28 | + const template = `<div class="thingKit-component__real-time"><div class="real-time__date">%currentDate%</div> <div style="font-size:30px" class="real-time__now">%date{HH:MM:ss}%</div></div>` | ||
| 29 | + const cell = new mxCell(template, new mxGeometry(0, 0, 180, 60), 'text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;overflow=hidden;'); | ||
| 30 | + cell.vertex = true; | ||
| 31 | + this.graph.setAttributeForCell(cell, 'placeholders', '1'); | ||
| 32 | + this.graph.setAttributeForCell(cell, 'currentDate', currentDate); | ||
| 33 | + return this.createVertexTemplateFromCells([cell], cell.geometry.width, cell.geometry.height, 'realTime'); | ||
| 34 | + })), | ||
| 35 | + ]; | ||
| 32 | 36 | ||
| 33 | - this.addPaletteFunctions('component', '基础元件', false, fns); | ||
| 34 | - this.setCurrentSearchEntryLibrary(); | ||
| 35 | - }; | 37 | + this.addPaletteFunctions('component', '基础元件', false, fns); |
| 38 | + this.setCurrentSearchEntryLibrary(); | ||
| 39 | + }; | ||
| 36 | 40 | ||
| 37 | - //封装日期函数 | ||
| 38 | - function getCurrentDate() { | ||
| 39 | - var date = new Date(); //创建日期对象 | ||
| 40 | - var year = date.getFullYear(); | ||
| 41 | - var month = date.getMonth() + 1; | ||
| 42 | - var dates = date.getDate(); | ||
| 43 | - arr = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六', ] | ||
| 44 | - var day = date.getDay(); | ||
| 45 | - return year + '年' + month + '月' + dates + '日 ' + arr[day]; | ||
| 46 | - } | 41 | + //封装日期函数 |
| 42 | + function getCurrentDate() { | ||
| 43 | + var date = new Date(); //创建日期对象 | ||
| 44 | + var year = date.getFullYear(); | ||
| 45 | + var month = date.getMonth() + 1; | ||
| 46 | + var dates = date.getDate(); | ||
| 47 | + arr = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六',] | ||
| 48 | + var day = date.getDay(); | ||
| 49 | + return year + '年' + month + '月' + dates + '日 ' + arr[day]; | ||
| 50 | + } | ||
| 47 | })(); | 51 | })(); |
| @@ -4879,7 +4879,8 @@ DataFormatPanel.prototype.addDataFont = function (container) { | @@ -4879,7 +4879,8 @@ DataFormatPanel.prototype.addDataFont = function (container) { | ||
| 4879 | const ss = ui.getSelectionState(); | 4879 | const ss = ui.getSelectionState(); |
| 4880 | const vertices = ss.vertices || [] | 4880 | const vertices = ss.vertices || [] |
| 4881 | 4881 | ||
| 4882 | - console.log(vertices) | 4882 | + console.log(this.editorUi) |
| 4883 | + console.log(ss.vertices) | ||
| 4883 | /** | 4884 | /** |
| 4884 | * @description 不是单一节点则不进入数据绑定 | 4885 | * @description 不是单一节点则不进入数据绑定 |
| 4885 | */ | 4886 | */ |
| @@ -5404,9 +5405,13 @@ DataFormatPanel.prototype.addDataFont = function (container) { | @@ -5404,9 +5405,13 @@ DataFormatPanel.prototype.addDataFont = function (container) { | ||
| 5404 | type: item.type, | 5405 | type: item.type, |
| 5405 | enabled: true | 5406 | enabled: true |
| 5406 | }) | 5407 | }) |
| 5408 | + } else { | ||
| 5409 | + value[item.category].push({ | ||
| 5410 | + type: item.type, | ||
| 5411 | + enabled: false | ||
| 5412 | + }) | ||
| 5407 | } | 5413 | } |
| 5408 | } | 5414 | } |
| 5409 | - | ||
| 5410 | const [err, res] = await to(ConfigurationNodeApi.updateNodeInfo(value)) | 5415 | const [err, res] = await to(ConfigurationNodeApi.updateNodeInfo(value)) |
| 5411 | if (err) return | 5416 | if (err) return |
| 5412 | UseLayUi.successMsg() | 5417 | UseLayUi.successMsg() |
| @@ -6232,7 +6237,8 @@ DataFormatPanel.prototype.addDataFont = function (container) { | @@ -6232,7 +6237,8 @@ DataFormatPanel.prototype.addDataFont = function (container) { | ||
| 6232 | */ | 6237 | */ |
| 6233 | function echoOrgTree(id) { | 6238 | function echoOrgTree(id) { |
| 6234 | const node = UseLayUi.findTreeObjectByField(treeList, id) | 6239 | const node = UseLayUi.findTreeObjectByField(treeList, id) |
| 6235 | - $(`#${ enumActionEl.ORG_EL }`).find(`input[name="${ enumConst.ORG_ID }"]`).parent().find('span').html(node.name) | 6240 | + console.log(node) |
| 6241 | + $(`#${ enumActionEl.ORG_EL }`).find(`input[name="${ enumConst.ORG_ID }"]`).parent().find('span').html(node?.name) | ||
| 6236 | } | 6242 | } |
| 6237 | 6243 | ||
| 6238 | async function submit(callback) { | 6244 | async function submit(callback) { |
| @@ -10899,11 +10905,16 @@ class DispatchCenter { | @@ -10899,11 +10905,16 @@ class DispatchCenter { | ||
| 10899 | 10905 | ||
| 10900 | /** | 10906 | /** |
| 10901 | * @description 节点映射 | 10907 | * @description 节点映射 |
| 10902 | - * @type {Map<string, object>} | 10908 | + * @type {Map<string, Map<string, object>>} |
| 10903 | */ | 10909 | */ |
| 10904 | nodeMapping | 10910 | nodeMapping |
| 10905 | 10911 | ||
| 10906 | /** | 10912 | /** |
| 10913 | + * @description | ||
| 10914 | + */ | ||
| 10915 | + editorUi | ||
| 10916 | + | ||
| 10917 | + /** | ||
| 10907 | * @description 当前页信息 | 10918 | * @description 当前页信息 |
| 10908 | */ | 10919 | */ |
| 10909 | currentPage | 10920 | currentPage |
| @@ -10940,8 +10951,36 @@ class DispatchCenter { | @@ -10940,8 +10951,36 @@ class DispatchCenter { | ||
| 10940 | */ | 10951 | */ |
| 10941 | static rawContentId | 10952 | static rawContentId |
| 10942 | 10953 | ||
| 10954 | + /** | ||
| 10955 | + * @description 判断事件监听器时候已经绑定过 | ||
| 10956 | + */ | ||
| 10957 | + static eventListenerIsExist = false | ||
| 10958 | + | ||
| 10959 | + static enumEventType = { | ||
| 10960 | + DOWN: 'DOWN', | ||
| 10961 | + UP: 'UP', | ||
| 10962 | + SINGLE: 'SINGLE', | ||
| 10963 | + DOUBLE: 'DOUBLE', | ||
| 10964 | + } | ||
| 10965 | + | ||
| 10966 | + static enumDynamicEffectType = { | ||
| 10967 | + DISPLAY: 'DISPLAY', | ||
| 10968 | + FLASH: 'FLASH', | ||
| 10969 | + ROTATE: 'ROTATE', | ||
| 10970 | + } | ||
| 10971 | + | ||
| 10972 | + static enumPageType = { | ||
| 10973 | + PAGE: 'PAGE', | ||
| 10974 | + LINK: 'LINK' | ||
| 10975 | + | ||
| 10976 | + } | ||
| 10977 | + | ||
| 10978 | + | ||
| 10943 | constructor(editorUi, currentPage) { | 10979 | constructor(editorUi, currentPage) { |
| 10944 | this.nodeMapping = new Map() | 10980 | this.nodeMapping = new Map() |
| 10981 | + this.editorUi = editorUi | ||
| 10982 | + | ||
| 10983 | + // mxEvent.addListener(document, (mxClient.IS_POINTER) ? 'pointerup' : 'mouseup', this.pointerUpHandler); | ||
| 10945 | this.init(editorUi, currentPage) | 10984 | this.init(editorUi, currentPage) |
| 10946 | } | 10985 | } |
| 10947 | 10986 | ||
| @@ -10953,7 +10992,7 @@ class DispatchCenter { | @@ -10953,7 +10992,7 @@ class DispatchCenter { | ||
| 10953 | init(editorUi, currentPage) { | 10992 | init(editorUi, currentPage) { |
| 10954 | this.createEventBus() | 10993 | this.createEventBus() |
| 10955 | this.saveContentInfo(editorUi, currentPage) | 10994 | this.saveContentInfo(editorUi, currentPage) |
| 10956 | - // this.createGraphEventListener() | 10995 | + this.createGraphEventListener() |
| 10957 | this.connectSocket() | 10996 | this.connectSocket() |
| 10958 | this.getContentDataNode() | 10997 | this.getContentDataNode() |
| 10959 | } | 10998 | } |
| @@ -10996,30 +11035,33 @@ class DispatchCenter { | @@ -10996,30 +11035,33 @@ class DispatchCenter { | ||
| 10996 | * @description 创建图层事件监听器 | 11035 | * @description 创建图层事件监听器 |
| 10997 | */ | 11036 | */ |
| 10998 | createGraphEventListener() { | 11037 | createGraphEventListener() { |
| 10999 | - console.log(mxEvent) | ||
| 11000 | - // this.graph.addListener(mxEvent.MOUSE_DOWN, (sender, event) => { | ||
| 11001 | - // console.log('down') | ||
| 11002 | - // console.log(event) | ||
| 11003 | - // console.log(sender) | ||
| 11004 | - // }) | ||
| 11005 | - // this.graph.addListener(mxEvent.MOUSE_UP, (sender, event) => { | ||
| 11006 | - // console.log('up') | ||
| 11007 | - // console.log(event) | ||
| 11008 | - // console.log(sender) | ||
| 11009 | - // }) | ||
| 11010 | - console.log(this.contentAllCell) | ||
| 11011 | - const node = this.contentAllCell.find(item => item.id === "xu8fz6ypefe3Lfq39emV-10") | ||
| 11012 | - console.log(node) | ||
| 11013 | - // node.addListener(mxEvent.CLICK, (sender, event) => { | ||
| 11014 | - // console.log('click') | ||
| 11015 | - // console.log(event) | ||
| 11016 | - // console.log(sender) | ||
| 11017 | - // }) | ||
| 11018 | - // this.graph.addListener(mxEvent.DOUBLE_CLICK, (sender, event) => { | ||
| 11019 | - // console.log('double click') | ||
| 11020 | - // console.log(event) | ||
| 11021 | - // console.log(sender) | ||
| 11022 | - // }) | 11038 | + if (DispatchCenter.eventListenerIsExist) return |
| 11039 | + | ||
| 11040 | + const graphDblClick = this.graph.dblClick; | ||
| 11041 | + this.graph.dblClick = (...args) => { | ||
| 11042 | + this.handleDoubleClickEvent(...args) | ||
| 11043 | + graphDblClick.apply(this.graph, args) | ||
| 11044 | + } | ||
| 11045 | + | ||
| 11046 | + | ||
| 11047 | + const graphClick = this.graph.click; | ||
| 11048 | + this.graph.click = (...args) => { | ||
| 11049 | + this.handleClickEvent(...args) | ||
| 11050 | + graphClick.apply(this.graph, args) | ||
| 11051 | + } | ||
| 11052 | + | ||
| 11053 | + const graphFireMouseEvent = this.graph.fireMouseEvent; | ||
| 11054 | + this.graph.fireMouseEvent = (eventName, event, sender) => { | ||
| 11055 | + if (eventName === mxEvent.MOUSE_DOWN) { | ||
| 11056 | + this.handleMouseDownEvent(eventName, event, sender) | ||
| 11057 | + } | ||
| 11058 | + if (eventName === mxEvent.MOUSE_UP) { | ||
| 11059 | + this.handleMouseUpEvent(eventName, event, sender) | ||
| 11060 | + } | ||
| 11061 | + graphFireMouseEvent.apply(this.graph, [eventName, event, sender]); | ||
| 11062 | + }; | ||
| 11063 | + | ||
| 11064 | + DispatchCenter.eventListenerIsExist = true | ||
| 11023 | } | 11065 | } |
| 11024 | 11066 | ||
| 11025 | /** | 11067 | /** |
| @@ -11029,6 +11071,7 @@ class DispatchCenter { | @@ -11029,6 +11071,7 @@ class DispatchCenter { | ||
| 11029 | */ | 11071 | */ |
| 11030 | saveContentInfo(editorUi, currentPage) { | 11072 | saveContentInfo(editorUi, currentPage) { |
| 11031 | const editor = editorUi.editor | 11073 | const editor = editorUi.editor |
| 11074 | + console.log(editorUi) | ||
| 11032 | this.graph = editor.graph | 11075 | this.graph = editor.graph |
| 11033 | this.currentPage = currentPage | 11076 | this.currentPage = currentPage |
| 11034 | this.contentAllCell = this.graph.getDefaultParent().children | 11077 | this.contentAllCell = this.graph.getDefaultParent().children |
| @@ -11041,11 +11084,14 @@ class DispatchCenter { | @@ -11041,11 +11084,14 @@ class DispatchCenter { | ||
| 11041 | const { node: { id } = {} } = this.currentPage | 11084 | const { node: { id } = {} } = this.currentPage |
| 11042 | if (!id) return | 11085 | if (!id) return |
| 11043 | const [err, res] = await to(ConfigurationNodeApi.getConfigurationInfo('CONTENT', id)) | 11086 | const [err, res] = await to(ConfigurationNodeApi.getConfigurationInfo('CONTENT', id)) |
| 11044 | - const { dataSources } = res | 11087 | + const { dataSources, event, act } = res |
| 11045 | const sendMsg = { | 11088 | const sendMsg = { |
| 11046 | tsSubCmds: this.generatorDataSourceMapping(dataSources) | 11089 | tsSubCmds: this.generatorDataSourceMapping(dataSources) |
| 11047 | } | 11090 | } |
| 11091 | + this.generatorEventMapping(event) | ||
| 11092 | + this.generatorActionEffectMapping(act) | ||
| 11048 | this.sendMessageToGetRealTimeData(sendMsg) | 11093 | this.sendMessageToGetRealTimeData(sendMsg) |
| 11094 | + console.log(this.nodeMapping) | ||
| 11049 | } | 11095 | } |
| 11050 | 11096 | ||
| 11051 | /** | 11097 | /** |
| @@ -11073,17 +11119,45 @@ class DispatchCenter { | @@ -11073,17 +11119,45 @@ class DispatchCenter { | ||
| 11073 | } | 11119 | } |
| 11074 | 11120 | ||
| 11075 | this.subscribeDataSources(datum, eventName, attr) | 11121 | this.subscribeDataSources(datum, eventName, attr) |
| 11076 | - this.nodeMapping.set(deviceId, sendMsgTemplate) | ||
| 11077 | return sendMsgTemplate | 11122 | return sendMsgTemplate |
| 11078 | }) | 11123 | }) |
| 11079 | } | 11124 | } |
| 11080 | 11125 | ||
| 11081 | /** | 11126 | /** |
| 11127 | + * @description 事件映射 | ||
| 11128 | + * @param event | ||
| 11129 | + */ | ||
| 11130 | + generatorEventMapping(event = []) { | ||
| 11131 | + for (const item of event) { | ||
| 11132 | + const { content, id: nodeId, enabled, type } = item | ||
| 11133 | + if (!enabled) continue | ||
| 11134 | + if (!this.nodeMapping.has(nodeId)) this.nodeMapping.set(nodeId, new Map()) | ||
| 11135 | + const temp = this.nodeMapping.get(nodeId) | ||
| 11136 | + temp.set(type, content) | ||
| 11137 | + } | ||
| 11138 | + } | ||
| 11139 | + | ||
| 11140 | + /** | ||
| 11141 | + * @description 动效映射 | ||
| 11142 | + * @param act | ||
| 11143 | + */ | ||
| 11144 | + generatorActionEffectMapping(act = []) { | ||
| 11145 | + for (const item of act) { | ||
| 11146 | + const { condition, id: nodeId, enabled, type } = item | ||
| 11147 | + if (!enabled) continue | ||
| 11148 | + if (!this.nodeMapping.has(nodeId)) this.nodeMapping.set(nodeId, new Map()) | ||
| 11149 | + const temp = this.nodeMapping.get(nodeId) | ||
| 11150 | + temp.set(type, condition) | ||
| 11151 | + } | ||
| 11152 | + } | ||
| 11153 | + | ||
| 11154 | + /** | ||
| 11082 | * @description 分发事件 | 11155 | * @description 分发事件 |
| 11083 | */ | 11156 | */ |
| 11084 | publishEvent(eventName, data) { | 11157 | publishEvent(eventName, data) { |
| 11085 | Object.keys(data).forEach(() => { | 11158 | Object.keys(data).forEach(() => { |
| 11086 | this.eventBus.emit(eventName, data) | 11159 | this.eventBus.emit(eventName, data) |
| 11160 | + | ||
| 11087 | }) | 11161 | }) |
| 11088 | } | 11162 | } |
| 11089 | 11163 | ||
| @@ -11118,6 +11192,81 @@ class DispatchCenter { | @@ -11118,6 +11192,81 @@ class DispatchCenter { | ||
| 11118 | } | 11192 | } |
| 11119 | } | 11193 | } |
| 11120 | 11194 | ||
| 11195 | + /** | ||
| 11196 | + * @description 处理按下事件 | ||
| 11197 | + * @param eventName | ||
| 11198 | + * @param event | ||
| 11199 | + * @param sender | ||
| 11200 | + */ | ||
| 11201 | + handleMouseDownEvent(eventName, event, sender) { | ||
| 11202 | + const { state: { cell: { id } = {} } = {} } = event | ||
| 11203 | + const temp = this.nodeMapping.get(id) | ||
| 11204 | + if (temp && temp.has(DispatchCenter.enumEventType.DOWN)) { | ||
| 11205 | + const content = temp.get(DispatchCenter.enumEventType.DOWN) | ||
| 11206 | + console.log('mouse down event', content) | ||
| 11207 | + } | ||
| 11208 | + } | ||
| 11209 | + | ||
| 11210 | + /** | ||
| 11211 | + * @description 处理抬起事件 | ||
| 11212 | + * @param eventName | ||
| 11213 | + * @param event | ||
| 11214 | + * @param sender | ||
| 11215 | + */ | ||
| 11216 | + handleMouseUpEvent(eventName, event, sender) { | ||
| 11217 | + const { state: { cell: { id } = {} } = {} } = event | ||
| 11218 | + const temp = this.nodeMapping.get(id) | ||
| 11219 | + if (temp && temp.has(DispatchCenter.enumEventType.UP)) { | ||
| 11220 | + const content = temp.get(DispatchCenter.enumEventType.UP) | ||
| 11221 | + console.log('mouse up event', content) | ||
| 11222 | + } | ||
| 11223 | + } | ||
| 11224 | + | ||
| 11225 | + /** | ||
| 11226 | + * @description 鼠标双击事件 | ||
| 11227 | + * @param event | ||
| 11228 | + */ | ||
| 11229 | + handleClickEvent(event) { | ||
| 11230 | + const { state: { cell: { id } = {} } = {} } = event | ||
| 11231 | + const temp = this.nodeMapping.get(id) | ||
| 11232 | + if (temp && temp.has(DispatchCenter.enumEventType.SINGLE)) { | ||
| 11233 | + const content = temp.get(DispatchCenter.enumEventType.SINGLE) | ||
| 11234 | + const { type, value } = content | ||
| 11235 | + if (type === DispatchCenter.enumPageType.PAGE) { | ||
| 11236 | + this.jumpPage(value) | ||
| 11237 | + } else if (type === DispatchCenter.enumPageType.LINK) { | ||
| 11238 | + window.open(value) | ||
| 11239 | + } | ||
| 11240 | + } | ||
| 11241 | + } | ||
| 11242 | + | ||
| 11243 | + /** | ||
| 11244 | + * @description 鼠标单击事件 | ||
| 11245 | + * @param event | ||
| 11246 | + * @param cell | ||
| 11247 | + */ | ||
| 11248 | + handleDoubleClickEvent(event, cell = {}) { | ||
| 11249 | + const { id } = cell | ||
| 11250 | + const temp = this.nodeMapping.get(id) | ||
| 11251 | + if (temp && temp.has(DispatchCenter.enumEventType.DOUBLE)) { | ||
| 11252 | + const content = temp.get(DispatchCenter.enumEventType.DOUBLE) | ||
| 11253 | + const { type, value } = content | ||
| 11254 | + if (type === DispatchCenter.enumPageType.PAGE) { | ||
| 11255 | + this.jumpPage(value) | ||
| 11256 | + } else if (type === DispatchCenter.enumPageType.LINK) { | ||
| 11257 | + window.open(value) | ||
| 11258 | + } | ||
| 11259 | + } | ||
| 11260 | + } | ||
| 11261 | + | ||
| 11262 | + /** | ||
| 11263 | + * @description 跳转页面 | ||
| 11264 | + */ | ||
| 11265 | + jumpPage(page) { | ||
| 11266 | + // const page = 'ikp4NlRjQpI8WxeSibFj' | ||
| 11267 | + this.editorUi.handleCustomLink(`data:page/id,${ page }`) | ||
| 11268 | + } | ||
| 11269 | + | ||
| 11121 | 11270 | ||
| 11122 | /** | 11271 | /** |
| 11123 | * @description 返回 DispatchCenter 实例 当contentID变化时重新创建实例 | 11272 | * @description 返回 DispatchCenter 实例 当contentID变化时重新创建实例 |
| @@ -11138,3 +11287,22 @@ class DispatchCenter { | @@ -11138,3 +11287,22 @@ class DispatchCenter { | ||
| 11138 | 11287 | ||
| 11139 | } | 11288 | } |
| 11140 | 11289 | ||
| 11290 | +function globalInit() { | ||
| 11291 | + init() | ||
| 11292 | + | ||
| 11293 | + function init() { | ||
| 11294 | + initRealTime() | ||
| 11295 | + } | ||
| 11296 | + | ||
| 11297 | + function initRealTime() { | ||
| 11298 | + setInterval(() => { | ||
| 11299 | + const allTimeNode = document.querySelectorAll('.thingKit-component__real-time .real-time__now') | ||
| 11300 | + for (const time of allTimeNode) { | ||
| 11301 | + const date = new Date() | ||
| 11302 | + time.innerHTML = `${ date.getHours() }:${ date.getMinutes() < 10 ? '0' : '' }${ date.getMinutes() }:${ date.getSeconds() < 10 ? '0' : '' }${ date.getSeconds() }` | ||
| 11303 | + } | ||
| 11304 | + }, 1000) | ||
| 11305 | + } | ||
| 11306 | +} | ||
| 11307 | + | ||
| 11308 | +globalInit() |