Merge remote-tracking branch 'origin/test'

This commit is contained in:
fan 2021-06-30 18:08:41 +08:00
commit 52fd77a145
27 changed files with 180 additions and 135 deletions

View File

@ -147,20 +147,20 @@ export default class key extends Group {
} }
} }
onclick() { onclick() {
if (!this.keyImage.draggable) { // if (!this.keyImage.draggable) {
switch (this.model.status) { // switch (this.model.status) {
case 'off': { // case 'off': {
this.keyImage.setStyle({image: keyPicOn}); // this.keyImage.setStyle({image: keyPicOn});
this.model.status = 'on'; // this.model.status = 'on';
break; // break;
} // }
case 'on': { // case 'on': {
this.keyImage.setStyle({image: keyPic}); // this.keyImage.setStyle({image: keyPic});
this.model.status = 'off'; // this.model.status = 'off';
break; // break;
} // }
} // }
} // }
} }
setStatus(model) { setStatus(model) {
if (model.on) { if (model.on) {

View File

@ -134,13 +134,6 @@ deviceState[deviceType.StationStand] = {
parkingTime: 0, // 站台停车时间 自动为0 parkingTime: 0, // 站台停车时间 自动为0
num:0, // 站台上等车人数 num:0, // 站台上等车人数
// /** 折返策略*/ // /** 折返策略*/
// reentryStrategy: {
// Default: '01', /** 默认(缺省值)*/
// State01: '01', /** 无折返策略 */
// State02: '02', /** 无人折返 */
// State03: '03', /** 自动换端 */
// State04: '04' /** 默认 */
// },
/** 是否故障*/ /** 是否故障*/
fault: 0 /** 非故障*/ fault: 0 /** 非故障*/
}; };

View File

@ -63,17 +63,17 @@ class EReentry extends Group {
reentryStrategy = model.defaultReentryStrategy; reentryStrategy = model.defaultReentryStrategy;
} }
switch (reentryStrategy) { switch (reentryStrategy) {
case '04': /** 默认*/ case 'DEFAULT': /** 默认*/
case '01': { case 'NONE': {
this.reentry && this.reentry.hideMode(); /** 无折返策略*/ this.reentry && this.reentry.hideMode(); /** 无折返策略*/
break; break;
} }
case '02': { case 'UNMANNED': {
this.showMode(); /** 无人折返*/ this.showMode(); /** 无人折返*/
this.setColor(style.StationStand.reentry.noHumanColor); this.setColor(style.StationStand.reentry.noHumanColor);
break; break;
} }
case '03':/** 自动换端*/ { case 'AUTO':/** 自动换端*/ {
this.showMode(); this.showMode();
this.setColor(style.StationStand.reentry.autoChangeEndsColor); this.setColor(style.StationStand.reentry.autoChangeEndsColor);
break; break;

View File

@ -58,14 +58,28 @@ class EMouse extends Group {
if (!store.state.map.mapConfig.upRight) { if (!store.state.map.mapConfig.upRight) {
direction = this.device.model.right != 1; direction = this.device.model.right != 1;
} }
const turnBackStrategyMap = new Map([
['NONE', '无折返'],
['DEFAULT', '默认'],
['AUTO', '自动换端'],
['UNMANNED', '无人折返']
]);
const turnBackStatusMap = new Map([
['NON', '无折返'],
['INIT', '初始化'],
['TO', '开往折返轨'],
['STOP', '到达折返轨停稳'],
['EXIT', '开出折返轨']
]);
// \nNumber of people: ${this.device.model.num ? this.device.model.num : 0} // \nNumber of people: ${this.device.model.num ? this.device.model.num : 0}
const path = window.location.href; const path = window.location.href;
const stationNames = new Map(store.state.map.map.stationList.map(s=>[s.code, s.name]));
if (!path.includes('/practiceDisplay')) { if (!path.includes('/practiceDisplay')) {
if (LangStorage.getLang() == 'en') { if (LangStorage.getLang() == 'en') {
text = ` The planned train: ${trainType} \n Table No.: ${this.device.model.serviceNumber} \n Train Trip No.: ${this.device.model.tripNumber}\n Destination: ${this.device.model.destinationCode ? this.device.model.destinationCode : ''}\n Train No.: ${this.device.model.groupNumber}\n Early or late: ${destinationText}\n Direction: ${direction ? 'up' : 'down'}\n Crew No.: \n Start Station: \n Terminal Station: \n Occupied Track: ${this.device.model.sectionModel ? (this.device.model.sectionModel.parentName ? this.device.model.sectionModel.parentName : this.device.model.sectionModel.name) : ''}\n Current Station: \n Train-ground communication: normal \n Operation Speed level: 4 \n Detained: ${this.device.model.hold ? 'Detained' : 'Normal'}\n \n 跳停状态: ${this.device.model.jump ? 'Skip to continue moving' : 'Normal'}Stationary: ${!this.device.model.stop ? 'No' : 'Yes'}\n Blocked: No \n Speed: ${this.device.model.speed || 0} km/h \n Authorized Distance: ${this.device.model.maLen || 0} m`; text = ` The planned train: ${trainType} \n Table No.: ${this.device.model.serviceNumber} \n Train Trip No.: ${this.device.model.tripNumber}\n Destination: ${this.device.model.destinationCode ? this.device.model.destinationCode : ''}\n Train No.: ${this.device.model.groupNumber}\n Early or late: ${destinationText}\n Direction: ${direction ? 'up' : 'down'}\n Crew No.: \n Start Station: \n Terminal Station: \n Occupied Track: ${this.device.model.sectionModel ? (this.device.model.sectionModel.parentName ? this.device.model.sectionModel.parentName : this.device.model.sectionModel.name) : ''}\n Current Station: \n Train-ground communication: normal \n Operation Speed level: 4 \n Detained: ${this.device.model.hold ? 'Detained' : 'Normal'}\n \n 跳停状态: ${this.device.model.jump ? 'Skip to continue moving' : 'Normal'}Stationary: ${!this.device.model.stop ? 'No' : 'Yes'}\n Blocked: No \n Speed: ${this.device.model.speed || 0} km/h \n Authorized Distance: ${this.device.model.maLen || 0} m`;
} else { } else {
if (this.device.style.Train.moreTrainDetail) { if (this.device.style.Train.moreTrainDetail) {
text = `列车类型: ${trainType}\n\0\0\0\0源:人工标记\n\0\0号: ${this.device.model.groupNumber}\n\0\0\0\0号: ${this.device.model.serviceNumber}\n\0\0号: ${this.device.model.tripNumber}\n目的地号: ${this.device.model.destinationCode ? this.device.model.destinationCode : ''}\n\0\0点: ${destinationText}${this.parseDt(this.device.model.dt)}\n运行方向: ${direction ? '上行' : '下行'}\nATP报告方向: ${direction ? '上行' : '下行'}\n起点站名: \n终点站名: \n占用轨道: ${this.device.model.sectionModel ? (this.device.model.sectionModel.parentName ? this.device.model.sectionModel.parentName : this.device.model.sectionModel.name) : ''}\n所在车站: \n车次通信: 通信车\n运行时间: \n停站时间: \n扣车状态: ${ this.device.model.hold ? '扣车' : '正常'}\n车载扣车: 不执行\n跳停状态: ${this.device.model.jump ? '跳停' : '正常'}\n停稳状态: ${!this.device.model.stop ? '未停稳' : '停稳'}\n阻塞状态: 无\n列车状态: ${this.device.model.runLevel || 'CTC'}\n最高信号系统控制: CTC\n驾驶模式: ${this.device.model.driveMode}模式\n最高ATP模式: AM\nATP1状态: 激活\nATP2状态: 备用\n速度: ${this.device.model.speed || 0} km/h\n车门状态: ${this.device.model.speed ? '关闭' : direction ? '左开右关' : '左关右开'}\n制动状态: 无紧急制动\n停车保证: 可保证停车\n站台无法进入: 否\n前方站台停车点: 中间\n折法策略: \n折返状态: \n屏蔽门开门许可: 是\n运营里程: 无效\n总重量: 196T\n车长: 11860cm\n列车编组: 1`; text = `列车类型: ${trainType}\n\0\0\0\0源:人工标记\n\0\0号: ${this.device.model.groupNumber}\n\0\0\0\0号: ${this.device.model.serviceNumber}\n\0\0号: ${this.device.model.tripNumber}\n目的地号: ${this.device.model.destinationCode ? this.device.model.destinationCode : ''}\n\0\0点: ${destinationText}${this.parseDt(this.device.model.dt)}\n运行方向: ${direction ? '上行' : '下行'}\nATP报告方向: ${direction ? '上行' : '下行'}\n起点站名: ${stationNames.get(this.device.model.startStation)}\n终点站名: ${stationNames.get(this.device.model.endStation)}\n占用轨道: ${this.device.model.sectionModel ? (this.device.model.sectionModel.parentName ? this.device.model.sectionModel.parentName : this.device.model.sectionModel.name) : ''}\n所在车站: ${stationNames.get(this.device.model.stationCode) || ''}\n车次通信: 通信车\n运行时间: ${this.device.model.runningTime}s\n停站时间: ${this.device.model.parkingRemainTime < 0 ? '无效' : `${this.device.model.parkingRemainTime}s`}\n扣车状态: ${ this.device.model.hold ? '扣车' : '正常'}\n车载扣车: 不执行\n跳停状态: ${this.device.model.jump ? '跳停' : '正常'}\n停稳状态: ${!this.device.model.stop ? '未停稳' : '停稳'}\n阻塞状态: 无\n列车状态: ${this.device.model.runLevel || 'CTC'}\n最高信号系统控制: CTC\n驾驶模式: ${this.device.model.driveMode}模式\n最高ATP模式: AM\nATP1状态: 激活\nATP2状态: 备用\n速度: ${this.device.model.speed || 0} km/h\n车门状态: ${this.device.model.speed ? '关闭' : direction ? '左开右关' : '左关右开'}\n制动状态: 无紧急制动\n停车保证: 可保证停车\n站台无法进入: 否\n前方站台停车点: 中间\n返策略: ${turnBackStrategyMap.get(this.device.model.turnBackStrategy)}\n折返状态: ${turnBackStatusMap.get(this.device.model.turnBackStatus)}\n屏蔽门开门许可: 是\n运营里程: 无效\n总重量: 196T\n车长: 11860cm\n列车编组: 1`;
} else { } else {
text = `列车类型: ${trainType} \n\0\0\0\0号: ${this.device.model.serviceNumber}\n\0\0号: ${this.device.model.tripNumber}\n目的地号: ${this.device.model.destinationCode ? this.device.model.destinationCode : ''}\n\0\0号: ${this.device.model.groupNumber}\n\0\0点: ${destinationText}\n运行方向: ${direction ? '上行' : '下行'}\n乘务组号: \n起点站名: \n终点站名: \n占用轨道: ${this.device.model.sectionModel ? (this.device.model.sectionModel.parentName ? this.device.model.sectionModel.parentName : this.device.model.sectionModel.name) : ''}\n所在车站: \n车地通信: 正常\n运行等级: 4\n扣车状态: ${this.device.model.hold ? '扣车' : '正常'}\n跳停状态: ${this.device.model.jump ? '跳停' : '正常'} \n停稳状态: ${!this.device.model.stop ? '未停稳' : '停稳'}\n阻塞状态: 无\n列车速度: ${this.device.model.speed || 0} km/h\n列车移动授权距离: ${this.device.model.maLen || 0} m`; text = `列车类型: ${trainType} \n\0\0\0\0号: ${this.device.model.serviceNumber}\n\0\0号: ${this.device.model.tripNumber}\n目的地号: ${this.device.model.destinationCode ? this.device.model.destinationCode : ''}\n\0\0号: ${this.device.model.groupNumber}\n\0\0点: ${destinationText}\n运行方向: ${direction ? '上行' : '下行'}\n乘务组号: \n起点站名: \n终点站名: \n占用轨道: ${this.device.model.sectionModel ? (this.device.model.sectionModel.parentName ? this.device.model.sectionModel.parentName : this.device.model.sectionModel.name) : ''}\n所在车站: \n车地通信: 正常\n运行等级: 4\n扣车状态: ${this.device.model.hold ? '扣车' : '正常'}\n跳停状态: ${this.device.model.jump ? '跳停' : '正常'} \n停稳状态: ${!this.device.model.stop ? '未停稳' : '停稳'}\n阻塞状态: 无\n列车速度: ${this.device.model.speed || 0} km/h\n列车移动授权距离: ${this.device.model.maLen || 0} m`;
} }

View File

@ -86,6 +86,13 @@ export default class Train extends Group {
num:model.num, num:model.num,
dt: model.dt, dt: model.dt,
driveMode: model.driveMode, driveMode: model.driveMode,
startStation: model.startStation,
endStation: model.endStation,
runningTime: model.runningTime,
parkingRemainTime: model.parkingRemainTime,
turnBackStrategy: model.turnBackStrategy,
turnBackStatus: model.turnBackStatus,
stationCode: model.stationCode,
model: model model: model
}); });
const rect = this.trainB.getBoundingRectOfFont().clone(); const rect = this.trainB.getBoundingRectOfFont().clone();

View File

@ -68,6 +68,7 @@ import { MapDeviceType } from '@/scripts/cmdPlugin/Config';
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler'; import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
import { mouseCancelState } from '@/jmapNew/theme/components/utils/menuItemStatus'; import { mouseCancelState } from '@/jmapNew/theme/components/utils/menuItemStatus';
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo'; import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
import { TurnBackTypeMap } from '@/scripts/ConstDic';
export default { export default {
name: 'StandDetail', name: 'StandDetail',
@ -81,12 +82,7 @@ export default {
tempData: [], tempData: [],
stationName: '', stationName: '',
standName: '', standName: '',
strategyMap: { strategyMap: TurnBackTypeMap,
'01': '无折返',
'02': '无人折返',
'03': '自动换端',
'04': '默认'
},
treeData: [ treeData: [
{ {
children: [ children: [
@ -232,7 +228,7 @@ export default {
doClose() { doClose() {
this.loading = false; this.loading = false;
this.dialogShow = false; this.dialogShow = false;
this.$root.$emit('dialogClose', this.selected); this.$root.$emit('dialogClose', this.selected);
this.$store.dispatch('training/emitTipFresh'); this.$store.dispatch('training/emitTipFresh');
mouseCancelState(this.selected); mouseCancelState(this.selected);
}, },

View File

@ -92,12 +92,6 @@ export default {
tempData: [], tempData: [],
stationName: '', stationName: '',
standName: '', standName: '',
strategyMap: {
'01': '无折返',
'02': '无人折返',
'03': '自动换端',
'04': '默认'
},
runLevelList: [ runLevelList: [
'自动', '自动',
'低速', '低速',

View File

@ -242,6 +242,9 @@ export default {
faultType: this.form.faultType faultType: this.form.faultType
} }
}; };
if (this.selected._type === 'Switch' && this.form.faultType === 'ARB') {
setp.param.code = this.selected.sectionParentCode;
}
this.sendCommand(setp); this.sendCommand(setp);
}, },
sendInstructions() { // sendInstructions() { //
@ -253,6 +256,9 @@ export default {
faultType: this.form.faultType faultType: this.form.faultType
} }
}; };
if (this.selected._type === 'Switch' && this.form.faultType === 'ARB') {
setp.param.code = this.selected.sectionParentCode;
}
this.sendCommand(setp); this.sendCommand(setp);
}, },
handleCollocation() { // handleCollocation() { //

View File

@ -93,7 +93,7 @@ export default {
}, },
groupNumber: '', groupNumber: '',
field: '', field: '',
selected: null, selected: null,
rules: { rules: {
groupNumber2: [ groupNumber2: [
{ required: true, message: '请选择被动车', trigger: 'change'} { required: true, message: '请选择被动车', trigger: 'change'}
@ -146,8 +146,8 @@ export default {
this.field = field == this.field ? '' : field; this.field = field == this.field ? '' : field;
}, },
doShow(operate, selected) { doShow(operate, selected) {
this.$root.$emit('dialogOpen', selected); this.$root.$emit('dialogOpen', selected);
this.selected = selected; this.selected = selected;
if (!this.dialogShow) { if (!this.dialogShow) {
this.operation = operate.operation; this.operation = operate.operation;
this.cmdType = operate.cmdType; this.cmdType = operate.cmdType;
@ -164,7 +164,7 @@ export default {
this.loading = false; this.loading = false;
this.dialogShow = false; this.dialogShow = false;
this.$refs.form.resetFields(); this.$refs.form.resetFields();
this.$root.$emit('dialogClose', this.selected); this.$root.$emit('dialogClose', this.selected);
this.$store.dispatch('training/emitTipFresh'); this.$store.dispatch('training/emitTipFresh');
}, },
commit() { commit() {

View File

@ -62,12 +62,6 @@ export default {
dialogShow: false, dialogShow: false,
loading: false, loading: false,
tempData: [], tempData: [],
strategyMap: {
'01': '无折返',
'02': '无人折返',
'03': '自动换端',
'04': '默认'
},
treeData: [ treeData: [
{ {
children: [ children: [

View File

@ -29,7 +29,9 @@
<el-radio :label="'MANUAL'" style="margin-top:5px;">{{ $t('menu.artificialTrain') }}</el-radio> <el-radio :label="'MANUAL'" style="margin-top:5px;">{{ $t('menu.artificialTrain') }}</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item v-if="formModel.type == 'PLAN'|| formModel.type == 'HEAD'" prop="serviceNumber">
<!-- 表号 -->
<el-form-item v-if="formModel.type == 'PLAN'" prop="serviceNumber">
<span slot="label">{{ $t('menu.serviceNumber') + '' }}</span> <span slot="label">{{ $t('menu.serviceNumber') + '' }}</span>
<el-input <el-input
:id="domIdServerNo" :id="domIdServerNo"
@ -37,13 +39,17 @@
:disabled="serverNoIsDisabled" :disabled="serverNoIsDisabled"
/> />
</el-form-item> </el-form-item>
<el-form-item v-if="formModel.type == 'PLAN'" :label="this.$t('menu.tripNumber')+this.$t('global.colon')" prop="tripNumber">
<!-- 车次号 -->
<el-form-item v-if="formModel.type == 'PLAN'|| formModel.type == 'HEAD'" :label="this.$t('menu.tripNumber')+this.$t('global.colon')" prop="tripNumber">
<el-input <el-input
:id="domIdTrainNo" :id="domIdTrainNo"
v-model="formModel.tripNumber" v-model="formModel.tripNumber"
maxlength="4" maxlength="4"
/> />
</el-form-item> </el-form-item>
<!-- 目的地号 -->
<el-form-item v-if="formModel.type == 'PLAN' || formModel.type == 'HEAD'" :label="this.$t('menu.targetCode')+this.$t('global.colon')" prop="destinationCode"> <el-form-item v-if="formModel.type == 'PLAN' || formModel.type == 'HEAD'" :label="this.$t('menu.targetCode')+this.$t('global.colon')" prop="destinationCode">
<el-input <el-input
:id="domIdTargetCode" :id="domIdTargetCode"
@ -51,6 +57,8 @@
:disabled="formModel.type !== 'HEAD'" :disabled="formModel.type !== 'HEAD'"
/> />
</el-form-item> </el-form-item>
<!-- 类别 -->
<el-form-item v-if="formModel.type == 'MANUAL'" :label="this.$t('menu.category')+this.$t('global.colon')" prop="category"> <el-form-item v-if="formModel.type == 'MANUAL'" :label="this.$t('menu.category')+this.$t('global.colon')" prop="category">
<el-select <el-select
:id="domIdTrainNumber" :id="domIdTrainNumber"
@ -101,6 +109,14 @@ export default {
} }
}, },
data() { data() {
var validateTripNum = (rule, value, callback) => {
const trip = Number.parseInt(value.substring(1));
if (this.formModel.type === 'HEAD' && this.popClass === 'xian-01__systerm' && (trip < 701 || trip > 749)) {
callback(new Error('头码车车次编号为701至749'));
} else {
callback();
}
};
return { return {
trainList: [], trainList: [],
serviceNumber:'', serviceNumber:'',
@ -123,7 +139,8 @@ export default {
{ required: true, message: '请选择列车类型', trigger: 'change' } { required: true, message: '请选择列车类型', trigger: 'change' }
], ],
tripNumber: [ tripNumber: [
{ required: true, message: '请输入车次号', trigger: 'blur' } { required: true, message: '请输入车次号', trigger: 'blur' },
{ validator: validateTripNum, trigger: 'blur' }
], ],
destinationCode: [ destinationCode: [
{ required: true, message: '请输入目的地号', trigger: 'blur' } { required: true, message: '请输入目的地号', trigger: 'blur' }
@ -133,7 +150,7 @@ export default {
dialogShow: false, dialogShow: false,
loading: false, loading: false,
direction: 0, direction: 0,
selected: null selected: null
}; };
}, },
computed: { computed: {
@ -242,9 +259,9 @@ export default {
}, },
watch: { watch: {
'formModel.tripNumber': function(val) { 'formModel.tripNumber': function(val) {
if (this.popClass !== 'foshan-01__systerm' && val.length === 4) { if (this.popClass !== 'foshan-01__systerm' && val.length === 4 && this.formModel.type !== 'HEAD') {
this.trainNoChange(val); this.trainNoChange(val);
} else if (this.popClass !== 'foshan-01__systerm') { } else if (this.popClass !== 'foshan-01__systerm' && this.formModel.type !== 'HEAD') {
this.formModel = { this.formModel = {
groupNumber: this.formModel.groupNumber, groupNumber: this.formModel.groupNumber,
tripNumber: val, tripNumber: val,
@ -253,9 +270,9 @@ export default {
targetCode: '', targetCode: '',
category: 'MM' category: 'MM'
}; };
} else if (this.popClass === 'foshan-01__systerm' && val.length === 2 && this.formModel.serviceNumber.length === 3) { } else if (this.popClass === 'foshan-01__systerm' && val.length === 2 && this.formModel.serviceNumber.length === 3 && this.formModel.type !== 'HEAD') {
this.trainNoChange(val, this.formModel.serviceNumber); this.trainNoChange(val, this.formModel.serviceNumber);
} else if (this.popClass === 'foshan-01__systerm') { } else if (this.popClass === 'foshan-01__systerm' && this.formModel.type !== 'HEAD') {
const serviceNumber = this.formModel.serviceNumber; const serviceNumber = this.formModel.serviceNumber;
const destinationCode = this.formModel.destinationCode; const destinationCode = this.formModel.destinationCode;
this.formModel = { this.formModel = {
@ -290,8 +307,8 @@ export default {
methods: { methods: {
loadInitData(map) {}, loadInitData(map) {},
doShow(operate, selected) { doShow(operate, selected) {
this.$root.$emit('dialogOpen', selected); this.$root.$emit('dialogOpen', selected);
this.selected = selected; this.selected = selected;
// //
if (!this.dialogShow) { if (!this.dialogShow) {
this.operation = operate.operation; this.operation = operate.operation;
@ -316,7 +333,7 @@ export default {
doClose() { doClose() {
this.loading = false; this.loading = false;
this.dialogShow = false; this.dialogShow = false;
this.$root.$emit('dialogClose', this.selected); this.$root.$emit('dialogClose', this.selected);
this.$store.dispatch('training/emitTipFresh'); this.$store.dispatch('training/emitTipFresh');
this.$store.dispatch('map/setTrainWindowShow', false); this.$store.dispatch('map/setTrainWindowShow', false);
}, },

View File

@ -17,7 +17,7 @@
<div style="display: flex;align-items: center;"> <div style="display: flex;align-items: center;">
<el-input v-model="addModel.speedLimit" style="width: 130px;margin-right: 10px;" size="small" /> <el-input v-model="addModel.speedLimit" style="width: 130px;margin-right: 10px;" size="small" />
<span>km/h</span> <span>km/h</span>
<el-tooltip style="margin-left: 10px;" effect="dark" content="值为25-65之间-1为取消限速" placement="top-start"> <el-tooltip style="margin-left: 10px;" effect="dark" content="值为5-65之间-1为取消限速" placement="top-start">
<i class="el-icon-warning" /> <i class="el-icon-warning" />
</el-tooltip> </el-tooltip>
</div> </div>
@ -94,10 +94,10 @@ export default {
validateLimit(rule, value, callback) { validateLimit(rule, value, callback) {
const num = Number(value); const num = Number(value);
if (num) { if (num) {
if ((num >= 25 && num <= 65) || num === -1) { if ((num >= 5 && num <= 65) || num === -1) {
callback(); callback();
} else { } else {
callback(new Error('限速值应该在25-65之间')); callback(new Error('限速值应该在5-65之间'));
} }
} else { } else {
callback(new Error('请输入数值类型')); callback(new Error('请输入数值类型'));

View File

@ -92,12 +92,6 @@ export default {
tempData: [], tempData: [],
stationName: '', stationName: '',
standName: '', standName: '',
strategyMap: {
'01': '无折返',
'02': '无人折返',
'03': '自动换端',
'04': '默认'
},
runLevelList: [ runLevelList: [
'自动', '自动',
'低速', '低速',

View File

@ -83,6 +83,7 @@ import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo'
import CMD from '@/scripts/cmdPlugin/CommandEnum'; import CMD from '@/scripts/cmdPlugin/CommandEnum';
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler'; import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
import { mapGetters } from 'vuex'; import { mapGetters } from 'vuex';
import ConstConfig from '@/scripts/ConstConfig';
export default { export default {
name: 'StandBackStrategy', name: 'StandBackStrategy',
@ -95,24 +96,7 @@ export default {
dialogShow: false, dialogShow: false,
loading: false, loading: false,
tempData: [], tempData: [],
strategyList: [ strategyList: ConstConfig.ConstSelect.turnBackTypeList,
{
value: '01',
label: this.$t('menu.noSwitchback')
},
{
value: '02',
label: this.$t('menu.noOneSwitchback')
},
{
value: '03',
label: this.$t('menu.automaticChange')
},
{
value: '04',
label: this.$t('menu.default')
}
],
stationName: '', stationName: '',
standStatus: '', standStatus: '',
selection: [], selection: [],
@ -146,8 +130,9 @@ export default {
methods: { methods: {
loadInitData(selected) { loadInitData(selected) {
this.tempData = []; this.tempData = [];
const station = this.stationList.find(n => n.code == selected.stationCode); const station = this.$store.getters['map/getDeviceByCode'](selected.stationCode);
this.tempData.push({ name: station.name, station: selected.name, strategy: selected.reentryStrategy || '04' }); const stand = this.$store.getters['map/getDeviceByCode'](selected.code);
this.tempData.push({ name: station.name, station: station.name, strategy: stand.typeStrategy || 'DEFAULT' });
}, },
doShow(operate, selected) { doShow(operate, selected) {
this.selected = selected; this.selected = selected;

View File

@ -24,7 +24,8 @@
>{{ $t('menu.menuDialog.confirm') }}</el-button> >{{ $t('menu.menuDialog.confirm') }}</el-button>
</div> </div>
<div style="width:100%; padding-top: 20px"> <div style="width:100%; padding-top: 20px">
<span> {{ $t('menu.menuDialog.copyright') }}</span> <!-- <span >版权所有C2010-2021 北京玖琏科技有限公司</span> -->
<span v-if="!thirdLogin">{{ $t('menu.menuDialog.copyright') }}</span>
</div> </div>
</div> </div>
</div> </div>
@ -39,7 +40,7 @@
</template> </template>
<script> <script>
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler'; import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
import { getSessionStorage } from '@/utils/auth';
export default { export default {
name: 'ManageUser', name: 'ManageUser',
data() { data() {
@ -70,6 +71,9 @@ export default {
}, },
title() { title() {
return this.$t('menu.menuDialog.about'); return this.$t('menu.menuDialog.about');
},
thirdLogin() {
return getSessionStorage('project') == 'richor';
} }
}, },
methods: { methods: {

View File

@ -71,6 +71,7 @@ import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo'
import CMD from '@/scripts/cmdPlugin/CommandEnum'; import CMD from '@/scripts/cmdPlugin/CommandEnum';
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler'; import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
import { mapGetters } from 'vuex'; import { mapGetters } from 'vuex';
import ConstConfig from '@/scripts/ConstConfig';
export default { export default {
name: 'StandBackStrategy', name: 'StandBackStrategy',
@ -82,24 +83,7 @@ export default {
dialogShow: false, dialogShow: false,
loading: false, loading: false,
tempData: [], tempData: [],
strategyList: [ strategyList: ConstConfig.ConstSelect.turnBackTypeList,
{
value: '01',
label: this.$t('menu.noSwitchback')
},
{
value: '02',
label: this.$t('menu.noOneSwitchback')
},
{
value: '03',
label: this.$t('menu.automaticChange')
},
{
value: '04',
label: this.$t('menu.default')
}
],
stationName: '', stationName: '',
standStatus: '', standStatus: '',
selection: [], selection: [],
@ -133,8 +117,9 @@ export default {
methods: { methods: {
loadInitData(selected) { loadInitData(selected) {
this.tempData = []; this.tempData = [];
const station = this.stationList.find(n => n.code == selected.stationCode); const station = this.$store.getters['map/getDeviceByCode'](selected.stationCode);
this.tempData.push({ name: station.name, station: selected.name, strategy: selected.reentryStrategy || '04' }); const stand = this.$store.getters['map/getDeviceByCode'](selected.code);
this.tempData.push({ name: station.name, station: station.name, strategy: stand.typeStrategy || 'DEFAULT' });
}, },
strategySelectChange(strategy) { strategySelectChange(strategy) {
const operate = { const operate = {

View File

@ -10,6 +10,7 @@
<train-detail ref="trainDetail" /> <train-detail ref="trainDetail" />
<speed-limit ref="speedLimit" pop-class="xian-01__systerm" /> <speed-limit ref="speedLimit" pop-class="xian-01__systerm" />
<set-fault ref="setFault" pop-class="xian-01__systerm" /> <set-fault ref="setFault" pop-class="xian-01__systerm" />
<set-train-operation ref="setTrainOperation" pop-class="xian-01__systerm" />
<!-- <select-station ref="selectStation" @selectStationCode="selectStationCode" /> --> <!-- <select-station ref="selectStation" @selectStationCode="selectStationCode" /> -->
</div> </div>
</template> </template>
@ -29,6 +30,7 @@ import TrainMove from './dialog/trainMove';
import TrainSwitch from './dialog/trainSwitch'; import TrainSwitch from './dialog/trainSwitch';
import TrainEditNumber from './dialog/trainEditNumber'; import TrainEditNumber from './dialog/trainEditNumber';
import TrainDetail from './dialog/trainDetail'; import TrainDetail from './dialog/trainDetail';
import SetTrainOperation from '@/jmapNew/theme/components/menus/dialog/setTrainOperation';
import MenuContextHandler from '@/scripts/cmdPlugin/MenuContextHandler'; import MenuContextHandler from '@/scripts/cmdPlugin/MenuContextHandler';
import SpeedLimit from '@/jmapNew/theme/components/menus/dialog/trainSpeedLimit'; import SpeedLimit from '@/jmapNew/theme/components/menus/dialog/trainSpeedLimit';
import { menuOperate, commitOperate, commitTrainSend } from '@/jmapNew/theme/components/utils/menuOperate'; import { menuOperate, commitOperate, commitTrainSend } from '@/jmapNew/theme/components/utils/menuOperate';
@ -45,7 +47,8 @@ export default {
TrainEditNumber, TrainEditNumber,
TrainDetail, TrainDetail,
SetFault, SetFault,
SpeedLimit SpeedLimit,
SetTrainOperation
// SelectStation // SelectStation
}, },
props: { props: {
@ -175,6 +178,10 @@ export default {
{ {
label: '驾驶至', label: '驾驶至',
handler: this.handleDriveTo handler: this.handleDriveTo
},
{
label: '连挂',
handler: this.setLink
} }
] ]
} }
@ -440,6 +447,14 @@ export default {
} }
}); });
}, },
//
setLink() {
commitOperate(menuOperate.Common.setLink, { code: this.selected.code }, 0).then(({valid, operate})=>{
if (valid) {
this.$refs.setTrainOperation.doShow(menuOperate.Common.setLink, this.selected, true);
}
});
},
// //
handleTurnDirection() { handleTurnDirection() {
const group = this.$route.query.group; const group = this.$route.query.group;

View File

@ -115,7 +115,7 @@ export default {
} }
}, },
mounted() { mounted() {
this.thirdLogin = getSessionStorage('thirdLogin'); this.thirdLogin = getSessionStorage('project') == 'richor';
this.routes = this.$router.options.routes; this.routes = this.$router.options.routes;
if (this.$route.fullPath.indexOf('design/usermap') >= 0) { if (this.$route.fullPath.indexOf('design/usermap') >= 0) {
this.activePath = '/design/usermap/home'; this.activePath = '/design/usermap/home';

View File

@ -227,6 +227,12 @@ export default {
{ label: '每日加载', value:'EVERY_DAY' }, { label: '每日加载', value:'EVERY_DAY' },
{ label: '周内加载', value: 'WITHIN_A_WEEK' }, { label: '周内加载', value: 'WITHIN_A_WEEK' },
{ label: '周末加载', value: 'WEEKEND' } { label: '周末加载', value: 'WEEKEND' }
],
turnBackTypeList: [
{ label: '无折返', value: 'NONE' },
{ label: '默认', value: 'DEFAULT' },
{ label: '自动换端', value: 'AUTO' },
{ label: '无人折返', value: 'UNMANNED' }
] ]
} }
}; };

View File

@ -1,3 +1,12 @@
/**
* 折返类型
*/
export const TurnBackTypeMap = {
NONE: '无折返',
DEFAULT: '默认',
AUTO: '自动换端',
UNMANNED: '无人折返'
};
/** /**
* 图纸类型 * 图纸类型
*/ */
@ -131,7 +140,8 @@ export const IbpOperation = {
SXYS: {operate: '11', event: 'SXYS', name: '上行钥匙'}, SXYS: {operate: '11', event: 'SXYS', name: '上行钥匙'},
AXLE_RESET: {operate: '12', event: 'AXLE_RESET', name: '计轴复位'}, AXLE_RESET: {operate: '12', event: 'AXLE_RESET', name: '计轴复位'},
AXLE_PRE_RESET: {operate: '13', event: 'AXLE_PRE_RESET', name: '计轴预复位'}, AXLE_PRE_RESET: {operate: '13', event: 'AXLE_PRE_RESET', name: '计轴预复位'},
PRERESET_Z: {operate: '14', event: 'PRERESET_Z', name: '计轴预复零'} PRERESET_Z: {operate: '14', event: 'PRERESET_Z', name: '计轴预复零'},
SD: {operate: '15', event: 'SD', name: '试灯'},
}; };
/** /**

View File

@ -31,7 +31,7 @@ export const deviceFaultType = {
Section: [ Section: [
{label: '计轴故障', value: 'FAULT'}, {label: '计轴故障', value: 'FAULT'},
{label: '通信车占用', value: 'CBTC_OCCUPIED_FAULT'}, {label: '通信车占用', value: 'CBTC_OCCUPIED_FAULT'},
{label: 'ARB', value: 'ARB'} {label: '橙光带故障', value: 'ARB'}
// {label: '计轴干扰', value: 'DISTURBANCE'} // {label: '计轴干扰', value: 'DISTURBANCE'}
], ],
Signal: [ Signal: [
@ -43,7 +43,8 @@ export const deviceFaultType = {
{label: '反位失表', value: 'REVERSE_SPLIT'}, {label: '反位失表', value: 'REVERSE_SPLIT'},
{label: '挤岔', value: 'SQUEEZE'}, {label: '挤岔', value: 'SQUEEZE'},
{label: '通信车占用', value: 'CBTC_OCCUPIED_FAULT'}, {label: '通信车占用', value: 'CBTC_OCCUPIED_FAULT'},
{label: '计轴故障', value: 'AXLE_FAULT'} {label: '计轴故障', value: 'AXLE_FAULT'},
{label: '橙光带故障', value: 'ARB'}
// {label: '道岔区段计轴故障', value: 'AXLE_FAULT'} // {label: '道岔区段计轴故障', value: 'AXLE_FAULT'}
], ],
StationStand: [ StationStand: [
@ -70,7 +71,7 @@ export const deviceFaultMap = {
Section: { Section: {
FAULT: '计轴故障', FAULT: '计轴故障',
CBTC_OCCUPIED_FAULT: '通信车占用', CBTC_OCCUPIED_FAULT: '通信车占用',
ARB: 'ARB' ARB: '橙光带故障'
}, },
Signal: { Signal: {
MAIN_FILAMENT_BROKEN: '熔断' MAIN_FILAMENT_BROKEN: '熔断'
@ -81,7 +82,8 @@ export const deviceFaultMap = {
REVERSE_SPLIT: '反位失表', REVERSE_SPLIT: '反位失表',
SQUEEZE: '挤岔', SQUEEZE: '挤岔',
CBTC_OCCUPIED_FAULT: '通信车占用', CBTC_OCCUPIED_FAULT: '通信车占用',
AXLE_FAULT: '计轴故障' AXLE_FAULT: '计轴故障',
ARB: '橙光带故障'
}, },
StationStand: { StationStand: {
PSD_CANNOT_BE_CLOSED: '屏蔽门无法关闭', PSD_CANNOT_BE_CLOSED: '屏蔽门无法关闭',

View File

@ -84,8 +84,9 @@ export default {
{ label: '计轴复位', value: 'AXLE_RESET' }, { label: '计轴复位', value: 'AXLE_RESET' },
{ label: '计轴预复位', value: 'AXLE_PRE_RESET' }, { label: '计轴预复位', value: 'AXLE_PRE_RESET' },
{ label: '计轴预复零', value: 'PRERESET_Z' }, { label: '计轴预复零', value: 'PRERESET_Z' },
{ label: '试灯', value: 'SD' },
], ],
operateWithoutDirections: ['AXLE_RESET', 'AXLE_PRE_RESET', 'PRERESET_Z'], operateWithoutDirections: ['AXLE_RESET', 'AXLE_PRE_RESET', 'PRERESET_Z', 'SD'],
form: { form: {
code: '', code: '',
buttonColor: 'red', buttonColor: 'red',

View File

@ -5,14 +5,28 @@
width="400px" width="400px"
:before-close="handleClose" :before-close="handleClose"
> >
<div><span class="el-icon-user" style="font-size:15px;margin-right:8px;" />联系人小九</div> <div v-if="thirdLogin">
<div class="eachInfo"><span class="el-icon-mobile-phone" style="font-size:15px;margin-right:7px;" />&nbsp;&nbsp;&nbsp;&nbsp;13289398171</div> <div><span class="el-icon-user" style="font-size:15px;margin-right:8px;" />联系人欧阳炜椿</div>
<div class="eachInfo"><span class="el-icon-message" style="font-size:15px;margin-right:7px;" />&nbsp;&nbsp;&nbsp;&nbsp;ServiceEmail@joylink.club</div> <div class="eachInfo"><span class="el-icon-mobile-phone" style="font-size:15px;margin-right:7px;" />&nbsp;&nbsp;&nbsp;&nbsp;4000500081</div>
<div class="eachInfo"> <div class="eachInfo"><span class="el-icon-message" style="font-size:15px;margin-right:7px;" />&nbsp;&nbsp;&nbsp;&nbsp;zhrc@richortech.com</div>
<span class="el-icon-chat-round" style="font-size:15px;margin-right:3px;vertical-align:top;" /> <div class="eachInfo"><span class="el-icon-connection" style="font-size:15px;margin-right:7px;" />&nbsp;&nbsp;&nbsp;&nbsp;www.richortech.com</div>
<span style="vertical-align: top;">&nbsp;&nbsp;&nbsp;&nbsp;</span> <!-- <div class="eachInfo">
<img :src="wchatImg" width="80" height="80"> <span class="el-icon-chat-round" style="font-size:15px;margin-right:3px;vertical-align:top;" />
<span style="vertical-align: top;">&nbsp;&nbsp;&nbsp;&nbsp;</span>
<img :src="wchatImg" width="80" height="80">
</div> -->
</div> </div>
<div v-else>
<div><span class="el-icon-user" style="font-size:15px;margin-right:8px;" />联系人小九</div>
<div class="eachInfo"><span class="el-icon-mobile-phone" style="font-size:15px;margin-right:7px;" />&nbsp;&nbsp;&nbsp;&nbsp;13289398171</div>
<div class="eachInfo"><span class="el-icon-message" style="font-size:15px;margin-right:7px;" />&nbsp;&nbsp;&nbsp;&nbsp;ServiceEmail@joylink.club</div>
<div class="eachInfo">
<span class="el-icon-chat-round" style="font-size:15px;margin-right:3px;vertical-align:top;" />
<span style="vertical-align: top;">&nbsp;&nbsp;&nbsp;&nbsp;</span>
<img :src="wchatImg" width="80" height="80">
</div>
</div>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button type="primary" @click="dialogVisible = false"> </el-button> <el-button type="primary" @click="dialogVisible = false"> </el-button>
</span> </span>
@ -20,6 +34,7 @@
</template> </template>
<script> <script>
import wchat from '@/assets/wchat.png'; import wchat from '@/assets/wchat.png';
import { getSessionStorage } from '@/utils/auth';
export default { export default {
name:'', name:'',
data() { data() {
@ -28,6 +43,11 @@ export default {
wchatImg: wchat wchatImg: wchat
}; };
}, },
computed:{
thirdLogin() {
return getSessionStorage('project') == 'richor';
}
},
methods:{ methods:{
handleClose() { handleClose() {
this.dialogVisible = false; this.dialogVisible = false;

View File

@ -95,6 +95,7 @@ export default {
return device; return device;
}, },
clickEvent(em) { clickEvent(em) {
this.$store.dispatch('map/setTrainWindowShow', false);
var device = { _type: em.deviceType, _code: em.deviceCode, _event: MouseEvent.Left }; var device = { _type: em.deviceType, _code: em.deviceCode, _event: MouseEvent.Left };
const lineCode = this.$store.getters['map/lineCode']; const lineCode = this.$store.getters['map/lineCode'];

View File

@ -41,6 +41,7 @@
<script> <script>
import { mapGetters } from 'vuex'; import { mapGetters } from 'vuex';
import { getUID } from '@/jmapNew/utils/Uid'; import { getUID } from '@/jmapNew/utils/Uid';
import ConstConfig from '@/scripts/ConstConfig';
import CreateOperate from './components/createOperate'; import CreateOperate from './components/createOperate';
import OperateProperty from './components/operateProperty'; import OperateProperty from './components/operateProperty';
import { deepAssign } from '@/utils/index'; import { deepAssign } from '@/utils/index';
@ -74,10 +75,7 @@ export default {
{ code: false, name: '向左'}, { code: false, name: '向左'},
{ code: true, name: '向右'} { code: true, name: '向右'}
], ],
reentryStrategyList: [ reentryStrategyList: ConstConfig.ConstSelect.turnBackTypeList,
{ code: '02', name: '自动无人折返'},
{ code: '03', name: '自动换端'}
],
editModel: getModel('StationStand'), editModel: getModel('StationStand'),
field: '', field: '',
addModel: { addModel: {
@ -126,7 +124,7 @@ export default {
{ prop: 'height', label: this.$t('map.stationstandHeight'), type: 'number', min: 0, max: 2000, placeholder: 'px' }, { prop: 'height', label: this.$t('map.stationstandHeight'), type: 'number', min: 0, max: 2000, placeholder: 'px' },
{ prop: 'standTrackCode', label: '站台轨:', type: 'selectHover', optionLabel: 'name&&code', optionValue: 'code', options: this.PhysicalSectionList, hover: this.hover, buttonType: 'stationStandCode', buttonShowType: this.stationStandCodeShow }, { prop: 'standTrackCode', label: '站台轨:', type: 'selectHover', optionLabel: 'name&&code', optionValue: 'code', options: this.PhysicalSectionList, hover: this.hover, buttonType: 'stationStandCode', buttonShowType: this.stationStandCodeShow },
{ prop: 'right', label: '行驶方向:', type: 'radio', optionLabel: 'name', optionValue: 'code', border: true, radioList: this.isRightList }, { prop: 'right', label: '行驶方向:', type: 'radio', optionLabel: 'name', optionValue: 'code', border: true, radioList: this.isRightList },
{ prop: 'defaultReentryStrategy', label: '默认折返策略:', type: 'select', optionLabel: 'name', optionValue: 'code', options: this.reentryStrategyList }, { prop: 'defaultReentryStrategy', label: '默认折返策略:', type: 'select', optionLabel: 'label', optionValue: 'value', options: this.reentryStrategyList },
{ prop: 'small', label: '是否小型站台:', type: 'checkbox', disabled: true }, { prop: 'small', label: '是否小型站台:', type: 'checkbox', disabled: true },
{ prop: 'inside', label: '是否内站台:', type: 'checkbox' }, { prop: 'inside', label: '是否内站台:', type: 'checkbox' },
{ prop: 'stopJumpLamp', label: '跳停按钮:', type: 'checkbox'}, { prop: 'stopJumpLamp', label: '跳停按钮:', type: 'checkbox'},

View File

@ -109,7 +109,8 @@ export default {
'switchTurnOperationCanRecoverSplitFault', 'switchTurnOperationCanRecoverSplitFault',
'holdCommandIgnoreControlMode', 'holdCommandIgnoreControlMode',
'delayWhenCancelRouteWithAbnormalInterlock', 'delayWhenCancelRouteWithAbnormalInterlock',
'noARB' 'noARB',
'checkDirectionWhenSetHead'
], ],
selectList: ['runMode'], selectList: ['runMode'],
generalConfig: [ generalConfig: [
@ -151,7 +152,8 @@ export default {
'delayWhenCancelRouteWithAbnormalInterlock', 'delayWhenCancelRouteWithAbnormalInterlock',
'figuresOfTripNumber', 'figuresOfTripNumber',
'figuresOfServiceNumber', 'figuresOfServiceNumber',
'noARB' 'noARB',
'checkDirectionWhenSetHead'
], ],
rangeList: ['noParkingSM', 'parkingSM'], rangeList: ['noParkingSM', 'parkingSM'],
speedList: ['rmAtpSpeed', 'urmAtpSpeed'], speedList: ['rmAtpSpeed', 'urmAtpSpeed'],
@ -198,7 +200,8 @@ export default {
delayWhenCancelRouteWithAbnormalInterlock: '取消联锁条件不满足的进路时需要延时解锁', delayWhenCancelRouteWithAbnormalInterlock: '取消联锁条件不满足的进路时需要延时解锁',
figuresOfTripNumber: '车次号的位数', figuresOfTripNumber: '车次号的位数',
figuresOfServiceNumber: '服务号的位数', figuresOfServiceNumber: '服务号的位数',
noARB: '没有ARB判定' noARB: '没有ARB判定',
checkDirectionWhenSetHead: '设置头码车时检查方向'
} }
}; };
}, },

View File

@ -62,7 +62,7 @@ export default {
this.$store.dispatch('setToken', token); this.$store.dispatch('setToken', token);
this.$store.dispatch('subscribe', {header, type:'class'}); this.$store.dispatch('subscribe', {header, type:'class'});
this.$router.replace({path:'/trainingPlatform'}); this.$router.replace({path:'/trainingPlatform'});
setSessionStorage('thirdLogin', true); // setSessionStorage('thirdLogin', true);
}).catch(() => { }).catch(() => {
this.message = '参数有误,请检查'; this.message = '参数有误,请检查';
}); });