This commit is contained in:
joylink_cuiweidong 2020-06-22 14:30:14 +08:00
commit d3d17f7bf6
14 changed files with 38 additions and 644 deletions

View File

@ -84,7 +84,7 @@ class SkinCode extends defaultStyle {
textShadowColor: '#22DFDF', textShadowColor: '#22DFDF',
nameShow: true, nameShow: true,
lineDash: [3, 3], lineDash: [3, 3],
lineWidthMore: 0 lineWidthMore: 2.5
}, },
line: { line: {
width: 5, // 区段宽度 width: 5, // 区段宽度

View File

@ -379,10 +379,7 @@ export default {
/** 确认计轴恢复工作*/ /** 确认计轴恢复工作*/
commit() { commit() {
const operate = { const operate = {
send: true,
over:true, over:true,
type: this.operate.type,
operation: '',
val: this.selected.code, val: this.selected.code,
cmdType: CMD.Switch.CMD_SWITCH_COMFIRMATION_AXLE cmdType: CMD.Switch.CMD_SWITCH_COMFIRMATION_AXLE
}; };

View File

@ -11,7 +11,7 @@
:close-on-click-modal="false" :close-on-click-modal="false"
> >
<el-row class="header"> <el-row class="header">
<el-col :span="11"><span>车站名称</span></el-col> <el-col :span="11"><span>集中站</span></el-col>
<el-col :span="11" :offset="2"><span>始端信号机</span></el-col> <el-col :span="11" :offset="2"><span>始端信号机</span></el-col>
</el-row> </el-row>
<el-row> <el-row>
@ -25,7 +25,7 @@
<el-row style="margin-top: 10px; line-height: 30px;"> <el-row style="margin-top: 10px; line-height: 30px;">
<el-col :span="11"><span>进路列表</span></el-col> <el-col :span="11"><span>进路列表</span></el-col>
<el-col :span="11" :offset="2"> <el-col :span="11" :offset="2">
<el-button class="expand" @click="expandPath">展开进路预览</el-button> <!-- <el-button class="expand" @click="expandPath">展开进路预览</el-button> -->
</el-col> </el-col>
</el-row> </el-row>
<el-table <el-table
@ -35,7 +35,7 @@
:cell-style="tableStyle" :cell-style="tableStyle"
style="width: 100%; margin-top:10px" style="width: 100%; margin-top:10px"
size="mini" size="mini"
height="120" height="160"
highlight-current-row highlight-current-row
:show-header="false" :show-header="false"
@row-click="clickEvent" @row-click="clickEvent"
@ -230,10 +230,10 @@ export default {
if (valid) { if (valid) {
this.doClose(); this.doClose();
} }
}).catch((error) => { }).catch(() => {
this.loading = false; this.loading = false;
this.doClose(); this.doClose();
this.$refs.noticeInfo.doShow({}, error.message); this.$refs.noticeInfo.doShow();
}); });
} }
}, },

View File

@ -12,7 +12,7 @@
:close-on-click-modal="false" :close-on-click-modal="false"
> >
<el-row class="header"> <el-row class="header">
<el-col :span="11"><span>{{ $t('menu.stationName') }}</span></el-col> <el-col :span="11"><span>集中站</span></el-col>
<el-col :span="11" :offset="2"><span>{{ $t('menu.signal') }}</span></el-col> <el-col :span="11" :offset="2"><span>{{ $t('menu.signal') }}</span></el-col>
</el-row> </el-row>
<el-row> <el-row>

View File

@ -84,14 +84,12 @@
</el-col> </el-col>
</el-row> </el-row>
<notice-info ref="noticeInfo" pop-class="ningbo-01__systerm" /> <notice-info ref="noticeInfo" pop-class="ningbo-01__systerm" />
<popup-alarm ref="popupAlarm" />
</el-dialog> </el-dialog>
</template> </template>
<script> <script>
import { mapGetters } from 'vuex'; import { mapGetters } from 'vuex';
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo'; import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
import PopupAlarm from './childDialog/popupAlarm';
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler'; import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
import CMD from '@/scripts/cmdPlugin/CommandEnum'; import CMD from '@/scripts/cmdPlugin/CommandEnum';
import {mouseCancelState} from '@/jmapNew/theme/components/utils/menuItemStatus'; import {mouseCancelState} from '@/jmapNew/theme/components/utils/menuItemStatus';
@ -99,8 +97,7 @@ import {mouseCancelState} from '@/jmapNew/theme/components/utils/menuItemStatus'
export default { export default {
name: 'AlxeEffective', name: 'AlxeEffective',
components: { components: {
NoticeInfo, NoticeInfo
PopupAlarm
}, },
data() { data() {
return { return {
@ -357,10 +354,6 @@ export default {
if (valid) { if (valid) {
this.type = 'text'; this.type = 'text';
this.stopTask(); this.stopTask();
// this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
// this.$refs.popupAlarm.doShow(
// Object.assign(this.operate, {val: operate.val}), [` ${this.model.stationName} ${this.model.sectionName}`]
// );
} }
}).catch(() => { }).catch(() => {
this.loading = false; this.loading = false;

View File

@ -1,98 +0,0 @@
<template>
<el-dialog
v-dialogDrag
class="ningbo-01__systerm popup-alarm"
:title="title"
:visible.sync="show"
width="500px"
:before-close="doClose"
:z-index="2000"
:modal="false"
:close-on-click-modal="false"
append-to-body
>
<el-row>
<el-col :offset="2">
<span v-for="(message, index) in messages" :key="index">{{ message }}</span><br>
</el-col>
</el-row>
<el-row justify="center" class="button-group">
<el-col :span="10" :offset="8">
<el-button :id="domIdSure" type="primary" @click="commit">确定</el-button>
</el-col>
</el-row>
</el-dialog>
</template>
<script>
import { OperationEvent } from '@/scripts/ConstDic';
export default {
name: 'PopupAlarm',
data() {
return {
dialogShow: false,
messages: [],
operate: null,
operation: ''
};
},
computed: {
show() {
return this.dialogShow && !this.$store.state.menuOperation.break;
},
title() {
return '弹出式告警';
},
domIdSure() {
return this.dialogShow ? OperationEvent.Command.close.alarm.domId : '';
}
},
mounted() {
this.$nextTick(() => {
this.$store.dispatch('training/tipReload');
});
},
methods: {
doShow(operate, messages) {
this.operate = operate || {};
this.operation = operate.operation;
this.dialogShow = true;
this.messages = messages || [];
this.$nextTick(function () {
this.$store.dispatch('training/emitTipFresh');
});
},
doClose() {
this.dialogShow = false;
this.$store.dispatch('training/emitTipFresh');
},
commit() {
if (this.operation == OperationEvent.Section.alxeEffective.menu.operation) {
//
this.alxeEffective();
}
},
alxeEffective() {
const operate = {
operation: OperationEvent.Command.close.alarm.operation
};
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.doClose();
}
});
}
}
};
</script>
<style>
.popup-alarm .context {
padding-bottom: 40px !important;
border: 1px solid lightgray;
}
</style>

View File

@ -21,7 +21,7 @@ import CMD from '@/scripts/cmdPlugin/CommandEnum';
import { DeviceMenu, OperateMode } from '@/scripts/ConstDic'; import { DeviceMenu, OperateMode } from '@/scripts/ConstDic';
import MenuContextHandler from '@/scripts/cmdPlugin/MenuContextHandler'; import MenuContextHandler from '@/scripts/cmdPlugin/MenuContextHandler';
import {menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate'; import {menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate';
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler'; // import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
export default { export default {
name: 'SectionMenu', name: 'SectionMenu',

View File

@ -1,401 +0,0 @@
<template>
<el-dialog v-dialogDrag :z-index="2000" class="xian-02__system alxe-effective" :title="title" :visible.sync="show" width="420px" :before-close="doClose" :modal="false" :close-on-click-modal="false">
<div style="padding: 10px 20px;border: 1px solid lightgray;">
<span class="base-label">准备</span>
<div style="margin-top: -10px">
<el-row type="flex" justify="left">
<el-col :span="9">车站</el-col>
<el-col :span="9">轨道/计轴</el-col>
</el-row>
<el-row type="flex" justify="left">
<el-col :span="9">
<el-input v-model="model.stationName" :type="type" size="mini" :disabled="true" />
</el-col>
<el-col :span="9">
<el-input v-model="model.sectionName" :type="type" size="mini" :disabled="true" />
</el-col>
<el-col :span="4" :offset="1">
<el-button :id="domIdConfirm1" size="mini" :disabled="type==='password'" @click="commitOnce">确认</el-button>
</el-col>
</el-row>
</div>
</div>
<div style="padding: 10px 20px;border: 1px solid lightgray;margin-top: 10px">
<span class="base-label">确认</span>
<div style="margin-top: -10px">
<el-row type="flex" justify="left">
<el-col :span="9">车站</el-col>
<el-col :span="9">轨道/计轴</el-col>
</el-row>
<el-row type="flex" justify="left">
<el-col :span="9">
<el-select
:id="domIdChoose1"
v-model="model.confirmStationCode"
filterable
size="mini"
:disabled="type==='text'"
@change="stationSelectChange"
>
<el-option v-for="(option,index) in filterStationList" :key="index" :label="option.name" :value="option.code" />
</el-select>
</el-col>
<el-col :span="9">
<el-select
:id="domIdChoose2"
v-model="model.confirmSectionCode"
filterable
size="mini"
:disabled="type==='text'"
@change="sectionSelectChange"
>
<el-option v-for="(option,index) in randomSectionList" :key="index" :label="option.name" :value="option.code" />
</el-select>
</el-col>
<el-col :span="4" :offset="1">
<el-button
:id="domIdConfirm2"
size="mini"
:loading="loading"
:disabled="type==='text'"
@click="commit"
>确认</el-button>
</el-col>
</el-row>
</div>
</div>
<el-row type="flex" justify="left" style="margin-top:20px;margin-bottom: 10px;">
<el-col :span="6" :offset="1">操作倒计时</el-col>
<el-col :span="16">
<el-input v-model="model.time" size="mini" :readonly="true" />
</el-col>
</el-row>
<el-row>
<el-col :offset="1">状态</el-col>
</el-row>
<el-row>
<el-col :offset="1" :span="23">
<el-input v-model="model.status" type="textarea" :rows="2" placeholder />
</el-col>
</el-row>
<el-row class="botton-group" style="margin-top:20px">
<el-col :span="4" :offset="10">
<el-button :id="domIdCancel" @click="cancel">关闭</el-button>
</el-col>
</el-row>
<notice-info ref="noticeInfo" pop-class="xian-02__systerm" />
<popup-alarm ref="popupAlarm" />
</el-dialog>
</template>
<script>
import { mapGetters } from 'vuex';
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
import PopupAlarm from './childDialog/popupAlarm';
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
import CMD from '@/scripts/cmdPlugin/CommandEnum';
export default {
name: 'AlxeEffective',
components: {
NoticeInfo,
PopupAlarm
},
data() {
return {
dialogShow: false,
loading: false,
type: 'text',
timeout: 1000,
stepNum: 0,
task: null,
model: {
stationName: '',
sectionName: '',
stationCode: '',
sectionCode: '',
confirmStationCode: '',
confirmSectionCode: '',
status: '',
time: 0
},
selected: null,
operate: null,
operation: '',
randomSectionList: []
};
},
computed: {
...mapGetters('map', ['stationList', 'sectionList']),
filterStationList() {
const list = [];
if (this.stationList) {
this.stationList.forEach(elem => {
if (
list.findIndex(it => {
return it.name == elem.name;
}) < 0
) {
list.push({ name: elem.name, code: elem.code });
}
});
}
return list;
},
show() {
return this.dialogShow && !this.$store.state.menuOperation.break;
},
domIdConfirm1() {
if (this.operation == OperationEvent.Section.alxeEffective.menu.operation) {
return OperationEvent.Section.alxeEffective.confirm1.domId;
} else if (this.operation == OperationEvent.Switch.alxeEffective.menu.operation) {
return OperationEvent.Switch.alxeEffective.confirm1.domId;
}
return '';
},
domIdConfirm2() {
if (this.operation == OperationEvent.Section.alxeEffective.menu.operation) {
return OperationEvent.Section.alxeEffective.confirm2.domId;
} else if (this.operation == OperationEvent.Switch.alxeEffective.menu.operation) {
return OperationEvent.Switch.alxeEffective.confirm2.domId;
}
return '';
},
domIdChoose1() {
if (this.operation == OperationEvent.Section.alxeEffective.menu.operation) {
return OperationEvent.Section.alxeEffective.choose1.domId;
} else if (this.operation == OperationEvent.Switch.alxeEffective.menu.operation) {
return OperationEvent.Switch.alxeEffective.choose1.domId;
}
return '';
},
domIdChoose2() {
if (this.operation == OperationEvent.Section.alxeEffective.menu.operation) {
return OperationEvent.Section.alxeEffective.choose2.domId;
} else if (this.operation == OperationEvent.Switch.alxeEffective.menu.operation) {
return OperationEvent.Switch.alxeEffective.choose2.domId;
}
return '';
},
domIdCancel() {
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
},
title() {
if ( this.operation == OperationEvent.Section.alxeEffective.menu.operation || this.operation == OperationEvent.Switch.alxeEffective.menu.operation ) {
return '确认计轴恢复工作';
}
return '';
}
},
watch: {
},
mounted() {
this.$nextTick(() => {
this.$store.dispatch('training/tipReload');
});
},
methods: {
stopTask() {
if (this.task) {
clearInterval(this.task);
this.task = null;
}
if (this.stepNum < 3) {
this.$store.dispatch('training/backSteps', this.stepNum);
this.$store.dispatch('training/emitTipFresh');
this.model.name = '';
this.model.time = '';
this.type = 'text';
}
},
doShow(operate, selected) {
this.selected = selected;
this.operate = operate || {};
this.operation = operate.operation;
this.status = '';
this.model.stationName = '';
this.model.sectionName = '';
this.model.confirmStationCode = '';
this.model.confirmSectionCode = '';
this.model.sectionCode = '';
this.model.stationCode = '';
if (selected) {
this.model.sectionCode = selected.code;
if (selected && selected._type.toUpperCase() === 'Section'.toUpperCase()) {
const section = this.$store.getters['map/getDeviceByCode'](selected.parentCode);
if (section) {
this.model.sectionName = `${section.name}-${selected.name}(${selected.code})`;
} else {
this.model.sectionName = `${selected.name}(${selected.code})`;
}
} else if (selected._type.toUpperCase() === 'Switch'.toUpperCase()) {
const section = this.$store.getters['map/getDeviceByCode'](selected.sectionParentCode);
if (section) {
this.model.sectionName = `${section.name}(${section.code})`;
this.model.sectionCode = section.code;
}
}
const station = this.$store.getters['map/getDeviceByCode'](selected.stationCode);
if (station) {
this.model.stationName = station.name;
this.model.stationCode = station.code;
}
}
this.stepNum = 0;
this.loading = false;
this.dialogShow = true;
this.stopTask();
this.$nextTick(function() {
this.$store.dispatch('training/emitTipFresh');
});
},
doClose() {
this.dialogShow = false;
this.$store.dispatch('training/emitTipFresh');
},
getSectionList(code) {
this.randomSectionList = [];
this.sectionList.forEach(section => {
if (section.stationCode == code) {
let name = `${section.name}(${section.code})`;
if (section.type == '02') {
const sectionParent = this.$store.getters['map/getDeviceByCode'](section.parentCode);
name = `${sectionParent.name}-${section.name}(${section.code})`;
}
this.randomSectionList.push({ name: `${name}`, code: section.code });
}
});
},
waitSelectEvent() {
if (!this.$store.state.menuOperation.break) {
this.model.time -= 1;
if (this.model.time <= 0) {
this.stopTask();
}
}
},
commitOnce() {
this.stepNum = 1;
const operate = {
operation: ''
};
if (this.operation == OperationEvent.Section.alxeEffective.menu.operation) {
operate.operation = OperationEvent.Section.alxeEffective.confirm1.operation;
} else if (this.operation == OperationEvent.Switch.alxeEffective.menu.operation) {
operate.operation = OperationEvent.Switch.alxeEffective.confirm1.operation;
}
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.type = 'password';
this.model.time = 60;
this.task = setInterval(this.waitSelectEvent, this.timeout);
}
});
},
stationSelectChange(code) {
const operate = {
operation: '',
val: code
};
this.getSectionList(code);
if (this.operation == OperationEvent.Section.alxeEffective.menu.operation) {
operate.operation = OperationEvent.Section.alxeEffective.choose1.operation;
} else if (this.operation == OperationEvent.Switch.alxeEffective.menu.operation) {
operate.operation = OperationEvent.Switch.alxeEffective.choose1.operation;
}
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
});
},
sectionSelectChange(code) {
const operate = {
operation: '',
val: code
};
if (this.operation == OperationEvent.Section.alxeEffective.menu.operation) {
operate.operation = OperationEvent.Section.alxeEffective.choose2.operation;
} else if (this.operation == OperationEvent.Switch.alxeEffective.menu.operation) {
operate.operation = OperationEvent.Switch.alxeEffective.choose2.operation;
}
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
});
},
/** 确认计轴恢复工作*/
commit() {
const operate = {
over: true,
operation: '',
cmdType: ''
};
if (this.operation == OperationEvent.Section.alxeEffective.menu.operation) {
operate.operation = OperationEvent.Section.alxeEffective.confirm2.operation;
operate.cmdType = CMD.Section.CMD_SECTION_COMFIRMATION_AXLE;
} else if (this.operation == OperationEvent.Switch.alxeEffective.menu.operation) {
operate.operation = OperationEvent.Switch.alxeEffective.confirm2.operation;
operate.cmdType = CMD.Switch.CMD_SWITCH_COMFIRMATION_AXLE;
}
this.model.status = '';
if (this.model.stationCode == this.model.confirmStationCode && this.model.sectionCode == this.model.confirmSectionCode) {
this.stepNum = 3;
this.loading = true;
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
this.loading = false;
if (valid) {
this.type = 'text';
this.stopTask();
// this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
// this.$refs.popupAlarm.doShow(
// Object.assign(this.operate, {val: operate.val}), [` ${this.model.stationName} ${this.model.sectionName}`]
// );
}
}).catch((error) => {
this.loading = false;
this.doClose();
this.$refs.noticeInfo.doShow(operate, error.message);
});
} else {
if (this.model.stationCode != this.model.confirmStationCode) {
this.model.status = '车站选择错误';
} else if (
this.model.sectionCode != this.model.confirmSectionCode
) {
this.model.status = '区段选择错误';
}
}
},
cancel() {
const operate = {
operation: OperationEvent.Command.cancel.menu.operation
};
this.$store
.dispatch('training/nextNew', operate)
.then(({ valid }) => {
if (valid) {
this.doClose();
}
})
.catch(() => {
this.doClose();
});
}
}
};
</script>
<style rel="stylesheet/scss" lang="scss" scoped>
.alxe-effective .context {
height: 80px !important;
}
</style>

View File

@ -1,98 +0,0 @@
<template>
<el-dialog
v-dialogDrag
class="xian-02__system popup-alarm"
:title="title"
:visible.sync="show"
width="500px"
:before-close="doClose"
:z-index="2000"
:modal="false"
:close-on-click-modal="false"
append-to-body
>
<el-row>
<el-col :offset="2">
<span v-for="(message, index) in messages" :key="index">{{ message }}</span><br>
</el-col>
</el-row>
<el-row justify="center" class="button-group">
<el-col :span="10" :offset="8">
<el-button :id="domIdSure" type="primary" @click="commit">确定</el-button>
</el-col>
</el-row>
</el-dialog>
</template>
<script>
import { OperationEvent } from '@/scripts/ConstDic';
export default {
name: 'PopupAlarm',
data() {
return {
dialogShow: false,
messages: [],
operate: null,
operation: ''
};
},
computed: {
show() {
return this.dialogShow && !this.$store.state.menuOperation.break;
},
title() {
return '弹出式告警';
},
domIdSure() {
return this.dialogShow ? OperationEvent.Command.close.alarm.domId : '';
}
},
mounted() {
this.$nextTick(() => {
this.$store.dispatch('training/tipReload');
});
},
methods: {
doShow(operate, messages) {
this.operate = operate || {};
this.operation = operate.operation;
this.dialogShow = true;
this.messages = messages || [];
this.$nextTick(function () {
this.$store.dispatch('training/emitTipFresh');
});
},
doClose() {
this.dialogShow = false;
this.$store.dispatch('training/emitTipFresh');
},
commit() {
if (this.operation == OperationEvent.Section.alxeEffective.menu.operation) {
//
this.alxeEffective();
}
},
alxeEffective() {
const operate = {
operation: OperationEvent.Command.close.alarm.operation
};
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.doClose();
}
});
}
}
};
</script>
<style>
.popup-alarm .context {
padding-bottom: 40px !important;
border: 1px solid lightgray;
}
</style>

View File

@ -4,7 +4,6 @@
<section-control ref="sectionControl" pop-class="xian-02__systerm" /> <section-control ref="sectionControl" pop-class="xian-02__systerm" />
<section-un-lock ref="sectionUnLock" /> <section-un-lock ref="sectionUnLock" />
<speed-limit-control ref="speedLimitControl" /> <speed-limit-control ref="speedLimitControl" />
<alxe-effective ref="alxeEffective" />
<notice-info ref="noticeInfo" pop-class="xian-02__systerm" /> <notice-info ref="noticeInfo" pop-class="xian-02__systerm" />
</div> </div>
</template> </template>
@ -14,7 +13,6 @@ import PopMenu from '@/components/PopMenu/index';
import SectionControl from '@/jmapNew/theme/components/menus/dialog/sectionControl'; import SectionControl from '@/jmapNew/theme/components/menus/dialog/sectionControl';
import SectionUnLock from './dialog/sectionUnLock'; import SectionUnLock from './dialog/sectionUnLock';
import SpeedLimitControl from './dialog/speedLimitControl'; import SpeedLimitControl from './dialog/speedLimitControl';
import AlxeEffective from './dialog/alxeEffective';
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo'; import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
import { mapGetters } from 'vuex'; import { mapGetters } from 'vuex';
import CMD from '@/scripts/cmdPlugin/CommandEnum'; import CMD from '@/scripts/cmdPlugin/CommandEnum';
@ -30,7 +28,6 @@ export default {
SectionControl, SectionControl,
SectionUnLock, SectionUnLock,
SpeedLimitControl, SpeedLimitControl,
AlxeEffective,
NoticeInfo NoticeInfo
}, },
props: { props: {
@ -236,14 +233,6 @@ export default {
} }
}); });
}, },
//
alxeEffective() {
commitOperate(menuOperate.Section.alxeEffective, {sectionCode:this.selected.code}, 0).then(({valid, operate})=>{
if (valid) {
this.$refs.alxeEffective.doShow(operate, this.selected);
}
});
},
// //
active() { active() {
commitOperate(menuOperate.Section.active, {sectionCode:this.selected.code}, 0).then(({valid, operate})=>{ commitOperate(menuOperate.Section.active, {sectionCode:this.selected.code}, 0).then(({valid, operate})=>{

View File

@ -4,7 +4,6 @@
<switch-control ref="switchControl" pop-class="xian-02__systerm" /> <switch-control ref="switchControl" pop-class="xian-02__systerm" />
<switch-un-lock ref="switchUnLock" /> <switch-un-lock ref="switchUnLock" />
<speed-limit-control ref="speedLimitControl" /> <speed-limit-control ref="speedLimitControl" />
<alxe-effective ref="alxeEffective" />
<notice-info ref="noticeInfo" pop-class="xian-02__systerm" /> <notice-info ref="noticeInfo" pop-class="xian-02__systerm" />
</div> </div>
</template> </template>
@ -14,7 +13,6 @@ import PopMenu from '@/components/PopMenu/index';
import SwitchControl from '@/jmapNew/theme/components/menus/dialog/switchControl'; import SwitchControl from '@/jmapNew/theme/components/menus/dialog/switchControl';
import SwitchUnLock from './dialog/switchUnLock'; import SwitchUnLock from './dialog/switchUnLock';
import SpeedLimitControl from './dialog/speedLimitControl'; import SpeedLimitControl from './dialog/speedLimitControl';
import AlxeEffective from './dialog/alxeEffective';
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo'; import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
import { mapGetters } from 'vuex'; import { mapGetters } from 'vuex';
@ -30,7 +28,6 @@ export default {
SwitchControl, SwitchControl,
SwitchUnLock, SwitchUnLock,
SpeedLimitControl, SpeedLimitControl,
AlxeEffective,
NoticeInfo NoticeInfo
}, },
props: { props: {
@ -324,14 +321,6 @@ export default {
} }
}); });
}, },
//
alxeEffective() {
commitOperate(menuOperate.Switch.alxeEffective, {switchCode:this.selected.code}, 0).then(({valid, operate})=>{
if (valid) {
this.$refs.alxeEffective.doShow(operate, this.selected);
}
});
},
enabledConfirm() { enabledConfirm() {
this.$store.dispatch('menuOperation/pushRequestList', { this.$store.dispatch('menuOperation/pushRequestList', {
device: this.selected, device: this.selected,

View File

@ -153,7 +153,31 @@ export function deepAssign(obj, item) {
const targetObj = item[keys].constructor == Array ? [] : {}; const targetObj = item[keys].constructor == Array ? [] : {};
target[keys] = deepAssign(targetObj, item[keys]); target[keys] = deepAssign(targetObj, item[keys]);
} else { } else {
target[keys] = item[keys]; target[keys] = item[keys] || '';
}
}
}
return Object.assign(obj, target);
}
// 对象深拷贝并赋值
export function deepAssigns(obj, item) {
const target = item.constructor === Array ? [] : {}; // 判断复制的目标是数组还是对象
for (const keys in obj) {
if (item.hasOwnProperty(keys) && keys != 'instance') { // instance 对面不拷贝
if (item[keys] && typeof item[keys] == 'object') { // 如果值是对象,就递归一下
const targetObj = item[keys].constructor == Array ? [] : {};
target[keys] = deepAssign(targetObj, item[keys]);
} else {
target[keys] = item[keys] || '';
}
} else {
if (typeof obj[keys] == 'boolean') {
target[keys] = false;
} else if (typeof obj[keys] == 'number') {
target[keys] = 0;
} else if (typeof obj[keys] == 'string') {
target[keys] = '';
} }
} }
} }

View File

@ -498,9 +498,8 @@ export default {
}, },
saveMapEvent() { // saveMapEvent() { //
const map = this.$store.state.map.map; const map = this.$store.state.map.map;
// map.signalList.forEach(item => { // map.sectionList.forEach(item => {
// item.namePosition = { x: 0, y: 0 }; // item.belongStation = '';
// item.lampPositionType = '02';
// }); // });
if (this.$refs.jlmapVisual && map && parseInt(this.$route.params.mapId)) { if (this.$refs.jlmapVisual && map && parseInt(this.$route.params.mapId)) {
if (this.verifySectionPoint(map)) { if (this.verifySectionPoint(map)) {

View File

@ -56,7 +56,7 @@
import { mapGetters } from 'vuex'; import { mapGetters } from 'vuex';
import JTriangle from '@/jmapNew/utils/JTriangle'; import JTriangle from '@/jmapNew/utils/JTriangle';
import ConfigList from '../config/list'; import ConfigList from '../config/list';
import { deepAssign } from '@/utils/index'; import { deepAssign, deepAssigns } from '@/utils/index';
import LogicBlock from './logicBlock'; import LogicBlock from './logicBlock';
import TipInfo from './tipInfo'; import TipInfo from './tipInfo';
import CreateSection from './create'; import CreateSection from './create';
@ -501,7 +501,7 @@ export default {
} }
this.clear(); this.clear();
this.activeName = 'first'; this.activeName = 'first';
this.editModel = deepAssign(this.editModel, selected); this.editModel = deepAssigns(this.editModel, selected);
this.oldPoint = selected.points; this.oldPoint = selected.points;
this.oldLeftSectionCode = selected.leftSectionCode; this.oldLeftSectionCode = selected.leftSectionCode;
this.oldRightSectionCode = selected.rightSectionCode; this.oldRightSectionCode = selected.rightSectionCode;