This commit is contained in:
zyy 2020-07-17 18:28:56 +08:00
commit e0f7175923
27 changed files with 990 additions and 729 deletions

View File

@ -57,6 +57,8 @@
v-if="item.precisionFlag"
v-model="formModel[item.prop]"
:placeholder="item.placeholder"
:size="item.size"
:controls="!item.noControls"
:disabled="item.disabled"
:min="isNaN(item.min) ? -Infinity : item.min"
:max="isNaN(item.max)? Infinity : item.max"

View File

@ -214,11 +214,11 @@ export default {
},
menuForce: [
{
label: '设置通信故障',
label: '设置故障',
handler: this.setStoppage
},
{
label: '取消通信故障',
label: '取消故障',
handler: this.cancelStoppage
},
{

View File

@ -127,11 +127,11 @@ export default {
},
menuForce: [
{
label: '设置通信故障',
label: '设置故障',
handler: this.setStoppage
},
{
label: '取消通信故障',
label: '取消故障',
handler: this.cancelStoppage
},
{

View File

@ -110,11 +110,11 @@ export default {
},
menuForce: [
{
label: '设置通信故障',
label: '设置故障',
handler: this.setStoppage
},
{
label: '取消通信故障',
label: '取消故障',
handler: this.cancelStoppage
},
{

View File

@ -119,11 +119,11 @@ export default {
},
menuForce: [
{
label: '设置通信故障',
label: '设置故障',
handler: this.setStoppage
},
{
label: '取消通信故障',
label: '取消故障',
handler: this.cancelStoppage
},
{

View File

@ -87,13 +87,12 @@ export default {
},
menuForce: [
{
label: this.$t('menu.menuTrain.setCommunicationFault'),
label: '设置故障',
handler: this.setStoppage
},
{
label: this.$t('menu.menuTrain.cancelCommunicationFault'),
handler: this.undeveloped,
cmdType:CMD.Train.CMD_TRAIN_REMOVE_FAULT
label: '取消故障',
handler: this.cancelStoppage
},
{
label: '确认运行至前方站',

View File

@ -72,9 +72,8 @@ export default {
handler: this.setStoppage
},
{
label: this.$t('menu.menuTrain.cancelCommunicationFault'),
handler: this.cancelStoppage,
cmdType:CMD.Train.CMD_TRAIN_REMOVE_FAULT
label: '取消故障',
handler: this.cancelStoppage
},
{
label: '确认运行至前方站',

View File

@ -113,8 +113,7 @@ export default {
},
{
label: '取消故障',
handler: this.undeveloped,
cmdType:CMD.Train.CMD_TRAIN_REMOVE_FAULT
handler: this.cancelStoppage
},
{
label: '确认运行至前方站',

View File

@ -221,7 +221,7 @@ export default {
},
{
label: '取消故障',
handler: this.undeveloped
handler: this.cancelStoppage
},
{
label: '确认运行至前方站',

View File

@ -257,11 +257,13 @@ export default {
};
if (res && res.code === 200) {
res.data.forEach(item => {
this.trainingOperateTypeMap[item.operateObject].forEach(ele => {
if (ele.value == item.operate && !this.checkIncludes(operateTypeMap[item.operateObject], ele)) {
operateTypeMap[item.operateObject].push(ele);
}
});
if (this.trainingOperateTypeMap[item.operateObject]) {
this.trainingOperateTypeMap[item.operateObject].forEach(ele => {
if (ele.value == item.operate && !this.checkIncludes(operateTypeMap[item.operateObject], ele)) {
operateTypeMap[item.operateObject].push(ele);
}
});
}
if (!trainingOperateList.includes(item.operateObject)) {
trainingOperateList.push(item.operateObject);
const objectLabel = ConstConfig.ConstSelect.trainingDeviceType[item.operateObject] || {};

View File

@ -562,6 +562,13 @@ export default {
},
handleSetting() {
this.$refs.chatSetting.doShow();
},
connectMember(val) {
this.conversitionMemberList.forEach(member => {
if (member.memberId == val.memberId) {
member.connect = true;
}
});
}
}
};

View File

@ -32,6 +32,9 @@ export default {
}
},
watch:{
'$store.state.socket.acceptConversionInvite':function(val) {
this.$emit('connectMember', val);
}
},
mounted() {
},

View File

@ -570,9 +570,27 @@ export default {
}
});
this.conversitionMemberList = [];
const temDispatcherList = [];
const temStationSupervisorList = [];
const temMaintainerList = [];
const temDriverList = [];
this.$store.state.training.memberList.forEach(item =>{
this.conversitionMemberList.push({memberId: item.id, connect:true });
switch (item.type) {
case 'DISPATCHER':
temDispatcherList.push({memberId: item.id, connect:true });
break;
case 'STATION_SUPERVISOR':
temStationSupervisorList.push({memberId: item.id, connect:true });
break;
case 'MAINTAINER':
temMaintainerList.push({memberId: item.id, connect:true });
break;
case 'DRIVER':
temDriverList.push({memberId: item.id, connect:true });
break;
}
});
this.conversitionMemberList = [...temDispatcherList, ...temStationSupervisorList, ...temMaintainerList, ...temDriverList];
},
changeMessageList(data) {
this.messageList.push(data);

View File

@ -4,14 +4,11 @@
<div v-for="(chatContent,index) in messageList" :key="index" class="chatContentInClass">
<div :class="chatContent.self?'rightUser':'leftUser'">
<div class="userHeader">
<!-- chatContent.all&& -->
<div v-if="!chatContent.self" class="userName">{{ covertName(chatContent,false) }}</div>
<div :class="chatContent.self?'userChatTime textRight':'userChatTime'">{{ chatContent.time }}</div>
</div>
<div class="userBubble" @click="playAudio(baseUrl+chatContent.src)">
<div class="userMessage">
<!-- chatContent.all&& -->
<!--<span>{{ covertName(chatContent,true) }}</span>-->
<span class="el-icon-video-play playicon" />
<span class="messageText">{{ chatContent.content }}</span>
</div>

View File

@ -79,16 +79,6 @@ export default {
{label:'停站时间', name:'dwellTime', menus:DwellTimeOperate},
{label:'设置运行等级', name:'runLevel', menus:RunLevelOperate}
]
// enabledTabMenu: {
// route: 'routeOperate',
// routing: 'routingOperate',
// automatic: 'automaticOperate',
// signal: 'signalOperate',
// runLevel: 'runLevelOperate',
// turned: 'turnedOperate',
// flankProtect: 'flankProtectOperate',
// dwellTime: 'dwellTimeOperate'
// }
};
},
mounted() {
@ -124,10 +114,9 @@ export default {
this.$emit('selectView', 'draft');
},
tabBeforeLeave(activeName, oldActiveName) {
if (oldActiveName === 'route' || oldActiveName === 'signal' || oldActiveName == 'runLevel' || oldActiveName == 'routing') {
this.$refs[oldActiveName][0].batchSectionListFocus(false);
}
if (activeName === 'route' || activeName === 'signal' || activeName == 'runLevel' || activeName == 'routing') {
const tabNames = ['route', 'signal', 'runLevel', 'routing'];
tabNames.includes(oldActiveName) && this.$refs[oldActiveName][0].batchSectionListFocus(false);
if (tabNames.includes(activeName)) {
this.$nextTick(() => {
this.$refs[activeName][0].batchSectionListFocus(true);
});
@ -138,13 +127,6 @@ export default {
</script>
<style rel="stylesheet/scss" lang="scss" scoped>
@import "src/styles/mixin.scss";
.map-context {
display: block;
float: left;
margin-left: 5px;
}
.map-control {
float: right;
width: 100%;

View File

@ -658,7 +658,6 @@ export default {
}
.box{
height: 100%;
overflow: hidden;
}
.mapPaint{

View File

@ -36,8 +36,8 @@
<el-input v-model="addBackModel.label" type="text" maxlength="30" :show-word-limit="true" />
</el-form-item>
<el-form-item v-if="addBackModel.type != 'NONE'" label="折返轨:" prop="sectionList">
<el-select v-model="addBackModel.sectionList" clearable multiple :filterable="true">
<el-option v-for="item in sectionList" :key="item.value" :label="`${item.name}(${item.code})`" :value="item.value" />
<el-select v-model="addBackModel.sectionList" clearable multiple filterable>
<el-option v-for="item in sectionList" :key="item.code" :label="`${item.name}(${item.code})`" :value="item.code" />
</el-select>
<el-button :type="field === 'sectionCode1' ? 'danger' : 'primary'" @click="hover('sectionCode1')">激活</el-button>
</el-form-item>

View File

@ -1,51 +1,16 @@
<template>
<el-form ref="form" :label-width="form.labelWidth" size="mini" :rules="rules" :model="formModel">
<template v-for="item in form.items">
<template v-if="checkFieldType(item, 'select')">
<el-form-item v-if="!item.isHidden" :key="item.prop" :label="item.label" :prop="item.prop" :required="item.required">
<template v-if="item.change">
<el-select
v-model="formModel[item.prop]"
filterable
:placeholder="item.placeholder"
:disabled="item.disabled"
@change="item.deviceChange"
>
<el-option
v-for="option in item.options"
:key="option[item.optionValue]"
:label="handleLabel(option, item.optionLabel)"
:value="option[item.optionValue]"
/>
</el-select>
</template>
<template v-else>
<el-select
v-model="formModel[item.prop]"
filterable
:placeholder="item.placeholder"
:disabled="item.disabled"
>
<el-option
v-for="option in item.options"
:key="option[item.optionValue]"
:label="handleLabel(option, item.optionLabel)"
:value="option[item.optionValue]"
/>
</el-select>
</template>
</el-form-item>
</template>
<template v-if="checkFieldType(item, 'multiSelect')">
<template v-if="checkFieldType(item, ['select','multiSelect','selectHover'])">
<el-form-item v-if="!item.isHidden" :key="item.prop" :label="item.label" :prop="item.prop" :required="item.required">
<el-select
v-model="formModel[item.prop]"
filterable
multiple
clearable
:multiple="checkFieldType(item,['multiSelect'])"
:placeholder="item.placeholder"
:disabled="item.disabled"
:clearable="item.clearable"
@change="item.deviceChange"
@change="item.deviceChange||deviceChange"
>
<el-option
v-for="option in item.options"
@ -54,35 +19,19 @@
:value="option[item.optionValue]"
/>
</el-select>
</el-form-item>
</template>
<template v-if="checkFieldType(item, 'selectHover')">
<el-form-item v-if="!item.isHidden" :key="item.prop" :label="item.label" :prop="item.prop" :required="item.required">
<el-select
v-model="formModel[item.prop]"
filterable
:placeholder="item.placeholder"
:disabled="item.disabled"
>
<el-option
v-for="option in item.options"
:key="option.code"
:label="handleLabel(option, item.optionLabel)"
:value="option.code"
/>
</el-select>
<el-button
v-if="checkFieldType(item,['selectHover'])"
:type="item.buttonShowType ? 'danger' : 'primary'"
@click="item.hover(item.buttonType)"
>{{ $t('map.activate') }}</el-button>
</el-form-item>
</template>
<template v-if="checkFieldType(item, 'input')">
<template v-if="checkFieldType(item, ['input'])">
<el-form-item v-if="!item.isHidden" :key="item.prop" :label="item.label" :prop="item.prop" :required="item.required">
<el-input v-model="formModel[item.prop]" type="text" :disabled="item.disabled" maxlength="30" show-word-limit />
</el-form-item>
</template>
<template v-if="checkFieldType(item, 'number')">
<template v-if="checkFieldType(item, ['number'])">
<el-form-item v-if="!item.isHidden" :key="item.prop" :label="item.label" :prop="item.prop" :required="item.required">
<div v-if="!item.firstLevel">
<el-input-number v-model="formModel[item.prop]" :min="item.min" :max="item.max" :label="item.label" :disabled="item.disabled" />
@ -94,12 +43,12 @@
</div>
</el-form-item>
</template>
<template v-if="checkFieldType(item, 'color')">
<template v-if="checkFieldType(item, ['color'])">
<el-form-item v-if="!item.isHidden" :key="item.prop" :label="item.label" :prop="item.prop" :required="item.required">
<el-color-picker v-model="formModel[item.prop]" show-alpha :predefine="skins" :disabled="item.disabled" />
</el-form-item>
</template>
<template v-if="checkFieldType(item, 'radio')">
<template v-if="checkFieldType(item, ['radio'])">
<el-form-item v-if="!item.isHidden" :key="item.prop" :label="item.label" :prop="item.prop" :required="item.required">
<el-radio-group v-model="formModel[item.prop]" :disabled="item.disabled">
<el-radio v-for="(opts, index) in item.radioList" :key="index" :border="item.border" :label="opts.value">{{ opts.label }}</el-radio>
@ -107,7 +56,7 @@
</el-form-item>
</template>
<!-- 坐标点并列显示 -->
<template v-if="checkFieldType(item, 'coordinate')">
<template v-if="checkFieldType(item, ['coordinate'])">
<div v-if="!item.isHidden" :key="item.prop" class="coordinate">
<span class="title" :style="{width: item.width}">{{ item.label }}</span>
<div v-for="opt in item.children" :key="opt.code" class="listWidth">
@ -118,7 +67,7 @@
</div>
</template>
<!-- 多个坐标点绘制 -->
<template v-if="checkFieldType(item, 'points')">
<template v-if="checkFieldType(item, ['points'])">
<div v-if="!item.isHidden" :key="item.prop" class="coordinate">
<span class="title" :style="{width: item.width}">{{ item.label }}</span>
<div class="point-section">
@ -163,16 +112,26 @@
</div>
</div>
</template>
<template v-if="checkFieldType(item, 'checkbox')">
<template v-if="checkFieldType(item, ['checkbox'])">
<el-form-item v-if="!item.isHidden" :key="item.prop" :label="item.label" :prop="item.prop" :required="item.required">
<el-checkbox v-model="formModel[item.prop]" :disabled="item.disabled" />
</el-form-item>
</template>
<template v-if="checkFieldType(item, 'font')">
<template v-if="checkFieldType(item, ['font'])">
<el-form-item v-if="!item.isHidden" :key="item.prop" :label="item.label" :prop="item.prop" :required="item.required">
<el-font v-model="formModel[item.prop]" :disabled="item.disabled" :placeholder="item.placeholder" />
</el-form-item>
</template>
<template v-if="checkFieldType(item, 'fontContent')">
<el-form-item :key="item.prop" :label="item.label" :prop="item.prop" :required="item.required">
<el-input v-model="formModel[item.content]" :placeholder="item.placeholder" class="input-with-select">
<el-select slot="prepend" v-model="formModel[item.prepend]" :placeholder="item.placeholder">
<el-option :label="$t('map.horizontal')" value="H" />
<el-option :label="$t('map.vertical')" value="V" />
</el-select>
</el-input>
</el-form-item>
</template>
</template>
<slot />
</el-form>
@ -225,6 +184,9 @@ export default {
} else {
return option.label;
}
},
deviceChange() {
},
decompose(item, prop) {
if (!prop.includes('.')) {
@ -235,9 +197,9 @@ export default {
},
checkFieldType(field, type) {
if (field.hasOwnProperty('show')) {
return field.type === type && field.show;
return type.includes(field.type) && field.show;
} else {
return field.type === type;
return type.includes(field.type);
}
},
validate(callback) {

View File

@ -2,21 +2,21 @@
<transition name="el-zoom-in-center">
<div class="map-control">
<div class="border-card">
<div class="clearfix">
<div class="map-operate">
<span>
{{ $t('map.mapName') }}
<b>{{ mapInfo.name }}</b>
</span>
<el-button v-if="isSave" type="text" style="float: right; padding: 3px 0" :disabled="$attrs.mapSaveing" @click="saveMapEvent">{{ $t('map.save') }}</el-button>
<el-dropdown style="float: right; padding: 3px 0; margin-right: 5px;" trigger="click">
<el-dropdown class="operate-button" trigger="click">
<span class="el-dropdown-link">数据操作</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item><span style="display:block;" :disabled="$attrs.mapSaveing" @click="verifyMapEvent">{{ $t('map.dataVerification') }}</span></el-dropdown-item>
<el-dropdown-item><span style="display:block;" :disabled="$attrs.mapSaveing" @click="generateCIEvent">生成联锁</span></el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
<el-button type="text" style="float: right; padding: 3px 0; margin-right: 5px;" @click="dataRelation">{{ $t('map.advanced') }}</el-button>
<el-button type="text" style="float: right; padding: 3px 0; margin-right: 5px;" @click="showMap">绘图显隐</el-button>
<el-button type="text" class="operate-button" @click="dataRelation">{{ $t('map.advanced') }}</el-button>
<el-button type="text" class="operate-button" @click="showMap">绘图显隐</el-button>
</div>
<el-tabs v-show="projectType" v-model="enabledTab" class="mapEdit" type="card">
<el-tab-pane v-for="(each,index) in tabList" :key="index" :label="each.label" class="tab_pane_box" :name="each.name" :lazy="lazy">
@ -182,7 +182,7 @@ export default {
const type = device._type;
if (this.selectDevice) {
this.enabledTab = this.selectDevice;
} else if (type == 'AutomaticRoute' || type == 'AutoTurnBack' || type == 'AxleReset' || type == 'LimitControl' || type == 'GuideLock' || type == 'StationTurnBack') {
} else if (['AutomaticRoute', 'AutoTurnBack', 'AxleReset', 'LimitControl', 'GuideLock', 'StationTurnBack'].includes(type)) {
this.enabledTab = 'ControlDraft';
} else if (controlLampTypeList.includes(type)) {
this.enabledTab = 'ControlLamp';
@ -190,14 +190,9 @@ export default {
this.enabledTab = type;
}
},
deviceSelect(type) {
this.selectDevice = type;
},
handleSelectLogicalView(handle) {
this.$emit('handleSelectLogicalView', handle);
},
handleSelectPhysicalView(handle) {
this.$emit('handleSelectPhysicalView', handle);
},
@ -215,12 +210,6 @@ export default {
</script>
<style rel="stylesheet/scss" lang="scss" scoped>
@import "src/styles/mixin.scss";
.map-context {
display: block;
float: left;
margin-left: 5px;
}
.el-dropdown-link {
cursor: pointer;
color: #409EFF;
@ -229,7 +218,6 @@ export default {
font-size: 12px;
}
.map-control {
float: right;
width: 100%;
height: 100%;
.border-card{
@ -237,6 +225,12 @@ export default {
}
}
.operate-button{
float: right;
padding: 3px 0;
margin-right: 5px;
}
.physical-view {
line-height: 25px;
height: 118px;
@ -249,7 +243,7 @@ export default {
}
}
.clearfix{
.map-operate{
height: 47px;
padding: 15px
}

View File

@ -13,30 +13,7 @@
</el-tab-pane>
<el-tab-pane class="view-control" :label="$t('map.newConstruction')" name="second" :lazy="lazy">
<div class="view-control-content">
<el-form ref="make" label-width="150px" :rules="createRules" :model="addModel" size="mini">
<el-form-item :label="$t('map.statusSignalName')" prop="name">
<el-input v-model="addModel.name" />
</el-form-item>
<div class="coordinate">
<span class="title">{{ $t('map.stateSignalsPlotCoordinates') }}</span>
<el-form-item
label="x:"
prop="position.x"
style="display: table; float: left; margin-right: 20px;"
label-width="20px"
>
<el-input-number v-model="addModel.position.x" />
</el-form-item>
<el-form-item
label="y:"
prop="position.y"
style="display: table; float: left;"
label-width="20px"
>
<el-input-number v-model="addModel.position.y" />
</el-form-item>
</div>
</el-form>
<config-data ref="make" :form="createForm" :form-model="addModel" :rules="createRules" />
</div>
<div class="button_box">
<el-button-group class="map-draft-group">
@ -51,12 +28,14 @@
import { mapGetters } from 'vuex';
import { getUID } from '@/jmapNew/utils/Uid';
import ConfigList from './config/list';
import ConfigData from './config/data';
import { deepAssign } from '@/utils/index';
export default {
name: 'LcControlDraft',
components: {
ConfigList
ConfigList,
ConfigData
},
props: {
selected: {
@ -150,6 +129,19 @@ export default {
}
};
return form;
},
createForm() {
const form = {
labelWidth: '150px',
items: [
{ prop: 'name', label: this.$t('map.statusSignalName'), type: 'input' },
{ prop: 'position', label: this.$t('map.stateSignalsPlotCoordinates'), type: 'coordinate', width: '150px', children: [
{ prop: 'position.x', firstLevel: 'position', secondLevel: 'x', label: 'x:', type: 'number', labelWidth: '20px', disabled: false },
{ prop: 'position.y', firstLevel: 'position', secondLevel: 'y', label: 'y:', type: 'number', labelWidth: '20px', disabled: false }
] }
]
};
return form;
}
},
mounted() {

View File

@ -75,7 +75,7 @@ export default {
{ required: true, message: this.$t('rules.pleaseSelectLine'), trigger: 'blur' }
],
type: [
{ required: true, message: this.$t('rules.pleaseSelectLineType'), trigger: 'blur' }
{ required: true, message: this.$t('rules.pleaseSelectLineType'), trigger: 'change' }
],
width: [
{ required: true, message: this.$t('rules.pleaseSelectLineWidth'), trigger: 'blur' }
@ -86,7 +86,7 @@ export default {
{ required: true, message: this.$t('rules.pleaseSelectLine'), trigger: 'blur' }
],
type: [
{ required: true, message: this.$t('rules.pleaseSelectLineType'), trigger: 'blur' }
{ required: true, message: this.$t('rules.pleaseSelectLineType'), trigger: 'change' }
],
width: [
{ required: true, message: this.$t('rules.pleaseSelectLineWidth'), trigger: 'blur' }

View File

@ -13,40 +13,7 @@
</el-tab-pane>
<el-tab-pane class="view-control" :label="$t('map.newConstruction')" name="second" :lazy="lazy">
<div class="view-control-content">
<el-form ref="make" label-width="110px" :model="addModel" size="mini" :rules="makeRules">
<el-form-item :label="$t('map.textContent')" prop="content">
<el-input v-model="addModel.content" :placeholder="$t('map.pleaseEnter')" class="input-with-select">
<el-select slot="prepend" v-model="addModel.prepend" :placeholder="$t('map.pleaseSelect')">
<el-option :label="$t('map.horizontal')" value="H" />
<el-option :label="$t('map.vertical')" value="V" />
</el-select>
</el-input>
</el-form-item>
<el-form-item :label="$t('map.showConditions')" prop="showConditions">
<el-radio-group v-model="addModel.showConditions">
<el-radio v-for="each in showConditionsList" :key="each.value" :label="each.value">{{ each.label }}</el-radio>
</el-radio-group>
</el-form-item>
<div class="coordinate">
<span class="title" style="width: 110px">{{ $t('map.textPoints') }}</span>
<el-form-item
label="x:"
prop="position.x"
style="display: table; float: left; margin-right: 20px;"
label-width="25px"
>
<el-input-number v-model="addModel.position.x" label="x:" />
</el-form-item>
<el-form-item
label="y:"
prop="position.y"
style="display: table; float: left;"
label-width="25px"
>
<el-input-number v-model="addModel.position.y" label="y:" />
</el-form-item>
</div>
</el-form>
<config-data ref="make" :form="createForm" :form-model="addModel" :rules="makeRules" />
</div>
<div class="button_box">
<el-button-group class="map-draft-group">
@ -63,12 +30,14 @@ import Cookies from 'js-cookie';
import { mapGetters } from 'vuex';
import { getUID } from '@/jmapNew/utils/Uid';
import ConfigList from './config/list';
import ConfigData from './config/data';
import { deepAssign } from '@/utils/index';
export default {
name: 'StationStandDraft',
components: {
ConfigList
ConfigList,
ConfigData
},
props: {
selected: {
@ -176,6 +145,20 @@ export default {
}
};
return form;
},
createForm() {
const form = {
labelWidth: '110px',
items: [
{ prop: 'content', label: this.$t('map.textContent'), type: 'fontContent', content: 'content', prepend: 'prepend', placeholder: this.$t('map.pleaseEnter') },
{ prop: 'showConditions', label: this.$t('map.showConditions'), type: 'radio', optionLabel: 'label', optionValue:'value', radioList: this.showConditionsList},
{ prop: 'position', label: this.$t('map.textPoints'), type: 'coordinate', width: '120px', children: [
{ prop: 'position.x', firstLevel: 'position', secondLevel: 'x', label: 'x:', type: 'number', labelWidth: '25px', disabled: false },
{ prop: 'position.y', firstLevel: 'position', secondLevel: 'y', label: 'y:', type: 'number', labelWidth: '25px', disabled: false }
] }
]
};
return form;
}
},
methods: {

View File

@ -95,10 +95,7 @@ export default {
},
computed: {
...mapGetters('map', [
'sectionList',
'trainModelList',
'zcList',
'lineCode',
'stationList'
]),
form() {
@ -314,25 +311,6 @@ export default {
.card {
height: 100%;
}
.coordinate {
overflow: hidden;
.title {
text-align: right;
font-size: 14px;
color: #606266;
line-height: 40px;
padding: 0 12px 0 0;
-webkit-box-sizing: border-box;
box-sizing: border-box;
line-height: 28px;
width: 160px;
font-weight: bold;
display: block;
float: left;
}
}
.map-draft-group {
color: #3E44BE;
}

View File

@ -139,11 +139,10 @@ export default {
// const command = CommandHandler.getScriptDefinition(element.operationType);
const commandName = element.operationType;
let operateType = commandName.split('_')[0];
const data = commandName.toUpperCase();
if (operateType == 'CM') {
operateType = 'ControlConvertMenu';
}
const operateName = CMD[operateType]['CMD_' + data];
const operateName = Object.values(CMD[operateType]).find(res=>{ return res.value == commandName; });
const deviceTypeList = {Section:'区段', Switch:'道岔', Signal:'信号机', Stand:'站台', Station:'车站', TrainWindow:'车次窗', ControlConvertMenu:'控制模式', Driver:'司机'};
const operateTypeName = deviceTypeList[operateType];
this.actionInfoList.push({id: element.id, isCoversition: false, memberName: memberName, command: operateTypeName + '(' + operateName.label + ')', row: element, visible: false});

View File

@ -66,7 +66,6 @@
<script>
import { getDeviceDetail, setVrIbpConfig, setLwConfig, getDevicesByType, setIscsLwConfig, setIscsCwConfig } from '@/api/project';
import { getAllMapOnline, getStationListNeedAttendant } from '@/api/jmap/map';
export default {
name: 'EditConfig',
data() {

View File

@ -67,12 +67,11 @@ export default {
{label: '输出-开门位', value: 'o_o'},
{label: '输出-PSL信号灯控制位', value: 'o_psl_s'}
],
switchLeftValue: [
switchValue: [
{label: '网关地址', value: 'addr'},
{label: '输入-定位表示位', value: 'rnp'},
{label: '输入-反位表示位', value: 'rrp'},
{label: '输入-锁闭表示位', value: 'rl'}
],
switchRightValue: [
{label: '输入-锁闭表示位', value: 'rl'},
{label: '输出-定操(normal)控制位', value: 'wnp'},
{label: '输出-反操(reverse)控制位', value: 'wrp'}
],
@ -136,9 +135,7 @@ export default {
var validateDevice = (rule, value, callback) => {
const list = [];
rule.list.forEach(item=> {
if (item.value !== rule.field && this.formModel[item.value] && this.formModel[item.value] === value) {
list.push(item.label);
} else if (item.value === rule.field) {
if (this.formModel[item.value] && this.formModel[item.value] === value) {
list.push(item.label);
}
});
@ -335,15 +332,15 @@ export default {
this.leftRules = {
rnp: [
{ required: true, message: '请填写\'输入-定位表示位\'', trigger: 'blur' },
{ validator: validateDevice, list: this.switchLeftValue, trigger: ['blur', 'change'] }
{ validator: validateDevice, list: this.switchValue, trigger: ['blur', 'change'] }
],
rrp: [
{ required: true, message: '请填写\'输入-反位表示位\'', trigger: 'blur' },
{ validator: validateDevice, list: this.switchLeftValue, trigger: ['blur', 'change'] }
{ validator: validateDevice, list: this.switchValue, trigger: ['blur', 'change'] }
],
rl: [
{ required: true, message: '请填写\'输入-锁闭表示位\'', trigger: 'blur' },
{ validator: validateDevice, list: this.switchLeftValue, trigger: ['blur', 'change'] }
{ validator: validateDevice, list: this.switchValue, trigger: ['blur', 'change'] }
]
};
this.formRight = {
@ -356,11 +353,11 @@ export default {
this.rightRules = {
wnp: [
{ required: true, message: '请填写\'输出-定操(normal)控制位\'', trigger: 'blur' },
{ validator: validateDevice, list: this.switchRightValue, trigger: ['blur', 'change'] }
{ validator: validateDevice, list: this.switchValue, trigger: ['blur', 'change'] }
],
wrp: [
{ required: true, message: '请填写\'输出-反操(reverse)控制位\'', trigger: 'blur' },
{ validator: validateDevice, list: this.switchRightValue, trigger: ['blur', 'change'] }
{ validator: validateDevice, list: this.switchValue, trigger: ['blur', 'change'] }
]
};
break;

File diff suppressed because it is too large Load Diff