This commit is contained in:
sunzhenyu 2021-09-02 18:05:35 +08:00
commit 6759c3e680
12 changed files with 595 additions and 47 deletions

View File

@ -441,10 +441,10 @@ export default class Switch extends Group {
this.shapeModelB.hide();
this.shapeModelC.hide();
} else {
if (this.model.switchFaultCode && fault) {
if (this.model.switchFaultCode && (fault === 'SPLIT' || fault === 'SQUEEZE' || (fault === 'NORMAL_SPLIT' && !reversePosition) || (fault === 'REVERSE_SPLIT' && !normalPosition))) {
const switchFault = this.mapDevice[this.model.switchFaultCode];
switchFault.instance.setControlColor('#F00', true);
} else if (this.model.switchFaultCode && !fault) {
} else if (this.model.switchFaultCode) {
const switchFault = this.mapDevice[this.model.switchFaultCode];
switchFault.instance.setControlColor(this.style.backgroundColor, false);
}
@ -509,8 +509,7 @@ export default class Switch extends Group {
this.lockArc.setStyle({ stroke: this.style.Switch.arcBlcok.inversionColor });
}
}
this.model.normalPosition && this.setTextColor(this.style.Switch.text.monolockLocationColor); // 定位 设置道岔名称颜色
this.model.reversePosition && this.setTextColor(this.style.Switch.text.monolockInversionColor); // 反位 设置道岔名称颜色
this.setTextColor(this.style.Switch.text.monolockLocationColor);
}
/** 封锁 */

View File

@ -489,7 +489,7 @@ export default {
EventBus.$emit('sendMsg', {message: '命令执行失败!'});
}
});
if (val._type != 'Psd' && val._type != 'StationStand') {
if (val._type !== 'Psd' && val._type !== 'StationStand' && val._type !== 'Train') {
this.dialogVisible = !this.isLocal;
}
this.handleIbpShow();

View File

@ -226,6 +226,7 @@ export const projectHeb = '019'; // 哈盈达
export const projectDrts = '020'; // 行调实训
export const projectSdy = '021';// 苏电院
export const projectRichor = '022';// 中航锐创
export const projectRichorJoint = '023'; // 中航锐创(实训室)
export const userTrainingPlatform = '016'; // 实训系统
// export const refereePlatform = '017'; // 裁判系统
@ -1463,6 +1464,27 @@ export const projectRoute = {
}
]
}
],
designrichorjoint: [
{ // 系统管理
path: '/system',
component: Layout,
merge: true,
mergeIndex: 4,
meta: {
i18n: 'router.systemManage',
roles: [admin]
},
children: [
{
path: 'deviceManage',
component: DeviceManage,
meta: {
i18n: 'router.deviceManage'
}
}
]
}
]
};
const createRouter = () => new Router({

View File

@ -439,6 +439,7 @@ export const loginInfo = {
},
richor:{
title: '中航锐创城市轨道交通实训平台',
loginPath: '/login?project=richor',
loginParam: 'RICHOR',
bottomColumn: '中航锐创(北京)科技发展有限公司 联系电话:4000500081',
linkIcon: FaviconRichor,
@ -446,6 +447,28 @@ export const loginInfo = {
navigationLogoWidth: '40px',
navigationMarginLeft: '50px',
systemType: '022'
},
designrichorjoint: {
title: '中航锐创城市轨道交通设计平台',
loginPath: '/design/login?project=richorjoint',
loginParam: 'RICHOR_JOINT',
bottomColumn: '中航锐创(北京)科技发展有限公司 联系电话:4000500081',
linkIcon: FaviconRichor,
titleIcon: FaviconRichor,
navigationLogoWidth: '40px',
navigationMarginLeft: '50px',
systemType: '023'
},
richorjoint: {
title: '中航锐创城市轨道交通实训平台',
loginPath: '/login?project=richorjoint',
loginParam: 'RICHOR_JOINT',
bottomColumn: '中航锐创(北京)科技发展有限公司 联系电话:4000500081',
linkIcon: FaviconRichor,
titleIcon: FaviconRichor,
navigationLogoWidth: '40px',
navigationMarginLeft: '50px',
systemType: '023'
}
};
@ -489,7 +512,9 @@ export const ProjectIcon = {
designsdy: FaviconSdy,
cgy: FaviconCgy,
designcgy: FaviconCgy,
richor:FaviconRichor
richor:FaviconRichor,
richorjoint: FaviconRichor,
designrichorjoint: FaviconRichor
};
export const ProjectCode = {
@ -520,10 +545,12 @@ export const ProjectCode = {
designsdy: 'SDY',
cgy: 'CGY',
designcgy: 'CGY',
richor:'RICHOR'
richor:'RICHOR',
richorjoint: 'RICHOR_JOINT',
designrichorjoint: 'RICHOR_JOINT'
};
export const BottomColumnOnlyConInfo = ['heb', 'designheb', 'jyd', 'designjyd', 'tky', 'designtky', 'bxkc', 'designbxkc', 'crsc', 'designcrsc', 'hls', 'designhls', 'hyd', 'designhyd', 'cgy', 'designcgy', 'richor']; // 底部栏仅展示公司信息不展示备案号
export const GetMapListByProjectList = ['xty', 'designxty', 'gzb', 'designgzb', 'xadt', 'designxadt', 'heb', 'designheb', 'designdrts', 'drts', 'wjls', 'nty', 'designnty', 'sdy', 'designsdy', 'ntyc', 'designntyc', 'ntyl', 'designntyl', 'designbjd', 'cgy', 'designcgy', 'zzww','zzwwtest', 'richor']; // 实训设计平台通过项目code获取地图列表的项目
export const BottomColumnOnlyConInfo = ['heb', 'designheb', 'jyd', 'designjyd', 'tky', 'designtky', 'bxkc', 'designbxkc', 'crsc', 'designcrsc', 'hls', 'designhls', 'hyd', 'designhyd', 'cgy', 'designcgy', 'richor', 'richorjoint', 'designrichorjoint']; // 底部栏仅展示公司信息不展示备案号
export const GetMapListByProjectList = ['xty', 'designxty', 'gzb', 'designgzb', 'xadt', 'designxadt', 'heb', 'designheb', 'designdrts', 'drts', 'wjls', 'nty', 'designnty', 'sdy', 'designsdy', 'ntyc', 'designntyc', 'ntyl', 'designntyl', 'designbjd', 'cgy', 'designcgy', 'zzww', 'zzwwtest', 'richor', 'richorjoint', 'designrichorjoint']; // 实训设计平台通过项目code获取地图列表的项目
export const CaseHideProjectList = ['heb', 'designheb', 'cgy', 'designcgy']; // 案例展示隐藏的项目
export const VersionBaseNoShow = ['heb', 'designheb', 'hls', 'designhls', 'drts', 'wjls', 'hyd', 'designhyd', 'cgy', 'designcgy', 'xadt', 'designxadt']; // 登录页右下角版本开发基于不展示
export const MainBodyNoShow = ['heb', 'designheb', 'jyd', 'designjyd', 'tky', 'designtky', 'bxkc', 'designbxkc', 'crsc', 'designcrsc', 'hls', 'designhls', 'hyd', 'designhyd', 'cgy', 'designcgy', 'xadt', 'designxadt']; // 登录页右下角主体不展示
@ -564,9 +591,11 @@ export const goOtherPlatformMenu = { // 导航栏快速切换平台
ntyl: '/design/login?project=ntyl',
designntyl: '/login?project=ntyl',
ntyc: '/design/login?project=ntyc',
designntyc: '/login?project=ntyc'
designntyc: '/login?project=ntyc',
// cgy: '/design/login?project=cgy',
// designcgy: '/login?project=cgy'
richorjoint: '/design/login?project=richorjoint',
designrichorjoint: '/login?project=richorjoint'
};
export const ProjectList = [
{value:'xty', label:'西铁院'},
@ -584,7 +613,8 @@ export const ProjectList = [
{value: 'wjls', label: '微机联锁'},
{value: 'zzww', label: '郑州共赢'},
{value: 'zzwwtest', label: '郑州共赢考试'},
{value: 'richor', label: '中航锐创'}
{value: 'richor', label: '中航锐创'},
{value: 'richor_joint', label: '中航锐创(实训室)'}
];
export const localPackageProject = {
localdesign: 'designheb',

View File

@ -166,7 +166,9 @@ export default {
/** 设置折返策略 */
CMD_STAND_SET_REENTRY_STRATEGY: {value:'Stand_Set_Reentry_Strategy', label: '设置折返策略'},
/** 提前发车 */
CMD_STAND_EARLY_DEPART: {value:'Stand_Early_Depart', label: '提前发车'}
CMD_STAND_EARLY_DEPART: {value:'Stand_Early_Depart', label: '提前发车'},
/** 设置默认发车轨 */
CMD_SECTION_SET_DEFAULT_TRANSFER : {value: 'Section_Set_Default_Transfer', label: '设置默认发车轨'}
},
// 站台
@ -225,6 +227,8 @@ export default {
CMD_STAND_EMERGENCY_CLOSE : {value: 'Stand_Emergency_Close', label: '站台紧急停车'},
/** 取消站台紧急停车 */
CMD_STAND_CANCEL_EMERGENCY_CLOSE : {value: 'Stand_Cancel_Emergency_Close', label: '取消站台紧急停车'}
// /** 批量设置停站时间 */
// CMD_STAND_BATCH_SET_PARK_TIME : {value: 'Stand_Batch_Set_Park_Time', label: '批量设置停站时间' }
},
Station: {
@ -313,7 +317,9 @@ export default {
/** 列车取消指定站台的跳停 */
CMD_TRAIN_CANCEL_SKIP_STOP : { value: 'Train_Cancel_Skip_Stop', label: '取消指定站台跳停' },
/** 换端 */
CMD_TRAIN_TURN_DIRECTION: { value: 'Turn_Direction', label: '换端' }
CMD_TRAIN_TURN_DIRECTION: { value: 'Turn_Direction', label: '换端' },
/** 选择调度模式 */
CMD_TRAIN_REGULATION : { value:'Train_Regulation', label:'选择调度模式' }
},
TrainWindow: {
/** 修改列车识别号 */

View File

@ -1,4 +1,4 @@
import { publicAsyncRoute, asyncRouter, constantRoutes, user, projectTrain, projectXian, projectXty, projectGzzb, projectJsxt, projectJyd, projectRichor, projectTky, projectHeb, superAdmin, admin, userTrainingPlatform, JSXT, projectRoute, projectDrts, projectSdy } from '@/router/index';
import { publicAsyncRoute, asyncRouter, constantRoutes, user, projectTrain, projectXian, projectXty, projectGzzb, projectJsxt, projectRichorJoint, projectJyd, projectRichor, projectTky, projectHeb, superAdmin, admin, userTrainingPlatform, JSXT, projectRoute, projectDrts, projectSdy } from '@/router/index';
import { loginInfo } from '@/scripts/ProjectConfig';
import { getSessionStorage } from '@/utils/auth';
@ -82,7 +82,16 @@ function resetAsyncRouter({ systemType }) {
list = [...list, ...asyncRouter];
} else if (systemType == projectSdy) {
if (projectRoute && projectRoute.designsdy && projectRoute.designsdy.length) {
projectRoute.designheb.forEach(item => {
projectRoute.designsdy.forEach(item => {
if (item.merge) {
asyncRouter[item.mergeIndex].children = [...asyncRouter[item.mergeIndex].children, ...item.children];
} else { list.push(item); }
});
}
list = [...list, ...asyncRouter];
} else if (systemType == projectRichorJoint) {
if (projectRoute && projectRoute.designrichorjoint && projectRoute.designrichorjoint.length) {
projectRoute.designrichorjoint.forEach(item => {
if (item.merge) {
asyncRouter[item.mergeIndex].children = [...asyncRouter[item.mergeIndex].children, ...item.children];
} else { list.push(item); }

View File

@ -2,10 +2,10 @@ export function getBaseUrl() {
let BASE_API;
if (process.env.NODE_ENV === 'development') {
// BASE_API = 'https://joylink.club/jlcloud';
BASE_API = 'https://test.joylink.club/jlcloud';
// BASE_API = 'https://test.joylink.club/jlcloud';
// BASE_API = 'http://192.168.8.107:9000'; // 袁琪
// BASE_API = 'http://192.168.2.175:9000'; // 旭强 有线
// BASE_API = 'http://192.168.8.114:9000'; // 旭强 无线
BASE_API = 'http://192.168.8.167:9000'; // 旭强 无线
// BASE_API = 'http://192.168.2.183:9000'; // 张赛
// BASE_API = 'http://192.168.8.140:9000'; // 杜康
// BASE_API = 'http://b29z135112.zicp.vip';

View File

@ -0,0 +1,440 @@
<template>
<el-dialog
v-dialogDrag
class="haerbin-01__systerm"
:title="title"
:modal="false"
width="600px"
:visible.sync="show"
:before-close="doClose"
>
<div style="padding: 0 10px;">
<el-row>
<span style="color:#000;font-size: 16px;font-weight: bold;">选择列车</span>
<hr style="display: inline-block;width: 480px;">
</el-row>
<el-row style="padding: 5px;">
<el-col :span="11" style="height: 28px;line-height: 28px;">
<el-radio v-model="train" label="all">所有列车</el-radio>
</el-col>
<el-col :span="4" style="height: 28px;line-height: 28px;text-align: right;">
<div>当前状态</div>
</el-col>
<el-col :span="9">
<el-input v-model="input" size="mini" :disabled="true" placeholder="请输入内容" />
</el-col>
</el-row>
<el-row style="padding: 5px;">
<el-col :span="4" style="height: 28px;line-height: 28px;">
<el-radio v-model="train" label="one">单列车号</el-radio>
</el-col>
<el-col :span="7">
<el-select v-model="trainCode" :disabled="train !== 'one'" style="width: 160px" size="mini" placeholder="请选择">
<el-option
v-for="item in trainList"
:key="item.code"
:label="item.code"
:value="item.code"
/>
</el-select>
</el-col>
<el-col :span="4" style="height: 28px;line-height: 28px;text-align: right;">
<div>当前状态</div>
</el-col>
<el-col :span="9">
<el-input v-model="input" size="mini" :disabled="true" placeholder="请输入内容" />
</el-col>
</el-row>
<el-row style="padding: 5px 0;">
<span style="color:#000;font-size: 16px;font-weight: bold;">选择调度模式</span>
<hr style="display: inline-block;width: 170px;">
<span style="color:#000;font-size: 16px;font-weight: bold;">调整行车间隔</span>
<hr style="display: inline-block;width: 170px;">
</el-row>
<el-row style="padding: 5px;">
<el-col :span="12" style="height: 28px;line-height: 28px;">
<el-radio v-model="atrMode" label="TIME_TABLE_REGULATION">时刻表调度</el-radio>
</el-col>
<el-col :span="6" style="height: 28px;line-height: 28px;">
<el-radio v-model="intervalMode" :disabled="true">列车个数</el-radio>
</el-col>
<el-col :span="6">
<el-input-number v-model="trainNumber" size="mini" :min="0" :max="999" :disabled="true" controls-position="right" label="列车个数" />
</el-col>
</el-row>
<el-row style="padding: 5px;">
<el-col :offset="12" :span="6" style="height: 28px;line-height: 28px;">
<el-radio v-model="intervalMode" :disabled="true">间隔时间</el-radio>
</el-col>
<el-col :span="6">
<el-input-number v-model="trainInterval" size="mini" :disabled="true" :min="0" :max="999" controls-position="right" label="间隔时间" />
</el-col>
</el-row>
<el-row style="padding: 5px;">
<el-col :span="12" style="height: 28px;line-height: 28px;">
<el-radio v-model="atrMode" label="HEADWAY_REGULATION_FRONT">列车间隔调度-前调</el-radio>
</el-col>
<el-col :span="12">
<el-button :disabled="true" style="height: 28px;width: 260px;">计算</el-button>
</el-col>
</el-row>
<el-row style="padding: 5px;">
<el-col :span="12">
<el-radio v-model="atrMode" label="HEADWAY_REGULATION_FRONT_AND_BACK">列车间隔调度-前调+后调</el-radio>
</el-col>
<el-col :span="2" style="height: 28px;line-height: 28px;">
<span>最小</span>
</el-col>
<el-col :span="5">
<el-input v-model="input" :disabled="true" size="mini" />
</el-col>
<el-col :span="4" :offset="1">
<el-input v-model="input" :disabled="true" size="mini" />
</el-col>
</el-row>
<el-row style="padding: 5px;">
<el-col :span="2" :offset="12" style="height: 28px;line-height: 28px;">
<span>最小</span>
</el-col>
<el-col :span="5">
<el-input v-model="input" size="mini" :disabled="true" />
</el-col>
<el-col :span="4" :offset="1">
<el-input v-model="input" size="mini" :disabled="true" />
</el-col>
</el-row>
<el-row style="padding: 5px;">
<el-col :span="12" style="height: 28px;line-height: 28px;">
<el-radio v-model="atrMode" label="REGULATION_OFF">关闭自动调度</el-radio>
</el-col>
<el-col :span="2" style="height: 28px;line-height: 28px;">
<span>最大</span>
</el-col>
<el-col :span="5">
<el-input v-model="input" size="mini" :disabled="true" />
</el-col>
<el-col :span="4" :offset="1">
<el-input v-model="input" size="mini" :disabled="true" />
</el-col>
</el-row>
<el-row style="padding: 5px 0">
<span style="color:#000;font-size: 16px;font-weight: bold;">选择时间项人工调度</span>
<hr style="display: inline-block;width: 370px;">
</el-row>
<el-row style="padding: 5px;">
<el-col :span="4">
<el-radio v-model="timeTerm" :disabled="atrMode !== 'REGULATION_OFF'" label="stop" @change="termChange">停站时间</el-radio>
<el-radio v-model="timeTerm" :disabled="atrMode !== 'REGULATION_OFF'" label="driving" @change="termChange">行驶时间</el-radio>
<el-radio v-model="timeTerm" :disabled="atrMode !== 'REGULATION_OFF'" label="run" @change="termChange">不停/停站</el-radio>
</el-col>
<el-col :span="20">
<el-table v-show="timeTerm === 'stop'" ref="table1" :data="tableData1" style="width: 100%" height="80">
<el-table-column prop="direction" label="方向" />
<el-table-column prop="name" label="站名" />
<!--<el-table-column prop="time" label="时间" />-->
<el-table-column label="时间" prop="time1">
<template slot-scope="scope">
<el-input-number v-model="scope.row.time" size="mini" :min="-1" :controls="false" style="width: 100%" />
</template>
</el-table-column>
<el-table-column prop="timeRange" label="推荐时间" />
</el-table>
<el-table v-show="timeTerm === 'driving'" ref="table2" :data="tableData2" style="width: 100%" height="80">
<el-table-column prop="follow" label="从" />
<el-table-column prop="to" label="至" />
<!--<el-table-column prop="time" label="时间" />-->
<el-table-column label="时间" prop="time2">
<template slot-scope="scope">
<el-input-number v-model="scope.row.time" size="mini" :min="-1" :controls="false" style="width: 100%" />
</template>
</el-table-column>
<el-table-column prop="timeRange" label="推荐时间" />
</el-table>
<el-table v-show="timeTerm === 'run'" ref="table3" :data="tableData3" style="width: 100%" height="80">
<el-table-column prop="direction" label="方向" />
<el-table-column prop="name" label="站名" />
<el-table-column label="不停" prop="stop">
<template slot-scope="scope">
<el-checkbox v-model="scope.row.stop" />
</template>
</el-table-column>
</el-table>
<el-table v-show="!timeTerm" ref="table4">
<el-table-column prop="follow" label="从" />
<el-table-column prop="to" label="至" />
<el-table-column prop="time" label="时间" />
<el-table-column prop="timeRange" label="推荐时间" />
</el-table>
</el-col>
</el-row>
<div>
<el-button style="width: 100px;height: 28px;margin-right: 103px;">显示列车信息</el-button>
<el-button style="width: 100px;height: 28px;" @click="commit">执行</el-button>
<el-button style="width: 100px;height: 28px;" @click="reset">重设</el-button>
<el-button style="width: 100px;height: 28px;" @click="doClose">关闭</el-button>
</div>
</div>
</el-dialog>
</template>
<script>
import { mapGetters } from 'vuex';
import CMD from '@/scripts/cmdPlugin/CommandEnum';
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
export default {
name:'ATRDialog',
data() {
return {
train: 'all',
trainCode: '',
atrMode: 'REGULATION_OFF',
intervalMode: '',
trainInterval: '',
trainNumber: '',
tableData: [],
tableData1: [],
tableData2: [],
tableData3: [],
tableData4: [],
input: '',
timeTerm: 'stop',
sortStationList: [],
noStopList: [],
dialogShow:false
};
},
computed: {
show() {
return this.dialogShow && !this.$store.state.menuOperation.break;
},
title() {
return '时刻表';
},
...mapGetters('map', [
'trainList',
'stationList',
'stationStandList'
])
},
watch: {
train(val) {
if (val === 'all') {
this.tableData1.forEach(item => {
const stand = this.$store.getters['map/getDeviceByCode'](item.code);
item.time = stand.parkingTime;
});
} else if (val === 'one' && this.trainCode) {
this.tableData1.forEach(item => {
const stand = this.$store.getters['map/getDeviceByCode'](item.code);
item.time = stand.parkingTimeMap[this.trainCode];
});
}
},
trainCode(val) {
if (this.train === 'one') {
this.tableData1.forEach(item => {
const stand = this.$store.getters['map/getDeviceByCode'](item.code);
item.time = ((stand.parkingTimeMap || {})[val]) || stand.parkingTime;
});
}
},
atrMode(val) {
if (val !== 'REGULATION_OFF') {
this.timeTerm = '';
}
}
},
mounted() {
},
methods: {
initData() {
this.sortStationList = [...this.stationList];
this.sortStationList.sort((station1, station2) => {
return station1.sn - station2.sn;
});
const standMap = {};
this.stationStandList.forEach(stand => {
if (standMap[stand.stationCode]) {
standMap[stand.stationCode].push(stand);
} else {
standMap[stand.stationCode] = [stand];
}
});
for (let i = 0; i < this.sortStationList.length; i++) {
const standList = standMap[this.sortStationList[i].code];
if (!standList) {
continue;
}
let rightStand = '';
let leftStand = '';
standList.forEach(stand => {
if (stand.right) {
rightStand = this.$store.getters['map/getDeviceByCode'](stand.code);
} else {
leftStand = this.$store.getters['map/getDeviceByCode'](stand.code);
}
});
this.tableData1.push({ direction: '>', name: this.sortStationList[i].name, time: rightStand.parkingTime, timeRange: '020-060', code: rightStand.code });
this.tableData1.push({ direction: '<', name: this.sortStationList[i].name, time: leftStand.parkingTime, timeRange: '020-060', code: leftStand.code });
this.tableData3.push({ direction: '>', name: this.sortStationList[i].name, stop: false, code: rightStand.code });
this.tableData3.push({ direction: '<', name: this.sortStationList[i].name, stop: false, code: leftStand.code });
if (i === this.sortStationList.length - 1) {
this.tableData2.push({ follow: '>' + this.sortStationList[i].name, to: '<' + this.sortStationList[i].name, time: 0, timeRange: '060-300', code: rightStand.code });
this.tableData2.push({ follow: '<' + this.sortStationList[i].name, to: '<' + this.sortStationList[i - 1].name, time: 0, timeRange: '060-300', code: leftStand.code });
} else if ( i === 0 ) {
this.tableData2.push({ follow: '<' + this.sortStationList[i].name, to: '>' + this.sortStationList[i].name, time: 0, timeRange: '060-300', code: rightStand.code });
this.tableData2.push({ follow: '>' + this.sortStationList[i].name, to: '>' + this.sortStationList[i + 1].name, time: 0, timeRange: '060-300', code: leftStand.code });
} else {
this.tableData2.push({ follow: '<' + this.sortStationList[i].name, to: '<' + this.sortStationList[i - 1].name, time: 0, timeRange: '060-300', code: rightStand.code });
this.tableData2.push({ follow: '>' + this.sortStationList[i].name, to: '>' + this.sortStationList[i + 1].name, time: 0, timeRange: '060-300', code: leftStand.code });
}
}
},
doShow() {
this.initData();
this.dialogShow = true;
},
doClose() {
this.dialogShow = false;
},
reset() {
this.train = '';
this.atrMode = '';
this.timeTerm = '';
},
commit() {
if (!this.train || (this.train === 'one' && !this.trainCode)) {
this.$message.error('请选择列车!');
return;
} else if (!this.atrMode) {
this.$message.error('请选择调度模式!');
return;
} else if (!this.timeTerm) {
this.$message.error('请选择时间项!');
return;
}
const param = {
groupNumber: this.train === 'one' ? this.trainCode : '',
parkingAlwaysValid: true,
regulationParam: null,
regulation: this.atrMode
};
if (this.atrMode === 'REGULATION_OFF') {
if (this.timeTerm === 'stop') {
const standParkingTime = {};
this.tableData1.forEach(item => {
standParkingTime[item.code] = item.time;
});
param.regulationParam = {
parkTimeMap: standParkingTime,
runTimeMap: null,
skipMap: null
};
} else if (this.timeTerm === 'driving') {
const runTimeMap = {};
this.tableData2.forEach(item => {
runTimeMap[item.code] = item.time;
});
param.regulationParam = {
parkTimeMap: null,
runTimeMap: runTimeMap,
skipMap: null
};
} else if (this.timeTerm === 'run') {
const skipMap = {};
this.tableData3.forEach(item => {
skipMap[item.code] = item.stop;
});
param.regulationParam = {
parkTimeMap: null,
runTimeMap: null,
skipMap: skipMap
};
}
}
const step = {
cmdType: CMD.Train.CMD_TRAIN_REGULATION,
operate: OperationEvent.StationStand.setStopTime.confirm,
param: param,
over:true
};
this.$store.dispatch('training/nextNew', step).then(({ valid }) => {
if (valid) {
this.dialogShow = false;
}
}).catch((error) => {
console.error(error);
if (error && error.code == '10017') {
this.$message.error(error.message);
} else {
this.$message.error('命令执行失败');
}
});
},
termChange(val) {
}
}
};
</script>
<style lang="scss" scoped>
.actualTimetable{padding:0px 15px;}
.actualTimetableT{width:100%;position: relative;}
.defaultTimetableT{width:100%;position: relative;overflow:hidden;}
.actualTimetableTtext,.defaultTimetableTtext{position:absolute;height: 20px;padding-right:5px;font-size:15px;color: #676767;background:#e2e2e2;font-weight: bold;}
.actualTimetableTLine,.defaultTimetableTLine{display:inline-block;margin-left:10px;width:100%;border-bottom: 1px #A0A0A0 solid;vertical-align: top;height: 9px;}
.actualTimetableForm{}
.actualTimeFormEach{margin-top: 10px;}
.actualTimeFormEach span{font-size:15px;color: #151515;}
.actualTimeFormValue{
font-size:15px;
color: #151515;
display: inline-block;
padding: 5px 10px;
border: 1px #A2A2A2 solid;
width: 810px;
}
.defaultTimetable{
padding:15px 15px 0px 15px;
}
// .defaultTimetab{
// padding: 10px 15px 10px 15px;
// }
.defaultTimetableM{margin-top:10px;}
.defaultTimetableB{display:inline-block;width:100%;margin-top: 10px;}
#defaultClearSele{margin-right:10px;width:90px;}
#defaultClearAll{width:90px;}
#defaultShowTime{float:right;width:90px;}
.defaultTimetableBtn{
background:transparent;
border:1px#9C9C9C solid ;
height:auto ;
outline:none;
text-align:center;
display: inline-block;
padding:4px 0px;
color:#090909;
cursor: pointer;
}
.defaultTimetableBtn.disabled{border:1px #A9A9A9 solid ;color: #A7A7A7; cursor: no-drop;}
.ttlButtonGroup{
border-top: 1px #6d6d6d solid;
margin-top: 10px;
padding: 10px 15px;
}
#changeActual{margin-right:10px;width:120px}
#changeDefault{width:120px;margin-right:175px;}
#settingTimetable{width:130px;margin-right:10px;}
#resetTimetable{width:130px;margin-right:10px;}
#closeTimetable{width:130px;}
</style>
<style lang="scss">
.ttl.haerbin-01__systerm .el-dialog .el-dialog__body{
background: #E2E2E2;
padding:20px 0px 10px 0px;
}
.defaultTimetab.el-table .cell{
padding-top:5px;padding-bottom:5px;
}
</style>

View File

@ -45,7 +45,7 @@
<div class="div-simulate-button" style="width: 40px;">运图</div>
<div class="div-simulate-button" style="width: 55px;" @click="handleDialogShow('ttlDialog')">时刻表</div>
<div class="div-simulate-button" style="width: 40px;">编表</div>
<div class="div-simulate-button" style="width: 40px;">调度</div>
<div class="div-simulate-button" style="width: 40px;" @click="handleDialogShow('atrDialog')">调度</div>
<div class="div-simulate-button" style="width: 40px;">站控</div>
<div class="div-simulate-button" style="width: 40px;">计划</div>
</div>

View File

@ -16,6 +16,7 @@
<tra-dialog ref="traDialog" />
<ttl-dialog ref="ttlDialog" />
<tmt-dialog ref="tmtDialog" />
<atr-dialog ref="atrDialog" />
<set-time ref="setTime" @ConfirmSelectBeginTime="start" />
</div>
</template>
@ -40,6 +41,7 @@ import TroDetail from './troDetail';
import TraDialog from './tra';
import TtlDialog from './ttl';
import TmtDialog from './tmt';
import AtrDialog from './atr';
import parseStatus from '@/utils/parseStatus';
export default {
@ -53,7 +55,8 @@ export default {
TroDetail,
TraDialog,
TtlDialog,
TmtDialog
TmtDialog,
AtrDialog
},
data() {
return {

View File

@ -30,7 +30,17 @@
@click="hover('getSectionStart')"
>{{ $t('map.activate') }}</el-button>
</el-form-item>
<el-form-item v-if="createModel.type == '03' || createModel.type == '01'" label="距离长度:" prop="length">
<el-form-item v-if="createModel.type == '05'" label="右关联区段" prop="rightSectionCode">
<el-select v-model="createModel.rightSectionCode" filterable>
<el-option v-for="item in switchAndPhySicalSectionList" :key="item.code" :label="item.name" :value="item.code" />
</el-select>
<el-button
:type="field == 'getSectionEnd' ? 'danger' : 'primary'"
size="small"
@click="hover('getSectionEnd')"
>{{ $t('map.activate') }}</el-button>
</el-form-item>
<el-form-item v-if="createModel.type == '03' || createModel.type == '01'|| createModel.type == '05'" label="距离长度:" prop="length">
<el-input-number v-model="createModel.length" :min="0" />
</el-form-item>
<el-form-item v-if="createModel.type == '02' || createModel.type == '04'" label="起始区段:" prop="leftSectionCode">
@ -146,15 +156,21 @@ export default {
{
value: '01',
label: this.$t('map.coordinateMode')
}, {
},
{
value: '05',
label: '向左延伸方式'
},
{
value: '03',
label: this.$t('map.frontSectionMode')
label: '向右延伸方式'
// this.$t('map.frontSectionMode')
}, {
value: '02',
label: this.$t('map.sectionAssociationMode')
}, {
value: '04',
label: '批量创建'
label: '批量创建(向右)'
}
]
};
@ -233,7 +249,24 @@ export default {
this.createModel.modelList = [];
}
},
extendCreate(model) { //
extendCreate(model, type) { //
const models = [];
let section;
switch (type) {
case 'left': {
const startModel = this.$store.getters['map/getDeviceByCode'](this.createModel.rightSectionCode);
const start_x = startModel.points[0].x;
const start_y = startModel.points[0].y;
model.points = [
{ x: start_x - this.createModel.length, y: start_y },
{ x: start_x, y: start_y }
];
model.rightSectionCode = this.createModel.rightSectionCode;
section = this.getSectionByCode(this.createModel.rightSectionCode);
section.leftSectionCode = model.code;
break;
}
case 'right': {
const startModel = this.$store.getters['map/getDeviceByCode'](this.createModel.leftSectionCode);
const start_x = startModel.points[startModel.points.length - 1].x;
const start_y = startModel.points[startModel.points.length - 1].y;
@ -241,12 +274,14 @@ export default {
{ x: start_x, y: start_y },
{ x: start_x + this.createModel.length, y: start_y }
];
const models = [];
model.leftSectionCode = this.createModel.leftSectionCode;
const leftSection = this.getSectionByCode(this.createModel.leftSectionCode);
leftSection.rightSectionCode = model.code;
section = this.getSectionByCode(this.createModel.leftSectionCode);
section.rightSectionCode = model.code;
break;
}
}
models.push(model);
models.push(leftSection);
models.push(section);
this.$emit('updateMapModel', models);
},
associatedCreate(model) { //
@ -305,7 +340,9 @@ export default {
} else if (this.createModel.type === '02') {
this.associatedCreate(model);
} else if (this.createModel.type === '03') {
this.createModel.leftSectionCode && this.extendCreate(model);
this.createModel.leftSectionCode && this.extendCreate(model, 'right');
} else if (this.createModel.type === '05') {
this.createModel.rightSectionCode && this.extendCreate(model, 'left');
}
}
}

View File

@ -38,11 +38,13 @@ export default {
pageIndex: 'pageNum'
},
deviceTypeList:ConstConfig.ConstSelect.projectDeviceTypeList,
projectList: [{label:'西铁院', value: 'XTY'}, {label: '贵州装备', value:'GZB'}, {label: '哈尔滨', value:'HEB'}, {label: '苏电院', value:'SDY'}],
projectList: [{label:'西铁院', value: 'XTY'}, {label: '贵州装备', value:'GZB'}, {label: '哈尔滨', value:'HEB'}, {label: '苏电院', value:'SDY'}, { label: '中航锐创(实训室)', value: 'RICHOR_JOINT' }],
projectMap: {
designxty: 'XTY',
designgzb: 'GZB',
designheb: 'HEB'
designheb: 'HEB',
designsdy: 'SDY',
designrichorjoint: 'RICHOR_JOINT'
},
queryForm: {
labelWidth: '120px',
@ -196,7 +198,7 @@ export default {
},
getPath(index, row) {
let url = '';
url = `${window.location.protocol}//${window.location.host}/cbtc/login?project=${row.project.toLowerCase()}&projectDevice=${row.code}&type=${row.type}`;
url = `${window.location.protocol}//${window.location.host}/cbtc/login?project=${row.project.toLowerCase().replace(/_/, '')}&projectDevice=${row.code}&type=${row.type}`;
this.url = url;
this.$messageBox();
this.$confirm(`登录路径:${url}`, '登录路径', {