From cb5da8a7b240eabfa611a53f61d8ab7c0f8f52c1 Mon Sep 17 00:00:00 2001 From: dong <58670809@qq.com> Date: Thu, 3 Nov 2022 18:32:36 +0800 Subject: [PATCH 01/14] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/scripts/cmdPlugin/OperationHandler.js | 54 +++++++++ .../newMap/display/terminals/dispatchCmd.vue | 114 +++++++++++++----- .../display/terminals/dispatcherManage.vue | 16 ++- 3 files changed, 152 insertions(+), 32 deletions(-) diff --git a/src/scripts/cmdPlugin/OperationHandler.js b/src/scripts/cmdPlugin/OperationHandler.js index 04262930b..2337be926 100644 --- a/src/scripts/cmdPlugin/OperationHandler.js +++ b/src/scripts/cmdPlugin/OperationHandler.js @@ -4216,6 +4216,60 @@ export const OperationEvent = { domId: '_Tips-TrainingDesign-menuButton-faultMode' } } + }, + // 调度台 + DispatcherManage: { + menu: { + schedulingPlan: { + operation: '1601', + domId: '_Tips-DispatcherManage-menu-schedulingPlan' + }, + dispatchingCommand: { + operation: '1602', + domId: '_Tips-DispatcherManage-menu-dispatchingCommand' + }, + dispatchWork: { + operation: '1603', + domId: '_Tips-DispatcherManage-menu-dispatchWork' + }, + dataUpdate: { + operation: '1604', + domId: '_Tips-DispatcherManage-menu-dataUpdate' + }, + timeLock: { + operation: '1605', + domId: '_Tips-DispatcherManage-menu-timeLock' + } + } + }, + // 调度命令 + DispatchCmd: { + menuButton: { + refreshSearch: { + operation: '1701', + domId: '_Tips-DispatchCmd-menuButton-refreshSearch' + }, + createCmd: { + operation: '1702', + domId: '_Tips-DispatchCmd-menuButton-createCmd' + }, + search: { + operation: '1703', + domId: '_Tips-DispatchCmd-menuButton-search' + }, + allographCmd: { + operation: '1704', + domId: '_Tips-DispatchCmd-menuButton-allographCmd{TOP}' + }, + sendCmd: { + operation: '1705', + domId: '_Tips-DispatchCmd-menuButton-sendCmd{TOP}' + }, + saveCacheData: { + operation: '1706', + domId: '_Tips-DispatchCmd-menuButton-saveCacheData{TOP}' + } + } } }; diff --git a/src/views/newMap/display/terminals/dispatchCmd.vue b/src/views/newMap/display/terminals/dispatchCmd.vue index 252566852..614014830 100644 --- a/src/views/newMap/display/terminals/dispatchCmd.vue +++ b/src/views/newMap/display/terminals/dispatchCmd.vue @@ -19,8 +19,8 @@
- 刷新 - 新建调度命令 + 刷新 + 新建调度命令
@@ -212,7 +212,7 @@
- 查询 + 查询 清除
@@ -403,9 +403,9 @@
- 代签 - 下达 - 缓存 + 代签 + 下达 + 缓存
@@ -421,6 +421,7 @@ import { sendCommandNew } from '@/api/jmap/training'; import { mapState } from 'vuex'; import { parseTime } from '@/utils/index'; +import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler'; export default { name:'DispatcherCmd', data() { @@ -645,6 +646,9 @@ export default { this.getTableHeight(); }, methods:{ + getDomObj(key) { + return OperationEvent.DispatchCmd.menuButton[key]; + }, activeChange(key) { this[key] = !this[key]; this.getOperateTableHeight(); @@ -749,9 +753,18 @@ export default { }); }, search() { - this.searchTable = []; - this.searchCmd().then(res => { - this.getSearchTable(); + const operate = { + operation: this.getDomObj('search').operation, + param: this.searchObj, + userOperationType: 'leftClick' + }; + this.$store.dispatch('training/nextNew', operate).then(({ valid }) => { + if (valid) { + this.searchTable = []; + this.searchCmd().then(res => { + this.getSearchTable(); + }); + } }); }, getSearchTable() { @@ -868,6 +881,11 @@ export default { }, refreshSearch() { console.log('刷新'); + const operate = { + operation: this.getDomObj('refreshSearch').operation, + userOperationType: 'leftClick' + }; + this.$store.dispatch('training/nextNew', operate); this.searchCmd(); }, clearCondition() { @@ -913,6 +931,11 @@ export default { resolve(); } }).then(() => { + const operate = { + operation: this.getDomObj('createCmd').operation, + userOperationType: 'leftClick' + }; + this.$store.dispatch('training/nextNew', operate); this.initData(); this.getSenderName(); sendCommandNew(this.group, 'CTC_NEW_DIS_COMMAND', {}).then((res) => { @@ -979,7 +1002,7 @@ export default { }; if (obj) { data = { - name: obj.label, + name: obj.label || '', rsCompany: false, cpType: this.typeTransition[obj.type] || obj.type, code: obj.deviceCode || this.DisStationId @@ -1037,9 +1060,18 @@ export default { this.$messageBox('请选择受令单位'); return; } - this.cacheCmd(showMsg).then(suc => { - this.searchCmd(); - this.initData(); + const operate = { + operation: this.getDomObj('saveCacheData').operation, + param: this.command, + userOperationType: 'leftClick' + }; + this.$store.dispatch('training/nextNew', operate).then(({ valid }) => { + if (valid) { + this.cacheCmd(showMsg).then(suc => { + this.searchCmd(); + this.initData(); + }); + } }); } }); @@ -1088,13 +1120,23 @@ export default { type: 'warning' }).then(() => { console.log('代签'); - sendCommandNew(this.group, 'CTC_SIGN_DIS_COMMAND', {cmdId: this.command.cmdId, rcId: this.allographRow.cpId, proxySign: true}).then((res) => { - console.log(res, '---res'); - this.$message.success('代签成功!'); - this.searchCmd(); - this.initData(); - }).catch(error => { - this.$messageBox('代签令失败:' + error.message); + const params = {cmdId: this.command.cmdId, rcId: this.allographRow.cpId, proxySign: true}; + const operate = { + operation: this.getDomObj('allographCmd').operation, + param: params, + userOperationType: 'leftClick' + }; + this.$store.dispatch('training/nextNew', operate).then(({ valid }) => { + if (valid) { + sendCommandNew(this.group, 'CTC_SIGN_DIS_COMMAND', params).then((res) => { + console.log(res, '---res'); + this.$message.success('代签成功!'); + this.searchCmd(); + this.initData(); + }).catch(error => { + this.$messageBox('代签令失败:' + error.message); + }); + } }); }).catch(() => { console.log('取消代签'); @@ -1125,17 +1167,27 @@ export default { this.$messageBox('请选择受令单位'); return; } - this.cacheCmd().then(suc => { - sendCommandNew(this.group, 'CTC_SEND_DIS_COMMAND', {cmdId: this.command.cmdId}).then((res) => { - console.log(res, '---res'); - this.$message.success('发送调度命令成功!'); - this.searchCmd(); - this.initData(); - }).catch(error => { - this.$messageBox('发送调度命令失败:' + error.message); - }); - }).catch(err => { - console.log('缓存调度命令失败', err); + const params = {cmdId: this.command.cmdId}; + const operate = { + operation: this.getDomObj('sendCmd').operation, + param: params, + userOperationType: 'leftClick' + }; + this.$store.dispatch('training/nextNew', operate).then(({ valid }) => { + if (valid) { + this.cacheCmd().then(suc => { + sendCommandNew(this.group, 'CTC_SEND_DIS_COMMAND', params).then((res) => { + console.log(res, '---res'); + this.$message.success('发送调度命令成功!'); + this.searchCmd(); + this.initData(); + }).catch(error => { + this.$messageBox('发送调度命令失败:' + error.message); + }); + }).catch(err => { + console.log('缓存调度命令失败', err); + }); + } }); } }); diff --git a/src/views/newMap/display/terminals/dispatcherManage.vue b/src/views/newMap/display/terminals/dispatcherManage.vue index d3f9a27da..e049331dd 100644 --- a/src/views/newMap/display/terminals/dispatcherManage.vue +++ b/src/views/newMap/display/terminals/dispatcherManage.vue @@ -13,7 +13,7 @@ :src="item.imgUrl" /> -
{{ item.label }}
+
{{ item.label }}
@@ -24,6 +24,7 @@ import ZhanchangIcon from '@/assets/dispatcherStation/zhanchang.png'; import YunxingIcon from '@/assets/dispatcherStation/yunxing.png'; import CmdIcon from '@/assets/dispatcherStation/cmd.png'; +import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler'; export default { name: 'DispatcherManage', components: { @@ -37,26 +38,31 @@ export default { { label: '运行图', refPath: 'schedulingPlan', + domId: 'schedulingPlan', imgUrl: YunxingIcon }, { label: '调度命令', refPath: 'dispatchingCommand', + domId: 'dispatchingCommand', imgUrl: CmdIcon }, { label: '站场图', refPath: 'dispatchWork', + domId: 'dispatchWork', imgUrl: ZhanchangIcon }, { label: '数据更新', refPath: '', + domId: 'dataUpdate', imgUrl: CmdIcon }, { label: '时间同步', refPath: '', + domId: 'timeLock', imgUrl: CmdIcon } ], @@ -75,6 +81,9 @@ export default { computed: { group() { return this.$route.query.group; + }, + DispatcherManageDomObj() { + return OperationEvent.DispatcherManage.menu || {}; } }, mounted() { @@ -95,6 +104,11 @@ export default { this.$emit('pictureChange', refPath); }, 100); } + const operate = { + operation: this.DispatcherManageDomObj[refPath].operation, + userOperationType: 'leftClick' + }; + this.$store.dispatch('training/nextNew', operate); }, clickMenu(refPath) { this.$alert('实现中......', '提示', { From 15effd12f46a94acae3b80b67d644b7c2902ce37 Mon Sep 17 00:00:00 2001 From: dong <58670809@qq.com> Date: Fri, 4 Nov 2022 15:42:52 +0800 Subject: [PATCH 02/14] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/scripts/cmdPlugin/OperationHandler.js | 6 +- src/utils/date.js | 2 +- .../newMap/display/terminals/dispatchCmd.vue | 5 +- .../trainingList/trainingPositionTip.vue | 61 +++++++++++++------ .../display/trainingList/trainingTip.vue | 2 +- src/views/trainingManage/designIndex.vue | 4 ++ src/views/trainingManage/list.vue | 4 +- 7 files changed, 56 insertions(+), 28 deletions(-) diff --git a/src/scripts/cmdPlugin/OperationHandler.js b/src/scripts/cmdPlugin/OperationHandler.js index 2337be926..01512a517 100644 --- a/src/scripts/cmdPlugin/OperationHandler.js +++ b/src/scripts/cmdPlugin/OperationHandler.js @@ -4259,15 +4259,15 @@ export const OperationEvent = { }, allographCmd: { operation: '1704', - domId: '_Tips-DispatchCmd-menuButton-allographCmd{TOP}' + domId: '_Tips-DispatchCmd-menuButton-allographCmd{BOTTOM}' }, sendCmd: { operation: '1705', - domId: '_Tips-DispatchCmd-menuButton-sendCmd{TOP}' + domId: '_Tips-DispatchCmd-menuButton-sendCmd{BOTTOM}' }, saveCacheData: { operation: '1706', - domId: '_Tips-DispatchCmd-menuButton-saveCacheData{TOP}' + domId: '_Tips-DispatchCmd-menuButton-saveCacheData{BOTTOM}' } } } diff --git a/src/utils/date.js b/src/utils/date.js index c1d33503b..afb150905 100644 --- a/src/utils/date.js +++ b/src/utils/date.js @@ -106,7 +106,7 @@ export function objectIsEqual(obj1, obj2) { } // 仅过滤值为null的项 const arr1 = Object.keys(obj1).filter(key => { return obj1[key] != null; }); - const arr2 = Object.keys(obj2).filter(key => { return obj1[key] != null; }); + const arr2 = Object.keys(obj2).filter(key => { return obj2[key] != null; }); if (arr1.length !== arr2.length) { return false; } diff --git a/src/views/newMap/display/terminals/dispatchCmd.vue b/src/views/newMap/display/terminals/dispatchCmd.vue index 614014830..6bf720427 100644 --- a/src/views/newMap/display/terminals/dispatchCmd.vue +++ b/src/views/newMap/display/terminals/dispatchCmd.vue @@ -1060,9 +1060,10 @@ export default { this.$messageBox('请选择受令单位'); return; } + const params = Object.assign({}, this.command); const operate = { operation: this.getDomObj('saveCacheData').operation, - param: this.command, + param: params, userOperationType: 'leftClick' }; this.$store.dispatch('training/nextNew', operate).then(({ valid }) => { @@ -1167,7 +1168,7 @@ export default { this.$messageBox('请选择受令单位'); return; } - const params = {cmdId: this.command.cmdId}; + const params = Object.assign({}, this.command); const operate = { operation: this.getDomObj('sendCmd').operation, param: params, diff --git a/src/views/newMap/display/trainingList/trainingPositionTip.vue b/src/views/newMap/display/trainingList/trainingPositionTip.vue index a69cbcb7b..ee7fdd404 100644 --- a/src/views/newMap/display/trainingList/trainingPositionTip.vue +++ b/src/views/newMap/display/trainingList/trainingPositionTip.vue @@ -74,7 +74,7 @@ export default { } }, methods: { - tipInit() { + async tipInit() { if (this.teachMode === ScriptMode.TEACH) { this.tipShow = true; const offset = this.$store.state.config.canvasOffset; @@ -95,7 +95,7 @@ export default { this.popTipShow(); } } else if (step && step.tipPosition && step.tipPosition.domId) { - const position = this.getOtherTipPoint(step.tipPosition); + const position = await this.getOtherTipPoint(step.tipPosition); if (position) { this.position = position; this.position.y -= distance; @@ -157,25 +157,48 @@ export default { // 获取地图菜单按钮和对话框按钮提示显示位置 getOtherTipPoint(tipPosition) { const domId = OperationHandler.getDomIdByOperation(tipPosition.domId); - const btnDom = document.getElementById(domId); - if (btnDom) { - const offset = getDomOffset(btnDom); - if (offset.x == 0 && offset.y == 0) { - return null; - } + if (!domId) { return null; } + return new Promise(async(resolve, reject) => { + try { + let btnDom = document.getElementById(domId); + if (!btnDom) { + btnDom = await this.getAwaitDom(domId); + } + if (btnDom) { + const offset = getDomOffset(btnDom); + if (offset.x == 0 && offset.y == 0) { + resolve(null); + } - let align = 'bottom'; - if (this.tipAlignIsTop(tipPosition, domId)) { - align = 'top'; - } + let align = 'bottom'; + if (this.tipAlignIsTop(tipPosition, domId)) { + align = 'top'; + } - return { - align: align, - x: offset.x + btnDom.clientWidth / 2, - y: offset.y - }; - } - return null; + resolve({ + align: align, + x: offset.x + btnDom.clientWidth / 2, + y: offset.y + }); + } else { + resolve(null); + } + } catch (err) { + resolve(null); + } + }); + }, + getAwaitDom(domId) { + return new Promise((resolve) => { + setTimeout(() => { + const btnDom = document.getElementById(domId); + if (btnDom) { + resolve(btnDom); + } else { + resolve(null); + } + }, 300); + }); }, tipAlignIsTop(step, domId) { // 如果是tip框则箭头朝上 diff --git a/src/views/newMap/display/trainingList/trainingTip.vue b/src/views/newMap/display/trainingList/trainingTip.vue index 43e3e00c4..1272dba96 100644 --- a/src/views/newMap/display/trainingList/trainingTip.vue +++ b/src/views/newMap/display/trainingList/trainingTip.vue @@ -48,7 +48,7 @@ export default { this.trainingTipMessage = '实训完成,请点击结束按钮。'; } }, - '$store.state.trainingNew.operateErrMsg': function (val) { + '$store.state.training.operateErrMsg': function (val) { this.tipInfo({ color: val.color, message: val.errMsg }); } }, diff --git a/src/views/trainingManage/designIndex.vue b/src/views/trainingManage/designIndex.vue index 598299af0..e73ba9c09 100644 --- a/src/views/trainingManage/designIndex.vue +++ b/src/views/trainingManage/designIndex.vue @@ -388,6 +388,10 @@ export default { }); }, updateMapLocation() { + if (!Vue.prototype.$jlmap) { + this.$message.warning('请切换到站场图定位!'); + return; + } const data = Vue.prototype.$jlmap.$options; const params = {scale: data.scaleRate, x: data.offsetX, y: data.offsetY}; updateTrainingMaplocation({id: this.editData.id, mapLocationJson: JSON.stringify(params)}).then(res => { diff --git a/src/views/trainingManage/list.vue b/src/views/trainingManage/list.vue index 1f3adc54e..19b2c5245 100644 --- a/src/views/trainingManage/list.vue +++ b/src/views/trainingManage/list.vue @@ -199,7 +199,7 @@ export default { this.$store.dispatch('trainingNew/setTrainingDetail', null); if (resp.data && resp.data.mapLocationJson) { const mapLocation = JSON.parse(resp.data.mapLocationJson); - this.$jlmap.updateTransform(mapLocation.scale, {x:mapLocation.x, y:mapLocation.y}); + this.$jlmap && this.$jlmap.updateTransform(mapLocation.scale, {x:mapLocation.x, y:mapLocation.y}); } this.$emit('updateDetails', resp.data); this.doClose(); @@ -278,7 +278,7 @@ export default { this.training = detailResp.data; if (detailResp.data.mapLocationJson) { const mapLocation = JSON.parse(detailResp.data.mapLocationJson); - this.$jlmap.updateTransform(mapLocation.scale, {x:mapLocation.x, y:mapLocation.y}); + this.$jlmap && this.$jlmap.updateTransform(mapLocation.scale, {x:mapLocation.x, y:mapLocation.y}); } if (detailResp.data.playerIdJson) { const playerId = JSON.parse(detailResp.data.playerIdJson)[0]; From 2a9e230ff986999d6dd725233b9a0ab7dbd23eac Mon Sep 17 00:00:00 2001 From: dong <58670809@qq.com> Date: Fri, 4 Nov 2022 15:58:14 +0800 Subject: [PATCH 03/14] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/menus/dialog/cmdManage.vue | 34 +++++++++++++------ .../components/menus/dialog/signedCmd.vue | 30 +++++++++++----- src/scripts/cmdPlugin/OperationHandler.js | 8 +++++ 3 files changed, 54 insertions(+), 18 deletions(-) diff --git a/src/jmapNew/theme/components/menus/dialog/cmdManage.vue b/src/jmapNew/theme/components/menus/dialog/cmdManage.vue index 65b19d733..ad052d164 100644 --- a/src/jmapNew/theme/components/menus/dialog/cmdManage.vue +++ b/src/jmapNew/theme/components/menus/dialog/cmdManage.vue @@ -91,8 +91,8 @@
- 拒签 - 签收 + 拒签 + 签收 关闭
@@ -101,6 +101,7 @@ import { sendCommandNew } from '@/api/jmap/training'; import shouxinxiang from '@/assets/dispatcherStation/shouxinxiang.png'; import { mapState } from 'vuex'; +import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler'; export default { name:'CmdManage', data() { @@ -223,6 +224,9 @@ export default { // this.searchCmd(); }, methods:{ + getDomObj(key) { + return OperationEvent.DispatchCmd.menuButton[key]; + }, tableRowClassName({row, rowIndex}) { const status = this.getStateInfo(row.rcvCompanies).state; if (status === 'Signed') { @@ -307,15 +311,25 @@ export default { command = 'CTC_SIGN_REJECT_DIS_COMMAND'; delete data.proxySign; } - sendCommandNew(this.group, command, data).then((res) => { - console.log(res, '---res'); - if (res.code == 200) { - // this.searchCmd(); - } else { - this.$messageBox(`${status ? '签收' : '拒签'}调度命令失败:${res.message}`); + const key = status ? 'signCmdTrue' : 'signCmdFalse'; + const operate = { + operation: this.getDomObj(key).operation, + param: data, + userOperationType: 'leftClick' + }; + this.$store.dispatch('training/nextNew', operate).then(({ valid }) => { + if (valid) { + sendCommandNew(this.group, command, data).then((res) => { + console.log(res, '---res'); + if (res.code == 200) { + // this.searchCmd(); + } else { + this.$messageBox(`${status ? '签收' : '拒签'}调度命令失败:${res.message}`); + } + }).catch(error => { + this.$messageBox(`${status ? '签收' : '拒签'}调度命令失败:${error.message}`); + }); } - }).catch(error => { - this.$messageBox(`${status ? '签收' : '拒签'}调度命令失败:${error.message}`); }); }, filterTableData() { diff --git a/src/jmapNew/theme/components/menus/dialog/signedCmd.vue b/src/jmapNew/theme/components/menus/dialog/signedCmd.vue index 371aaa5f1..38845bab8 100644 --- a/src/jmapNew/theme/components/menus/dialog/signedCmd.vue +++ b/src/jmapNew/theme/components/menus/dialog/signedCmd.vue @@ -81,8 +81,8 @@
- 拒签 - 签收 + 拒签 + 签收 关闭
@@ -91,6 +91,7 @@ import { sendCommandNew } from '@/api/jmap/training'; import { mapState } from 'vuex'; import { parseTime } from '@/utils/index'; +import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler'; export default { name:'CmdManage', data() { @@ -181,6 +182,9 @@ export default { beforeDestroy() {}, mounted() {}, methods:{ + getDomObj(key) { + return OperationEvent.DispatchCmd.menuButton[key]; + }, getDeviceName(receiverId) { let name = ''; if (receiverId) { @@ -239,12 +243,22 @@ export default { command = 'CTC_SIGN_REJECT_DIS_COMMAND'; delete data.proxySign; } - sendCommandNew(this.group, command, data).then((res) => { - console.log(res, '---res'); - // this.$emit('changeSignedStatus', signInfo); - this.doClose(); - }).catch(error => { - this.$messageBox('查询调度命令失败:' + error.message); + const key = status ? 'signCmdTrue' : 'signCmdFalse'; + const operate = { + operation: this.getDomObj(key).operation, + param: data, + userOperationType: 'leftClick' + }; + this.$store.dispatch('training/nextNew', operate).then(({ valid }) => { + if (valid) { + sendCommandNew(this.group, command, data).then((res) => { + console.log(res, '---res'); + // this.$emit('changeSignedStatus', signInfo); + this.doClose(); + }).catch(error => { + this.$messageBox('查询调度命令失败:' + error.message); + }); + } }); }, searchCmd() { diff --git a/src/scripts/cmdPlugin/OperationHandler.js b/src/scripts/cmdPlugin/OperationHandler.js index 01512a517..4b924bbd2 100644 --- a/src/scripts/cmdPlugin/OperationHandler.js +++ b/src/scripts/cmdPlugin/OperationHandler.js @@ -4268,6 +4268,14 @@ export const OperationEvent = { saveCacheData: { operation: '1706', domId: '_Tips-DispatchCmd-menuButton-saveCacheData{BOTTOM}' + }, + signCmdTrue: { + operation: '1707', + domId: '_Tips-DispatchCmd-menuButton-signCmdTrue{BOTTOM}' + }, + signCmdFalse: { + operation: '1708', + domId: '_Tips-DispatchCmd-menuButton-signCmdFalse{BOTTOM}' } } } From 078b07f863f3047416fc9fad1f7b54132790f9b2 Mon Sep 17 00:00:00 2001 From: fan Date: Mon, 7 Nov 2022 10:14:32 +0800 Subject: [PATCH 04/14] =?UTF-8?q?=E7=BA=BF=E8=B7=AF=E5=8A=9F=E8=83=BD=20?= =?UTF-8?q?=E6=97=A0itemMap=E5=B1=9E=E6=80=A7=E5=AF=BC=E8=87=B4=E6=8A=A5?= =?UTF-8?q?=E9=94=99=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/publish/publishMap/subsystem.vue | 48 +++++++++++----------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/src/views/publish/publishMap/subsystem.vue b/src/views/publish/publishMap/subsystem.vue index b78a54dff..79c4de377 100644 --- a/src/views/publish/publishMap/subsystem.vue +++ b/src/views/publish/publishMap/subsystem.vue @@ -35,25 +35,25 @@ const simTypeMap = { RAILWAY: '大铁CTC', EMERGENCY: '应急调度' }; -const clientMap = { - C_ATS: '中心ATS工作站', - C_ATS_BS: '中心ATS大屏', - C_PA: '中心PA系统', - C_CCTV: '中心视频监控系统', - L_ATS: '现地ATS工作站', - LCW: '本地控制工作站', - L_CCTV: '现地视频监控系统', - L_PA: '现地PA系统', - GPC: '调度台终端', - IPC: '联锁工作站', - STPC: '车务终端', - DMP: '车务管理终端', - ISCS: 'ISCS', - IBP: 'IBP', - PSL: 'PSL', - RUN_PLAN_DESIGN: '运行图编制', - DRIVE: '列车驾驶' -}; +// const clientMap = { +// C_ATS: '中心ATS工作站', +// C_ATS_BS: '中心ATS大屏', +// C_PA: '中心PA系统', +// C_CCTV: '中心视频监控系统', +// L_ATS: '现地ATS工作站', +// LCW: '本地控制工作站', +// L_CCTV: '现地视频监控系统', +// L_PA: '现地PA系统', +// GPC: '调度台终端', +// IPC: '联锁工作站', +// STPC: '车务终端', +// DMP: '车务管理终端', +// ISCS: 'ISCS', +// IBP: 'IBP', +// PSL: 'PSL', +// RUN_PLAN_DESIGN: '运行图编制', +// DRIVE: '列车驾驶' +// }; export default { name: 'PublishMap', components: { @@ -120,35 +120,35 @@ export default { title: '默认扮演成员', prop: 'DEFAULT_MEMBER', type: 'tag', - columnValue: (row) => { return row.paramVO.itemMap.hasOwnProperty('DEFAULT_MEMBER') ? '是' : '否'; }, + columnValue: (row) => { return row.paramVO.itemMap && row.paramVO.itemMap.hasOwnProperty('DEFAULT_MEMBER') ? '是' : '否'; }, tagType: () => { return 'success'; } }, { title: '大客流', prop: 'LPF', type: 'tag', - columnValue: (row) => { return row.paramVO.itemMap.hasOwnProperty('LPF') ? '是' : '否'; }, + columnValue: (row) => { return row.paramVO.itemMap && row.paramVO.itemMap.hasOwnProperty('LPF') ? '是' : '否'; }, tagType: () => { return 'success'; } }, { title: '真实设备', prop: 'REAL_DEVICE', type: 'tag', - columnValue: (row) => { return row.paramVO.itemMap.hasOwnProperty('REAL_DEVICE') ? '是' : '否'; }, + columnValue: (row) => { return row.paramVO.itemMap && row.paramVO.itemMap.hasOwnProperty('REAL_DEVICE') ? '是' : '否'; }, tagType: () => { return 'success'; } }, { title: '加载实训', prop: 'TRAINING', type: 'tag', - columnValue: (row) => { return row.paramVO.itemMap.hasOwnProperty('TRAINING') ? '是' : '否'; }, + columnValue: (row) => { return row.paramVO.itemMap && row.paramVO.itemMap.hasOwnProperty('TRAINING') ? '是' : '否'; }, tagType: () => { return 'success'; } }, { title: '加载试卷', prop: 'EXAM', type: 'tag', - columnValue: (row) => { return row.paramVO.itemMap.hasOwnProperty('EXAM') ? '是' : '否'; }, + columnValue: (row) => { return row.paramVO.itemMap && row.paramVO.itemMap.hasOwnProperty('EXAM') ? '是' : '否'; }, tagType: () => { return 'success'; } }, { From 6a03ce8a11fb37557cc85c6ca1e7ef01aca59b92 Mon Sep 17 00:00:00 2001 From: fan Date: Mon, 7 Nov 2022 10:32:45 +0800 Subject: [PATCH 05/14] =?UTF-8?q?=E7=94=BB=E9=9D=A2=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E5=89=AF=E6=A0=87=E9=A2=98bug=20=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/jmapNew/shape/graph/Station/EStationText.js | 4 ++-- src/jmapNew/shape/graph/Station/index.js | 3 +++ src/views/newMap/mapDraftPicture/mapoperate/device.vue | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/jmapNew/shape/graph/Station/EStationText.js b/src/jmapNew/shape/graph/Station/EStationText.js index 672c8922d..7d4c96574 100644 --- a/src/jmapNew/shape/graph/Station/EStationText.js +++ b/src/jmapNew/shape/graph/Station/EStationText.js @@ -42,8 +42,8 @@ class EStationText extends Group { z: this.model.z, silent: !model.visible || false, style: { - x: model.subheadPosition.x, - y: model.subheadPosition.y, + x: model.computedSubheadTextPosition.x, + y: model.computedSubheadTextPosition.y, fontWeight: model.fontWeight, fontSize: model.subheadFont || 18, fontFamily: style.fontFamily, diff --git a/src/jmapNew/shape/graph/Station/index.js b/src/jmapNew/shape/graph/Station/index.js index 96fe16def..4061db974 100644 --- a/src/jmapNew/shape/graph/Station/index.js +++ b/src/jmapNew/shape/graph/Station/index.js @@ -34,10 +34,12 @@ export default class Station extends Group { this.computedPosition = pictureDevice.position; this.computedTurnBackPoint = { x: model.turnBackPoint ? model.turnBackPoint.x + offsetX : 0, y: model.turnBackPoint ? model.turnBackPoint.y + offsetY : 0 }; this.computedControlModePoint = { x: model.controlModePoint.x + offsetX, y: model.controlModePoint.y + offsetY }; + this.computedSubheadTextPosition = { x: model.subheadPosition ? model.subheadPosition.x + offsetX : 0, y: model.subheadPosition ? model.subheadPosition.y + offsetY : 0 }; } else { this.computedPosition = model.position; this.computedTurnBackPoint = model.turnBackPoint; this.computedControlModePoint = model.controlModePoint; + this.computedSubheadTextPosition = model.subheadPosition; } this.z = 40; this.model = model; @@ -59,6 +61,7 @@ export default class Station extends Group { 'stationText': EStationText // 车站名称 (普通站台样式) }; model.computedPosition = this.computedPosition; + model.computedSubheadTextPosition = this.computedSubheadTextPosition; // 遍历当前线路下的绘图元素 组合模式 traverseLineElements(style.Station, elementTypeList, model, style, this); diff --git a/src/views/newMap/mapDraftPicture/mapoperate/device.vue b/src/views/newMap/mapDraftPicture/mapoperate/device.vue index b7679d79c..2cfb0e970 100644 --- a/src/views/newMap/mapDraftPicture/mapoperate/device.vue +++ b/src/views/newMap/mapDraftPicture/mapoperate/device.vue @@ -68,7 +68,7 @@ export default { deviceList () { return [...this.sectionList, ...this.signalList, ...this.psdList, ...this.stationStandList, ...this.stationList, ...this.trainWindowList, ...this.arrowList, ...this.automaticRouteButtonList, ...this.axleCounterResetButtonList, ...this.cycleButtonList, ...this.directionRodList, ...this.espList, - ...this.indicatorLightList, ...this.lcList, ...this.lineList, ...this.outerFrameList, ...this.psdList, ...this.resourceList, ...this.responderList, + ...this.indicatorLightList, ...this.lcList, ...this.lineList, ...this.outerFrameList, ...this.resourceList, ...this.responderList, ...this.signalButtonList, ...this.splitStationList, ...this.tbStrategyList, ...this.tempSpeedLimitList, ...this.textList, ...this.totalGuideLockButtonVOList, ...this.zcList]; }, From 9b3562b861ef056e2a233dfbf5dbe3998443c500 Mon Sep 17 00:00:00 2001 From: fan Date: Mon, 7 Nov 2022 10:38:55 +0800 Subject: [PATCH 06/14] =?UTF-8?q?=E6=9D=83=E9=99=90=E8=B0=83=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/newMap/display/sceneList.vue | 342 -------------------- src/views/newMap/display/simulationMenu.vue | 3 - 2 files changed, 345 deletions(-) delete mode 100644 src/views/newMap/display/sceneList.vue diff --git a/src/views/newMap/display/sceneList.vue b/src/views/newMap/display/sceneList.vue deleted file mode 100644 index 8e721d408..000000000 --- a/src/views/newMap/display/sceneList.vue +++ /dev/null @@ -1,342 +0,0 @@ - - - - diff --git a/src/views/newMap/display/simulationMenu.vue b/src/views/newMap/display/simulationMenu.vue index c21a1e82c..f15629221 100644 --- a/src/views/newMap/display/simulationMenu.vue +++ b/src/views/newMap/display/simulationMenu.vue @@ -41,7 +41,6 @@ - @@ -82,7 +81,6 @@ import DrawSelect from '@/jmapNew/theme/datie_01/menus/dialog/drawSelect'; import LineBoard from '../displayCity/lineBoard'; // TrainingMode import { ScriptMode } from '@/scripts/ConstDic'; -import SceneList from './sceneList'; import TheoryExamSelect from './theoryExamSelect'; import TheoryExam from './theoryExam'; import PayPage from '@/views/newMap/displayNew/demon/payPage'; @@ -112,7 +110,6 @@ export default { TrainTicket, DrawSelect, LineBoard, - SceneList, TheoryExam, TheoryExamSelect, PayPage, From deeaba2690d32e392fb13e51eaa5471a1928ece4 Mon Sep 17 00:00:00 2001 From: fan Date: Mon, 7 Nov 2022 13:40:59 +0800 Subject: [PATCH 07/14] =?UTF-8?q?=E5=A4=A7=E9=93=81=E6=8E=A7=E5=88=B6?= =?UTF-8?q?=E6=9D=A1=E8=A2=AB=E9=81=AE=E7=9B=96&=E5=A4=A7=E9=93=81?= =?UTF-8?q?=E7=BB=BC=E5=90=88=E6=BC=94=E7=BB=83=E6=88=90=E5=91=98=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E5=88=87=E6=8D=A2=E8=A7=92=E8=89=B2=E5=90=8E=E7=94=BB?= =?UTF-8?q?=E9=9D=A2=E6=B2=A1=E6=9C=89=E5=88=87=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/utils/baseUrl.js | 4 +- src/utils/stomp.js | 6 +++ .../newMap/display/simulationControl.vue | 2 +- src/views/newMap/display/terminals/index.vue | 41 +++++++++++++------ .../newMap/display/terminals/localWork.vue | 4 +- .../newMap/mapDraftPicture/createPicture.vue | 39 ++++++++++++++++-- src/views/newMap/mapDraftPicture/index.vue | 7 ++++ 7 files changed, 82 insertions(+), 21 deletions(-) diff --git a/src/utils/baseUrl.js b/src/utils/baseUrl.js index f84210e59..9de79fd8a 100644 --- a/src/utils/baseUrl.js +++ b/src/utils/baseUrl.js @@ -23,13 +23,13 @@ export function handlerUrl() { let OSS_URL; if (process.env.NODE_ENV === 'development') { // 开发分支 - BASE_API = 'http://192.168.3.233/rtss-server'; + // BASE_API = 'http://192.168.3.233/rtss-server'; // BASE_API = 'https://joylink.club/jlcloud'; // BASE_API = 'https://test.joylink.club/jlcloud'; // BASE_API = 'http://114.116.51.125/jlcloud'; // BASE_API = 'http://192.168.3.90:9000'; // 周寅 // BASE_API = 'http://192.168.3.94:9000'; // 旭强 - // BASE_API = 'http://192.168.3.15:9000'; // 张赛 + BASE_API = 'http://192.168.3.15:9000'; // 张赛 // BASE_API = 'http://192.168.3.5:9000'; // 夏增彬 // BASE_API = 'http://192.168.3.37:9000'; // 卫志宏 // BASE_API = 'http://b29z135112.zicp.vip'; diff --git a/src/utils/stomp.js b/src/utils/stomp.js index 13e9f1c12..69df0b34c 100644 --- a/src/utils/stomp.js +++ b/src/utils/stomp.js @@ -50,6 +50,12 @@ export function getTopic(type, group, param) { // topic = `/user/queue/simulation/${group}/ctc/manage`; topic = `/user/queue/simulation/${group}/ctcManage`; break; + case 'ATS_STATUS': + topic = `/user/queue/simulation/${group}/device/status`; + break; + case 'COMMON': + topic = `/user/queue/simulation/${group}`; + break; } return topic; diff --git a/src/views/newMap/display/simulationControl.vue b/src/views/newMap/display/simulationControl.vue index c03d6b26b..528c79014 100644 --- a/src/views/newMap/display/simulationControl.vue +++ b/src/views/newMap/display/simulationControl.vue @@ -1,5 +1,5 @@