Merge remote-tracking branch 'origin/test'
This commit is contained in:
commit
62da1ca95d
@ -562,11 +562,3 @@ export function deleteStationDestination(mapId, code) {
|
||||
method: 'delete'
|
||||
});
|
||||
}
|
||||
|
||||
/** 根据group查询目的码 */
|
||||
export function getSimulationDestinationList(group) {
|
||||
return request({
|
||||
url: `/simulation/${group}/destinationCode/list`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
33
src/api/mapGroup.js
Normal file
33
src/api/mapGroup.js
Normal file
@ -0,0 +1,33 @@
|
||||
import request from '@/utils/request';
|
||||
|
||||
/** 创建分组 */
|
||||
export function createMapGroup(data) {
|
||||
return request({
|
||||
url: `/api/mapGroup`,
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
/** 修改分组 */
|
||||
export function updateMapGroup(data) {
|
||||
return request({
|
||||
url: `/api/mapGroup/${data.groupId}`,
|
||||
method: 'put',
|
||||
data
|
||||
});
|
||||
}
|
||||
/** 删除分组 */
|
||||
export function deleteMapGroup(groupId) {
|
||||
return request({
|
||||
url: `/api/mapGroup/${groupId}`,
|
||||
method: 'delete'
|
||||
});
|
||||
}
|
||||
/** 分页查询地图分组 */
|
||||
export function queryMapGroupPaging(params) {
|
||||
return request({
|
||||
url: `/api/mapGroup/page`,
|
||||
method: 'get',
|
||||
params
|
||||
});
|
||||
}
|
@ -437,3 +437,25 @@ export function getPathListByStandCodeOrSignalCode( group, params ) {
|
||||
params
|
||||
});
|
||||
}
|
||||
/** 查询未该列车以建立的进路 */
|
||||
export function getRouteListForTrain( group, groupNumber ) {
|
||||
return request({
|
||||
url: `/simulation/${group}/queryEstablishedRoutes/${groupNumber}`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
/** 根据group查询目的码 */
|
||||
export function getSimulationDestinationList(group) {
|
||||
return request({
|
||||
url: `/simulation/${group}/destinationCode/list`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
/** 查询运行线或者列车经过的站台 */
|
||||
export function getStandListByRunLineOrTrainCode(group, params) {
|
||||
return request({
|
||||
url: `simulation/${group}/queryStands/trainOrDestination`,
|
||||
method: 'get',
|
||||
params
|
||||
});
|
||||
}
|
||||
|
10
src/api/voice.js
Normal file
10
src/api/voice.js
Normal file
@ -0,0 +1,10 @@
|
||||
import request from '@/utils/request';
|
||||
|
||||
/** 上传录音文件 */
|
||||
export function uploadAudioFiles(file) {
|
||||
return request({
|
||||
url: `/api/voice/recognition`,
|
||||
method: 'post',
|
||||
data: file
|
||||
});
|
||||
}
|
BIN
src/assets/iscs_picture/little-stand.png
Normal file
BIN
src/assets/iscs_picture/little-stand.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 41 KiB |
BIN
src/assets/iscs_picture/little-station.png
Normal file
BIN
src/assets/iscs_picture/little-station.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 53 KiB |
@ -89,5 +89,7 @@ export default {
|
||||
preTheoryData: 'Pre Theory Data',
|
||||
boardManage: 'Message Board Manage',
|
||||
publishIBPManage:'publish IBP Manage',
|
||||
publishISCSManage:'publish ISCS Manage'
|
||||
publishISCSManage:'publish ISCS Manage',
|
||||
voiceTraining: 'Voice Training',
|
||||
mapGroup: 'Map Group'
|
||||
};
|
||||
|
@ -94,5 +94,7 @@ export default {
|
||||
preTheoryData: '理论导入预处理',
|
||||
boardManage: '留言板管理',
|
||||
publishIBPManage:'发布IBP盘管理',
|
||||
publishISCSManage:'发布ISCS管理'
|
||||
publishISCSManage:'发布ISCS管理',
|
||||
voiceTraining: '语音训练',
|
||||
mapGroup: '地图分组'
|
||||
};
|
||||
|
@ -116,6 +116,13 @@ class Iscs {
|
||||
// loadStyle(lineCode) {
|
||||
// return selectLineCode(lineCode);
|
||||
// }
|
||||
hideShowElementType(deviceType, subType) {
|
||||
for (const val in this.iscsDevice) {
|
||||
if (this.iscsDevice[val].model._type === deviceType && this.iscsDevice[val].model.type.includes(subType)) {
|
||||
this.$painter.hideShowElement(this.iscsDevice[val]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
setCenter(deviceCode) {
|
||||
const device = this.iscsDevice[deviceCode];
|
||||
|
@ -53,7 +53,10 @@ class Painter {
|
||||
this.add(device);
|
||||
});
|
||||
}
|
||||
|
||||
/** 视图显影控制 */
|
||||
hideShowElement(device) {
|
||||
device.instance.hideShowElement();
|
||||
}
|
||||
/**
|
||||
* 添加视图
|
||||
* @param {*} device
|
||||
|
@ -59,7 +59,7 @@ export default class Button extends Group {
|
||||
this.grouper.add(this.imageButton);
|
||||
this.on('mousedown', (e) => { this.imageButton && this.imageButton.setStyle({image: buttonActive}); });
|
||||
this.on('mouseup', (e) => { this.imageButton && this.imageButton.setStyle({image: buttonImg}); });
|
||||
} else if (['02','09'].includes(Vue.prototype.$iscs.lineCode)) {
|
||||
} else if (['02'].includes(Vue.prototype.$iscs.lineCode)) {
|
||||
this.textButtonRect = new Rect({
|
||||
zlevel: model.zlevel,
|
||||
z: model.z,
|
||||
@ -69,11 +69,10 @@ export default class Button extends Group {
|
||||
y: textRect.y - model.verticalPadding,
|
||||
width: textRect.width + 2 * model.levelPadding,
|
||||
height: textRect.height + 2 * model.verticalPadding,
|
||||
fill: model.fillColor||'rgba(0,0,0,0)'
|
||||
},
|
||||
style: {
|
||||
lineWidth: 0,
|
||||
fill: '#D1C2C2'
|
||||
fill: model.fillColor||'#D1C2C2'
|
||||
}
|
||||
});
|
||||
this.lineLeftTop = new Polyline({
|
||||
@ -89,7 +88,7 @@ export default class Button extends Group {
|
||||
]
|
||||
},
|
||||
style: {
|
||||
lineWidth: 2,
|
||||
lineWidth: model.isTransparent ? 0: 2,
|
||||
stroke: '#FFFFFF'
|
||||
}
|
||||
});
|
||||
@ -106,48 +105,46 @@ export default class Button extends Group {
|
||||
]
|
||||
},
|
||||
style: {
|
||||
lineWidth: 2,
|
||||
lineWidth: model.isTransparent ? 0: 2,
|
||||
stroke: '#696969'
|
||||
}
|
||||
});
|
||||
this.grouper.add(this.textButtonRect);
|
||||
this.grouper.add(this.lineLeftTop);
|
||||
this.grouper.add(this.lineBottomRight);
|
||||
if (this.model.function == 'ElementShow') {
|
||||
this.textButtonRectSmall = new Rect({
|
||||
zlevel: model.zlevel,
|
||||
z: model.z,
|
||||
z2: model.z2 || 0,
|
||||
shape: {
|
||||
x: textRect.x - model.levelPadding + 6,
|
||||
y: textRect.y - model.verticalPadding + 6,
|
||||
width: textRect.width + 2 * model.levelPadding - 12,
|
||||
height: textRect.height + 2 * model.verticalPadding - 12,
|
||||
fill: model.fillColor||'rgba(0,0,0,0)'
|
||||
},
|
||||
style: {
|
||||
lineWidth: 2,
|
||||
fill: 'rgba(0,0,0,0)',
|
||||
stroke: '#908A90'
|
||||
}
|
||||
});
|
||||
this.grouper.add(this.textButtonRectSmall);
|
||||
this.textButtonRect.setStyle({fill: '#00CC00'});
|
||||
this.lineLeftTop.setStyle({stroke: '#ffffff'});
|
||||
this.lineBottomRight.setStyle({stroke: '#948390'});
|
||||
} else {
|
||||
// if (this.model.function == 'ElementShow') {
|
||||
// this.textButtonRectSmall = new Rect({
|
||||
// zlevel: model.zlevel,
|
||||
// z: model.z,
|
||||
// z2: model.z2 || 0,
|
||||
// shape: {
|
||||
// x: textRect.x - model.levelPadding + 6,
|
||||
// y: textRect.y - model.verticalPadding + 6,
|
||||
// width: textRect.width + 2 * model.levelPadding - 12,
|
||||
// height: textRect.height + 2 * model.verticalPadding - 12,
|
||||
// },
|
||||
// style: {
|
||||
// lineWidth: model.isTransparent ? 0: 2,
|
||||
// fill: model.fillColor||'rgba(0,0,0,0)',
|
||||
// stroke: '#908A90'
|
||||
// }
|
||||
// });
|
||||
// this.grouper.add(this.textButtonRectSmall);
|
||||
// this.textButtonRect.setStyle({fill: model.fillColor||'#D1C2C2'});
|
||||
// this.lineLeftTop.setStyle({stroke: '#ffffff'});
|
||||
// this.lineBottomRight.setStyle({stroke: '#948390'});
|
||||
// } else {
|
||||
this.on('mousedown', (e) => {
|
||||
this.textButtonRect.setStyle({fill: '#847b7b'});
|
||||
this.textButtonRect.setStyle({fill: model.fillColorActive});
|
||||
this.lineLeftTop.setStyle({stroke: '#696969'});
|
||||
this.lineBottomRight.setStyle({stroke: '#FFFFFF'});
|
||||
});
|
||||
this.on('mouseup', (e) => {
|
||||
this.textButtonRect.setStyle({fill: '#D1C2C2'});
|
||||
this.textButtonRect.setStyle({fill: model.fillColor||'#D1C2C2'});
|
||||
this.lineLeftTop.setStyle({stroke: '#FFFFFF'});
|
||||
this.lineBottomRight.setStyle({stroke: '#696969'});
|
||||
});
|
||||
}
|
||||
|
||||
// }
|
||||
}
|
||||
this.grouper.add(this.buttonText);
|
||||
this.add(this.grouper);
|
||||
|
@ -72,14 +72,16 @@ import fireDamperGreen from '@/assets/iscs_picture/fireDamper_green.png';
|
||||
import alarmLampRed from '@/assets/iscs_picture/alarmLamp_red.png';
|
||||
import alarmLampBlue from '@/assets/iscs_picture/alarmLamp_blue.png';
|
||||
import alarmLampGreen from '@/assets/iscs_picture/alarmLamp_green.png';
|
||||
import bgStationA from '@/assets/iscs_picture/bg-station-A.png'
|
||||
import bgStationB from '@/assets/iscs_picture/bg-station-B.png'
|
||||
import bgStationC from '@/assets/iscs_picture/bg-station-C.png'
|
||||
import bgStationD from '@/assets/iscs_picture/bg-station-D.png'
|
||||
import bgStationE from '@/assets/iscs_picture/bg-station-E.png'
|
||||
import bgStationF from '@/assets/iscs_picture/bg-station-F.png'
|
||||
import bgStationA from '@/assets/iscs_picture/bg-station-A.png';
|
||||
import bgStationB from '@/assets/iscs_picture/bg-station-B.png';
|
||||
import bgStationC from '@/assets/iscs_picture/bg-station-C.png';
|
||||
import bgStationD from '@/assets/iscs_picture/bg-station-D.png';
|
||||
import bgStationE from '@/assets/iscs_picture/bg-station-E.png';
|
||||
import bgStationF from '@/assets/iscs_picture/bg-station-F.png';
|
||||
import bgDoorStationA from '@/assets/iscs_picture/bg-door-station-A.png';
|
||||
import bgDoorStandA from '@/assets/iscs_picture/bg-door-stand-A.png';
|
||||
import littleStation from '@/assets/iscs_picture/little-station.png';
|
||||
import littleStand from '@/assets/iscs_picture/little-stand.png';
|
||||
|
||||
const pictureObj = {
|
||||
'psdLeft': psdLeft,
|
||||
@ -87,8 +89,8 @@ const pictureObj = {
|
||||
'psdRight': psdRight,
|
||||
'APF': iscsAPF,
|
||||
'envPersonDoor': envPersonDoor,
|
||||
's': fireBlue,
|
||||
'a': fireRed,
|
||||
'alarmButtonBlue': fireBlue,
|
||||
'alarmButtonRed': fireRed,
|
||||
hand,
|
||||
fmBlue,
|
||||
fmGray,
|
||||
@ -159,7 +161,9 @@ const pictureObj = {
|
||||
bgStationE,
|
||||
bgStationF,
|
||||
bgDoorStationA,
|
||||
bgDoorStandA
|
||||
bgDoorStandA,
|
||||
littleStation,
|
||||
littleStand
|
||||
};
|
||||
export default class Picture extends Group {
|
||||
constructor(device) {
|
||||
@ -216,4 +220,11 @@ export default class Picture extends Group {
|
||||
rect.y = rect.y + this.model.point.y;
|
||||
return rect;
|
||||
}
|
||||
hideShowElement() {
|
||||
if (this.imageButton && this.imageButton.ignore) {
|
||||
this.imageButton.show();
|
||||
} else {
|
||||
this.imageButton && this.imageButton.hide();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -2,29 +2,195 @@ import { BASE_ASSET_API } from '@/api/jlmap3d/assets3d.js';
|
||||
|
||||
export function AssetModelManager(scene) {
|
||||
let scope = this;
|
||||
|
||||
|
||||
this.assetList = [];
|
||||
|
||||
this.otherModel = new THREE.Group();
|
||||
|
||||
scene.add(this.otherModel);
|
||||
|
||||
this.loadAsset = [];
|
||||
|
||||
this.loadAsset['default1'] = {
|
||||
modelId:'default1',
|
||||
packageName:"车站",
|
||||
url:"/MODEL/2021-04-06/1381-54584.FBX",
|
||||
mesh:"",
|
||||
assetType:'default',
|
||||
isUse:true,
|
||||
resourceType:"三维课程",
|
||||
};
|
||||
|
||||
//场景中可触发事件模型
|
||||
this.lessonTriggerList = [];
|
||||
|
||||
this.saveModelList = function(){
|
||||
let modelList = {
|
||||
assetList:[],
|
||||
modelList:[],
|
||||
};
|
||||
|
||||
for(let k in scope.loadAsset){
|
||||
modelList.assetList.push({
|
||||
modelId:scope.loadAsset[k].modelId,
|
||||
packageName:scope.loadAsset[k].packageName,
|
||||
url:scope.loadAsset[k].url,
|
||||
assetType:scope.loadAsset[k].assetType,
|
||||
isUse:scope.loadAsset[k].isUse,
|
||||
resourceType:scope.loadAsset[k].resourceType,
|
||||
});
|
||||
}
|
||||
|
||||
for(let i=0;i<scope.lessonTriggerList.length;i++){
|
||||
if(scope.lessonTriggerList[i].showType != "default"){
|
||||
modelList.modelList.push({
|
||||
name:scope.lessonTriggerList[i].name,
|
||||
modelId:scope.lessonTriggerList[i].modelId,
|
||||
label:scope.lessonTriggerList[i].label,
|
||||
pos:{
|
||||
x:scope.lessonTriggerList[i].position.x,
|
||||
y:scope.lessonTriggerList[i].position.y,
|
||||
z:scope.lessonTriggerList[i].position.z
|
||||
},
|
||||
rot:{
|
||||
x:scope.lessonTriggerList[i].position.x,
|
||||
y:scope.lessonTriggerList[i].position.y,
|
||||
z:scope.lessonTriggerList[i].position.z
|
||||
},
|
||||
showType:scope.lessonTriggerList[i].showType,
|
||||
visible:scope.lessonTriggerList[i].visible,
|
||||
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// console.log(modelList);
|
||||
return modelList;
|
||||
}
|
||||
|
||||
//加载课程资源
|
||||
this.lessonAssetsLoader = function(){
|
||||
fbxpromise();
|
||||
this.lessonAssetsLoader = function(assetList,modelList){
|
||||
|
||||
|
||||
let initlist = [];
|
||||
if(assetList){
|
||||
for(let i = 0;i<assetList.length;i++){
|
||||
assetList[i].mesh = "";
|
||||
scope.loadAsset[assetList[i].modelId] = assetList[i];
|
||||
|
||||
}
|
||||
}
|
||||
for(let k in scope.loadAsset){
|
||||
initlist.push(fbxpromise(scope.loadAsset[k]));
|
||||
|
||||
}
|
||||
|
||||
|
||||
return new Promise(function(resolve, reject){
|
||||
Promise.all(initlist).then((result) => {
|
||||
|
||||
|
||||
initTriggerList();
|
||||
for(let i=0;i<modelList.length;i++){
|
||||
console.log(modelList[i]);
|
||||
let newModelTrigger = scope.loadAsset[modelList[i].modelId].mesh.clone(true);
|
||||
newModelTrigger.showType = "loadModel";
|
||||
newModelTrigger.label = modelList[i].label;
|
||||
newModelTrigger.modelId = modelList[i].modelId;
|
||||
newModelTrigger.visible = modelList[i].visible;
|
||||
newModelTrigger.position.copy(modelList[i].pos);
|
||||
newModelTrigger.rotation.copy(modelList[i].rot);
|
||||
scope.otherModel.add(newModelTrigger);
|
||||
scope.lessonTriggerList.push(newModelTrigger);
|
||||
}
|
||||
|
||||
updateTriggerList(scope.lessonTriggerList);
|
||||
resolve("loaderassets"); //['成功了', 'success']
|
||||
}).catch((error) => {
|
||||
//console.log(error);
|
||||
});
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
// <el-option label="车站" value="standstation"></el-option>
|
||||
// <el-option label="停车场" value="stopstation"></el-option>
|
||||
// <el-option label="单体设备" value="device"></el-option>
|
||||
// <el-option label="线路" value="xl"></el-option>
|
||||
// <el-option label="道岔" value="dc"></el-option>
|
||||
//FT 扶梯
|
||||
//FTAN 扶梯按钮(急停)
|
||||
//FTD 扶梯灯
|
||||
//FTKG 扶梯开关(钥匙孔)
|
||||
//FTTJ 扶梯台阶
|
||||
function initTriggerList(){
|
||||
scope.loadAsset['default1'].mesh.getObjectByName("FTAN").showType = "default";
|
||||
scope.loadAsset['default1'].mesh.getObjectByName("FTAN").label = "扶梯急停按钮";
|
||||
scope.lessonTriggerList.push(scope.loadAsset['default1'].mesh.getObjectByName("FTAN"));
|
||||
|
||||
scope.loadAsset['default1'].mesh.getObjectByName("FTKG").showType = "default";
|
||||
scope.loadAsset['default1'].mesh.getObjectByName("FTKG").label = "扶梯钥匙孔";
|
||||
scope.lessonTriggerList.push(scope.loadAsset['default1'].mesh.getObjectByName("FTKG"));
|
||||
|
||||
|
||||
// console.log(scope.loadAsset['default1'].mesh.getObjectByName("FTKG"));
|
||||
}
|
||||
|
||||
//动态加载资源
|
||||
this.assetLoader = function(){
|
||||
this.lessonAssetsNewLoader = function(assetData,pos){
|
||||
let isLoaded = false;
|
||||
if(scope.loadAsset[assetData.id]){
|
||||
let newModelTrigger = scope.loadAsset[assetData.id].mesh.clone(true);
|
||||
newModelTrigger.modelId = assetData.id;
|
||||
newModelTrigger.showType = "loadModel";
|
||||
newModelTrigger.label = assetData.packageName;
|
||||
newModelTrigger.position.copy(pos);
|
||||
scope.otherModel.add(newModelTrigger);
|
||||
scope.lessonTriggerList.push(newModelTrigger);
|
||||
updateTriggerList(scope.lessonTriggerList);
|
||||
}else{
|
||||
scope.loadAsset[assetData.id] = {
|
||||
modelId:assetData.id,
|
||||
packageName:assetData.packageName,
|
||||
url:assetData.url,
|
||||
mesh:"",
|
||||
assetType:'loadModel',
|
||||
isUse:true,
|
||||
resourceType:"三维课程",
|
||||
};
|
||||
console.log("new");
|
||||
fbxpromise(scope.loadAsset[assetData.id]).then(function(object){
|
||||
|
||||
let newModelTrigger = scope.loadAsset[assetData.id].mesh.clone(true);
|
||||
newModelTrigger.showType = "loadModel";
|
||||
newModelTrigger.modelId = assetData.id;
|
||||
newModelTrigger.label = assetData.packageName;
|
||||
newModelTrigger.position.copy(pos);
|
||||
scope.otherModel.add(newModelTrigger);
|
||||
scope.lessonTriggerList.push(newModelTrigger);
|
||||
|
||||
updateTriggerList(scope.lessonTriggerList);
|
||||
// resolve("loadednew");
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//fbx模型加载
|
||||
function fbxpromise(){
|
||||
function fbxpromise(asset){
|
||||
return new Promise(function(resolve, reject){
|
||||
var loader = new THREE.FBXLoader();
|
||||
loader.load( BASE_ASSET_API+"/MODEL/2021-03-25/1370-3193.FBX", function ( object ) {
|
||||
loader.load( BASE_ASSET_API+asset.url, function ( object ) {
|
||||
|
||||
|
||||
scope.loadAsset.push(object);
|
||||
if(asset.assetType == "default"){
|
||||
scene.add(object);
|
||||
}else if(asset.assetType == 'loadModel'){
|
||||
|
||||
}
|
||||
asset.mesh = object;
|
||||
resolve();
|
||||
} );
|
||||
|
||||
|
@ -65,7 +65,12 @@ export function Lesson3dEditor(dom,lessonData) {
|
||||
lesson3dUpdateControl(scope.controls);
|
||||
|
||||
let assetModelManager = new AssetModelManager(scene);
|
||||
if(lessonData.assetList.length>0 || lessonData.modelList.length>0){
|
||||
assetModelManager.lessonAssetsLoader(lessonData.assetList,lessonData.modelList);
|
||||
}else{
|
||||
assetModelManager.lessonAssetsLoader();
|
||||
}
|
||||
|
||||
animate();
|
||||
|
||||
|
||||
@ -83,4 +88,27 @@ export function Lesson3dEditor(dom,lessonData) {
|
||||
scope.renderer.setSize(dom.offsetWidth,dom.offsetHeight);
|
||||
}
|
||||
|
||||
this.createModelTrigger = function(assetData,mousePos){
|
||||
|
||||
var mouse = new THREE.Vector2();
|
||||
|
||||
var raycaster = new THREE.Raycaster();
|
||||
|
||||
mouse.x = ( mousePos.x / window.innerWidth ) * 2 - 1;
|
||||
|
||||
mouse.y = - ( mousePos.y / dom.offsetHeight ) * 2 + 1;
|
||||
|
||||
raycaster.setFromCamera(mouse,scope.camerass) // 也可以给构造函数传参的形式写
|
||||
|
||||
var intersects = raycaster.intersectObjects( scene.children,true );
|
||||
|
||||
if(intersects.length>0){
|
||||
assetModelManager.lessonAssetsNewLoader(assetData,intersects[0].point);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
this.saveAssetModel = function(){
|
||||
return assetModelManager.saveModelList();
|
||||
}
|
||||
}
|
||||
|
@ -8,10 +8,13 @@ export function LessonData() {
|
||||
this.lessonStatus = "";
|
||||
this.lessonData = {
|
||||
//资源列表
|
||||
assetmodel:[],
|
||||
assetList:[],
|
||||
//场景交互物体列表
|
||||
modelList:[],
|
||||
//课程组件启用状态
|
||||
lessonTools:[],
|
||||
dataType:"",
|
||||
toolJobPane:[],
|
||||
//课程内容
|
||||
lessonProgress:[
|
||||
|
||||
@ -20,6 +23,7 @@ export function LessonData() {
|
||||
|
||||
this.initLessonProgress = function(){
|
||||
let newLessonProgress = {
|
||||
id:generateUUID(),
|
||||
progressName:"",
|
||||
roleName:"",
|
||||
roleUse:true,
|
||||
@ -49,6 +53,10 @@ export function LessonData() {
|
||||
picurl:"url",
|
||||
text:"内容",
|
||||
},
|
||||
action:{
|
||||
actionType:"事件操作类型",
|
||||
actionMode:"触发事件类型",
|
||||
},
|
||||
};
|
||||
|
||||
scope.lessonData.lessonProgress.push(newLessonProgress);
|
||||
@ -59,10 +67,11 @@ export function LessonData() {
|
||||
console.log(loadData);
|
||||
for(let i=0;i<loadData.length;i++){
|
||||
let newLessonProgress = {
|
||||
id:loadData[i].id,
|
||||
progressName:loadData[i].progressName,
|
||||
roleName:loadData[i].roleName,
|
||||
roleUse:loadData[i].roleUse,
|
||||
|
||||
score:loadData[i].roleUse,
|
||||
progressScene:loadData[i].progressScene,
|
||||
nextCode:loadData[i].nextCode,
|
||||
nextNode:loadData[i].nextNode,
|
||||
@ -81,6 +90,8 @@ export function LessonData() {
|
||||
index:loadData[i].index,
|
||||
stepTipsData:loadData[i].stepTipsData,
|
||||
explainPane:loadData[i].explainPane,
|
||||
action:loadData[i].action,
|
||||
jobPane:[],
|
||||
};
|
||||
|
||||
scope.lessonData.lessonProgress.push(newLessonProgress);
|
||||
@ -90,10 +101,11 @@ export function LessonData() {
|
||||
this.addLessonProgress = function(index){
|
||||
let inheirIndex = index - 1;
|
||||
let newLessonProgress = {
|
||||
id:generateUUID(),
|
||||
progressName:"",
|
||||
roleName:scope.lessonData.lessonProgress[inheirIndex].roleName,
|
||||
roleUse:scope.lessonData.lessonProgress[inheirIndex].roleUse,
|
||||
|
||||
score:0,
|
||||
progressScene:scope.lessonData.lessonProgress[inheirIndex].progressScene,
|
||||
nextCode:"",
|
||||
nextNode:"",
|
||||
@ -122,6 +134,11 @@ export function LessonData() {
|
||||
picurl:"url",
|
||||
text:"内容",
|
||||
},
|
||||
action:{
|
||||
actionType:"事件操作类型",
|
||||
actionMode:"触发事件类型",
|
||||
},
|
||||
jobPane:[],
|
||||
};
|
||||
|
||||
scope.lessonData.lessonProgress.push(newLessonProgress);
|
||||
@ -136,6 +153,18 @@ export function LessonData() {
|
||||
scope.lessonData.lessonProgress.splice(index,1);
|
||||
}
|
||||
|
||||
function generateUUID() {
|
||||
var d = new Date().getTime();
|
||||
if (window.performance && typeof window.performance.now === "function") {
|
||||
d += performance.now(); //use high-precision timer if available
|
||||
}
|
||||
var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
|
||||
var r = (d + Math.random() * 16) % 16 | 0;
|
||||
d = Math.floor(d / 16);
|
||||
return (c == 'x' ? r : (r & 0x3 | 0x8)).toString(16);
|
||||
});
|
||||
return uuid;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
294
src/jlmap3d/lesson3dedit/toolsmodel/jobpanedata.js
Normal file
294
src/jlmap3d/lesson3dedit/toolsmodel/jobpanedata.js
Normal file
@ -0,0 +1,294 @@
|
||||
|
||||
export function JobPaneData() {
|
||||
let scope = this;
|
||||
|
||||
// let
|
||||
this.dataList = [
|
||||
{
|
||||
name:"值班站长",
|
||||
text:"执行分公司、部、中心、车站的有关规章制度,加强班组管理,掌握列车运行情况,安排车站行车组织工作",
|
||||
picurl:"",
|
||||
controlList:[
|
||||
//联控
|
||||
{
|
||||
name:"联控",
|
||||
data:[],
|
||||
},
|
||||
//动作
|
||||
{
|
||||
name:"动作",
|
||||
data:[],
|
||||
},
|
||||
//口呼
|
||||
{
|
||||
name:"口呼",
|
||||
data:[],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name:"行车值班员",
|
||||
text:"在本班组值班站长的指挥下开展工作,负责本班组车站综合控制室,负责车站行车工作,监视列车到、发情况及乘客上下车、候车动态,监控设备运作状况。",
|
||||
picurl:"",
|
||||
controlList:[
|
||||
//联控
|
||||
{
|
||||
name:"联控",
|
||||
data:[],
|
||||
},
|
||||
//动作
|
||||
{
|
||||
name:"动作",
|
||||
data:[],
|
||||
},
|
||||
//口呼
|
||||
{
|
||||
name:"口呼",
|
||||
data:[],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name:"客运值班员",
|
||||
text:"在值班站长的领导下,主管车站客运、票务管理,组织站务员从事客运服务工作",
|
||||
picurl:"",
|
||||
controlList:[
|
||||
//联控
|
||||
{
|
||||
name:"联控",
|
||||
data:[],
|
||||
},
|
||||
//动作
|
||||
{
|
||||
name:"动作",
|
||||
data:[],
|
||||
},
|
||||
//口呼
|
||||
{
|
||||
name:"口呼",
|
||||
data:[],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name:"票厅岗",
|
||||
text:"执行分公司、部、中心、车站的有关规章制度,在客运值班员领导下,负责车站售票工作。",
|
||||
picurl:"",
|
||||
controlList:[
|
||||
//联控
|
||||
{
|
||||
name:"联控",
|
||||
data:[],
|
||||
},
|
||||
//动作
|
||||
{
|
||||
name:"动作",
|
||||
data:[],
|
||||
},
|
||||
//口呼
|
||||
{
|
||||
name:"口呼",
|
||||
data:[],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name:"站台岗",
|
||||
text:"",
|
||||
picurl:"",
|
||||
controlList:[
|
||||
//联控
|
||||
{
|
||||
name:"联控",
|
||||
data:[],
|
||||
},
|
||||
//动作
|
||||
{
|
||||
name:"动作",
|
||||
data:[],
|
||||
},
|
||||
//口呼
|
||||
{
|
||||
name:"口呼",
|
||||
data:[],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name:"站长",
|
||||
text:"在站务中心(副)主任领导下,组织领导站内员工开展车站各项工作。负责车站员工的日常管理,定期进行员工教育,掌握员工思想状况。",
|
||||
picurl:"",
|
||||
controlList:[
|
||||
//联控
|
||||
{
|
||||
name:"联控",
|
||||
data:[],
|
||||
},
|
||||
//动作
|
||||
{
|
||||
name:"动作",
|
||||
data:[],
|
||||
},
|
||||
//口呼
|
||||
{
|
||||
name:"口呼",
|
||||
data:[],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name:"分部助理",
|
||||
text:"",
|
||||
picurl:"",
|
||||
controlList:[
|
||||
//联控
|
||||
{
|
||||
name:"联控",
|
||||
data:[],
|
||||
},
|
||||
//动作
|
||||
{
|
||||
name:"动作",
|
||||
data:[],
|
||||
},
|
||||
//口呼
|
||||
{
|
||||
name:"口呼",
|
||||
data:[],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name:"行车调度",
|
||||
text:"",
|
||||
picurl:"",
|
||||
controlList:[
|
||||
//联控
|
||||
{
|
||||
name:"联控",
|
||||
data:[],
|
||||
},
|
||||
//动作
|
||||
{
|
||||
name:"动作",
|
||||
data:[],
|
||||
},
|
||||
//口呼
|
||||
{
|
||||
name:"口呼",
|
||||
data:[],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name:"生产调度",
|
||||
text:"",
|
||||
picurl:"",
|
||||
controlList:[
|
||||
//联控
|
||||
{
|
||||
name:"联控",
|
||||
data:[],
|
||||
},
|
||||
//动作
|
||||
{
|
||||
name:"动作",
|
||||
data:[],
|
||||
},
|
||||
//口呼
|
||||
{
|
||||
name:"口呼",
|
||||
data:[],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name:"厅巡岗",
|
||||
text:"负责站厅乘客服务,设备的巡视、紧急情况下事件的处理等。",
|
||||
picurl:"",
|
||||
controlList:[
|
||||
//联控
|
||||
{
|
||||
name:"联控",
|
||||
data:[],
|
||||
},
|
||||
//动作
|
||||
{
|
||||
name:"动作",
|
||||
data:[],
|
||||
},
|
||||
//口呼
|
||||
{
|
||||
name:"口呼",
|
||||
data:[],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name:"地铁公安",
|
||||
text:"",
|
||||
picurl:"",
|
||||
controlList:[
|
||||
//联控
|
||||
{
|
||||
name:"联控",
|
||||
data:[],
|
||||
},
|
||||
//动作
|
||||
{
|
||||
name:"动作",
|
||||
data:[],
|
||||
},
|
||||
//口呼
|
||||
{
|
||||
name:"口呼",
|
||||
data:[],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name:"120",
|
||||
text:"",
|
||||
picurl:"",
|
||||
controlList:[
|
||||
//联控
|
||||
{
|
||||
name:"联控",
|
||||
data:[],
|
||||
},
|
||||
//动作
|
||||
{
|
||||
name:"动作",
|
||||
data:[],
|
||||
},
|
||||
//口呼
|
||||
{
|
||||
name:"口呼",
|
||||
data:[],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name:"119",
|
||||
text:"",
|
||||
picurl:"",
|
||||
controlList:[
|
||||
//联控
|
||||
{
|
||||
name:"联控",
|
||||
data:[],
|
||||
},
|
||||
//动作
|
||||
{
|
||||
name:"动作",
|
||||
data:[],
|
||||
},
|
||||
//口呼
|
||||
{
|
||||
name:"口呼",
|
||||
data:[],
|
||||
},
|
||||
],
|
||||
},
|
||||
];
|
||||
}
|
32
src/jlmap3d/lesson3dedit/toolsmodel/lessontrigger.js
Normal file
32
src/jlmap3d/lesson3dedit/toolsmodel/lessontrigger.js
Normal file
@ -0,0 +1,32 @@
|
||||
|
||||
export function LessonTrigger() {
|
||||
|
||||
let scope = this;
|
||||
|
||||
this.dataList = [
|
||||
|
||||
];
|
||||
// let
|
||||
this.triggerList = [
|
||||
{
|
||||
name:"移动触发器",
|
||||
type:"movetrigger",
|
||||
picurl:"",
|
||||
},
|
||||
{
|
||||
name:"置物触发器",
|
||||
type:"placetrigger",
|
||||
picurl:"",
|
||||
},
|
||||
|
||||
];
|
||||
|
||||
this.createTrigger = function(type){
|
||||
|
||||
|
||||
}
|
||||
|
||||
this.deleteTrigger = function(selected){
|
||||
|
||||
}
|
||||
}
|
0
src/jlmap3d/lesson3dedit/toolsmodel/scenetrigger.js
Normal file
0
src/jlmap3d/lesson3dedit/toolsmodel/scenetrigger.js
Normal file
@ -90,6 +90,7 @@ class SkinCode extends defaultStyle {
|
||||
faultLockColor: '#81007F', // 区段故障锁定颜色
|
||||
undefinedColor: '#0071C1', // 区段未定义颜色
|
||||
blockColor: '#FE0000', // 区段封锁颜色(淡紫色)
|
||||
closedColor: '#EE0000',
|
||||
atcExcisionColor: '#A0522D', // 区段atc切除颜色
|
||||
atsExcisionColor: '#A0522D', // 区段ats切除颜色
|
||||
invalidColor: '#AC8F40', // 计轴故障颜色
|
||||
@ -382,6 +383,11 @@ class SkinCode extends defaultStyle {
|
||||
fillColor: '#FF00FE', // 联锁预留道岔 颜色
|
||||
strokeColor: '#784F20',
|
||||
operateFillColor: '#FF9600' // 操作员预留道岔 颜色
|
||||
},
|
||||
artificialArc: {
|
||||
fillColor: 'rgba(0, 0, 0, 0)',
|
||||
strokeColor: '#0001FC',
|
||||
shapeR: 10
|
||||
}
|
||||
};
|
||||
|
||||
@ -407,8 +413,9 @@ class SkinCode extends defaultStyle {
|
||||
z:0,
|
||||
spareColor: '#0000ff', // 站台空闲颜色
|
||||
spareStrokeColor: '#000000', // 站台空闲描边颜色
|
||||
jumpStopColor: '#C00000', // 站台跳停颜色
|
||||
jumpStopColor: '#0000ff', // 站台跳停颜色
|
||||
designatedJumpStopColor: 'lightSkyBlue', // 站台指定列车跳停颜色
|
||||
closeColor: '#C00000', // 站台关闭颜色
|
||||
headFontSize: 10, // 站台首端字体大小
|
||||
doorOpenColor:'#00FF00', // 车门开启状态颜色
|
||||
stopColor: '#0080C0', // 站台列车停站颜色
|
||||
|
@ -67,7 +67,7 @@ class EHorizontal2Door extends Group {
|
||||
const stationStand = store.getters['map/getDeviceByCode'](this.model.modelData.standCode);
|
||||
stationStand &&
|
||||
stationStand.instance &&
|
||||
stationStand.instance.setState({screenDoorOpenStatus:0});
|
||||
stationStand.instance.setScreenDoorOpenStatus({screenDoorOpenStatus:0});
|
||||
}
|
||||
this.stand1.setStyle('fill', style.transparentColor);
|
||||
this.stand2.setStyle('fill', style.transparentColor);
|
||||
@ -77,7 +77,7 @@ class EHorizontal2Door extends Group {
|
||||
const stationStand = store.getters['map/getDeviceByCode'](this.model.modelData.standCode);
|
||||
stationStand &&
|
||||
stationStand.instance &&
|
||||
stationStand.instance.setState({screenDoorOpenStatus:1});
|
||||
stationStand.instance.setScreenDoorOpenStatus({screenDoorOpenStatus:1});
|
||||
}
|
||||
this.stand1.setStyle('fill', style.Psd.horizontal2Door.defaultColor);
|
||||
this.stand2.setStyle('fill', style.Psd.horizontal2Door.defaultColor);
|
||||
|
@ -131,9 +131,9 @@ export default class EDeviceStatus extends Group {
|
||||
// }
|
||||
// });
|
||||
this.add(this.psd);
|
||||
this.add(this.mfa);
|
||||
this.add(this.mfb);
|
||||
this.add(this.pfa);
|
||||
this.add(this.pfb);
|
||||
// this.add(this.mfa);
|
||||
// this.add(this.mfb);
|
||||
// this.add(this.pfa);
|
||||
// this.add(this.pfb);
|
||||
}
|
||||
}
|
||||
|
@ -157,7 +157,11 @@ export default class Section extends Group {
|
||||
section && section.instance && section.instance.line.setCrossRouteLock();
|
||||
}
|
||||
}
|
||||
|
||||
closeSection() {
|
||||
if (this.line) {
|
||||
this.line.setStyle({stroke: this.style.Section.line.closedColor});
|
||||
}
|
||||
}
|
||||
/** 非通信车占用状态 03*/
|
||||
unCommunicationOccupied() {
|
||||
if (this.style.Section.preAxleIgnoreFault && this.model.preReset) {
|
||||
@ -406,6 +410,8 @@ export default class Section extends Group {
|
||||
model.nctOccupied && this.unCommunicationOccupied();
|
||||
/** 通信车占用状态 */
|
||||
model.ctOccupied && this.communicationOccupied();
|
||||
/** 区段关闭 */
|
||||
model.closed && this.closeSection();
|
||||
// 计轴预复位
|
||||
model.preReset && this.preReset(model.blockade);
|
||||
/** 区段切除*/
|
||||
|
@ -146,7 +146,9 @@ class StationStand extends Group {
|
||||
this[element].recover();
|
||||
});
|
||||
}
|
||||
|
||||
setScreenDoorOpenStatus(model) {
|
||||
this.gapStand && this.gapStand.setState(model);
|
||||
}
|
||||
setState(model) {
|
||||
if (!this.isShowShape) return;
|
||||
// // 新版地图使用新版状态变更方式
|
||||
@ -154,7 +156,7 @@ class StationStand extends Group {
|
||||
|
||||
// 只响应前端自定义类型的状态变化
|
||||
if (model._free) {
|
||||
this.setAshShow()
|
||||
this.setAshShow();
|
||||
} else {
|
||||
// 更新状态
|
||||
const currentTypeList = this.style.StationStand.elemnetType;
|
||||
|
@ -134,6 +134,8 @@ class ESolidStand extends Group {
|
||||
(model.centerHoldTrain || model.stationHoldTrain) && this.setHoldTrain('Station');
|
||||
// 系统扣车
|
||||
model.sysHoldTrain && this.setHoldTrain('System');
|
||||
// 站台关闭
|
||||
model.closed && this.setColor(style.StationStand.solidStand.closeColor);
|
||||
} else {
|
||||
this.handlePassagerColor(model.num);
|
||||
}
|
||||
|
@ -12,7 +12,6 @@ import ESwBlock from './ESwBlock';
|
||||
import EMouse from './EMouse';
|
||||
import EHighlight from '../element/EHighlight';
|
||||
import ETriangle from './ETriangle';
|
||||
import store from '@/store/index';
|
||||
|
||||
export default class Switch extends Group {
|
||||
constructor(model, {style, mapDevice}) {
|
||||
@ -257,6 +256,20 @@ export default class Switch extends Group {
|
||||
this.add(this.lockArc);
|
||||
this.lockArc.hide();
|
||||
}
|
||||
if (this.style.Switch.artificialArc) {
|
||||
this.artificialArc = new ELockArc({ // 宁波三道岔人工模式
|
||||
zlevel: this.zlevel,
|
||||
z: this.z + 6,
|
||||
x: this.model.intersection.x,
|
||||
y: this.model.intersection.y,
|
||||
shapeR: this.style.Switch.artificialArc.shapeR,
|
||||
lineWidth: 2,
|
||||
stroke: this.style.Switch.artificialArc.strokeColor,
|
||||
fill: this.style.Switch.artificialArc.fillColor
|
||||
});
|
||||
this.add(this.artificialArc);
|
||||
this.artificialArc.hide();
|
||||
}
|
||||
}
|
||||
|
||||
setCiConfirm() {
|
||||
@ -315,6 +328,7 @@ export default class Switch extends Group {
|
||||
this.enabledName && this.enabledName.hide(); // 使能隐藏
|
||||
this.lossShow && this.lossShow.hide(); // 道岔失去矩形
|
||||
this.lossShow && this.lossShow.stopAnimation(false);
|
||||
this.artificialArc && this.artificialArc.hide();
|
||||
}
|
||||
|
||||
/** 定位*/
|
||||
@ -660,7 +674,7 @@ export default class Switch extends Group {
|
||||
this.setSectionState(model);
|
||||
}
|
||||
} else {
|
||||
this.setAshShow()
|
||||
this.setAshShow();
|
||||
}
|
||||
} else {
|
||||
this.setSwitchFault(model.fault, model.normalPosition, model.reversePosition);
|
||||
@ -696,6 +710,7 @@ export default class Switch extends Group {
|
||||
sectionC && sectionC.instance && sectionC.instance.setState(sectionC);
|
||||
}
|
||||
model.noStatus && this.setAshShow();
|
||||
!model.auto && this.artificialArc && this.artificialArc.show();
|
||||
}
|
||||
}
|
||||
setLimitState(flag, limitValue) {
|
||||
|
@ -67,7 +67,22 @@ export default {
|
||||
mounted() {
|
||||
this.$nextTick(() => {
|
||||
this.$store.dispatch('config/updateMenuBar');
|
||||
const _that = this;
|
||||
window.onclick = function (e) {
|
||||
if (!_that.$store.state.training.trainingStart) {
|
||||
_that.$refs.menuBar && _that.$refs.menuBar.blankClickClose();
|
||||
}
|
||||
_that.$refs.menuStationStand.doClose();
|
||||
_that.$refs.menuSwitch.doClose();
|
||||
_that.$refs.menuSignal.doClose();
|
||||
_that.$refs.menuSection.doClose();
|
||||
_that.$refs.menuTrain.doClose();
|
||||
_that.$refs.menuStation.doClose();
|
||||
};
|
||||
});
|
||||
},
|
||||
beforeDestroy() {
|
||||
window.onclick = function (e) {};
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
@ -650,6 +650,9 @@ export default {
|
||||
}
|
||||
});
|
||||
},
|
||||
blankClickClose() {
|
||||
this.$refs.menuBar.doClose();
|
||||
},
|
||||
cancleLimitSpeed(order) {
|
||||
const operate = {
|
||||
operation: order.operate
|
||||
|
@ -116,12 +116,6 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
clickEvent() {
|
||||
const self = this;
|
||||
window.onclick = function (e) {
|
||||
self.doClose();
|
||||
};
|
||||
},
|
||||
initMenu() {
|
||||
// 编辑模式菜单列表
|
||||
if (this.selected.type != '04') {
|
||||
@ -135,7 +129,6 @@ export default {
|
||||
}
|
||||
},
|
||||
doShow(point) {
|
||||
this.clickEvent();
|
||||
this.initMenu();
|
||||
if (this.$refs && this.$refs.popMenu && this.menu && this.menu.length) {
|
||||
this.$refs.popMenu.resetShowPosition(point);
|
||||
|
@ -188,12 +188,6 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
clickEvent() {
|
||||
const self = this;
|
||||
window.onclick = function (e) {
|
||||
self.doClose();
|
||||
};
|
||||
},
|
||||
initMenu() {
|
||||
// 编辑模式菜单列表
|
||||
this.menu = MenuContextHandler.covert(this.menuNormal);
|
||||
@ -204,7 +198,6 @@ export default {
|
||||
}
|
||||
},
|
||||
doShow(point) {
|
||||
this.clickEvent();
|
||||
this.initMenu();
|
||||
if (this.$refs && this.$refs.popMenu && this.menu && this.menu.length) {
|
||||
this.$refs.popMenu.resetShowPosition(point);
|
||||
@ -277,7 +270,7 @@ export default {
|
||||
humanTrainRoute() {
|
||||
commitOperate(menuOperate.Signal.humanTrainRoute, {signalCode: this.selected.code}, 0).then(({valid, operate}) => {
|
||||
if (valid) {
|
||||
Object.assign(operate, {operation: OperationEvent.Signal.humanTrainRoute.button.operation })
|
||||
Object.assign(operate, {operation: OperationEvent.Signal.humanTrainRoute.button.operation });
|
||||
this.$refs.passwordBox.doShow({...operate, ...{selected: this.selected}});
|
||||
}
|
||||
});
|
||||
@ -342,7 +335,7 @@ export default {
|
||||
this.$refs.routeGuide.doShow(data, data.selected, data.routesList);
|
||||
break;
|
||||
case OperationEvent.Signal.humanTrainRoute.button.operation:
|
||||
Object.assign(data, {operation: OperationEvent.Signal.humanTrainRoute.menu.operation})
|
||||
Object.assign(data, {operation: OperationEvent.Signal.humanTrainRoute.menu.operation});
|
||||
this.$refs.routeControl.doShow(data, data.selected);
|
||||
break;
|
||||
}
|
||||
|
@ -80,12 +80,6 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
clickEvent() {
|
||||
const self = this;
|
||||
window.onclick = function (e) {
|
||||
self.doClose();
|
||||
};
|
||||
},
|
||||
initMenu() {
|
||||
// 编辑模式菜单列表
|
||||
this.menu = MenuContextHandler.covert(this.menuNormal);
|
||||
@ -96,7 +90,6 @@ export default {
|
||||
}
|
||||
},
|
||||
doShow(point) {
|
||||
this.clickEvent();
|
||||
this.initMenu();
|
||||
if (this.$refs && this.$refs.popMenu && this.menu && this.menu.length) {
|
||||
this.$refs.popMenu.resetShowPosition(point);
|
||||
|
@ -119,12 +119,6 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
clickEvent() {
|
||||
const self = this;
|
||||
window.onclick = function (e) {
|
||||
self.doClose();
|
||||
};
|
||||
},
|
||||
initMenu() {
|
||||
// 编辑模式菜单列表
|
||||
this.menu = MenuContextHandler.covert(this.menuNormal);
|
||||
@ -136,7 +130,6 @@ export default {
|
||||
|
||||
},
|
||||
doShow(point) {
|
||||
this.clickEvent();
|
||||
this.initMenu();
|
||||
if (this.$refs && this.$refs.popMenu && this.menu && this.menu.length) {
|
||||
this.$refs.popMenu.resetShowPosition(point);
|
||||
|
@ -129,12 +129,6 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
clickEvent() {
|
||||
const self = this;
|
||||
window.onclick = function (e) {
|
||||
self.doClose();
|
||||
};
|
||||
},
|
||||
initMenu() {
|
||||
// 编辑模式菜单列表
|
||||
this.menu = MenuContextHandler.covert(this.menuNormal);
|
||||
@ -154,7 +148,6 @@ export default {
|
||||
|
||||
},
|
||||
doShow(point) {
|
||||
this.clickEvent();
|
||||
this.initMenu();
|
||||
if (this.$refs && this.$refs.popMenu && this.menu && this.menu.length) {
|
||||
this.$refs.popMenu.resetShowPosition(point);
|
||||
|
@ -164,12 +164,6 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
clickEvent() {
|
||||
const self = this;
|
||||
window.onclick = function (e) {
|
||||
self.doClose();
|
||||
};
|
||||
},
|
||||
initMenu() {
|
||||
// 编辑模式菜单列表
|
||||
this.menu = MenuContextHandler.covert(this.menuNormal);
|
||||
@ -189,7 +183,6 @@ export default {
|
||||
}
|
||||
},
|
||||
doShow(point) {
|
||||
this.clickEvent();
|
||||
this.initMenu();
|
||||
|
||||
if (this.$refs && this.$refs.popMenu && this.menu && this.menu.length) {
|
||||
|
@ -9,8 +9,8 @@
|
||||
v-for="(gridChild,j) in item.children"
|
||||
:id="j"
|
||||
:key="j"
|
||||
:index="active"
|
||||
ref="eachChildMenu"
|
||||
:index="active"
|
||||
:item="gridChild"
|
||||
class-name="menu-li-block"
|
||||
:is-next-btn="isNextBtn"
|
||||
@ -25,8 +25,8 @@
|
||||
v-for="(gridChild,j) in item.children"
|
||||
:id="j"
|
||||
:key="j"
|
||||
:index="active"
|
||||
ref="eachChildMenu"
|
||||
:index="active"
|
||||
:item="gridChild"
|
||||
class-name="menu-li-block"
|
||||
:is-next-btn="isNextBtn"
|
||||
|
@ -1,7 +1,13 @@
|
||||
<template>
|
||||
<div id="menuBar" :style="{'z-index': zIndex}">
|
||||
<div class="nav">
|
||||
<each-child-menu v-for="(item,i) in menu" :id="i" :key="i" ref="eachChildMenu" :item="item" :is-next-btn="isNextBtn"
|
||||
<each-child-menu
|
||||
v-for="(item,i) in menu"
|
||||
:id="i"
|
||||
:key="i"
|
||||
ref="eachChildMenu"
|
||||
:item="item"
|
||||
:is-next-btn="isNextBtn"
|
||||
:index="index"
|
||||
@active="doActie"
|
||||
@close="doClose"
|
||||
@ -65,16 +71,17 @@ export default {
|
||||
initMenu(menu) {
|
||||
const type = State2SimulationMap[this.$store.state.training.prdType];
|
||||
this.menu = MenuContextHandler.menuBarConvert(this.menuNormal[type], this.$store.state.training.operatemode);
|
||||
this.clickEvent();
|
||||
},
|
||||
clickEvent() {
|
||||
const self = this;
|
||||
window.onclick = function (e) {
|
||||
if (document.getElementById('menuBar')&&!self.$store.state.training.trainingStart) {
|
||||
self.doClose(false);
|
||||
}
|
||||
};
|
||||
// this.clickEvent();
|
||||
},
|
||||
// clickEvent() {
|
||||
// const self = this;
|
||||
// window.onclick = function (e) {
|
||||
// if (document.getElementById('menuBar') && !self.$store.state.training.trainingStart) {
|
||||
// console.log('-------------');
|
||||
// self.doClose(false);
|
||||
// }
|
||||
// };
|
||||
// },
|
||||
noShowingChildren(children) {
|
||||
if (!children || children.length <= 0) {
|
||||
return true;
|
||||
|
@ -64,7 +64,22 @@ export default {
|
||||
mounted() {
|
||||
this.$nextTick(() => {
|
||||
this.$store.dispatch('config/updateMenuBar');
|
||||
const _that = this;
|
||||
window.onclick = function (e) {
|
||||
if (!_that.$store.state.training.trainingStart) {
|
||||
_that.$refs.menuBar && _that.$refs.menuBar.blankClickClose();
|
||||
}
|
||||
_that.$refs.menuStationStand.doClose();
|
||||
_that.$refs.menuSwitch.doClose();
|
||||
_that.$refs.menuSignal.doClose();
|
||||
_that.$refs.menuSection.doClose();
|
||||
_that.$refs.menuTrain.doClose();
|
||||
_that.$refs.menuStation.doClose();
|
||||
};
|
||||
});
|
||||
},
|
||||
beforeDestroy() {
|
||||
window.onclick = function (e) {};
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
@ -470,6 +470,9 @@ export default {
|
||||
callback: action => {
|
||||
}
|
||||
});
|
||||
},
|
||||
blankClickClose() {
|
||||
this.$refs.menuBar.doClose();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
@ -182,12 +182,6 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
clickEvent() {
|
||||
const self = this;
|
||||
window.onclick = function (e) {
|
||||
self.doClose();
|
||||
};
|
||||
},
|
||||
initMenu() {
|
||||
// 编辑模式菜单列表
|
||||
if (this.selected.type == '01' || this.selected.type == '03') {
|
||||
@ -225,7 +219,6 @@ export default {
|
||||
});
|
||||
},
|
||||
doShow(point) {
|
||||
this.clickEvent();
|
||||
this.initMenu();
|
||||
if (this.$refs && this.$refs.popMenu && this.menu && this.menu.length) {
|
||||
this.$refs.popMenu.resetShowPosition(point);
|
||||
|
@ -232,12 +232,6 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
clickEvent() {
|
||||
const self = this;
|
||||
window.onclick = function (e) {
|
||||
self.doClose();
|
||||
};
|
||||
},
|
||||
initMenu() {
|
||||
this.menu = MenuContextHandler.covert(this.menuNormal);
|
||||
// 故障模式菜单列表
|
||||
@ -246,7 +240,6 @@ export default {
|
||||
}
|
||||
},
|
||||
doShow(point) {
|
||||
this.clickEvent();
|
||||
this.initMenu();
|
||||
if (this.$refs && this.$refs.popMenu && this.menu && this.menu.length) {
|
||||
this.$refs.popMenu.resetShowPosition(point);
|
||||
|
@ -131,12 +131,6 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
clickEvent() {
|
||||
const self = this;
|
||||
window.onclick = function (e) {
|
||||
self.doClose();
|
||||
};
|
||||
},
|
||||
initMenu() {
|
||||
this.menu = [];
|
||||
// 编辑模式菜单列表
|
||||
@ -149,7 +143,6 @@ export default {
|
||||
},
|
||||
doShow(point) {
|
||||
if (this.selected.ciStation) {
|
||||
this.clickEvent();
|
||||
this.initMenu();
|
||||
if (this.$refs && this.$refs.popMenu && this.menu && this.menu.length) {
|
||||
this.$refs.popMenu.resetShowPosition(point);
|
||||
|
@ -176,12 +176,6 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
clickEvent() {
|
||||
const self = this;
|
||||
window.onclick = function (e) {
|
||||
self.doClose();
|
||||
};
|
||||
},
|
||||
initMenu() {
|
||||
// 编辑模式菜单列表
|
||||
this.menu = MenuContextHandler.covert(this.menuNormal);
|
||||
@ -198,7 +192,6 @@ export default {
|
||||
// this.menu = MenuContextHandler.covert(this.menu);
|
||||
},
|
||||
doShow(point) {
|
||||
this.clickEvent();
|
||||
this.initMenu();
|
||||
if (this.$refs && this.$refs.popMenu && this.menu && this.menu.length) {
|
||||
this.$refs.popMenu.resetShowPosition(point);
|
||||
|
@ -195,12 +195,6 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
clickEvent() {
|
||||
const self = this;
|
||||
window.onclick = function (e) {
|
||||
self.doClose();
|
||||
};
|
||||
},
|
||||
initMenu() {
|
||||
// 编辑模式菜单列表
|
||||
this.menu = MenuContextHandler.covert(this.menuNormal);
|
||||
@ -222,7 +216,6 @@ export default {
|
||||
}
|
||||
},
|
||||
doShow(point) {
|
||||
this.clickEvent();
|
||||
this.initMenu();
|
||||
if (this.$refs && this.$refs.popMenu && this.menu && this.menu.length) {
|
||||
this.$refs.popMenu.resetShowPosition(point);
|
||||
|
@ -142,12 +142,6 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
clickEvent() {
|
||||
const self = this;
|
||||
window.onclick = function (e) {
|
||||
self.doClose();
|
||||
};
|
||||
},
|
||||
undeveloped() {
|
||||
this.doClose();
|
||||
this.$alert('实现中......', '提示', {
|
||||
@ -179,7 +173,6 @@ export default {
|
||||
}
|
||||
},
|
||||
doShow(point) {
|
||||
this.clickEvent();
|
||||
this.initMenu();
|
||||
|
||||
if (this.$refs && this.$refs.popMenu && this.menu && this.menu.length) {
|
||||
|
@ -85,6 +85,25 @@ export default {
|
||||
mounted() {
|
||||
this.$nextTick(() => {
|
||||
this.$store.dispatch('config/updateMenuBar');
|
||||
const _that = this;
|
||||
window.onclick = function (e) {
|
||||
if (!_that.$store.state.training.trainingStart) {
|
||||
_that.$refs.menuBar && _that.$refs.menuBar.blankClickClose();
|
||||
}
|
||||
_that.$refs.menuAxleReset.doClose();
|
||||
_that.$refs.menuAutoTrunRoute.doClose();
|
||||
_that.$refs.menuStationStand.doClose();
|
||||
_that.$refs.menuStationControl.doClose();
|
||||
_that.$refs.menuStationTurnBack.doClose();
|
||||
_that.$refs.menuSwitch.doClose();
|
||||
_that.$refs.menuSignal.doClose();
|
||||
_that.$refs.menuSection.doClose();
|
||||
_that.$refs.menuTrain.doClose();
|
||||
_that.$refs.menuStation.doClose();
|
||||
_that.$refs.menuLimit.doClose();
|
||||
_that.$refs.menuStationLight.doClose();
|
||||
_that.$refs.menuStationPreReset.doClose();
|
||||
};
|
||||
});
|
||||
|
||||
this.$root.$on('dialogOpen', e => {
|
||||
@ -95,7 +114,7 @@ export default {
|
||||
this.selected.instance.__over = true;
|
||||
this.selected.instance.mouseEvent.mouseover();
|
||||
}
|
||||
})
|
||||
});
|
||||
|
||||
this.$root.$on('dialogClose', e => {
|
||||
if (this.selected == e &&
|
||||
@ -107,11 +126,12 @@ export default {
|
||||
this.selected.instance.mouseEvent.mouseout();
|
||||
this.$jlmap.clearEvent();
|
||||
}
|
||||
})
|
||||
});
|
||||
},
|
||||
beforeDestroy() {
|
||||
this.$root.$off('dialogOpen');
|
||||
this.$root.$off('dialogClose');
|
||||
window.onclick = function (e) {};
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
@ -78,12 +78,6 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
clickEvent() {
|
||||
const self = this;
|
||||
window.onclick = function (e) {
|
||||
self.doClose();
|
||||
};
|
||||
},
|
||||
initMenu() {
|
||||
// 编辑模式菜单列表
|
||||
this.menu = MenuContextHandler.covert(this.menuNormal);
|
||||
@ -103,7 +97,6 @@ export default {
|
||||
}
|
||||
},
|
||||
doShow(point) {
|
||||
this.clickEvent();
|
||||
this.initMenu();
|
||||
if (this.$refs && this.$refs.popMenu && this.menu && this.menu.length) {
|
||||
this.$refs.popMenu.resetShowPosition(point);
|
||||
|
@ -65,12 +65,6 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
clickEvent() {
|
||||
const self = this;
|
||||
window.onclick = function (e) {
|
||||
self.doClose();
|
||||
};
|
||||
},
|
||||
initMenu() {
|
||||
// 编辑模式菜单列表
|
||||
this.menu = MenuContextHandler.covert(this.menuNormal);
|
||||
@ -80,7 +74,6 @@ export default {
|
||||
}
|
||||
},
|
||||
doShow(point) {
|
||||
this.clickEvent();
|
||||
this.initMenu();
|
||||
if (this.$refs && this.$refs.popMenu && this.menu && this.menu.length) {
|
||||
this.$refs.popMenu.resetShowPosition(point);
|
||||
|
@ -766,6 +766,9 @@ export default {
|
||||
callback: action => {
|
||||
}
|
||||
});
|
||||
},
|
||||
blankClickClose() {
|
||||
this.$refs.menuBar.doClose();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
@ -69,18 +69,11 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
clickEvent() {
|
||||
const self = this;
|
||||
window.onclick = function (e) {
|
||||
self.doClose();
|
||||
};
|
||||
},
|
||||
initMenu() {
|
||||
// 编辑模式菜单列表
|
||||
this.menu = MenuContextHandler.covert(this.menuNormal);
|
||||
},
|
||||
doShow(point) {
|
||||
this.clickEvent();
|
||||
this.initMenu();
|
||||
if (this.$refs && this.$refs.popMenu && this.menu && this.menu.length) {
|
||||
this.$refs.popMenu.resetShowPosition(point);
|
||||
|
@ -171,12 +171,6 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
clickEvent() {
|
||||
const self = this;
|
||||
window.onclick = function (e) {
|
||||
self.doClose();
|
||||
};
|
||||
},
|
||||
initMenu() {
|
||||
// 编辑模式菜单列表
|
||||
if (this.selected.type != '04') {
|
||||
@ -200,7 +194,6 @@ export default {
|
||||
}
|
||||
},
|
||||
doShow(point) {
|
||||
this.clickEvent();
|
||||
this.initMenu();
|
||||
if (this.$refs && this.$refs.popMenu && this.menu && this.menu.length) {
|
||||
this.$refs.popMenu.resetShowPosition(point);
|
||||
|
@ -223,12 +223,6 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
clickEvent() {
|
||||
const self = this;
|
||||
window.onclick = function (e) {
|
||||
self.doClose();
|
||||
};
|
||||
},
|
||||
initMenu() {
|
||||
this.menu = MenuContextHandler.covert(this.menuNormal);
|
||||
if (this.$store.state.training.mode === TrainingMode.NORMAL) {
|
||||
@ -252,7 +246,6 @@ export default {
|
||||
}
|
||||
},
|
||||
doShow(point) {
|
||||
this.clickEvent();
|
||||
this.initMenu();
|
||||
if (this.$refs && this.$refs.popMenu && this.menu && this.menu.length) {
|
||||
this.$refs.popMenu.resetShowPosition(point);
|
||||
|
@ -122,12 +122,6 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
clickEvent() {
|
||||
const self = this;
|
||||
window.onclick = function (e) {
|
||||
self.doClose();
|
||||
};
|
||||
},
|
||||
initMenu() {
|
||||
if (this.selected.centralized) {
|
||||
this.menu = MenuContextHandler.covert(this.menuNormal);
|
||||
@ -147,7 +141,6 @@ export default {
|
||||
}
|
||||
},
|
||||
doShow(point) {
|
||||
this.clickEvent();
|
||||
this.initMenu();
|
||||
if (this.$refs && this.$refs.popMenu && this.menu && this.menu.length) {
|
||||
this.$refs.popMenu.resetShowPosition(point);
|
||||
|
@ -90,12 +90,6 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
clickEvent() {
|
||||
const self = this;
|
||||
window.onclick = function (e) {
|
||||
self.doClose();
|
||||
};
|
||||
},
|
||||
initMenu() {
|
||||
// 编辑模式菜单列表
|
||||
this.menu = MenuContextHandler.covert(this.menuNormal);
|
||||
@ -105,7 +99,6 @@ export default {
|
||||
}
|
||||
},
|
||||
doShow(point) {
|
||||
this.clickEvent();
|
||||
this.initMenu();
|
||||
if (this.$refs && this.$refs.popMenu && this.menu && this.menu.length) {
|
||||
this.$refs.popMenu.resetShowPosition(point);
|
||||
|
@ -77,12 +77,6 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
clickEvent() {
|
||||
const self = this;
|
||||
window.onclick = function (e) {
|
||||
self.doClose();
|
||||
};
|
||||
},
|
||||
initMenu() {
|
||||
// 编辑模式菜单列表
|
||||
this.menu = MenuContextHandler.covert(this.menuNormal);
|
||||
@ -101,7 +95,6 @@ export default {
|
||||
}
|
||||
},
|
||||
doShow(point) {
|
||||
this.clickEvent();
|
||||
this.initMenu();
|
||||
if (this.$refs && this.$refs.popMenu && this.menu && this.menu.length) {
|
||||
this.$refs.popMenu.resetShowPosition(point);
|
||||
|
@ -81,12 +81,6 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
clickEvent() {
|
||||
const self = this;
|
||||
window.onclick = function (e) {
|
||||
self.doClose();
|
||||
};
|
||||
},
|
||||
initMenu() {
|
||||
// 编辑模式菜单列表
|
||||
this.menu = MenuContextHandler.covert(this.menuNormal);
|
||||
@ -105,7 +99,6 @@ export default {
|
||||
}
|
||||
},
|
||||
doShow(point) {
|
||||
this.clickEvent();
|
||||
this.initMenu();
|
||||
if (this.$refs && this.$refs.popMenu && this.menu && this.menu.length) {
|
||||
this.$refs.popMenu.resetShowPosition(point);
|
||||
|
@ -176,12 +176,6 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
clickEvent() {
|
||||
const self = this;
|
||||
window.onclick = function (e) {
|
||||
self.doClose();
|
||||
};
|
||||
},
|
||||
initMenu() {
|
||||
// 编辑模式菜单列表
|
||||
this.menu = MenuContextHandler.covert(this.menuNormal);
|
||||
@ -201,7 +195,6 @@ export default {
|
||||
}
|
||||
},
|
||||
doShow(point) {
|
||||
this.clickEvent();
|
||||
this.initMenu();
|
||||
if (this.$refs && this.$refs.popMenu && this.menu && this.menu.length) {
|
||||
this.$refs.popMenu.resetShowPosition(point);
|
||||
|
@ -71,12 +71,6 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
clickEvent() {
|
||||
const self = this;
|
||||
window.onclick = function (e) {
|
||||
self.doClose();
|
||||
};
|
||||
},
|
||||
initMenu() {
|
||||
// 编辑模式菜单列表
|
||||
this.menu = MenuContextHandler.covert(this.menuNormal);
|
||||
@ -96,7 +90,6 @@ export default {
|
||||
}
|
||||
},
|
||||
doShow(point) {
|
||||
this.clickEvent();
|
||||
this.initMenu();
|
||||
if (this.$refs && this.$refs.popMenu && this.menu && this.menu.length) {
|
||||
this.$refs.popMenu.resetShowPosition(point);
|
||||
|
@ -177,12 +177,6 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
clickEvent() {
|
||||
const self = this;
|
||||
window.onclick = function (e) {
|
||||
self.doClose();
|
||||
};
|
||||
},
|
||||
initMenu() {
|
||||
// 编辑模式菜单列表
|
||||
this.menu = MenuContextHandler.covert(this.menuNormal);
|
||||
@ -210,7 +204,6 @@ export default {
|
||||
}
|
||||
},
|
||||
doShow(point) {
|
||||
this.clickEvent();
|
||||
this.initMenu();
|
||||
if (this.$refs && this.$refs.popMenu && this.menu && this.menu.length) {
|
||||
this.$refs.popMenu.resetShowPosition(point);
|
||||
|
@ -267,12 +267,6 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
clickEvent() {
|
||||
const self = this;
|
||||
window.onclick = function (e) {
|
||||
self.doClose();
|
||||
};
|
||||
},
|
||||
initMenu() {
|
||||
// 编辑模式菜单列表
|
||||
this.menu = MenuContextHandler.covert(this.menuNormal);
|
||||
@ -292,7 +286,6 @@ export default {
|
||||
}
|
||||
},
|
||||
doShow(point) {
|
||||
this.clickEvent();
|
||||
this.initMenu();
|
||||
|
||||
if (this.$refs && this.$refs.popMenu && this.menu && this.menu.length) {
|
||||
|
@ -70,7 +70,23 @@ export default {
|
||||
mounted() {
|
||||
this.$nextTick(() => {
|
||||
this.$store.dispatch('config/updateMenuBar');
|
||||
const _that = this;
|
||||
window.onclick = function (e) {
|
||||
if (!_that.$store.state.training.trainingStart) {
|
||||
_that.$refs.menuBar && _that.$refs.menuBar.blankClickClose();
|
||||
}
|
||||
_that.$refs.menuStationStand.doClose();
|
||||
_that.$refs.menuSwitch.doClose();
|
||||
_that.$refs.menuSignal.doClose();
|
||||
_that.$refs.menuSection.doClose();
|
||||
_that.$refs.menuTrain.doClose();
|
||||
_that.$refs.menuStation.doClose();
|
||||
_that.$refs.menuLimit.doClose();
|
||||
};
|
||||
});
|
||||
},
|
||||
beforeDestroy() {
|
||||
window.onclick = function (e) {};
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
@ -233,12 +233,12 @@ export default {
|
||||
children: [
|
||||
{
|
||||
title: '站台',
|
||||
operate:'',
|
||||
operate: OperationEvent.Signal.arrangementRoute.toStand,
|
||||
click: this.handleArrangeRoute
|
||||
},
|
||||
{
|
||||
title: '信号机',
|
||||
operate:'',
|
||||
operate: OperationEvent.Signal.arrangementRoute.toSignal,
|
||||
click: this.handleArrangeRoute
|
||||
}
|
||||
]
|
||||
@ -249,12 +249,12 @@ export default {
|
||||
children: [
|
||||
{
|
||||
title: '运行线',
|
||||
operate:'',
|
||||
operate: OperationEvent.Train.destinationTrainId.menu,
|
||||
click: this.handleTrainDistributionRunLine
|
||||
},
|
||||
{
|
||||
title: '班次',
|
||||
operate:'',
|
||||
operate: OperationEvent.Train.trainDistribute.menu,
|
||||
click: this.handleTrainDistributionClass
|
||||
},
|
||||
{
|
||||
@ -270,7 +270,7 @@ export default {
|
||||
children: [
|
||||
{
|
||||
title: '发车',
|
||||
operate:'',
|
||||
operate: OperationEvent.Train.setTrainDeparture.menu,
|
||||
click: this.setTrainDepart
|
||||
},
|
||||
{
|
||||
@ -1013,12 +1013,12 @@ export default {
|
||||
children: [
|
||||
{
|
||||
title: '站台',
|
||||
operate:'',
|
||||
operate: OperationEvent.Signal.arrangementRoute.toStand,
|
||||
click: this.handleArrangeRoute
|
||||
},
|
||||
{
|
||||
title: '信号机',
|
||||
operate:'',
|
||||
operate: OperationEvent.Signal.arrangementRoute.toSignal,
|
||||
click: this.handleArrangeRoute
|
||||
}
|
||||
]
|
||||
@ -1029,12 +1029,12 @@ export default {
|
||||
children: [
|
||||
{
|
||||
title: '运行线',
|
||||
operate:'',
|
||||
operate: OperationEvent.Train.destinationTrainId.menu,
|
||||
click: this.handleTrainDistributionRunLine
|
||||
},
|
||||
{
|
||||
title: '班次',
|
||||
operate:'',
|
||||
operate: OperationEvent.Train.trainDistribute.menu,
|
||||
click: this.handleTrainDistributionClass
|
||||
},
|
||||
{
|
||||
@ -1050,7 +1050,7 @@ export default {
|
||||
children: [
|
||||
{
|
||||
title: '发车',
|
||||
operate:'',
|
||||
operate:OperationEvent.Train.setTrainDeparture.menu,
|
||||
click: this.setTrainDepart
|
||||
},
|
||||
{
|
||||
@ -1905,7 +1905,7 @@ export default {
|
||||
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||
this.$refs.arrangeRoute.doShow();
|
||||
this.$refs.arrangeRoute.doShow(operate);
|
||||
}
|
||||
});
|
||||
},
|
||||
@ -1929,7 +1929,7 @@ export default {
|
||||
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||
this.$refs.trainDistribution.doShow(operate, 'second');
|
||||
this.$refs.trainDistribution.doShow(operate, 'third');
|
||||
}
|
||||
});
|
||||
},
|
||||
@ -1941,7 +1941,7 @@ export default {
|
||||
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||
this.$refs.trainDistribution.doShow(operate, 'third');
|
||||
this.$refs.trainDistribution.doShow(operate, 'second');
|
||||
}
|
||||
});
|
||||
},
|
||||
@ -2597,6 +2597,9 @@ export default {
|
||||
this.$refs.routeDetail.doShow(operate);
|
||||
}
|
||||
});
|
||||
},
|
||||
blankClickClose() {
|
||||
this.$refs.menuBar.doClose();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
@ -2,13 +2,17 @@
|
||||
<el-dialog v-dialogDrag class="ningbo-01__systerm route-setting" :title="title" :visible.sync="show" width="1000px" :before-close="doClose" :z-index="2000" :modal="false" :close-on-click-modal="false">
|
||||
<el-row>
|
||||
<el-col :span="10">
|
||||
<el-table :data="tableData" height="397px" style="margin-top: 57px" highlight-current-row @current-change="handleTrainChange">
|
||||
<el-table ref="trainTable" :data="tableData" height="397px" style="margin-top: 57px" highlight-current-row @current-change="handleTrainChange">
|
||||
<el-table-column label="列车">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ scope.row }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="groupNumber" label="班次" />
|
||||
<el-table-column prop="groupNumber" label="班次">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ getServiceNum(scope.row) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="运行线">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ getTrainDestinationCode(scope.row) }}</span>
|
||||
@ -32,7 +36,7 @@
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="12" :offset="1">
|
||||
<el-table :data="tempData" height="340px" highlight-current-row @current-change="handlePathChange">
|
||||
<el-table ref="pathTable" :data="tempData" height="340px" highlight-current-row @current-change="handlePathChange">
|
||||
<el-table-column prop="groupNumber" label="路径" />
|
||||
<el-table-column prop="groupNumber" label="运行方向">
|
||||
<template slot-scope="scope">
|
||||
@ -47,7 +51,7 @@
|
||||
<el-tab-pane label="信号机" name="second">
|
||||
<el-row>
|
||||
<el-col :span="11">
|
||||
<el-table :data="signalList" height="380px" highlight-current-row @current-change="handleSignalChange">
|
||||
<el-table ref="signalTable" :data="signalList" height="380px" highlight-current-row @current-change="handleSignalChange">
|
||||
<el-table-column prop="name" label="信号机" />
|
||||
<el-table-column prop="show" label="显示" />
|
||||
</el-table>
|
||||
@ -70,7 +74,7 @@
|
||||
</el-row>
|
||||
<el-row justify="center" class="button-group">
|
||||
<el-col :span="4" :offset="1">
|
||||
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定(O)</el-button>
|
||||
<el-button :id="domIdConfirm" type="primary" :loading="loading" :disabled="commitDisabled" @click="commit">确定(O)</el-button>
|
||||
</el-col>
|
||||
<el-col :span="4" :offset="2">
|
||||
<el-button>应用(A)</el-button>
|
||||
@ -89,8 +93,6 @@
|
||||
<script>
|
||||
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
||||
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
|
||||
// import {menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate';
|
||||
// import {mouseCancelState} from '@/jmapNew/theme/components/utils/menuItemStatus';
|
||||
import { mapGetters } from 'vuex';
|
||||
import { getPathListByStandCodeOrSignalCode } from '@/api/simulation';
|
||||
import CMD from '@/scripts/cmdPlugin/CommandEnum';
|
||||
@ -138,6 +140,9 @@ export default {
|
||||
},
|
||||
title() {
|
||||
return '列车排进路';
|
||||
},
|
||||
commitDisabled() {
|
||||
return !(this.routeCodeList && this.routeCodeList.length);
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
@ -148,7 +153,6 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
|
||||
expandPath() {
|
||||
console.log('展开进路预览');
|
||||
},
|
||||
@ -158,8 +162,17 @@ export default {
|
||||
this.selectTrainCode = '';
|
||||
this.selectStandCode = '';
|
||||
this.selectSignalCode = '';
|
||||
this.tempData = [];
|
||||
this.tableData = this.$store.state.map.activeTrainList;
|
||||
if (operate.operation === OperationEvent.Signal.arrangementRoute.toStand) {
|
||||
this.activeName = 'first';
|
||||
} else if (operate.operation === OperationEvent.Signal.arrangementRoute.toSignal) {
|
||||
this.activeName = 'second';
|
||||
}
|
||||
this.$nextTick(function () {
|
||||
this.$refs.trainTable && this.$refs.trainTable.setCurrentRow();
|
||||
this.$refs.pathTable && this.$refs.pathTable.setCurrentRow();
|
||||
this.$refs.signalTable && this.$refs.signalTable.setCurrentRow();
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
});
|
||||
},
|
||||
@ -169,6 +182,10 @@ export default {
|
||||
this.dialogShow = false;
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
},
|
||||
getServiceNum(code) {
|
||||
const train = this.$store.getters['map/getDeviceByCode'](code);
|
||||
return (train || {}).serviceNumber;
|
||||
},
|
||||
getTrainDestinationCode(trainCode) {
|
||||
const train = this.$store.getters['map/getDeviceByCode'](trainCode);
|
||||
return train.destinationCode;
|
||||
@ -233,7 +250,7 @@ export default {
|
||||
over: true,
|
||||
operation: OperationEvent.Train.trainSetRoute.confirm.operation,
|
||||
cmdType: CMD.Train.CMD_TRAIN_SET_ROUTE,
|
||||
param: { routes: this.routeCodeList }
|
||||
param: { routeCodes: this.routeCodeList, groupNumber: this.selectTrainCode }
|
||||
};
|
||||
this.$store.dispatch('training/nextNew', operate).then(({valid}) => {
|
||||
if (valid) {
|
||||
|
@ -1,18 +1,46 @@
|
||||
<template>
|
||||
<el-dialog v-dialogDrag class="ningbo-01__systerm route-setting" :title="title" :visible.sync="show" width="600px" :before-close="doClose" :z-index="2000" :modal="false" :close-on-click-modal="false">
|
||||
<el-dialog v-dialogDrag class="ningbo-01__systerm route-setting" :title="title" :visible.sync="show" width="800px" :before-close="doClose" :z-index="2000" :modal="false" :close-on-click-modal="false">
|
||||
<el-row>
|
||||
<el-table ref="table" :data="data" height="200px">
|
||||
<el-table-column prop="code" label="进路" />
|
||||
<el-table-column prop="area" label="区域" />
|
||||
<el-table-column prop="status" label="状态" />
|
||||
<el-col :span="6">
|
||||
<el-table ref="trainTable" :data="activeTrainList" height="400px" highlight-current-row @current-change="handleTrainChange">
|
||||
<el-table-column label="列车">
|
||||
<template slot-scope="scope">{{ scope.row }}</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-col>
|
||||
<el-col :span="18">
|
||||
<div class="simulate_table">
|
||||
<div style="display: flex;">
|
||||
<div class="simulate_table_header" style="width: 190px;">进路</div>
|
||||
<div class="simulate_table_header" style="width: 190px;">区域</div>
|
||||
<div class="simulate_table_header" style="width: 170px;">状态</div>
|
||||
</div>
|
||||
<template v-for="item in routeList">
|
||||
<div :key="item.code" class="defaultStand" :class="{'selectedStand' :selectedRouteList.includes(item.code)}" @click="handleRouteChange(item)">
|
||||
<div style="width: 190px;padding-left: 10px;">{{ item.name }}</div>
|
||||
<div style="width: 190px;padding-left: 10px;">{{ getArea(item) }}</div>
|
||||
<div style="width: 170px;padding-left: 10px;">建立</div>
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
<!--<el-table ref="table" :data="routeList" height="400px" highlight-current-row @current-change="handleRouteChange">-->
|
||||
<!--<el-table-column prop="code" label="进路" />-->
|
||||
<!--<el-table-column prop="area" label="区域">-->
|
||||
<!--<template slot-scope="scope">-->
|
||||
<!--<span>{{ getArea(scope.row) }}</span>-->
|
||||
<!--</template>-->
|
||||
<!--</el-table-column>-->
|
||||
<!--<el-table-column prop="status" label="状态">建立</el-table-column>-->
|
||||
<!--</el-table>-->
|
||||
</el-col>
|
||||
|
||||
</el-row>
|
||||
<el-row justify="center" class="button-group">
|
||||
<el-col :span="4" :offset="1">
|
||||
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定(O)</el-button>
|
||||
<el-button :id="domIdConfirm" type="primary" :loading="loading" :disabled="buttonDisabled" @click="commit(true)">确定(O)</el-button>
|
||||
</el-col>
|
||||
<el-col :span="4" :offset="2">
|
||||
<el-button>应用(A)</el-button>
|
||||
<el-button :disabled="buttonDisabled" @click="commit(false)">应用(A)</el-button>
|
||||
</el-col>
|
||||
<el-col :span="4" :offset="2">
|
||||
<el-button :id="domIdClose" @click="cancel">关闭(C)</el-button>
|
||||
@ -28,7 +56,8 @@
|
||||
<script>
|
||||
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
||||
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
|
||||
// import {menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate';
|
||||
import { getRouteListForTrain } from '@/api/simulation';
|
||||
import CMD from '@/scripts/cmdPlugin/CommandEnum';
|
||||
import { mapGetters } from 'vuex';
|
||||
|
||||
export default {
|
||||
@ -47,7 +76,10 @@ export default {
|
||||
operate: {},
|
||||
allCheck: false,
|
||||
slidingTime: 0,
|
||||
data: []
|
||||
routeList: [],
|
||||
activeTrainList: [],
|
||||
selectedTrainCode: '',
|
||||
selectedRouteList: []
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
@ -68,6 +100,9 @@ export default {
|
||||
domIdConfirm() {
|
||||
return this.dialogShow ? OperationEvent.Signal.arrangementRoute.menu.domId : '';
|
||||
},
|
||||
buttonDisabled() {
|
||||
return !(this.selectedTrainCode && this.selectedRouteList.length);
|
||||
},
|
||||
title() {
|
||||
return '取消CBTC列车进路';
|
||||
}
|
||||
@ -77,6 +112,9 @@ export default {
|
||||
if (this.show) {
|
||||
this.commit();
|
||||
}
|
||||
},
|
||||
'$store.state.map.activeTrainListUpdate': function (val) {
|
||||
this.activeTrainList = [...this.$store.state.map.activeTrainList];
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
@ -84,21 +122,94 @@ export default {
|
||||
this.operate = operate;
|
||||
// 如果不是断点激活,而是第一次显示,则需要设置初始值
|
||||
this.dialogShow = true;
|
||||
this.activeTrainList = [...this.$store.state.map.activeTrainList];
|
||||
this.routeList = [];
|
||||
this.selectedTrainCode = '';
|
||||
this.selectedRouteList = [];
|
||||
this.$nextTick(function () {
|
||||
this.$refs.table.setCurrentRow();
|
||||
this.$refs.trainTable && this.$refs.trainTable.setCurrentRow();
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
});
|
||||
},
|
||||
doClose() {
|
||||
this.loading = false;
|
||||
this.dialogShow = false;
|
||||
this.$refs.table.setCurrentRow();
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
},
|
||||
commit() {
|
||||
},
|
||||
handleClick() {
|
||||
commit(isClose = false) {
|
||||
const step = {
|
||||
over: true,
|
||||
cmdType: CMD.Train.CMD_TRAIN_CANCEL_CBTC_ROUTE,
|
||||
operation: isClose ? OperationEvent.Command.common.confirm.operation : OperationEvent.Command.common.apply.operation,
|
||||
param: { routeCodes: this.selectedRouteList }
|
||||
};
|
||||
|
||||
this.$store.dispatch('training/nextNew', step).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||
if (isClose) {
|
||||
this.$store.dispatch('menuOperation/setSelected', {device: {}});
|
||||
this.doClose();
|
||||
}
|
||||
}
|
||||
}).catch((e) => {
|
||||
console.error(e);
|
||||
isClose && this.doClose();
|
||||
this.$refs.noticeInfo.doShow();
|
||||
});
|
||||
},
|
||||
getArea(row) {
|
||||
const signal = this.$store.getters['map/getDeviceByCode'][row.startSignalCode];
|
||||
if (signal && signal.belongStationCode) {
|
||||
const station = this.$store.getters['map/getDeviceByCode'][signal.belongStationCode];
|
||||
return (station || {}).name;
|
||||
} else {
|
||||
return '';
|
||||
}
|
||||
},
|
||||
handleTrainChange(val) {
|
||||
const step = {
|
||||
code: val,
|
||||
operation: OperationEvent.Signal.cancelTrainRoute.choose.operation,
|
||||
val: val
|
||||
};
|
||||
const _that = this;
|
||||
this.$store.dispatch('training/nextNew', step).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||
this.selectedTrainCode = val;
|
||||
this.routeList = [];
|
||||
getRouteListForTrain(_that.$route.query.group, val).then(resp => {
|
||||
const routeData = this.$store.state.map.routeData;
|
||||
(resp.data || []).forEach(item => {
|
||||
_that.routeList.push(routeData[item]);
|
||||
});
|
||||
});
|
||||
}
|
||||
}).catch((e) => {
|
||||
console.error(e);
|
||||
this.$refs.noticeInfo.doShow();
|
||||
});
|
||||
},
|
||||
handleRouteChange(row) {
|
||||
const index = this.selectedRouteList.indexOf(row.code);
|
||||
if (index === -1) {
|
||||
this.selectedRouteList.push(row.code);
|
||||
} else {
|
||||
this.selectedRouteList.splice(index, 1);
|
||||
}
|
||||
const step = {
|
||||
operation: OperationEvent.Signal.cancelTrainRoute.choose1.operation,
|
||||
val: this.selectedRouteList
|
||||
};
|
||||
this.$store.dispatch('training/nextNew', step).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||
}
|
||||
}).catch((e) => {
|
||||
console.error(e);
|
||||
this.$refs.noticeInfo.doShow();
|
||||
});
|
||||
},
|
||||
cancel() {
|
||||
const operate = {
|
||||
@ -139,4 +250,38 @@ export default {
|
||||
z-index: 22;
|
||||
left: 10px;
|
||||
}
|
||||
.simulate_table_header{
|
||||
padding-left: 10px;
|
||||
border-right: 1px solid #BDBDBD;
|
||||
border-bottom: 1px solid #BDBDBD;
|
||||
height: 20px;
|
||||
background: #F0F0F0;
|
||||
line-height: 20px;
|
||||
font-size: 14px;
|
||||
color: #000;
|
||||
font-weight: bold;
|
||||
}
|
||||
.simulate_table {
|
||||
height: 400px;
|
||||
overflow-y: scroll;
|
||||
background: #fff;
|
||||
border-top: 2px solid #959595;
|
||||
border-left: 2px solid #959595;
|
||||
border-right: 2px solid #E9E9E9;
|
||||
border-bottom: 2px solid #E9E9E9;
|
||||
}
|
||||
.defaultStand{
|
||||
display: flex;
|
||||
background: #fff;
|
||||
color: #000;
|
||||
height: 20px;
|
||||
line-height: 20px;
|
||||
font-size: 14px;
|
||||
border-bottom: 1px solid #fff;
|
||||
}
|
||||
.selectedStand{
|
||||
display: flex;
|
||||
background: #3399FF;
|
||||
color: #fff;
|
||||
}
|
||||
</style>
|
||||
|
@ -26,10 +26,10 @@
|
||||
</el-row>
|
||||
<el-row justify="center" class="button-group">
|
||||
<el-col :span="4" :offset="1">
|
||||
<el-button :id="domIdConfirm" type="primary" :loading="loading" :disabled="status " @click="commit(true)">确定(O)</el-button>
|
||||
<el-button :id="domIdConfirm" type="primary" :loading="loading" :disabled="!selectSignalCode" @click="commit(true)">确定(O)</el-button>
|
||||
</el-col>
|
||||
<el-col :span="4" :offset="2">
|
||||
<el-button :id="domIdApply" type="primary" :loading="loading" :disabled="status" @click="commit(false)">应用(A)</el-button>
|
||||
<el-button :id="domIdApply" type="primary" :loading="loading" :disabled="!selectSignalCode" @click="commit(false)">应用(A)</el-button>
|
||||
</el-col>
|
||||
<el-col :span="4" :offset="2">
|
||||
<el-button :id="domIdClose" @click="cancel">关闭(C)</el-button>
|
||||
@ -61,7 +61,8 @@ export default {
|
||||
allChecked: false,
|
||||
dialogShow: false,
|
||||
loading: false,
|
||||
operate: ''
|
||||
operate: '',
|
||||
selectSignalCode: ''
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
@ -104,6 +105,7 @@ export default {
|
||||
doShow(operate) {
|
||||
this.operate = operate;
|
||||
this.dialogShow = true;
|
||||
this.selectSignalCode = '';
|
||||
this.$nextTick(function () {
|
||||
this.$refs.table.setCurrentRow();
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
@ -145,9 +147,9 @@ export default {
|
||||
? OperationEvent.Command.common.confirm.operation
|
||||
: OperationEvent.Command.common.apply.operation,
|
||||
over: true,
|
||||
param: {signalCode:[val.code]}
|
||||
param: {signalCode:val.code}
|
||||
};
|
||||
step.cmdType = CMD.Signal.CMD_SIGNAL_CLOSE_GUIDE;
|
||||
step.cmdType = CMD.Signal.CMD_SIGNAL_CANCEL_GUIDE;
|
||||
|
||||
this.$store.dispatch('training/nextNew', step).then(({ valid }) => {
|
||||
if (valid) {
|
||||
@ -156,7 +158,8 @@ export default {
|
||||
this.loading = false;
|
||||
isClose && this.doClose();
|
||||
}
|
||||
}).catch(() => {
|
||||
}).catch((e) => {
|
||||
console.error(e);
|
||||
isClose && this.doClose();
|
||||
this.$refs.noticeInfo.doShow();
|
||||
});
|
||||
@ -171,6 +174,7 @@ export default {
|
||||
signalCode: val.code
|
||||
}
|
||||
};
|
||||
this.selectSignalCode = val.code;
|
||||
this.$store.dispatch('training/nextNew', step).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||
|
@ -2,7 +2,7 @@
|
||||
<el-dialog v-dialogDrag class="ningbo-01__systerm route-setting" :title="title" :visible.sync="show" width="900px" :before-close="doClose" :z-index="2000" :modal="false" :close-on-click-modal="false">
|
||||
<el-row>
|
||||
<el-col :span="(sure? 18: 21) + (isSetSpeed? 0: 3)">
|
||||
<el-table ref="singleTable1" :id="domIdChoose" :data="tempList" highlight-current-row height="300px" @current-change="selectLine1">
|
||||
<el-table :id="domIdChoose" ref="singleTable1" :data="tempList" highlight-current-row height="300px" @current-change="selectLine1">
|
||||
<el-table-column prop="name" label="轨道" />
|
||||
<el-table-column prop="blockStatus" width="120" label="MAU">
|
||||
<template slot-scope="scope">
|
||||
@ -28,12 +28,12 @@
|
||||
<el-table-column prop="unblockProcess" label="用户里程终点" width="110" />
|
||||
</el-table>
|
||||
</el-col>
|
||||
<el-col :span="3" v-if="isSetSpeed">
|
||||
<el-table ref="singleTable2" :id="domIdSelect" :data="limitList" highlight-current-row height="300px" @current-change="selectLine2">
|
||||
<el-col v-if="isSetSpeed" :span="3">
|
||||
<el-table :id="domIdSelect" ref="singleTable2" :data="limitList" highlight-current-row height="300px" @current-change="selectLine2">
|
||||
<el-table-column prop="name" label="速度" />
|
||||
</el-table>
|
||||
</el-col>
|
||||
<el-col :span="3" v-if="sure">
|
||||
<el-col v-if="sure" :span="3">
|
||||
<fieldset style="padding-left: 10px;">
|
||||
<legend class="card_title">命令</legend>
|
||||
<el-radio-group v-model="command">
|
||||
@ -68,17 +68,20 @@ import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo'
|
||||
import CMD from '@/scripts/cmdPlugin/CommandEnum';
|
||||
|
||||
export default {
|
||||
components: {
|
||||
NoticeInfo
|
||||
},
|
||||
props: {
|
||||
initCacheMap: {
|
||||
type: Object,
|
||||
default() {
|
||||
return {}
|
||||
return {};
|
||||
}
|
||||
},
|
||||
initInfo: {
|
||||
type: Object,
|
||||
default() {
|
||||
return {}
|
||||
return {};
|
||||
}
|
||||
},
|
||||
updateDone: {
|
||||
@ -86,9 +89,6 @@ export default {
|
||||
default: 0
|
||||
}
|
||||
},
|
||||
components: {
|
||||
NoticeInfo
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
title: '',
|
||||
@ -123,7 +123,7 @@ export default {
|
||||
speedLimitValue: 0,
|
||||
currentSelect: null,
|
||||
noInit: true,
|
||||
changeIgnore: false,
|
||||
changeIgnore: false
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
@ -134,7 +134,7 @@ export default {
|
||||
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||
},
|
||||
tempList() {
|
||||
return this.sectionList.filter(el => ['01', '04'].includes(el.type) )
|
||||
return this.sectionList.filter(el => ['01', '04'].includes(el.type) );
|
||||
},
|
||||
isSetSpeed() {
|
||||
return this.operate && this.operate.operation.includes(OperationEvent.Command.commandNingBo3.line_section_setSpeed.operation);
|
||||
@ -205,13 +205,13 @@ export default {
|
||||
doClose() {
|
||||
this.loading = false;
|
||||
this.dialogShow = false;
|
||||
this.speedLimitValue = 0;
|
||||
this.sure && (this.currentSelect = null);
|
||||
this.sure && (this.speedLimitValue = 0);
|
||||
this.sure && this.$refs.singleTable1.setCurrentRow();
|
||||
this.sure && this.isSetSpeed && this.$refs.singleTable2.setCurrentRow();
|
||||
this.sure && this.$root.$emit('iniCacheMap', this.cmdType.value,
|
||||
Object.fromEntries(Object.entries(this.getCacheMap()).filter(el => el[1].done == 'done'))
|
||||
)
|
||||
);
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
},
|
||||
commit(isClose = true) {
|
||||
@ -219,7 +219,7 @@ export default {
|
||||
this.currentSelect.code == this.initSelect.code &&
|
||||
this.speedLimitValue == this.initParams.value) {
|
||||
const cacheMap = this.getCacheMap();
|
||||
const isOK = this.command&&(!this.sure || this.sure&&cacheMap[this.currentSelect.code])
|
||||
const isOK = this.command && (!this.sure || this.sure && cacheMap[this.currentSelect.code]);
|
||||
const operate = {
|
||||
cmdType: this.sure && isOK ? this.cmdType : null,
|
||||
operation: isClose ? OperationEvent.Command.common.confirm.operation : OperationEvent.Command.common.apply.operation,
|
||||
@ -235,11 +235,12 @@ export default {
|
||||
} else {
|
||||
this.$root.$emit('removeCache', this.cmdType.value, this.currentSelect.code);
|
||||
}
|
||||
this.$emit('updateDone')
|
||||
this.$emit('updateDone');
|
||||
this.$store.dispatch('map/flushMapRef');
|
||||
isClose && this.doClose();
|
||||
}
|
||||
}).catch(() => {
|
||||
}).catch((e) => {
|
||||
console.error(e);
|
||||
this.$refs.noticeInfo.doShow();
|
||||
});
|
||||
} else {
|
||||
@ -249,7 +250,7 @@ export default {
|
||||
selectLine1(val) {
|
||||
if (!val) { return; }
|
||||
this.currentSelect = this.$store.getters['map/getDeviceByCode'](val.code);
|
||||
this.$emit('updateDone')
|
||||
this.$emit('updateDone');
|
||||
if (this.changeIgnore) { return; }
|
||||
|
||||
const step = {
|
||||
@ -271,7 +272,7 @@ export default {
|
||||
selectLine2(val) {
|
||||
if (!val) { return; }
|
||||
this.speedLimitValue = val.value;
|
||||
this.$emit('updateDone')
|
||||
this.$emit('updateDone');
|
||||
if (this.changeIgnore) { return; }
|
||||
|
||||
const step = {
|
||||
@ -283,7 +284,7 @@ export default {
|
||||
this.$store.dispatch('training/nextNew', step).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||
this.sure || this.$emit('initSelect', this.currentSelect, {value: this.speedLimitValue});
|
||||
this.sure || this.$emit('initSelect', this.currentSelect, {value: this.isSetSpeed ? this.speedLimitValue : 0});
|
||||
}
|
||||
}).catch(() => {
|
||||
this.$refs.noticeInfo.doShow();
|
||||
@ -308,7 +309,7 @@ export default {
|
||||
if (this.sure) {
|
||||
return cache.done == 'two' ? this.isSetSpeed ? '确认设置限速完成' : '确认清除限速完成' : '等待确认/取消';
|
||||
} else {
|
||||
return cache.done == 'one' ? '已初始化' : ''
|
||||
return cache.done == 'one' ? '已初始化' : '';
|
||||
}
|
||||
}
|
||||
return '';
|
||||
|
@ -21,7 +21,7 @@
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-col>
|
||||
<el-col :span="5" :offset="1" v-if="sure">
|
||||
<el-col v-if="sure" :span="5" :offset="1">
|
||||
<fieldset style="position: absolute;top: 40%;">
|
||||
<legend class="card_title">命令</legend>
|
||||
<el-radio-group v-model="command">
|
||||
@ -63,13 +63,13 @@ export default {
|
||||
initCacheMap: {
|
||||
type: Object,
|
||||
default() {
|
||||
return {}
|
||||
return {};
|
||||
}
|
||||
},
|
||||
initInfo: {
|
||||
type: Object,
|
||||
default() {
|
||||
return {}
|
||||
return {};
|
||||
}
|
||||
},
|
||||
updateDone: {
|
||||
@ -104,19 +104,19 @@ export default {
|
||||
return this.operate && this.operate.operation.includes(OperationEvent.Command.commandNingBo3.line_section_close.operation);
|
||||
},
|
||||
cmdType() {
|
||||
return this.isBlock ? CMD.Section.CMD_SECTION_BLOCK : CMD.Section.CMD_SECTION_UNBLOCK
|
||||
return this.isBlock ? CMD.Section.CMD_SECTION_CLOSE : CMD.Section.CMD_SECTION_OPEN;
|
||||
},
|
||||
initSelect() {
|
||||
return this.initInfo.initSelect || {};
|
||||
},
|
||||
disabled() {
|
||||
return !this.currentSelect || (this.isBlock? this.currentSelect.blockade: !this.currentSelect.blockade) || this.noInit;
|
||||
return !this.currentSelect || (this.isBlock ? this.currentSelect.closed : !this.currentSelect.closed) || this.noInit;
|
||||
},
|
||||
show() {
|
||||
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||
},
|
||||
tempList() {
|
||||
return this.sectionList.filter(el => ['01', '04'].includes(el.type) )
|
||||
return this.sectionList.filter(el => ['01', '04'].includes(el.type) );
|
||||
},
|
||||
domIdChoose() {
|
||||
return this.dialogShow ? OperationEvent.Command.common.choose.domId : '';
|
||||
@ -173,14 +173,14 @@ export default {
|
||||
this.sure && this.$refs.table.setCurrentRow();
|
||||
this.sure && this.$root.$emit('iniCacheMap', this.cmdType.value,
|
||||
Object.fromEntries(Object.entries(this.getCacheMap()).filter(el => el[1].done == 'done'))
|
||||
)
|
||||
);
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
},
|
||||
commit(isClose = true) {
|
||||
if (this.currentSelect &&
|
||||
this.currentSelect.code == this.initSelect.code) {
|
||||
const cacheMap = this.getCacheMap();
|
||||
const isOK = this.command&&(!this.sure || this.sure&&cacheMap[this.currentSelect.code])
|
||||
const isOK = this.command && (!this.sure || this.sure && cacheMap[this.currentSelect.code]);
|
||||
const operate = {
|
||||
cmdType: this.sure && isOK ? this.cmdType : null,
|
||||
operation: isClose ? OperationEvent.Command.common.confirm.operation : OperationEvent.Command.common.apply.operation,
|
||||
@ -196,12 +196,13 @@ export default {
|
||||
} else {
|
||||
this.$root.$emit('removeCache', this.cmdType.value, this.currentSelect.code);
|
||||
}
|
||||
this.$emit('updateDone')
|
||||
this.$emit('updateDone');
|
||||
this.$store.dispatch('map/flushMapRef');
|
||||
isClose && this.doClose();
|
||||
}
|
||||
}).catch(() => {
|
||||
isClose && this.isClose();
|
||||
}).catch((e) => {
|
||||
console.error(e);
|
||||
isClose && this.doClose();
|
||||
this.$refs.noticeInfo.doShow();
|
||||
});
|
||||
} else {
|
||||
@ -211,7 +212,7 @@ export default {
|
||||
handleChangeLine(val) {
|
||||
if (!val) { return; }
|
||||
this.currentSelect = this.$store.getters['map/getDeviceByCode'](val.code);
|
||||
this.$emit('updateDone')
|
||||
this.$emit('updateDone');
|
||||
if (this.changeIgnore) { return; }
|
||||
|
||||
const step = {
|
||||
@ -221,7 +222,7 @@ export default {
|
||||
};
|
||||
|
||||
this.changeIgnore = false;
|
||||
this.$emit('updateDone')
|
||||
this.$emit('updateDone');
|
||||
this.$store.dispatch('training/nextNew', step).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||
@ -238,7 +239,7 @@ export default {
|
||||
if (this.sure) {
|
||||
return cache.done == 'two' ? this.isBlock ? '确认关闭轨道完成' : '确认开放轨道完成' : '等待确认/取消';
|
||||
} else {
|
||||
return cache.done == 'one' ? '已初始化' : ''
|
||||
return cache.done == 'one' ? '已初始化' : '';
|
||||
}
|
||||
}
|
||||
return '';
|
||||
|
@ -2,21 +2,19 @@
|
||||
<el-dialog v-dialogDrag class="ningbo-01__systerm route-setting" :title="title" :visible.sync="show" width="600px" :before-close="doClose" :z-index="2000" :modal="false" :close-on-click-modal="false">
|
||||
<el-row>
|
||||
<el-col :span="16">
|
||||
<el-table
|
||||
ref="table"
|
||||
:data="stationStandList"
|
||||
highlight-current-row
|
||||
height="350px"
|
||||
:id="domIdChoose"
|
||||
@current-change="handleCurrentChange"
|
||||
>
|
||||
<el-table-column prop="name" label="站台" />
|
||||
<el-table-column prop="groupNumber" label="状态">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ getStandStatus(scope.row.code) }}</span>
|
||||
<div class="simulate_table">
|
||||
<div style="display: flex;">
|
||||
<div class="simulate_table_header" style="width: 120px;">站台</div>
|
||||
<div class="simulate_table_header" style="width: 120px;">扣车</div>
|
||||
<div class="simulate_table_header" style="width: 100px;">状态</div>
|
||||
</div>
|
||||
<template v-for="item in stationStandList">
|
||||
<div :key="item.code" class="defaultStand" :class="{'selectedStand' :selectedStandList.includes(item.code)}" @click="clickStand(item)">
|
||||
<div style="width: 120px;padding-left: 10px;">{{ item.name }}</div>
|
||||
<div style="width: 100px;padding-left: 10px;">{{ getStandStatus(item.code) }}</div>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="7" :offset="1">
|
||||
<div class="set-status-box">
|
||||
@ -25,18 +23,18 @@
|
||||
<br>
|
||||
<el-radio v-model="status" :disabled="status" :label="false">关闭</el-radio>
|
||||
</div>
|
||||
<el-checkbox v-model="allChecked" :disabled="true" style="position: relative; top: 220px;">所有站台(F)</el-checkbox>
|
||||
<el-checkbox v-model="allChecked" style="position: relative; top: 220px;" @change="allCheckedChange">所有站台(F)</el-checkbox>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row justify="center" class="button-group">
|
||||
<el-col :span="4" :offset="1">
|
||||
<el-button :id="domIdConfirm" type="primary" :disabled="!selected" :loading="loading" @click="commit(true)">确定(O)</el-button>
|
||||
<el-button :id="domIdConfirm" type="primary" :disabled="buttonDisabled" :loading="loading" @click="commit(true)">确定(O)</el-button>
|
||||
</el-col>
|
||||
<el-col :span="4" :offset="2">
|
||||
<el-button :id="domIdApply" :disabled="!selected" :loading="loading" @click="commit(false)">应用(A)</el-button>
|
||||
<el-button :id="domIdApply" :disabled="buttonDisabled" :loading="loading" @click="commit(false)">应用(A)</el-button>
|
||||
</el-col>
|
||||
<el-col :span="4" :offset="2">
|
||||
<el-button :id="domIdClose" :disabled="!selected" :loading="loading" @click="cancel">关闭(C)</el-button>
|
||||
<el-button :id="domIdClose" :loading="loading" @click="cancel">关闭(C)</el-button>
|
||||
</el-col>
|
||||
<el-col :span="4" :offset="2">
|
||||
<el-button>帮助(H)</el-button>
|
||||
@ -62,7 +60,8 @@ export default {
|
||||
status: false,
|
||||
allChecked: false,
|
||||
dialogShow: false,
|
||||
loading: false
|
||||
loading: false,
|
||||
selectedStandList: []
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
@ -72,11 +71,11 @@ export default {
|
||||
show() {
|
||||
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||
},
|
||||
selected() {
|
||||
return this.$store.state.menuOperation.selected;
|
||||
buttonDisabled() {
|
||||
return !this.selectedStandList.length;
|
||||
},
|
||||
domIdChoose() {
|
||||
return this.dialogShow ? OperationEvent.Command.common.choose.domId : ''
|
||||
return this.dialogShow ? OperationEvent.Command.common.choose.domId : '';
|
||||
},
|
||||
domIdConfirm() {
|
||||
return this.dialogShow ? OperationEvent.Command.common.confirm.domId : '';
|
||||
@ -112,23 +111,46 @@ export default {
|
||||
doShow(operate) {
|
||||
// 如果不是断点激活,而是第一次显示,则需要设置初始值
|
||||
this.dialogShow = true;
|
||||
this.selectedStandList = [];
|
||||
this.allChecked = false;
|
||||
this.$nextTick(function () {
|
||||
this.$refs.table.setCurrentRow();
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
});
|
||||
},
|
||||
doClose() {
|
||||
this.loading = false;
|
||||
this.dialogShow = false;
|
||||
this.$refs.table.setCurrentRow();
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
},
|
||||
clickStand(val) {
|
||||
const index = this.selectedStandList.indexOf(val.code);
|
||||
if (index === -1) {
|
||||
this.selectedStandList.push(val.code);
|
||||
} else {
|
||||
this.selectedStandList.splice(index, 1);
|
||||
}
|
||||
if (this.selectedStandList.length === this.stationStandList.length) {
|
||||
this.allChecked = true;
|
||||
} else {
|
||||
this.allChecked = false;
|
||||
}
|
||||
this.judgeStatus();
|
||||
},
|
||||
judgeStatus() {
|
||||
this.status = false;
|
||||
this.selectedStandList.forEach(code => {
|
||||
const stand = this.$store.getters['map/getDeviceByCode'](code);
|
||||
if (stand.closed) {
|
||||
this.status = true;
|
||||
}
|
||||
});
|
||||
},
|
||||
commit(isClose = false) {
|
||||
const step = {
|
||||
over: true,
|
||||
cmdType:this.status ? CMD.Stand.CMD_STAND_CANCEL_JUMP_STOP : CMD.Stand.CMD_STAND_SET_JUMP_STOP,
|
||||
cmdType:this.status ? CMD.Stand.CMD_STAND_OPEN : CMD.Stand.CMD_STAND_CLOSE,
|
||||
operation: isClose ? OperationEvent.Command.common.confirm.operation : OperationEvent.Command.common.apply.operation,
|
||||
param: {standCode: this.selected.code}
|
||||
param: {standCodes: this.selectedStandList}
|
||||
};
|
||||
|
||||
this.$store.dispatch('training/nextNew', step).then(({ valid }) => {
|
||||
@ -144,28 +166,20 @@ export default {
|
||||
},
|
||||
getStandStatus(code) {
|
||||
const standEle = this.$store.getters['map/getDeviceByCode'](code);
|
||||
if (standEle.allSkip) {
|
||||
if (standEle.closed) {
|
||||
return '关闭';
|
||||
} else {
|
||||
return '打开';
|
||||
}
|
||||
},
|
||||
handleCurrentChange(val) {
|
||||
if (!val) { return; }
|
||||
const standEle = this.$store.getters['map/getDeviceByCode'](val.code);
|
||||
const step = {
|
||||
code: val.code,
|
||||
operation: OperationEvent.Command.common.choose.operation,
|
||||
val: val.code
|
||||
};
|
||||
this.$store.dispatch('training/nextNew', step).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||
this.$store.dispatch('menuOperation/setSelected', {device: val});
|
||||
}
|
||||
}).catch(() => {
|
||||
this.$refs.noticeInfo.doShow();
|
||||
allCheckedChange(val) {
|
||||
this.selectedStandList = [];
|
||||
if (val) {
|
||||
this.stationStandList.forEach(item => {
|
||||
this.selectedStandList.push(item.code);
|
||||
});
|
||||
}
|
||||
this.judgeStatus();
|
||||
},
|
||||
cancel() {
|
||||
const operate = {
|
||||
@ -205,4 +219,37 @@ export default {
|
||||
width: 60px;
|
||||
text-align: center;
|
||||
}
|
||||
.simulate_table_header{
|
||||
padding-left: 10px;
|
||||
border-right: 1px solid #BDBDBD;
|
||||
border-bottom: 1px solid #BDBDBD;
|
||||
height: 20px;
|
||||
background: #F0F0F0;
|
||||
line-height: 20px;
|
||||
font-size: 14px;
|
||||
color: #000;
|
||||
font-weight: bold;
|
||||
}
|
||||
.simulate_table {
|
||||
height: 280px;
|
||||
overflow-y: scroll;
|
||||
border-top: 2px solid #959595;
|
||||
border-left: 2px solid #959595;
|
||||
border-right: 2px solid #E9E9E9;
|
||||
border-bottom: 2px solid #E9E9E9;
|
||||
}
|
||||
.defaultStand{
|
||||
display: flex;
|
||||
background: #fff;
|
||||
color: #000;
|
||||
height: 20px;
|
||||
line-height: 20px;
|
||||
font-size: 14px;
|
||||
border-bottom: 1px solid #fff;
|
||||
}
|
||||
.selectedStand{
|
||||
display: flex;
|
||||
background: #3399FF;
|
||||
color: #fff;
|
||||
}
|
||||
</style>
|
||||
|
@ -4,25 +4,21 @@
|
||||
<el-col :span="16">
|
||||
<el-tabs v-model="activeName" type="border-card" @tab-click="changeTabs">
|
||||
<el-tab-pane label="站台" name="first">
|
||||
<el-table
|
||||
:id="domIdChoose"
|
||||
ref="table"
|
||||
:data="stationStandList"
|
||||
highlight-current-row
|
||||
height="280px"
|
||||
@current-change="handleCurrentChange"
|
||||
>
|
||||
<el-table-column prop="name" label="站台" />
|
||||
<el-table-column prop="detain" label="扣车">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ getDetainStatus(scope.row.code) }}</span>
|
||||
<div class="simulate_table">
|
||||
<div style="display: flex;">
|
||||
<div class="simulate_table_header" style="width: 120px;">站台</div>
|
||||
<div class="simulate_table_header" style="width: 120px;">扣车</div>
|
||||
<div class="simulate_table_header" style="width: 100px;">状态</div>
|
||||
</div>
|
||||
<template v-for="item in stationStandList">
|
||||
<div :key="item.code" class="defaultStand" :class="{'selectedStand' :selectedStandList.includes(item.code)}" @click="clickStand(item)">
|
||||
<div style="width: 120px;padding-left: 10px;">{{ item.name }}</div>
|
||||
<div style="width: 120px;padding-left: 10px;">{{ getDetainStatus(item.code) }}</div>
|
||||
<div style="width: 100px;padding-left: 10px;">{{ getStandStatus(item.code) }}</div>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="status" label="状态" width="80">
|
||||
<span>打开</span>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<el-checkbox v-model="allChecked" :disabled="true">所有站台(F)</el-checkbox>
|
||||
</div>
|
||||
<el-checkbox v-model="allChecked" style="margin-top: 10px;" @change="allCheckedChange">所有站台(F)</el-checkbox>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="系统" style="height:310px;background: #F0F0F0;" name="second">
|
||||
<div class="systemStatusOut">
|
||||
@ -45,10 +41,10 @@
|
||||
</el-row>
|
||||
<el-row justify="center" class="button-group">
|
||||
<el-col :span="4" :offset="1">
|
||||
<el-button :id="domIdConfirm" type="primary" :loading="loading" :disabled="!((selected.code&&activeName!='second')||activeName=='second')" @click="commit(true)">确定(O)</el-button>
|
||||
<el-button :id="domIdConfirm" type="primary" :loading="loading" :disabled="buttonDisabled" @click="commit(true)">确定(O)</el-button>
|
||||
</el-col>
|
||||
<el-col :span="4" :offset="2">
|
||||
<el-button :id="domIdApply" :loading="loading" :disabled="!((selected.code&&activeName!='second')||activeName=='second')" @click="commit(false)">应用(A)</el-button>
|
||||
<el-button :id="domIdApply" :loading="loading" :disabled="buttonDisabled" @click="commit(false)">应用(A)</el-button>
|
||||
</el-col>
|
||||
<el-col :span="4" :offset="2">
|
||||
<el-button :id="domIdClose" @click="cancel">关闭(C)</el-button>
|
||||
@ -79,7 +75,8 @@ export default {
|
||||
dialogShow: false,
|
||||
loading: false,
|
||||
activeName: 'first',
|
||||
active: '未激活'
|
||||
active: '未激活',
|
||||
selectedStandList: []
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
@ -89,10 +86,9 @@ export default {
|
||||
show() {
|
||||
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||
},
|
||||
selected() {
|
||||
return this.$store.state.menuOperation.selected;
|
||||
buttonDisabled() {
|
||||
return !((this.selectedStandList.length && this.activeName === 'first') || this.activeName === 'second');
|
||||
},
|
||||
|
||||
domIdChoose() {
|
||||
return this.dialogShow ? OperationEvent.Command.common.choose.domId : '';
|
||||
},
|
||||
@ -114,16 +110,6 @@ export default {
|
||||
if (this.show) {
|
||||
this.commit();
|
||||
}
|
||||
},
|
||||
'selected': function(val) {
|
||||
if (val) {
|
||||
const stand = this.$store.getters['map/getDeviceByCode'](val.code);
|
||||
if (stand && !stand.stationHoldTrain && !stand.centerHoldTrain) {
|
||||
this.status = true;
|
||||
} else {
|
||||
this.status = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
@ -131,48 +117,71 @@ export default {
|
||||
console.log('展开进路预览');
|
||||
},
|
||||
doShow(data) {
|
||||
if (data.active == 'second') {
|
||||
this.judgeStatus();
|
||||
}
|
||||
this.activeName = data.active;
|
||||
// 如果不是断点激活,而是第一次显示,则需要设置初始值
|
||||
this.dialogShow = true;
|
||||
this.selectedStandList = [];
|
||||
this.allChecked = false;
|
||||
this.$nextTick(function () {
|
||||
this.$refs.table.setCurrentRow();
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
});
|
||||
this.judgeStatus();
|
||||
},
|
||||
clickStand(val) {
|
||||
const index = this.selectedStandList.indexOf(val.code);
|
||||
if (index === -1) {
|
||||
this.selectedStandList.push(val.code);
|
||||
} else {
|
||||
this.selectedStandList.splice(index, 1);
|
||||
}
|
||||
if (this.selectedStandList.length === this.stationStandList.length) {
|
||||
this.allChecked = true;
|
||||
} else {
|
||||
this.allChecked = false;
|
||||
}
|
||||
this.judgeStatus();
|
||||
},
|
||||
changeTabs() {
|
||||
if (this.activeName == 'second') {
|
||||
this.judgeStatus();
|
||||
} else {
|
||||
this.status = true;
|
||||
}
|
||||
},
|
||||
judgeStatus() {
|
||||
this.status = true;
|
||||
if (this.activeName === 'second') {
|
||||
this.status = !this.stationStandList.some(item => {
|
||||
const stand = this.$store.getters['map/getDeviceByCode'](item.code);
|
||||
return stand.sysHoldTrain == 1;
|
||||
});
|
||||
} else {
|
||||
this.selectedStandList.forEach(code => {
|
||||
const stand = this.$store.getters['map/getDeviceByCode'](code);
|
||||
if (stand.centerHoldTrain || stand.stationHoldTrain) {
|
||||
this.status = false;
|
||||
this.stationStandList.forEach(element => {
|
||||
const stand = this.$store.getters['map/getDeviceByCode'](element.code);
|
||||
if (stand.sysHoldTrain) {
|
||||
this.status = this.status || true;
|
||||
}
|
||||
});
|
||||
this.status = !this.status;
|
||||
}
|
||||
},
|
||||
doClose() {
|
||||
this.loading = false;
|
||||
this.dialogShow = false;
|
||||
this.$refs.table.setCurrentRow();
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
},
|
||||
allCheckedChange(val) {
|
||||
this.selectedStandList = [];
|
||||
if (val) {
|
||||
this.stationStandList.forEach(item => {
|
||||
this.selectedStandList.push(item.code);
|
||||
});
|
||||
}
|
||||
this.judgeStatus();
|
||||
},
|
||||
commit(isClose = false) {
|
||||
let step = {};
|
||||
if (this.activeName == 'first') {
|
||||
step = {
|
||||
over: true,
|
||||
cmdType:this.status ? CMD.Stand.CMD_STAND_SET_HOLD_TRAIN : CMD.Stand.CMD_STAND_CANCEL_HOLD_TRAIN,
|
||||
cmdType:this.status ? CMD.Stand.CMD_STAND_SET_HOLD_TRAIN_ALL : CMD.Stand.CMD_STAND_CANCEL_HOLD_TRAIN_ALL,
|
||||
operation: isClose ? OperationEvent.Command.common.confirm.operation : OperationEvent.Command.common.apply.operation,
|
||||
param: {standCode: this.selected.code}
|
||||
param: {standCodes: this.selectedStandList}
|
||||
};
|
||||
} else {
|
||||
step = {
|
||||
@ -189,7 +198,6 @@ export default {
|
||||
this.doClose();
|
||||
} else {
|
||||
if (this.activeName == 'second') {
|
||||
// this.judgeStatus();
|
||||
this.status = !this.status;
|
||||
}
|
||||
}
|
||||
@ -199,23 +207,6 @@ export default {
|
||||
this.$refs.noticeInfo.doShow();
|
||||
});
|
||||
},
|
||||
handleCurrentChange(val) {
|
||||
if (!val) { return; }
|
||||
const step = {
|
||||
code: val.code,
|
||||
operation: OperationEvent.Command.common.choose.operation,
|
||||
val: val.code
|
||||
};
|
||||
|
||||
this.$store.dispatch('menuOperation/setSelected', {device: val});
|
||||
this.$store.dispatch('training/nextNew', step).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||
}
|
||||
}).catch(() => {
|
||||
this.$refs.noticeInfo.doShow();
|
||||
});
|
||||
},
|
||||
getDetainStatus(code) {
|
||||
const stand = this.$store.getters['map/getDeviceByCode'](code);
|
||||
if (!stand.stationHoldTrain && !stand.centerHoldTrain) {
|
||||
@ -224,6 +215,14 @@ export default {
|
||||
return '扣车';
|
||||
}
|
||||
},
|
||||
getStandStatus(code) {
|
||||
const stand = this.$store.getters['map/getDeviceByCode'](code);
|
||||
if (!stand.emergencyClosed) {
|
||||
return '打开';
|
||||
} else {
|
||||
return '关闭';
|
||||
}
|
||||
},
|
||||
cancel() {
|
||||
const operate = {
|
||||
operation: OperationEvent.Command.common.close.operation
|
||||
@ -285,4 +284,37 @@ export default {
|
||||
border: 1px #ccc solid;
|
||||
width: 290px;
|
||||
}
|
||||
.simulate_table_header{
|
||||
padding-left: 10px;
|
||||
border-right: 1px solid #BDBDBD;
|
||||
border-bottom: 1px solid #BDBDBD;
|
||||
height: 20px;
|
||||
background: #F0F0F0;
|
||||
line-height: 20px;
|
||||
font-size: 14px;
|
||||
color: #000;
|
||||
font-weight: bold;
|
||||
}
|
||||
.simulate_table {
|
||||
height: 280px;
|
||||
overflow-y: scroll;
|
||||
border-top: 2px solid #959595;
|
||||
border-left: 2px solid #959595;
|
||||
border-right: 2px solid #E9E9E9;
|
||||
border-bottom: 2px solid #E9E9E9;
|
||||
}
|
||||
.defaultStand{
|
||||
display: flex;
|
||||
background: #fff;
|
||||
color: #000;
|
||||
height: 20px;
|
||||
line-height: 20px;
|
||||
font-size: 14px;
|
||||
border-bottom: 1px solid #fff;
|
||||
}
|
||||
.selectedStand{
|
||||
display: flex;
|
||||
background: #3399FF;
|
||||
color: #fff;
|
||||
}
|
||||
</style>
|
||||
|
@ -2,7 +2,6 @@
|
||||
<el-dialog v-dialogDrag class="ningbo-01__systerm route-setting" :title="title" :visible.sync="show" width="650px" :before-close="doClose" :z-index="2000" :modal="false" :close-on-click-modal="false">
|
||||
<el-row>
|
||||
<el-col :span="18">
|
||||
<!--<el-table :data="switchList" height="350px">-->
|
||||
<el-table
|
||||
ref="table"
|
||||
:data="switchList"
|
||||
@ -11,7 +10,11 @@
|
||||
@current-change="handleCurrentChange"
|
||||
>
|
||||
<el-table-column prop="name" label="道岔" />
|
||||
<el-table-column prop="mode" label="模式" />
|
||||
<el-table-column prop="mode" label="模式">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ getSwitchMode(scope.row.code) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="position" label="位置">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ getSwitchPosition(scope.row.code) }}</span>
|
||||
@ -28,28 +31,28 @@
|
||||
<el-col :span="6">
|
||||
<div class="radio-box-title">设置模式</div>
|
||||
<div class="radio-box">
|
||||
<el-radio v-model="mode" label="auto" :disabled="true" style="display: block;margin-bottom: 10px;">自动</el-radio>
|
||||
<el-radio v-model="mode" label="artificial" :disabled="true" style="display: block;">人工</el-radio>
|
||||
<el-radio v-model="mode" label="auto" :disabled="!!selectedSwitch.auto" style="display: block;margin-bottom: 10px;">自动</el-radio>
|
||||
<el-radio v-model="mode" label="artificial" :disabled="!selectedSwitch.auto" style="display: block;">人工</el-radio>
|
||||
</div>
|
||||
<div class="radio-box-title">设置位置</div>
|
||||
<div class="radio-box">
|
||||
<el-radio v-model="position" label="normal" :disabled="!selected&&mode=='auto'" style="display: block;margin-bottom: 10px;">定位</el-radio>
|
||||
<el-radio v-model="position" label="reverse" :disabled="!selected&&mode=='auto'" style="display: block;">反位</el-radio>
|
||||
<el-radio v-model="position" label="normal" :disabled="!!(selectedSwitch.normalPosition || selectedSwitch.auto)" style="display: block;margin-bottom: 10px;">定位</el-radio>
|
||||
<el-radio v-model="position" label="reserve" :disabled="!!(selectedSwitch.reversePosition || selectedSwitch.auto)" style="display: block;">反位</el-radio>
|
||||
</div>
|
||||
<div class="radio-box-title">设置预留</div>
|
||||
<div class="radio-box">
|
||||
<el-radio v-model="reserved" label="auto" :disabled="!selected&&mode=='auto'" style="display: block;margin-bottom: 10px;">自动与预留</el-radio>
|
||||
<el-radio v-model="reserved" label="reversed" :disabled="!selected&&mode=='auto'" style="display: block;margin-bottom: 10px;">预留</el-radio>
|
||||
<el-radio v-model="reserved" label="release" :disabled="!selected&&mode=='auto'" style="display: block;">释放</el-radio>
|
||||
<el-radio v-model="reserved" label="auto" :disabled="true" style="display: block;margin-bottom: 10px;">自动与预留</el-radio>
|
||||
<el-radio v-model="reserved" label="reversed" :disabled="true" style="display: block;margin-bottom: 10px;">预留</el-radio>
|
||||
<el-radio v-model="reserved" label="release" :disabled="true" style="display: block;">释放</el-radio>
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row justify="center" class="button-group">
|
||||
<el-col :span="4" :offset="1">
|
||||
<el-button :id="domIdConfirm" type="primary" :disabled="!selected" :loading="loading" :selected="true" @click="commit(true)">确定(O)</el-button>
|
||||
<el-button :id="domIdConfirm" type="primary" :disabled="!selectedSwitchCode" :loading="loading" :selected="true" @click="commit(true)">确定(O)</el-button>
|
||||
</el-col>
|
||||
<el-col :span="4" :offset="2">
|
||||
<el-button :id="domIdConfirm" type="primary" :disabled="!selected" :loading="loading" :selected="true" @click="commit(false)">应用(A)</el-button>
|
||||
<el-button :id="domIdConfirm" type="primary" :disabled="!selectedSwitchCode" :loading="loading" :selected="true" @click="commit(false)">应用(A)</el-button>
|
||||
</el-col>
|
||||
<el-col :span="4" :offset="2">
|
||||
<el-button :id="domIdClose" @click="cancel">关闭(C)</el-button>
|
||||
@ -67,6 +70,7 @@ import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
||||
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
|
||||
import {menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate';
|
||||
import { mapGetters } from 'vuex';
|
||||
import CMD from '@/scripts/cmdPlugin/CommandEnum';
|
||||
|
||||
export default {
|
||||
name: 'StandDetain',
|
||||
@ -80,9 +84,11 @@ export default {
|
||||
allChecked: false,
|
||||
dialogShow: false,
|
||||
loading: false,
|
||||
mode: 'artificial',
|
||||
selectedSwitchCode: '',
|
||||
selectedSwitch: {},
|
||||
mode: '',
|
||||
position: '',
|
||||
reserved: 'reversed'
|
||||
reserved: ''
|
||||
|
||||
};
|
||||
},
|
||||
@ -93,9 +99,6 @@ export default {
|
||||
show() {
|
||||
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||
},
|
||||
selected() {
|
||||
return this.$store.state.menuOperation.selected;
|
||||
},
|
||||
domIdClose() {
|
||||
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
|
||||
},
|
||||
@ -110,28 +113,18 @@ export default {
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
mode(val) {
|
||||
if (val == 'auto') {
|
||||
this.position = '';
|
||||
this.reserved = '';
|
||||
}
|
||||
},
|
||||
'$store.state.map.keyboardEnterCount': function (val) {
|
||||
if (this.show) {
|
||||
this.commit();
|
||||
}
|
||||
},
|
||||
'selected': function(val) {
|
||||
if (val) {
|
||||
const section = this.$store.getters['map/getDeviceByCode'](val.code);
|
||||
this.position = section && section.normalPosition? 'reverse': 'normal';
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
doShow(operate) {
|
||||
// 如果不是断点激活,而是第一次显示,则需要设置初始值
|
||||
this.dialogShow = true;
|
||||
this.mode = '';
|
||||
this.position = '';
|
||||
this.$nextTick(function () {
|
||||
this.$refs.table.setCurrentRow();
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
@ -140,36 +133,61 @@ export default {
|
||||
doClose() {
|
||||
this.loading = false;
|
||||
this.dialogShow = false;
|
||||
this.mode = '';
|
||||
this.position = '';
|
||||
this.$refs.table.setCurrentRow();
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
},
|
||||
commit(isClose = false) {
|
||||
const cmd = this.mode == 'auto'
|
||||
? menuOperate.Switch.turnout
|
||||
: {
|
||||
normal: menuOperate.Switch.locate,
|
||||
reverse: menuOperate.Switch.reverse
|
||||
}[this.position];
|
||||
|
||||
if (cmd) {
|
||||
commitOperate(cmd, {switchCode: this.selected.code}, 3).then(({valid})=>{
|
||||
if (valid) {
|
||||
isClose && this.doClose();
|
||||
const params = {
|
||||
switchCode: this.selectedSwitchCode,
|
||||
auto: null,
|
||||
reserve: null,
|
||||
normal: null
|
||||
};
|
||||
if (this.mode) {
|
||||
params.auto = this.mode === 'auto';
|
||||
}
|
||||
}).catch(_ => {
|
||||
if (this.position) {
|
||||
params.reserve = this.position === 'reserve';
|
||||
params.normal = this.position === 'normal';
|
||||
}
|
||||
const step = {
|
||||
over: true,
|
||||
cmdType: CMD.Switch.CMD_SWITCH_COMMAND,
|
||||
operation: isClose ? OperationEvent.Command.common.confirm.operation : OperationEvent.Command.common.apply.operation,
|
||||
param: params
|
||||
};
|
||||
|
||||
this.$store.dispatch('training/nextNew', step).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||
this.mode = '';
|
||||
this.position = '';
|
||||
if (isClose) {
|
||||
this.$store.dispatch('menuOperation/setSelected', {device: {}});
|
||||
this.doClose();
|
||||
}
|
||||
}
|
||||
}).catch((e) => {
|
||||
console.error(e);
|
||||
isClose && this.doClose();
|
||||
this.$refs.noticeInfo.doShow();
|
||||
});
|
||||
} else {
|
||||
this.$message.info('未知指令');
|
||||
}
|
||||
},
|
||||
handleCurrentChange(val) {
|
||||
if (!val) { return; }
|
||||
commitOperate(menuOperate.Switch.turnout, {code:val.code}).then(({valid, operate})=>{
|
||||
if (valid) {
|
||||
this.position = '';
|
||||
this.$store.dispatch('menuOperation/setSelected', {device: val});
|
||||
const switchModel = this.$store.getters['map/getDeviceByCode'](val.code);
|
||||
this.selectedSwitchCode = val.code;
|
||||
this.selectedSwitch = switchModel;
|
||||
// this.mode = elem.auto ? 'artificial' : 'auto';
|
||||
// if (!elem.auto) {
|
||||
// if (elem.normalPosition) { this.position = 'reverse'; }
|
||||
// if (elem.reversePosition) { this.position = 'normal'; }
|
||||
// }
|
||||
}
|
||||
});
|
||||
},
|
||||
@ -183,6 +201,14 @@ export default {
|
||||
return '';
|
||||
}
|
||||
},
|
||||
getSwitchMode(code) {
|
||||
const elem = this.$store.getters['map/getDeviceByCode'](code);
|
||||
if (elem.auto) {
|
||||
return '自动';
|
||||
} else {
|
||||
return '人工';
|
||||
}
|
||||
},
|
||||
getSwitchStatus(code) {
|
||||
const elem = this.$store.getters['map/getDeviceByCode'](code);
|
||||
if (elem.blockade) {
|
||||
|
@ -1,17 +1,29 @@
|
||||
<template>
|
||||
<el-dialog v-dialogDrag class="ningbo-01__systerm route-setting" :title="title" :visible.sync="show" width="600px" :before-close="doClose" :z-index="2000" :modal="false" :close-on-click-modal="false">
|
||||
<el-row>
|
||||
<el-table :data="trainList" height="300px">
|
||||
<el-table-column prop="code" label="列车" />
|
||||
<el-table-column prop="interval" label="班次" />
|
||||
<el-table ref="trainTable" :data="tableData" height="300px" highlight-current-row @current-change="handleCurrentChange">
|
||||
<el-table-column prop="code" label="列车">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ scope.row }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="interval" label="班次">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ getServiceNum(scope.row) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column v-if="isDepart" prop="interval" label="模式" />
|
||||
<el-table-column v-if="isDepart" prop="interval" label="状态" />
|
||||
<el-table-column v-if="isDepart||isBreakAway" prop="interval" label="运行线" />
|
||||
<el-table-column v-if="isDepart||isBreakAway" prop="interval" label="运行线">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ getTrainDestinationCode(scope.row) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-row>
|
||||
<el-row justify="center" class="button-group">
|
||||
<el-col :span="4" :offset="1">
|
||||
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定(O)</el-button>
|
||||
<el-button :id="domIdConfirm" type="primary" :loading="loading" :disabled="!selectTrainCode" @click="commit">确定(O)</el-button>
|
||||
</el-col>
|
||||
<el-col :span="4" :offset="2">
|
||||
<el-button>应用(A)</el-button>
|
||||
@ -30,7 +42,7 @@
|
||||
<script>
|
||||
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
||||
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
|
||||
// import {menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate';
|
||||
import CMD from '@/scripts/cmdPlugin/CommandEnum';
|
||||
import { mapGetters } from 'vuex';
|
||||
|
||||
export default {
|
||||
@ -46,13 +58,12 @@ export default {
|
||||
dialogShow: false,
|
||||
loading: false,
|
||||
activeName: 'first',
|
||||
operate: {}
|
||||
operate: {},
|
||||
tableData: [],
|
||||
selectTrainCode: ''
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapGetters('map', [
|
||||
'trainList'
|
||||
]),
|
||||
show() {
|
||||
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||
},
|
||||
@ -101,7 +112,10 @@ export default {
|
||||
this.operate = operate;
|
||||
// 如果不是断点激活,而是第一次显示,则需要设置初始值
|
||||
this.dialogShow = true;
|
||||
this.selectTrainCode = '';
|
||||
this.tableData = this.$store.state.map.activeTrainList;
|
||||
this.$nextTick(function () {
|
||||
this.$refs.trainTable && this.$refs.trainTable.setCurrentRow();
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
});
|
||||
},
|
||||
@ -110,10 +124,35 @@ export default {
|
||||
this.dialogShow = false;
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
},
|
||||
getServiceNum(code) {
|
||||
const train = this.$store.getters['map/getDeviceByCode'](code);
|
||||
return (train || {}).serviceNumber;
|
||||
},
|
||||
getTrainDestinationCode(trainCode) {
|
||||
const train = this.$store.getters['map/getDeviceByCode'](trainCode);
|
||||
return train.destinationCode;
|
||||
},
|
||||
commit() {
|
||||
const operate = {
|
||||
over: true,
|
||||
operation: OperationEvent.Train.trainSetRoute.confirm.operation,
|
||||
cmdType: CMD.Train.CMD_TRAIN_DEPARTURE,
|
||||
param: { groupNumber: this.selectTrainCode }
|
||||
};
|
||||
this.$store.dispatch('training/nextNew', operate).then(({valid}) => {
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch(error => {
|
||||
console.error(error);
|
||||
this.$refs.noticeInfo.doShow();
|
||||
});
|
||||
},
|
||||
handleClick() {
|
||||
|
||||
},
|
||||
handleCurrentChange(val) {
|
||||
this.selectTrainCode = val;
|
||||
},
|
||||
cancel() {
|
||||
const operate = {
|
||||
|
@ -2,13 +2,9 @@
|
||||
<el-dialog v-dialogDrag class="ningbo-01__systerm route-setting" :title="title" :visible.sync="show" width="1000px" :before-close="doClose" :z-index="2000" :modal="false" :close-on-click-modal="false">
|
||||
<el-row>
|
||||
<el-col :span="10">
|
||||
<el-table :id="domIdChoose" ref="trainTable" :data="tableData" height="397px" style="margin-top: 57px" :highlight-current-row="true" @current-change="handleChangeTrain">
|
||||
<el-table-column prop="trainName" label="列车" />
|
||||
<!-- <el-table-column prop="groupNumber" label="班次" /> -->
|
||||
<el-table :id="domIdChoose" ref="trainTable" :cell-style="getCellStyle" :data="tableData" height="397px" style="margin-top: 57px" :highlight-current-row="true" @current-change="handleChangeTrain">
|
||||
<el-table-column prop="code" label="列车" />
|
||||
<el-table-column prop="runPathName" label="运行线" />
|
||||
<!-- <el-table-column prop="length" label="长度" />
|
||||
<el-table-column prop="mode" label="模式" />
|
||||
<el-table-column prop="status" label="状态" /> -->
|
||||
</el-table>
|
||||
</el-col>
|
||||
<el-col :span="13" :offset="1">
|
||||
@ -35,7 +31,7 @@
|
||||
</el-row>
|
||||
<el-row style="margin-top: 20px;">
|
||||
<el-col :span="12" style="padding-right: 10px;">
|
||||
<el-table height="160px">
|
||||
<el-table ref="pathTable" height="160px">
|
||||
<el-table-column prop="path" label="路径" />
|
||||
<el-table-column prop="direction" label="运行方向" />
|
||||
</el-table>
|
||||
@ -46,10 +42,14 @@
|
||||
</el-row>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="班次" name="third">
|
||||
<el-table :data="trainList" height="382px">
|
||||
<el-table-column prop="class" label="班次" />
|
||||
<el-table-column prop="length" label="长度" />
|
||||
<el-table-column prop="code" label="列车" />
|
||||
<el-table :id="domIdChoose2" ref="serviceTable" :data="serviceNumberDataList" height="382px" highlight-current-row @current-change="handleServiceChange">
|
||||
<el-table-column prop="serviceNumber" label="班次" />
|
||||
<el-table-column prop="length" label="长度">6</el-table-column>
|
||||
<el-table-column prop="code" label="列车">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ getTrainName(scope.row) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
@ -76,10 +76,8 @@
|
||||
<script>
|
||||
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
||||
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
|
||||
// import {menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate';
|
||||
// import {mouseCancelState} from '@/jmapNew/theme/components/utils/menuItemStatus';
|
||||
import CMD from '@/scripts/cmdPlugin/CommandEnum';
|
||||
import { getSimulationDestinationList } from '@/api/jmap/mapdraft';
|
||||
import { getSimulationDestinationList } from '@/api/simulation';
|
||||
import { mapGetters } from 'vuex';
|
||||
|
||||
export default {
|
||||
@ -98,7 +96,10 @@ export default {
|
||||
selectStandCode: '',
|
||||
showPath: false,
|
||||
selectedTrain:'',
|
||||
selectedRunPath:''
|
||||
selectedRunPath:'',
|
||||
selectedService: '',
|
||||
serviceNumberDataList: [],
|
||||
operate: ''
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
@ -109,9 +110,6 @@ export default {
|
||||
show() {
|
||||
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||
},
|
||||
// selected() {
|
||||
// return this.$store.state.menuOperation.selected;
|
||||
// },
|
||||
domIdClose() {
|
||||
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
|
||||
},
|
||||
@ -121,6 +119,9 @@ export default {
|
||||
domIdChoose1() {
|
||||
return this.dialogShow ? OperationEvent.Command.common.choose1.domId : '';
|
||||
},
|
||||
domIdChoose2() {
|
||||
return this.dialogShow ? OperationEvent.Train.trainDistribute.selected2.domId : '';
|
||||
},
|
||||
domIdConfirm() {
|
||||
return this.dialogShow ? OperationEvent.Signal.arrangementRoute.menu.domId : '';
|
||||
},
|
||||
@ -130,16 +131,8 @@ export default {
|
||||
},
|
||||
watch: {
|
||||
'$store.state.map.runLineTrainUpdate': function (val) {
|
||||
if (val) {
|
||||
this.getTrainList();
|
||||
this.status = true;
|
||||
} else {
|
||||
this.tableData = [];
|
||||
this.tableData = [...this.trainList];
|
||||
}
|
||||
}
|
||||
// '$store.state.training.runPathList':function(val) {
|
||||
// console.log(val);
|
||||
// }
|
||||
},
|
||||
mounted() {
|
||||
getSimulationDestinationList(this.$route.query.group).then(res=>{
|
||||
@ -150,17 +143,22 @@ export default {
|
||||
});
|
||||
},
|
||||
methods: {
|
||||
expandPath() {
|
||||
console.log('展开进路预览');
|
||||
},
|
||||
// expandPath() {
|
||||
// console.log('展开进路预览');
|
||||
// },
|
||||
doShow(operate, activeName) {
|
||||
this.getTrainList();
|
||||
// this.$store.dispatch('menuOperation/setSelected', {device: selected});
|
||||
this.tableData = [];
|
||||
this.tableData = [...this.trainList];
|
||||
this.operate = operate;
|
||||
this.activeName = activeName;
|
||||
this.serviceNumberDataList = this.$store.state.runPlan.serviceNumberDataList;
|
||||
// 如果不是断点激活,而是第一次显示,则需要设置初始值
|
||||
this.dialogShow = true;
|
||||
this.$nextTick(function () {
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
this.$refs.trainTable && this.$refs.trainTable.setCurrentRow();
|
||||
this.$refs.runLineTable && this.$refs.runLineTable.setCurrentRow();
|
||||
this.$refs.serviceTable && this.$refs.serviceTable.setCurrentRow();
|
||||
});
|
||||
},
|
||||
getTrainList() {
|
||||
@ -177,17 +175,22 @@ export default {
|
||||
this.tableData.push({code:train.groupNumber + ':' + train.serviceNumber, trainName:trainName, runPathName:destinationCode});
|
||||
});
|
||||
},
|
||||
getCellStyle(data) {
|
||||
if (this.$store.state.map.activeTrainList.includes(data.row.code)) {
|
||||
return { color: '#000' };
|
||||
} else {
|
||||
return { color: '#808080' };
|
||||
}
|
||||
},
|
||||
doClose() {
|
||||
this.loading = false;
|
||||
this.dialogShow = false;
|
||||
this.status = true;
|
||||
this.selectedRunPath = '';
|
||||
this.selectedTrain = '';
|
||||
const runPath = this.$store.state.training.runPathList;
|
||||
this.setRunPath(runPath, false);
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
// this.$store.dispatch('menuOperation/setSelected', {device: {}});
|
||||
this.$refs.runLineTable.setCurrentRow();
|
||||
this.$refs.trainTable.setCurrentRow();
|
||||
// mouseCancelState(this.selected);
|
||||
this.$store.dispatch('training/setRunPathSelected', []);
|
||||
},
|
||||
commit(isClose = false) {
|
||||
@ -197,7 +200,6 @@ export default {
|
||||
const trainInfo = this.selectedTrain.split(':');
|
||||
const params = {
|
||||
groupNumber: trainInfo[0],
|
||||
destinationCode: this.selectedRunPath,
|
||||
serviceNumber: trainInfo[1]
|
||||
};
|
||||
const steps = {
|
||||
@ -205,7 +207,14 @@ export default {
|
||||
over: true,
|
||||
param:params
|
||||
};
|
||||
if (this.activeName === 'third') {
|
||||
steps.cmdType = CMD.Train.CMD_TRAIN_DISTRIBUTE;
|
||||
steps.operation = isClose ? OperationEvent.Train.trainDistribute.confirm.operation : OperationEvent.Command.common.apply.operation;
|
||||
steps.param.serviceNumber = this.selectedService;
|
||||
} else if (this.activeName === 'first') {
|
||||
steps.cmdType = CMD.TrainWindow.CMD_TRAIN_SET_HEAD;
|
||||
steps.param.destinationCode = this.selectedRunPath;
|
||||
}
|
||||
this.$store.dispatch('training/nextNew', steps).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.loading = false;
|
||||
@ -213,7 +222,7 @@ export default {
|
||||
this.doClose();
|
||||
}
|
||||
}
|
||||
}).catch(() => {
|
||||
}).catch((e) => {
|
||||
isClose && this.doClose();
|
||||
this.loading = false;
|
||||
this.$refs.noticeInfo.doShow();
|
||||
@ -221,14 +230,32 @@ export default {
|
||||
|
||||
},
|
||||
handleClick() {
|
||||
this.selectedRunPath = '';
|
||||
this.selectedService = '';
|
||||
this.$refs.runLineTable && this.$refs.runLineTable.setCurrentRow();
|
||||
this.$refs.serviceTable && this.$refs.serviceTable.setCurrentRow();
|
||||
},
|
||||
judgeCanCommit() {
|
||||
if (this.selectedTrain && this.selectedRunPath) {
|
||||
if (this.selectedTrain && (this.selectedRunPath || this.selectedService)) {
|
||||
this.status = false;
|
||||
} else {
|
||||
this.status = true;
|
||||
}
|
||||
},
|
||||
handleServiceChange(row) {
|
||||
if (!row) { return; }
|
||||
const step = {
|
||||
operation: OperationEvent.Train.trainDistribute.selected2.operation,
|
||||
params: { serviceNumber: row.serviceNumber }
|
||||
};
|
||||
const _that = this;
|
||||
this.$store.dispatch('training/nextNew', step).then(({ valid }) => {
|
||||
if (valid) {
|
||||
_that.selectedService = row.serviceNumber;
|
||||
_that.judgeCanCommit();
|
||||
}
|
||||
});
|
||||
},
|
||||
handleChange(row) {
|
||||
if (row) {
|
||||
const runPath = row.runPath;
|
||||
@ -241,15 +268,6 @@ export default {
|
||||
this.$store.dispatch('training/nextNew', step).then(({ valid }) => {
|
||||
if (valid) {
|
||||
const oldRunPath = [...this.$store.state.training.runPathList];
|
||||
// this.setRunPath(oldRunPath, false);
|
||||
// // this.$nextTick(()=>{
|
||||
// // this.setRunPath(runPath, true);
|
||||
// // });
|
||||
// setTimeout(()=>{
|
||||
// this.setRunPath(runPath, true);
|
||||
// }, 500);
|
||||
// this.setRunPath(runPath, true);
|
||||
|
||||
runPath.forEach(path=>{
|
||||
if (oldRunPath.includes(path)) {
|
||||
const index = oldRunPath.indexOf(path);
|
||||
@ -286,6 +304,10 @@ export default {
|
||||
},
|
||||
handleChangeTrain(row) {
|
||||
if (row) {
|
||||
if (!this.$store.state.map.activeTrainList.includes(row.code)) {
|
||||
this.$refs.trainTable && this.$refs.trainTable.setCurrentRow();
|
||||
return;
|
||||
}
|
||||
const step = {
|
||||
code: row.code,
|
||||
operation: OperationEvent.Command.common.choose.operation,
|
||||
@ -304,8 +326,17 @@ export default {
|
||||
|
||||
}
|
||||
},
|
||||
getTrainName(data) {
|
||||
const nowDate = new Date();
|
||||
const time = nowDate.getHours() * 3600 + nowDate.getMinutes() * 60 + nowDate.getSeconds();
|
||||
const trip = data.tripNumberDataList.find((item) => {
|
||||
return item.startSecondTime <= time && item.endSecondTime >= time;
|
||||
});
|
||||
if (trip) {
|
||||
return data.serviceNumber + trip.tripNumber;
|
||||
}
|
||||
},
|
||||
setRunPath(runPath, isShow) {
|
||||
// console.log(isShow, runPath);
|
||||
runPath.forEach(sectionCode=>{
|
||||
const section = this.$store.getters['map/getDeviceByCode'](sectionCode);
|
||||
if (section && section.instance) {
|
||||
|
@ -1,31 +1,59 @@
|
||||
<template>
|
||||
<el-dialog v-dialogDrag class="ningbo-01__systerm route-setting" :title="title" :visible.sync="show" width="600px" :before-close="doClose" :z-index="2000" :modal="false" :close-on-click-modal="false">
|
||||
<el-dialog v-dialogDrag class="ningbo-01__systerm route-setting" :title="title" :visible.sync="show" width="700px" :before-close="doClose" :z-index="2000" :modal="false" :close-on-click-modal="false">
|
||||
<el-row>
|
||||
<el-col :span="20">
|
||||
<el-tabs type="border-card" v-model="activeName" :id="domIdChoose" @change="handleChangeTab">
|
||||
<el-tabs :id="domIdChoose" v-model="activeName" type="border-card" @tab-click="handleChangeTab">
|
||||
<el-tab-pane label="运行线" name="first">
|
||||
<el-table ref="table0" :data="trainList" height="300px" highlight-current-row :id="domIdChoose1" @current-change="handleRunLineChange">
|
||||
<el-table-column prop="interval" label="运行线" />
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-table :id="domIdChoose1" ref="table0" :data="runLineList" height="280px" highlight-current-row @current-change="handleRunLineChange">
|
||||
<el-table-column prop="name" label="运行线" />
|
||||
</el-table>
|
||||
<el-checkbox v-model="runPathAllCheck" style="margin-top: 10px;" @change="handleAllRunPathChange">所有运行线</el-checkbox>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<div class="simulate_table">
|
||||
<div style="display: flex;">
|
||||
<div class="simulate_table_header" style="width: 190px;">站台</div>
|
||||
<div class="simulate_table_header" style="width: 60px;">跳停</div>
|
||||
</div>
|
||||
<template v-for="item in standList">
|
||||
<div :key="item.code" class="defaultStand" :class="{'selectedStand' :selectedStandList.includes(item)}" @click="clickStand(item)">
|
||||
<div style="width: 190px;padding-left: 10px;">{{ getStandName(item) }}</div>
|
||||
<div style="width: 60px;padding-left: 10px;">{{ getStandStatus(item) }}</div>
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
<el-checkbox :id="domIdSelect" v-model="allCheck" style="margin-top: 10px;" @change="handleAllStandChange">所有站台</el-checkbox>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="列车" name="second">
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-table ref="table1" :data="trainList" height="300px" highlight-current-row :id="domIdSelect1" @current-change="handleTrainChange">
|
||||
<el-table-column prop="code" label="列车" />
|
||||
<el-table :id="domIdSelect1" ref="table1" :data="trainList" height="300px" highlight-current-row @current-change="handleTrainChange">
|
||||
<el-table-column prop="code" label="列车">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ scope.row }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="interval" label="运行线" />
|
||||
</el-table>
|
||||
</el-col>
|
||||
<el-col :span="12" style="padding-left: 5px;">
|
||||
<el-table ref="table2" :data="stationStandList" height="260px" highlight-current-row :id="domIdSelect2" @current-change="handleStandChange">
|
||||
<el-table-column prop="name" label="站台" />
|
||||
<el-table-column prop="jump" :width="60" label="跳停" >
|
||||
<template slot-scope="scope">
|
||||
<span>{{ getStandStatus(scope.row.code) }}</span>
|
||||
<div class="simulate_table">
|
||||
<div style="display: flex;">
|
||||
<div class="simulate_table_header" style="width: 190px;">站台</div>
|
||||
<div class="simulate_table_header" style="width: 60px;">跳停</div>
|
||||
</div>
|
||||
<template v-for="item in standList">
|
||||
<div :key="item.code" class="defaultStand" :class="{'selectedStand' :selectedStandList.includes(item)}" @click="clickStand(item)">
|
||||
<div style="width: 190px;padding-left: 10px;">{{ getStandName(item) }}</div>
|
||||
<div style="width: 60px;padding-left: 10px;">{{ getStandStatus(item) }}</div>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<el-checkbox v-model="allCheck" :id="domIdSelect" style="margin-top: 10px;" @change="handleAllStandChange">所有站台</el-checkbox>
|
||||
</div>
|
||||
<el-checkbox :id="domIdSelect" v-model="allCheck" style="margin-top: 10px;" @change="handleAllStandChange">所有站台</el-checkbox>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-tab-pane>
|
||||
@ -34,9 +62,9 @@
|
||||
<el-col :span="4" style="padding-left: 5px;">
|
||||
<div class="set-status-title">跳停</div>
|
||||
<div class="set-status-box">
|
||||
<el-radio v-model="status" :disabled="!allCheck &&!status" :label="true">设置(S)</el-radio>
|
||||
<el-radio v-model="status" :disabled="!status" :label="true">设置(S)</el-radio>
|
||||
<br>
|
||||
<el-radio v-model="status" :disabled="!allCheck && status" :label="false">清除(R)</el-radio>
|
||||
<el-radio v-model="status" :disabled="status" :label="false">清除(R)</el-radio>
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@ -63,6 +91,7 @@ import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
||||
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
|
||||
import CMD from '@/scripts/cmdPlugin/CommandEnum';
|
||||
import { mapGetters } from 'vuex';
|
||||
import { getSimulationDestinationList, getStandListByRunLineOrTrainCode } from '@/api/simulation';
|
||||
|
||||
export default {
|
||||
name: 'TrainJumpStop',
|
||||
@ -76,12 +105,17 @@ export default {
|
||||
loading: false,
|
||||
activeName: 'second',
|
||||
operate: {},
|
||||
allCheck: false
|
||||
allCheck: false,
|
||||
runPathAllCheck: false,
|
||||
runLineList: [],
|
||||
selectedStandList: [],
|
||||
selectedTrainCode: '',
|
||||
standList: [],
|
||||
trainList: []
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapGetters('map', [
|
||||
'trainList',
|
||||
'stationStandList'
|
||||
]),
|
||||
show() {
|
||||
@ -91,22 +125,22 @@ export default {
|
||||
return this.$store.state.menuOperation.selected;
|
||||
},
|
||||
domIdChoose() {
|
||||
return this.dialogShow ? OperationEvent.Command.common.choose.domId : ''
|
||||
return this.dialogShow ? OperationEvent.Command.common.choose.domId : '';
|
||||
},
|
||||
domIdChoose1() {
|
||||
return this.dialogShow ? OperationEvent.Command.common.choose1.domId : ''
|
||||
return this.dialogShow ? OperationEvent.Command.common.choose1.domId : '';
|
||||
},
|
||||
// domIdChoose2() {
|
||||
// return this.dialogShow ? OperationEvent.Command.common.choose2.domId : ''
|
||||
// },
|
||||
domIdSelect() {
|
||||
return this.dialogShow ? OperationEvent.Command.common.select.domId : ''
|
||||
return this.dialogShow ? OperationEvent.Command.common.select.domId : '';
|
||||
},
|
||||
domIdSelect1() {
|
||||
return this.dialogShow ? OperationEvent.Command.common.select1.domId : ''
|
||||
return this.dialogShow ? OperationEvent.Command.common.select1.domId : '';
|
||||
},
|
||||
domIdSelect2() {
|
||||
return this.dialogShow ? OperationEvent.Command.common.select2.domId : ''
|
||||
return this.dialogShow ? OperationEvent.Command.common.select2.domId : '';
|
||||
},
|
||||
domIdConfirm() {
|
||||
return this.dialogShow ? OperationEvent.Command.common.confirm.domId : '';
|
||||
@ -130,30 +164,66 @@ export default {
|
||||
'selected': function(val) {
|
||||
if (val) {
|
||||
const stand = this.$store.getters['map/getDeviceByCode'](val.code);
|
||||
this.status = stand && stand.assignSkip? false: true;
|
||||
this.status = !(stand && stand.assignSkip);
|
||||
}
|
||||
},
|
||||
'$store.state.map.activeTrainListUpdate': function (val) {
|
||||
this.trainList = [...this.$store.state.map.activeTrainList];
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
},
|
||||
methods: {
|
||||
getStandStatus(code) {
|
||||
const standEle = this.$store.getters['map/getDeviceByCode'](code);
|
||||
if (standEle.assignSkip) {
|
||||
if (this.activeName === 'first' && standEle.assignSkip) {
|
||||
return '是';
|
||||
} else if (this.activeName === 'first' && !standEle.assignSkip) {
|
||||
return '否';
|
||||
} else if (this.activeName === 'second' && standEle.skipSet.includes(this.selectedTrainCode)) {
|
||||
return '是';
|
||||
} else {
|
||||
return '否';
|
||||
}
|
||||
},
|
||||
getStandName(code) {
|
||||
const standEle = this.$store.getters['map/getDeviceByCode'](code);
|
||||
return (standEle || {}).name;
|
||||
},
|
||||
doShow(operate) {
|
||||
this.operate = operate;
|
||||
getSimulationDestinationList(this.$route.query.group).then(res=>{
|
||||
res.data.forEach(element => {
|
||||
this.runLineList.push({code:element.code, name:element.code + '(' + element.description + ')', runPath:element.runPath});
|
||||
});
|
||||
}).catch(()=>{
|
||||
});
|
||||
// 如果不是断点激活,而是第一次显示,则需要设置初始值
|
||||
this.dialogShow = true;
|
||||
this.selectedStandList = [];
|
||||
this.selectedTrainCode = '';
|
||||
this.standList = [];
|
||||
this.trainList = [...this.$store.state.map.activeTrainList];
|
||||
this.$nextTick(function () {
|
||||
this.$refs.table0 && this.$refs.table0.setCurrentRow();
|
||||
this.$refs.table1 && this.$refs.table1.setCurrentRow();
|
||||
this.$refs.table2 && this.$refs.table2.setCurrentRow();
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
});
|
||||
},
|
||||
clickStand(stand) {
|
||||
const index = this.selectedStandList.indexOf(stand);
|
||||
if (index === -1) {
|
||||
this.selectedStandList.push(stand);
|
||||
} else {
|
||||
this.selectedStandList.splice(index, 1);
|
||||
}
|
||||
if (this.selectedStandList.length === this.standList.length) {
|
||||
this.allCheck = true;
|
||||
} else {
|
||||
this.allCheck = false;
|
||||
}
|
||||
this.judgeStatus();
|
||||
},
|
||||
doClose() {
|
||||
this.loading = false;
|
||||
this.dialogShow = false;
|
||||
@ -162,69 +232,111 @@ export default {
|
||||
this.$refs.table2 && this.$refs.table2.setCurrentRow();
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
},
|
||||
judgeStatus() {
|
||||
this.status = true;
|
||||
this.selectedStandList.forEach(code => {
|
||||
const stand = this.$store.getters['map/getDeviceByCode'](code);
|
||||
if (stand.allSkip && this.activeName === 'first') {
|
||||
this.status = false;
|
||||
} else if (this.activeName === 'second' && stand.skipSet.includes(this.selectedTrainCode)) {
|
||||
this.status = false;
|
||||
}
|
||||
});
|
||||
},
|
||||
handleChangeTab(val) {
|
||||
this.selectedStandList = [];
|
||||
this.standList = [];
|
||||
this.allCheck = false;
|
||||
},
|
||||
handleAllRunPathChange(val) {
|
||||
this.standList = [];
|
||||
this.selectedStandList = [];
|
||||
this.$refs.table0 && this.$refs.table0.setCurrentRow();
|
||||
if (val) {
|
||||
this.stationStandList.forEach(item => {
|
||||
this.standList.push(item.code);
|
||||
});
|
||||
}
|
||||
},
|
||||
handleRunLineChange(val) {
|
||||
},
|
||||
handleTrainChange(val) {
|
||||
if (!val) { return; }
|
||||
const _that = this;
|
||||
this.selectedStandList = [];
|
||||
this.standList = [];
|
||||
this.allCheck = false;
|
||||
const step = {
|
||||
operation: OperationEvent.Command.common.select.operation,
|
||||
val: val.code,
|
||||
param: {
|
||||
trainGroupNumber: val.code
|
||||
destinationCode: val.code
|
||||
}
|
||||
};
|
||||
this.$store.dispatch('training/nextNew', step).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||
_that.stationStandList.forEach(item => {
|
||||
_that.standList.push(item.code);
|
||||
});
|
||||
_that.judgeStatus();
|
||||
}
|
||||
}).catch(() => {
|
||||
}).catch((e) => {
|
||||
console.error(e);
|
||||
this.$refs.noticeInfo.doShow();
|
||||
});
|
||||
},
|
||||
handleStandChange(val) {
|
||||
handleTrainChange(val) {
|
||||
if (!val) { return; }
|
||||
const _that = this;
|
||||
this.selectedStandList = [];
|
||||
this.standList = [];
|
||||
this.allCheck = false;
|
||||
this.selectedTrainCode = val;
|
||||
const step = {
|
||||
code: val.code,
|
||||
operation: OperationEvent.Command.common.select1.operation,
|
||||
val: val.code,
|
||||
operation: OperationEvent.Command.common.select.operation,
|
||||
val: val,
|
||||
param: {
|
||||
standCode: val.code
|
||||
groupNumber: val
|
||||
}
|
||||
};
|
||||
this.allCheck = false;
|
||||
this.$store.dispatch('training/nextNew', step).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||
this.$store.dispatch('menuOperation/setSelected', {device: val});
|
||||
getStandListByRunLineOrTrainCode(_that.$route.query.group, { groupNumber: val }).then(resp => {
|
||||
_that.standList = resp.data;
|
||||
});
|
||||
_that.judgeStatus();
|
||||
}
|
||||
}).catch(() => {
|
||||
}).catch((e) => {
|
||||
console.error(e);
|
||||
this.$refs.noticeInfo.doShow();
|
||||
});
|
||||
},
|
||||
handleAllStandChange(val) {
|
||||
this.$refs.table2 && this.$refs.table2.setCurrentRow();
|
||||
if (val) {
|
||||
this.selectedStandList = [...this.standList];
|
||||
} else {
|
||||
this.selectedStandList = [];
|
||||
}
|
||||
},
|
||||
commit(isClose = false) {
|
||||
const step = {
|
||||
over: true,
|
||||
cmdType:this.status
|
||||
? this.allCheck? CMD.Stand.CMD_STAND_ALL_SET_JUMP_STOP: CMD.Stand.CMD_STAND_SET_JUMP_STOP
|
||||
: this.allCheck? CMD.Stand.CMD_STAND_ALL_CANCEL_JUMP_STOP: CMD.Stand.CMD_STAND_CANCEL_JUMP_STOP,
|
||||
cmdType: '',
|
||||
operation: isClose ? OperationEvent.Command.common.confirm.operation : OperationEvent.Command.common.apply.operation,
|
||||
param: this.allCheck
|
||||
? { standCodes: this.stationStandList.map(el => el.code ) }
|
||||
: { standCode: this.selected.code }
|
||||
param: { standCodes: this.selectedStandList }
|
||||
};
|
||||
|
||||
if (this.activeName === 'first') {
|
||||
step.cmdType = this.status ? CMD.Stand.CMD_STAND_ALL_SET_JUMP_STOP : CMD.Stand.CMD_STAND_ALL_CANCEL_JUMP_STOP;
|
||||
} else {
|
||||
step.cmdType = this.status ? CMD.Train.CMD_TRAIN_SKIP_STOP : CMD.Train.CMD_TRAIN_CANCEL_SKIP_STOP;
|
||||
}
|
||||
this.$store.dispatch('training/nextNew', step).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||
isClose && this.doClose();
|
||||
}
|
||||
}).catch((error) => {
|
||||
console.log(error);
|
||||
console.error(error);
|
||||
isClose && this.doClose();
|
||||
this.$refs.noticeInfo.doShow();
|
||||
});
|
||||
@ -269,4 +381,37 @@ export default {
|
||||
z-index: 22;
|
||||
left: 10px;
|
||||
}
|
||||
.simulate_table_header{
|
||||
padding-left: 10px;
|
||||
border-right: 1px solid #BDBDBD;
|
||||
border-bottom: 1px solid #BDBDBD;
|
||||
height: 20px;
|
||||
background: #F0F0F0;
|
||||
line-height: 20px;
|
||||
font-size: 14px;
|
||||
color: #000;
|
||||
font-weight: bold;
|
||||
}
|
||||
.simulate_table {
|
||||
height: 280px;
|
||||
overflow-y: scroll;
|
||||
border-top: 2px solid #959595;
|
||||
border-left: 2px solid #959595;
|
||||
border-right: 2px solid #E9E9E9;
|
||||
border-bottom: 2px solid #E9E9E9;
|
||||
}
|
||||
.defaultStand{
|
||||
display: flex;
|
||||
background: #fff;
|
||||
color: #000;
|
||||
height: 20px;
|
||||
line-height: 20px;
|
||||
font-size: 14px;
|
||||
border-bottom: 1px solid #fff;
|
||||
}
|
||||
.selectedStand{
|
||||
display: flex;
|
||||
background: #3399FF;
|
||||
color: #fff;
|
||||
}
|
||||
</style>
|
||||
|
@ -2,25 +2,33 @@
|
||||
<el-dialog v-dialogDrag class="ningbo-01__systerm route-setting" :title="title" :visible.sync="show" width="500px" :before-close="doClose" :z-index="2000" :modal="false" :close-on-click-modal="false">
|
||||
<el-row>
|
||||
<el-col :span="14">
|
||||
<el-table :data="trainList" height="300px">
|
||||
<el-table-column prop="code" label="列车" />
|
||||
<el-table ref="trainTable" :data="tableData" height="300px" :highlight-current-row="true" @current-change="handleChangeTrain">
|
||||
<el-table-column prop="code" label="列车">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ scope.row }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="area" label="模式" />
|
||||
<el-table-column prop="status" label="运行类型" />
|
||||
<el-table-column prop="status" label="运行类型">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ getRunType(scope.row) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-col>
|
||||
<el-col :span="10" style="padding-left: 5px;color: #000;">
|
||||
<el-table :data="runTypeList" height="250px">
|
||||
<el-table ref="runTypeTable" :data="runTypeList" height="250px" :highlight-current-row="true" @current-change="handleChangeRunType">
|
||||
<el-table-column prop="label" label="运行类型" />
|
||||
</el-table>
|
||||
<div style="margin-top: 10px;">
|
||||
<el-checkbox v-model="allCheck" style="display: inline-block;">所有列车(I)</el-checkbox>
|
||||
<el-checkbox v-model="allCheck" :disabled="true" style="display: inline-block;">所有列车(I)</el-checkbox>
|
||||
<el-button style="display: inline-block;">复位(R)</el-button>
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row justify="center" class="button-group">
|
||||
<el-col :span="4" :offset="1">
|
||||
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定(O)</el-button>
|
||||
<el-button :id="domIdConfirm" type="primary" :loading="loading" :disabled="commitDisabled" @click="commit">确定(O)</el-button>
|
||||
</el-col>
|
||||
<el-col :span="4" :offset="2">
|
||||
<el-button>应用(A)</el-button>
|
||||
@ -39,7 +47,7 @@
|
||||
<script>
|
||||
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
||||
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
|
||||
import { mapGetters } from 'vuex';
|
||||
import CMD from '@/scripts/cmdPlugin/CommandEnum';
|
||||
|
||||
export default {
|
||||
name: 'ModifyTrainNumber',
|
||||
@ -57,22 +65,28 @@ export default {
|
||||
operate: {},
|
||||
allCheck: false,
|
||||
slidingTime: 0,
|
||||
data: [],
|
||||
tableData: [],
|
||||
trainId: '',
|
||||
groupNumber: '',
|
||||
selectTrainCode: '',
|
||||
selectRunType: '',
|
||||
runTypeList: [
|
||||
{label: '节能', value: 1},
|
||||
{label: '中间的2', value: 2},
|
||||
{label: '中间的1', value: 3},
|
||||
{label: '正常', value: 4},
|
||||
{label: '加速', value: 5}
|
||||
]
|
||||
{label: '节能', value: 'ENERGY_CONSERVATION'},
|
||||
{label: '中间的2', value: 'MIDDLE_TWO'},
|
||||
{label: '中间的1', value: 'MIDDLE_ONE'},
|
||||
{label: '正常', value: 'NORMAL'},
|
||||
{label: '加速', value: 'ACCELERATE'}
|
||||
],
|
||||
runTypeMap: {
|
||||
ENERGY_CONSERVATION: '节能',
|
||||
MIDDLE_TWO: '中间的2',
|
||||
MIDDLE_ONE: '中间的1',
|
||||
NORMAL: '正常',
|
||||
ACCELERATE: '加速'
|
||||
}
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapGetters('map', [
|
||||
'trainList'
|
||||
]),
|
||||
show() {
|
||||
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||
},
|
||||
@ -88,8 +102,11 @@ export default {
|
||||
domIdConfirm() {
|
||||
return this.dialogShow ? OperationEvent.Signal.arrangementRoute.menu.domId : '';
|
||||
},
|
||||
commitDisabled() {
|
||||
return !(this.selectTrainCode && this.selectRunType);
|
||||
},
|
||||
title() {
|
||||
return '修改列车描述号';
|
||||
return '设置列车运行类型';
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
@ -97,13 +114,21 @@ export default {
|
||||
if (this.show) {
|
||||
this.commit();
|
||||
}
|
||||
},
|
||||
'$store.state.map.runLineTrainUpdate': function (val) {
|
||||
this.tableData = [...this.$store.state.map.activeTrainList];
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
doShow(operate) {
|
||||
// 如果不是断点激活,而是第一次显示,则需要设置初始值
|
||||
this.dialogShow = true;
|
||||
this.selectRunType = '';
|
||||
this.selectTrainCode = '';
|
||||
this.tableData = [...this.$store.state.map.activeTrainList];
|
||||
this.$nextTick(function () {
|
||||
this.$refs.trainTable && this.$refs.trainTable.setCurrentRow();
|
||||
this.$refs.runTypeTable && this.$refs.runTypeTable.setCurrentRow();
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
});
|
||||
},
|
||||
@ -112,10 +137,58 @@ export default {
|
||||
this.dialogShow = false;
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
},
|
||||
commit() {
|
||||
getRunType(code) {
|
||||
const train = this.$store.getters['map/getDeviceByCode'](code);
|
||||
if (train) {
|
||||
return this.runTypeMap[train.runType];
|
||||
}
|
||||
},
|
||||
handleClick() {
|
||||
|
||||
commit() {
|
||||
const operate = {
|
||||
over: true,
|
||||
operation: OperationEvent.Train.trainSetRunType.confirm.operation,
|
||||
cmdType: CMD.Train.CMD_TRAIN_SET_RUN_TYPE,
|
||||
param: { runType: this.selectRunType, groupNumber: this.selectTrainCode }
|
||||
};
|
||||
this.$store.dispatch('training/nextNew', operate).then(({valid}) => {
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch(error => {
|
||||
console.error(error);
|
||||
this.$refs.noticeInfo.doShow();
|
||||
});
|
||||
},
|
||||
handleChangeRunType(row) {
|
||||
if (!row) { return; }
|
||||
const step = {
|
||||
operation: OperationEvent.Train.trainSetRunType.selected2.operation
|
||||
};
|
||||
const _that = this;
|
||||
this.$store.dispatch('training/nextNew', step).then(({ valid }) => {
|
||||
_that.selectRunType = row.value;
|
||||
});
|
||||
},
|
||||
handleChangeTrain(code) {
|
||||
if (!code) { return; }
|
||||
const step = {
|
||||
operation: OperationEvent.Train.trainSetRunType.selected1.operation
|
||||
};
|
||||
const _that = this;
|
||||
this.$store.dispatch('training/nextNew', step).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.selectTrainCode = code;
|
||||
const train = this.$store.getters['map/getDeviceByCode'](code);
|
||||
if (train) {
|
||||
_that.selectRunType = train.runType;
|
||||
this.runTypeList.forEach(item => {
|
||||
if (item.value === train.runType) {
|
||||
_that.$refs.runTypeTable && _that.$refs.runTypeTable.setCurrentRow(item);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
cancel() {
|
||||
const operate = {
|
||||
|
@ -69,18 +69,11 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
clickEvent() {
|
||||
const self = this;
|
||||
window.onclick = function (e) {
|
||||
self.doClose();
|
||||
};
|
||||
},
|
||||
initMenu() {
|
||||
// 编辑模式菜单列表
|
||||
this.menu = MenuContextHandler.covert(this.menuNormal);
|
||||
},
|
||||
doShow(point) {
|
||||
this.clickEvent();
|
||||
this.initMenu();
|
||||
if (this.$refs && this.$refs.popMenu && this.menu && this.menu.length) {
|
||||
this.$refs.popMenu.resetShowPosition(point);
|
||||
|
@ -141,12 +141,6 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
clickEvent() {
|
||||
const self = this;
|
||||
window.onclick = function (e) {
|
||||
self.doClose();
|
||||
};
|
||||
},
|
||||
initMenu() {
|
||||
// 编辑模式菜单列表
|
||||
if (this.selected.type != '04') {
|
||||
@ -160,7 +154,6 @@ export default {
|
||||
}
|
||||
},
|
||||
doShow(point) {
|
||||
this.clickEvent();
|
||||
this.initMenu();
|
||||
if (this.$refs && this.$refs.popMenu && this.menu && this.menu.length) {
|
||||
this.$refs.popMenu.resetShowPosition(point);
|
||||
|
@ -115,12 +115,6 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
clickEvent() {
|
||||
const self = this;
|
||||
window.onclick = function (e) {
|
||||
self.doClose();
|
||||
};
|
||||
},
|
||||
initMenu() {
|
||||
this.menu = MenuContextHandler.covert(this.menuNormal);
|
||||
// 故障模式菜单列表
|
||||
@ -130,7 +124,6 @@ export default {
|
||||
|
||||
},
|
||||
doShow(point) {
|
||||
this.clickEvent();
|
||||
this.initMenu();
|
||||
if (this.$refs && this.$refs.popMenu && this.menu && this.menu.length) {
|
||||
this.$refs.popMenu.resetShowPosition(point);
|
||||
|
@ -118,12 +118,6 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
clickEvent() {
|
||||
const self = this;
|
||||
window.onclick = function (e) {
|
||||
self.doClose();
|
||||
};
|
||||
},
|
||||
initMenu() {
|
||||
this.menu = MenuContextHandler.covert(this.menuNormal);
|
||||
// 故障模式菜单列表
|
||||
@ -132,7 +126,6 @@ export default {
|
||||
}
|
||||
},
|
||||
doShow(point) {
|
||||
this.clickEvent();
|
||||
this.initMenu();
|
||||
if (this.$refs && this.$refs.popMenu && this.menu && this.menu.length) {
|
||||
this.$refs.popMenu.resetShowPosition(point);
|
||||
|
@ -171,12 +171,6 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
clickEvent() {
|
||||
const self = this;
|
||||
window.onclick = function (e) {
|
||||
self.doClose();
|
||||
};
|
||||
},
|
||||
initMenu() {
|
||||
// 编辑模式菜单列表
|
||||
this.menu = MenuContextHandler.covert(this.menuNormal);
|
||||
@ -187,7 +181,6 @@ export default {
|
||||
}
|
||||
},
|
||||
doShow(point) {
|
||||
this.clickEvent();
|
||||
this.initMenu();
|
||||
if (this.$refs && this.$refs.popMenu && this.menu && this.menu.length) {
|
||||
this.$refs.popMenu.resetShowPosition(point);
|
||||
|
@ -168,12 +168,6 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
clickEvent() {
|
||||
const self = this;
|
||||
window.onclick = function (e) {
|
||||
self.doClose();
|
||||
};
|
||||
},
|
||||
initMenu() {
|
||||
// 编辑模式菜单列表
|
||||
this.menu = MenuContextHandler.covert(this.menuNormal);
|
||||
@ -191,7 +185,6 @@ export default {
|
||||
}
|
||||
},
|
||||
doShow(point) {
|
||||
this.clickEvent();
|
||||
this.initMenu();
|
||||
if (this.$refs && this.$refs.popMenu && this.menu && this.menu.length) {
|
||||
this.$refs.popMenu.resetShowPosition(point);
|
||||
|
@ -268,12 +268,6 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
clickEvent() {
|
||||
const self = this;
|
||||
window.onclick = function (e) {
|
||||
self.doClose();
|
||||
};
|
||||
},
|
||||
initMenu() {
|
||||
// 编辑模式菜单列表
|
||||
this.menu = MenuContextHandler.covert(this.menuNormal);
|
||||
@ -293,9 +287,7 @@ export default {
|
||||
}
|
||||
},
|
||||
doShow(point) {
|
||||
this.clickEvent();
|
||||
this.initMenu();
|
||||
|
||||
if (this.$refs && this.$refs.popMenu && this.menu && this.menu.length) {
|
||||
this.$refs.popMenu.resetShowPosition(point);
|
||||
}
|
||||
|
@ -28,7 +28,7 @@ class EqualRatioParser {
|
||||
importData(sheet, data) {
|
||||
if (this.config &&
|
||||
this.config.importData) {
|
||||
this.config.importData(sheet, data);
|
||||
return this.config.importData(sheet, data);
|
||||
} else {
|
||||
console.info('no import data function');
|
||||
}
|
||||
|
@ -67,7 +67,23 @@ export default {
|
||||
mounted() {
|
||||
this.$nextTick(() => {
|
||||
this.$store.dispatch('config/updateMenuBar');
|
||||
const _that = this;
|
||||
window.onclick = function (e) {
|
||||
if (!_that.$store.state.training.trainingStart) {
|
||||
_that.$refs.menuBar && _that.$refs.menuBar.blankClickClose();
|
||||
}
|
||||
_that.$refs.menuStationStand.doClose();
|
||||
_that.$refs.menuSwitch.doClose();
|
||||
_that.$refs.menuSignal.doClose();
|
||||
_that.$refs.menuSection.doClose();
|
||||
_that.$refs.menuTrain.doClose();
|
||||
_that.$refs.menuStation.doClose();
|
||||
_that.$refs.menuStationTurnBack.doClose();
|
||||
};
|
||||
});
|
||||
},
|
||||
beforeDestroy() {
|
||||
window.onclick = function (e) {};
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
@ -469,6 +469,9 @@ export default {
|
||||
}
|
||||
}
|
||||
},
|
||||
blankClickClose() {
|
||||
this.$refs.menuBar.doClose();
|
||||
},
|
||||
undeveloped() {
|
||||
this.$refs.menuBar.doClose();
|
||||
this.$alert(this.$t('menu.menuBar.implemented'), this.$t('global.tips'), {
|
||||
|
@ -169,12 +169,6 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
clickEvent() {
|
||||
const self = this;
|
||||
window.onclick = function (e) {
|
||||
self.doClose();
|
||||
};
|
||||
},
|
||||
initMenu() {
|
||||
// 编辑模式菜单列表
|
||||
if (this.selected.type != '04') {
|
||||
@ -188,7 +182,6 @@ export default {
|
||||
}
|
||||
},
|
||||
doShow(point) {
|
||||
this.clickEvent();
|
||||
this.initMenu();
|
||||
if (this.$refs && this.$refs.popMenu && this.menu && this.menu.length) {
|
||||
this.$refs.popMenu.resetShowPosition(point);
|
||||
|
@ -222,12 +222,6 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
clickEvent() {
|
||||
const self = this;
|
||||
window.onclick = function (e) {
|
||||
self.doClose();
|
||||
};
|
||||
},
|
||||
initMenu() {
|
||||
this.menu = MenuContextHandler.covert(this.menuNormal);
|
||||
// 故障模式菜单列表
|
||||
@ -236,7 +230,6 @@ export default {
|
||||
}
|
||||
},
|
||||
doShow(point) {
|
||||
this.clickEvent();
|
||||
this.initMenu();
|
||||
if (this.$refs && this.$refs.popMenu && this.menu && this.menu.length) {
|
||||
this.$refs.popMenu.resetShowPosition(point);
|
||||
|
@ -133,12 +133,6 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
clickEvent() {
|
||||
const self = this;
|
||||
window.onclick = function (e) {
|
||||
self.doClose();
|
||||
};
|
||||
},
|
||||
initMenu() {
|
||||
// 编辑模式菜单列表
|
||||
this.menu = MenuContextHandler.covert(this.menuNormal);
|
||||
@ -150,7 +144,6 @@ export default {
|
||||
},
|
||||
doShow(point) {
|
||||
if (this.selected.ciStation) {
|
||||
this.clickEvent();
|
||||
this.initMenu();
|
||||
if (this.$refs && this.$refs.popMenu && this.menu && this.menu.length) {
|
||||
this.$refs.popMenu.resetShowPosition(point);
|
||||
|
@ -164,12 +164,6 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
clickEvent() {
|
||||
const self = this;
|
||||
window.onclick = function (e) {
|
||||
self.doClose();
|
||||
};
|
||||
},
|
||||
initMenu() {
|
||||
// 编辑模式菜单列表
|
||||
this.menu = MenuContextHandler.covert(this.menuNormal);
|
||||
@ -183,7 +177,6 @@ export default {
|
||||
|
||||
},
|
||||
doShow(point) {
|
||||
this.clickEvent();
|
||||
this.initMenu();
|
||||
if (this.$refs && this.$refs.popMenu && this.menu && this.menu.length) {
|
||||
this.$refs.popMenu.resetShowPosition(point);
|
||||
|
@ -71,12 +71,6 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
clickEvent() {
|
||||
const self = this;
|
||||
window.onclick = function (e) {
|
||||
self.doClose();
|
||||
};
|
||||
},
|
||||
initMenu() {
|
||||
// 编辑模式菜单列表
|
||||
this.menu = MenuContextHandler.covert(this.menuNormal);
|
||||
@ -87,7 +81,6 @@ export default {
|
||||
}
|
||||
},
|
||||
doShow(point) {
|
||||
this.clickEvent();
|
||||
this.initMenu();
|
||||
if (this.menu && this.menu.length > 0) {
|
||||
this.setBackStrategy();
|
||||
|
@ -199,12 +199,6 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
clickEvent() {
|
||||
const self = this;
|
||||
window.onclick = function (e) {
|
||||
self.doClose();
|
||||
};
|
||||
},
|
||||
initMenu() {
|
||||
// 编辑模式菜单列表
|
||||
this.menu = MenuContextHandler.covert(this.menuNormal);
|
||||
@ -221,7 +215,6 @@ export default {
|
||||
}
|
||||
},
|
||||
doShow(point) {
|
||||
this.clickEvent();
|
||||
this.initMenu();
|
||||
if (this.$refs && this.$refs.popMenu && this.menu && this.menu.length) {
|
||||
this.$refs.popMenu.resetShowPosition(point);
|
||||
|
@ -166,12 +166,6 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
clickEvent() {
|
||||
const self = this;
|
||||
window.onclick = function (e) {
|
||||
self.doClose();
|
||||
};
|
||||
},
|
||||
initMenu() {
|
||||
// 编辑模式菜单列表
|
||||
this.menu = MenuContextHandler.covert(this.menuNormal);
|
||||
@ -194,7 +188,6 @@ export default {
|
||||
}
|
||||
},
|
||||
doShow(point) {
|
||||
this.clickEvent();
|
||||
this.initMenu();
|
||||
|
||||
if (this.$refs.popMenu && this.menu && this.menu.length) {
|
||||
|
@ -98,7 +98,6 @@ export default {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return JsonData;
|
||||
}
|
||||
};
|
||||
|
@ -70,7 +70,7 @@ import { mapGetters } from 'vuex';
|
||||
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
||||
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
|
||||
import CMD from '@/scripts/cmdPlugin/CommandEnum';
|
||||
import { getSimulationDestinationList } from '@/api/jmap/mapdraft';
|
||||
import { getSimulationDestinationList } from '@/api/simulation';
|
||||
|
||||
export default {
|
||||
name: 'TrainMove',
|
||||
|
@ -162,8 +162,10 @@ const InfoLessonDetail = () => import('@/views/organization/lessonManage/lessonD
|
||||
const RunPlanViewWindow = () => import('@/views/newMap/displayNew/demon/runPlanViewWindow');
|
||||
const SecondaryHome = () => import('@/views/trainingPlatform/secondaryHome');
|
||||
const Demo = () => import('@/views/demo');
|
||||
const MapGroup = () => import('@/views/publish/mapGroup/index');
|
||||
const DemoTraining = () => import('@/views/newMap/displayNew/demoTraining');
|
||||
const OrgDetail = () => import('@/views/system/companyManage/orgDetail');
|
||||
const VoiceTraining = () => import('@/views/system/voiceTraining/index');
|
||||
|
||||
// import { GenerateRouteProjectList } from '@/scripts/ProjectConfig';
|
||||
// import { getSessionStorage } from '@/utils/auth';
|
||||
@ -852,6 +854,13 @@ export const asyncRouter = [
|
||||
meta: {
|
||||
i18n: 'router.publishISCSManage'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: 'mapGroup',
|
||||
component: MapGroup,
|
||||
meta: {
|
||||
i18n: 'router.mapGroup'
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -1091,6 +1100,13 @@ export const asyncRouter = [
|
||||
meta: {
|
||||
i18n: 'router.preTheoryData'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: 'voiceTraining',
|
||||
component: VoiceTraining,
|
||||
meta: {
|
||||
i18n: 'router.voiceTraining'
|
||||
}
|
||||
}
|
||||
// {
|
||||
// path: 'deviceManage',
|
||||
|
@ -39,7 +39,9 @@ export default {
|
||||
/** 道岔钩锁 **/
|
||||
CMD_SWITCH_HOOK_LOCK:{value:'Switch_Hook_Lock', label:'道岔钩锁'},
|
||||
/** 挤岔恢复 */
|
||||
CMD_SWITCH_SQUEEZE_RECOVERY: {value: 'Switch_Squeeze_Recovery', label: '挤岔恢复'}
|
||||
CMD_SWITCH_SQUEEZE_RECOVERY: {value: 'Switch_Squeeze_Recovery', label: '挤岔恢复'},
|
||||
/** 道岔命令 */
|
||||
CMD_SWITCH_COMMAND: {value: 'Switch_Command', label: '道岔命令'}
|
||||
},
|
||||
|
||||
// 控制模式操作
|
||||
@ -148,7 +150,11 @@ export default {
|
||||
/** 新建计划列车 */
|
||||
CMD_Train_Init_Plan: {value: 'Train_Init_Plan', label: '新建计划列车'},
|
||||
/** 加载备用车 */
|
||||
CMD_TRAIN_LOAD_SPARE_TRAIN: {value: 'Train_Load_Spare_Train', label: '加载备用车'}
|
||||
CMD_TRAIN_LOAD_SPARE_TRAIN: {value: 'Train_Load_Spare_Train', label: '加载备用车'},
|
||||
/** 轨道开放 */
|
||||
CMD_SECTION_OPEN: {value: 'Section_Open', label: '轨道开放'},
|
||||
/** 轨道关闭 */
|
||||
CMD_SECTION_CLOSE: {value: 'Section_Close', label: '轨道关闭'}
|
||||
},
|
||||
|
||||
// 站台
|
||||
@ -157,10 +163,10 @@ export default {
|
||||
CMD_STAND_SET_JUMP_STOP: {value:'Stand_Set_Jump_Stop', label: '设置跳停'},
|
||||
/** 取消跳停 */
|
||||
CMD_STAND_CANCEL_JUMP_STOP: {value:'Stand_Cancel_Jump_Stop', label: '取消跳停'},
|
||||
/** 全站台设置跳停 */
|
||||
CMD_STAND_ALL_SET_JUMP_STOP: {value:'Stand_All_Set_Jump_Stop', label: '全站台设置跳停'},
|
||||
/** 全站台取消跳停 */
|
||||
CMD_STAND_ALL_CANCEL_JUMP_STOP: {value:'Stand_All_Cancel_Jump_Stop', label: '全站台取消跳停'},
|
||||
/** 批量设置站台跳停 */
|
||||
CMD_STAND_ALL_SET_JUMP_STOP: {value:'Stand_All_Set_Jump_Stop', label: '批量设置跳停'},
|
||||
/** 批量取消站台跳停 */
|
||||
CMD_STAND_ALL_CANCEL_JUMP_STOP: {value:'Stand_All_Cancel_Jump_Stop', label: '批量取消跳停'},
|
||||
/** 设置扣车 */
|
||||
CMD_STAND_SET_HOLD_TRAIN: {value:'Stand_Set_Hold_Train', label: '设置扣车'},
|
||||
/** 取消扣车 */
|
||||
@ -198,7 +204,11 @@ export default {
|
||||
/** 手动开启屏蔽门 */
|
||||
CMD_STAND_OPEN_PSD:{value:'Stand_Open_Psd', label: '手动开启屏蔽门'},
|
||||
/** 取消设置*/
|
||||
CMD_STAND_CANCEL_SETTING: {value: 'Stand_Cancel_Setting', label: '取消设置'}
|
||||
CMD_STAND_CANCEL_SETTING: {value: 'Stand_Cancel_Setting', label: '取消设置'},
|
||||
/** 打开站台 */
|
||||
CMD_STAND_OPEN: {value: 'Stand_Open', label: '打开站台'},
|
||||
/** 关闭站台 */
|
||||
CMD_STAND_CLOSE: {value: 'Stand_Close', label: '关闭站台'}
|
||||
},
|
||||
|
||||
Station: {
|
||||
@ -269,7 +279,19 @@ export default {
|
||||
CMD_TRAIN_ORDER_STOP: {value: 'Train_Order_Stop', label:'下令停车'},
|
||||
/** 取消停车命令 */
|
||||
CMD_TRAIN_CANCEL_ORDER_STOP: {value: 'Train_Cancel_Order_Stop', label:'取消停车命令'},
|
||||
CMD_TRAIN_SET_ROUTE: {value: 'Train_Set_Route', label: '列车排列进路'}
|
||||
CMD_TRAIN_SET_ROUTE: {value: 'Train_Set_Route', label: '列车排列进路'},
|
||||
/** 列车发车(泰雷兹) */
|
||||
CMD_TRAIN_DEPARTURE: {value: 'Train_Departure', label: '列车发车'},
|
||||
/** 分配班次 */
|
||||
CMD_TRAIN_DISTRIBUTE: {value: 'Train_Distribute', label: '分配班次'},
|
||||
/** 设置运行类型 */
|
||||
CMD_TRAIN_SET_RUN_TYPE : {value: 'Train_Set_Run_Type', label: '设置运行类型' },
|
||||
/** 取消列车CBTC进路 */
|
||||
CMD_TRAIN_CANCEL_CBTC_ROUTE : { value: 'Train_Cancel_CBTC_Route', label: '取消列车CBTC进路' },
|
||||
/** 列车在指定站台跳停 */
|
||||
CMD_TRAIN_SKIP_STOP : { value: 'Train_Skip_Stop', label: '指定站台跳停' },
|
||||
/** 列车取消指定站台的跳停 */
|
||||
CMD_TRAIN_CANCEL_SKIP_STOP : { value: 'Train_Cancel_Skip_Stop', label: '取消指定站台跳停' }
|
||||
},
|
||||
TrainWindow: {
|
||||
/** 修改列车识别号 */
|
||||
|
@ -58,7 +58,6 @@ class CommandHandle {
|
||||
getDefinition(cmdType) {
|
||||
if (cmdType) {
|
||||
const simulationRole = Handler.getSimulationRole();
|
||||
|
||||
if (simulationRole) {
|
||||
return this.definitionMap[simulationRole][cmdType.value] || this.definitionMap.Common[cmdType.value] || null;
|
||||
} else {
|
||||
|
@ -627,7 +627,7 @@ export const OperationEvent = {
|
||||
// 锁闭区段
|
||||
line_sectionLock: {
|
||||
operation: '00c',
|
||||
domId: '_Tips-ningBo-line_sectionLock{TOP}',
|
||||
domId: '_Tips-ningBo-line_sectionLock{TOP}'
|
||||
},
|
||||
// 取消转换锁闭
|
||||
line_sectionLock_cancelTransferLock: {
|
||||
@ -1294,6 +1294,14 @@ export const OperationEvent = {
|
||||
secondaryConfirm: {
|
||||
operation: '3014',
|
||||
domId: '_Tips-Signal-ArrangementRoute-SecondaryConfirm'
|
||||
},
|
||||
toStand: {
|
||||
operation: '3015',
|
||||
domId: '_Tips-Signal-ArrangementRoute-ToStand'
|
||||
},
|
||||
toSignal: {
|
||||
operation: '3016',
|
||||
domId: '_Tips-Signal-ArrangementRoute-ToSignal'
|
||||
}
|
||||
},
|
||||
// 取消进路
|
||||
@ -1321,6 +1329,10 @@ export const OperationEvent = {
|
||||
secondaryConfirm: {
|
||||
operation: '3034',
|
||||
domId: '_Tips-Signal-CancelTrainRoute-SecondaryConfirm'
|
||||
},
|
||||
choose1: {
|
||||
operation: '3035',
|
||||
domId: '_Tips-Signal-CancelTrainRoute-Choose1'
|
||||
}
|
||||
},
|
||||
// 信号重开
|
||||
@ -3076,6 +3088,42 @@ export const OperationEvent = {
|
||||
operation: '70r1',
|
||||
domId: '_Tips-Train-trainSetRoute-Confirm'
|
||||
}
|
||||
},
|
||||
trainDistribute: {
|
||||
menu: {
|
||||
operation: '70s',
|
||||
domId: '_Tips-Train-trainDistribute-Menu'
|
||||
},
|
||||
selected1: {
|
||||
operation: '70s1',
|
||||
domId: '_Tips-Train-trainDistribute-Selected1'
|
||||
},
|
||||
selected2: {
|
||||
operation: '70s2',
|
||||
domId: '_Tips-Train-trainDistribute-Selected2'
|
||||
},
|
||||
confirm: {
|
||||
operation: '70s3',
|
||||
domId: '_Tips-Train-trainDistribute-Confirm'
|
||||
}
|
||||
},
|
||||
trainSetRunType: {
|
||||
menu: {
|
||||
operation: '70t',
|
||||
domId: '_Tips-Train-trainSetRunType-Menu'
|
||||
},
|
||||
selected1: {
|
||||
operation: '70t1',
|
||||
domId: '_Tips-Train-trainSetRunType-Selected1'
|
||||
},
|
||||
selected2: {
|
||||
operation: '70t2',
|
||||
domId: '_Tips-Train-trainSetRunType-Selected2'
|
||||
},
|
||||
confirm: {
|
||||
operation: '70t3',
|
||||
domId: '_Tips-Train-trainSetRunType-Confirm'
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
|
@ -17,7 +17,8 @@ const runPlan = {
|
||||
draftStations: [], // 草稿运行图车站列表
|
||||
runPlanMap: {}, // 运行图数据map(以id和version 为标识)
|
||||
runPlanInfo: {}, // 运行图信息
|
||||
loadRunPlanCount: 0 // 运行图加载数据完成
|
||||
loadRunPlanCount: 0, // 运行图加载数据完成
|
||||
serviceNumberDataList: [] // 运行图数据
|
||||
},
|
||||
getters: {
|
||||
stations: (state) => {
|
||||
@ -68,6 +69,7 @@ const runPlan = {
|
||||
state.planData = data;
|
||||
state.editData = {};
|
||||
if (data && data.serviceNumberDataList && data.serviceNumberDataList.length) {
|
||||
state.serviceNumberDataList = data.serviceNumberDataList;
|
||||
const serviceList = data.serviceNumberDataList;
|
||||
serviceList.forEach((service, i) => {
|
||||
const trainList = service.tripNumberDataList;
|
||||
@ -117,6 +119,7 @@ const runPlan = {
|
||||
state.planData = {};
|
||||
state.editData = {};
|
||||
state.selected = {};
|
||||
state.serviceNumberDataList = [];
|
||||
},
|
||||
draftClear: (state) => {
|
||||
state.draftPlanData = {};
|
||||
|
@ -41,6 +41,7 @@ export default {
|
||||
},
|
||||
handleSave() {
|
||||
const data = JSON.stringify(this.$store.state.iscs.iscs);
|
||||
console.log(data, '===');
|
||||
this.$emit('handleSave', data);
|
||||
}
|
||||
}
|
||||
|
@ -13,20 +13,23 @@
|
||||
<el-form-item label="Y轴坐标:" prop="y">
|
||||
<el-input-number v-model="form.y" size="small" controls-position="right" :min="1" />
|
||||
</el-form-item>
|
||||
<el-form-item label="是否透明" prop="isTransparent">
|
||||
<el-checkbox v-model="form.isTransparent" size="small" />
|
||||
</el-form-item>
|
||||
<el-form-item label="按钮文字:" prop="context">
|
||||
<el-input v-model="form.context" size="small" />
|
||||
</el-form-item>
|
||||
<el-form-item label="文字颜色:" prop="textColor">
|
||||
<el-color-picker v-model="form.textColor" size="small" />
|
||||
<el-color-picker v-model="form.textColor" show-alpha size="small" />
|
||||
</el-form-item>
|
||||
<el-form-item label="选中文字颜色:" prop="textColorActive">
|
||||
<el-color-picker v-model="form.textColorActive" size="small" />
|
||||
<el-color-picker v-model="form.textColorActive" show-alpha size="small" />
|
||||
</el-form-item>
|
||||
<el-form-item label="背景颜色:" prop="textColor">
|
||||
<el-color-picker v-model="form.fillColor" size="small" />
|
||||
<el-color-picker v-model="form.fillColor" show-alpha size="small" />
|
||||
</el-form-item>
|
||||
<el-form-item label="选中背景颜色:" prop="textColor">
|
||||
<el-color-picker v-model="form.fillColorActive" size="small" />
|
||||
<el-color-picker v-model="form.fillColorActive" show-alpha size="small" />
|
||||
</el-form-item>
|
||||
<el-form-item label="文字大小:" prop="fontSize">
|
||||
<el-input-number v-model="form.fontSize" size="small" controls-position="right" :min="1" />
|
||||
@ -47,6 +50,16 @@
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="form.function=== 'ElementShow'" label="隐藏元素类型:" prop="hideType">
|
||||
<el-select v-model="form.hideType" size="small">
|
||||
<el-option
|
||||
v-for="item in hideTypeList"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" size="small" @click="onSubmit('form')">{{ buttonText }}</el-button>
|
||||
<el-button v-show="showDeleteButton" size="small" type="danger" @click="deleteDevice">删除</el-button>
|
||||
@ -87,19 +100,32 @@ export default {
|
||||
fontSize: 10,
|
||||
x: 10,
|
||||
y: 10,
|
||||
isTransparent: false,
|
||||
context: '',
|
||||
function: '',
|
||||
textColor: '',
|
||||
textColorActive: '#000',
|
||||
fillColor: 'rgba(0,0,0,0)',
|
||||
fillColorActive: 'rgba(0,0,0,0)'
|
||||
fillColorActive: 'rgba(0,0,0,0)',
|
||||
hideType: ''
|
||||
},
|
||||
hideTypeList: [
|
||||
{ label: '温感器', value: 'alarmLamp' },
|
||||
{ label: '烟感器', value: 'smokeDetector' },
|
||||
{ label: '防火阀', value: 'fireDamper' },
|
||||
{ label: '报警按钮', value: 'alarmButton' }
|
||||
// { label: '消火栓按钮', value: 'zanwu' },
|
||||
// { label: '标签', value: '' }
|
||||
],
|
||||
rules: {
|
||||
context: [
|
||||
{ required: true, message: '请填写按钮文字', trigger: 'blur' }
|
||||
],
|
||||
function: [
|
||||
{ required: true, message: '请选择按钮功能', trigger: 'change'}
|
||||
],
|
||||
hideType: [
|
||||
{ required: true, message: '请选择显隐元素类型', trigger: 'change' }
|
||||
]
|
||||
}
|
||||
};
|
||||
@ -120,6 +146,7 @@ export default {
|
||||
this.form.z2 = model.z2;
|
||||
this.form.levelPadding = model.levelPadding;
|
||||
this.form.verticalPadding = model.verticalPadding;
|
||||
this.form.isTransparent = model.isTransparent;
|
||||
this.form.x = model.point.x;
|
||||
this.form.y = model.point.y;
|
||||
this.form.context = model.context;
|
||||
@ -129,6 +156,7 @@ export default {
|
||||
this.form.textColorActive = model.textColorActive || '#000';
|
||||
this.form.fillColor = model.fillColor;
|
||||
this.form.fillColorActive = model.fillColorActive;
|
||||
this.form.hideType = model.hideType;
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -138,6 +166,15 @@ export default {
|
||||
{label: '操作按钮', value: 'OperatingButton'},
|
||||
{label: '门禁站台层', value: 'goToStand'},
|
||||
{label: '门禁站厅层', value: 'goToStation'},
|
||||
{label: '火灾报警系统-站厅层A端', value: 'goFireStation-Two'},
|
||||
{label: '火灾报警系统-站厅层B端', value: 'goFireStation-Three'},
|
||||
{label: '火灾报警系统-站厅层C端', value: 'goFireStation-Four'},
|
||||
{label: '火灾报警系统-站厅层D端', value: 'goFireStation-Five'},
|
||||
{label: '火灾报警系统-站厅层E端', value: 'goFireStation-Six'},
|
||||
{label: '火灾报警系统-站厅层F端', value: 'goFireStation-Seven'},
|
||||
{label: '火灾报警系统-站台层A端', value: 'goFireStand-Two'},
|
||||
{label: '火灾报警系统-站台层B端', value: 'goFireStand-Three'},
|
||||
{label: '火灾报警系统-站台层公共区段', value: 'goFireStand-Four'},
|
||||
{label: '元素显隐', value: 'ElementShow'},
|
||||
{label: '返回', value: 'GoBack'}
|
||||
];
|
||||
@ -169,13 +206,15 @@ export default {
|
||||
z2: this.form.z2,
|
||||
levelPadding: this.form.levelPadding,
|
||||
verticalPadding: this.form.verticalPadding,
|
||||
isTransparent: this.form.isTransparent,
|
||||
context: this.form.context,
|
||||
function: this.form.function,
|
||||
fontSize: this.form.fontSize,
|
||||
textColor: this.form.textColor,
|
||||
textColorActive: this.form.textColorActive,
|
||||
fillColor: this.form.fillColor,
|
||||
fillColorActive: this.form.fillColorActive
|
||||
fillColorActive: this.form.fillColorActive,
|
||||
hideType: this.form.hideType
|
||||
};
|
||||
this.$emit('createDataModel', rectModel);
|
||||
this.initPage();
|
||||
@ -194,11 +233,13 @@ export default {
|
||||
_type: 'IscsButton',
|
||||
levelPadding: this.form.levelPadding,
|
||||
verticalPadding: this.form.verticalPadding,
|
||||
isTransparent: this.form.isTransparent,
|
||||
context: this.form.context,
|
||||
function: this.form.function,
|
||||
fontSize: this.form.fontSize,
|
||||
fillColor: this.form.fillColor,
|
||||
fillColorActive: this.form.fillColorActive
|
||||
fillColorActive: this.form.fillColorActive,
|
||||
hideType: this.form.hideType
|
||||
};
|
||||
this.$emit('deleteDataModel', rectModel);
|
||||
},
|
||||
@ -217,9 +258,11 @@ export default {
|
||||
context: '',
|
||||
function: '',
|
||||
textColor: '',
|
||||
isTransparent: false,
|
||||
textColorActive: '#000',
|
||||
fillColor: '',
|
||||
fillColorActive: ''
|
||||
fillColorActive: '',
|
||||
hideType: ''
|
||||
};
|
||||
}
|
||||
}
|
||||
|
@ -60,8 +60,8 @@ export default {
|
||||
{ name: '车尾', value: 'psdRight' },
|
||||
{ name: '车厢', value: 'psdSystem' },
|
||||
{ name: '人防门', value: 'envPersonDoor'},
|
||||
{ name: '报警按钮蓝', value: 's'},
|
||||
{ name: '报警按钮红', value: 'a'},
|
||||
{ name: '报警按钮蓝', value: 'alarmButtonBlue'},
|
||||
{ name: '报警按钮红', value: 'alarmButtonRed'},
|
||||
{ name: 'APF', value: 'APF'},
|
||||
{ name: '手动阀', value: 'hand'},
|
||||
{ name: '蓝色-阀门', value: 'fmBlue'},
|
||||
@ -133,7 +133,9 @@ export default {
|
||||
{ name: '站厅E', value: 'bgStationE' },
|
||||
{ name: '站厅F', value: 'bgStationF' },
|
||||
{ name: '门禁站厅A', value: 'bgDoorStationA' },
|
||||
{ name: '门禁站台A', value: 'bgDoorStandA' }
|
||||
{ name: '门禁站台A', value: 'bgDoorStandA' },
|
||||
{ name: '小站台', value: 'littleStand' },
|
||||
{ name: '小站厅', value: 'littleStation' }
|
||||
],
|
||||
|
||||
rules: {
|
||||
|
@ -110,6 +110,7 @@ export default {
|
||||
this.tableShow = !this.tableShow;
|
||||
},
|
||||
handleSave(data) {
|
||||
|
||||
const param = {
|
||||
graphData: data,
|
||||
mapId: this.$route.query.mapId,
|
||||
@ -117,6 +118,7 @@ export default {
|
||||
totalSystem: this.$route.query.mode,
|
||||
userInterface: this.$route.query.part
|
||||
};
|
||||
// console.log(data.iscsPictureList, '===');
|
||||
saveIscsElement(param).then(resp => {
|
||||
this.$message.success('ISCS数据保存成功!');
|
||||
}).catch(() => {
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user