diff --git a/src/App.vue b/src/App.vue index 1bc2274ca..10e0788ac 100644 --- a/src/App.vue +++ b/src/App.vue @@ -80,8 +80,9 @@ export default { }, created() { this.project = getSessionStorage('project'); - if (this.project) { - document.querySelector("link[rel*='icon']").href = loginInfo[this.project].linkIcon || ProjectIcon[this.project]; + const linkIcon = loginInfo[this.project] ? loginInfo[this.project].linkIcon : (ProjectIcon[this.project] || ''); + if (this.project && linkIcon) { + document.querySelector("link[rel*='icon']").href = linkIcon; } }, mounted() { diff --git a/src/api/trainingPlatform.js b/src/api/trainingPlatform.js index 842b033cc..906be28c8 100644 --- a/src/api/trainingPlatform.js +++ b/src/api/trainingPlatform.js @@ -146,3 +146,50 @@ export function updateMapFunctionSubset(data) { data }); } +/** 根据模板生成地图功能 */ +export function generateMapFunctionByTemplate(data) { + return request({ + url: `/api/mapFunction/generate/from/template`, + method: 'post', + data + }); +} +/** 创建模板线路功能 */ +export function createTemplateMapFunction(data) { + return request({ + url: `/api/mapFunction/template`, + method: 'post', + data + }); +} +/** 修改模板线路功能 */ +export function updateTemplateMapFunction(data) { + return request({ + url: `/api/mapFunction/template/${data.id}`, + method: 'put', + data + }); +} +/** 删除模板线路功能 */ +export function deleteTemplateMapFunction(id) { + return request({ + url: `/api/mapFunction/template/${id}`, + method: 'delete' + }); +} +/** 查询模板线路功能列表 */ +export function queryTemplateMapFunctionList(params) { + return request({ + url: `/api/mapFunction/template/list`, + method: 'get', + params + }); +} +/** 分页查询模板线路功能列表 */ +export function queryTemplateMapFunPaged(params) { + return request({ + url: `/api/mapFunction/template/paged`, + method: 'get', + params + }); +} diff --git a/src/i18n/langs/en/login.js b/src/i18n/langs/en/login.js index c241f5567..e082e8152 100644 --- a/src/i18n/langs/en/login.js +++ b/src/i18n/langs/en/login.js @@ -18,5 +18,7 @@ export default { getLoginQrCode: 'Failed to get login qr code, please refresh and try again', language: 'Language', clickSwitchLanguage: 'Click switch language', - accountName: 'Account name' + accountName: 'Account name', + registerAccount: 'Register account', + forgetPassword: 'Forget password?' }; diff --git a/src/i18n/langs/zh/login.js b/src/i18n/langs/zh/login.js index fc3fdbcd7..864a59201 100644 --- a/src/i18n/langs/zh/login.js +++ b/src/i18n/langs/zh/login.js @@ -18,5 +18,7 @@ export default { getLoginQrCode: '获取登录二维码失败,请刷新重试', language: '语言', clickSwitchLanguage: '点击切换语言', - accountName: '账户名' + accountName: '账户名', + registerAccount: '注册账号', + forgetPassword: '忘记密码?' }; diff --git a/src/jmapNew/config/skinCode/datie_02.js b/src/jmapNew/config/skinCode/datie_02.js index 174999e02..34f98aaed 100644 --- a/src/jmapNew/config/skinCode/datie_02.js +++ b/src/jmapNew/config/skinCode/datie_02.js @@ -476,49 +476,49 @@ class SkinCode extends defaultStyle { offset: { x: 0, y: 0 }, text: '分散自律', lightColor: '#0f0', - defaultColor: '#ccc' + defaultColor: '#7F7F7F' }, graphRoad: { show: true, offset: { x: 0, y: 0 }, text: '按图排路', - lightColor: '#0f0', - defaultColor: '#ccc' + lightColor: '#ff0', + defaultColor: '#0f0' }, planControl: { show: true, offset: { x: 0, y: 0 }, text: '计划控制', lightColor: '#0f0', - defaultColor: '#ccc' + defaultColor: '#7F7F7F' }, centerCommunication: { show: true, offset: { x: 0, y: 30 }, text: '中心通信', - lightColor: '#0f0', - defaultColor: '#ccc' + lightColor: '#FF0000', + defaultColor: '#0f0' }, selfDisciplineCommunication: { show: true, offset: { x: 0, y: 30 }, text: '自律机通信', - lightColor: '#0f0', - defaultColor: '#ccc' + lightColor: '#7F7F7F', + defaultColor: '#0f0' }, allowedTurnBack: { show: true, offset: { x: 0, y: 30 }, text: '允许转回', - lightColor: '#0f0', - defaultColor: '#ccc' + lightColor: '#ff0', + defaultColor: '#7F7F7F' }, trainControl: { show: true, offset: { x: 0, y: 30 }, text: '列控', - lightColor: '#0f0', - defaultColor: '#ccc' + lightColor: '#ff0', + defaultColor: '#0f0' } } }; diff --git a/src/jmapNew/shape/graph/Station/index.js b/src/jmapNew/shape/graph/Station/index.js index 3bfc9d237..2035ad1ea 100644 --- a/src/jmapNew/shape/graph/Station/index.js +++ b/src/jmapNew/shape/graph/Station/index.js @@ -165,7 +165,11 @@ export default class Station extends Group { const queryCtc = queryList.find(item => { return item.includes('ctc'); }); - if (queryCtc && model.createControlMode) { + const queryCtcLineCode = queryList.find(item => { + return item.includes('lineCode=16'); + }); + const pic = store.state.map.picture; + if ((queryCtc || (pic == 'trafficTerminal' && queryCtcLineCode)) && model.createControlMode) { this.createCtcControlMode(); } else if (this.style.Station.StationControl.special) { if (model.visible && model.createControlMode) { // model.createControlMode 控制模式 @@ -850,7 +854,7 @@ export default class Station extends Group { // } } - handleLocal() { // 站控 + handleLocal(model) { // 站控 this.noneBeforeMode = 'Local'; this.emergencyControl && this.emergencyControl.setColor(this.style.Station.StationControl.lamp.grayColor); this.substationControl && this.substationControl.setColor(this.style.Station.StationControl.lamp.yellowColor); @@ -859,7 +863,23 @@ export default class Station extends Group { this.substationArrowsControl && this.substationArrowsControl.setColor(this.style.Station.StationControl.lamp.greenColor); this.stationControlCC && this.stationControlCC.setStyle({text:'LC', textFill:this.style.Station.StationControl.text.stationControlColor}); this.selfDisciplineControl && this.selfDisciplineControl.setColor(this.style.Station.StationControl.selfDisciplineControl.lightColor); - this.selfDisciplineThree && this.selfDisciplineThree.setColor(this.style.Station.StationControl.selfDisciplineThree.lightColor, 3); + // this.selfDisciplineThree && this.selfDisciplineThree.setColor(this.style.Station.StationControl.selfDisciplineThree.lightColor, 3); + if (this.selfDisciplineThree) { + const arr = ['', 'Center', 'Station', 'Station_Shunt']; + let index = arr.findIndex(item => { + return model.operationMode == item; + }); + if (index < 1) { + index = 1; + } + this.selfDisciplineThree.setColor(this.style.Station.StationControl.selfDisciplineThree.lightColor, index); + } + if (this.graphRoad && model.routeSetMode == 'Manual_Set_Route') { + this.graphRoad.setColor(this.style.Station.StationControl.graphRoad.lightColor); + } + if (this.planControl && model.planControl) { + this.planControl.setColor(this.style.Station.StationControl.planControl.lightColor); + } // if (this.style.Station.StationControl.disPlayNone) { // this.stationText && this.stationText.setStyle('textFill', '#fff'); // if (this.model.subheadDisplay) { // 副标题 @@ -938,7 +958,17 @@ export default class Station extends Group { this.selfDiscipline && this.selfDiscipline.setColor(this.style.Station.StationControl.selfDiscipline.defaultColor); this.selfDisciplineControl && this.selfDisciplineControl.setColor(this.style.Station.StationControl.selfDisciplineControl.defaultColor); this.veryControlButton && this.veryControlButton.setStyle({ fill: this.style.Station.StationControl.veryControlButton.defaultColor }); - this.selfDisciplineThree && this.selfDisciplineThree.setColor(this.style.Station.StationControl.selfDisciplineThree.defaultColor, 3); + this.centerCommunication && this.centerCommunication.setColor(this.style.Station.StationControl.centerCommunication.defaultColor); + this.graphRoad && this.graphRoad.setColor(this.style.Station.StationControl.graphRoad.defaultColor); + this.planControl && this.planControl.setColor(this.style.Station.StationControl.planControl.defaultColor); + this.trainControl && this.trainControl.setColor(this.style.Station.StationControl.trainControl.defaultColor); + this.allowedTurnBack && this.allowedTurnBack.setColor(this.style.Station.StationControl.allowedTurnBack.defaultColor); + this.selfDisciplineCommunication && this.selfDisciplineCommunication.setColor(this.style.Station.StationControl.selfDisciplineCommunication.defaultColor); + if (this.selfDisciplineThree) { + this.selfDisciplineThree.setColor(this.style.Station.StationControl.selfDisciplineThree.defaultColor, 1); + this.selfDisciplineThree.setColor(this.style.Station.StationControl.selfDisciplineThree.defaultColor, 2); + this.selfDisciplineThree.setColor(this.style.Station.StationControl.selfDisciplineThree.defaultColor, 3); + } if (this.style.Station.stationText.isSpecialType) { this.stationText.setColor(this.style.Station.stationText.noneModeColor); this.stationText.setBackground(this.style.Station.stationText.defaultBackColor); @@ -972,12 +1002,12 @@ export default class Station extends Group { this.eachChild(item => { item.hide(); }); } else { store.getters['map/checkStationGuideMaster'](this._code, model.sguideMasterLock, model.xguideMasterLock); - model.controlMode && this['handle' + model.controlMode](); + model.controlMode && this['handle' + model.controlMode](model); model.preResetValidDuration && this.handlePreResetLamp(); model.controller && this.handleComplexControl(model.controller); model.emergencyController != undefined && this.handleEmergencyChange(model.emergencyController); model.controlApplicant && this.handleControlApplicant(model); - model.allowAutonomy && this.handleAllowAutonomy(); + model.allowAutonomy && this.handleAllowAutonomy(model); this.handleGuideLock(model); if (this.style.Station.syncCentralizeStation && (model.controlMode || model.controller || model.emergencyController != undefined) && model.centralized) { model.chargeStationCodeList.forEach(item => { diff --git a/src/jmapNew/theme/components/utils/menuOperate.js b/src/jmapNew/theme/components/utils/menuOperate.js index e57f202a6..abfa281ed 100644 --- a/src/jmapNew/theme/components/utils/menuOperate.js +++ b/src/jmapNew/theme/components/utils/menuOperate.js @@ -899,6 +899,16 @@ export const menuOperate = { switchRouteSetModel:{ operation: OperationEvent.CTCCommand.switchRouteSetModel.confirm.operation, cmdType: CMD.CTC.CTC_SWITCH_ROUTE_SET_MODEL + }, + // 操作模式转换 + switchControlMode:{ + operation: OperationEvent.MixinCommand.modeCovert.applyModeCovertCommit.operation, + cmdType: CMD.CTC.CTC_SWITCH_CONTROL_OPERATION_MODEL + }, + // 同意操作模式转换 + agreeSwitchControlMode:{ + operation: OperationEvent.MixinCommand.modeCovert.agreeModeCovertCommit.operation, + cmdType: CMD.CTC.CTC_AGREE_OPERATION_MODEL } }, Rail: { diff --git a/src/jmapNew/theme/datie_02/menus/dialog/applyOrAgreeModeCovert.vue b/src/jmapNew/theme/datie_02/menus/dialog/applyOrAgreeModeCovert.vue index 7b22d36e2..4af0f0509 100644 --- a/src/jmapNew/theme/datie_02/menus/dialog/applyOrAgreeModeCovert.vue +++ b/src/jmapNew/theme/datie_02/menus/dialog/applyOrAgreeModeCovert.vue @@ -5,47 +5,61 @@ class="apply-agree chengdou-03__systerm" :title="title" :visible.sync="show" - width="500px" + width="600px" :before-close="doClose" :z-index="2000" :modal="false" :close-on-click-modal="false" > -
-
-
Station name
- -
- Select all -
-
- Select all -
-
- Select all -
-
-
-
-
{{ station.name }}
-
- Central control -
-
- Station control -
-
- Station switching -
-
-
+
+ + + + + + + + + + + + + + + + + + +
- + - Confirm + 确定 - Cancel + 取 消 @@ -55,19 +69,31 @@ import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler'; import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo'; import { mapGetters } from 'vuex'; +import {menuOperate} from '@/jmapNew/theme/components/utils/menuOperate'; +import { UserOperationType } from '@/scripts/ConstDic'; export default { name: 'ForkDirective', components: { NoticeInfo }, + props: { + work: { + type: String, + default: () => { + return 'ctcWork'; + } + } + }, data() { return { dialogShow: false, - title:'Mode of operation conversion', - controlTypeAll:'', - selectedControlList:[], + title: '操作方式转换', + controlTypeAll: '', + tableData: [], loading: false, - domIdConfirm:'' + isAgreeMode: false, + allAgreeChecked: false, + domIdConfirm: '' }; }, computed: { @@ -79,33 +105,190 @@ export default { }, domIdCancel() { return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : ''; + }, + roleDeviceCode() { + return this.$store.state.training.roleDeviceCode; + }, + operationModeApplyList() { + return this.$store.state.socket.operationModeApplyList; + } + }, + watch: { + tableData: { + handler: function() { + const hasTableData = !!this.tableData.length; + const isAgreeEvery = hasTableData && this.tableData.every(item => { + return item.isAgree; + }); + this.allAgreeChecked = isAgreeEvery; + const centerEvery = hasTableData && this.tableData.every(item => { + return item.target == 'Center'; + }); + const stationEvery = hasTableData && this.tableData.every(item => { + return item.target == 'Station'; + }); + const shuntEvery = hasTableData && this.tableData.every(item => { + return item.target == 'Station_Shunt'; + }); + if (centerEvery) { + this.controlTypeAll = 'Center'; + } else if (stationEvery) { + this.controlTypeAll = 'Station'; + } else if (shuntEvery) { + this.controlTypeAll = 'Station_Shunt'; + } else { + this.controlTypeAll = ''; + } + }, + deep: true } }, methods:{ + getTextColor(row, type) { + let colorClass = ''; + if (row.source == type) { + colorClass = 'redText'; + } + if (this.isAgreeMode) { + if (row.target == type) { + colorClass = 'orangeText'; + } + } + return colorClass; + }, + changeAllAgreeChecked() { + this.tableData.forEach(item => { + this.$set(item, 'isAgree', this.allAgreeChecked); + }); + }, + changeControlTypeAll() { + this.tableData.forEach(item => { + this.$set(item, 'target', this.controlTypeAll); + }); + }, doShow(operate) { this.operation = operate.operation; if (this.operation == OperationEvent.MixinCommand.modeCovert.applyModeCovert.operation) { this.domIdConfirm = OperationEvent.MixinCommand.modeCovert.applyModeCovertCommit.domId; + this.isAgreeMode = false; } else if (this.operation == OperationEvent.MixinCommand.modeCovert.agreeModeCovert.operation) { this.domIdConfirm = OperationEvent.MixinCommand.modeCovert.agreeModeCovertCommit.domId; + this.isAgreeMode = true; } - this.selectedControlList = []; + this.getListData(); this.dialogShow = true; this.$nextTick(function () { this.$store.dispatch('training/emitTipFresh'); }); }, + getListData() { + this.tableData = []; + if (this.isAgreeMode) { + this.operationModeApplyList.forEach(item => { + const info = this.$store.getters['map/getDeviceByCode'](item.code); + const obj = { + ...item, + name: info ? info.name : '', + isAgree: false + }; + this.tableData.push(obj); + }); + } else { + let list = this.stationList; + if (this.work == 'ctcWork') { + const roleDeviceInfo = this.$store.getters['map/getDeviceByCode'](this.roleDeviceCode); + if (roleDeviceInfo) { + list = [roleDeviceInfo]; + } + } + list.forEach(item => { + const info = this.$store.getters['map/getDeviceByCode'](item.code); + if (info) { + const obj = { + name: info.name, + isAgree: false, + code: info.code, + source: info.operationMode, + target: info.operationMode + }; + this.tableData.push(obj); + } + }); + } + }, commit() { - console.log('--commit---'); + if (this.isAgreeMode) { + const list = []; + const noList = []; + this.tableData.forEach(item => { + if (item.isAgree) { + list.push(item.code); + } else { + noList.push(item.code); + } + }); + const operate = { + over: true, + operation: menuOperate.CTC.agreeSwitchControlMode.operation, + userOperationType: UserOperationType.LEFTCLICK, + cmdType: menuOperate.CTC.agreeSwitchControlMode.cmdType, + param: { + agreeStationCodes: list, + noAgreeStationCodes: noList + } + }; + this.loading = true; + this.$store.dispatch('trainingNew/next', operate).then(({valid}) => { + if (valid) { + this.loading = false; + this.doClose(); + this.$store.commit('socket/clearOperationModeApplyList', JSON.parse(JSON.stringify(this.tableData))); + } + }).catch((err) => { + this.loading = false; + this.doClose(); + this.$refs.noticeInfo.doShow(err.message); + }); + } else { + const list = []; + this.tableData.forEach(item => { + if (item.source != item.target) { + list.push({ + stationCode: item.code, + target: item.target + }); + } + }); + if (list.length) { + const operate = { + over: true, + operation: menuOperate.CTC.switchControlMode.operation, + userOperationType: UserOperationType.LEFTCLICK, + cmdType: menuOperate.CTC.switchControlMode.cmdType, + param: { + params: list + } + }; + this.loading = true; + this.$store.dispatch('trainingNew/next', operate).then(({valid}) => { + if (valid) { + this.loading = false; + this.doClose(); + } + }).catch((err) => { + this.loading = false; + this.doClose(); + this.$refs.noticeInfo.doShow(err.message); + }); + } + } }, cancel() { const operate = { operation: OperationEvent.Command.cancel.menu.operation }; this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => { - if (valid) { - this.doClose(); - } + this.doClose(); }).catch(() => { this.doClose(); }); @@ -119,33 +302,17 @@ export default { } }; - diff --git a/src/jmapNew/theme/datie_02/menus/dialog/statusSelect.vue b/src/jmapNew/theme/datie_02/menus/dialog/statusSelect.vue index 1963f5c24..9821a2b17 100644 --- a/src/jmapNew/theme/datie_02/menus/dialog/statusSelect.vue +++ b/src/jmapNew/theme/datie_02/menus/dialog/statusSelect.vue @@ -155,7 +155,7 @@ export default { const localArr = ['Station']; list.forEach(item => { const obj = this.$store.getters['map/getDeviceByCode'](item.code); - if (obj && localArr.includes(obj.operationMode)) { + if (obj && obj.controlMode == 'Local' && localArr.includes(obj.operationMode)) { const param = { code: obj.code, name: obj.name, @@ -194,7 +194,6 @@ export default { }, commit() { const list = this.getChangeInfoList(); - console.log('🚀 ~ file: statusSelect.vue:154 ~ commit ~ list', list); if (list.length) { const operate = { over: true, @@ -211,10 +210,10 @@ export default { this.loading = false; this.doClose(); } - }).catch(() => { + }).catch((err) => { this.loading = false; this.doClose(); - this.$refs.noticeInfo.doShow(); + this.$refs.noticeInfo.doShow(err.message); }); } }, @@ -224,9 +223,7 @@ export default { operation: OperationEvent.CTCCommand.switchRouteSetModel.cancel.operation }; this.$store.dispatch('trainingNew/next', operate).then(({valid}) => { - if (valid) { - this.doClose(); - } + this.doClose(); }); }, doClose() { diff --git a/src/jmapNew/theme/datie_02/menus/dispatchWorkMenu.vue b/src/jmapNew/theme/datie_02/menus/dispatchWorkMenu.vue index f8b220c6c..b8015321c 100644 --- a/src/jmapNew/theme/datie_02/menus/dispatchWorkMenu.vue +++ b/src/jmapNew/theme/datie_02/menus/dispatchWorkMenu.vue @@ -10,6 +10,7 @@
+
@@ -28,6 +29,7 @@ import PassiveContorl from '@/jmapNew/theme/components/menus/passiveDialog/contr import { timestampFormat } from '@/utils/date'; // import BottomTable from './bottomTable'; import { deviceFaultType, deviceType} from '@/scripts/cmdPlugin/Config'; +import MenuButtonCtc from './menuButtonCtc'; export default { name: 'DispatchWorkMenu', @@ -39,7 +41,8 @@ export default { MenuStationStand, MenuStation, MenuTrain, - PassiveContorl + PassiveContorl, + MenuButtonCtc // BottomTable }, props: { diff --git a/src/jmapNew/theme/datie_02/menus/menuButtonCtc.vue b/src/jmapNew/theme/datie_02/menus/menuButtonCtc.vue index ac5e56e75..2cb7f6448 100644 --- a/src/jmapNew/theme/datie_02/menus/menuButtonCtc.vue +++ b/src/jmapNew/theme/datie_02/menus/menuButtonCtc.vue @@ -1,96 +1,96 @@ @@ -216,6 +216,12 @@ export default { 'autoReentryList', 'autoReentryData' ]), + hasModeApplyList() { + return this.$store.state.socket.operationModeApplyList.length; + }, + isDispatchWork () { + return this.work == 'dispatchWork'; + }, Switch() { return OperationEvent.Switch; }, @@ -282,7 +288,11 @@ export default { this.$store.dispatch('menuOperation/setButtonOperation', null); this.clearOperate(); }, + '$store.state.menuOperation.leftClickCount': function (val) { + this.modeCovertShow = false; + }, '$store.state.menuOperation.menuCount': function (val) { + this.modeCovertShow = false; if (this.$store.getters['menuOperation/checkDialogIsOpen'](DeviceMenu.Cancel)) { const operate = { userOperationType: 'rightClick', @@ -309,6 +319,7 @@ export default { } }, beforeDestroy() { + this.$store.dispatch('menuOperation/setButtonOperation', null); this.routeDataMap = null; this.routeButtonCodeList = []; }, @@ -399,13 +410,23 @@ export default { operation: OperationEvent.CTCCommand.switchRouteSetModel.menu.operation }; this.$store.dispatch('trainingNew/next', operate).then(({valid}) => { - if (valid) { - this.$refs.statusSelect.doShow(); - } + // if (valid) { + this.$refs.statusSelect.doShow(); + // } + }); + }, + modeCovertBtn(operation) { + const operate = { + operation: operation + }; + this.$store.dispatch('trainingNew/next', operate).then(({valid}) => { + this.modeCovertShow = true; + // this.operation = operation; }); }, buttonDown(operation, commandTypeList) { // MixinCommand.modeCovert.button.operation + this.modeCovertShow = false; const station = this.$store.getters['map/getDeviceByCode'](this.$store.state.training.roleDeviceCode); if (!station || station.controlMode === 'Interlock') { return; } const operate = { @@ -419,7 +440,6 @@ export default { this.operation = operation; }); } else { - this.modeCovertShow = false; this.$store.dispatch('trainingNew/next', operate).then(({valid}) => { if (valid) { this.$store.dispatch('menuOperation/setButtonOperation', operation === this.Command.cancel.clearMbm.operation ? null : operation); @@ -1052,4 +1072,27 @@ export default { .eachModeCovertPop:hover{ background: #c3c3c3; } + .disabled { + cursor: not-allowed; + span { + color: #ccc !important; + } + } + .redFlick { + background: red; + } + @keyframes fade { + from { + opacity: 1.0; + } + 50% { + opacity: 0.2; + } + to { + opacity: 1.0; + } + } + .flicker { + animation: fade 600ms infinite; + } diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue index 90b1d393d..831c80e1e 100644 --- a/src/layout/components/Navbar.vue +++ b/src/layout/components/Navbar.vue @@ -3,9 +3,9 @@ ref="keMenu" class="navbar" router + background-color="#00172E" :default-active="activePath" mode="horizontal" - background-color="#545c64" text-color="#fff" active-text-color="#ffd04b" @select="handleSelect" @@ -35,7 +35,7 @@ - + @@ -222,9 +222,39 @@ export default { }; - diff --git a/src/views/newMap/display/lineBoard/mapVisual.vue b/src/views/newMap/display/lineBoard/mapVisual.vue new file mode 100644 index 000000000..c2073391e --- /dev/null +++ b/src/views/newMap/display/lineBoard/mapVisual.vue @@ -0,0 +1,245 @@ + + + + diff --git a/src/views/newMap/display/lineBoard/recDep.vue b/src/views/newMap/display/lineBoard/recDep.vue new file mode 100644 index 000000000..1d99ffe15 --- /dev/null +++ b/src/views/newMap/display/lineBoard/recDep.vue @@ -0,0 +1,136 @@ + + + + diff --git a/src/views/newMap/display/lineBoard/routeSelection1.vue b/src/views/newMap/display/lineBoard/routeSelection1.vue new file mode 100644 index 000000000..26df9e930 --- /dev/null +++ b/src/views/newMap/display/lineBoard/routeSelection1.vue @@ -0,0 +1,308 @@ + + + + diff --git a/src/views/newMap/display/terminals/index.vue b/src/views/newMap/display/terminals/index.vue index 749df5fdc..76773b573 100644 --- a/src/views/newMap/display/terminals/index.vue +++ b/src/views/newMap/display/terminals/index.vue @@ -206,6 +206,7 @@ export default { this.$store.dispatch('map/initJlmapLoadedCountClear'); this.$store.dispatch('socket/clearSimulationRoleList'); this.$store.dispatch('trainingNew/clearTrainingData'); + this.$store.dispatch('map/resetActiveTrainList'); this.$store.dispatch('runPlan/setPlanData', []); }, methods: { diff --git a/src/views/newMap/display/trainingDesign/designPane.vue b/src/views/newMap/display/trainingDesign/designPane.vue index f77267261..bb68b7b85 100644 --- a/src/views/newMap/display/trainingDesign/designPane.vue +++ b/src/views/newMap/display/trainingDesign/designPane.vue @@ -468,6 +468,7 @@ export default { this.addPlayerIdList(val); }, addPlayerIdList(playId) { + console.log(this.playerIdList.includes(playId), this.playerIdList, playId); if (!this.playerIdList.includes(playId)) { this.playerIdList.push(playId); } @@ -476,7 +477,7 @@ export default { checkPlayerIdHas() { const list = []; this.tableData.forEach(elem => { - if (this.playerIdList.includes(elem.memberId)) { + if (this.playerIdList.includes(elem.memberId) && !list.includes(elem.memberId)) { list.push(elem.memberId); } }); diff --git a/src/views/organization/index.vue b/src/views/organization/index.vue index a06468b69..204712ff9 100644 --- a/src/views/organization/index.vue +++ b/src/views/organization/index.vue @@ -4,7 +4,6 @@ - diff --git a/src/views/publish/publishMap/index.vue b/src/views/publish/publishMap/index.vue index c8ea9f9f3..f17c6f5a3 100644 --- a/src/views/publish/publishMap/index.vue +++ b/src/views/publish/publishMap/index.vue @@ -66,7 +66,7 @@ export default { queryForm: { labelWidth: '80px', reset: true, - leftSpan: 17, + leftSpan: 15, queryObject: { name: { type: 'text', @@ -223,7 +223,8 @@ export default { { text: '地图排序', handler: this.mapSort }, { text: '导出', handler: this.localExport, show: () => { return this.$store.state.user.roles.includes(superAdmin); }}, { text: '导入', handler: this.localImport, fileType: 'file', show: () => { return this.$store.state.user.roles.includes(superAdmin); }}, - { text: '一键校验', handler: this.allCheck } + { text: '一键校验', handler: this.allCheck }, + { text: '线路功能模板', handler: this.templateLineFunctionShow } ] }, @@ -416,6 +417,9 @@ export default { this.$message.error('一键校验地图数据失败:' + e.message); }); }, + templateLineFunctionShow() { + this.$router.push({path:'/systemManagement/lineDataManage/mapFunTem'}); + }, localExport() { this.$refs['localMap'].doShow(); }, diff --git a/src/views/publish/publishMap/mapFunctionTemplate/edit.vue b/src/views/publish/publishMap/mapFunctionTemplate/edit.vue new file mode 100644 index 000000000..7d0ffc45a --- /dev/null +++ b/src/views/publish/publishMap/mapFunctionTemplate/edit.vue @@ -0,0 +1,438 @@ + + + + + diff --git a/src/views/publish/publishMap/mapFunctionTemplate/index.vue b/src/views/publish/publishMap/mapFunctionTemplate/index.vue new file mode 100644 index 000000000..9317d9aea --- /dev/null +++ b/src/views/publish/publishMap/mapFunctionTemplate/index.vue @@ -0,0 +1,153 @@ + + + + diff --git a/src/views/publish/publishMap/subsystem.vue b/src/views/publish/publishMap/subsystem.vue index 64bcfe080..849a7de65 100644 --- a/src/views/publish/publishMap/subsystem.vue +++ b/src/views/publish/publishMap/subsystem.vue @@ -10,13 +10,19 @@ center > - - - - - + + + + + + 取 消 @@ -27,7 +33,7 @@ diff --git a/src/views/trainingPlatform/index.vue b/src/views/trainingPlatform/index.vue index c97f9b701..e78d57208 100644 --- a/src/views/trainingPlatform/index.vue +++ b/src/views/trainingPlatform/index.vue @@ -62,5 +62,6 @@ export default { left:0; top:0; height: 100%; + background: #00172E; } diff --git a/src/views/trainingPlatform/simulation.vue b/src/views/trainingPlatform/simulation.vue index c5149acb6..330af1366 100644 --- a/src/views/trainingPlatform/simulation.vue +++ b/src/views/trainingPlatform/simulation.vue @@ -1,7 +1,7 @@