线路:宁波3
问题:增加宁波3 用户权限/转移控制/请求区域控制权|授权转移|下放站控|回收站控 菜单和实训配置。
This commit is contained in:
parent
bb1c8eca45
commit
c70a383e91
@ -94,7 +94,10 @@
|
||||
<stand-detain ref="standDetain" />
|
||||
<interval-stop-number ref="intervalStopNumber" />
|
||||
<allocate-time ref="allocateTime" />
|
||||
<station-control ref="stationControl" />
|
||||
<station-transfer ref="stationTransfer" />
|
||||
<station-request ref="stationRequest" />
|
||||
<station-devolution ref="stationDevolution" />
|
||||
<station-reclaim ref="stationReclaim" />
|
||||
<stand-detail ref="standDetail" />
|
||||
<switch-command ref="switchCommand" />
|
||||
<initialize-switch-block ref="initializeSwitchBlock" />
|
||||
@ -149,7 +152,10 @@ import StandDetain from './menuDialog/standDetain';
|
||||
import StandDetail from './menuDialog/standDetail';
|
||||
import IntervalStopNumber from './menuDialog/intervalStopNumber';
|
||||
import AllocateTime from './menuDialog/allocateTime';
|
||||
import StationControl from './menuDialog/stationControl';
|
||||
import StationTransfer from './menuDialog/stationTransfer';
|
||||
import StationRequest from './menuDialog/stationRequest';
|
||||
import StationDevolution from './menuDialog/stationDevolution';
|
||||
import StationReclaim from './menuDialog/stationReclaim';
|
||||
import SwitchCommand from './menuDialog/switchCommand';
|
||||
import InitializeSwitchBlock from './menuDialog/initializeSwitchBlock';
|
||||
import SwitchBlock from './menuDialog/switchBlock';
|
||||
@ -197,7 +203,10 @@ export default {
|
||||
StandDetain,
|
||||
IntervalStopNumber,
|
||||
AllocateTime,
|
||||
StationControl,
|
||||
StationTransfer,
|
||||
StationRequest,
|
||||
StationDevolution,
|
||||
StationReclaim,
|
||||
StandDetail,
|
||||
SwitchCommand,
|
||||
InitializeSwitchBlock,
|
||||
@ -1205,7 +1214,39 @@ export default {
|
||||
click: this.adjustStrategy
|
||||
}
|
||||
]
|
||||
},
|
||||
},
|
||||
{
|
||||
title: '用户权限(U)',
|
||||
operate: OperationEvent.Command.mBar.userManage,
|
||||
children: [
|
||||
{
|
||||
title: '转移控制',
|
||||
operate: OperationEvent.Command.commandNingBo3.line_user,
|
||||
children: [
|
||||
{
|
||||
title: '请求区域控制权',
|
||||
click: this.authorizeRequest,
|
||||
operate: OperationEvent.Command.commandNingBo3.line_user_request
|
||||
},
|
||||
{
|
||||
title: '授权转移',
|
||||
click: this.authorizeTransfer,
|
||||
operate: OperationEvent.Command.commandNingBo3.line_user_transfer
|
||||
},
|
||||
{
|
||||
title: '下放站控',
|
||||
click: this.authorizeDevolution,
|
||||
operate: OperationEvent.Command.commandNingBo3.line_user_devolution
|
||||
},
|
||||
{
|
||||
title: '收回站控',
|
||||
click: this.authorizeReclaim,
|
||||
operate: OperationEvent.Command.commandNingBo3.line_user_reclaim
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
// {
|
||||
// title: '视图(V)',
|
||||
// operate: '',
|
||||
@ -1494,10 +1535,52 @@ export default {
|
||||
if (valid) {
|
||||
this.closeMenu(true);
|
||||
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||
this.$refs.stationControl.doShow();
|
||||
this.$refs.stationTransfer.doShow();
|
||||
}
|
||||
});
|
||||
},
|
||||
},
|
||||
// 请求区域控制权
|
||||
authorizeRequest(item) {
|
||||
const operate = {
|
||||
type: 'bar',
|
||||
operation: item.operation
|
||||
};
|
||||
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.closeMenu(true);
|
||||
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||
this.$refs.stationRequest.doShow();
|
||||
}
|
||||
});
|
||||
},
|
||||
// 下放站控
|
||||
authorizeDevolution(item) {
|
||||
const operate = {
|
||||
type: 'bar',
|
||||
operation: item.operation
|
||||
};
|
||||
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.closeMenu(true);
|
||||
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||
this.$refs.stationDevolution.doShow();
|
||||
}
|
||||
});
|
||||
},
|
||||
// 收回站控
|
||||
authorizeReclaim(item) {
|
||||
const operate = {
|
||||
type: 'bar',
|
||||
operation: item.operation
|
||||
};
|
||||
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.closeMenu(true);
|
||||
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||
this.$refs.stationReclaim.doShow();
|
||||
}
|
||||
});
|
||||
},
|
||||
showStandDetail(item) {
|
||||
const operate = {
|
||||
type: 'bar',
|
||||
|
@ -0,0 +1,213 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
v-dialogDrag
|
||||
class="ningbo-01__systerm station-control"
|
||||
title="下发站控"
|
||||
:visible.sync="show"
|
||||
width="500px"
|
||||
:before-close="doClose"
|
||||
:show-close="true"
|
||||
:z-index="2000"
|
||||
:modal="false"
|
||||
:close-on-click-modal="false"
|
||||
>
|
||||
|
||||
<el-table :id="domIdChoose" ref="table" :data="centralizedStaionList" style="width: 100%;" height="320px" highlight-current-row @current-change="handleCurrentChange">
|
||||
<el-table-column prop="name" label="控制区域" />
|
||||
<el-table-column label="用户Id" />
|
||||
<el-table-column label="授权范围" />
|
||||
</el-table>
|
||||
<div class="message" style="color:#ff0000;font-size:14px;margin-left:10px">{{ message }}</div>
|
||||
<el-row justify="center" class="button-group">
|
||||
<el-col :span="4" :offset="1">
|
||||
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit(true)">确定(O)</el-button>
|
||||
</el-col>
|
||||
<el-col :span="4" :offset="2">
|
||||
<el-button :id="domIdApply" @click="commit(false)">应用(A)</el-button>
|
||||
</el-col>
|
||||
<el-col :span="4" :offset="2">
|
||||
<el-button :id="domIdClose" @click="cancel">关闭(C)</el-button>
|
||||
</el-col>
|
||||
<el-col :span="4" :offset="2">
|
||||
<el-button>帮助(H)</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<notice-info ref="noticeInfo" pop-class="ningbo-01__systerm" />
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapGetters } from 'vuex';
|
||||
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
||||
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
|
||||
import CMD from '@/scripts/cmdPlugin/CommandEnum';
|
||||
|
||||
export default {
|
||||
name: 'StationControl',
|
||||
components: {
|
||||
NoticeInfo
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
status: true,
|
||||
operate: null,
|
||||
loading: false,
|
||||
dialogShow: false,
|
||||
station:{},
|
||||
message:''
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapGetters('map', [
|
||||
'stationList'
|
||||
]),
|
||||
...mapGetters('training', [
|
||||
'mode',
|
||||
'started'
|
||||
]),
|
||||
centralizedStaionList() {
|
||||
const list = [];
|
||||
this.stationList.forEach(item => {
|
||||
if (item.centralized) {
|
||||
list.push(this.$store.getters['map/getDeviceByCode'](item.code));
|
||||
}
|
||||
});
|
||||
return list;
|
||||
},
|
||||
show() {
|
||||
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||
},
|
||||
selected() {
|
||||
return this.$store.state.menuOperation.selected;
|
||||
},
|
||||
domIdChoose() {
|
||||
return this.dialogShow ? OperationEvent.Command.common.choose.domId : '';
|
||||
},
|
||||
domIdConfirm() {
|
||||
return this.dialogShow ? OperationEvent.Command.common.confirm.domId : '';
|
||||
},
|
||||
domIdClose() {
|
||||
return this.dialogShow ? OperationEvent.Command.common.close.domId : '';
|
||||
},
|
||||
domIdApply() {
|
||||
return this.dialogShow ? OperationEvent.Command.common.apply.domId : '';
|
||||
},
|
||||
prdType() {
|
||||
return this.$store.state.training.prdType;
|
||||
},
|
||||
concertrateStationList() {
|
||||
return this.stationList.filter(station=>{
|
||||
return station.centralized;
|
||||
});
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
'selected': function(val) {
|
||||
if (val) {
|
||||
const sationEle = this.$store.getters['map/getDeviceByCode'](val.code);
|
||||
if (this.prdType == '02') {
|
||||
this.status = sationEle && sationEle.controlMode != 'Center';
|
||||
} else {
|
||||
this.status = sationEle && sationEle.controlMode == 'Center';
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
doShow() {
|
||||
this.message = '';
|
||||
this.dialogShow = true;
|
||||
this.$nextTick(e => {
|
||||
this.$refs.table.setCurrentRow();
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
})
|
||||
},
|
||||
doClose() {
|
||||
this.dialogShow = false;
|
||||
this.$refs.table.setCurrentRow();
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
this.$store.dispatch('socket/shiftMsgQueue');
|
||||
},
|
||||
cancel() {
|
||||
const operate = {
|
||||
type: 'bar',
|
||||
operation: OperationEvent.Command.common.close.operation
|
||||
};
|
||||
|
||||
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
});
|
||||
},
|
||||
handleCurrentChange(val) {
|
||||
if (!val) { return; }
|
||||
const step = {
|
||||
code: val.code,
|
||||
operation: OperationEvent.Command.common.choose.operation,
|
||||
val: val.code
|
||||
};
|
||||
|
||||
this.$store.dispatch('training/nextNew', step).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||
this.$store.dispatch('menuOperation/setSelected', {device: val});
|
||||
}
|
||||
}).catch(() => {
|
||||
this.$refs.noticeInfo.doShow();
|
||||
});
|
||||
},
|
||||
commit(isClose = true) {
|
||||
const val = this.selected || {};
|
||||
const steps = {
|
||||
operation: isClose ? OperationEvent.Command.common.confirm.operation : OperationEvent.Command.common.apply.operation,
|
||||
over: true,
|
||||
param: {stationCode:val.code}
|
||||
};
|
||||
|
||||
steps.cmdType = this.status ? CMD.ControlConvertMenu.CMD_CM_RECEIVE_CONTROL : CMD.ControlConvertMenu.CMD_CM_SURRENDER_CONTROL;
|
||||
|
||||
this.$store.dispatch('training/nextNew', steps).then(({ valid }) => {
|
||||
if (valid) {
|
||||
isClose && this.doClose();
|
||||
this.$emit('commandSuccess', val.code);
|
||||
}
|
||||
}).catch((error) => {
|
||||
isClose && this.doClose();
|
||||
this.$refs.noticeInfo.doShow();
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style scoped rel="stylesheet/scss" lang="scss">
|
||||
@import "src/styles/mixin.scss";
|
||||
.radio-box {
|
||||
position: relative;
|
||||
top: 100px;
|
||||
border: 1px solid #BBBBBB;
|
||||
text-align: center;
|
||||
width: 100px;
|
||||
left: 18px;
|
||||
padding: 15px;
|
||||
}
|
||||
.radio-box-title {
|
||||
position: relative;
|
||||
top: 115px;
|
||||
left: 20px;
|
||||
color: #000;
|
||||
width: 60px;
|
||||
text-align: center;
|
||||
background: #F0F0F0;
|
||||
z-index: 1;
|
||||
}
|
||||
/deep/ {
|
||||
.el-radio {
|
||||
color: #000;
|
||||
font-weight: bold;
|
||||
}
|
||||
.el-cascader-node>.el-radio, .el-radio:last-child{
|
||||
margin-right: 20px;
|
||||
}
|
||||
}
|
||||
</style>
|
243
src/jmapNew/theme/ningbo_03/menus/menuDialog/stationReclaim.vue
Normal file
243
src/jmapNew/theme/ningbo_03/menus/menuDialog/stationReclaim.vue
Normal file
@ -0,0 +1,243 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
v-dialogDrag
|
||||
class="ningbo-01__systerm station-control"
|
||||
title="回收站控"
|
||||
:visible.sync="show"
|
||||
width="500px"
|
||||
:before-close="doClose"
|
||||
:show-close="true"
|
||||
:z-index="2000"
|
||||
:modal="false"
|
||||
:close-on-click-modal="false"
|
||||
>
|
||||
<el-table
|
||||
:id="domIdChoose"
|
||||
ref="table"
|
||||
:data="centralizedStaionList"
|
||||
style="width: 100%"
|
||||
height="320px"
|
||||
highlight-current-row
|
||||
@current-change="handleCurrentChange"
|
||||
>
|
||||
<el-table-column prop="name" label="控制区域" />
|
||||
<el-table-column label="用户Id" />
|
||||
<el-table-column label="授权范围" />
|
||||
</el-table>
|
||||
<el-checkbox v-model="allChecked" :disabled="true">所有站台(F)</el-checkbox>
|
||||
<div
|
||||
class="message"
|
||||
style="color: #ff0000; font-size: 14px; margin-left: 10px"
|
||||
>
|
||||
{{ message }}
|
||||
</div>
|
||||
<el-row justify="center" class="button-group">
|
||||
<el-col :span="4" :offset="1">
|
||||
<el-button
|
||||
:id="domIdConfirm"
|
||||
type="primary"
|
||||
:loading="loading"
|
||||
@click="commit(true)"
|
||||
>确定(O)</el-button
|
||||
>
|
||||
</el-col>
|
||||
<el-col :span="4" :offset="2">
|
||||
<el-button :id="domIdApply" @click="commit(false)">应用(A)</el-button>
|
||||
</el-col>
|
||||
<el-col :span="4" :offset="2">
|
||||
<el-button :id="domIdClose" @click="cancel">关闭(C)</el-button>
|
||||
</el-col>
|
||||
<el-col :span="4" :offset="2">
|
||||
<el-button>帮助(H)</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<notice-info ref="noticeInfo" pop-class="ningbo-01__systerm" />
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapGetters } from "vuex";
|
||||
import { OperationEvent } from "@/scripts/cmdPlugin/OperationHandler";
|
||||
import NoticeInfo from "@/jmapNew/theme/components/menus/childDialog/noticeInfo";
|
||||
import CMD from "@/scripts/cmdPlugin/CommandEnum";
|
||||
|
||||
export default {
|
||||
name: "StationControl",
|
||||
components: {
|
||||
NoticeInfo,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
status: true,
|
||||
operate: null,
|
||||
loading: false,
|
||||
dialogShow: false,
|
||||
allChecked: false,
|
||||
station: {},
|
||||
message: "",
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapGetters("map", ["stationList"]),
|
||||
...mapGetters("training", ["mode", "started"]),
|
||||
centralizedStaionList() {
|
||||
const list = [];
|
||||
this.stationList.forEach((item) => {
|
||||
if (item.centralized) {
|
||||
list.push(this.$store.getters["map/getDeviceByCode"](item.code));
|
||||
}
|
||||
});
|
||||
return list;
|
||||
},
|
||||
show() {
|
||||
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||
},
|
||||
selected() {
|
||||
return this.$store.state.menuOperation.selected;
|
||||
},
|
||||
domIdChoose() {
|
||||
return this.dialogShow ? OperationEvent.Command.common.choose.domId : "";
|
||||
},
|
||||
domIdConfirm() {
|
||||
return this.dialogShow ? OperationEvent.Command.common.confirm.domId : "";
|
||||
},
|
||||
domIdClose() {
|
||||
return this.dialogShow ? OperationEvent.Command.common.close.domId : "";
|
||||
},
|
||||
domIdApply() {
|
||||
return this.dialogShow ? OperationEvent.Command.common.apply.domId : "";
|
||||
},
|
||||
prdType() {
|
||||
return this.$store.state.training.prdType;
|
||||
},
|
||||
concertrateStationList() {
|
||||
return this.stationList.filter((station) => {
|
||||
return station.centralized;
|
||||
});
|
||||
},
|
||||
},
|
||||
watch: {
|
||||
selected: function (val) {
|
||||
if (val) {
|
||||
const sationEle = this.$store.getters["map/getDeviceByCode"](val.code);
|
||||
if (this.prdType == "02") {
|
||||
this.status = sationEle && sationEle.controlMode != "Center";
|
||||
} else {
|
||||
this.status = sationEle && sationEle.controlMode == "Center";
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
doShow() {
|
||||
this.message = "";
|
||||
this.dialogShow = true;
|
||||
this.$nextTick((e) => {
|
||||
this.$refs.table.setCurrentRow();
|
||||
this.$store.dispatch("training/emitTipFresh");
|
||||
});
|
||||
},
|
||||
doClose() {
|
||||
this.dialogShow = false;
|
||||
this.$refs.table.setCurrentRow();
|
||||
this.$store.dispatch("training/emitTipFresh");
|
||||
this.$store.dispatch("socket/shiftMsgQueue");
|
||||
},
|
||||
cancel() {
|
||||
const operate = {
|
||||
type: "bar",
|
||||
operation: OperationEvent.Command.common.close.operation,
|
||||
};
|
||||
|
||||
this.$store.dispatch("training/nextNew", operate).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
});
|
||||
},
|
||||
handleCurrentChange(val) {
|
||||
if (!val) {
|
||||
return;
|
||||
}
|
||||
const step = {
|
||||
code: val.code,
|
||||
operation: OperationEvent.Command.common.choose.operation,
|
||||
val: val.code,
|
||||
};
|
||||
|
||||
this.$store
|
||||
.dispatch("training/nextNew", step)
|
||||
.then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.$store.dispatch("menuOperation/handleBreakFlag", {
|
||||
break: true,
|
||||
});
|
||||
this.$store.dispatch("menuOperation/setSelected", { device: val });
|
||||
}
|
||||
})
|
||||
.catch(() => {
|
||||
this.$refs.noticeInfo.doShow();
|
||||
});
|
||||
},
|
||||
commit(isClose = true) {
|
||||
const val = this.selected || {};
|
||||
const steps = {
|
||||
operation: isClose
|
||||
? OperationEvent.Command.common.confirm.operation
|
||||
: OperationEvent.Command.common.apply.operation,
|
||||
over: true,
|
||||
param: { stationCode: val.code },
|
||||
};
|
||||
|
||||
steps.cmdType = this.status
|
||||
? CMD.ControlConvertMenu.CMD_CM_RECEIVE_CONTROL
|
||||
: CMD.ControlConvertMenu.CMD_CM_SURRENDER_CONTROL;
|
||||
|
||||
this.$store
|
||||
.dispatch("training/nextNew", steps)
|
||||
.then(({ valid }) => {
|
||||
if (valid) {
|
||||
isClose && this.doClose();
|
||||
this.$emit("commandSuccess", val.code);
|
||||
}
|
||||
})
|
||||
.catch((error) => {
|
||||
isClose && this.doClose();
|
||||
this.$refs.noticeInfo.doShow();
|
||||
});
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style scoped rel="stylesheet/scss" lang="scss">
|
||||
@import "src/styles/mixin.scss";
|
||||
.radio-box {
|
||||
position: relative;
|
||||
top: 100px;
|
||||
border: 1px solid #bbbbbb;
|
||||
text-align: center;
|
||||
width: 100px;
|
||||
left: 18px;
|
||||
padding: 15px;
|
||||
}
|
||||
.radio-box-title {
|
||||
position: relative;
|
||||
top: 115px;
|
||||
left: 20px;
|
||||
color: #000;
|
||||
width: 60px;
|
||||
text-align: center;
|
||||
background: #f0f0f0;
|
||||
z-index: 1;
|
||||
}
|
||||
/deep/ {
|
||||
.el-radio {
|
||||
color: #000;
|
||||
font-weight: bold;
|
||||
}
|
||||
.el-cascader-node > .el-radio,
|
||||
.el-radio:last-child {
|
||||
margin-right: 20px;
|
||||
}
|
||||
}
|
||||
</style>
|
215
src/jmapNew/theme/ningbo_03/menus/menuDialog/stationRequest.vue
Normal file
215
src/jmapNew/theme/ningbo_03/menus/menuDialog/stationRequest.vue
Normal file
@ -0,0 +1,215 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
v-dialogDrag
|
||||
class="ningbo-01__systerm station-control"
|
||||
title="授权转移"
|
||||
:visible.sync="show"
|
||||
width="500px"
|
||||
:before-close="doClose"
|
||||
:show-close="true"
|
||||
:z-index="2000"
|
||||
:modal="false"
|
||||
:close-on-click-modal="false"
|
||||
>
|
||||
|
||||
<el-table :id="domIdChoose" ref="table" :data="centralizedStaionList" style="width: 100%;" height="320px" highlight-current-row @current-change="handleCurrentChange">
|
||||
<el-table-column prop="name" label="控制区域" />
|
||||
<el-table-column label="用户Id" />
|
||||
<el-table-column label="授权范围" />
|
||||
</el-table>
|
||||
<el-checkbox v-model="allChecked" :disabled="true" >所有站台(F)</el-checkbox>
|
||||
<div class="message" style="color:#ff0000;font-size:14px;margin-left:10px">{{ message }}</div>
|
||||
<el-row justify="center" class="button-group">
|
||||
<el-col :span="4" :offset="1">
|
||||
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit(true)">确定(O)</el-button>
|
||||
</el-col>
|
||||
<el-col :span="4" :offset="2">
|
||||
<el-button :id="domIdApply" @click="commit(false)">应用(A)</el-button>
|
||||
</el-col>
|
||||
<el-col :span="4" :offset="2">
|
||||
<el-button :id="domIdClose" @click="cancel">关闭(C)</el-button>
|
||||
</el-col>
|
||||
<el-col :span="4" :offset="2">
|
||||
<el-button>帮助(H)</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<notice-info ref="noticeInfo" pop-class="ningbo-01__systerm" />
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapGetters } from 'vuex';
|
||||
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
||||
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
|
||||
import CMD from '@/scripts/cmdPlugin/CommandEnum';
|
||||
|
||||
export default {
|
||||
name: 'StationControl',
|
||||
components: {
|
||||
NoticeInfo
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
status: true,
|
||||
operate: null,
|
||||
loading: false,
|
||||
dialogShow: false,
|
||||
allChecked: false,
|
||||
station:{},
|
||||
message:''
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapGetters('map', [
|
||||
'stationList'
|
||||
]),
|
||||
...mapGetters('training', [
|
||||
'mode',
|
||||
'started'
|
||||
]),
|
||||
centralizedStaionList() {
|
||||
const list = [];
|
||||
this.stationList.forEach(item => {
|
||||
if (item.centralized) {
|
||||
list.push(this.$store.getters['map/getDeviceByCode'](item.code));
|
||||
}
|
||||
});
|
||||
return list;
|
||||
},
|
||||
show() {
|
||||
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||
},
|
||||
selected() {
|
||||
return this.$store.state.menuOperation.selected;
|
||||
},
|
||||
domIdChoose() {
|
||||
return this.dialogShow ? OperationEvent.Command.common.choose.domId : '';
|
||||
},
|
||||
domIdConfirm() {
|
||||
return this.dialogShow ? OperationEvent.Command.common.confirm.domId : '';
|
||||
},
|
||||
domIdClose() {
|
||||
return this.dialogShow ? OperationEvent.Command.common.close.domId : '';
|
||||
},
|
||||
domIdApply() {
|
||||
return this.dialogShow ? OperationEvent.Command.common.apply.domId : '';
|
||||
},
|
||||
prdType() {
|
||||
return this.$store.state.training.prdType;
|
||||
},
|
||||
concertrateStationList() {
|
||||
return this.stationList.filter(station=>{
|
||||
return station.centralized;
|
||||
});
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
'selected': function(val) {
|
||||
if (val) {
|
||||
const sationEle = this.$store.getters['map/getDeviceByCode'](val.code);
|
||||
if (this.prdType == '02') {
|
||||
this.status = sationEle && sationEle.controlMode != 'Center';
|
||||
} else {
|
||||
this.status = sationEle && sationEle.controlMode == 'Center';
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
doShow() {
|
||||
this.message = '';
|
||||
this.dialogShow = true;
|
||||
this.$nextTick(e => {
|
||||
this.$refs.table.setCurrentRow();
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
})
|
||||
},
|
||||
doClose() {
|
||||
this.dialogShow = false;
|
||||
this.$refs.table.setCurrentRow();
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
this.$store.dispatch('socket/shiftMsgQueue');
|
||||
},
|
||||
cancel() {
|
||||
const operate = {
|
||||
type: 'bar',
|
||||
operation: OperationEvent.Command.common.close.operation
|
||||
};
|
||||
|
||||
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
});
|
||||
},
|
||||
handleCurrentChange(val) {
|
||||
if (!val) { return; }
|
||||
const step = {
|
||||
code: val.code,
|
||||
operation: OperationEvent.Command.common.choose.operation,
|
||||
val: val.code
|
||||
};
|
||||
|
||||
this.$store.dispatch('training/nextNew', step).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||
this.$store.dispatch('menuOperation/setSelected', {device: val});
|
||||
}
|
||||
}).catch(() => {
|
||||
this.$refs.noticeInfo.doShow();
|
||||
});
|
||||
},
|
||||
commit(isClose = true) {
|
||||
const val = this.selected || {};
|
||||
const steps = {
|
||||
operation: isClose ? OperationEvent.Command.common.confirm.operation : OperationEvent.Command.common.apply.operation,
|
||||
over: true,
|
||||
param: {stationCode:val.code}
|
||||
};
|
||||
|
||||
steps.cmdType = this.status ? CMD.ControlConvertMenu.CMD_CM_RECEIVE_CONTROL : CMD.ControlConvertMenu.CMD_CM_SURRENDER_CONTROL;
|
||||
|
||||
this.$store.dispatch('training/nextNew', steps).then(({ valid }) => {
|
||||
if (valid) {
|
||||
isClose && this.doClose();
|
||||
this.$emit('commandSuccess', val.code);
|
||||
}
|
||||
}).catch((error) => {
|
||||
isClose && this.doClose();
|
||||
this.$refs.noticeInfo.doShow();
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style scoped rel="stylesheet/scss" lang="scss">
|
||||
@import "src/styles/mixin.scss";
|
||||
.radio-box {
|
||||
position: relative;
|
||||
top: 100px;
|
||||
border: 1px solid #BBBBBB;
|
||||
text-align: center;
|
||||
width: 100px;
|
||||
left: 18px;
|
||||
padding: 15px;
|
||||
}
|
||||
.radio-box-title {
|
||||
position: relative;
|
||||
top: 115px;
|
||||
left: 20px;
|
||||
color: #000;
|
||||
width: 60px;
|
||||
text-align: center;
|
||||
background: #F0F0F0;
|
||||
z-index: 1;
|
||||
}
|
||||
/deep/ {
|
||||
.el-radio {
|
||||
color: #000;
|
||||
font-weight: bold;
|
||||
}
|
||||
.el-cascader-node>.el-radio, .el-radio:last-child{
|
||||
margin-right: 20px;
|
||||
}
|
||||
}
|
||||
</style>
|
@ -2,7 +2,7 @@
|
||||
<el-dialog
|
||||
v-dialogDrag
|
||||
class="ningbo-01__systerm station-control"
|
||||
title="授权转移"
|
||||
title="下放站控"
|
||||
:visible.sync="show"
|
||||
width="600px"
|
||||
:before-close="doClose"
|
||||
@ -71,12 +71,7 @@ export default {
|
||||
station:{},
|
||||
stationCode: '',
|
||||
stationName:'',
|
||||
message:'',
|
||||
controlProps: {
|
||||
'03': '紧急站控',
|
||||
'02': '站控',
|
||||
'01': '遥控'
|
||||
}
|
||||
message:''
|
||||
};
|
||||
},
|
||||
computed: {
|
@ -441,41 +441,97 @@ export default {
|
||||
{ deviceType: '03', orderNum: 8, operateCode: OperationEvent.Command.common.close.operation, tip: '请点击【关闭】' }
|
||||
]
|
||||
},
|
||||
{
|
||||
maxDuration: 20,
|
||||
minDuration: 15,
|
||||
operateType: CMD.ControlConvertMenu.CMD_CM_RECEIVE_CONTROL.value,
|
||||
skinCode: '12',
|
||||
trainingName: '授权转移({1})',
|
||||
trainingRemark: '控制权限转换,接收转移',
|
||||
trainingType: 'ControlConvertMenu',
|
||||
productTypes: ['01', '02'],
|
||||
stepVOList: [
|
||||
{ deviceType: 'bar', orderNum: 1, operateCode: OperationEvent.Command.commandNingBo3.line.operation, tip: '鼠标左键选择【线路】' },
|
||||
{ deviceType: 'bar', orderNum: 2, operateCode: OperationEvent.Command.commandNingBo3.line_stand.operation, tip: '鼠标左键选择【站台】' },
|
||||
{ deviceType: 'bar', orderNum: 3, operateCode: OperationEvent.Command.commandNingBo3.line_stand_transfer.operation, tip: '鼠标左键选择【授权转移】' },
|
||||
{ deviceType: 'mbm', orderNum: 4, operateCode: OperationEvent.Command.common.choose.operation, tip: '请选择车站【{1}】', codeType:'STATION', val: '{2}' },
|
||||
{ deviceType: '04', orderNum: 5, operateCode: OperationEvent.Command.common.apply.operation, tip: '请点击【应用】' },
|
||||
{ deviceType: '04', orderNum: 6, operateCode: OperationEvent.Command.common.close.operation, tip: '请点击【关闭】' }
|
||||
]
|
||||
},
|
||||
{
|
||||
maxDuration: 20,
|
||||
minDuration: 15,
|
||||
operateType: CMD.ControlConvertMenu.CMD_CM_SURRENDER_CONTROL.value,
|
||||
skinCode: '12',
|
||||
trainingName: '授权转移({1})',
|
||||
trainingRemark: '控制权限转换,交出转移',
|
||||
trainingType: 'ControlConvertMenu',
|
||||
productTypes: ['01', '02'],
|
||||
stepVOList: [
|
||||
{ deviceType: 'bar', orderNum: 1, operateCode: OperationEvent.Command.commandNingBo3.line.operation, tip: '鼠标左键选择【线路】' },
|
||||
{ deviceType: 'bar', orderNum: 2, operateCode: OperationEvent.Command.commandNingBo3.line_stand.operation, tip: '鼠标左键选择【站台】' },
|
||||
{ deviceType: 'bar', orderNum: 3, operateCode: OperationEvent.Command.commandNingBo3.line_stand_transfer.operation, tip: '鼠标左键选择【授权转移】' },
|
||||
{ deviceType: 'mbm', orderNum: 4, operateCode: OperationEvent.Command.common.choose.operation, tip: '请选择车站【{1}】', codeType:'STATION', val: '{2}' },
|
||||
{ deviceType: '04', orderNum: 5, operateCode: OperationEvent.Command.common.apply.operation, tip: '请点击【应用】' },
|
||||
{ deviceType: '04', orderNum: 6, operateCode: OperationEvent.Command.common.close.operation, tip: '请点击【关闭】' }
|
||||
]
|
||||
}
|
||||
|
||||
// 一下控制权操作,都暂不确定指令
|
||||
// {
|
||||
// maxDuration: 20,
|
||||
// minDuration: 15,
|
||||
// operateType: CMD.ControlConvertMenu.CMD_CM_RECEIVE_CONTROL.value,
|
||||
// skinCode: '12',
|
||||
// trainingName: '授权转移({1})',
|
||||
// trainingRemark: '控制权限转换,接收转移',
|
||||
// trainingType: 'ControlConvertMenu',
|
||||
// productTypes: ['01', '02'],
|
||||
// stepVOList: [
|
||||
// { deviceType: 'bar', orderNum: 1, operateCode: OperationEvent.Command.commandNingBo3.line.operation, tip: '鼠标左键选择【线路】' },
|
||||
// { deviceType: 'bar', orderNum: 2, operateCode: OperationEvent.Command.commandNingBo3.line_stand.operation, tip: '鼠标左键选择【站台】' },
|
||||
// { deviceType: 'bar', orderNum: 3, operateCode: OperationEvent.Command.commandNingBo3.line_stand_transfer.operation, tip: '鼠标左键选择【授权转移】' },
|
||||
// { deviceType: 'mbm', orderNum: 4, operateCode: OperationEvent.Command.common.choose.operation, tip: '请选择车站【{1}】', codeType:'STATION', val: '{2}' },
|
||||
// { deviceType: '04', orderNum: 5, operateCode: OperationEvent.Command.common.apply.operation, tip: '请点击【应用】' },
|
||||
// { deviceType: '04', orderNum: 6, operateCode: OperationEvent.Command.common.close.operation, tip: '请点击【关闭】' }
|
||||
// ]
|
||||
// },
|
||||
// {
|
||||
// maxDuration: 20,
|
||||
// minDuration: 15,
|
||||
// operateType: CMD.ControlConvertMenu.CMD_CM_SURRENDER_CONTROL.value,
|
||||
// skinCode: '12',
|
||||
// trainingName: '授权转移({1})',
|
||||
// trainingRemark: '控制权限转换,交出转移',
|
||||
// trainingType: 'ControlConvertMenu',
|
||||
// productTypes: ['01', '02'],
|
||||
// stepVOList: [
|
||||
// { deviceType: 'bar', orderNum: 1, operateCode: OperationEvent.Command.commandNingBo3.line.operation, tip: '鼠标左键选择【线路】' },
|
||||
// { deviceType: 'bar', orderNum: 2, operateCode: OperationEvent.Command.commandNingBo3.line_stand.operation, tip: '鼠标左键选择【站台】' },
|
||||
// { deviceType: 'bar', orderNum: 3, operateCode: OperationEvent.Command.commandNingBo3.line_stand_transfer.operation, tip: '鼠标左键选择【授权转移】' },
|
||||
// { deviceType: 'mbm', orderNum: 4, operateCode: OperationEvent.Command.common.choose.operation, tip: '请选择车站【{1}】', codeType:'STATION', val: '{2}' },
|
||||
// { deviceType: '04', orderNum: 5, operateCode: OperationEvent.Command.common.apply.operation, tip: '请点击【应用】' },
|
||||
// { deviceType: '04', orderNum: 6, operateCode: OperationEvent.Command.common.close.operation, tip: '请点击【关闭】' }
|
||||
// ]
|
||||
// },
|
||||
// {
|
||||
// maxDuration: 20,
|
||||
// minDuration: 15,
|
||||
// operateType: CMD.ControlConvertMenu.CMD_CM_RECEIVE_CONTROL.value,
|
||||
// skinCode: '12',
|
||||
// trainingName: '请求区域控制权({1})',
|
||||
// trainingRemark: '请求区域控制权',
|
||||
// trainingType: 'ControlConvertMenu',
|
||||
// productTypes: ['01', '02'],
|
||||
// stepVOList: [
|
||||
// { deviceType: 'bar', orderNum: 1, operateCode: OperationEvent.Command.commandNingBo3.line.operation, tip: '鼠标左键选择【线路】' },
|
||||
// { deviceType: 'bar', orderNum: 2, operateCode: OperationEvent.Command.commandNingBo3.line_user.operation, tip: '鼠标左键选择【用户权限】' },
|
||||
// { deviceType: 'bar', orderNum: 3, operateCode: OperationEvent.Command.commandNingBo3.line_user_request.operation, tip: '鼠标左键选择【请求区域控制权】' },
|
||||
// { deviceType: 'mbm', orderNum: 4, operateCode: OperationEvent.Command.common.choose.operation, tip: '请选择车站【{1}】', codeType:'STATION', val: '{2}' },
|
||||
// { deviceType: '04', orderNum: 5, operateCode: OperationEvent.Command.common.apply.operation, tip: '请点击【应用】' },
|
||||
// { deviceType: '04', orderNum: 6, operateCode: OperationEvent.Command.common.close.operation, tip: '请点击【关闭】' }
|
||||
// ]
|
||||
// },
|
||||
// {
|
||||
// maxDuration: 20,
|
||||
// minDuration: 15,
|
||||
// operateType: CMD.ControlConvertMenu.CMD_CM_RECEIVE_CONTROL.value,
|
||||
// skinCode: '12',
|
||||
// trainingName: '下放站控({1})',
|
||||
// trainingRemark: '下放站控',
|
||||
// trainingType: 'ControlConvertMenu',
|
||||
// productTypes: ['02'],
|
||||
// stepVOList: [
|
||||
// { deviceType: 'bar', orderNum: 1, operateCode: OperationEvent.Command.commandNingBo3.line.operation, tip: '鼠标左键选择【线路】' },
|
||||
// { deviceType: 'bar', orderNum: 2, operateCode: OperationEvent.Command.commandNingBo3.line_user.operation, tip: '鼠标左键选择【用户权限】' },
|
||||
// { deviceType: 'bar', orderNum: 3, operateCode: OperationEvent.Command.commandNingBo3.line_user_devolution.operation, tip: '鼠标左键选择【下放站控】' },
|
||||
// { deviceType: 'mbm', orderNum: 4, operateCode: OperationEvent.Command.common.choose.operation, tip: '请选择车站【{1}】', codeType:'STATION', val: '{2}' },
|
||||
// { deviceType: '04', orderNum: 5, operateCode: OperationEvent.Command.common.apply.operation, tip: '请点击【应用】' },
|
||||
// { deviceType: '04', orderNum: 6, operateCode: OperationEvent.Command.common.close.operation, tip: '请点击【关闭】' }
|
||||
// ]
|
||||
// },
|
||||
// {
|
||||
// maxDuration: 20,
|
||||
// minDuration: 15,
|
||||
// operateType: CMD.ControlConvertMenu.CMD_CM_RECEIVE_CONTROL.value,
|
||||
// skinCode: '12',
|
||||
// trainingName: '回收站控({1})',
|
||||
// trainingRemark: '回收站控',
|
||||
// trainingType: 'ControlConvertMenu',
|
||||
// productTypes: ['02'],
|
||||
// stepVOList: [
|
||||
// { deviceType: 'bar', orderNum: 1, operateCode: OperationEvent.Command.commandNingBo3.line.operation, tip: '鼠标左键选择【线路】' },
|
||||
// { deviceType: 'bar', orderNum: 2, operateCode: OperationEvent.Command.commandNingBo3.line_user.operation, tip: '鼠标左键选择【用户权限】' },
|
||||
// { deviceType: 'bar', orderNum: 3, operateCode: OperationEvent.Command.commandNingBo3.line_user_reclaim.operation, tip: '鼠标左键选择【回收站控】' },
|
||||
// { deviceType: 'mbm', orderNum: 4, operateCode: OperationEvent.Command.common.choose.operation, tip: '请选择车站【{1}】', codeType:'STATION', val: '{2}' },
|
||||
// { deviceType: '04', orderNum: 5, operateCode: OperationEvent.Command.common.apply.operation, tip: '请点击【应用】' },
|
||||
// { deviceType: '04', orderNum: 6, operateCode: OperationEvent.Command.common.close.operation, tip: '请点击【关闭】' }
|
||||
// ]
|
||||
// }
|
||||
]
|
||||
};
|
||||
|
@ -169,7 +169,7 @@ export const OperationEvent = {
|
||||
reserveMode: {
|
||||
operation: '002b',
|
||||
domId: '_Tips-Mbar-0-reserveMode'
|
||||
}
|
||||
}
|
||||
},
|
||||
// 前端视图指令
|
||||
view: {
|
||||
@ -452,8 +452,33 @@ export const OperationEvent = {
|
||||
line_section_detail: {
|
||||
operation: '00a34',
|
||||
domId: '_Tips-ningBo-line-section-detail{TOP}'
|
||||
}
|
||||
}
|
||||
},
|
||||
// 用户
|
||||
line_user: {
|
||||
operation: '00a4',
|
||||
domId: '_Tips-ningBo-line-user{TOP}'
|
||||
},
|
||||
// 请求取悦
|
||||
line_user_request: {
|
||||
operation: '00a41',
|
||||
domId: '_Tips-ningBo-line-user-request{TOP}'
|
||||
},
|
||||
// 授权转移
|
||||
line_user_transfer: {
|
||||
operation: '00a42',
|
||||
domId: '_Tips-ningBo-line-user-transfer{TOP}'
|
||||
},
|
||||
// 下放站控
|
||||
line_user_devolution: {
|
||||
operation: '00a43',
|
||||
domId: '_Tips-ningBo-line-user-devolution{TOP}'
|
||||
},
|
||||
// 回收站控
|
||||
line_user_reclaim: {
|
||||
operation: '00a44',
|
||||
domId: '_Tips-ningBo-line-user-reclaim{TOP}'
|
||||
}
|
||||
}
|
||||
},
|
||||
// 站台概要表
|
||||
StandTable: {
|
||||
|
Loading…
Reference in New Issue
Block a user