Merge branch 'test' of https://git.code.tencent.com/lian-cbtc/jl-client into test
This commit is contained in:
commit
e0f7175923
@ -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"
|
||||
|
@ -214,11 +214,11 @@ export default {
|
||||
},
|
||||
menuForce: [
|
||||
{
|
||||
label: '设置通信故障',
|
||||
label: '设置故障',
|
||||
handler: this.setStoppage
|
||||
},
|
||||
{
|
||||
label: '取消通信故障',
|
||||
label: '取消故障',
|
||||
handler: this.cancelStoppage
|
||||
},
|
||||
{
|
||||
|
@ -127,11 +127,11 @@ export default {
|
||||
},
|
||||
menuForce: [
|
||||
{
|
||||
label: '设置通信故障',
|
||||
label: '设置故障',
|
||||
handler: this.setStoppage
|
||||
},
|
||||
{
|
||||
label: '取消通信故障',
|
||||
label: '取消故障',
|
||||
handler: this.cancelStoppage
|
||||
},
|
||||
{
|
||||
|
@ -110,11 +110,11 @@ export default {
|
||||
},
|
||||
menuForce: [
|
||||
{
|
||||
label: '设置通信故障',
|
||||
label: '设置故障',
|
||||
handler: this.setStoppage
|
||||
},
|
||||
{
|
||||
label: '取消通信故障',
|
||||
label: '取消故障',
|
||||
handler: this.cancelStoppage
|
||||
},
|
||||
{
|
||||
|
@ -119,11 +119,11 @@ export default {
|
||||
},
|
||||
menuForce: [
|
||||
{
|
||||
label: '设置通信故障',
|
||||
label: '设置故障',
|
||||
handler: this.setStoppage
|
||||
},
|
||||
{
|
||||
label: '取消通信故障',
|
||||
label: '取消故障',
|
||||
handler: this.cancelStoppage
|
||||
},
|
||||
{
|
||||
|
@ -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: '确认运行至前方站',
|
||||
|
@ -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: '确认运行至前方站',
|
||||
|
@ -113,8 +113,7 @@ export default {
|
||||
},
|
||||
{
|
||||
label: '取消故障',
|
||||
handler: this.undeveloped,
|
||||
cmdType:CMD.Train.CMD_TRAIN_REMOVE_FAULT
|
||||
handler: this.cancelStoppage
|
||||
},
|
||||
{
|
||||
label: '确认运行至前方站',
|
||||
|
@ -221,7 +221,7 @@ export default {
|
||||
},
|
||||
{
|
||||
label: '取消故障',
|
||||
handler: this.undeveloped
|
||||
handler: this.cancelStoppage
|
||||
},
|
||||
{
|
||||
label: '确认运行至前方站',
|
||||
|
@ -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] || {};
|
||||
|
@ -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;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
|
@ -32,6 +32,9 @@ export default {
|
||||
}
|
||||
},
|
||||
watch:{
|
||||
'$store.state.socket.acceptConversionInvite':function(val) {
|
||||
this.$emit('connectMember', val);
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
},
|
||||
|
@ -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);
|
||||
|
@ -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>
|
||||
|
@ -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%;
|
||||
|
@ -658,7 +658,6 @@ export default {
|
||||
}
|
||||
.box{
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.mapPaint{
|
||||
|
@ -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>
|
||||
|
@ -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) {
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -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() {
|
||||
|
@ -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' }
|
||||
|
@ -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: {
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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});
|
||||
|
@ -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() {
|
||||
|
@ -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
Loading…
Reference in New Issue
Block a user