Merge remote-tracking branch 'origin/test'
This commit is contained in:
commit
1004c2e747
8
.env.heb
8
.env.heb
@ -3,7 +3,7 @@ NODE_ENV = 'production'
|
|||||||
VUE_APP_PRO = 'local'
|
VUE_APP_PRO = 'local'
|
||||||
|
|
||||||
# base api
|
# base api
|
||||||
VUE_APP_BASE_API = 'https://joylink.club/jlcloud'
|
VUE_APP_BASE_API = 'http://160.20.60.15:9000'
|
||||||
VUE_APP_VOICE_API = 'https://joylink.club/oss/joylink'
|
VUE_APP_VOICE_API = 'http://160.20.60.15/oss/joylink'
|
||||||
VUE_APP_UPLOAD_API = 'https://upload.joylink.club'
|
VUE_APP_UPLOAD_API = 'http://160.20.60.15'
|
||||||
VUE_APP_BASE_SITE='https://joylink.club/cbtc'
|
VUE_APP_BASE_SITE='http://160.20.60.15'
|
||||||
|
@ -412,9 +412,16 @@ export function putRouteNew(data) {
|
|||||||
data:data
|
data:data
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
export function delRouteNew(id) {
|
// export function delRouteNew(id) {
|
||||||
|
// return request({
|
||||||
|
// url: `/api/mapBuild/routeNew/${id}`,
|
||||||
|
// method: 'delete'
|
||||||
|
// });
|
||||||
|
// }
|
||||||
|
// 删除指定code进路
|
||||||
|
export function delRouteNew(mapId, code) {
|
||||||
return request({
|
return request({
|
||||||
url: `/api/mapBuild/routeNew/${id}`,
|
url: `/api/draftMap/${mapId}/route/${code}`,
|
||||||
method: 'delete'
|
method: 'delete'
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -424,13 +431,30 @@ export function getRouteNewById(id) {
|
|||||||
method: 'get'
|
method: 'get'
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
// // 分页查询进路数据(old)
|
||||||
|
// export function getRouteNewList(mapId, params) {
|
||||||
|
// return request({
|
||||||
|
// url: `/api/mapBuild/${mapId}/routeNew`,
|
||||||
|
// method: 'get',
|
||||||
|
// params
|
||||||
|
// });
|
||||||
|
// }
|
||||||
|
// 分页查询进路数据(new)
|
||||||
export function getRouteNewList(mapId, params) {
|
export function getRouteNewList(mapId, params) {
|
||||||
return request({
|
return request({
|
||||||
url: `/api/mapBuild/${mapId}/routeNew`,
|
url: `/api/draftMap/${mapId}/route/paging`,
|
||||||
method: 'get',
|
method: 'get',
|
||||||
params
|
params
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
// 修改进路属性对象
|
||||||
|
export function putSetDraftMapRouteById(mapId, data) {
|
||||||
|
return request({
|
||||||
|
url: `/api/draftMap/${mapId}/route/${data.code} `,
|
||||||
|
method: 'put',
|
||||||
|
data
|
||||||
|
});
|
||||||
|
}
|
||||||
// 新建进路侧防
|
// 新建进路侧防
|
||||||
export function postFlankProtection(data) {
|
export function postFlankProtection(data) {
|
||||||
return request({
|
return request({
|
||||||
@ -473,45 +497,58 @@ export function getFlankProtectionList(mapId, params) {
|
|||||||
params
|
params
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
/** 创建车站区段停站时间 */
|
// /** 创建车站区段停站时间 */
|
||||||
export function createStationParkTime(data) {
|
// export function createStationParkTime(data) {
|
||||||
|
// return request({
|
||||||
|
// url: `/api/mapBuild/stationParkTime`,
|
||||||
|
// method: 'post',
|
||||||
|
// data
|
||||||
|
// });
|
||||||
|
// }
|
||||||
|
// /** 删除车站区段停站时间 */
|
||||||
|
// export function deleteStationParkTime(stationParkTimeId) {
|
||||||
|
// return request({
|
||||||
|
// url: `/api/mapBuild/stationParkTime/${stationParkTimeId}`,
|
||||||
|
// method: 'delete'
|
||||||
|
// });
|
||||||
|
// }
|
||||||
|
// /** 获取车站区段停站时间 */
|
||||||
|
// export function getStationParkTime(stationParkTimeId, params) {
|
||||||
|
// return request({
|
||||||
|
// url: `/api/mapBuild/stationParkTime/${stationParkTimeId}`,
|
||||||
|
// method: 'get',
|
||||||
|
// params
|
||||||
|
// });
|
||||||
|
// }
|
||||||
|
|
||||||
|
/** 一键生成区段停站时间 */
|
||||||
|
export function generateStationParkTime(mapId) {
|
||||||
return request({
|
return request({
|
||||||
url: `/api/mapBuild/stationParkTime`,
|
url: `/api/draftMap/${mapId}/parkTime/generate`,
|
||||||
method: 'post',
|
method: 'post'
|
||||||
data
|
|
||||||
});
|
|
||||||
}
|
|
||||||
/** 删除车站区段停站时间 */
|
|
||||||
export function deleteStationParkTime(stationParkTimeId) {
|
|
||||||
return request({
|
|
||||||
url: `/api/mapBuild/stationParkTime/${stationParkTimeId}`,
|
|
||||||
method: 'delete'
|
|
||||||
});
|
|
||||||
}
|
|
||||||
/** 获取车站区段停站时间 */
|
|
||||||
export function getStationParkTime(stationParkTimeId, params) {
|
|
||||||
return request({
|
|
||||||
url: `/api/mapBuild/stationParkTime/${stationParkTimeId}`,
|
|
||||||
method: 'get',
|
|
||||||
params
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 更新车站区段停站时间 */
|
/** 更新车站区段停站时间 */
|
||||||
export function updateStationParkTime(data) {
|
export function updateStationParkTime(mapId, id, data) {
|
||||||
return request({
|
return request({
|
||||||
url: `/api/mapBuild/stationParkTime/${data.id}`,
|
// url: `/api/mapBuild/stationParkTime/${data.id}`,
|
||||||
method: 'get',
|
url: `/api/draftMap/${mapId}/parkTime/${id}`,
|
||||||
|
method: 'put',
|
||||||
data
|
data
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 分页获取车站区段停站时间 */
|
/** 分页获取车站区段停站时间 */
|
||||||
export function getStationParkTimeList(mapId, params) {
|
export function getStationParkTimeList(mapId, params) {
|
||||||
return request({
|
return request({
|
||||||
url: `/api/mapBuild/${mapId}/stationParkTime`,
|
// url: `/api/mapBuild/${mapId}/stationParkTime`,
|
||||||
|
url: `/api/draftMap/${mapId}/parkTime/all`,
|
||||||
method: 'get',
|
method: 'get',
|
||||||
params
|
params
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 删除原有连锁关系,生成新联锁数据 */
|
/** 删除原有连锁关系,生成新联锁数据 */
|
||||||
export function generateCI (mapId) {
|
export function generateCI (mapId) {
|
||||||
return request({
|
return request({
|
||||||
|
@ -439,7 +439,8 @@ export function postGenerateLevel(data) {
|
|||||||
/** 根据地图交路一键生成生成所有站间运行等级 (新版)*/
|
/** 根据地图交路一键生成生成所有站间运行等级 (新版)*/
|
||||||
export function generateAllStationRunData(mapId) {
|
export function generateAllStationRunData(mapId) {
|
||||||
return request({
|
return request({
|
||||||
url: `/api/draftMap/runLevel/generate/routing?mapId=${mapId}`,
|
// url: `/api/draftMap/runLevel/generate/routing?mapId=${mapId}`,
|
||||||
|
url: `/api/draftMap/${mapId}/runLevel/generate `,
|
||||||
method: 'post'
|
method: 'post'
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -454,9 +455,10 @@ export function postSaveLevel(data) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 更新站间运行等级数据
|
// 更新站间运行等级数据
|
||||||
export function putUploadLevel(id, data) {
|
export function putUploadLevel(mapId, id, data) {
|
||||||
return request({
|
return request({
|
||||||
url: `/api/draftMap/runLevel/${id}`,
|
// url: `/api/draftMap/runLevel/${id}`,
|
||||||
|
url: `/api/draftMap/${mapId}/runLevel/${id}`,
|
||||||
method: 'put',
|
method: 'put',
|
||||||
data
|
data
|
||||||
});
|
});
|
||||||
@ -471,11 +473,11 @@ export function deleteRunLevel(id) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 查询站间运行等级列表
|
// 查询站间运行等级列表
|
||||||
export function getRunLevelList(mapId, params) {
|
export function getRunLevelList(mapId) {
|
||||||
return request({
|
return request({
|
||||||
url: `/api/draftMap/runLevel/${mapId}/listAll`,
|
// url: `/api/draftMap/runLevel/${mapId}/listAll`,
|
||||||
method: 'get',
|
url: `/api/draftMap/${mapId}/runLevel/all`,
|
||||||
params
|
method: 'get'
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -27,6 +27,7 @@
|
|||||||
size="medium"
|
size="medium"
|
||||||
:header-cell-style="headerCellStyle"
|
:header-cell-style="headerCellStyle"
|
||||||
:default-sort="queryList.defaultSort"
|
:default-sort="queryList.defaultSort"
|
||||||
|
:max-height="queryList.height"
|
||||||
@row-click="onRowClick"
|
@row-click="onRowClick"
|
||||||
@select="onSelect"
|
@select="onSelect"
|
||||||
@select-all="onSelectAll"
|
@select-all="onSelectAll"
|
||||||
@ -44,13 +45,22 @@
|
|||||||
<el-table-column
|
<el-table-column
|
||||||
v-if="checkColumnTyep(column, 'basic')"
|
v-if="checkColumnTyep(column, 'basic')"
|
||||||
:key="index"
|
:key="index"
|
||||||
:prop="column.prop"
|
|
||||||
:label="column.title"
|
:label="column.title"
|
||||||
:width="column.width"
|
:width="column.width"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
:sortable="column.sortable"
|
:sortable="column.sortable"
|
||||||
:sort-by="column.sortBy"
|
:sort-by="column.sortBy"
|
||||||
/>
|
>
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<template v-if="!column.edit">
|
||||||
|
<span class="hideOutContent">{{ scope.row[column.prop] }}</span>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<div v-show="!scope.row.isEdit" class="hideOutContent" @click="handleEdit(scope.row, column, scope.$index)">{{ scope.row[column.prop] }}</div>
|
||||||
|
<el-input v-show="scope.row.isEdit" ref="customerInput" v-model="scope.row[column.prop]" placeholder="请输入内容" size="mini" autofocus @blur="handleEditBlur(scope.row, column)" />
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
v-else-if="checkColumnTyep(column, 'html')"
|
v-else-if="checkColumnTyep(column, 'html')"
|
||||||
:key="index"
|
:key="index"
|
||||||
@ -86,8 +96,13 @@
|
|||||||
:sort-by="column.sortBy"
|
:sort-by="column.sortBy"
|
||||||
>
|
>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
|
<template v-if="!column.edit">
|
||||||
<el-tag v-if="column.columnValue(scope.row, scope.$index)" :type="column.tagType(scope.row, scope.$index)">{{ column.columnValue(scope.row, scope.$index) }}</el-tag>
|
<el-tag v-if="column.columnValue(scope.row, scope.$index)" :type="column.tagType(scope.row, scope.$index)">{{ column.columnValue(scope.row, scope.$index) }}</el-tag>
|
||||||
</template>
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<el-checkbox v-model="scope.row[column.prop]" />
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
v-else-if="checkColumnTyep(column, 'replicText')"
|
v-else-if="checkColumnTyep(column, 'replicText')"
|
||||||
@ -294,6 +309,16 @@ export default {
|
|||||||
// this.tableHeight = this.$refs.table2.$el.offsetHeight + 23;
|
// this.tableHeight = this.$refs.table2.$el.offsetHeight + 23;
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
handleEdit(row, column, index) {
|
||||||
|
this.$set(row, 'isEdit', true);
|
||||||
|
// console.log(this.$refs);
|
||||||
|
// if (this.$refs.customerInput.length) {
|
||||||
|
// this.$refs.customerInput[index].$el.querySelector('input').focus();
|
||||||
|
// }
|
||||||
|
},
|
||||||
|
handleEditBlur(row, column) {
|
||||||
|
this.$set(row, 'isEdit', false);
|
||||||
|
},
|
||||||
// 根据类型显示
|
// 根据类型显示
|
||||||
checkColumnTyep(column, typeName) {
|
checkColumnTyep(column, typeName) {
|
||||||
if (column.show === false) {
|
if (column.show === false) {
|
||||||
@ -378,6 +403,7 @@ export default {
|
|||||||
});
|
});
|
||||||
if (fv.type === 'date') {
|
if (fv.type === 'date') {
|
||||||
const format = fv.format || 'yyyy-MM-dd';
|
const format = fv.format || 'yyyy-MM-dd';
|
||||||
|
// eslint-disable-next-line new-cap
|
||||||
return new Date(obj).Format(format);
|
return new Date(obj).Format(format);
|
||||||
} else if (fv.formatter instanceof Function) {
|
} else if (fv.formatter instanceof Function) {
|
||||||
return fv.formatter(v);
|
return fv.formatter(v);
|
||||||
|
@ -53,9 +53,7 @@ export function Lesson3dPlayer(dom,lessonData,lessonIndex) {
|
|||||||
animateManager.initAnimation(assetModelManager);
|
animateManager.initAnimation(assetModelManager);
|
||||||
controlManager.init(animateManager.actions,assetModelManager);
|
controlManager.init(animateManager.actions,assetModelManager);
|
||||||
|
|
||||||
if(lessonData.lessonProgress[lessonIndex].action.length>0){
|
|
||||||
controlManager.changeIndexEvent(lessonData.lessonProgress[lessonIndex].action,true,assetModelManager.lessonTriggerList);
|
|
||||||
}
|
|
||||||
|
|
||||||
startLesson();
|
startLesson();
|
||||||
animate();
|
animate();
|
||||||
@ -104,10 +102,14 @@ export function Lesson3dPlayer(dom,lessonData,lessonIndex) {
|
|||||||
this.initNowRole = function(role){
|
this.initNowRole = function(role){
|
||||||
nowRole = role;
|
nowRole = role;
|
||||||
controlManager.initControlMode(lessonIndex);
|
controlManager.initControlMode(lessonIndex);
|
||||||
|
let roleMode = false;
|
||||||
if(lessonData.lessonProgress[lessonIndex].roleName == nowRole){
|
if(lessonData.lessonProgress[lessonIndex].roleName == nowRole){
|
||||||
controlManager.initRoleMode(true);
|
roleMode = true;
|
||||||
}else{
|
}
|
||||||
controlManager.initRoleMode(false);
|
|
||||||
|
controlManager.initRoleMode(roleMode);
|
||||||
|
if(lessonData.lessonProgress[lessonIndex].action.length>0){
|
||||||
|
controlManager.changeIndexEvent(lessonData.lessonProgress[lessonIndex].action,roleMode,assetModelManager.lessonTriggerList);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
//循环渲染函数
|
//循环渲染函数
|
||||||
|
@ -229,7 +229,9 @@ export function ControlManager(dom,scene,lessonData,lessonIndex) {
|
|||||||
document.addEventListener( 'mousedown', (event) => {
|
document.addEventListener( 'mousedown', (event) => {
|
||||||
fpsMouseStatus = true;
|
fpsMouseStatus = true;
|
||||||
// document.body.requestPointerLock();
|
// document.body.requestPointerLock();
|
||||||
|
console.log("mousedown-----------------------");
|
||||||
|
console.log(raycasterBoxs);
|
||||||
|
console.log(roleMode);
|
||||||
if(raycasterBoxs.length>0 && roleMode){
|
if(raycasterBoxs.length>0 && roleMode){
|
||||||
var mouse = new THREE.Vector2();
|
var mouse = new THREE.Vector2();
|
||||||
|
|
||||||
@ -240,12 +242,16 @@ export function ControlManager(dom,scene,lessonData,lessonIndex) {
|
|||||||
mouse.y = - ( event.clientY / dom.offsetHeight ) * 2 + 1;
|
mouse.y = - ( event.clientY / dom.offsetHeight ) * 2 + 1;
|
||||||
|
|
||||||
raycaster.setFromCamera(mouse,scope.nowCamera) // 也可以给构造函数传参的形式写
|
raycaster.setFromCamera(mouse,scope.nowCamera) // 也可以给构造函数传参的形式写
|
||||||
console.log(raycasterBoxs);
|
|
||||||
for(let i=0;i<raycasterBoxs.length;i++){
|
for(let i=0;i<raycasterBoxs.length;i++){
|
||||||
var intersects = raycaster.intersectObject( raycasterBoxs[i].mesh);
|
var intersects = raycaster.intersectObject( raycasterBoxs[i].mesh,true);
|
||||||
|
|
||||||
if(intersects.length>0){
|
if(intersects.length>0){
|
||||||
console.log(raycasterBoxs[i]);
|
|
||||||
if(raycasterBoxs[i].type == "switch"){
|
if(raycasterBoxs[i].type == "switch"){
|
||||||
|
if(raycasterBoxs[i].actionMode == "jump"){
|
||||||
|
actionEvent("remove",raycasterBoxs[i],raycasterBoxs[i].mesh);
|
||||||
|
jumpEvent("action",raycasterBoxs[i]);
|
||||||
|
}else{
|
||||||
if(raycasterBoxs[i].action.status == "01"){
|
if(raycasterBoxs[i].action.status == "01"){
|
||||||
raycasterBoxs[i].action.status = "02";
|
raycasterBoxs[i].action.status = "02";
|
||||||
raycasterBoxs[i].action.action.play();
|
raycasterBoxs[i].action.action.play();
|
||||||
@ -254,7 +260,8 @@ export function ControlManager(dom,scene,lessonData,lessonIndex) {
|
|||||||
raycasterBoxs[i].action.action.stop();
|
raycasterBoxs[i].action.action.stop();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(raycasterBoxs[i].type == "urgeSwitch"){
|
|
||||||
|
}else if(raycasterBoxs[i].type == "urgeSwitch"){
|
||||||
if(raycasterBoxs[i].action.status == "02"){
|
if(raycasterBoxs[i].action.status == "02"){
|
||||||
raycasterBoxs[i].action.status = "01";
|
raycasterBoxs[i].action.status = "01";
|
||||||
raycasterBoxs[i].action.action.stop();
|
raycasterBoxs[i].action.action.stop();
|
||||||
@ -502,6 +509,8 @@ export function ControlManager(dom,scene,lessonData,lessonIndex) {
|
|||||||
// eventBoxs = newEventBoxs;
|
// eventBoxs = newEventBoxs;
|
||||||
raycasterBoxs = [];
|
raycasterBoxs = [];
|
||||||
roleMode = rMode;
|
roleMode = rMode;
|
||||||
|
console.log("changeIndex-----------------");
|
||||||
|
console.log(actions);
|
||||||
console.log(roleMode);
|
console.log(roleMode);
|
||||||
if(actions.length>0 && roleMode){
|
if(actions.length>0 && roleMode){
|
||||||
for(let i=0;i<actions.length;i++){
|
for(let i=0;i<actions.length;i++){
|
||||||
@ -528,7 +537,6 @@ export function ControlManager(dom,scene,lessonData,lessonIndex) {
|
|||||||
eventTestBox.mesh = eventTrigger[j];
|
eventTestBox.mesh = eventTrigger[j];
|
||||||
eventTestBox.action = actions[i];
|
eventTestBox.action = actions[i];
|
||||||
eventBoxs.push(eventTestBox);
|
eventBoxs.push(eventTestBox);
|
||||||
console.log("changeindex");
|
|
||||||
actionEvent("changeIndex",eventBoxs[i].action,eventTestBox.mesh);
|
actionEvent("changeIndex",eventBoxs[i].action,eventTestBox.mesh);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -542,8 +550,12 @@ export function ControlManager(dom,scene,lessonData,lessonIndex) {
|
|||||||
mesh:eventTrigger[j],
|
mesh:eventTrigger[j],
|
||||||
action:actionList[eventTrigger[j].actionName],
|
action:actionList[eventTrigger[j].actionName],
|
||||||
type:actions[i].actionType,
|
type:actions[i].actionType,
|
||||||
|
actionMode:actions[i].actionMode,
|
||||||
|
jumpNode:actions[i].jumpNode,
|
||||||
};
|
};
|
||||||
raycasterBoxs.push(eventRaycaster);
|
raycasterBoxs.push(eventRaycaster);
|
||||||
|
|
||||||
|
actionEvent("changeIndex",actions[i],eventTrigger[j]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -226,7 +226,7 @@ export default class TrainBody extends Group {
|
|||||||
z: model.z + 1,
|
z: model.z + 1,
|
||||||
x: parseInt(model.point.x + style.Train.crewNum.trainCrewNumOffset.x),
|
x: parseInt(model.point.x + style.Train.crewNum.trainCrewNumOffset.x),
|
||||||
y: parseInt(model.point.y + style.Train.crewNum.trainCrewNumOffset.y),
|
y: parseInt(model.point.y + style.Train.crewNum.trainCrewNumOffset.y),
|
||||||
text: 'BBB',
|
text: model.model.crewNumber ? model.model.crewNumber : 'BBB',
|
||||||
textFill: style.trainTextColor,
|
textFill: style.trainTextColor,
|
||||||
textStroke: style.trainTextColor,
|
textStroke: style.trainTextColor,
|
||||||
textStrokeWidth: 0,
|
textStrokeWidth: 0,
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
<el-form ref="form" :model="formModel" :rules="rules">
|
<el-form ref="form" :model="formModel" :rules="rules">
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item prop="targetDeviceCode" label="目的地:">
|
<el-form-item prop="targetDeviceCode" label="目的地:">
|
||||||
<el-select v-model="formModel.targetDeviceCode" size="small" style="width: 165px;height: 32px;line-height: 32px;" placeholder="请选择">
|
<el-select ref="faultSelect1" v-model="formModel.targetDeviceCode" size="small" style="width: 165px;height: 32px;line-height: 32px;" placeholder="请选择">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in selectedList"
|
v-for="item in selectedList"
|
||||||
:key="item.code"
|
:key="item.code"
|
||||||
@ -49,7 +49,7 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="11" :offset="2">
|
<el-col :span="11" :offset="2">
|
||||||
<el-form-item prop="faultType">
|
<el-form-item prop="faultType">
|
||||||
<el-select v-model="form.faultType" size="small" style="height: 32px;line-height: 32px;" placeholder="请选择">
|
<el-select ref="faultSelect2" v-model="form.faultType" size="small" style="height: 32px;line-height: 32px;" placeholder="请选择">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in faultList"
|
v-for="item in faultList"
|
||||||
:key="item.value"
|
:key="item.value"
|
||||||
@ -189,6 +189,12 @@ export default {
|
|||||||
this.deviceName = deviceType[selected._type];
|
this.deviceName = deviceType[selected._type];
|
||||||
}
|
}
|
||||||
this.faultList = deviceFaultType[selected._type];
|
this.faultList = deviceFaultType[selected._type];
|
||||||
|
if (selected._type == 'Switch' && this.popClass == 'xian-01__systerm' ) {
|
||||||
|
// && this.$route.query.lineCode == '11'
|
||||||
|
this.faultList = this.faultList.filter(fault=>{
|
||||||
|
return fault.value != 'NORMAL_SPLIT' && fault.value != 'REVERSE_SPLIT';
|
||||||
|
});
|
||||||
|
}
|
||||||
if (this.faultList && this.faultList.length) {
|
if (this.faultList && this.faultList.length) {
|
||||||
this.form.faultType = this.faultList[0].value;
|
this.form.faultType = this.faultList[0].value;
|
||||||
}
|
}
|
||||||
@ -209,6 +215,8 @@ export default {
|
|||||||
this.loading = false;
|
this.loading = false;
|
||||||
this.dialogShow = false;
|
this.dialogShow = false;
|
||||||
this.form.faultType = '';
|
this.form.faultType = '';
|
||||||
|
this.$refs.faultSelect1 && this.$refs.faultSelect1.blur();
|
||||||
|
this.$refs.faultSelect2 && this.$refs.faultSelect2.blur();
|
||||||
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');
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
<el-form ref="form" :model="formModel" :rules="rules">
|
<el-form ref="form" :model="formModel" :rules="rules">
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item prop="targetDeviceCode" label="目的地:">
|
<el-form-item prop="targetDeviceCode" label="目的地:">
|
||||||
<el-select v-model="formModel.targetDeviceCode" size="small" style="width: 165px;height: 32px;line-height: 32px;" placeholder="请选择">
|
<el-select ref="faultSelect1" v-model="formModel.targetDeviceCode" size="small" style="width: 165px;height: 32px;line-height: 32px;" placeholder="请选择">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in selectedList"
|
v-for="item in selectedList"
|
||||||
:key="item.code"
|
:key="item.code"
|
||||||
@ -49,7 +49,7 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="11" :offset="2">
|
<el-col :span="11" :offset="2">
|
||||||
<el-form-item prop="faultType">
|
<el-form-item prop="faultType">
|
||||||
<el-select v-model="form.faultType" size="small" style="height: 32px;line-height: 32px;" placeholder="请选择">
|
<el-select ref="faultSelect2" v-model="form.faultType" size="small" style="height: 32px;line-height: 32px;" placeholder="请选择">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in faultList"
|
v-for="item in faultList"
|
||||||
:key="item.value"
|
:key="item.value"
|
||||||
@ -229,6 +229,8 @@ export default {
|
|||||||
this.loading = false;
|
this.loading = false;
|
||||||
this.dialogShow = false;
|
this.dialogShow = false;
|
||||||
this.form.faultType = '';
|
this.form.faultType = '';
|
||||||
|
this.$refs.faultSelect1 && this.$refs.faultSelect1.blur();
|
||||||
|
this.$refs.faultSelect2 && this.$refs.faultSelect2.blur();
|
||||||
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');
|
||||||
|
@ -8,16 +8,24 @@
|
|||||||
<el-row>
|
<el-row>
|
||||||
<div style="padding: 0 10px;">
|
<div style="padding: 0 10px;">
|
||||||
<span>所选区段:</span>
|
<span>所选区段:</span>
|
||||||
<el-input v-model="sectionCode" style="display: inline-block;width: 200px;" :disabled="true" size="small" />
|
<el-select v-if="controlMode === 'create'" v-model="newSectionCode" filterable placeholder="请选择" size="mini">
|
||||||
|
<el-option
|
||||||
|
v-for="item in selectSectionList"
|
||||||
|
:key="item.code"
|
||||||
|
:label="item.name"
|
||||||
|
:value="item.code"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
<el-input v-else v-model="sectionCode" style="display: inline-block;width: 200px;" :disabled="true" size="mini" />
|
||||||
</div>
|
</div>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row>
|
<el-row>
|
||||||
<div style="display: flex;justify-content: space-between;padding: 10px 20px;border: 1px solid #DCDAC9;border-radius: 6px;">
|
<div style="display: flex;justify-content: space-between;padding: 10px 20px;border: 1px solid #DCDAC9;border-radius: 6px;">
|
||||||
<el-button size="small" @click="changeMode('show')">显示列车</el-button>
|
<el-button size="small" :disabled="controlMode === 'show'" @click="changeMode('show')">显示列车</el-button>
|
||||||
<el-button size="small" @click="changeMode('edit')">编辑列车</el-button>
|
<el-button size="small" :disabled="controlMode === 'edit'" @click="changeMode('edit')">编辑列车</el-button>
|
||||||
<el-button size="small" :disabled="true">创建列车</el-button>
|
<el-button size="small" :disabled="controlMode === 'create'" @click="changeMode('create')">创建列车</el-button>
|
||||||
<el-button size="small" :disabled="true">删除列车</el-button>
|
<el-button size="small" :disabled="controlMode === 'delete'" @click="changeMode('delete')">删除列车</el-button>
|
||||||
<el-button size="small" :disabled="true">步进列车</el-button>
|
<el-button size="small" :disabled="controlMode === 'move'" @click="changeMode('move')">步进列车</el-button>
|
||||||
</div>
|
</div>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row v-if="controlMode === 'show'" style="padding: 10px;">
|
<el-row v-if="controlMode === 'show'" style="padding: 10px;">
|
||||||
@ -29,7 +37,7 @@
|
|||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="tripNumber" label="车次号">
|
<el-table-column prop="tripNumber" label="车次号">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span>{{ scope.row.serviceNumber+scope.row.destinationCode+(scope.row.tripNumber.substring(1)) }}</span>
|
<span>{{ scope.row.destinationCode+scope.row.serviceNumber+scope.row.tripNumber }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="groupNumber" label="车组号" />
|
<el-table-column prop="groupNumber" label="车组号" />
|
||||||
@ -42,9 +50,9 @@
|
|||||||
<el-table-column prop="dt" label="晚点(秒)" />
|
<el-table-column prop="dt" label="晚点(秒)" />
|
||||||
</el-table>
|
</el-table>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row v-if="controlMode === 'edit'">
|
<el-row v-else>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-table :data="tempTableData" style="width: 100%" height="300">
|
<el-table v-if="controlMode === 'edit' || controlMode === 'delete' || controlMode === 'move'" :data="tempTableData" style="width: 100%" height="300">
|
||||||
<el-table-column prop="date" label="方向">
|
<el-table-column prop="date" label="方向">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span>{{ scope.row.right? '>':'<' }}</span>
|
<span>{{ scope.row.right? '>':'<' }}</span>
|
||||||
@ -52,34 +60,63 @@
|
|||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="tripNumber" label="车次号">
|
<el-table-column prop="tripNumber" label="车次号">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span>{{ scope.row.destinationCode+scope.row.serviceNumber+(scope.row.tripNumber.substring(1)) }}</span>
|
<span>{{ scope.row.destinationCode+scope.row.serviceNumber+scope.row.tripNumber }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="17" :offset="1">
|
<el-col :span="17" :offset="controlMode === 'create'? 7: 1" style="min-height: 300px;">
|
||||||
<div style="margin-top: 30px;">
|
<div v-if="controlMode === 'edit' || controlMode === 'delete' || controlMode === 'move'" style="margin-top: 30px;">
|
||||||
<div style="display: inline-block;width: 150px;">选择的车次号:</div>
|
<div style="display: inline-block;width: 150px;">{{ controlMode === 'delete'?'车次号:':'选择的车次号:' }}</div>
|
||||||
<el-input v-model="tripNum" style="display: inline-block;width: 200px;" :disabled="true" size="small" />
|
<el-input v-model="tripNum" style="display: inline-block;width: 200px;" :disabled="true" size="mini" />
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div v-if="controlMode === 'create'" style="margin-top: 30px;">
|
||||||
|
<div style="display: inline-block;width: 150px">区段位置:</div>
|
||||||
|
<el-select v-model="newSectionCode" filterable placeholder="请选择" :disabled="true" size="mini">
|
||||||
|
<el-option
|
||||||
|
v-for="item in selectSectionList"
|
||||||
|
:key="item.code"
|
||||||
|
:label="item.name"
|
||||||
|
:value="item.code"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</div>
|
||||||
|
<div v-if="controlMode === 'move'" style="margin-top: 10px;">
|
||||||
|
<div style="display: inline-block;width: 150px;">区段位置:</div>
|
||||||
|
<el-input v-model="sectionCode" style="display: inline-block;width: 200px;" :disabled="true" size="mini" />
|
||||||
|
</div>
|
||||||
|
<div v-if="controlMode === 'move'" style="margin-top: 10px;">
|
||||||
|
<div style="display: inline-block;width: 150px;">新区段位置:</div>
|
||||||
|
<el-select v-model="newSectionCode" filterable placeholder="请选择" size="mini">
|
||||||
|
<el-option
|
||||||
|
v-for="item in selectSectionList"
|
||||||
|
:key="item.code"
|
||||||
|
:label="item.name"
|
||||||
|
:value="item.code"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</div>
|
||||||
|
<div v-if="controlMode === 'edit' || controlMode === 'create'" style="margin-top: 10px;">
|
||||||
<div style="display: inline-block;width: 150px;">新的车次号:</div>
|
<div style="display: inline-block;width: 150px;">新的车次号:</div>
|
||||||
<el-input v-model="newTripNum" style="display: inline-block;width: 200px;" size="small" />
|
<el-input v-model="newTripNum" maxlength="8" style="display: inline-block;width: 200px;" size="mini" />
|
||||||
<div v-if="newTripNumError" style="font-size: 10px;color: #F00;margin-left: 160px;height: 10px;line-height: 10px;"> 请输入正确的车次号</div>
|
<div v-if="newTripNumError" style="font-size: 10px;color: #F00;margin-left: 160px;height: 10px;line-height: 10px;"> 请输入正确的车次号</div>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div v-if="controlMode === 'edit' || controlMode === 'create'" style="margin-top: 10px;">
|
||||||
<div style="display: inline-block;width: 150px;">自动排列:</div>
|
<div style="display: inline-block;width: 150px;">自动排列:</div>
|
||||||
<el-radio v-model="autoArrange" style="display: inline-block;" :label="true" :disabled="true">开</el-radio>
|
<el-radio v-model="autoArrange" style="display: inline-block;" :label="true" :disabled="true">开</el-radio>
|
||||||
<el-radio v-model="autoArrange" style="display: inline-block;" :label="false" :disabled="true">关</el-radio>
|
<el-radio v-model="autoArrange" style="display: inline-block;" :label="false" :disabled="true">关</el-radio>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div v-if="controlMode === 'edit' || controlMode === 'create'" style="margin-top: 10px;">
|
||||||
<div style="display: inline-block;width: 150px;">车组号:</div>
|
<div style="display: inline-block;width: 150px;">车组号:</div>
|
||||||
<el-input v-model="groupNum" style="display: inline-block;width: 200px;" :disabled="true" size="small" />
|
<el-input v-if="controlMode === 'edit'" v-model="groupNum" style="display: inline-block;width: 200px;" :disabled="true" size="mini" />
|
||||||
|
<el-input v-if="controlMode === 'create'" v-model="newGroupNum" style="display: inline-block;width: 80px;" maxlength="3" size="mini" />
|
||||||
|
<span v-if="controlMode === 'create'">--</span>
|
||||||
|
<el-input v-if="controlMode === 'create'" v-model="newGrewNum" style="display: inline-block;width: 80px;" maxlength="3" size="mini" />
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<div style="text-align: right;">
|
<div style="text-align: right;">
|
||||||
<el-button v-if="controlMode==='edit'" size="small" @click="commit">执行</el-button>
|
<el-button v-if="controlMode!=='show'" size="small" :disabled="!commitDisabled" @click="commit">执行</el-button>
|
||||||
<el-button size="small" @click="doClose">关闭</el-button>
|
<el-button size="small" @click="doClose">关闭</el-button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -93,6 +130,7 @@
|
|||||||
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
||||||
import CMD from '@/scripts/cmdPlugin/CommandEnum';
|
import CMD from '@/scripts/cmdPlugin/CommandEnum';
|
||||||
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
|
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
|
||||||
|
import { mapGetters } from 'vuex';
|
||||||
export default {
|
export default {
|
||||||
name: 'FaultChoose',
|
name: 'FaultChoose',
|
||||||
components: {
|
components: {
|
||||||
@ -113,28 +151,8 @@ export default {
|
|||||||
autoArrange: true,
|
autoArrange: true,
|
||||||
deviceMap: {},
|
deviceMap: {},
|
||||||
sectionCode: '',
|
sectionCode: '',
|
||||||
|
newSectionCode: '',
|
||||||
simulationFault:{},
|
simulationFault:{},
|
||||||
faultList: [],
|
|
||||||
faultRule:{
|
|
||||||
targetDeviceCode:'',
|
|
||||||
targetDeviceType:'',
|
|
||||||
faultType:'',
|
|
||||||
condition:{
|
|
||||||
triggerDeviceCode:'',
|
|
||||||
triggerDeviceStatus:'',
|
|
||||||
triggerDeviceType :'',
|
|
||||||
type:'DEVICE',
|
|
||||||
triggerTime: '',
|
|
||||||
triggerAssociatedDeviceCode: ''
|
|
||||||
}
|
|
||||||
},
|
|
||||||
triggerDevice:'',
|
|
||||||
triggerAssociatedDevice: '',
|
|
||||||
triggerMode: 'DEVICE',
|
|
||||||
triggerModeList: [
|
|
||||||
{label: '设备触发', value: 'DEVICE'},
|
|
||||||
{label: '时间触发', value: 'TIME'}
|
|
||||||
],
|
|
||||||
field:'',
|
field:'',
|
||||||
triggerStatusList:[],
|
triggerStatusList:[],
|
||||||
faultTypeList:[],
|
faultTypeList:[],
|
||||||
@ -142,24 +160,50 @@ export default {
|
|||||||
tempTableData: [],
|
tempTableData: [],
|
||||||
tripNum: '',
|
tripNum: '',
|
||||||
groupNum: '',
|
groupNum: '',
|
||||||
|
newGroupNum: '',
|
||||||
|
newGrewNum: '',
|
||||||
newTripNum: '',
|
newTripNum: '',
|
||||||
newTripNumError: false
|
newTripNumError: false
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
...mapGetters('map', [
|
||||||
|
'sectionList'
|
||||||
|
]),
|
||||||
title() {
|
title() {
|
||||||
return '列车监控和追踪';
|
return '列车监控和追踪';
|
||||||
|
},
|
||||||
|
commitDisabled() {
|
||||||
|
return (this.controlMode === 'edit' && this.newTripNum.length === 8 ) || (this.controlMode === 'delete') ||
|
||||||
|
(this.controlMode === 'create' && this.newTripNum.length === 8 && this.newSectionCode && this.newGroupNum.length === 3 && this.newGrewNum.length === 3) ||
|
||||||
|
(this.controlMode === 'move' && this.newSectionCode);
|
||||||
|
},
|
||||||
|
selectSectionList() {
|
||||||
|
const list = [];
|
||||||
|
this.sectionList.forEach(item => {
|
||||||
|
if (item.type === '01' || item.type === '04') {
|
||||||
|
list.push(item);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return list;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
watch:{
|
watch:{
|
||||||
'$store.state.menuOperation.selectedCount':function(em) {
|
'$store.state.menuOperation.selectedCount':function(em) {
|
||||||
const device = this.$store.state.menuOperation.selected;
|
const device = this.$store.state.menuOperation.selected;
|
||||||
if (device && device.code && device.deviceType === 'TRAIN') {
|
if (device && device.code && device.deviceType === 'TRAIN' && this.$store.state.training.prdType === '02') {
|
||||||
|
if (!this.dialogShow) {
|
||||||
|
this.controlMode = 'edit';
|
||||||
|
this.dialogShow = true;
|
||||||
|
}
|
||||||
this.tempTableData = [device];
|
this.tempTableData = [device];
|
||||||
this.sectionCode = device.sectionModel.name;
|
this.sectionCode = device.sectionModel.name;
|
||||||
this.tripNum = device.destinationCode + device.serviceNumber + (device.tripNumber.substring(1));
|
this.tripNum = device.destinationCode + device.serviceNumber + device.tripNumber;
|
||||||
this.groupNum = device.groupNumber;
|
this.groupNum = device.groupNumber;
|
||||||
}
|
}
|
||||||
|
if (this.dialogShow && device && device.code && device.deviceType === 'SECTION') {
|
||||||
|
this.newSectionCode = device.code;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
@ -172,6 +216,9 @@ export default {
|
|||||||
this.controlMode = 'show';
|
this.controlMode = 'show';
|
||||||
this.tripNum = '';
|
this.tripNum = '';
|
||||||
this.groupNum = '';
|
this.groupNum = '';
|
||||||
|
this.newGroupNum = '';
|
||||||
|
this.newGrewNum = '';
|
||||||
|
this.newSectionCode = '';
|
||||||
this.newTripNum = '';
|
this.newTripNum = '';
|
||||||
this.newTripNumError = false;
|
this.newTripNumError = false;
|
||||||
this.$nextTick(()=>{
|
this.$nextTick(()=>{
|
||||||
@ -182,22 +229,44 @@ export default {
|
|||||||
this.dialogShow = false;
|
this.dialogShow = false;
|
||||||
},
|
},
|
||||||
changeMode(val) {
|
changeMode(val) {
|
||||||
|
this.newSectionCode = '';
|
||||||
this.controlMode = val;
|
this.controlMode = val;
|
||||||
},
|
},
|
||||||
commit() {
|
commit() {
|
||||||
this.newTripNumError = false;
|
this.newTripNumError = false;
|
||||||
if (this.newTripNum && this.newTripNum.length === 8) {
|
const params = {};
|
||||||
const params = {
|
|
||||||
groupNumber: this.groupNum,
|
|
||||||
tripNumber: '0' + this.newTripNum.slice(6, 8),
|
|
||||||
serviceNumber: this.newTripNum.slice(3, 6)
|
|
||||||
};
|
|
||||||
const step = {
|
const step = {
|
||||||
over: true,
|
over: true
|
||||||
cmdType: CMD.TrainWindow.CMD_TRAIN_SET_PLAN,
|
|
||||||
operation: OperationEvent.Train.setPlanTrainId.menu.operation,
|
|
||||||
param: params
|
|
||||||
};
|
};
|
||||||
|
if (this.controlMode === 'edit') {
|
||||||
|
params.groupNumber = this.groupNum;
|
||||||
|
params.serviceNumber = this.newTripNum.slice(3, 6);
|
||||||
|
params.tripNumber = this.newTripNum.slice(6, 8);
|
||||||
|
step.cmdType = CMD.TrainWindow.CMD_TRAIN_SET_PLAN;
|
||||||
|
step.operation = OperationEvent.Train.setPlanTrainId.menu.operation;
|
||||||
|
step.param = params;
|
||||||
|
} else if (this.controlMode === 'create') {
|
||||||
|
params.sectionCode = this.newSectionCode;
|
||||||
|
params.groupNumber = this.newGroupNum;
|
||||||
|
params.dn = this.newTripNum.slice(0, 3);
|
||||||
|
params.sn = this.newTripNum.slice(3, 6);
|
||||||
|
params.tn = this.newTripNum.slice(6, 8);
|
||||||
|
params.cn = this.newGrewNum;
|
||||||
|
step.cmdType = CMD.TrainWindow.CMD_TRAIN_ADD_TRAIN_TRACE;
|
||||||
|
step.operation = OperationEvent.Train.addTrainId.menu.operation;
|
||||||
|
step.param = params;
|
||||||
|
} else if (this.controlMode === 'delete') {
|
||||||
|
params.groupNumber = this.groupNum;
|
||||||
|
step.cmdType = CMD.TrainWindow.CMD_TRAIN_REMOVE_TRAIN_TRACE;
|
||||||
|
step.operation = OperationEvent.Train.delTrainId.menu.operation;
|
||||||
|
step.param = params;
|
||||||
|
} else if (this.controlMode === 'move') {
|
||||||
|
params.groupNumber = this.groupNum;
|
||||||
|
params.sectionCode = this.newSectionCode;
|
||||||
|
step.cmdType = CMD.TrainWindow.CMD_TRAIN_MOVE_TRAIN_TRACE;
|
||||||
|
step.operation = OperationEvent.Train.moveTrainId.menu.operation;
|
||||||
|
step.param = params;
|
||||||
|
}
|
||||||
this.$store.dispatch('training/nextNew', step).then(({ valid }) => {
|
this.$store.dispatch('training/nextNew', step).then(({ valid }) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||||
@ -206,15 +275,16 @@ export default {
|
|||||||
this.tripNum = '';
|
this.tripNum = '';
|
||||||
this.groupNum = '';
|
this.groupNum = '';
|
||||||
this.newTripNum = '';
|
this.newTripNum = '';
|
||||||
|
this.newGroupNum = '';
|
||||||
|
this.newGrewNum = '';
|
||||||
|
this.newSectionCode = '';
|
||||||
this.newTripNumError = false;
|
this.newTripNumError = false;
|
||||||
}
|
}
|
||||||
}).catch((error) => {
|
}).catch((error) => {
|
||||||
console.error(error);
|
console.error(error);
|
||||||
this.$refs.noticeInfo.doShow();
|
this.$refs.noticeInfo.doShow(error.msg);
|
||||||
});
|
});
|
||||||
} else {
|
|
||||||
this.newTripNumError = true;
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
dragEvent() {
|
dragEvent() {
|
||||||
const offset = this.offset;
|
const offset = this.offset;
|
||||||
|
@ -101,8 +101,8 @@
|
|||||||
<el-row style="display: flex;align-items: center;">
|
<el-row style="display: flex;align-items: center;">
|
||||||
<el-col :span="7" style="height: 25px;line-height: 25px;">车次号</el-col>
|
<el-col :span="7" style="height: 25px;line-height: 25px;">车次号</el-col>
|
||||||
<el-col :span="17">
|
<el-col :span="17">
|
||||||
<el-input v-if="trainOperateType!=='create'" v-model="formModelTripNum" :maxlength="7" size="mini" style="height: 20px;" :disabled="true" />
|
<el-input v-if="trainOperateType!=='create'" v-model="formModelTripNum" :maxlength="8" size="mini" style="height: 20px;" :disabled="true" />
|
||||||
<el-input v-if="trainOperateType==='create'" v-model="formModelNewTrip" :maxlength="7" size="mini" style="height: 20px;" />
|
<el-input v-if="trainOperateType==='create'" v-model="formModelNewTrip" :maxlength="8" size="mini" style="height: 20px;" />
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row style="display: flex;align-items: center;">
|
<el-row style="display: flex;align-items: center;">
|
||||||
@ -250,8 +250,8 @@ export default {
|
|||||||
return (this.cmdType == CMD.Section.CMD_SECTION_SET_LIMIT_SPEED || this.cmdType == CMD.Switch.CMD_SWITCH_SET_LIMIT_SPEED) && this.speedShowCon;
|
return (this.cmdType == CMD.Section.CMD_SECTION_SET_LIMIT_SPEED || this.cmdType == CMD.Switch.CMD_SWITCH_SET_LIMIT_SPEED) && this.speedShowCon;
|
||||||
},
|
},
|
||||||
trainCommitDisabled() {
|
trainCommitDisabled() {
|
||||||
return (this.trainOperateType === 'create' && this.formModelNewTrip && this.formModelNewTrip.length === 7 && this.formModelNewGroup && this.formModelNewGroup.length === 6) ||
|
return (this.trainOperateType === 'create' && this.formModelNewTrip && this.formModelNewTrip.length === 8 && this.formModelNewGroup && this.formModelNewGroup.length === 6) ||
|
||||||
(this.trainOperateType === 'update' && this.formModelNewTrip && this.formModelNewTrip.length === 7) || (this.trainOperateType === 'delete') ||
|
(this.trainOperateType === 'update' && this.formModelNewTrip && this.formModelNewTrip.length === 8) || (this.trainOperateType === 'delete') ||
|
||||||
(this.trainOperateType === 'move' && this.formModelNewSection);
|
(this.trainOperateType === 'move' && this.formModelNewSection);
|
||||||
},
|
},
|
||||||
handleSectionList() {
|
handleSectionList() {
|
||||||
@ -276,7 +276,7 @@ export default {
|
|||||||
if (this.selected._type && !this.trainOperationShow) {
|
if (this.selected._type && !this.trainOperationShow) {
|
||||||
const control = this.getStationControl(this.selected);
|
const control = this.getStationControl(this.selected);
|
||||||
const type = State2SimulationMap[this.$store.state.training.prdType];
|
const type = State2SimulationMap[this.$store.state.training.prdType];
|
||||||
if (control.controlMode != type) {
|
if (control && control.controlMode != type) {
|
||||||
this.clearAllMenuShow();
|
this.clearAllMenuShow();
|
||||||
if (type == 'Center' && this.selected._type == 'Station') {
|
if (type == 'Center' && this.selected._type == 'Station') {
|
||||||
this.selectedObj = this.actualSelected;
|
this.selectedObj = this.actualSelected;
|
||||||
@ -787,7 +787,7 @@ export default {
|
|||||||
this.$store.state.map.activeTrainList.forEach(trainCode => {
|
this.$store.state.map.activeTrainList.forEach(trainCode => {
|
||||||
const trainModel = this.$store.getters['map/getDeviceByCode'](trainCode);
|
const trainModel = this.$store.getters['map/getDeviceByCode'](trainCode);
|
||||||
if (trainModel && trainModel.sectionCode === this.selectedObj.code) {
|
if (trainModel && trainModel.sectionCode === this.selectedObj.code) {
|
||||||
this.formModelTripNum = trainModel.destinationCode + (trainModel.serviceNumber.substring(1)) + (trainModel.tripNumber.substring(1));
|
this.formModelTripNum = trainModel.destinationCode + trainModel.serviceNumber + trainModel.tripNumber;
|
||||||
this.trainModel = trainModel;
|
this.trainModel = trainModel;
|
||||||
this.formModelNewTrip = '';
|
this.formModelNewTrip = '';
|
||||||
}
|
}
|
||||||
@ -815,17 +815,18 @@ export default {
|
|||||||
};
|
};
|
||||||
if (this.trainOperateType === 'update') {
|
if (this.trainOperateType === 'update') {
|
||||||
params.groupNumber = this.trainModel.groupNumber;
|
params.groupNumber = this.trainModel.groupNumber;
|
||||||
params.serviceNumber = '0' + this.formModelNewTrip.slice(3, 5);
|
params.serviceNumber = '0' + this.formModelNewTrip.slice(3, 6);
|
||||||
params.tripNumber = '0' + this.formModelNewTrip.slice(5, 7);
|
params.tripNumber = this.formModelNewTrip.slice(6, 8);
|
||||||
step.cmdType = CMD.TrainWindow.CMD_TRAIN_SET_PLAN;
|
step.cmdType = CMD.TrainWindow.CMD_TRAIN_SET_PLAN;
|
||||||
step.operation = OperationEvent.Train.setPlanTrainId.menu.operation;
|
step.operation = OperationEvent.Train.setPlanTrainId.menu.operation;
|
||||||
step.param = params;
|
step.param = params;
|
||||||
} else if (this.trainOperateType === 'create') {
|
} else if (this.trainOperateType === 'create') {
|
||||||
params.sectionCode = this.selectedObj.code;
|
params.sectionCode = this.selectedObj.code;
|
||||||
params.groupNumber = this.formModelNewGroup;
|
params.groupNumber = this.formModelNewGroup.slice(0, 3);
|
||||||
params.dn = this.formModelNewTrip.slice(0, 3);
|
params.dn = this.formModelNewTrip.slice(0, 3);
|
||||||
params.sn = '0' + this.formModelNewTrip.slice(3, 5);
|
params.sn = this.formModelNewTrip.slice(3, 6);
|
||||||
params.tn = '0' + this.formModelNewTrip.slice(5, 7);
|
params.tn = this.formModelNewTrip.slice(6, 8);
|
||||||
|
params.cn = this.formModelNewGroup.slice(3, 6);
|
||||||
step.cmdType = CMD.TrainWindow.CMD_TRAIN_ADD_TRAIN_TRACE;
|
step.cmdType = CMD.TrainWindow.CMD_TRAIN_ADD_TRAIN_TRACE;
|
||||||
step.operation = OperationEvent.Train.addTrainId.menu.operation;
|
step.operation = OperationEvent.Train.addTrainId.menu.operation;
|
||||||
step.param = params;
|
step.param = params;
|
||||||
|
@ -83,6 +83,7 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import {getAlarmList, confirmAlarm} from '@/api/simulation';
|
import {getAlarmList, confirmAlarm} from '@/api/simulation';
|
||||||
|
import {deviceFaultMap} from '@/scripts/cmdPlugin/Config';
|
||||||
export default {
|
export default {
|
||||||
name: 'AlarmHmi',
|
name: 'AlarmHmi',
|
||||||
data() {
|
data() {
|
||||||
@ -142,6 +143,11 @@ export default {
|
|||||||
handleDeviceName(code) {
|
handleDeviceName(code) {
|
||||||
const device = this.$store.getters['map/getDeviceByCode'](code);
|
const device = this.$store.getters['map/getDeviceByCode'](code);
|
||||||
return device.name;
|
return device.name;
|
||||||
|
},
|
||||||
|
handleFaultDescription(row) {
|
||||||
|
const device = this.$store.getters['map/getDeviceByCode'](row.deviceCode);
|
||||||
|
const faultName = deviceFaultMap[device._type][row.description];
|
||||||
|
return `${device.name}-${faultName}`;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -38,7 +38,11 @@
|
|||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="code" label="故障号" />
|
<el-table-column prop="code" label="故障号" />
|
||||||
<el-table-column prop="description" label="故障描述" />
|
<el-table-column prop="description" label="故障描述" width="150px">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<span>{{ handleFaultDescription(scope.row) }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column prop="recover" label="已恢复">
|
<el-table-column prop="recover" label="已恢复">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-checkbox v-model="scope.row.recovered" :disabled="true" />
|
<el-checkbox v-model="scope.row.recovered" :disabled="true" />
|
||||||
@ -60,7 +64,7 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import {getAlarmList} from '@/api/simulation';
|
import {getAlarmList} from '@/api/simulation';
|
||||||
import {deviceType} from '@/scripts/cmdPlugin/Config';
|
import {deviceType, deviceFaultMap} from '@/scripts/cmdPlugin/Config';
|
||||||
import {confirmAlarm} from '@/api/simulation';
|
import {confirmAlarm} from '@/api/simulation';
|
||||||
export default {
|
export default {
|
||||||
name: 'AlarmLow',
|
name: 'AlarmLow',
|
||||||
@ -112,6 +116,11 @@ export default {
|
|||||||
handleDeviceName(code) {
|
handleDeviceName(code) {
|
||||||
const device = this.$store.getters['map/getDeviceByCode'](code);
|
const device = this.$store.getters['map/getDeviceByCode'](code);
|
||||||
return device.name;
|
return device.name;
|
||||||
|
},
|
||||||
|
handleFaultDescription(row) {
|
||||||
|
const device = this.$store.getters['map/getDeviceByCode'](row.deviceCode);
|
||||||
|
const faultName = deviceFaultMap[device._type][row.description];
|
||||||
|
return `${device.name}-${faultName}`;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
150
src/jmapNew/theme/nanjing_02/menus/dialog/ttl.vue
Normal file
150
src/jmapNew/theme/nanjing_02/menus/dialog/ttl.vue
Normal file
@ -0,0 +1,150 @@
|
|||||||
|
<template>
|
||||||
|
<el-dialog
|
||||||
|
class="haerbin-01__systerm ttl"
|
||||||
|
:title="title"
|
||||||
|
:modal="false"
|
||||||
|
:width="'900px'"
|
||||||
|
:visible.sync="show"
|
||||||
|
:before-close="doClose"
|
||||||
|
>
|
||||||
|
<div class="actualTimetable">
|
||||||
|
<div class="actualTimetableT">
|
||||||
|
<div class="actualTimetableTtext">实效时刻表</div>
|
||||||
|
<div class="actualTimetableTLine" />
|
||||||
|
</div>
|
||||||
|
<div class="actualTimetableForm">
|
||||||
|
<div class="actualTimeFormEach">
|
||||||
|
<span>日期: </span>
|
||||||
|
<span class="actualTimeFormValue">28.08.2008</span>
|
||||||
|
</div>
|
||||||
|
<div class="actualTimeFormEach">
|
||||||
|
<span>名称: </span>
|
||||||
|
<span class="actualTimeFormValue">SX0807</span>
|
||||||
|
</div>
|
||||||
|
<div class="actualTimeFormEach">
|
||||||
|
<span>描述: </span>
|
||||||
|
<span class="actualTimeFormValue">changed minimum of dwell time</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="defaultTimetable">
|
||||||
|
<div class="defaultTimetableT">
|
||||||
|
<div class="defaultTimetableTtext">预设时刻表</div>
|
||||||
|
<div class="defaultTimetableTLine" />
|
||||||
|
</div>
|
||||||
|
<div class="defaultTimetableM">
|
||||||
|
<el-table :data="tableData" style="width: 100%;" height="300" border class="defaultTimetab">
|
||||||
|
<el-table-column prop="date" label="日期" width="110" />
|
||||||
|
<el-table-column prop="name" label="名称" />
|
||||||
|
<el-table-column prop="description" label="描述" />
|
||||||
|
<el-table-column prop="status" label=" 状态" width="70" />
|
||||||
|
</el-table>
|
||||||
|
</div>
|
||||||
|
<div class="defaultTimetableB">
|
||||||
|
<div id="defaultClearSele" class="defaultTimetableBtn disabled">清除所选</div>
|
||||||
|
<div id="defaultClearAll" class="defaultTimetableBtn disabled">清除全部</div>
|
||||||
|
<div id="defaultShowTime" class="defaultTimetableBtn">显示时刻表</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="ttlButtonGroup">
|
||||||
|
<div id="changeActual" class="defaultTimetableBtn">更换实效时刻表</div>
|
||||||
|
<div id="changeDefault" class="defaultTimetableBtn">更换预设时刻表</div>
|
||||||
|
<div id="settingTimetable" class="defaultTimetableBtn disabled">设定</div>
|
||||||
|
<div id="resetTimetable" class="defaultTimetableBtn disabled">重设</div>
|
||||||
|
<div id="closeTimetable" class="defaultTimetableBtn" @click="doClose">关闭</div>
|
||||||
|
</div>
|
||||||
|
</el-dialog>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name:'TTLDialog',
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
dialogShow:false,
|
||||||
|
tableData:[
|
||||||
|
{date:'28.08.2008', name:'SX0807', description:'changed minimum of dwell time', status:'有效'},
|
||||||
|
{date:'29.08.2008', name:'SX0807', description:'changed minimum of dwell time', status:'无效'},
|
||||||
|
{date:'30.08.2008', name:'SX0807', description:'changed minimum of dwell time', status:'无效'},
|
||||||
|
{date:'31.08.2008', name:'SX0807', description:'changed minimum of dwell time', status:'无效'},
|
||||||
|
{date:'01.09.2008', name:'SX0807', description:'changed minimum of dwell time', status:'无效'}
|
||||||
|
]
|
||||||
|
};
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
show() {
|
||||||
|
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||||
|
},
|
||||||
|
title() {
|
||||||
|
return '时刻表';
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
doShow() {
|
||||||
|
this.dialogShow = true;
|
||||||
|
},
|
||||||
|
doClose() {
|
||||||
|
this.dialogShow = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</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>
|
@ -101,7 +101,7 @@
|
|||||||
<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;">列监</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;">运图</div>
|
||||||
<div class="div-simulate-button" style="width: 55px;">时刻表</div>
|
<div class="div-simulate-button" style="width: 55px;" @click="ttlClick">时刻表</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;">调度</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;">站控</div>
|
||||||
@ -172,6 +172,7 @@
|
|||||||
<log-detail ref="logDetail" />
|
<log-detail ref="logDetail" />
|
||||||
<rps-dialog ref="rpsDialog" />
|
<rps-dialog ref="rpsDialog" />
|
||||||
<tra-dialog ref="traDialog" />
|
<tra-dialog ref="traDialog" />
|
||||||
|
<ttl-dialog ref="ttlDialog" />
|
||||||
<tro-dialog ref="troDialog" @goTroDetail="goTroDetail" />
|
<tro-dialog ref="troDialog" @goTroDetail="goTroDetail" />
|
||||||
<tro-detail-dialog ref="troDetailDialog" :station-list="stationList" @goTroDialog="troClick" />
|
<tro-detail-dialog ref="troDetailDialog" :station-list="stationList" @goTroDialog="troClick" />
|
||||||
<audio id="buzzer" controls loop="loop" style="width: 0;height: 0">
|
<audio id="buzzer" controls loop="loop" style="width: 0;height: 0">
|
||||||
@ -191,6 +192,7 @@ import AlarmTableLow from './menuDialog/alarmTableLow';
|
|||||||
import TrainControl from './dialog/trainControl';
|
import TrainControl from './dialog/trainControl';
|
||||||
import RpsDialog from './dialog/rps';
|
import RpsDialog from './dialog/rps';
|
||||||
import TraDialog from './dialog/tra';
|
import TraDialog from './dialog/tra';
|
||||||
|
import TtlDialog from './dialog/ttl';
|
||||||
|
|
||||||
import TroDialog from './dialog/tro';
|
import TroDialog from './dialog/tro';
|
||||||
import TroDetailDialog from './dialog/troDetail';
|
import TroDetailDialog from './dialog/troDetail';
|
||||||
@ -206,6 +208,7 @@ export default {
|
|||||||
RpsDialog,
|
RpsDialog,
|
||||||
TroDialog,
|
TroDialog,
|
||||||
TraDialog,
|
TraDialog,
|
||||||
|
TtlDialog,
|
||||||
TroDetailDialog
|
TroDetailDialog
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
@ -499,6 +502,9 @@ export default {
|
|||||||
traClick() {
|
traClick() {
|
||||||
this.$refs.traDialog.doShow();
|
this.$refs.traDialog.doShow();
|
||||||
},
|
},
|
||||||
|
ttlClick() {
|
||||||
|
this.$refs.ttlDialog.doShow();
|
||||||
|
},
|
||||||
goTroDetail(deviceCode) {
|
goTroDetail(deviceCode) {
|
||||||
this.$refs.troDetailDialog.doShow(deviceCode);
|
this.$refs.troDetailDialog.doShow(deviceCode);
|
||||||
},
|
},
|
||||||
|
@ -466,8 +466,8 @@ export default {
|
|||||||
if (this.selectedObj._type && (val._event == MouseEvent.Left || (val._event == MouseEvent.Right && this.$store.state.training.prdType === '01'))) {
|
if (this.selectedObj._type && (val._event == MouseEvent.Left || (val._event == MouseEvent.Right && this.$store.state.training.prdType === '01'))) {
|
||||||
const type = this.State2SimulationMap[this.$store.state.training.prdType];
|
const type = this.State2SimulationMap[this.$store.state.training.prdType];
|
||||||
this.modeMatch = this.stationContorl.controlMode == type;
|
this.modeMatch = this.stationContorl.controlMode == type;
|
||||||
// 道岔区段 道岔计轴区段 都是道岔操作
|
// 道岔区段 是道岔操作
|
||||||
if (this.selectedObj._type == 'Section' && (this.selectedObj.type == '03' || this.selectedObj.type == '04')) {
|
if (this.selectedObj._type == 'Section' && this.selectedObj.type == '03') {
|
||||||
this.selectedObj = this.selectedObj.switch;
|
this.selectedObj = this.selectedObj.switch;
|
||||||
}
|
}
|
||||||
this.canCommand = true;
|
this.canCommand = true;
|
||||||
|
@ -9,9 +9,8 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import Vue from 'vue';
|
|
||||||
import Jlmap from '@/jmapNew/map';
|
import Jlmap from '@/jmapNew/map';
|
||||||
import { parser } from '@/jmapNew/utils/parser';
|
import { parserFactory, ParserType } from '@/jmapNew/parser';
|
||||||
import { deepAssign } from '@/utils/index';
|
import { deepAssign } from '@/utils/index';
|
||||||
import deviceType from '@/jmapNew/constant/deviceType';
|
import deviceType from '@/jmapNew/constant/deviceType';
|
||||||
|
|
||||||
@ -113,7 +112,8 @@ export default {
|
|||||||
};
|
};
|
||||||
|
|
||||||
if (this.mapData.skinVO) {
|
if (this.mapData.skinVO) {
|
||||||
this.mapDevice = parser(this.mapData, this.mapData.skinVO.code, this.map.getShowConfig());
|
const parser = parserFactory(ParserType.Graph.value);
|
||||||
|
this.mapDevice = parser.parser(this.mapData, this.mapData.skinVO.code, this.map.getShowConfig());
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
loadData() {
|
loadData() {
|
||||||
@ -199,22 +199,11 @@ export default {
|
|||||||
// this.map.updatePrdType(list, showMode, val);
|
// this.map.updatePrdType(list, showMode, val);
|
||||||
// },
|
// },
|
||||||
setShowStation(stationCode, setCenter) {
|
setShowStation(stationCode, setCenter) {
|
||||||
const nameList = Object.keys(this.$store.state.map.map);
|
const list = [];
|
||||||
let list = [];
|
const mapDevice = this.$store.state.map.mapDevice;
|
||||||
nameList.forEach((item) => {
|
for (const key in mapDevice) {
|
||||||
if (
|
list.push(mapDevice[key]);
|
||||||
this.$store.state.map.map[item] &&
|
|
||||||
this.$store.state.map.map[item].constructor === Array
|
|
||||||
) {
|
|
||||||
if (item === 'trainList') {
|
|
||||||
this.$store.state.map.map[item].forEach((elem) => {
|
|
||||||
elem && list.push(elem);
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
list = [...list, ...this.$store.state.map.map[item]];
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
});
|
|
||||||
this.map.updateShowStation(list, stationCode);
|
this.map.updateShowStation(list, stationCode);
|
||||||
!setCenter && this.setCenter(stationCode);
|
!setCenter && this.setCenter(stationCode);
|
||||||
}
|
}
|
||||||
|
@ -162,9 +162,10 @@ export default {
|
|||||||
this.tableData.forEach(item => {
|
this.tableData.forEach(item => {
|
||||||
const centralizedStationCode = this.stationCentralizedMap[item.code];
|
const centralizedStationCode = this.stationCentralizedMap[item.code];
|
||||||
const centralizedStation = this.$store.getters['map/getDeviceByCode'](centralizedStationCode);
|
const centralizedStation = this.$store.getters['map/getDeviceByCode'](centralizedStationCode);
|
||||||
|
const station = this.$store.getters['map/getDeviceByCode'](item.code);
|
||||||
if (this.$store.state.training.prdType === '01' && centralizedStation.controlMode === 'Center') {
|
if (this.$store.state.training.prdType === '01' && centralizedStation.controlMode === 'Center') {
|
||||||
item.apply = false;
|
item.apply = false;
|
||||||
} else if (item.controller !== this.memberId) {
|
} else if (station.controller !== this.memberId) {
|
||||||
item.apply = true;
|
item.apply = true;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -178,9 +179,10 @@ export default {
|
|||||||
this.tableData.forEach(item => {
|
this.tableData.forEach(item => {
|
||||||
const centralizedStationCode = this.stationCentralizedMap[item.code];
|
const centralizedStationCode = this.stationCentralizedMap[item.code];
|
||||||
const centralizedStation = this.$store.getters['map/getDeviceByCode'](centralizedStationCode);
|
const centralizedStation = this.$store.getters['map/getDeviceByCode'](centralizedStationCode);
|
||||||
|
const station = this.$store.getters['map/getDeviceByCode'](item.code);
|
||||||
if (this.$store.state.training.prdType === '01' && centralizedStation.controlMode === 'Center') {
|
if (this.$store.state.training.prdType === '01' && centralizedStation.controlMode === 'Center') {
|
||||||
item.apply = false;
|
item.apply = false;
|
||||||
} else if (item.controller === this.memberId) {
|
} else if (station.controller === this.memberId) {
|
||||||
item.release = true;
|
item.release = true;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -11,10 +11,12 @@
|
|||||||
<passive-alarm ref="passiveAlarm" />
|
<passive-alarm ref="passiveAlarm" />
|
||||||
<passive-contorl ref="passiveControl" pop-class="xian-01__systerm" />
|
<passive-contorl ref="passiveControl" pop-class="xian-01__systerm" />
|
||||||
<passive-Timeout ref="passiveTimeout" />
|
<passive-Timeout ref="passiveTimeout" />
|
||||||
|
<pop-menu ref="popMenu" :menu="menu" pop-class="preview_new_pop" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import { DeviceMenu } from '@/scripts/ConstDic';
|
||||||
import { mapGetters } from 'vuex';
|
import { mapGetters } from 'vuex';
|
||||||
import MenuSignal from './menuSignal';
|
import MenuSignal from './menuSignal';
|
||||||
import MenuStationStand from './menuStationStand';
|
import MenuStationStand from './menuStationStand';
|
||||||
@ -27,6 +29,7 @@ import MenuStationTurnBack from './menuStationTurnBack';
|
|||||||
import PassiveAlarm from './passiveDialog/alarm';
|
import PassiveAlarm from './passiveDialog/alarm';
|
||||||
import PassiveContorl from '@/jmapNew/theme/components/menus/passiveDialog/control';
|
import PassiveContorl from '@/jmapNew/theme/components/menus/passiveDialog/control';
|
||||||
import PassiveTimeout from './passiveDialog/timeout';
|
import PassiveTimeout from './passiveDialog/timeout';
|
||||||
|
import PopMenu from '@/components/PopMenu';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'Menus',
|
name: 'Menus',
|
||||||
@ -41,7 +44,8 @@ export default {
|
|||||||
PassiveAlarm,
|
PassiveAlarm,
|
||||||
MenuStationTurnBack,
|
MenuStationTurnBack,
|
||||||
PassiveContorl,
|
PassiveContorl,
|
||||||
PassiveTimeout
|
PassiveTimeout,
|
||||||
|
PopMenu
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
selected: {
|
selected: {
|
||||||
@ -51,6 +55,12 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
menu: [],
|
||||||
|
menuNormal: []
|
||||||
|
};
|
||||||
|
},
|
||||||
computed: {
|
computed: {
|
||||||
...mapGetters('config', [
|
...mapGetters('config', [
|
||||||
'width'
|
'width'
|
||||||
@ -62,6 +72,13 @@ export default {
|
|||||||
watch: {
|
watch: {
|
||||||
isShowBar(val) {
|
isShowBar(val) {
|
||||||
val && this.$store.dispatch('config/updateMenuBar');
|
val && this.$store.dispatch('config/updateMenuBar');
|
||||||
|
},
|
||||||
|
'$store.state.menuOperation.menuCount': function (val) {
|
||||||
|
if (this.$store.getters['menuOperation/checkDialogIsOpen'](DeviceMenu.Cancel) && this.$store.state.training.prdType == '02') {
|
||||||
|
this.popDoShow(this.$store.state.menuOperation.menuPosition);
|
||||||
|
} else {
|
||||||
|
this.popDoClose();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
@ -84,6 +101,61 @@ export default {
|
|||||||
},
|
},
|
||||||
beforeDestroy() {
|
beforeDestroy() {
|
||||||
window.onclick = function (e) {};
|
window.onclick = function (e) {};
|
||||||
|
},
|
||||||
|
methods:{
|
||||||
|
popClickEvent() {
|
||||||
|
const self = this;
|
||||||
|
window.onclick = function (e) {
|
||||||
|
self.popDoClose();
|
||||||
|
};
|
||||||
|
},
|
||||||
|
popDoShow(point) {
|
||||||
|
this.popClickEvent();
|
||||||
|
this.initMenu();
|
||||||
|
if (this.$refs && this.$refs.popMenu && this.menu && this.menu.length) {
|
||||||
|
this.$refs.popMenu.resetShowPosition(point);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
initMenu() {
|
||||||
|
this.menuNormal = [];
|
||||||
|
this.$store.state.map.map.stationList.forEach(station => {
|
||||||
|
if (station.relStationCodeList && station.relStationCodeList.length) {
|
||||||
|
const node = {
|
||||||
|
label: station.name,
|
||||||
|
children: []
|
||||||
|
};
|
||||||
|
const relStationCodeList = [...station.relStationCodeList];
|
||||||
|
relStationCodeList.push(station.code);
|
||||||
|
relStationCodeList.sort((a, b) => {
|
||||||
|
const stationA = this.$store.getters['map/getDeviceByCode'](a);
|
||||||
|
const stationB = this.$store.getters['map/getDeviceByCode'](b);
|
||||||
|
return stationA.kmRange - stationB.kmRange;
|
||||||
|
});
|
||||||
|
relStationCodeList.forEach(item => {
|
||||||
|
const next = this.$store.getters['map/getDeviceByCode'](item);
|
||||||
|
node.children.push({
|
||||||
|
code: next.code,
|
||||||
|
label: next.name,
|
||||||
|
handler: this.mapLocation
|
||||||
|
});
|
||||||
|
});
|
||||||
|
this.menuNormal.push(node);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
this.menu = [...this.menuNormal];
|
||||||
|
},
|
||||||
|
popDoClose() {
|
||||||
|
if (this.$refs && this.$refs.popMenu) {
|
||||||
|
this.$refs.popMenu.close();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 设置地图定位
|
||||||
|
mapLocation(item) {
|
||||||
|
if (item) {
|
||||||
|
this.$store.dispatch('training/updateOffsetStationCode', { offsetStationCode: item.code });
|
||||||
|
this.popDoClose();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
@ -64,6 +64,42 @@ export const deviceFaultType = {
|
|||||||
{label: '供电故障', value: 'FAULT'}
|
{label: '供电故障', value: 'FAULT'}
|
||||||
]
|
]
|
||||||
};
|
};
|
||||||
|
/** 设备故障类型map */
|
||||||
|
export const deviceFaultMap = {
|
||||||
|
Section: {
|
||||||
|
FAULT: '计轴故障',
|
||||||
|
CBTC_OCCUPIED_FAULT: '通信车占用'
|
||||||
|
},
|
||||||
|
Signal: {
|
||||||
|
MAIN_FILAMENT_BROKEN: '熔断'
|
||||||
|
},
|
||||||
|
Switch: {
|
||||||
|
SPLIT: '失表',
|
||||||
|
NORMAL_SPLIT: '定位失表',
|
||||||
|
REVERSE_SPLIT: '反位失表',
|
||||||
|
SQUEEZE: '挤岔',
|
||||||
|
CBTC_OCCUPIED_FAULT: '通信车占用',
|
||||||
|
AXLE_FAULT: '计轴故障'
|
||||||
|
},
|
||||||
|
StationStand: {
|
||||||
|
PSD_CANNOT_BE_CLOSED: '屏蔽门无法关闭',
|
||||||
|
PSD_CANNOT_BE_OPENED: '屏蔽门无法开启'
|
||||||
|
},
|
||||||
|
ZcControl: {
|
||||||
|
FAULT: 'zc故障'
|
||||||
|
},
|
||||||
|
Station: {
|
||||||
|
INTERLOCK_MACHINE_FAULT: '联锁机故障',
|
||||||
|
ATS_FAULT: 'ATS故障'
|
||||||
|
},
|
||||||
|
Train: {
|
||||||
|
COMMUNICATION_ABNORMAL: '通信异常',
|
||||||
|
DRIVE_FAULT: '驾驶故障'
|
||||||
|
},
|
||||||
|
Power: {
|
||||||
|
FAULT: '供电故障'
|
||||||
|
}
|
||||||
|
};
|
||||||
/** 设备类型 */
|
/** 设备类型 */
|
||||||
export const deviceType = {
|
export const deviceType = {
|
||||||
Section: '区段',
|
Section: '区段',
|
||||||
|
@ -4,9 +4,9 @@ export function getBaseUrl() {
|
|||||||
// BASE_API = 'https://joylink.club/jlcloud';
|
// 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.8.107:9000'; // 袁琪
|
||||||
// BASE_API = 'http://192.168.3.83:9000'; // 旭强 有线
|
BASE_API = 'http://192.168.3.83:9000'; // 旭强 有线
|
||||||
// BASE_API = 'http://192.168.8.114:9000'; // 旭强 无线
|
// BASE_API = 'http://192.168.8.114:9000'; // 旭强 无线
|
||||||
BASE_API = 'http://192.168.3.120:9000'; // 张赛
|
// BASE_API = 'http://192.168.3.120:9000'; // 张赛
|
||||||
// BASE_API = 'http://192.168.8.140:9000'; // 杜康
|
// BASE_API = 'http://192.168.8.140:9000'; // 杜康
|
||||||
// BASE_API = 'http://b29z135112.zicp.vip';
|
// BASE_API = 'http://b29z135112.zicp.vip';
|
||||||
// BASE_API = 'http://2925963m2a.zicp.vip'; // 杜康
|
// BASE_API = 'http://2925963m2a.zicp.vip'; // 杜康
|
||||||
|
@ -56,12 +56,13 @@ StompClient.prototype = {
|
|||||||
that.status = false;
|
that.status = false;
|
||||||
console.info(`通信连接已断开!`);
|
console.info(`通信连接已断开!`);
|
||||||
checkLoginLine().then((resp) => {
|
checkLoginLine().then((resp) => {
|
||||||
if (resp.code == 200) {
|
if (resp.code !== 40004) {
|
||||||
that.count++;
|
that.count++;
|
||||||
that.reconnect(that.count);
|
that.reconnect(that.count);
|
||||||
}
|
}
|
||||||
}).catch((err) => {
|
}).catch((err) => {
|
||||||
that.logOut(err);
|
that.count++;
|
||||||
|
that.reconnect(that.count);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
@ -9,7 +9,9 @@
|
|||||||
<el-input v-model="lessonData.lessonData.lessonProgress[lessonEditIndex].progressName" placeholder="请输入内容"></el-input>
|
<el-input v-model="lessonData.lessonData.lessonProgress[lessonEditIndex].progressName" placeholder="请输入内容"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="场景id:" >
|
||||||
|
<el-input v-model="lessonData.lessonData.lessonProgress[lessonEditIndex].id" placeholder="请输入内容"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="三维场景设置:">
|
<el-form-item label="三维场景设置:">
|
||||||
<el-select v-model="lessonData.lessonData.lessonProgress[lessonEditIndex].progressScene" placeholder="请选择场景">
|
<el-select v-model="lessonData.lessonData.lessonProgress[lessonEditIndex].progressScene" placeholder="请选择场景">
|
||||||
@ -165,6 +167,10 @@
|
|||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="课程场景id:" v-if="selected.sceneId" >
|
||||||
|
<el-input v-model="selected.sceneId" ></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="内容:" v-if="selected.text">
|
<el-form-item label="内容:" v-if="selected.text">
|
||||||
<el-input v-model="selected.text" ></el-input>
|
<el-input v-model="selected.text" ></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
@ -81,6 +81,10 @@
|
|||||||
<el-row>
|
<el-row>
|
||||||
当前课程信息
|
当前课程信息
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
|
<el-row>
|
||||||
|
<el-button @click="saveLesson3dData">保存当前课程</el-button>
|
||||||
|
</el-row>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-button @click="setupclick">课程设置</el-button>
|
<el-button @click="setupclick">课程设置</el-button>
|
||||||
</el-row>
|
</el-row>
|
||||||
@ -88,8 +92,9 @@
|
|||||||
<el-button @click="jumpPlayer">预览课程</el-button>
|
<el-button @click="jumpPlayer">预览课程</el-button>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-button @click="saveLesson3dData">保存当前课程</el-button>
|
<el-button @click="back">退出编辑器</el-button>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<Pro-Perty
|
<Pro-Perty
|
||||||
@ -298,6 +303,9 @@
|
|||||||
unSubmit(){
|
unSubmit(){
|
||||||
this.showSetup = false;
|
this.showSetup = false;
|
||||||
},
|
},
|
||||||
|
back(){
|
||||||
|
history.go(-1);
|
||||||
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -193,7 +193,6 @@
|
|||||||
for(let i=0;i<this.jobPaneData.dataList.length;i++){
|
for(let i=0;i<this.jobPaneData.dataList.length;i++){
|
||||||
if(job == this.jobPaneData.dataList[i].name){
|
if(job == this.jobPaneData.dataList[i].name){
|
||||||
this.nowRole = this.jobPaneData.dataList[i].value;
|
this.nowRole = this.jobPaneData.dataList[i].value;
|
||||||
console.log(this.nowRole);
|
|
||||||
this.jl3d.initNowRole(this.nowRole);
|
this.jl3d.initNowRole(this.nowRole);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="nextbuttondiv"
|
<div class="nextbuttondiv"
|
||||||
:style="{'background-image': 'url('+staticImg+'/lesson3d/nextbutton.png)'}"
|
:style="{'background-image': 'url('+staticImg+'/lesson3d/nextbutton.png)'}"
|
||||||
v-if="lessonData.lessonData.lessonProgress[lessonPlayIndex].explainPane.explainPaneType=='jump'|| (lessonData.lessonData.lessonProgress[lessonPlayIndex].explainPane.explainPaneType == 'limitjump' && lessonData.lessonData.lessonProgress[lessonPlayIndex].value == nowRole) "
|
v-if="lessonData.lessonData.lessonProgress[lessonPlayIndex].explainPane.explainPaneType=='jump'|| (lessonData.lessonData.lessonProgress[lessonPlayIndex].explainPane.explainPaneType == 'limitjump' && !(lessonData.lessonData.lessonProgress[lessonPlayIndex].roleName == nowRole)) "
|
||||||
@click="explainJump"></div>
|
@click="explainJump"></div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@ -54,6 +54,7 @@
|
|||||||
// lesson3dSelect('toolproperty','explainpane');
|
// lesson3dSelect('toolproperty','explainpane');
|
||||||
// },
|
// },
|
||||||
explainJump(){
|
explainJump(){
|
||||||
|
|
||||||
if(this.lessonData.lessonData.lessonProgress[this.lessonPlayIndex].explainPane.explainPaneType == "jump" || (this.lessonData.lessonData.lessonProgress[this.lessonPlayIndex].explainPane.explainPaneType == "limitjump")){
|
if(this.lessonData.lessonData.lessonProgress[this.lessonPlayIndex].explainPane.explainPaneType == "jump" || (this.lessonData.lessonData.lessonProgress[this.lessonPlayIndex].explainPane.explainPaneType == "limitjump")){
|
||||||
this.$emit('jumpEvent','jump',this.lessonData.lessonData.lessonProgress[this.lessonPlayIndex].explainPane);
|
this.$emit('jumpEvent','jump',this.lessonData.lessonData.lessonProgress[this.lessonPlayIndex].explainPane);
|
||||||
}
|
}
|
||||||
|
@ -215,16 +215,11 @@ export default {
|
|||||||
showMode = '02';
|
showMode = '02';
|
||||||
}
|
}
|
||||||
|
|
||||||
const nameList = Object.keys(this.$store.state.map.map || {});
|
const list = [];
|
||||||
let list = [];
|
const mapDevice = this.$store.state.map.mapDevice;
|
||||||
nameList.forEach(item => {
|
for (const key in mapDevice) {
|
||||||
if (item !== 'skinVO') {
|
list.push(mapDevice[key]);
|
||||||
const data = this.$store.state.map.map[item];
|
|
||||||
if (data && data.constructor === Array) {
|
|
||||||
list = [...list, ...data];
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
if (swch == '01') {
|
if (swch == '01') {
|
||||||
this.$jlmap.updateShowStation(list, this.$store.state.training.centerStationCode); // 显示全部元素
|
this.$jlmap.updateShowStation(list, this.$store.state.training.centerStationCode); // 显示全部元素
|
||||||
|
@ -195,19 +195,11 @@ export default {
|
|||||||
});
|
});
|
||||||
const deviceId = member ? member.deviceId : '';
|
const deviceId = member ? member.deviceId : '';
|
||||||
if (deviceId) {
|
if (deviceId) {
|
||||||
const nameList = Object.keys(this.$store.state.map.map || {});
|
const list = [];
|
||||||
let list = [];
|
const mapDevice = this.$store.state.map.mapDevice;
|
||||||
nameList.forEach(item => {
|
for (const key in mapDevice[key]) {
|
||||||
if (this.$store.state.map.map[item] && this.$store.state.map.map[item].constructor === Array) {
|
list.push(mapDevice[key]);
|
||||||
if (item === 'trainList') {
|
|
||||||
this.$store.state.map.map[item].forEach(elem => {
|
|
||||||
elem && list.push(elem);
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
list = [...list, ...this.$store.state.map.map[item]];
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
});
|
|
||||||
this.$jlmap.updateShowStation(list, deviceId);
|
this.$jlmap.updateShowStation(list, deviceId);
|
||||||
}
|
}
|
||||||
this.$jlmap.setCenter(deviceId);
|
this.$jlmap.setCenter(deviceId);
|
||||||
|
@ -226,16 +226,11 @@ export default {
|
|||||||
showMode = '02';
|
showMode = '02';
|
||||||
}
|
}
|
||||||
|
|
||||||
const nameList = Object.keys(this.$store.state.map.map || {});
|
const list = [];
|
||||||
let list = [];
|
const mapDevice = this.$store.state.map.mapDevice;
|
||||||
nameList.forEach(item => {
|
for (const key in mapDevice) {
|
||||||
if (item !== 'skinVO') {
|
list.push(mapDevice[key]);
|
||||||
const data = this.$store.state.map.map[item];
|
|
||||||
if (data && data.constructor === Array) {
|
|
||||||
list = [...list, ...data];
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
if (swch == '01') {
|
if (swch == '01') {
|
||||||
this.$jlmap.updateShowStation(list, this.$store.state.training.centerStationCode); // 显示全部元素
|
this.$jlmap.updateShowStation(list, this.$store.state.training.centerStationCode); // 显示全部元素
|
||||||
|
@ -55,8 +55,6 @@ export default {
|
|||||||
switchStationMode(val) {
|
switchStationMode(val) {
|
||||||
assignUsersPlayRoles([{ userId: this.$store.state.user.id, memberId: val}], this.$route.query.group).then(resp => {
|
assignUsersPlayRoles([{ userId: this.$store.state.user.id, memberId: val}], this.$route.query.group).then(resp => {
|
||||||
this.showMemberId = val;
|
this.showMemberId = val;
|
||||||
const nameList = Object.keys(this.$store.state.map.map || {});
|
|
||||||
let list = [];
|
|
||||||
const member = this.$store.state.training.memberData[val];
|
const member = this.$store.state.training.memberData[val];
|
||||||
const station = this.$store.getters['map/getDeviceByCode'](member.deviceCode);
|
const station = this.$store.getters['map/getDeviceByCode'](member.deviceCode);
|
||||||
const lineCode = this.$store.getters['map/lineCode'];
|
const lineCode = this.$store.getters['map/lineCode'];
|
||||||
@ -67,17 +65,11 @@ export default {
|
|||||||
} else if (station) {
|
} else if (station) {
|
||||||
this.showStation = station.code;
|
this.showStation = station.code;
|
||||||
const showStationCode = this.stationCentralizedMap[station.code];
|
const showStationCode = this.stationCentralizedMap[station.code];
|
||||||
nameList.forEach(item => {
|
const mapDevice = this.$store.state.map.mapDevice;
|
||||||
if (this.$store.state.map.map[item] && this.$store.state.map.map[item].constructor === Array) {
|
const list = [];
|
||||||
if (item === 'trainList') {
|
for (const key in mapDevice) {
|
||||||
this.$store.state.map.map[item].forEach(elem => {
|
list.push(mapDevice[key]);
|
||||||
elem && list.push(elem);
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
list = [...list, ...this.$store.state.map.map[item]];
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
this.$jlmap.updateShowStation(list, showStationCode);
|
this.$jlmap.updateShowStation(list, showStationCode);
|
||||||
this.setCenter(showStationCode);
|
this.setCenter(showStationCode);
|
||||||
|
@ -503,19 +503,11 @@ export default {
|
|||||||
if (lineCode === '02' || lineCode === '05') {
|
if (lineCode === '02' || lineCode === '05') {
|
||||||
!setCenter && this.setCenter(stationCode);
|
!setCenter && this.setCenter(stationCode);
|
||||||
} else {
|
} else {
|
||||||
const nameList = Object.keys(this.$store.state.map.map);
|
const list = [];
|
||||||
let list = [];
|
const mapDevice = this.$store.state.map.mapDevice;
|
||||||
nameList.forEach(item => {
|
for (const key in mapDevice) {
|
||||||
if (this.$store.state.map.map[item] && this.$store.state.map.map[item].constructor === Array) {
|
list.push(mapDevice[key]);
|
||||||
if (item === 'trainList') {
|
|
||||||
this.$store.state.map.map[item].forEach(elem => {
|
|
||||||
elem && list.push(elem);
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
list = [...list, ...this.$store.state.map.map[item]];
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
this.$jlmap.updateShowStation(list, stationCode);
|
this.$jlmap.updateShowStation(list, stationCode);
|
||||||
!setCenter && this.setCenter(stationCode);
|
!setCenter && this.setCenter(stationCode);
|
||||||
|
@ -556,19 +556,11 @@ export default {
|
|||||||
if (lineCode === '02' || lineCode === '05') {
|
if (lineCode === '02' || lineCode === '05') {
|
||||||
this.$jlmap.setCenter(showStation);
|
this.$jlmap.setCenter(showStation);
|
||||||
} else {
|
} else {
|
||||||
const nameList = Object.keys(this.$store.state.map.map);
|
const list = [];
|
||||||
let list = [];
|
const mapDevice = this.$store.state.map.mapDevice;
|
||||||
nameList.forEach(item => {
|
for (const key in mapDevice) {
|
||||||
if (this.$store.state.map.map[item] && this.$store.state.map.map[item].constructor === Array) {
|
list.push(mapDevice[key]);
|
||||||
if (item === 'trainList') {
|
|
||||||
this.$store.state.map.map[item].forEach(elem => {
|
|
||||||
elem && list.push(elem);
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
list = [...list, ...this.$store.state.map.map[item]];
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
});
|
|
||||||
this.$jlmap.updateShowStation(list, showStation);
|
this.$jlmap.updateShowStation(list, showStation);
|
||||||
this.$jlmap.setCenter(showStation);
|
this.$jlmap.setCenter(showStation);
|
||||||
}
|
}
|
||||||
|
@ -8,7 +8,6 @@
|
|||||||
import MapCommon from './common/index';
|
import MapCommon from './common/index';
|
||||||
import { getToken } from '@/utils/auth';
|
import { getToken } from '@/utils/auth';
|
||||||
import { creatSubscribe, clearSubscribe, displayTopic, getTopic } from '@/utils/stomp';
|
import { creatSubscribe, clearSubscribe, displayTopic, getTopic } from '@/utils/stomp';
|
||||||
import { checkLoginLine } from '@/api/login';
|
|
||||||
import { getSimulationMemberList, getAllSimulationUser } from '@/api/simulation';
|
import { getSimulationMemberList, getAllSimulationUser } from '@/api/simulation';
|
||||||
import { getMemberListCommon, getUserListCommon } from '@/api/rtSimulation';
|
import { getMemberListCommon, getUserListCommon } from '@/api/rtSimulation';
|
||||||
import parseStatus from '@/utils/parseStatus';
|
import parseStatus from '@/utils/parseStatus';
|
||||||
@ -25,7 +24,6 @@ export default {
|
|||||||
stomp: null,
|
stomp: null,
|
||||||
currentMap: null,
|
currentMap: null,
|
||||||
ierval: null,
|
ierval: null,
|
||||||
checkLine: null,
|
|
||||||
mouseNum: 1,
|
mouseNum: 1,
|
||||||
mouseNumTime: 0,
|
mouseNumTime: 0,
|
||||||
mapBoxP: null,
|
mapBoxP: null,
|
||||||
@ -80,7 +78,6 @@ export default {
|
|||||||
this.mode = this.$route.params.mode || '';
|
this.mode = this.$route.params.mode || '';
|
||||||
this.currentMap = this.$refs.mapCommon;
|
this.currentMap = this.$refs.mapCommon;
|
||||||
this.groupModel = this.$route.query.group;
|
this.groupModel = this.$route.query.group;
|
||||||
this.checkLoginLineTimer(); // 心跳发送
|
|
||||||
this.checkMouseStatusTimer(); // 鼠标样式变化检测
|
this.checkMouseStatusTimer(); // 鼠标样式变化检测
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
@ -152,19 +149,6 @@ export default {
|
|||||||
clearInterval(this.ierval);
|
clearInterval(this.ierval);
|
||||||
this.ierval = null;
|
this.ierval = null;
|
||||||
}
|
}
|
||||||
if (this.checkLine) {
|
|
||||||
clearInterval(this.checkLine);
|
|
||||||
this.checkLine = null;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
// 设置检查在线定时器
|
|
||||||
checkLoginLineTimer() {
|
|
||||||
if (this.checkLine) {
|
|
||||||
clearTimeout(this.checkLine);
|
|
||||||
}
|
|
||||||
this.checkLine = setInterval(() => {
|
|
||||||
checkLoginLine();
|
|
||||||
}, 5000 * 60);
|
|
||||||
},
|
},
|
||||||
// 设置手标显示状态
|
// 设置手标显示状态
|
||||||
checkMouseStatusTimer() {
|
checkMouseStatusTimer() {
|
||||||
|
@ -90,13 +90,13 @@ export default {
|
|||||||
focus: false,
|
focus: false,
|
||||||
booleanList: ['upRight', 'lockFirst', 'switchSingleHandle', 'signalApproachOnlyOne', 'signalApproachOnlyNpSwitch',
|
booleanList: ['upRight', 'lockFirst', 'switchSingleHandle', 'signalApproachOnlyOne', 'signalApproachOnlyNpSwitch',
|
||||||
'routeNameUseEndOppositeSignalName', 'generateTbRoute', 'tbRouteNameUseEndOppositeSignalName', 'routeSignalAlwaysGreen',
|
'routeNameUseEndOppositeSignalName', 'generateTbRoute', 'tbRouteNameUseEndOppositeSignalName', 'routeSignalAlwaysGreen',
|
||||||
'routeApartByOverlap', 'overlapOnlySwitch', 'overlapSwitchNpOnly', 'overlapSignalOppositeSwitchNpOnly', 'overlapOnlyOneSwitch',
|
'routeApartByOverlap', 'overlapOnlySwitch', 'overlapSwitchNpOnly', 'overlapSignalOppositeSwitchNpOnly',
|
||||||
'generateCycle', 'routeButton', 'likeHa1', 'getNearlySignal', 'overlapSettingByTrigger', 'generateFls', 'signalApproachNotPassPreSignal',
|
'generateCycle', 'routeButton', 'likeHa1', 'getNearlySignal', 'overlapSettingByTrigger', 'generateFls', 'signalApproachNotPassPreSignal',
|
||||||
'generateDestination'
|
'generateDestination'
|
||||||
],
|
],
|
||||||
multipleList: ['sharingECStations'],
|
multipleList: ['sharingECStations'],
|
||||||
selectList: [],
|
selectList: [],
|
||||||
numberList: ['overlapReleaseTime', 'routeReleaseTime'],
|
numberList: ['overlapReleaseTime', 'routeReleaseTime', 'overlapMinLen'],
|
||||||
optionsMap: {
|
optionsMap: {
|
||||||
// upRight: [{label: 'right', value: 'right'}, {label: 'left', value: 'left'}]
|
// upRight: [{label: 'right', value: 'right'}, {label: 'left', value: 'left'}]
|
||||||
},
|
},
|
||||||
@ -112,7 +112,7 @@ export default {
|
|||||||
routeSignalAlwaysGreen: '进路始端防护信号机是否总是绿灯,否则根据进路中有无反位道岔生成绿灯或黄灯',
|
routeSignalAlwaysGreen: '进路始端防护信号机是否总是绿灯,否则根据进路中有无反位道岔生成绿灯或黄灯',
|
||||||
routeApartByOverlap: '多个延续保护路径生成多条进路,否则生成一条进路',
|
routeApartByOverlap: '多个延续保护路径生成多条进路,否则生成一条进路',
|
||||||
overlapOnlySwitch:'延续保护是否只构建道岔',
|
overlapOnlySwitch:'延续保护是否只构建道岔',
|
||||||
overlapOnlyOneSwitch: '延续保护构建是否只考虑一个道岔计轴',
|
overlapMinLen:'延续保护最小长度',
|
||||||
overlapSwitchNpOnly: '延续保护道岔是否只构建定位道岔',
|
overlapSwitchNpOnly: '延续保护道岔是否只构建定位道岔',
|
||||||
overlapSignalOppositeSwitchNpOnly: '延续保护道岔在防护信号机与所属区段方向相反时,是否只构建定位道岔',
|
overlapSignalOppositeSwitchNpOnly: '延续保护道岔在防护信号机与所属区段方向相反时,是否只构建定位道岔',
|
||||||
overlapReleaseTime: '默认延续保护解锁时间',
|
overlapReleaseTime: '默认延续保护解锁时间',
|
||||||
|
@ -60,6 +60,7 @@ export default {
|
|||||||
// query: this.queryFunction,
|
// query: this.queryFunction,
|
||||||
data:[],
|
data:[],
|
||||||
// afterQuery: this.afterQuery,
|
// afterQuery: this.afterQuery,
|
||||||
|
height:'500px',
|
||||||
selectCheckShow: false,
|
selectCheckShow: false,
|
||||||
indexShow: true,
|
indexShow: true,
|
||||||
paginationHiden:true,
|
paginationHiden:true,
|
||||||
|
@ -1,20 +1,45 @@
|
|||||||
<template>
|
<template>
|
||||||
<el-dialog v-dialogDrag class="autoSignal" title="停站时间列表" :visible.sync="show" width="85%" :before-do-close="doClose" append-to-body>
|
<el-dialog v-dialogDrag class="autoSignal" title="停站时间列表" :visible.sync="show" width="85%" :before-do-close="doClose" append-to-body>
|
||||||
<div>
|
<div>
|
||||||
<QueryListPage
|
<el-button type="primary" size="small" class="generateStationTime" :loading="loading" @click="generate">一键生成</el-button>
|
||||||
ref="queryListPage"
|
<el-table ref="table2" v-loading="tableLoading" highlight-current-row stripe border :data="parkTimeList" max-height="500px">
|
||||||
:pager-config="pagerConfig"
|
<el-table-column type="index" width="50" :label="this.$t('global.index')" />
|
||||||
:query-form="queryForm"
|
<el-table-column prop="stationCode" label="停站车站">
|
||||||
:query-list="queryList"
|
<template slot-scope="scope">
|
||||||
/>
|
<el-tag>{{ formatName(scope.row.stationCode) }}</el-tag>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column prop="sectionCode" label="停站区段">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-tag>{{ formatName(scope.row.sectionCode) }}</el-tag>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column prop="parkingTime" label="停站时间">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-input v-if="scope.row.edit" v-model="scope.row.parkingTimeNew" type="text" style="width:200px" />
|
||||||
|
<div v-else>{{ scope.row.parkingTime+' s' }}</div>
|
||||||
|
<!-- <el-tag v-else></el-tag> -->
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
:label="this.$t('map.operation')"
|
||||||
|
width="200px"
|
||||||
|
>
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-button v-if="scope.row.edit" :loading="scope.row.loading" type="warning" size="mini" @click="save(scope.$index, scope.row) ">保存</el-button>
|
||||||
|
<el-button v-else type="primary" size="mini" @click="editObj(scope.$index, scope.row) ">{{ $t('map.compile') }}</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
</div>
|
</div>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { mapGetters } from 'vuex';
|
import { mapGetters } from 'vuex';
|
||||||
import { getStationParkTimeList, deleteStationParkTime, getStationParkTime } from '@/api/jmap/mapdraft';
|
import { getStationParkTimeList, generateStationParkTime, updateStationParkTime } from '@/api/jmap/mapdraft';
|
||||||
|
// getStationParkTime
|
||||||
|
// deleteStationParkTime
|
||||||
export default {
|
export default {
|
||||||
name: 'RouteDetail',
|
name: 'RouteDetail',
|
||||||
props: {
|
props: {
|
||||||
@ -28,60 +53,9 @@ export default {
|
|||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
show: false,
|
show: false,
|
||||||
pagerConfig: {
|
loading:false,
|
||||||
pageSize: 'pageSize',
|
tableLoading:false,
|
||||||
pageIndex: 'pageNum'
|
parkTimeList:[]
|
||||||
},
|
|
||||||
queryForm: {
|
|
||||||
labelWidth: '120px',
|
|
||||||
queryObject: {
|
|
||||||
stationCode: {
|
|
||||||
type: 'select',
|
|
||||||
label: '经停车站',
|
|
||||||
config: {
|
|
||||||
data: []
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
queryList: {
|
|
||||||
query: this.queryFunction,
|
|
||||||
afterQuery: this.afterQuery,
|
|
||||||
selectCheckShow: false,
|
|
||||||
indexShow: true,
|
|
||||||
columns: [
|
|
||||||
{
|
|
||||||
title: '停站车站',
|
|
||||||
prop: 'stationCode',
|
|
||||||
type: 'tag',
|
|
||||||
columnValue: (row) => { return this.formatName(row.stationCode); },
|
|
||||||
tagType: (row) => { return ''; }
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '停站时间',
|
|
||||||
prop: 'parkingTimeVOList',
|
|
||||||
type: 'tagMore',
|
|
||||||
columnValue: (row) => { return this.handelParkingTime(row.parkingTimeVOList); },
|
|
||||||
tagType: (row) => { return ''; }
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: 'button',
|
|
||||||
title: this.$t('map.operation'),
|
|
||||||
width: '200',
|
|
||||||
buttons: [
|
|
||||||
{
|
|
||||||
name: this.$t('map.compile'),
|
|
||||||
handleClick: this.editObj
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: this.$t('map.deleteObj'),
|
|
||||||
handleClick: this.deleteObj,
|
|
||||||
type: 'danger'
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
@ -89,27 +63,11 @@ export default {
|
|||||||
'stationList'
|
'stationList'
|
||||||
])
|
])
|
||||||
},
|
},
|
||||||
mounted() {
|
|
||||||
const list = [];
|
|
||||||
if (this.stationList && this.stationList.length) {
|
|
||||||
for (let i = 0; i < this.stationList.length; i++) {
|
|
||||||
list.push({ label: this.stationList[i].name, value: this.stationList[i].code });
|
|
||||||
}
|
|
||||||
this.queryForm.queryObject.stationCode.config.data = list;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
methods: {
|
methods: {
|
||||||
doShow() {
|
doShow() {
|
||||||
this.show = true;
|
this.show = true;
|
||||||
this.reloadTable();
|
this.reloadTable();
|
||||||
},
|
},
|
||||||
handelParkingTime(parkingTimeVOList) {
|
|
||||||
const nameList = [];
|
|
||||||
parkingTimeVOList.forEach(item => {
|
|
||||||
nameList.push(`${this.formatName(item.sectionCode)}(${item.parkingTime}s)`);
|
|
||||||
});
|
|
||||||
return nameList;
|
|
||||||
},
|
|
||||||
doClose() {
|
doClose() {
|
||||||
this.show = false;
|
this.show = false;
|
||||||
},
|
},
|
||||||
@ -122,32 +80,71 @@ export default {
|
|||||||
console.log(code, name, device);
|
console.log(code, name, device);
|
||||||
return name;
|
return name;
|
||||||
},
|
},
|
||||||
queryFunction(params) {
|
|
||||||
if (this.mapInfo && this.mapInfo.id) {
|
|
||||||
return getStationParkTimeList(this.mapInfo.id, params);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
editObj(index, row) {
|
editObj(index, row) {
|
||||||
getStationParkTime(row.id).then(response => {
|
this.$set(this.parkTimeList[index], 'parkingTimeNew', row.parkingTime);
|
||||||
const data = response.data;
|
this.$set(this.parkTimeList[index], 'edit', true);
|
||||||
this.$emit('autoMaticoSelected', data);
|
// getStationParkTime(row.id).then(response => {
|
||||||
this.doClose();
|
// const data = response.data;
|
||||||
});
|
// this.$emit('autoMaticoSelected', data);
|
||||||
|
// this.doClose();
|
||||||
|
// });
|
||||||
},
|
},
|
||||||
deleteObj(index, row) {
|
save(index, row) {
|
||||||
if (this.mapInfo && this.mapInfo.id && row) {
|
if (this.mapInfo && this.mapInfo.id) {
|
||||||
// 删除
|
if (row.parkingTimeNew > 0) {
|
||||||
deleteStationParkTime(row.id).then(response => {
|
row.loading = true;
|
||||||
this.$message.success(this.$t('map.successfullyDelete'));
|
updateStationParkTime(this.mapInfo.id, row.id, {parkingTime:row.parkingTimeNew}).then(resp => {
|
||||||
this.reloadTable();
|
this.$message.success(this.$t('tip.updateDwellTimeSuccessful'));
|
||||||
|
row.parkingTime = row.parkingTimeNew;
|
||||||
|
row.parkingTimeNew = '';
|
||||||
|
row.edit = false;
|
||||||
|
row.loading = false;
|
||||||
}).catch(() => {
|
}).catch(() => {
|
||||||
this.$messageBox(this.$t('map.failDelete'));
|
row.loading = false;
|
||||||
|
this.$messageBox(this.$t('tip.updateDwellTimeFailed'));
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
this.$messageBox('请输入有效的停站时间');
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// deleteObj(index, row) {
|
||||||
|
// if (this.mapInfo && this.mapInfo.id && row) {
|
||||||
|
// // 删除
|
||||||
|
// deleteStationParkTime(row.id).then(response => {
|
||||||
|
// this.$message.success(this.$t('map.successfullyDelete'));
|
||||||
|
// this.reloadTable();
|
||||||
|
// }).catch(() => {
|
||||||
|
// this.$messageBox(this.$t('map.failDelete'));
|
||||||
|
// });
|
||||||
|
// }
|
||||||
|
// },
|
||||||
|
reloadTable() {
|
||||||
|
if (this.mapInfo && this.mapInfo.id) {
|
||||||
|
this.parkTimeList = [];
|
||||||
|
this.tableLoading = true;
|
||||||
|
getStationParkTimeList(this.mapInfo.id).then(response => {
|
||||||
|
this.parkTimeList = response.data;
|
||||||
|
this.tableLoading = false;
|
||||||
|
}).catch(()=>{
|
||||||
|
this.tableLoading = false;
|
||||||
|
this.parkTimeList = [];
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
reloadTable() {
|
generate() {
|
||||||
if (this.queryList && this.queryList.reload) {
|
// 根据地图交路一键生成生成所有站间运行等级
|
||||||
this.queryList.reload();
|
if (this.mapInfo && this.mapInfo.id) {
|
||||||
|
this.loading = true;
|
||||||
|
generateStationParkTime(this.mapInfo.id).then(response => {
|
||||||
|
this.loading = false;
|
||||||
|
this.$message.success('一键生成停站时间成功');
|
||||||
|
this.reloadTable();
|
||||||
|
}).catch((error) => {
|
||||||
|
this.loading = false;
|
||||||
|
this.$messageBox('一键生成停站时间失败: ' + error.message);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -162,4 +159,9 @@ export default {
|
|||||||
.autoSignal .el-dialog{
|
.autoSignal .el-dialog{
|
||||||
margin-top: 5vh !important;
|
margin-top: 5vh !important;
|
||||||
}
|
}
|
||||||
|
.generateStationTime{
|
||||||
|
float: right;
|
||||||
|
margin-right: 30px;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -1,22 +1,23 @@
|
|||||||
<template>
|
<template>
|
||||||
<div style="height: 100%;">
|
<div style="height: 100%;">
|
||||||
<dwell-time-draft
|
<!-- <dwell-time-draft
|
||||||
ref="routeEdit"
|
ref="routeEdit"
|
||||||
:selected="selected"
|
:selected="selected"
|
||||||
:map-info="mapInfo"
|
:map-info="mapInfo"
|
||||||
:route-data="routeData"
|
:route-data="routeData"
|
||||||
/>
|
/> -->
|
||||||
<dwell-time-detail ref="routeDetail" :map-info="mapInfo" @autoMaticoSelected="autoMaticoSelected" />
|
<dwell-time-detail ref="routeDetail" :map-info="mapInfo" />
|
||||||
|
<!-- @autoMaticoSelected="autoMaticoSelected" -->
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import DwellTimeDraft from './dwellTime';
|
// import DwellTimeDraft from './dwellTime';
|
||||||
import DwellTimeDetail from './detail';
|
import DwellTimeDetail from './detail';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'DwellTimeOperate',
|
name: 'DwellTimeOperate',
|
||||||
components: {
|
components: {
|
||||||
DwellTimeDraft,
|
// DwellTimeDraft,
|
||||||
DwellTimeDetail
|
DwellTimeDetail
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
@ -57,12 +58,12 @@ export default {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
autoMaticoSelected: function (data) {
|
// autoMaticoSelected: function (data) {
|
||||||
this.routeData = data;
|
// this.routeData = data;
|
||||||
if (this.$refs && this.$refs.routeEdit) {
|
// if (this.$refs && this.$refs.routeEdit) {
|
||||||
this.$refs.routeEdit.editData();
|
// this.$refs.routeEdit.editData();
|
||||||
}
|
// }
|
||||||
},
|
// },
|
||||||
previewRouteEvent: function () {
|
previewRouteEvent: function () {
|
||||||
if (this.$refs && this.$refs.routeDetail) {
|
if (this.$refs && this.$refs.routeDetail) {
|
||||||
this.$refs.routeDetail.doShow();
|
this.$refs.routeDetail.doShow();
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<div v-show="show">
|
<div v-show="show">
|
||||||
<el-dialog v-dialogDrag :title="$t('map.routePreview')" :visible.sync="show" width="95%" :before-do-close="doClose" append-to-body>
|
<el-dialog v-dialogDrag :title="$t('map.routePreview')" :visible.sync="show" width="95%" top="1vh" class="dialog_content_box" :before-do-close="doClose" append-to-body>
|
||||||
<div>
|
<div>
|
||||||
<QueryListPage
|
<QueryListPage
|
||||||
ref="queryListPage"
|
ref="queryListPage"
|
||||||
@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { mapGetters } from 'vuex';
|
import { mapGetters } from 'vuex';
|
||||||
import { listMap, getRouteNewList, delRouteNew, getRouteNewById, putRouteNew, getContinueProtectList, delContinueProtect } from '@/api/jmap/mapdraft';
|
import { listMap, getRouteNewList, delRouteNew, getRouteNewById, putRouteNew, getContinueProtectList, delContinueProtect, putSetDraftMapRouteById } from '@/api/jmap/mapdraft';
|
||||||
import ProtectDetail from './protectDetail';
|
import ProtectDetail from './protectDetail';
|
||||||
import PreViewField from './preview';
|
import PreViewField from './preview';
|
||||||
import Related from './related';
|
import Related from './related';
|
||||||
@ -99,6 +99,7 @@ export default {
|
|||||||
{
|
{
|
||||||
title: this.$t('map.pathName'),
|
title: this.$t('map.pathName'),
|
||||||
prop: 'name',
|
prop: 'name',
|
||||||
|
edit: true,
|
||||||
width: 180
|
width: 180
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -108,7 +109,28 @@ export default {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: this.$t('map.routeStationName'),
|
title: this.$t('map.routeStationName'),
|
||||||
prop: 'stationCode'
|
prop: 'stationCode',
|
||||||
|
type: 'tag',
|
||||||
|
columnValue: (row) => { return this.$convertField(row.stationCode, this.stationList, ['code', 'name']); },
|
||||||
|
tagType: (row) => { return ''; }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '是否自动追踪/联锁自动触发',
|
||||||
|
edit: true,
|
||||||
|
type: 'tag',
|
||||||
|
prop: 'arc'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '自排',
|
||||||
|
edit: true,
|
||||||
|
type: 'tag',
|
||||||
|
prop: 'ars'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: this.$t('map.whetherAutoRoute'),
|
||||||
|
edit: true,
|
||||||
|
type: 'tag',
|
||||||
|
prop: 'flt'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: this.$t('map.accessType'),
|
title: this.$t('map.accessType'),
|
||||||
@ -119,10 +141,24 @@ export default {
|
|||||||
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: this.$t('map.whetherAutoRoute'),
|
title: 'atp进路',
|
||||||
prop: 'flt',
|
prop: 'atp',
|
||||||
type: 'tag',
|
type: 'tag',
|
||||||
columnValue: (row) => { return this.$convertField(row.flt, this.turnBackList, ['value', 'label']); },
|
columnValue: (row) => { return this.$convertField(row.atp, this.turnBackList, ['value', 'label']); },
|
||||||
|
tagType: (row) => { return ''; }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '联锁进路',
|
||||||
|
prop: 'ground',
|
||||||
|
type: 'tag',
|
||||||
|
columnValue: (row) => { return this.$convertField(row.ground, this.turnBackList, ['value', 'label']); },
|
||||||
|
tagType: (row) => { return ''; }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '引导进路',
|
||||||
|
prop: 'guide',
|
||||||
|
type: 'tag',
|
||||||
|
columnValue: (row) => { return this.$convertField(row.guide, this.turnBackList, ['value', 'label']); },
|
||||||
tagType: (row) => { return ''; }
|
tagType: (row) => { return ''; }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -133,57 +169,57 @@ export default {
|
|||||||
title: this.$t('map.endingSignalName'),
|
title: this.$t('map.endingSignalName'),
|
||||||
prop: 'endSignalCode'
|
prop: 'endSignalCode'
|
||||||
},
|
},
|
||||||
{
|
// {
|
||||||
type: 'button',
|
// type: 'button',
|
||||||
title: this.$t('map.continueProtect'),
|
// title: this.$t('map.continueProtect'),
|
||||||
buttons: [
|
// buttons: [
|
||||||
{
|
// {
|
||||||
name: this.$t('map.preview'),
|
// name: this.$t('map.preview'),
|
||||||
handleClick: this.overlapSwitchDetail,
|
// handleClick: this.overlapSwitchDetail,
|
||||||
showControl: (row) => { return row.overlapCode; }
|
// showControl: (row) => { return row.overlapCode; }
|
||||||
}
|
// }
|
||||||
]
|
// ]
|
||||||
},
|
// },
|
||||||
{
|
// {
|
||||||
type: 'button',
|
// type: 'button',
|
||||||
title: this.$t('map.accessSideTurnoutData'),
|
// title: this.$t('map.accessSideTurnoutData'),
|
||||||
buttons: [
|
// buttons: [
|
||||||
{
|
// {
|
||||||
name: this.$t('map.preview'),
|
// name: this.$t('map.preview'),
|
||||||
handleClick: this.flankProtectionSwitchDetail,
|
// handleClick: this.flankProtectionSwitchDetail,
|
||||||
showControl: (row) => { return row.routeFlankProtectionList && row.routeFlankProtectionList.length > 0; }
|
// showControl: (row) => { return row.routeFlankProtectionList && row.routeFlankProtectionList.length > 0; }
|
||||||
}
|
// }
|
||||||
]
|
// ]
|
||||||
},
|
// },
|
||||||
{
|
// {
|
||||||
type: 'button',
|
// type: 'button',
|
||||||
title: this.$t('map.physicalSection'), // 物理区段list
|
// title: this.$t('map.physicalSection'), // 物理区段list
|
||||||
buttons: [
|
// buttons: [
|
||||||
{
|
// {
|
||||||
name: this.$t('map.preview'),
|
// name: this.$t('map.preview'),
|
||||||
handleClick: this.sectionDetail
|
// handleClick: this.sectionDetail
|
||||||
}
|
// }
|
||||||
]
|
// ]
|
||||||
},
|
// },
|
||||||
{
|
// {
|
||||||
type: 'button',
|
// type: 'button',
|
||||||
title: this.$t('map.routeRouteTurnoutData'),
|
// title: this.$t('map.routeRouteTurnoutData'),
|
||||||
buttons: [
|
// buttons: [
|
||||||
{
|
// {
|
||||||
name: this.$t('map.preview'),
|
// name: this.$t('map.preview'),
|
||||||
handleClick: this.routeSwitchDetail,
|
// handleClick: this.routeSwitchDetail,
|
||||||
showControl: (row) => { return row.routeSwitchList.length > 0; }
|
// showControl: (row) => { return row.routeSwitchList.length > 0; }
|
||||||
}
|
// }
|
||||||
]
|
// ]
|
||||||
},
|
// },
|
||||||
{
|
// {
|
||||||
title: this.$t('map.hostileData'),
|
// title: this.$t('map.hostileData'),
|
||||||
prop: 'conflictingSignalList',
|
// prop: 'conflictingSignalList',
|
||||||
type: 'tagMore',
|
// type: 'tagMore',
|
||||||
width: '250',
|
// width: '250',
|
||||||
columnValue: (row) => { return this.showConflictingSignalList(row.conflictingSignalList); },
|
// columnValue: (row) => { return this.showConflictingSignalList(row.conflictingSignalList); },
|
||||||
tagType: (row) => { return ''; }
|
// tagType: (row) => { return ''; }
|
||||||
},
|
// },
|
||||||
{
|
{
|
||||||
type: 'button',
|
type: 'button',
|
||||||
title: this.$t('map.operation'),
|
title: this.$t('map.operation'),
|
||||||
@ -194,12 +230,12 @@ export default {
|
|||||||
handleClick: this.edit,
|
handleClick: this.edit,
|
||||||
showControl: () => { return this.showType !== 'select'; }
|
showControl: () => { return this.showType !== 'select'; }
|
||||||
},
|
},
|
||||||
{
|
// {
|
||||||
name: '复制',
|
// name: '复制',
|
||||||
handleClick: this.copyObj,
|
// handleClick: this.copyObj,
|
||||||
type: 'warning',
|
// type: 'warning',
|
||||||
showControl: () => { return this.showType !== 'select'; }
|
// showControl: () => { return this.showType !== 'select'; }
|
||||||
},
|
// },
|
||||||
{
|
{
|
||||||
name: this.$t('map.deleteObj'),
|
name: this.$t('map.deleteObj'),
|
||||||
handleClick: this.deleteObj,
|
handleClick: this.deleteObj,
|
||||||
@ -210,6 +246,11 @@ export default {
|
|||||||
name: this.$t('global.select'),
|
name: this.$t('global.select'),
|
||||||
handleClick: this.selectedObj,
|
handleClick: this.selectedObj,
|
||||||
showControl: () => { return this.showType === 'select'; }
|
showControl: () => { return this.showType === 'select'; }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '更新',
|
||||||
|
handleClick: this.handleUpdate,
|
||||||
|
showControl: () => { return this.showType !== 'select'; }
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@ -294,116 +335,121 @@ export default {
|
|||||||
that.$convertSpecifiedField(elem, that.RouteAutoTypeList, 'code', 'name', ['autoType']);
|
that.$convertSpecifiedField(elem, that.RouteAutoTypeList, 'code', 'name', ['autoType']);
|
||||||
that.$convertSpecifiedField(elem, that.RouteNatureTypeList, 'code', 'name', ['natureType']);
|
that.$convertSpecifiedField(elem, that.RouteNatureTypeList, 'code', 'name', ['natureType']);
|
||||||
that.$convertSpecifiedField(elem, that.SwitchLocateTypeList, 'code', 'name', ['overlapSwitchLocateType']);
|
that.$convertSpecifiedField(elem, that.SwitchLocateTypeList, 'code', 'name', ['overlapSwitchLocateType']);
|
||||||
that.$convertSpecifiedField(elem, that.mapList, 'id', 'name', ['mapId']);
|
|
||||||
that.$convertSpecifiedField(elem, that.switchList, 'code', 'name', ['routeOverlapSwitchList']);
|
that.$convertSpecifiedField(elem, that.switchList, 'code', 'name', ['routeOverlapSwitchList']);
|
||||||
that.$convertSpecifiedField(elem, that.signalList, 'code', 'name', ['startSignalCode', 'endSignalCode']);
|
that.$convertSpecifiedField(elem, that.signalList, 'code', 'name', ['startSignalCode', 'endSignalCode']);
|
||||||
that.$convertSpecifiedField(elem, that.stationList, 'code', 'name', ['stationCode']);
|
|
||||||
that.$convertSpecifiedField(elem, that.sectionList, 'code', 'name', ['nearSectionCode', 'autoTriggerSectionCode', 'turnBackSectionCode']);
|
that.$convertSpecifiedField(elem, that.sectionList, 'code', 'name', ['nearSectionCode', 'autoTriggerSectionCode', 'turnBackSectionCode']);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return data;
|
return data;
|
||||||
},
|
},
|
||||||
async routeOverlap(index, row) { // 延续保护区段数据列表
|
// async routeOverlap(index, row) { // 延续保护区段数据列表
|
||||||
if (this.$refs && this.$refs.previewField && row) {
|
// if (this.$refs && this.$refs.previewField && row) {
|
||||||
const sectionDict = {};
|
// const sectionDict = {};
|
||||||
this.sectionList.map(elem => { sectionDict[elem.code] = elem.name; });
|
// this.sectionList.map(elem => { sectionDict[elem.code] = elem.name; });
|
||||||
const routeOverlapSectionList = row.routeOverlapSectionList.map(elem => { return {sectionCode : elem}; });
|
// const routeOverlapSectionList = row.routeOverlapSectionList.map(elem => { return {sectionCode : elem}; });
|
||||||
const fieldList = {
|
// const fieldList = {
|
||||||
id: row.id,
|
// id: row.id,
|
||||||
mapId: this.$route.params.mapId,
|
// mapId: this.$route.params.mapId,
|
||||||
title: this.$t('map.routeContinuesToProtectSectorData'),
|
// title: this.$t('map.routeContinuesToProtectSectorData'),
|
||||||
name: row.name,
|
// name: row.name,
|
||||||
model: {
|
// model: {
|
||||||
items: [
|
// items: [
|
||||||
{ prop: 'sectionCode', label: this.$t('map.physicalSectionID'), type: 'text' },
|
// { prop: 'sectionCode', label: this.$t('map.physicalSectionID'), type: 'text' },
|
||||||
{ prop: 'sectionCode', label: this.$t('map.physicalSectionName'), type: 'select', options: sectionDict }
|
// { prop: 'sectionCode', label: this.$t('map.physicalSectionName'), type: 'select', options: sectionDict }
|
||||||
]
|
// ]
|
||||||
}
|
// }
|
||||||
};
|
// };
|
||||||
this.$refs.previewField.doShow(fieldList, routeOverlapSectionList);
|
// this.$refs.previewField.doShow(fieldList, routeOverlapSectionList);
|
||||||
}
|
// }
|
||||||
},
|
// },
|
||||||
async sectionDetail(index, row) { // 进路物理区段
|
// async sectionDetail(index, row) { // 进路物理区段
|
||||||
if (this.$refs && this.$refs.previewField && row) {
|
// if (this.$refs && this.$refs.previewField && row) {
|
||||||
const sectionDict = {};
|
// const sectionDict = {};
|
||||||
this.sectionList.map(elem => { sectionDict[elem.code] = elem.name; });
|
// this.sectionList.map(elem => { sectionDict[elem.code] = elem.name; });
|
||||||
const routeSectionList = row.routeSectionList.map(elem => { return {sectionCode : elem}; });
|
// const routeSectionList = row.routeSectionList.map(elem => { return {sectionCode : elem}; });
|
||||||
const fieldList = {
|
// const fieldList = {
|
||||||
id: row.id,
|
// id: row.id,
|
||||||
mapId: this.$route.params.mapId,
|
// mapId: this.$route.params.mapId,
|
||||||
title: this.$t('map.routePhysicalSectionData'),
|
// title: this.$t('map.routePhysicalSectionData'),
|
||||||
name: row.name,
|
// name: row.name,
|
||||||
model: {
|
// model: {
|
||||||
items: [
|
// items: [
|
||||||
{ prop: 'sectionCode', label: this.$t('map.physicalSectionID'), type: 'text' },
|
// { prop: 'sectionCode', label: this.$t('map.physicalSectionID'), type: 'text' },
|
||||||
{ prop: 'sectionCode', label: this.$t('map.physicalSectionName'), type: 'select', options: sectionDict }
|
// { prop: 'sectionCode', label: this.$t('map.physicalSectionName'), type: 'select', options: sectionDict }
|
||||||
]
|
// ]
|
||||||
}
|
// }
|
||||||
};
|
// };
|
||||||
this.$refs.previewField.doShow(fieldList, routeSectionList);
|
// this.$refs.previewField.doShow(fieldList, routeSectionList);
|
||||||
}
|
// }
|
||||||
},
|
// },
|
||||||
async overlapSwitchDetail(index, row) { // 延续保护道岔
|
// async overlapSwitchDetail(index, row) { // 延续保护道岔
|
||||||
if (this.$refs && this.$refs.protectDetail && row) {
|
// if (this.$refs && this.$refs.protectDetail && row) {
|
||||||
const param = {
|
// const param = {
|
||||||
code: row.overlapCode,
|
// code: row.overlapCode,
|
||||||
pageNum: 10,
|
// pageNum: 10,
|
||||||
pageSize:1
|
// pageSize:1
|
||||||
};
|
// };
|
||||||
getContinueProtectList(this.$route.params.mapId, param).then(resp => {
|
// getContinueProtectList(this.$route.params.mapId, param).then(resp => {
|
||||||
this.$refs.protectDetail.doShow(resp.data.list[0]);
|
// this.$refs.protectDetail.doShow(resp.data.list[0]);
|
||||||
}).catch((error) => {
|
// }).catch((error) => {
|
||||||
console.log(error);
|
// console.log(error);
|
||||||
|
// });
|
||||||
|
// }
|
||||||
|
// },
|
||||||
|
// async flankProtectionSwitchDetail(index, row) { // 进路侧防道岔
|
||||||
|
// if (this.$refs && this.$refs.previewField && row) {
|
||||||
|
// const switchDict = {};
|
||||||
|
// this.switchList.map(elem => { switchDict[elem.code] = elem.name; });
|
||||||
|
// const fieldList = {
|
||||||
|
// id: row.id,
|
||||||
|
// mapId: this.$route.params.mapId,
|
||||||
|
// title: this.$t('map.routeSideDefenseSwitch'),
|
||||||
|
// name: row.name,
|
||||||
|
// model: {
|
||||||
|
// items: [
|
||||||
|
// { prop: 'switchCode', label: this.$t('map.switchID'), type: 'text' },
|
||||||
|
// { prop: 'switchCode', label: this.$t('map.switchName'), type: 'select', options: switchDict },
|
||||||
|
// { prop: 'switchType', label: this.$t('map.switchType'), type: 'text'}
|
||||||
|
// ]
|
||||||
|
// }
|
||||||
|
// };
|
||||||
|
// row.routeFlankProtectionList.forEach( item => {
|
||||||
|
// item.switchType = item.normal ? this.$t('map.normalPosition') : this.$t('map.reversePosition');
|
||||||
|
// });
|
||||||
|
// this.$refs.previewField.doShow(fieldList, row.routeFlankProtectionList);
|
||||||
|
// }
|
||||||
|
// },
|
||||||
|
// async routeSwitchDetail(index, row) { // 道岔段数据列表
|
||||||
|
// if (this.$refs && this.$refs.previewField && row) {
|
||||||
|
// const switchDict = {};
|
||||||
|
// this.switchList.map(elem => { switchDict[elem.code] = elem.name; });
|
||||||
|
// const fieldList = {
|
||||||
|
// id: row.id,
|
||||||
|
// mapId: this.$route.params.mapId,
|
||||||
|
// title: this.$t('map.entryTurnout'),
|
||||||
|
// name: row.name,
|
||||||
|
// model: {
|
||||||
|
// field: 'routeSwitchList',
|
||||||
|
// items: [
|
||||||
|
// { prop: 'switchCode', label: this.$t('map.switchID'), type: 'text' },
|
||||||
|
// { prop: 'switchCode', label: this.$t('map.switchName'), type: 'select', options: switchDict },
|
||||||
|
// { prop: 'switchType', label: this.$t('map.switchType'), type: 'text'}
|
||||||
|
// ]
|
||||||
|
// }
|
||||||
|
// };
|
||||||
|
// row.routeSwitchList.forEach( item => {
|
||||||
|
// item.switchType = item.normal ? this.$t('map.normalPosition') : this.$t('map.reversePosition');
|
||||||
|
// });
|
||||||
|
// this.$refs.previewField.doShow(fieldList, row.routeSwitchList);
|
||||||
|
// }
|
||||||
|
// },
|
||||||
|
handleUpdate(index, row) {
|
||||||
|
putSetDraftMapRouteById(this.$route.params.mapId, row).then(res => {
|
||||||
|
this.$message.success('更新成功');
|
||||||
|
}).catch(() => {
|
||||||
|
this.$messageBox('操作异常');
|
||||||
});
|
});
|
||||||
}
|
|
||||||
},
|
|
||||||
async flankProtectionSwitchDetail(index, row) { // 进路侧防道岔
|
|
||||||
if (this.$refs && this.$refs.previewField && row) {
|
|
||||||
const switchDict = {};
|
|
||||||
this.switchList.map(elem => { switchDict[elem.code] = elem.name; });
|
|
||||||
const fieldList = {
|
|
||||||
id: row.id,
|
|
||||||
mapId: this.$route.params.mapId,
|
|
||||||
title: this.$t('map.routeSideDefenseSwitch'),
|
|
||||||
name: row.name,
|
|
||||||
model: {
|
|
||||||
items: [
|
|
||||||
{ prop: 'switchCode', label: this.$t('map.switchID'), type: 'text' },
|
|
||||||
{ prop: 'switchCode', label: this.$t('map.switchName'), type: 'select', options: switchDict },
|
|
||||||
{ prop: 'switchType', label: this.$t('map.switchType'), type: 'text'}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
};
|
|
||||||
row.routeFlankProtectionList.forEach( item => {
|
|
||||||
item.switchType = item.normal ? this.$t('map.normalPosition') : this.$t('map.reversePosition');
|
|
||||||
});
|
|
||||||
this.$refs.previewField.doShow(fieldList, row.routeFlankProtectionList);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
async routeSwitchDetail(index, row) { // 道岔段数据列表
|
|
||||||
if (this.$refs && this.$refs.previewField && row) {
|
|
||||||
const switchDict = {};
|
|
||||||
this.switchList.map(elem => { switchDict[elem.code] = elem.name; });
|
|
||||||
const fieldList = {
|
|
||||||
id: row.id,
|
|
||||||
mapId: this.$route.params.mapId,
|
|
||||||
title: this.$t('map.entryTurnout'),
|
|
||||||
name: row.name,
|
|
||||||
model: {
|
|
||||||
field: 'routeSwitchList',
|
|
||||||
items: [
|
|
||||||
{ prop: 'switchCode', label: this.$t('map.switchID'), type: 'text' },
|
|
||||||
{ prop: 'switchCode', label: this.$t('map.switchName'), type: 'select', options: switchDict },
|
|
||||||
{ prop: 'switchType', label: this.$t('map.switchType'), type: 'text'}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
};
|
|
||||||
row.routeSwitchList.forEach( item => {
|
|
||||||
item.switchType = item.normal ? this.$t('map.normalPosition') : this.$t('map.reversePosition');
|
|
||||||
});
|
|
||||||
this.$refs.previewField.doShow(fieldList, row.routeSwitchList);
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
// 保存
|
// 保存
|
||||||
saveRelated(row) {
|
saveRelated(row) {
|
||||||
@ -414,36 +460,36 @@ export default {
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
edit(index, row) {
|
edit(index, row) {
|
||||||
this.mapList.forEach(elem => {
|
// this.mapList.forEach(elem => {
|
||||||
if (elem.name === row.mapId) {
|
// if (elem.name === row.mapId) {
|
||||||
const model = {
|
// const model = {
|
||||||
mapId: elem.id,
|
// mapId: elem.id,
|
||||||
id: row.id
|
// id: row.id
|
||||||
};
|
// };
|
||||||
getRouteNewById(model.id).then(response => {
|
getRouteNewById(row.mapId).then(response => {
|
||||||
const data = response.data;
|
const data = response.data;
|
||||||
this.$emit('routeSelected', data);
|
this.$emit('routeSelected', data);
|
||||||
this.doClose();
|
this.doClose();
|
||||||
});
|
});
|
||||||
}
|
// }
|
||||||
});
|
// });
|
||||||
},
|
|
||||||
copyObj(index, row) {
|
|
||||||
this.mapList.forEach(elem => {
|
|
||||||
if (elem.name === row.mapId) {
|
|
||||||
const model = {
|
|
||||||
mapId: elem.id,
|
|
||||||
id: row.id
|
|
||||||
};
|
|
||||||
getRouteNewById(model.id).then(response => {
|
|
||||||
const data = response.data;
|
|
||||||
delete data.id;
|
|
||||||
this.$emit('routeSelected', data);
|
|
||||||
this.doClose();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
},
|
},
|
||||||
|
// copyObj(index, row) {
|
||||||
|
// this.mapList.forEach(elem => {
|
||||||
|
// if (elem.name === row.mapId) {
|
||||||
|
// const model = {
|
||||||
|
// mapId: elem.id,
|
||||||
|
// id: row.id
|
||||||
|
// };
|
||||||
|
// getRouteNewById(model.id).then(response => {
|
||||||
|
// const data = response.data;
|
||||||
|
// delete data.id;
|
||||||
|
// this.$emit('routeSelected', data);
|
||||||
|
// this.doClose();
|
||||||
|
// });
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
// },
|
||||||
deleteObj(index, row) {
|
deleteObj(index, row) {
|
||||||
if (row) {
|
if (row) {
|
||||||
this.$confirm('是否确认删除?', '提示', {
|
this.$confirm('是否确认删除?', '提示', {
|
||||||
@ -451,19 +497,19 @@ export default {
|
|||||||
cancelButtonText: '取消',
|
cancelButtonText: '取消',
|
||||||
type: 'warning'
|
type: 'warning'
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
delRouteNew(row.id).then(response => {
|
delRouteNew(this.$route.params.mapId, row.code).then(response => {
|
||||||
const param = {
|
// const param = {
|
||||||
code: row.overlapCode,
|
// code: row.overlapCode,
|
||||||
pageNum: 10,
|
// pageNum: 10,
|
||||||
pageSize:1
|
// pageSize:1
|
||||||
};
|
// };
|
||||||
getContinueProtectList(this.$route.params.mapId, param).then(resp => {
|
// getContinueProtectList(this.$route.params.mapId, param).then(resp => {
|
||||||
if (resp.data.list[0]) {
|
// if (resp.data.list[0]) {
|
||||||
delContinueProtect(resp.data.list[0].id).then( res => {
|
// delContinueProtect(resp.data.list[0].id).then( res => {
|
||||||
this.$message.success('删除成功');
|
// this.$message.success('删除成功');
|
||||||
});
|
// });
|
||||||
}
|
// }
|
||||||
});
|
// });
|
||||||
this.reloadTable();
|
this.reloadTable();
|
||||||
}).catch(() => {
|
}).catch(() => {
|
||||||
this.$messageBox('删除失败');
|
this.$messageBox('删除失败');
|
||||||
@ -481,39 +527,47 @@ export default {
|
|||||||
selectedObj(index, row) {
|
selectedObj(index, row) {
|
||||||
this.$emit('setRouteCode', row, this.codeType);
|
this.$emit('setRouteCode', row, this.codeType);
|
||||||
this.show = false;
|
this.show = false;
|
||||||
},
|
|
||||||
showConflictingSignalList(data) {
|
|
||||||
const nameList = [];
|
|
||||||
data.forEach(ele => {
|
|
||||||
let signalName = '';
|
|
||||||
this.signalList.some(item => {
|
|
||||||
if (item.code === ele.signalCode) {
|
|
||||||
signalName = item.name;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
let switchName = '';
|
|
||||||
ele.switchPositionList.forEach((item, index) => {
|
|
||||||
this.switchList.some(it => {
|
|
||||||
if (it.code === item.switchCode) {
|
|
||||||
const pos = item.normal ? 'N' : 'R';
|
|
||||||
if (index === 0) {
|
|
||||||
switchName = switchName + it.name + pos;
|
|
||||||
} else {
|
|
||||||
switchName = switchName + '/' + it.name + pos;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
if (switchName) {
|
|
||||||
nameList.push(signalName + ' ' + 'WITH' + ' ' + switchName);
|
|
||||||
} else {
|
|
||||||
nameList.push(signalName);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return nameList;
|
|
||||||
}
|
}
|
||||||
|
// showConflictingSignalList(data) {
|
||||||
|
// const nameList = [];
|
||||||
|
// data.forEach(ele => {
|
||||||
|
// let signalName = '';
|
||||||
|
// this.signalList.some(item => {
|
||||||
|
// if (item.code === ele.signalCode) {
|
||||||
|
// signalName = item.name;
|
||||||
|
// return true;
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
// let switchName = '';
|
||||||
|
// ele.switchPositionList.forEach((item, index) => {
|
||||||
|
// this.switchList.some(it => {
|
||||||
|
// if (it.code === item.switchCode) {
|
||||||
|
// const pos = item.normal ? 'N' : 'R';
|
||||||
|
// if (index === 0) {
|
||||||
|
// switchName = switchName + it.name + pos;
|
||||||
|
// } else {
|
||||||
|
// switchName = switchName + '/' + it.name + pos;
|
||||||
|
// }
|
||||||
|
// return true;
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
// });
|
||||||
|
// if (switchName) {
|
||||||
|
// nameList.push(signalName + ' ' + 'WITH' + ' ' + switchName);
|
||||||
|
// } else {
|
||||||
|
// nameList.push(signalName);
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
// return nameList;
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss">
|
||||||
|
.dialog_content_box{
|
||||||
|
.el-dialog__body{
|
||||||
|
padding-top: 3px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
@ -1,21 +1,93 @@
|
|||||||
<template>
|
<template>
|
||||||
<el-dialog v-dialogDrag title="站间等级列表" :visible.sync="show" width="85%" :before-do-close="doClose" append-to-body>
|
<el-dialog v-dialogDrag title="站间等级列表" :visible.sync="show" width="85%" :before-do-close="doClose" append-to-body>
|
||||||
<div>
|
<div>
|
||||||
<QueryListPage
|
<!-- <QueryListPage
|
||||||
ref="queryListPage"
|
ref="queryListPage"
|
||||||
:pager-config="pagerConfig"
|
:pager-config="pagerConfig"
|
||||||
:query-form="queryForm"
|
:query-form="queryForm"
|
||||||
:query-list="queryList"
|
:query-list="queryList"
|
||||||
/>
|
/> -->
|
||||||
|
<el-button type="primary" size="small" class="generateRunLevel" :loading="loading" @click="generate">一键生成</el-button>
|
||||||
|
<el-table ref="table2" v-loading="tableLoading" highlight-current-row stripe border :data="runLevelList" max-height="500px">
|
||||||
|
<el-table-column type="index" width="50" :label="this.$t('global.index')" />
|
||||||
|
<el-table-column prop="startStationCode" :label="$t('map.startStation')">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-tag>{{ formatName(scope.row.startStationCode) }}</el-tag>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column prop="startSectionCode" label="起始区段">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-tag>{{ formatName(scope.row.startSectionCode) }}</el-tag>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column prop="endStationCode" :label="$t('map.endStation')">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-tag>{{ formatName(scope.row.endStationCode) }}</el-tag>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column prop="endSectionCode" label="终到区段">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-tag>{{ formatName(scope.row.endSectionCode) }}</el-tag>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column prop="right" label="行驶方向" width="80">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-tag type="success">{{ translate(scope.row.right) }}</el-tag>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column prop="distance" label="站间距离" width="120">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-tag type="success">{{ scope.row.distance + ' m' }}</el-tag>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column prop="l1" label="第一等级时间" width="120">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-input v-if="scope.row.edit" v-model="scope.row.l1New" type="text" style="width:90px" size="small" />
|
||||||
|
<div v-else>{{ scope.row.l1 + ' s' }}</div>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column prop="l2" label="第二等级时间" width="120">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-input v-if="scope.row.edit" v-model="scope.row.l2New" type="text" style="width:90px" size="small" />
|
||||||
|
<div v-else>{{ scope.row.l2 + ' s' }}</div>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column prop="l3" label="第三等级时间" width="120">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-input v-if="scope.row.edit" v-model="scope.row.l3New" type="text" style="width:90px" size="small" />
|
||||||
|
<div v-else>{{ scope.row.l3 + ' s' }}</div>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column prop="l4" label="第四等级时间" width="120">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-input v-if="scope.row.edit" v-model="scope.row.l4New" type="text" style="width:90px" size="small" />
|
||||||
|
<div v-else>{{ scope.row.l4 + ' s' }}</div>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column prop="l5" label="第五等级时间" width="120">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-input v-if="scope.row.edit" v-model="scope.row.l5New" type="text" style="width:90px" size="small" />
|
||||||
|
<div v-else>{{ scope.row.l5 + ' s' }}</div>
|
||||||
|
<!-- <el-tag v-else></el-tag> -->
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
:label="this.$t('map.operation')"
|
||||||
|
width="200px"
|
||||||
|
>
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-button v-if="scope.row.edit" :loading="scope.row.loading" type="warning" size="mini" @click="save(scope.$index, scope.row) ">保存</el-button>
|
||||||
|
<el-button v-else type="primary" :loading="scope.row.loading" size="mini" @click="editObj(scope.$index, scope.row) ">{{ $t('map.compile') }}</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
</div>
|
</div>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { mapGetters } from 'vuex';
|
import { getRunLevelList, generateAllStationRunData, putUploadLevel} from '@/api/runplan';
|
||||||
import { listMap } from '@/api/jmap/mapdraft';
|
// deleteRunLevel, getRunLevelDetail,
|
||||||
import { getRunLevelList, deleteRunLevel, getRunLevelDetail, generateAllStationRunData} from '@/api/runplan';
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'RouteDetail',
|
name: 'RouteDetail',
|
||||||
props: {
|
props: {
|
||||||
@ -29,171 +101,28 @@ export default {
|
|||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
show: false,
|
show: false,
|
||||||
mapList: [],
|
loading:false,
|
||||||
PermissionUseList: [
|
tableLoading:false,
|
||||||
{ label: '向右', value: true },
|
runLevelList:[]
|
||||||
{ label: '向左', value: false }
|
|
||||||
],
|
|
||||||
pagerConfig: {
|
|
||||||
pageSize: 'pageSize',
|
|
||||||
pageIndex: 'pageNum'
|
|
||||||
},
|
|
||||||
queryForm: {
|
|
||||||
labelWidth: '120px',
|
|
||||||
queryObject: {
|
|
||||||
startSectionCode: {
|
|
||||||
type: 'select',
|
|
||||||
label: '起始区段',
|
|
||||||
config: {
|
|
||||||
data: []
|
|
||||||
}
|
|
||||||
},
|
|
||||||
endSectionCode: {
|
|
||||||
type: 'select',
|
|
||||||
label: '终点区段',
|
|
||||||
config: {
|
|
||||||
data: []
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
queryList: {
|
|
||||||
query: this.queryFunction,
|
|
||||||
afterQuery: this.afterQuery,
|
|
||||||
selectCheckShow: false,
|
|
||||||
indexShow: true,
|
|
||||||
columns: [
|
|
||||||
{
|
|
||||||
title: this.$t('map.startStation'),
|
|
||||||
prop: 'startStationCode'
|
|
||||||
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '起始区段',
|
|
||||||
prop: 'startSectionCode'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: this.$t('map.endStation'),
|
|
||||||
prop: 'endStationCode'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '终到区段',
|
|
||||||
prop: 'endSectionCode'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '行驶方向',
|
|
||||||
prop: 'right',
|
|
||||||
type: 'tag',
|
|
||||||
columnValue: (row) => { return this.translate(row.right); },
|
|
||||||
tagType: (row) => { return 'success'; }
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '站间距离',
|
|
||||||
prop: 'distance',
|
|
||||||
type: 'tag',
|
|
||||||
columnValue: (row) => { return row.distance + ' m'; },
|
|
||||||
tagType: (row) => { return 'success'; }
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '第一等级时间',
|
|
||||||
prop: 'l1',
|
|
||||||
type: 'tag',
|
|
||||||
columnValue: (row) => { return row.l1 + ' s'; },
|
|
||||||
tagType: (row) => { return 'success'; }
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '第二等级时间',
|
|
||||||
prop: 'l2',
|
|
||||||
type: 'tag',
|
|
||||||
columnValue: (row) => { return row.l2 + ' s'; },
|
|
||||||
tagType: (row) => { return 'success'; }
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '第三等级时间',
|
|
||||||
prop: 'l3',
|
|
||||||
type: 'tag',
|
|
||||||
columnValue: (row) => { return row.l3 + ' s'; },
|
|
||||||
tagType: (row) => { return 'success'; }
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '第四等级时间',
|
|
||||||
prop: 'l4',
|
|
||||||
type: 'tag',
|
|
||||||
columnValue: (row) => { return row.l4 + ' s'; },
|
|
||||||
tagType: (row) => { return 'success'; }
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '第五等级时间',
|
|
||||||
prop: 'l5',
|
|
||||||
type: 'tag',
|
|
||||||
columnValue: (row) => { return row.l5 + ' s'; },
|
|
||||||
tagType: (row) => { return 'success'; }
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: 'button',
|
|
||||||
title: this.$t('map.operation'),
|
|
||||||
width: '200',
|
|
||||||
buttons: [
|
|
||||||
{
|
|
||||||
name: this.$t('map.compile'),
|
|
||||||
handleClick: this.editObj
|
|
||||||
}
|
|
||||||
// {
|
|
||||||
// name: this.$t('map.deleteObj'),
|
|
||||||
// handleClick: this.deleteObj,
|
|
||||||
// type: 'danger'
|
|
||||||
// }
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
actions: [
|
|
||||||
{ text: '一键生成', handler: this.createAll }
|
|
||||||
]
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
computed: {
|
|
||||||
...mapGetters('map', [
|
|
||||||
'sectionList',
|
|
||||||
'stationList'
|
|
||||||
])
|
|
||||||
},
|
|
||||||
mounted() {
|
|
||||||
this.acquireMapList();
|
|
||||||
this.initQueryObject();
|
|
||||||
},
|
|
||||||
methods: {
|
methods: {
|
||||||
doShow() {
|
doShow() {
|
||||||
this.show = true;
|
this.show = true;
|
||||||
this.reloadTable();
|
this.reloadTable();
|
||||||
},
|
},
|
||||||
initQueryObject() {
|
|
||||||
const sectionList = [];
|
|
||||||
if (this.sectionList && this.sectionList.length) {
|
|
||||||
this.sectionList.forEach(elem => {
|
|
||||||
if (elem.standTrack || elem.reentryTrack || elem.transferTrack) {
|
|
||||||
sectionList.push({ label: this.formatName(elem.code), value: elem.code });
|
|
||||||
}
|
|
||||||
});
|
|
||||||
this.queryForm.queryObject.startSectionCode.config.data = sectionList;
|
|
||||||
this.queryForm.queryObject.endSectionCode.config.data = sectionList;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
doClose() {
|
doClose() {
|
||||||
this.show = false;
|
this.show = false;
|
||||||
},
|
},
|
||||||
formatName(code) {
|
formatName(code) {
|
||||||
let name = '';
|
let name = '';
|
||||||
|
if (code) {
|
||||||
const device = this.$store.getters['map/getDeviceByCode'](code);
|
const device = this.$store.getters['map/getDeviceByCode'](code);
|
||||||
if (device) {
|
if (device) {
|
||||||
name = device.name;
|
name = device.name;
|
||||||
}
|
}
|
||||||
return name;
|
|
||||||
},
|
|
||||||
queryFunction(params) {
|
|
||||||
if (this.mapInfo && this.mapInfo.id) {
|
|
||||||
return getRunLevelList(this.mapInfo.id, params);
|
|
||||||
}
|
}
|
||||||
|
return name;
|
||||||
},
|
},
|
||||||
translate(rowData) {
|
translate(rowData) {
|
||||||
if (rowData) {
|
if (rowData) {
|
||||||
@ -202,29 +131,8 @@ export default {
|
|||||||
return '向左';
|
return '向左';
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
acquireMapList() {
|
|
||||||
// 地图名称列表
|
generate() {
|
||||||
listMap({drawWay: true}).then(response => {
|
|
||||||
this.mapList = response.data;
|
|
||||||
});
|
|
||||||
},
|
|
||||||
afterQuery(data) {
|
|
||||||
if (data && data.list) {
|
|
||||||
const that = this;
|
|
||||||
const list = data.list;
|
|
||||||
if (list) {
|
|
||||||
list.map(elem => {
|
|
||||||
that.$convertSpecifiedField(elem, that.mapList, 'id', 'name', ['mapId']);
|
|
||||||
elem.startStationCode = that.formatName(elem.startStationCode);
|
|
||||||
elem.startSectionCode = that.formatName(elem.startSectionCode);
|
|
||||||
elem.endStationCode = that.formatName(elem.endStationCode);
|
|
||||||
elem.endSectionCode = that.formatName(elem.endSectionCode);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return data;
|
|
||||||
},
|
|
||||||
createAll() {
|
|
||||||
// 根据地图交路一键生成生成所有站间运行等级
|
// 根据地图交路一键生成生成所有站间运行等级
|
||||||
if (this.mapInfo && this.mapInfo.id) {
|
if (this.mapInfo && this.mapInfo.id) {
|
||||||
generateAllStationRunData(this.mapInfo.id).then(response => {
|
generateAllStationRunData(this.mapInfo.id).then(response => {
|
||||||
@ -236,27 +144,80 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
editObj(index, row) {
|
editObj(index, row) {
|
||||||
getRunLevelDetail(row.id).then(response => { // 根据等级id 获取详情
|
// this.$set(this.runLevelList[index], 'l1New', row.l1);
|
||||||
const data = response.data;
|
// this.$set(this.runLevelList[index], 'l2New', row.l2);
|
||||||
this.$emit('routingSelected', data);
|
// this.$set(this.runLevelList[index], 'l3New', row.l3);
|
||||||
this.doClose();
|
// this.$set(this.runLevelList[index], 'l4New', row.l4);
|
||||||
});
|
// this.$set(this.runLevelList[index], 'l5New', row.l5);
|
||||||
|
this.$set(this.runLevelList[index], 'edit', true);
|
||||||
|
// getRunLevelDetail(row.id).then(response => { // 根据等级id 获取详情
|
||||||
|
// const data = response.data;
|
||||||
|
// this.$emit('routingSelected', data);
|
||||||
|
// this.doClose();
|
||||||
|
// });
|
||||||
},
|
},
|
||||||
deleteObj(index, row) {
|
save(index, row) {
|
||||||
if (this.mapInfo && this.mapInfo.id && row) {
|
if (this.mapInfo && this.mapInfo.id) {
|
||||||
deleteRunLevel(row.id).then(response => { // 删除
|
if (row.l1New > 0 && row.l2New > 0 && row.l3New > 0 && row.l4New > 0 && row.l5New > 0) {
|
||||||
this.$message.success('删除成功');
|
row.loading = true;
|
||||||
this.reloadTable();
|
putUploadLevel(this.mapInfo.id, row.id, {l1:row.l1New, l2:row.l2New, l3:row.l3New, l4:row.l1New, l5:row.l5New }).then(resp => {
|
||||||
|
this.$message.success('更新运行等级成功');
|
||||||
|
row.l1 = row.l1New;
|
||||||
|
row.l2 = row.l2New;
|
||||||
|
row.l3 = row.l3New;
|
||||||
|
row.l4 = row.l4New;
|
||||||
|
row.l5 = row.l5New;
|
||||||
|
row.edit = false;
|
||||||
|
row.loading = false;
|
||||||
}).catch(() => {
|
}).catch(() => {
|
||||||
this.$messageBox('删除失败');
|
row.loading = false;
|
||||||
|
this.$messageBox('更新运行等级失败');
|
||||||
});
|
});
|
||||||
|
} else {
|
||||||
|
this.$messageBox('请输入有效的运行等级');
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
// deleteObj(index, row) {
|
||||||
|
// if (this.mapInfo && this.mapInfo.id && row) {
|
||||||
|
// deleteRunLevel(row.id).then(response => { // 删除
|
||||||
|
// this.$message.success('删除成功');
|
||||||
|
// this.reloadTable();
|
||||||
|
// }).catch(() => {
|
||||||
|
// this.$messageBox('删除失败');
|
||||||
|
// });
|
||||||
|
// }
|
||||||
|
// },
|
||||||
reloadTable() {
|
reloadTable() {
|
||||||
if (this.queryList && this.queryList.reload) {
|
if (this.mapInfo && this.mapInfo.id) {
|
||||||
this.queryList.reload();
|
this.runLevelList = [];
|
||||||
|
this.tableLoading = true;
|
||||||
|
getRunLevelList(this.mapInfo.id).then(response => {
|
||||||
|
this.tableLoading = false;
|
||||||
|
const runLevelList = [];
|
||||||
|
response.data.forEach(each=>{
|
||||||
|
each.l1New = each.l1;
|
||||||
|
each.l2New = each.l2;
|
||||||
|
each.l3New = each.l3;
|
||||||
|
each.l4New = each.l4;
|
||||||
|
each.l5New = each.l5;
|
||||||
|
runLevelList.push(each);
|
||||||
|
});
|
||||||
|
this.runLevelList = runLevelList;
|
||||||
|
}).catch(()=>{
|
||||||
|
this.tableLoading = false;
|
||||||
|
this.runLevelList = [];
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.generateRunLevel{
|
||||||
|
float: right;
|
||||||
|
margin-right: 30px;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
@ -52,7 +52,6 @@
|
|||||||
<script>
|
<script>
|
||||||
import { saveMap, getMapDetail, verifyMap, postBuildMapImport, getRouteNewList, getAutoReentryList } from '@/api/jmap/mapdraft';
|
import { saveMap, getMapDetail, verifyMap, postBuildMapImport, getRouteNewList, getAutoReentryList } from '@/api/jmap/mapdraft';
|
||||||
import { ViewMode, TrainingMode, getDeviceMenuByDeviceType, DeviceMenu } from '@/scripts/ConstDic';
|
import { ViewMode, TrainingMode, getDeviceMenuByDeviceType, DeviceMenu } from '@/scripts/ConstDic';
|
||||||
import { checkLoginLine } from '@/api/login';
|
|
||||||
import JlmapVisual from '@/views/newMap/jlmapNew/index';
|
import JlmapVisual from '@/views/newMap/jlmapNew/index';
|
||||||
import MapOperate from './mapoperate/index';
|
import MapOperate from './mapoperate/index';
|
||||||
import { EventBus } from '@/scripts/event-bus';
|
import { EventBus } from '@/scripts/event-bus';
|
||||||
@ -85,7 +84,6 @@ export default {
|
|||||||
autoSaveTask: null,
|
autoSaveTask: null,
|
||||||
selected: null,
|
selected: null,
|
||||||
mapInfo: { name: this.$t('map.pleaseSelectMap') },
|
mapInfo: { name: this.$t('map.pleaseSelectMap') },
|
||||||
timeDemon: null,
|
|
||||||
oldDevice: null,
|
oldDevice: null,
|
||||||
draftShow: false,
|
draftShow: false,
|
||||||
size: {
|
size: {
|
||||||
@ -138,9 +136,6 @@ export default {
|
|||||||
mounted() {
|
mounted() {
|
||||||
this.setWindowSize();
|
this.setWindowSize();
|
||||||
this.loadInitPage();
|
this.loadInitPage();
|
||||||
this.timeDemon = setInterval(() => {
|
|
||||||
checkLoginLine();
|
|
||||||
}, 5000 * 60);
|
|
||||||
EventBus.$on('SELECTON', () => {
|
EventBus.$on('SELECTON', () => {
|
||||||
this.selected = null;
|
this.selected = null;
|
||||||
});
|
});
|
||||||
@ -149,9 +144,6 @@ export default {
|
|||||||
EventBus.$off('SELECTON');
|
EventBus.$off('SELECTON');
|
||||||
this.clearAutoSave();
|
this.clearAutoSave();
|
||||||
this.$store.dispatch('map/mapClear');
|
this.$store.dispatch('map/mapClear');
|
||||||
if (this.timeDemon) {
|
|
||||||
clearTimeout(this.timeDemon);
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
clickRightBtn() {
|
clickRightBtn() {
|
||||||
|
@ -36,7 +36,6 @@
|
|||||||
<script>
|
<script>
|
||||||
import { saveMap, verifyMap, getMapDetail, postBuildMapImport, getRouteNewList, getAutoReentryList } from '@/api/jmap/mapdraft';
|
import { saveMap, verifyMap, getMapDetail, postBuildMapImport, getRouteNewList, getAutoReentryList } from '@/api/jmap/mapdraft';
|
||||||
import { ViewMode, TrainingMode, getDeviceMenuByDeviceType, DeviceMenu } from '@/scripts/ConstDic';
|
import { ViewMode, TrainingMode, getDeviceMenuByDeviceType, DeviceMenu } from '@/scripts/ConstDic';
|
||||||
import { checkLoginLine } from '@/api/login';
|
|
||||||
import JlmapVisual from '@/views/newMap/jlmapNew/index';
|
import JlmapVisual from '@/views/newMap/jlmapNew/index';
|
||||||
import MapOperate from './mapoperate/index';
|
import MapOperate from './mapoperate/index';
|
||||||
import { EventBus } from '@/scripts/event-bus';
|
import { EventBus } from '@/scripts/event-bus';
|
||||||
@ -59,7 +58,6 @@ export default {
|
|||||||
autoSaveTask: null,
|
autoSaveTask: null,
|
||||||
selected: null,
|
selected: null,
|
||||||
mapInfo: { name: this.$t('map.pleaseSelectMap') },
|
mapInfo: { name: this.$t('map.pleaseSelectMap') },
|
||||||
timeDemon: null,
|
|
||||||
oldDevice: null,
|
oldDevice: null,
|
||||||
draftShow: false,
|
draftShow: false,
|
||||||
size: {
|
size: {
|
||||||
@ -112,9 +110,6 @@ export default {
|
|||||||
mounted() {
|
mounted() {
|
||||||
this.setWindowSize();
|
this.setWindowSize();
|
||||||
this.loadInitPage();
|
this.loadInitPage();
|
||||||
this.timeDemon = setInterval(() => {
|
|
||||||
checkLoginLine();
|
|
||||||
}, 5000 * 60);
|
|
||||||
EventBus.$on('SELECTON', () => {
|
EventBus.$on('SELECTON', () => {
|
||||||
this.selected = null;
|
this.selected = null;
|
||||||
});
|
});
|
||||||
@ -123,9 +118,6 @@ export default {
|
|||||||
EventBus.$off('SELECTON');
|
EventBus.$off('SELECTON');
|
||||||
this.clearAutoSave();
|
this.clearAutoSave();
|
||||||
this.$store.dispatch('map/mapClear');
|
this.$store.dispatch('map/mapClear');
|
||||||
if (this.timeDemon) {
|
|
||||||
clearTimeout(this.timeDemon);
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
clickRightBtn() {
|
clickRightBtn() {
|
||||||
|
@ -64,7 +64,6 @@ import MovePlaningTrain from '../components/menus/movePlaningTrain';
|
|||||||
import ModifyingStationIntervalTime from '../components/menus/modifyingStationIntervalTime';
|
import ModifyingStationIntervalTime from '../components/menus/modifyingStationIntervalTime';
|
||||||
import ModifyingStationStopTime from '../components/menus/modifyingStationStopTime';
|
import ModifyingStationStopTime from '../components/menus/modifyingStationStopTime';
|
||||||
import { deletePlanService } from '@/api/runplan';
|
import { deletePlanService } from '@/api/runplan';
|
||||||
import { checkLoginLine } from '@/api/login';
|
|
||||||
import { loadMapDataById } from '@/utils/loaddata';
|
import { loadMapDataById } from '@/utils/loaddata';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
@ -92,7 +91,6 @@ export default {
|
|||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
PlanParser: {},
|
PlanParser: {},
|
||||||
timeDemon: null,
|
|
||||||
runPlanList: [],
|
runPlanList: [],
|
||||||
loadRunPlanId: '',
|
loadRunPlanId: '',
|
||||||
loadRunPlanName: '',
|
loadRunPlanName: '',
|
||||||
@ -114,9 +112,6 @@ export default {
|
|||||||
this.PlanParser = this.$theme.loadPlanParser(this.lineCode);
|
this.PlanParser = this.$theme.loadPlanParser(this.lineCode);
|
||||||
},
|
},
|
||||||
async mounted() {
|
async mounted() {
|
||||||
this.timeDemon = setInterval(() => {
|
|
||||||
checkLoginLine();
|
|
||||||
}, 5000 * 60);
|
|
||||||
this.loadRunPlanName = this.$route.query.planName;
|
this.loadRunPlanName = this.$route.query.planName;
|
||||||
if (this.$route.query.mapId) {
|
if (this.$route.query.mapId) {
|
||||||
// this.refreshRunPlanList(true);
|
// this.refreshRunPlanList(true);
|
||||||
@ -124,9 +119,6 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
beforeDestroy() {
|
beforeDestroy() {
|
||||||
if (this.timeDemon) {
|
|
||||||
clearTimeout(this.timeDemon);
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
dispatchDialog(dialogObj) {
|
dispatchDialog(dialogObj) {
|
||||||
|
@ -50,7 +50,6 @@ import MovePlaningTrain from '../components/menus/movePlaningTrain';
|
|||||||
import ModifyingStationIntervalTime from '../components/menus/modifyingStationIntervalTime';
|
import ModifyingStationIntervalTime from '../components/menus/modifyingStationIntervalTime';
|
||||||
import ModifyingStationStopTime from '../components/menus/modifyingStationStopTime';
|
import ModifyingStationStopTime from '../components/menus/modifyingStationStopTime';
|
||||||
import { deletePlanService } from '@/api/runplan';
|
import { deletePlanService } from '@/api/runplan';
|
||||||
import { checkLoginLine } from '@/api/login';
|
|
||||||
import { loadMapDataById } from '@/utils/loaddata';
|
import { loadMapDataById } from '@/utils/loaddata';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
@ -79,7 +78,6 @@ export default {
|
|||||||
planId: '',
|
planId: '',
|
||||||
planTitle: '',
|
planTitle: '',
|
||||||
PlanParser: {},
|
PlanParser: {},
|
||||||
timeDemon: null,
|
|
||||||
runplanLoading: false
|
runplanLoading: false
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
@ -104,13 +102,9 @@ export default {
|
|||||||
if (this.mapId) {
|
if (this.mapId) {
|
||||||
this.runplanLoading = true;
|
this.runplanLoading = true;
|
||||||
await loadMapDataById(this.mapId, 'parse');
|
await loadMapDataById(this.mapId, 'parse');
|
||||||
this.timeDemon = setInterval(_ => checkLoginLine(), 5000 * 60);
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
beforeDestroy() {
|
beforeDestroy() {
|
||||||
if (this.timeDemon) {
|
|
||||||
clearTimeout(this.timeDemon);
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
dispatchDialog(dialogObj) {
|
dispatchDialog(dialogObj) {
|
||||||
|
@ -68,7 +68,6 @@ import ModifyingStationIntervalTime from '../components/menus/modifyingStationIn
|
|||||||
import ModifyingStationStopTime from '../components/menus/modifyingStationStopTime';
|
import ModifyingStationStopTime from '../components/menus/modifyingStationStopTime';
|
||||||
import CreateEmptyPlan from './menus/createEmptyPlan';
|
import CreateEmptyPlan from './menus/createEmptyPlan';
|
||||||
import { deletePlanService } from '@/api/runplan';
|
import { deletePlanService } from '@/api/runplan';
|
||||||
import { checkLoginLine } from '@/api/login';
|
|
||||||
import { loadMapDataById } from '@/utils/loaddata';
|
import { loadMapDataById } from '@/utils/loaddata';
|
||||||
import { getRpListByMapId } from '@/api/runplan';
|
import { getRpListByMapId } from '@/api/runplan';
|
||||||
|
|
||||||
@ -98,7 +97,6 @@ export default {
|
|||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
PlanParser: {},
|
PlanParser: {},
|
||||||
timeDemon: null,
|
|
||||||
runPlanList: [],
|
runPlanList: [],
|
||||||
loadRunPlanId: '',
|
loadRunPlanId: '',
|
||||||
loadRunPlanName: '',
|
loadRunPlanName: '',
|
||||||
@ -119,9 +117,6 @@ export default {
|
|||||||
this.PlanParser = this.$theme.loadPlanParser(this.lineCode);
|
this.PlanParser = this.$theme.loadPlanParser(this.lineCode);
|
||||||
},
|
},
|
||||||
async mounted() {
|
async mounted() {
|
||||||
this.timeDemon = setInterval(() => {
|
|
||||||
checkLoginLine();
|
|
||||||
}, 5000 * 60);
|
|
||||||
// this.loadRunPlanName = this.$route.query.planName;
|
// this.loadRunPlanName = this.$route.query.planName;
|
||||||
if (this.$route.query.mapId) {
|
if (this.$route.query.mapId) {
|
||||||
this.refreshRunPlanList(true);
|
this.refreshRunPlanList(true);
|
||||||
@ -129,9 +124,6 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
beforeDestroy() {
|
beforeDestroy() {
|
||||||
if (this.timeDemon) {
|
|
||||||
clearTimeout(this.timeDemon);
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
dispatchDialog(dialogObj) {
|
dispatchDialog(dialogObj) {
|
||||||
|
@ -107,7 +107,8 @@ export default {
|
|||||||
'stationPreResetBeforeAxlePreReset',
|
'stationPreResetBeforeAxlePreReset',
|
||||||
'generateDestination',
|
'generateDestination',
|
||||||
'switchTurnOperationCanRecoverSplitFault',
|
'switchTurnOperationCanRecoverSplitFault',
|
||||||
'holdCommandIgnoreControlMode'
|
'holdCommandIgnoreControlMode',
|
||||||
|
'delayWhenCancelRouteWithAbnormalInterlock'
|
||||||
],
|
],
|
||||||
selectList: ['runMode'],
|
selectList: ['runMode'],
|
||||||
generalConfig: [
|
generalConfig: [
|
||||||
@ -145,11 +146,14 @@ export default {
|
|||||||
'stationPreResetBeforeAxlePreReset',
|
'stationPreResetBeforeAxlePreReset',
|
||||||
'generateDestination',
|
'generateDestination',
|
||||||
'switchTurnOperationCanRecoverSplitFault',
|
'switchTurnOperationCanRecoverSplitFault',
|
||||||
'holdCommandIgnoreControlMode'
|
'holdCommandIgnoreControlMode',
|
||||||
|
'delayWhenCancelRouteWithAbnormalInterlock',
|
||||||
|
'figuresOfTripNumber',
|
||||||
|
'figuresOfServiceNumber'
|
||||||
],
|
],
|
||||||
rangeList: ['noParkingSM', 'parkingSM'],
|
rangeList: ['noParkingSM', 'parkingSM'],
|
||||||
speedList: ['rmAtpSpeed', 'urmAtpSpeed'],
|
speedList: ['rmAtpSpeed', 'urmAtpSpeed'],
|
||||||
numberList: [],
|
numberList: ['figuresOfTripNumber', 'figuresOfServiceNumber'],
|
||||||
optionsMap: {
|
optionsMap: {
|
||||||
runMode:[{label: 'CBTC级别', value: 'CBTC'}, {label: '点式通信', value: 'ITC'}, {label: '联锁级', value: 'IL'}]
|
runMode:[{label: 'CBTC级别', value: 'CBTC'}, {label: '点式通信', value: 'ITC'}, {label: '联锁级', value: 'IL'}]
|
||||||
},
|
},
|
||||||
@ -188,7 +192,10 @@ export default {
|
|||||||
stationPreResetBeforeAxlePreReset: '计轴预复位前需要车站预复位',
|
stationPreResetBeforeAxlePreReset: '计轴预复位前需要车站预复位',
|
||||||
generateDestination: '是否生成目的地码定义(泰雷兹)',
|
generateDestination: '是否生成目的地码定义(泰雷兹)',
|
||||||
switchTurnOperationCanRecoverSplitFault: '道岔转动操作可以使失表故障恢复',
|
switchTurnOperationCanRecoverSplitFault: '道岔转动操作可以使失表故障恢复',
|
||||||
holdCommandIgnoreControlMode: '扣车命令不区分控制模式'
|
holdCommandIgnoreControlMode: '扣车命令不区分控制模式',
|
||||||
|
delayWhenCancelRouteWithAbnormalInterlock: '取消联锁条件不满足的进路时需要延时解锁',
|
||||||
|
figuresOfTripNumber: '车次号的位数',
|
||||||
|
figuresOfServiceNumber: '服务号的位数'
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user