Merge branch 'test' of https://git.code.tencent.com/lian-cbtc/jl-client into test
BIN
src/assets/iscs_picture/check_arrow_double_hong.png
Normal file
After Width: | Height: | Size: 4.3 KiB |
BIN
src/assets/iscs_picture/check_arrow_double_lv.png
Normal file
After Width: | Height: | Size: 4.3 KiB |
BIN
src/assets/iscs_picture/check_arrow_left_hong.png
Normal file
After Width: | Height: | Size: 3.9 KiB |
BIN
src/assets/iscs_picture/check_arrow_left_lv.png
Normal file
After Width: | Height: | Size: 3.9 KiB |
BIN
src/assets/iscs_picture/check_arrow_right_hong.png
Normal file
After Width: | Height: | Size: 3.6 KiB |
BIN
src/assets/iscs_picture/check_arrow_right_lv.png
Normal file
After Width: | Height: | Size: 3.7 KiB |
Before Width: | Height: | Size: 6.5 KiB After Width: | Height: | Size: 6.2 KiB |
BIN
src/assets/iscs_picture/check_sell2_hong.png
Normal file
After Width: | Height: | Size: 4.4 KiB |
BIN
src/assets/iscs_picture/check_sell2_lv.png
Normal file
After Width: | Height: | Size: 4.4 KiB |
BIN
src/assets/iscs_picture/check_sell3.png
Normal file
After Width: | Height: | Size: 6.5 KiB |
@ -569,6 +569,7 @@ export default {
|
||||
verifyMapName: 'Map name repeated, you confirm that publishing this map will overwrite the public map?',
|
||||
arcApproachSectionList: 'Interlock automatically tracks the approach section',
|
||||
greenOpen: 'Signal green light',
|
||||
signalColor:'Signal display',
|
||||
psdList: 'Platform screen door',
|
||||
espList: 'Platform emergency stop button',
|
||||
interlockingBlocks: 'Interlocking blocks',
|
||||
|
@ -565,6 +565,7 @@ export default {
|
||||
verifyMapName: '地图名称重复,您确认发布此地图将会覆盖公共地图?',
|
||||
arcApproachSectionList: '联锁自动追踪接近区段',
|
||||
greenOpen: '信号开放绿灯(否则黄灯)',
|
||||
signalColor:'信号灯显示',
|
||||
psdList: '站台屏蔽门',
|
||||
espList: '站台紧急停车按钮',
|
||||
interlockingBlocks: '联锁区段',
|
||||
|
@ -49,11 +49,20 @@ import iscsDibian from '@/assets/iscs_picture/iscs-dibian.png';
|
||||
import iscsPt1 from '@/assets/iscs_picture/iscs-pt1.png';
|
||||
import checkNormal from '@/assets/iscs_picture/check_normal.png';
|
||||
import checkArrowLeft from '@/assets/iscs_picture/check_arrow_left.png';
|
||||
import checkArrowLeftLv from '@/assets/iscs_picture/check_arrow_left_lv.png';
|
||||
import checkArrowLeftHong from '@/assets/iscs_picture/check_arrow_left_hong.png';
|
||||
import checkArrowRight from '@/assets/iscs_picture/check_arrow_right.png';
|
||||
import checkArrowRightLv from '@/assets/iscs_picture/check_arrow_right_lv.png';
|
||||
import checkArrowRightHong from '@/assets/iscs_picture/check_arrow_right_hong.png';
|
||||
import checkArrowDouble from '@/assets/iscs_picture/check_arrow_double.png';
|
||||
import checkArrowDoubleLv from '@/assets/iscs_picture/check_arrow_double_lv.png';
|
||||
import checkArrowDoubleHong from '@/assets/iscs_picture/check_arrow_double_hong.png';
|
||||
import checkFlowCumulative from '@/assets/iscs_picture/check_flow_cumulative.png';
|
||||
import checkSell from '@/assets/iscs_picture/check_sell.png';
|
||||
import checkSell2 from '@/assets/iscs_picture/check_sell2.png';
|
||||
import checkSell2Lv from '@/assets/iscs_picture/check_sell2_lv.png';
|
||||
import checkSell2Hong from '@/assets/iscs_picture/check_sell2_hong.png';
|
||||
import checkSell3 from '@/assets/iscs_picture/check_sell3.png';
|
||||
import bgShowRoom from '@/assets/iscs_picture/bg-showroom.jpg';
|
||||
import bgStand from '@/assets/iscs_picture/bg-stand.jpg';
|
||||
import bgFasPlatformA from '@/assets/iscs_picture/fas_platform_a_bg.png';
|
||||
@ -131,11 +140,17 @@ const pictureObj = {
|
||||
iscsPt1,
|
||||
checkNormal,
|
||||
checkArrowLeft,
|
||||
checkArrowLeftLv,
|
||||
checkArrowLeftHong,
|
||||
checkArrowRight,
|
||||
checkArrowRightLv,
|
||||
checkArrowRightHong,
|
||||
checkArrowDouble,
|
||||
checkFlowCumulative,
|
||||
checkSell,
|
||||
checkSell2,
|
||||
checkSell2Lv,
|
||||
checkSell2Hong,
|
||||
bgShowRoom,
|
||||
bgStand,
|
||||
basAnnulus,
|
||||
@ -210,6 +225,9 @@ export default class Picture extends Group {
|
||||
this.grouper.add(this.imageButton);
|
||||
this.add(this.grouper);
|
||||
}
|
||||
setStyle( style ) {
|
||||
this.imageButton.setStyle(style);
|
||||
}
|
||||
setModel(dx, dy) {
|
||||
this.model.point.x += dx;
|
||||
this.model.point.y += dy;
|
||||
|
@ -988,6 +988,7 @@ export function Jl3dDrivingNew(mixers,updatemmi,sound,translation,routegroup,dri
|
||||
}
|
||||
function standupdate(data) {
|
||||
code = data.code;
|
||||
|
||||
if ( actions[code]) {
|
||||
if (data.open == '1') {
|
||||
actions[code].status = '1';
|
||||
|
@ -104,13 +104,17 @@ export function Lesson3dPlayer(dom,lessonData,lessonIndex) {
|
||||
// console.log(nowRole);
|
||||
// console.log(lessonData.lessonProgress[lessonIndex].roleName);
|
||||
if(lessonData.lessonProgress[lessonIndex].roleName == nowRole){
|
||||
controlManager.initControlMode(lessonIndex);
|
||||
assetModelManager.changeSceneGroup(scope.nowSceneType);
|
||||
controlManager.initRoleMode(true,nowRole);
|
||||
controlManager.initControlMode(lessonIndex);
|
||||
controlManager.changeIndexEvent(lessonData.lessonProgress[lessonIndex].action,true,assetModelManager.lessonTriggerList[scope.nowSceneType]);
|
||||
|
||||
}else{
|
||||
controlManager.initControlMode(lessonIndex);
|
||||
} else{
|
||||
if(lessonData.lessonProgress[lessonIndex].roleName == 'kong'){
|
||||
assetModelManager.changeSceneGroup(scope.nowSceneType); controlManager.initRoleMode(false,nowRole);
|
||||
}
|
||||
controlManager.initRoleMode(false,nowRole);
|
||||
controlManager.initControlMode(lessonIndex);
|
||||
controlManager.changeIndexEvent(lessonData.lessonProgress[lessonIndex].action,false,assetModelManager.lessonTriggerList[scope.nowSceneType]);
|
||||
}
|
||||
|
||||
|
@ -13,6 +13,7 @@ export function AssetModelManager(editor,scene) {
|
||||
groupList["standstation"] = new THREE.Group();
|
||||
groupList["stopstation"] = new THREE.Group();
|
||||
groupList["device"] = new THREE.Group();
|
||||
groupList["occ"] = new THREE.Group();
|
||||
groupList["xl"] = new THREE.Group();
|
||||
groupList["dc"] = new THREE.Group();
|
||||
|
||||
@ -90,15 +91,36 @@ export function AssetModelManager(editor,scene) {
|
||||
sceneType:"stopstation",
|
||||
};
|
||||
|
||||
scope.staticAsset['occ'] = {
|
||||
modelId:'occ',
|
||||
packageName:"occ大厅",
|
||||
url:"/MODEL/2021-09-02/210-32471.FBX",
|
||||
mesh:"",
|
||||
assetType:'onlineasset',
|
||||
isUse:true,
|
||||
resourceType:"三维课程",
|
||||
sceneType:"occ",
|
||||
};
|
||||
//场景中可触发事件模型
|
||||
this.lessonTriggerList = [];
|
||||
|
||||
scope.lessonTriggerList["standstation"] = [];
|
||||
scope.lessonTriggerList["stopstation"] = [];
|
||||
scope.lessonTriggerList["device"] = [];
|
||||
scope.lessonTriggerList["occ"] = [];
|
||||
scope.lessonTriggerList["xl"] = [];
|
||||
scope.lessonTriggerList["dc"] = [];
|
||||
|
||||
this.changeSceneGroup = function(groupType){
|
||||
// console.log(groupType);
|
||||
// console.log(editor.nowSceneType);
|
||||
// console.log(scope.lessonTriggerList[editor.nowSceneType]);
|
||||
editor.nowSceneType = groupType;
|
||||
scene.remove(this.otherModel);
|
||||
this.otherModel = groupList[groupType];
|
||||
scene.add(this.otherModel);
|
||||
updateTriggerList(scope.lessonTriggerList[editor.nowSceneType]);
|
||||
}
|
||||
//加载课程资源
|
||||
this.lessonAssetsLoader = function(lessonData){
|
||||
let initlist = [];
|
||||
|
@ -84,7 +84,7 @@ export function ControlManager(dom,scene,lessonData,lessonIndex) {
|
||||
|
||||
|
||||
let loaderObj = new THREE.OBJLoader();
|
||||
let standstationPZ,stopstationPZ;
|
||||
let standstationPZ,stopstationPZ,occPZ;
|
||||
// load a resource
|
||||
loaderObj.load(
|
||||
JL3D_LOCAL_STATIC+'/lesson3d/standstationPZ.obj',
|
||||
@ -110,6 +110,19 @@ export function ControlManager(dom,scene,lessonData,lessonIndex) {
|
||||
console.log( 'An error happened' );
|
||||
}
|
||||
);
|
||||
loaderObj.load(
|
||||
JL3D_LOCAL_STATIC+'/lesson3d/occPZ.obj',
|
||||
function ( object ) {
|
||||
occPZ = object;
|
||||
},
|
||||
function ( xhr ) {
|
||||
console.log( ( xhr.loaded / xhr.total * 100 ) + '% loaded' );
|
||||
},
|
||||
function ( error ) {
|
||||
console.log( 'An error happened' );
|
||||
}
|
||||
);
|
||||
|
||||
this.initRoleMode = function(rMode,role){
|
||||
roleMode = rMode;
|
||||
nowRole = role;
|
||||
@ -215,7 +228,7 @@ export function ControlManager(dom,scene,lessonData,lessonIndex) {
|
||||
|
||||
|
||||
this.init = function(actions){
|
||||
worldOctree.fromGraphNode( standstationPZ );
|
||||
// worldOctree.fromGraphNode( standstationPZ );
|
||||
actionList = actions;
|
||||
}
|
||||
|
||||
@ -279,6 +292,7 @@ export function ControlManager(dom,scene,lessonData,lessonIndex) {
|
||||
}
|
||||
|
||||
}else if(raycasterBoxs[i].type == "urgeSwitch"){
|
||||
console.log(raycasterBoxs[i]);
|
||||
if(raycasterBoxs[i].action.status == "02"){
|
||||
raycasterBoxs[i].action.status = "01";
|
||||
raycasterBoxs[i].action.action.stop();
|
||||
@ -485,16 +499,23 @@ export function ControlManager(dom,scene,lessonData,lessonIndex) {
|
||||
}
|
||||
|
||||
this.initControlMode = function(nowLessonIndex){
|
||||
console.log(lessonData.lessonProgress[nowLessonIndex].progressScene);
|
||||
// console.log(lessonData.lessonProgress[nowLessonIndex].progressScene);
|
||||
|
||||
if(lessonData.lessonProgress[nowLessonIndex].progressScene == "standstation"){
|
||||
worldOctree.fromGraphNode( standstationPZ );
|
||||
}else if(lessonData.lessonProgress[nowLessonIndex].progressScene == "stopstation"){
|
||||
worldOctree.fromGraphNode( stopstationPZ );
|
||||
}else if(lessonData.lessonProgress[nowLessonIndex].progressScene == "occ"){
|
||||
worldOctree.fromGraphNode( occPZ );
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
if((lessonData.lessonProgress[nowLessonIndex].changeCamera == true && lessonData.lessonProgress[nowLessonIndex].roleName == nowRole) || nowLessonIndex == 0 || lessonData.lessonProgress[nowLessonIndex].roleName== 'kong'){
|
||||
console.log(scope.controlMode);
|
||||
|
||||
scope.controlMode = lessonData.lessonProgress[nowLessonIndex].controlMode;
|
||||
if(lessonData.lessonProgress[nowLessonIndex].changeCamera == true){
|
||||
if(scope.controlMode == "free" || scope.controlMode == "non"){
|
||||
scope.nowCamera = orbitCamera;
|
||||
oribitControl.enabled = true;
|
||||
@ -537,11 +558,11 @@ export function ControlManager(dom,scene,lessonData,lessonIndex) {
|
||||
// eventBoxs = newEventBoxs;
|
||||
raycasterBoxs = [];
|
||||
roleMode = rMode;
|
||||
console.log("---------changeIndex--------");
|
||||
console.log(actions);
|
||||
console.log(roleMode);
|
||||
console.log(eventTrigger);
|
||||
console.log("----------------------------");
|
||||
// console.log("---------changeIndex--------");
|
||||
// console.log(actions);
|
||||
// console.log(roleMode);
|
||||
// console.log(eventTrigger);
|
||||
// console.log("----------------------------");
|
||||
|
||||
|
||||
if(actions.length>0 && roleMode){
|
||||
|
@ -13,6 +13,7 @@ export function AssetModelManager(editor,scene) {
|
||||
let groupList = [];
|
||||
groupList["standstation"] = new THREE.Group();
|
||||
groupList["stopstation"] = new THREE.Group();
|
||||
groupList["occ"] = new THREE.Group();
|
||||
groupList["device"] = new THREE.Group();
|
||||
groupList["xl"] = new THREE.Group();
|
||||
groupList["dc"] = new THREE.Group();
|
||||
@ -23,6 +24,13 @@ export function AssetModelManager(editor,scene) {
|
||||
planeDevice.rotation.x = -Math.PI/2;
|
||||
groupList["device"].add(planeDevice);
|
||||
|
||||
let geometryXl = new THREE.PlaneGeometry( 100, 100, 32 );
|
||||
let materialXl = new THREE.MeshBasicMaterial( {color: 0xffffff, side: THREE.DoubleSide} );
|
||||
let planeXl = new THREE.Mesh( geometryXl, materialXl );
|
||||
planeXl.rotation.x = -Math.PI/2;
|
||||
groupList["xl"].add(planeXl);
|
||||
|
||||
|
||||
this.loadAsset = [];
|
||||
|
||||
this.staticAsset = [];
|
||||
@ -91,20 +99,34 @@ export function AssetModelManager(editor,scene) {
|
||||
sceneType:"stopstation",
|
||||
};
|
||||
|
||||
scope.staticAsset['occ'] = {
|
||||
modelId:'occ',
|
||||
packageName:"occ大厅",
|
||||
url:"/MODEL/2021-09-02/210-32471.FBX",
|
||||
mesh:"",
|
||||
assetType:'onlineasset',
|
||||
isUse:true,
|
||||
resourceType:"三维课程",
|
||||
sceneType:"occ",
|
||||
};
|
||||
|
||||
|
||||
//场景中可触发事件模型
|
||||
this.lessonTriggerList = [];
|
||||
|
||||
scope.lessonTriggerList["standstation"] = [];
|
||||
scope.lessonTriggerList["stopstation"] = [];
|
||||
|
||||
scope.lessonTriggerList["occ"] = [];
|
||||
|
||||
scope.lessonTriggerList["device"] = [];
|
||||
scope.lessonTriggerList["xl"] = [];
|
||||
scope.lessonTriggerList["dc"] = [];
|
||||
|
||||
this.changeSceneGroup = function(groupType){
|
||||
console.log(groupType);
|
||||
console.log(editor.nowSceneType);
|
||||
console.log(scope.lessonTriggerList[editor.nowSceneType]);
|
||||
// console.log(groupType);
|
||||
// console.log(editor.nowSceneType);
|
||||
// console.log(scope.lessonTriggerList[editor.nowSceneType]);
|
||||
editor.nowSceneType = groupType;
|
||||
scene.remove(this.otherModel);
|
||||
this.otherModel = groupList[groupType];
|
||||
|
@ -113,6 +113,7 @@ export function Lesson3dEditor(dom,lessonData) {
|
||||
this.changeIndex = function(nowIndex){
|
||||
lessonIndex = nowIndex;
|
||||
scope.nowSceneType = lessonData.lessonProgress[lessonIndex].progressScene;
|
||||
assetModelManager.changeSceneGroup(scope.nowSceneType);
|
||||
// if(lessonData.lessonProgress[lessonIndex].roleName == nowRole){
|
||||
// controlManager.initControlMode(lessonIndex);
|
||||
// controlManager.initRoleMode(true,nowRole);
|
||||
|
@ -119,6 +119,75 @@ export function JobPaneData() {
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name:"列车司机",
|
||||
value:"lcsj",
|
||||
text:"",
|
||||
picurl:"",
|
||||
controlList:[
|
||||
//联控
|
||||
{
|
||||
name:"联控",
|
||||
data:[],
|
||||
},
|
||||
//动作
|
||||
{
|
||||
name:"动作",
|
||||
data:[],
|
||||
},
|
||||
//口呼
|
||||
{
|
||||
name:"口呼",
|
||||
data:[],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name:"故障列车司机",
|
||||
value:"gzlcsj",
|
||||
text:"",
|
||||
picurl:"",
|
||||
controlList:[
|
||||
//联控
|
||||
{
|
||||
name:"联控",
|
||||
data:[],
|
||||
},
|
||||
//动作
|
||||
{
|
||||
name:"动作",
|
||||
data:[],
|
||||
},
|
||||
//口呼
|
||||
{
|
||||
name:"口呼",
|
||||
data:[],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name:"救援列车司机",
|
||||
value:"jylcsj",
|
||||
text:"",
|
||||
picurl:"",
|
||||
controlList:[
|
||||
//联控
|
||||
{
|
||||
name:"联控",
|
||||
data:[],
|
||||
},
|
||||
//动作
|
||||
{
|
||||
name:"动作",
|
||||
data:[],
|
||||
},
|
||||
//口呼
|
||||
{
|
||||
name:"口呼",
|
||||
data:[],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name:"站长",
|
||||
value:"zz",
|
||||
@ -189,7 +258,7 @@ export function JobPaneData() {
|
||||
],
|
||||
},
|
||||
{
|
||||
name:"生产调度",
|
||||
name:"调度",
|
||||
value:"scdd",
|
||||
text:"",
|
||||
picurl:"",
|
||||
|
@ -441,10 +441,10 @@ export default class Switch extends Group {
|
||||
this.shapeModelB.hide();
|
||||
this.shapeModelC.hide();
|
||||
} else {
|
||||
if (this.model.switchFaultCode && fault) {
|
||||
if (this.model.switchFaultCode && (fault === 'SPLIT' || fault === 'SQUEEZE' || (fault === 'NORMAL_SPLIT' && !reversePosition) || (fault === 'REVERSE_SPLIT' && !normalPosition))) {
|
||||
const switchFault = this.mapDevice[this.model.switchFaultCode];
|
||||
switchFault.instance.setControlColor('#F00', true);
|
||||
} else if (this.model.switchFaultCode && !fault) {
|
||||
} else if (this.model.switchFaultCode) {
|
||||
const switchFault = this.mapDevice[this.model.switchFaultCode];
|
||||
switchFault.instance.setControlColor(this.style.backgroundColor, false);
|
||||
}
|
||||
@ -509,8 +509,7 @@ export default class Switch extends Group {
|
||||
this.lockArc.setStyle({ stroke: this.style.Switch.arcBlcok.inversionColor });
|
||||
}
|
||||
}
|
||||
this.model.normalPosition && this.setTextColor(this.style.Switch.text.monolockLocationColor); // 定位 设置道岔名称颜色
|
||||
this.model.reversePosition && this.setTextColor(this.style.Switch.text.monolockInversionColor); // 反位 设置道岔名称颜色
|
||||
this.setTextColor(this.style.Switch.text.monolockLocationColor);
|
||||
}
|
||||
|
||||
/** 封锁 */
|
||||
|
@ -489,7 +489,7 @@ export default {
|
||||
EventBus.$emit('sendMsg', {message: '命令执行失败!'});
|
||||
}
|
||||
});
|
||||
if (val._type != 'Psd' && val._type != 'StationStand') {
|
||||
if (val._type !== 'Psd' && val._type !== 'StationStand' && val._type !== 'Train') {
|
||||
this.dialogVisible = !this.isLocal;
|
||||
}
|
||||
this.handleIbpShow();
|
||||
|
@ -226,6 +226,7 @@ export const projectHeb = '019'; // 哈盈达
|
||||
export const projectDrts = '020'; // 行调实训
|
||||
export const projectSdy = '021';// 苏电院
|
||||
export const projectRichor = '022';// 中航锐创
|
||||
export const projectRichorJoint = '023'; // 中航锐创(实训室)
|
||||
|
||||
export const userTrainingPlatform = '016'; // 实训系统
|
||||
// export const refereePlatform = '017'; // 裁判系统
|
||||
@ -1463,6 +1464,27 @@ export const projectRoute = {
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
designrichorjoint: [
|
||||
{ // 系统管理
|
||||
path: '/system',
|
||||
component: Layout,
|
||||
merge: true,
|
||||
mergeIndex: 4,
|
||||
meta: {
|
||||
i18n: 'router.systemManage',
|
||||
roles: [admin]
|
||||
},
|
||||
children: [
|
||||
{
|
||||
path: 'deviceManage',
|
||||
component: DeviceManage,
|
||||
meta: {
|
||||
i18n: 'router.deviceManage'
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
};
|
||||
const createRouter = () => new Router({
|
||||
|
@ -159,7 +159,8 @@ export default {
|
||||
{ enlabel: 'Comprehensive exercise cloud platform', label: '综合演练云平台', value: '03'},
|
||||
{ enlabel: 'Driver simulation driving system', label: '司机模拟驾驶系统', value: '04'},
|
||||
{ enlabel: 'Dispatch workstation', label: '派班工作站', value: '05'},
|
||||
{ enlabel: 'ISCS workstation', label: 'ISCS工作站', value: '06'}
|
||||
{ enlabel: 'ISCS workstation', label: 'ISCS工作站', value: '06'},
|
||||
{ enlabel: 'Interlocking station at depot', label: '车辆段联锁工作站', value: '09' }
|
||||
],
|
||||
trainingDeviceType: {
|
||||
Switch: {enlabel: 'Switch training', label:'道岔实训'},
|
||||
|
@ -439,6 +439,7 @@ export const loginInfo = {
|
||||
},
|
||||
richor:{
|
||||
title: '中航锐创城市轨道交通实训平台',
|
||||
loginPath: '/login?project=richor',
|
||||
loginParam: 'RICHOR',
|
||||
bottomColumn: '中航锐创(北京)科技发展有限公司 联系电话:4000500081',
|
||||
linkIcon: FaviconRichor,
|
||||
@ -446,6 +447,28 @@ export const loginInfo = {
|
||||
navigationLogoWidth: '40px',
|
||||
navigationMarginLeft: '50px',
|
||||
systemType: '022'
|
||||
},
|
||||
designrichorjoint: {
|
||||
title: '中航锐创城市轨道交通设计平台',
|
||||
loginPath: '/design/login?project=richorjoint',
|
||||
loginParam: 'RICHOR_JOINT',
|
||||
bottomColumn: '中航锐创(北京)科技发展有限公司 联系电话:4000500081',
|
||||
linkIcon: FaviconRichor,
|
||||
titleIcon: FaviconRichor,
|
||||
navigationLogoWidth: '40px',
|
||||
navigationMarginLeft: '50px',
|
||||
systemType: '023'
|
||||
},
|
||||
richorjoint: {
|
||||
title: '中航锐创城市轨道交通实训平台',
|
||||
loginPath: '/login?project=richorjoint',
|
||||
loginParam: 'RICHOR_JOINT',
|
||||
bottomColumn: '中航锐创(北京)科技发展有限公司 联系电话:4000500081',
|
||||
linkIcon: FaviconRichor,
|
||||
titleIcon: FaviconRichor,
|
||||
navigationLogoWidth: '40px',
|
||||
navigationMarginLeft: '50px',
|
||||
systemType: '023'
|
||||
}
|
||||
};
|
||||
|
||||
@ -489,7 +512,9 @@ export const ProjectIcon = {
|
||||
designsdy: FaviconSdy,
|
||||
cgy: FaviconCgy,
|
||||
designcgy: FaviconCgy,
|
||||
richor:FaviconRichor
|
||||
richor:FaviconRichor,
|
||||
richorjoint: FaviconRichor,
|
||||
designrichorjoint: FaviconRichor
|
||||
};
|
||||
|
||||
export const ProjectCode = {
|
||||
@ -520,10 +545,12 @@ export const ProjectCode = {
|
||||
designsdy: 'SDY',
|
||||
cgy: 'CGY',
|
||||
designcgy: 'CGY',
|
||||
richor:'RICHOR'
|
||||
richor:'RICHOR',
|
||||
richorjoint: 'RICHOR_JOINT',
|
||||
designrichorjoint: 'RICHOR_JOINT'
|
||||
};
|
||||
export const BottomColumnOnlyConInfo = ['heb', 'designheb', 'jyd', 'designjyd', 'tky', 'designtky', 'bxkc', 'designbxkc', 'crsc', 'designcrsc', 'hls', 'designhls', 'hyd', 'designhyd', 'cgy', 'designcgy', 'richor']; // 底部栏仅展示公司信息不展示备案号
|
||||
export const GetMapListByProjectList = ['xty', 'designxty', 'gzb', 'designgzb', 'xadt', 'designxadt', 'heb', 'designheb', 'designdrts', 'drts', 'wjls', 'nty', 'designnty', 'sdy', 'designsdy', 'ntyc', 'designntyc', 'ntyl', 'designntyl', 'designbjd', 'cgy', 'designcgy', 'zzww','zzwwtest', 'richor']; // 实训设计平台通过项目code获取地图列表的项目
|
||||
export const BottomColumnOnlyConInfo = ['heb', 'designheb', 'jyd', 'designjyd', 'tky', 'designtky', 'bxkc', 'designbxkc', 'crsc', 'designcrsc', 'hls', 'designhls', 'hyd', 'designhyd', 'cgy', 'designcgy', 'richor', 'richorjoint', 'designrichorjoint']; // 底部栏仅展示公司信息不展示备案号
|
||||
export const GetMapListByProjectList = ['xty', 'designxty', 'gzb', 'designgzb', 'xadt', 'designxadt', 'heb', 'designheb', 'designdrts', 'drts', 'wjls', 'nty', 'designnty', 'sdy', 'designsdy', 'ntyc', 'designntyc', 'ntyl', 'designntyl', 'designbjd', 'cgy', 'designcgy', 'zzww', 'zzwwtest', 'richor', 'richorjoint', 'designrichorjoint']; // 实训设计平台通过项目code获取地图列表的项目
|
||||
export const CaseHideProjectList = ['heb', 'designheb', 'cgy', 'designcgy']; // 案例展示隐藏的项目
|
||||
export const VersionBaseNoShow = ['heb', 'designheb', 'hls', 'designhls', 'drts', 'wjls', 'hyd', 'designhyd', 'cgy', 'designcgy', 'xadt', 'designxadt']; // 登录页右下角版本开发基于不展示
|
||||
export const MainBodyNoShow = ['heb', 'designheb', 'jyd', 'designjyd', 'tky', 'designtky', 'bxkc', 'designbxkc', 'crsc', 'designcrsc', 'hls', 'designhls', 'hyd', 'designhyd', 'cgy', 'designcgy', 'xadt', 'designxadt']; // 登录页右下角主体不展示
|
||||
@ -564,9 +591,11 @@ export const goOtherPlatformMenu = { // 导航栏快速切换平台
|
||||
ntyl: '/design/login?project=ntyl',
|
||||
designntyl: '/login?project=ntyl',
|
||||
ntyc: '/design/login?project=ntyc',
|
||||
designntyc: '/login?project=ntyc'
|
||||
designntyc: '/login?project=ntyc',
|
||||
// cgy: '/design/login?project=cgy',
|
||||
// designcgy: '/login?project=cgy'
|
||||
richorjoint: '/design/login?project=richorjoint',
|
||||
designrichorjoint: '/login?project=richorjoint'
|
||||
};
|
||||
export const ProjectList = [
|
||||
{value:'xty', label:'西铁院'},
|
||||
@ -584,7 +613,8 @@ export const ProjectList = [
|
||||
{value: 'wjls', label: '微机联锁'},
|
||||
{value: 'zzww', label: '郑州共赢'},
|
||||
{value: 'zzwwtest', label: '郑州共赢考试'},
|
||||
{value: 'richor', label: '中航锐创'}
|
||||
{value: 'richor', label: '中航锐创'},
|
||||
{value: 'richor_joint', label: '中航锐创(实训室)'}
|
||||
];
|
||||
export const localPackageProject = {
|
||||
localdesign: 'designheb',
|
||||
|
@ -166,7 +166,9 @@ export default {
|
||||
/** 设置折返策略 */
|
||||
CMD_STAND_SET_REENTRY_STRATEGY: {value:'Stand_Set_Reentry_Strategy', label: '设置折返策略'},
|
||||
/** 提前发车 */
|
||||
CMD_STAND_EARLY_DEPART: {value:'Stand_Early_Depart', label: '提前发车'}
|
||||
CMD_STAND_EARLY_DEPART: {value:'Stand_Early_Depart', label: '提前发车'},
|
||||
/** 设置默认发车轨 */
|
||||
CMD_SECTION_SET_DEFAULT_TRANSFER : {value: 'Section_Set_Default_Transfer', label: '设置默认发车轨'}
|
||||
},
|
||||
|
||||
// 站台
|
||||
@ -225,6 +227,8 @@ export default {
|
||||
CMD_STAND_EMERGENCY_CLOSE : {value: 'Stand_Emergency_Close', label: '站台紧急停车'},
|
||||
/** 取消站台紧急停车 */
|
||||
CMD_STAND_CANCEL_EMERGENCY_CLOSE : {value: 'Stand_Cancel_Emergency_Close', label: '取消站台紧急停车'}
|
||||
// /** 批量设置停站时间 */
|
||||
// CMD_STAND_BATCH_SET_PARK_TIME : {value: 'Stand_Batch_Set_Park_Time', label: '批量设置停站时间' }
|
||||
},
|
||||
|
||||
Station: {
|
||||
@ -313,7 +317,9 @@ export default {
|
||||
/** 列车取消指定站台的跳停 */
|
||||
CMD_TRAIN_CANCEL_SKIP_STOP : { value: 'Train_Cancel_Skip_Stop', label: '取消指定站台跳停' },
|
||||
/** 换端 */
|
||||
CMD_TRAIN_TURN_DIRECTION: { value: 'Turn_Direction', label: '换端' }
|
||||
CMD_TRAIN_TURN_DIRECTION: { value: 'Turn_Direction', label: '换端' },
|
||||
/** 选择调度模式 */
|
||||
CMD_TRAIN_REGULATION : { value:'Train_Regulation', label:'选择调度模式' }
|
||||
},
|
||||
TrainWindow: {
|
||||
/** 修改列车识别号 */
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { publicAsyncRoute, asyncRouter, constantRoutes, user, projectTrain, projectXian, projectXty, projectGzzb, projectJsxt, projectJyd, projectRichor, projectTky, projectHeb, superAdmin, admin, userTrainingPlatform, JSXT, projectRoute, projectDrts, projectSdy } from '@/router/index';
|
||||
import { publicAsyncRoute, asyncRouter, constantRoutes, user, projectTrain, projectXian, projectXty, projectGzzb, projectJsxt, projectRichorJoint, projectJyd, projectRichor, projectTky, projectHeb, superAdmin, admin, userTrainingPlatform, JSXT, projectRoute, projectDrts, projectSdy } from '@/router/index';
|
||||
import { loginInfo } from '@/scripts/ProjectConfig';
|
||||
import { getSessionStorage } from '@/utils/auth';
|
||||
|
||||
@ -82,7 +82,16 @@ function resetAsyncRouter({ systemType }) {
|
||||
list = [...list, ...asyncRouter];
|
||||
} else if (systemType == projectSdy) {
|
||||
if (projectRoute && projectRoute.designsdy && projectRoute.designsdy.length) {
|
||||
projectRoute.designheb.forEach(item => {
|
||||
projectRoute.designsdy.forEach(item => {
|
||||
if (item.merge) {
|
||||
asyncRouter[item.mergeIndex].children = [...asyncRouter[item.mergeIndex].children, ...item.children];
|
||||
} else { list.push(item); }
|
||||
});
|
||||
}
|
||||
list = [...list, ...asyncRouter];
|
||||
} else if (systemType == projectRichorJoint) {
|
||||
if (projectRoute && projectRoute.designrichorjoint && projectRoute.designrichorjoint.length) {
|
||||
projectRoute.designrichorjoint.forEach(item => {
|
||||
if (item.merge) {
|
||||
asyncRouter[item.mergeIndex].children = [...asyncRouter[item.mergeIndex].children, ...item.children];
|
||||
} else { list.push(item); }
|
||||
|
@ -2,10 +2,9 @@ export function getBaseUrl() {
|
||||
let BASE_API;
|
||||
if (process.env.NODE_ENV === 'development') {
|
||||
// BASE_API = 'https://joylink.club/jlcloud';
|
||||
BASE_API = 'https://test.joylink.club/jlcloud';
|
||||
// BASE_API = 'https://test.joylink.club/jlcloud';
|
||||
// BASE_API = 'http://192.168.8.107:9000'; // 袁琪
|
||||
// BASE_API = 'http://192.168.2.175:9000'; // 旭强 有线
|
||||
// BASE_API = 'http://192.168.8.114:9000'; // 旭强 无线
|
||||
BASE_API = 'http://192.168.8.167:9000'; // 旭强
|
||||
// BASE_API = 'http://192.168.2.183:9000'; // 张赛
|
||||
// BASE_API = 'http://192.168.8.140:9000'; // 杜康
|
||||
// BASE_API = 'http://b29z135112.zicp.vip';
|
||||
|
@ -101,13 +101,13 @@ export default {
|
||||
{ name: '抵挡图', value: 'iscsDangwei' },
|
||||
{ name: '地变图', value: 'iscsDibian' },
|
||||
{ name: 'PT1', value: 'iscsPt1' },
|
||||
{ name: '受检左侧箭头', value: 'checkArrowLeft' },
|
||||
{ name: '受检右侧箭头', value: 'checkArrowRight' },
|
||||
{ name: '受检两侧箭头', value: 'checkArrowDouble' },
|
||||
{ name: '受检流量累计', value: 'checkFlowCumulative' },
|
||||
{ name: '受检正常', value: 'checkNormal' },
|
||||
{ name: '受检售票', value: 'checkSell' },
|
||||
{ name: '受检售票2', value: 'checkSell2' },
|
||||
{ name: '售检左侧箭头', value: 'checkArrowLeft' },
|
||||
{ name: '售检右侧箭头', value: 'checkArrowRight' },
|
||||
{ name: '售检两侧箭头', value: 'checkArrowDouble' },
|
||||
{ name: '售检流量累计', value: 'checkFlowCumulative' },
|
||||
{ name: '售检正常', value: 'checkNormal' },
|
||||
{ name: '售检售票', value: 'checkSell' },
|
||||
{ name: '售检售票2', value: 'checkSell2' },
|
||||
{ name: '站厅背景', value: 'bgShowRoom' },
|
||||
{ name: '站台背景', value: 'bgStand' },
|
||||
{ name: '站台A端背景', value: 'bgFasPlatformA' },
|
||||
|
@ -56,16 +56,11 @@
|
||||
import RightPane from '@/views/jlmap3d/drive/drivecontrol/rightpane';
|
||||
import TopRightPane from '@/views/jlmap3d/drive/drivecontrol/toprightpane';
|
||||
|
||||
import StompClient from '@/utils/sock';
|
||||
|
||||
import { creatSubscribe, clearSubscribe, displayTopic, screenTopic } from '@/utils/stomp';
|
||||
import { bindSimulationTrain,getSimulationTrainlistNew,getSimulationMembersNew,trainSimulationEb,trainSimulationForce,trainSimulationGear} from '@/jlmap3d/jl3ddrive/drivecontrol/simulation.js';
|
||||
import { getSimulationInfoNew } from '@/api/simulation';
|
||||
import { tuoguan3ddrive } from '@/api/jlmap3d/load3ddata';
|
||||
|
||||
import { getToken } from '@/utils/auth';
|
||||
// import Vue from 'vue';
|
||||
// import StompClient from '@/utils/stompclient.js';
|
||||
|
||||
import axios from 'axios';
|
||||
export default {
|
||||
name: 'DriveControl',
|
||||
@ -132,7 +127,6 @@ import axios from 'axios';
|
||||
|
||||
window.updateDriverTrust = this.updateDriverTrust;
|
||||
window.updateDriveValue = this.updateDriveValue;
|
||||
// this.teststomp = new StompClient();
|
||||
|
||||
|
||||
},
|
||||
|
@ -123,14 +123,14 @@
|
||||
<img class="buttonimg" :style="urgestopStyle" :src="urgestopimg" />
|
||||
<div class="buttontext">{{ $t('jlmap3d.emergencyBraking') }}</div>
|
||||
</div>
|
||||
<div id="doorpick" class="panebutton2" style="bottom:6%;left:85%;">
|
||||
<!-- <div id="doorpick" class="panebutton2" style="bottom:6%;left:85%;">
|
||||
<img class="buttonimg2" :src="zuoimg" />
|
||||
<img class="buttonimg2" :src="niuimg" :style="{transform:doordirecttou}" @touchstart='doordirecttouchstart' @touchmove='doordirecttouchmove' @touchend='doordirecttouchend'/>
|
||||
<div class="tfbutton" style="font-size:1px;top:13px;left:5px;">{{ $t('jlmap3d.leftSide') }}</div>
|
||||
<div class="tfbutton" style="font-size:1px;top:8px;left:33px;">{{ $t('jlmap3d.location0') }}</div>
|
||||
<div class="tfbutton" style="font-size:1px;top:13px;left:50px;">{{ $t('jlmap3d.rightSide') }}</div>
|
||||
<div class="buttontext2">{{ $t('jlmap3d.doorSideChoose') }}</div>
|
||||
</div>
|
||||
</div> -->
|
||||
|
||||
|
||||
</div>
|
||||
@ -486,7 +486,7 @@
|
||||
});
|
||||
},
|
||||
updatabuttonlight: function (data){
|
||||
console.log(data);
|
||||
// console.log(data);
|
||||
// if(data.runLevel){
|
||||
// // this.runLevel = data.runLevel;
|
||||
// if(data.runLevel == "CBTC"){
|
||||
|
647
src/views/jlmap3d/drive/equipbox/ebuidata.js
Normal file
@ -0,0 +1,647 @@
|
||||
import { JL3D_LOCAL_STATIC } from '@/api/jlmap3d/assets3d.js';
|
||||
|
||||
export function EbUiData() {
|
||||
let scope = this;
|
||||
|
||||
this.switchList = [
|
||||
//switchListtop
|
||||
{
|
||||
name:"ATON",
|
||||
label:"ATO",
|
||||
light:"#6C6C6C",
|
||||
lighttype:"normal",
|
||||
status:false,
|
||||
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
|
||||
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
|
||||
top:"5%",
|
||||
width:"4.5%",
|
||||
},
|
||||
{
|
||||
name:"ATPN",
|
||||
label:"ATP",
|
||||
light:"#6C6C6C",
|
||||
lighttype:"normal",
|
||||
status:false,
|
||||
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
|
||||
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
|
||||
top:"5%",
|
||||
width:"4.5%",
|
||||
},
|
||||
{
|
||||
name:"BCN",
|
||||
label:"制动控制",
|
||||
light:"#6C6C6C",
|
||||
lighttype:"normal",
|
||||
status:false,
|
||||
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
|
||||
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
|
||||
top:"5%",
|
||||
width:"4.5%",
|
||||
},
|
||||
{
|
||||
name:"BVN",
|
||||
label:"司控器制动控制",
|
||||
light:"#6C6C6C",
|
||||
lighttype:"normal",
|
||||
status:false,
|
||||
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
|
||||
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
|
||||
top:"5%",
|
||||
width:"4.5%",
|
||||
},
|
||||
{
|
||||
name:"CABN",
|
||||
label:"司机室激活",
|
||||
light:"#6C6C6C",
|
||||
lighttype:"normal",
|
||||
status:false,
|
||||
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
|
||||
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
|
||||
top:"5%",
|
||||
width:"4.5%",
|
||||
},
|
||||
{
|
||||
name:"CEHECN",
|
||||
label:"司机室电热设备控制",
|
||||
light:"#6C6C6C",
|
||||
lighttype:"normal",
|
||||
status:false,
|
||||
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
|
||||
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
|
||||
top:"5%",
|
||||
width:"4.5%",
|
||||
},
|
||||
|
||||
{
|
||||
name:"CLN",
|
||||
label:"司机室灯",
|
||||
light:"#6C6C6C",
|
||||
lighttype:"normal",
|
||||
status:false,
|
||||
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
|
||||
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
|
||||
top:"5%",
|
||||
width:"4.5%",
|
||||
},
|
||||
{
|
||||
name:"CMCN",
|
||||
label:"空压机控制",
|
||||
light:"#6C6C6C",
|
||||
lighttype:"normal",
|
||||
status:false,
|
||||
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
|
||||
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
|
||||
top:"5%",
|
||||
width:"4.5%",
|
||||
},
|
||||
|
||||
{
|
||||
name:"CVSN",
|
||||
label:"CVS控制",
|
||||
light:"#6C6C6C",
|
||||
lighttype:"normal",
|
||||
status:false,
|
||||
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
|
||||
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
|
||||
top:"5%",
|
||||
width:"4.5%",
|
||||
},
|
||||
{
|
||||
name:"DACUN",
|
||||
label:"广播控制盒",
|
||||
light:"#6C6C6C",
|
||||
lighttype:"normal",
|
||||
status:false,
|
||||
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
|
||||
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
|
||||
top:"5%",
|
||||
width:"4.5%",
|
||||
},
|
||||
|
||||
{
|
||||
name:"DC24M1N",
|
||||
label:"DC24V电源1",
|
||||
light:"#6C6C6C",
|
||||
lighttype:"normal",
|
||||
status:false,
|
||||
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
|
||||
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
|
||||
top:"5%",
|
||||
width:"4.5%",
|
||||
},
|
||||
{
|
||||
name:"DC24M2N",
|
||||
label:"DC24V电源2",
|
||||
light:"#6C6C6C",
|
||||
lighttype:"normal",
|
||||
status:false,
|
||||
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
|
||||
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
|
||||
top:"5%",
|
||||
width:"4.5%",
|
||||
},
|
||||
|
||||
{
|
||||
name:"DCN",
|
||||
label:"车门控制",
|
||||
light:"#6C6C6C",
|
||||
lighttype:"normal",
|
||||
status:false,
|
||||
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
|
||||
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
|
||||
top:"5%",
|
||||
width:"4.5%",
|
||||
},
|
||||
{
|
||||
name:"DFVN",
|
||||
label:"蓄电池电压表",
|
||||
light:"#6C6C6C",
|
||||
lighttype:"normal",
|
||||
status:false,
|
||||
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
|
||||
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
|
||||
top:"5%",
|
||||
width:"4.5%",
|
||||
},
|
||||
|
||||
{
|
||||
name:"EBCN",
|
||||
label:"紧急制动控制",
|
||||
light:"#6C6C6C",
|
||||
lighttype:"normal",
|
||||
status:false,
|
||||
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
|
||||
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
|
||||
top:"5%",
|
||||
width:"4.5%",
|
||||
},
|
||||
{
|
||||
name:"FPCN",
|
||||
label:"废排风机控制",
|
||||
light:"#6C6C6C",
|
||||
lighttype:"normal",
|
||||
status:false,
|
||||
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
|
||||
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
|
||||
top:"5%",
|
||||
width:"4.5%",
|
||||
},
|
||||
|
||||
{
|
||||
name:"HMIN",
|
||||
label:"信号显示屏",
|
||||
light:"#6C6C6C",
|
||||
lighttype:"normal",
|
||||
status:false,
|
||||
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
|
||||
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
|
||||
top:"5%",
|
||||
width:"4.5%",
|
||||
},
|
||||
{
|
||||
name:"PACN",
|
||||
label:"PA司机室",
|
||||
light:"#6C6C6C",
|
||||
lighttype:"normal",
|
||||
status:false,
|
||||
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
|
||||
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
|
||||
top:"5%",
|
||||
width:"4.5%",
|
||||
},
|
||||
|
||||
{
|
||||
name:"PANCN",
|
||||
label:"受电弓控制",
|
||||
light:"#6C6C6C",
|
||||
lighttype:"normal",
|
||||
status:false,
|
||||
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
|
||||
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
|
||||
top:"5%",
|
||||
width:"4.5%",
|
||||
},
|
||||
{
|
||||
name:"PCN",
|
||||
label:"司控器牵引控制",
|
||||
light:"#6C6C6C",
|
||||
lighttype:"normal",
|
||||
status:false,
|
||||
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
|
||||
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
|
||||
top:"5%",
|
||||
width:"4.5%",
|
||||
},
|
||||
|
||||
{
|
||||
name:"PEHCN",
|
||||
label:"客室电加热器控制",
|
||||
light:"#6C6C6C",
|
||||
lighttype:"normal",
|
||||
status:false,
|
||||
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
|
||||
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
|
||||
top:"5%",
|
||||
width:"4.5%",
|
||||
},
|
||||
{
|
||||
name:"EHVN",
|
||||
label:"备用",
|
||||
light:"#6C6C6C",
|
||||
lighttype:"normal",
|
||||
status:false,
|
||||
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
|
||||
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
|
||||
top:"5%",
|
||||
width:"4.5%",
|
||||
},
|
||||
|
||||
|
||||
|
||||
//switchListdown
|
||||
{
|
||||
name:"PISCN",
|
||||
label:"司机室信显",
|
||||
light:"#6C6C6C",
|
||||
lighttype:"normal",
|
||||
status:false,
|
||||
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
|
||||
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
|
||||
top:"5%",
|
||||
width:"4.5%",
|
||||
},
|
||||
{
|
||||
name:"PLCN",
|
||||
label:"客室照明控制",
|
||||
light:"#6C6C6C",
|
||||
lighttype:"normal",
|
||||
status:false,
|
||||
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
|
||||
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
|
||||
top:"5%",
|
||||
width:"4.5%",
|
||||
},
|
||||
|
||||
{
|
||||
name:"RBN",
|
||||
label:"雨刷",
|
||||
light:"#6C6C6C",
|
||||
lighttype:"normal",
|
||||
status:false,
|
||||
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
|
||||
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
|
||||
top:"5%",
|
||||
width:"4.5%",
|
||||
},
|
||||
{
|
||||
name:"RCSN",
|
||||
label:"信号无线",
|
||||
light:"#6C6C6C",
|
||||
lighttype:"normal",
|
||||
status:false,
|
||||
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
|
||||
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
|
||||
top:"5%",
|
||||
width:"4.5%",
|
||||
},
|
||||
|
||||
{
|
||||
name:"RN",
|
||||
label:"车载无线电台",
|
||||
light:"#6C6C6C",
|
||||
lighttype:"normal",
|
||||
status:false,
|
||||
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
|
||||
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
|
||||
top:"5%",
|
||||
width:"4.5%",
|
||||
},
|
||||
{
|
||||
name:"SILN",
|
||||
label:"信号灯",
|
||||
light:"#6C6C6C",
|
||||
lighttype:"normal",
|
||||
status:false,
|
||||
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
|
||||
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
|
||||
top:"5%",
|
||||
width:"4.5%",
|
||||
},
|
||||
|
||||
{
|
||||
name:"TCMSDPN",
|
||||
label:"TCMS显示屏",
|
||||
light:"#6C6C6C",
|
||||
lighttype:"normal",
|
||||
status:false,
|
||||
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
|
||||
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
|
||||
top:"5%",
|
||||
width:"4.5%",
|
||||
},
|
||||
{
|
||||
name:"TCMSN",
|
||||
label:"TCMS",
|
||||
light:"#6C6C6C",
|
||||
lighttype:"normal",
|
||||
status:false,
|
||||
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
|
||||
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
|
||||
top:"5%",
|
||||
width:"4.5%",
|
||||
},
|
||||
|
||||
{
|
||||
name:"WFLN",
|
||||
label:"轮缘润滑装置",
|
||||
light:"#6C6C6C",
|
||||
lighttype:"normal",
|
||||
status:false,
|
||||
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
|
||||
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
|
||||
top:"5%",
|
||||
width:"4.5%",
|
||||
},
|
||||
{
|
||||
name:"CLBPN",
|
||||
label:"导光板",
|
||||
light:"#6C6C6C",
|
||||
lighttype:"normal",
|
||||
status:false,
|
||||
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
|
||||
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
|
||||
top:"5%",
|
||||
width:"4.5%",
|
||||
},
|
||||
|
||||
{
|
||||
name:"HLN",
|
||||
label:"前照灯",
|
||||
light:"#6C6C6C",
|
||||
lighttype:"normal",
|
||||
status:false,
|
||||
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
|
||||
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
|
||||
top:"5%",
|
||||
width:"4.5%",
|
||||
},
|
||||
{
|
||||
name:"MSRN",
|
||||
label:"司控器电位计",
|
||||
light:"#6C6C6C",
|
||||
lighttype:"normal",
|
||||
status:false,
|
||||
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
|
||||
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
|
||||
top:"5%",
|
||||
width:"4.5%",
|
||||
},
|
||||
|
||||
{
|
||||
name:"RPLN",
|
||||
label:"防护灯",
|
||||
light:"#6C6C6C",
|
||||
lighttype:"normal",
|
||||
status:false,
|
||||
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
|
||||
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
|
||||
top:"5%",
|
||||
width:"4.5%",
|
||||
},
|
||||
{
|
||||
name:"VSN",
|
||||
label:"网压传感器",
|
||||
light:"#6C6C6C",
|
||||
lighttype:"normal",
|
||||
status:false,
|
||||
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
|
||||
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
|
||||
top:"5%",
|
||||
width:"4.5%",
|
||||
},
|
||||
|
||||
{
|
||||
name:"备用",
|
||||
label:"备用",
|
||||
light:"#6C6C6C",
|
||||
lighttype:"normal",
|
||||
status:false,
|
||||
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
|
||||
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
|
||||
top:"5%",
|
||||
width:"4.5%",
|
||||
},
|
||||
{
|
||||
name:"CVN",
|
||||
label:"司机室通风",
|
||||
light:"#6C6C6C",
|
||||
lighttype:"normal",
|
||||
status:false,
|
||||
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
|
||||
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
|
||||
top:"5%",
|
||||
width:"4.5%",
|
||||
},
|
||||
|
||||
{
|
||||
name:"SLPN",
|
||||
label:"漏电保护",
|
||||
light:"#6C6C6C",
|
||||
lighttype:"non",
|
||||
status:false,
|
||||
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close1.png",
|
||||
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
|
||||
top:"5%",
|
||||
width:"9%",
|
||||
},
|
||||
{
|
||||
name:"EHGN",
|
||||
label:"电热玻璃",
|
||||
light:"#6C6C6C",
|
||||
lighttype:"two",
|
||||
status:false,
|
||||
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close2.png",
|
||||
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
|
||||
top:"5%",
|
||||
width:"9%",
|
||||
},
|
||||
|
||||
{
|
||||
name:"CEHN",
|
||||
label:"司机室电加热",
|
||||
light:"#6C6C6C",
|
||||
lighttype:"two",
|
||||
status:false,
|
||||
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close2.png",
|
||||
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
|
||||
top:"5%",
|
||||
width:"9%",
|
||||
},
|
||||
|
||||
];
|
||||
|
||||
this.buttonList = [
|
||||
{
|
||||
name:"BNBB",
|
||||
label:"制动不缓解旁路",
|
||||
lighttype:"normal",
|
||||
status:false,
|
||||
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/gai2.png",
|
||||
top:"5%",
|
||||
width:"11%",
|
||||
},
|
||||
{
|
||||
name:"PABB",
|
||||
label:"停放制动旁路",
|
||||
lighttype:"normal",
|
||||
status:false,
|
||||
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/gai2.png",
|
||||
top:"5%",
|
||||
width:"11%",
|
||||
},
|
||||
{
|
||||
name:"DCBB",
|
||||
label:"门安全旁路",
|
||||
lighttype:"normal",
|
||||
status:false,
|
||||
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/gai2.png",
|
||||
top:"5%",
|
||||
width:"11%",
|
||||
},
|
||||
{
|
||||
name:"DSBB",
|
||||
label:"门选择旁路",
|
||||
lighttype:"normal",
|
||||
status:false,
|
||||
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/gai2.png",
|
||||
top:"5%",
|
||||
width:"11%",
|
||||
},
|
||||
{
|
||||
name:"DMBB",
|
||||
label:"警惕旁路",
|
||||
lighttype:"normal",
|
||||
status:false,
|
||||
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/gai2.png",
|
||||
top:"5%",
|
||||
width:"11%",
|
||||
},
|
||||
{
|
||||
name:"TOWB",
|
||||
label:"回送",
|
||||
lighttype:"normal",
|
||||
status:false,
|
||||
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/gai2.png",
|
||||
top:"5%",
|
||||
width:"11%",
|
||||
},
|
||||
{
|
||||
name:"CFB",
|
||||
label:"换端",
|
||||
lighttype:"normal",
|
||||
status:false,
|
||||
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/green.png",
|
||||
top:"5%",
|
||||
width:"11%",
|
||||
},
|
||||
{
|
||||
name:"BATOB",
|
||||
label:"蓄电池断",
|
||||
lighttype:"normal",
|
||||
status:false,
|
||||
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/red.png",
|
||||
top:"5%",
|
||||
width:"11%",
|
||||
},
|
||||
{
|
||||
name:"DMTB",
|
||||
label:"警惕测试",
|
||||
lighttype:"normal",
|
||||
status:false,
|
||||
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/yellow.png",
|
||||
top:"5%",
|
||||
width:"11%",
|
||||
},
|
||||
{
|
||||
name:"ADDCB",
|
||||
label:"ADD切除",
|
||||
lighttype:"normal",
|
||||
status:false,
|
||||
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/gai2.png",
|
||||
top:"5%",
|
||||
width:"11%",
|
||||
},
|
||||
{
|
||||
name:"BACKMB",
|
||||
label:"后背模式",
|
||||
lighttype:"normal",
|
||||
status:false,
|
||||
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/gai2.png",
|
||||
top:"5%",
|
||||
width:"11%",
|
||||
},
|
||||
{
|
||||
name:"EBSB",
|
||||
label:"紧急制动环路短接",
|
||||
lighttype:"normal",
|
||||
status:false,
|
||||
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/gai2.png",
|
||||
top:"5%",
|
||||
width:"11%",
|
||||
},
|
||||
{
|
||||
name:"E3B",
|
||||
label:"紧急按钮旁路",
|
||||
lighttype:"normal",
|
||||
status:false,
|
||||
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/gai2.png",
|
||||
top:"5%",
|
||||
width:"11%",
|
||||
},
|
||||
{
|
||||
name:"LD1BB",
|
||||
label:"左门1km/h旁路",
|
||||
lighttype:"normal",
|
||||
status:false,
|
||||
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/gai2.png",
|
||||
top:"5%",
|
||||
width:"11%",
|
||||
},
|
||||
{
|
||||
name:"RD1BB",
|
||||
label:"右门1km/h旁路",
|
||||
lighttype:"normal",
|
||||
status:false,
|
||||
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/gai2.png",
|
||||
top:"5%",
|
||||
width:"11%",
|
||||
},
|
||||
{
|
||||
name:"",
|
||||
label:"备用",
|
||||
lighttype:"normal",
|
||||
status:false,
|
||||
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/gai2.png",
|
||||
top:"5%",
|
||||
width:"11%",
|
||||
},
|
||||
{
|
||||
name:"BATCB",
|
||||
label:"蓄电池合",
|
||||
lighttype:"normal",
|
||||
status:false,
|
||||
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/green.png",
|
||||
top:"5%",
|
||||
width:"11%",
|
||||
},
|
||||
{
|
||||
name:"FRB",
|
||||
label:"初次升弓",
|
||||
lighttype:"normal",
|
||||
status:false,
|
||||
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/green.png",
|
||||
top:"5%",
|
||||
width:"11%",
|
||||
},
|
||||
];
|
||||
}
|
303
src/views/jlmap3d/drive/equipbox/equipbox.vue
Normal file
@ -0,0 +1,303 @@
|
||||
<template>
|
||||
<div id="equipbox" class="equipbox" v-show="showEquipbox">
|
||||
<div id="ebtop" class="ebtop" >
|
||||
<div class="ebtopbutton"
|
||||
v-for="(switchbt,switchindex) in switchList"
|
||||
:style="{width:switchbt.width,top:switchbt.top}">
|
||||
<div :style="{height:'50%',backgroundImage: 'url(' + switchbt.bgpic + ')', backgroundSize: '100% 100%',backgroundRepeat: 'no-repeat'}" >
|
||||
<div :style="{height:'35%'}"/>
|
||||
<div :style="{height:'10%'}" >
|
||||
{{switchbt.name}}
|
||||
</div>
|
||||
|
||||
<div :style="{width:'100%',height:'5%'}">
|
||||
<div v-if="switchbt.lighttype === 'normal'" :style="{marginLeft:'35%',width:'30%',height:'100%',backgroundColor:switchbt.light}" />
|
||||
|
||||
<div v-if="switchbt.lighttype === 'two'" :style="{width:'100%',height:'100%',display:'inline-block'}">
|
||||
<div :style="{marginLeft:'20%',width:'20%',height:'100%',backgroundColor:switchbt.light,float:'left'}" />
|
||||
<div :style="{marginLeft:'20%',width:'20%',height:'100%',backgroundColor:switchbt.light,float:'left'}" />
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div @click="switchChange(switchbt)" :style="{height:'50%',backgroundImage: 'url(' +switchbt.statuspic+')', backgroundSize: '100% 100%',backgroundRepeat: 'no-repeat'}" >
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div :style="{height:'40%'}" >
|
||||
<div :style="{height:'20%'}"/>
|
||||
<div :style="{height:'40%',backgroundColor:'#000',color:' #fff'}">
|
||||
{{switchbt.label}}
|
||||
</div>
|
||||
<div :style="{height:'20%',backgroundColor:'#FFFF37',color:' #000'}">
|
||||
{{switchbt.name}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="ebmid" class="ebmid" >
|
||||
<div :style="{position:'absolute',left:'10%',width:'15%',height:'100%'}" >
|
||||
<div :style="{position:'absolute',width:'90%',left:'5%',height:'80%',backgroundImage: 'url(' +yibiaobg+')', backgroundSize: '100% 100%',backgroundRepeat: 'no-repeat'}" >
|
||||
</div>
|
||||
<div style="font-size:8px;" :style="{width:'100%',height:'40%',position:'absolute',top:'80%'}" >
|
||||
<div :style="{height:'15%',backgroundColor:'#000',color:' #fff'}">
|
||||
接触网/蓄电池电压表
|
||||
</div>
|
||||
<div :style="{height:'15%',backgroundColor:'#FFFF37',color:' #000'}">
|
||||
DFV
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="doorpick" class="ebpanebutton2" style="top:33%;left:40%;">
|
||||
<img class="ebbuttonimg2" :src="zuoimg" />
|
||||
<img class="ebbuttonimg2" :src="niuimg"/>
|
||||
<div class="tfbutton" style="font-size:1px;top:13px;left:5px;">{{ $t('jlmap3d.leftSide') }}</div>
|
||||
<div class="tfbutton" style="font-size:1px;top:5px;left:33px;">{{ $t('jlmap3d.location0') }}</div>
|
||||
<div class="tfbutton" style="font-size:1px;top:13px;left:50px;">{{ $t('jlmap3d.rightSide') }}</div>
|
||||
<div style="font-size:10px;" :style="{position:'absolute',width:'70px',height:'20px',position:'absolute',top:'70px',left:'5px'}" >
|
||||
<div :style="{height:'10px',backgroundColor:'#000',color:' #fff'}">
|
||||
废排风机
|
||||
</div>
|
||||
<div :style="{height:'10px',backgroundColor:'#FFFF37',color:' #000'}">
|
||||
FPS
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="doorpick" class="ebpanebutton2" style="top:33%;left:50%;">
|
||||
<img class="ebbuttonimg2" :src="zuoimg" />
|
||||
<img class="ebbuttonimg2" :src="niuimg"/>
|
||||
<div class="tfbutton" style="font-size:1px;top:13px;left:5px;">{{ $t('jlmap3d.leftSide') }}</div>
|
||||
<div class="tfbutton" style="font-size:1px;top:5px;left:33px;">{{ $t('jlmap3d.location0') }}</div>
|
||||
<div class="tfbutton" style="font-size:1px;top:13px;left:50px;">{{ $t('jlmap3d.rightSide') }}</div>
|
||||
<div style="font-size:10px;" :style="{position:'absolute',width:'70px',height:'20px',position:'absolute',top:'70px',left:'5px'}" >
|
||||
<div :style="{height:'10px',backgroundColor:'#000',color:' #fff'}">
|
||||
客室电加热
|
||||
</div>
|
||||
<div :style="{height:'10px',backgroundColor:'#FFFF37',color:' #000'}">
|
||||
PEHS
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="doorpick" class="ebpanebutton2" style="top:33%;left:60%;">
|
||||
<img class="ebbuttonimg2" :src="zuoimg" />
|
||||
<img class="ebbuttonimg2" :src="niuimg"/>
|
||||
<div class="tfbutton" style="font-size:1px;top:13px;left:5px;">{{ $t('jlmap3d.leftSide') }}</div>
|
||||
<div class="tfbutton" style="font-size:1px;top:5px;left:33px;">{{ $t('jlmap3d.location0') }}</div>
|
||||
<div class="tfbutton" style="font-size:1px;top:13px;left:50px;">{{ $t('jlmap3d.rightSide') }}</div>
|
||||
<div style="font-size:10px;" :style="{position:'absolute',width:'70px',height:'20px',position:'absolute',top:'70px',left:'5px'}" >
|
||||
<div :style="{height:'10px',backgroundColor:'#000',color:' #fff'}">
|
||||
司机室电加热
|
||||
</div>
|
||||
<div :style="{height:'10px',backgroundColor:'#FFFF37',color:' #000'}">
|
||||
CEHS
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="doorpick" class="ebpanebutton2" style="top:33%;left:70%;">
|
||||
<img class="ebbuttonimg2" :src="zuoimg" />
|
||||
<img class="ebbuttonimg2" :src="niuimg"/>
|
||||
<div class="tfbutton" style="font-size:1px;top:13px;left:5px;">{{ $t('jlmap3d.leftSide') }}</div>
|
||||
<div class="tfbutton" style="font-size:1px;top:5px;left:33px;">{{ $t('jlmap3d.location0') }}</div>
|
||||
<div class="tfbutton" style="font-size:1px;top:13px;left:50px;">{{ $t('jlmap3d.rightSide') }}</div>
|
||||
<div style="font-size:10px;" :style="{position:'absolute',width:'70px',height:'20px',position:'absolute',top:'70px',left:'5px'}" >
|
||||
<div :style="{height:'10px',backgroundColor:'#000',color:' #fff'}">
|
||||
ATP切除
|
||||
</div>
|
||||
<div :style="{height:'10px',backgroundColor:'#FFFF37',color:' #000'}">
|
||||
ATPCS
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="doorpick" class="ebpanebutton2" style="top:33%;left:80%;">
|
||||
<img class="ebbuttonimg2" :src="zuoimg" />
|
||||
<img class="ebbuttonimg2" :src="niuimg"/>
|
||||
<div class="tfbutton" style="font-size:1px;top:13px;left:5px;">{{ $t('jlmap3d.leftSide') }}</div>
|
||||
<div class="tfbutton" style="font-size:1px;top:5px;left:33px;">{{ $t('jlmap3d.location0') }}</div>
|
||||
<div class="tfbutton" style="font-size:1px;top:13px;left:50px;">{{ $t('jlmap3d.rightSide') }}</div>
|
||||
<div style="font-size:10px;" :style="{position:'absolute',width:'70px',height:'20px',position:'absolute',top:'70px',left:'5px'}" >
|
||||
<div :style="{height:'10px',backgroundColor:'#000',color:' #fff'}">
|
||||
空压机模式
|
||||
</div>
|
||||
<div :style="{height:'10px',backgroundColor:'#FFFF37',color:' #000'}">
|
||||
CMCS
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="ebdown" class="ebdown" >
|
||||
<div class="ebdownbutton"
|
||||
v-for="(buttonbt,switchindex) in buttonList"
|
||||
:style="{width:buttonbt.width,top:buttonbt.top}">
|
||||
<div :style="{height:'70%',backgroundImage: 'url(' + buttonbt.statuspic + ')', backgroundSize: '100% 100%',backgroundRepeat: 'no-repeat'}" >
|
||||
|
||||
</div>
|
||||
|
||||
<div :style="{height:'40%'}" >
|
||||
<div :style="{height:'20%'}"/>
|
||||
<div :style="{height:'40%',backgroundColor:'#000',color:' #fff'}">
|
||||
{{buttonbt.label}}
|
||||
</div>
|
||||
<div :style="{height:'20%',backgroundColor:'#FFFF37',color:' #000'}">
|
||||
{{buttonbt.name}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { JL3D_LOCAL_STATIC } from '@/api/jlmap3d/assets3d.js';
|
||||
|
||||
import { EbUiData } from '@/views/jlmap3d/drive/equipbox/ebuidata';
|
||||
|
||||
export default {
|
||||
name: 'EquipBox',
|
||||
components: {
|
||||
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
showEquipbox:true,
|
||||
switchList:[],
|
||||
buttonList:[],
|
||||
yibiaobg:JL3D_LOCAL_STATIC+"/jl3d/equipbox/DYB3.png",
|
||||
|
||||
zuoimg:JL3D_LOCAL_STATIC+"/jl3d/control/zuo.png",
|
||||
niuimg:JL3D_LOCAL_STATIC+"/jl3d/control/niu.png",
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
|
||||
},
|
||||
watch: {
|
||||
|
||||
},
|
||||
mounted() {
|
||||
let initUiData = new EbUiData();
|
||||
this.switchList = initUiData.switchList;
|
||||
this.buttonList = initUiData.buttonList;
|
||||
},
|
||||
beforeDestroy() {
|
||||
|
||||
},
|
||||
methods: {
|
||||
switchChange: function(switchbt){
|
||||
console.log(switchbt);
|
||||
if(switchbt.status == true){
|
||||
switchbt.status = false;
|
||||
switchbt.light = "#6C6C6C";
|
||||
if(switchbt.lighttype == "normal"){
|
||||
switchbt.statuspic = JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png";
|
||||
}else if(switchbt.lighttype == "non"){
|
||||
switchbt.statuspic = JL3D_LOCAL_STATIC+"/jl3d/equipbox/close1.png";
|
||||
}else if(switchbt.lighttype == "two"){
|
||||
switchbt.statuspic = JL3D_LOCAL_STATIC+"/jl3d/equipbox/close2.png";
|
||||
}
|
||||
}else{
|
||||
switchbt.status = true;
|
||||
switchbt.light = "#FF2D2D";
|
||||
if(switchbt.lighttype == "normal"){
|
||||
switchbt.statuspic = JL3D_LOCAL_STATIC+"/jl3d/equipbox/open.png";
|
||||
}else if(switchbt.lighttype == "non"){
|
||||
switchbt.statuspic = JL3D_LOCAL_STATIC+"/jl3d/equipbox/open1.png";
|
||||
}else if(switchbt.lighttype == "two"){
|
||||
switchbt.statuspic = JL3D_LOCAL_STATIC+"/jl3d/equipbox/open2.png";
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
<style rel="stylesheet/scss" lang="scss" scoped>
|
||||
@import "src/styles/mixin.scss";
|
||||
|
||||
.equipbox {
|
||||
position: absolute;
|
||||
width: 40%;
|
||||
height: 90%;
|
||||
top:10%;
|
||||
left:30%;
|
||||
background-color: #fff;
|
||||
border-radius: 18px;
|
||||
border:solid 2px #000;
|
||||
z-index: 5;
|
||||
}
|
||||
|
||||
.ebtop{
|
||||
position:absolute;
|
||||
width:100%;
|
||||
height:45%;
|
||||
top:1%;
|
||||
left:0.5%;
|
||||
}
|
||||
.ebtopbutton{
|
||||
height:40%;
|
||||
float: left;
|
||||
// position:relative;
|
||||
display: inline-block;
|
||||
font-size: 8px;
|
||||
text-align: center;
|
||||
// position: relative;
|
||||
}
|
||||
|
||||
.ebmid{
|
||||
position:absolute;
|
||||
width:100%;
|
||||
height:25%;
|
||||
top:45%;
|
||||
text-Align:center;
|
||||
}
|
||||
|
||||
.ebdown{
|
||||
position:absolute;
|
||||
width:100%;
|
||||
height:30%;
|
||||
top:70%;
|
||||
}
|
||||
.ebdownbutton{
|
||||
height:40%;
|
||||
float: left;
|
||||
// position:relative;
|
||||
display: inline-block;
|
||||
font-size: 8px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.ebpanebutton2{
|
||||
height: 100px;
|
||||
width: 80px;
|
||||
position: absolute;
|
||||
text-align: center;
|
||||
cursor:pointer;
|
||||
}
|
||||
|
||||
.ebbuttonimg2{
|
||||
top:0;
|
||||
left:0px;
|
||||
position: absolute;
|
||||
height: 80px;
|
||||
width: 80px;
|
||||
}
|
||||
|
||||
.tfbutton{
|
||||
color:#000000;
|
||||
font-size: 1px;
|
||||
position:absolute;
|
||||
}
|
||||
|
||||
|
||||
</style>
|
@ -10,6 +10,8 @@
|
||||
<el-button-group>
|
||||
|
||||
<!-- <el-button type="primary" @click="raystand">站台选择</el-button> -->
|
||||
|
||||
<el-button type="primary" @click="equipboxplane">{{ equipboxmsg }}</el-button>
|
||||
<el-button type="primary" @click="cctvplane">{{ cctvbuttonmsg }}</el-button>
|
||||
<el-button type="primary" @click="showmmiplane">{{ showbuttonmmimsg }}</el-button>
|
||||
<el-button type="primary" @click="showtmsplane">{{ showbuttontmsmsg }}</el-button>
|
||||
@ -35,6 +37,7 @@
|
||||
<Drive-Mmi v-if="mmishow" ref="mmiui" />
|
||||
<Drive-Tms v-if="tmsshow" ref="tmsui"/>
|
||||
<Drive-Control v-if="dcontrolshow" ref="dcontrol" @warningmsg="warningmsg" @warningmsgoff="warningmsgoff" />
|
||||
<Equip-Box v-if="equipboxshow" />
|
||||
</div>
|
||||
|
||||
</template>
|
||||
@ -61,13 +64,16 @@ import DriveMmi from '@/views/jlmap3d/drive/sceneview/mmiview';
|
||||
import DriveTms from '@/views/jlmap3d/drive/sceneview/tmsview';
|
||||
import DriveControl from '@/views/jlmap3d/drive/drivecontrol/drivecontrol';
|
||||
|
||||
import EquipBox from '@/views/jlmap3d/drive/equipbox/equipbox';
|
||||
|
||||
var train;
|
||||
export default {
|
||||
name: 'Jl3dDrive',
|
||||
components: {
|
||||
DriveMmi,
|
||||
DriveTms,
|
||||
DriveControl
|
||||
DriveControl,
|
||||
EquipBox
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
@ -84,6 +90,7 @@ export default {
|
||||
jlmap3d: null,
|
||||
selectmodel: null,
|
||||
cctvshow:true,
|
||||
equipboxmsg:"设备柜——隐藏",
|
||||
cctvbuttonmsg: this.$t('jlmap3d.surveillanceHidden'),
|
||||
mmishow: false,
|
||||
tmsshow: false,
|
||||
@ -93,6 +100,7 @@ export default {
|
||||
// trainnum: '',
|
||||
// stoptimes: '',
|
||||
dcontrolshow: true,
|
||||
equipboxshow:false,
|
||||
msgshow:false,
|
||||
controlmsg:"不能选择其它列车",
|
||||
|
||||
@ -319,6 +327,16 @@ export default {
|
||||
datanew(){
|
||||
this.dcontrolshow = true;
|
||||
},
|
||||
equipboxplane(){
|
||||
if (this.equipboxshow == true) {
|
||||
this.equipboxmsg = "设备柜——隐藏";
|
||||
this.equipboxshow = false;
|
||||
} else {
|
||||
this.equipboxmsg = "设备柜——显示";
|
||||
this.equipboxshow = true;
|
||||
}
|
||||
|
||||
},
|
||||
cctvplane() {
|
||||
if (this.cctvshow == true) {
|
||||
this.cctvbuttonmsg = this.$t('jlmap3d.surveillanceHidden');
|
||||
|
@ -10,8 +10,12 @@
|
||||
<el-option label="信号机贴图" value="textureSignal"></el-option>
|
||||
<el-option label="单体设备贴图" value="textureDevice"></el-option>
|
||||
<el-option label="小程序大铁贴图" value="textureRailwayWx"></el-option>
|
||||
<el-option label="三维课程图片" value="textureLesson"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="图片组名">
|
||||
<el-input v-model="form.deviceType"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="所属项目">
|
||||
<el-input v-model="form.line"></el-input>
|
||||
</el-form-item>
|
||||
@ -105,7 +109,7 @@ export default {
|
||||
let data = {
|
||||
packageName:this.form.packageName ,
|
||||
resourceType:this.form.resourceType,
|
||||
deviceType:'',
|
||||
deviceType:this.form.deviceType,
|
||||
fileType:'texture',
|
||||
remarks:this.form.remarks,
|
||||
line:this.form.line,
|
||||
|
@ -30,21 +30,23 @@
|
||||
<el-tab-pane label="图片资源列表" name="picasset">
|
||||
|
||||
<el-tabs v-model="activeName" class="activediv" type="card" @tab-click="handleClick" >
|
||||
<el-tab-pane label="图片资源列表" name="picasset">
|
||||
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
|
||||
<el-tab-pane v-for="picAssets in picAssetList" label="图片资源列表" name="picasset">
|
||||
picAssets
|
||||
<draggable v-model="picAssetList" group="picasset" @start="drag=true" @end="drag=false">
|
||||
<div class="progressdiv"
|
||||
v-for="item in picAssetList" @click="changePicUrl($event,item)">
|
||||
|
||||
v-for="item in picAssets" @click="changePicUrl($event,item)">
|
||||
<div class="progressdivimg"
|
||||
:style="{'background-image': 'url('+netStatic+item.url+')'}"/>
|
||||
<div class="progressdivtext">{{item.packageName}}</div>
|
||||
|
||||
</div>
|
||||
</draggable>
|
||||
|
||||
</el-tab-pane>
|
||||
|
||||
</el-tabs>
|
||||
|
||||
|
||||
<!-- <Assets-Model></Assets-Model> -->
|
||||
</el-tab-pane>
|
||||
|
||||
@ -104,9 +106,20 @@
|
||||
console.log(error);
|
||||
});
|
||||
|
||||
getMap3dModelData("textureDevice").then(netdata => {
|
||||
getMap3dModelData("textureLesson").then(netdata => {
|
||||
console.log(netdata);
|
||||
this.picAssetList = netdata.data;
|
||||
let newPicAssets = [];
|
||||
|
||||
for(let i=0;i<netdata.data.length;i++){
|
||||
if(Array.isArray(newPicAssets[netdata.data[i].deviceType])){
|
||||
newPicAssets[netdata.data[i].deviceType].push( netdata.data[i]);
|
||||
}else{
|
||||
newPicAssets[netdata.data[i].deviceType] = [];
|
||||
newPicAssets[netdata.data[i].deviceType].push( netdata.data[i]);
|
||||
}
|
||||
}
|
||||
console.log(newPicAssets);netdata.data
|
||||
this.picAssetList = newPicAssets;
|
||||
}).catch(error => {
|
||||
console.log(error);
|
||||
});
|
||||
|
@ -33,6 +33,7 @@
|
||||
<el-form-item label="场景角色设置:">
|
||||
|
||||
<el-select v-model="lessonData.lessonData.lessonProgress[lessonEditIndex].roleName" :disabled="!lessonData.lessonData.lessonProgress[lessonEditIndex].roleUse" placeholder="请选择步骤归属角色">
|
||||
<el-option label="空角色" value="kong"></el-option>
|
||||
<el-option v-for="jobItem in jobDataList" :label="jobItem.name" :value="jobItem.value" :key="jobItem.value"></el-option>
|
||||
|
||||
</el-select>
|
||||
@ -160,7 +161,7 @@
|
||||
|
||||
<el-tab-pane label="组件属性" name="toolproperty" v-if="lessonData.lessonData.lessonProgress[lessonEditIndex]">
|
||||
<el-form>
|
||||
<el-form-item label="标题:" v-if="selected.tittle" >
|
||||
<el-form-item label="标题:" >
|
||||
<el-input v-model="selected.tittle" ></el-input>
|
||||
</el-form-item>
|
||||
|
||||
@ -174,7 +175,7 @@
|
||||
<el-input v-model="selected.sceneId" ></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="内容:" v-if="selected.text">
|
||||
<el-form-item label="内容:" >
|
||||
<el-input v-model="selected.text" ></el-input>
|
||||
</el-form-item>
|
||||
|
||||
@ -215,11 +216,12 @@
|
||||
<!-- <el-button @click="updateData">保存修改</el-button> -->
|
||||
</el-form>
|
||||
|
||||
<el-form ref="form" class="camerapropertydiv" label-width="130px" size="mini" v-if="selectType == 'modelproperty'">
|
||||
<el-form ref="form" class="camerapropertydiv" v-if="selectType == 'modelproperty'">
|
||||
<el-form-item label="模型名称:" v-if="selected.label">
|
||||
<el-input v-model="selected.label" ></el-input>
|
||||
</el-form-item>
|
||||
|
||||
|
||||
<el-select v-model="selected.visible" >
|
||||
<el-option label="显示" :value=true></el-option>
|
||||
<el-option label="隐藏" :value=false></el-option>
|
||||
@ -300,6 +302,10 @@
|
||||
label:"停车场",
|
||||
value:"stopstation",
|
||||
},
|
||||
{
|
||||
label:"调度大厅",
|
||||
value:"occ",
|
||||
},
|
||||
{
|
||||
label:"单体设备",
|
||||
value:"device",
|
||||
|
@ -32,17 +32,17 @@
|
||||
<Step-Tips
|
||||
:lessonData='lessonData'
|
||||
:lessonEditIndex='lessonEditIndex'
|
||||
v-show="lessonTools[0].isShow && lessonData.lessonData.lessonProgress[lessonEditIndex].progressScene == 'standstation'">
|
||||
v-show="lessonTools[0].isShow ">
|
||||
</Step-Tips>
|
||||
|
||||
<Process-Log
|
||||
v-show="lessonTools[1].isShow && lessonData.lessonData.lessonProgress[lessonEditIndex].progressScene == 'standstation'">
|
||||
v-show="lessonTools[1].isShow ">
|
||||
</Process-Log>
|
||||
|
||||
<Explain-Pane
|
||||
:lessonData='lessonData'
|
||||
:lessonEditIndex='lessonEditIndex'
|
||||
v-show="lessonTools[2].isShow && lessonData.lessonData.lessonProgress[lessonEditIndex].progressScene == 'standstation'">
|
||||
v-show="lessonTools[2].isShow ">
|
||||
</Explain-Pane>
|
||||
|
||||
<Job-Pane
|
||||
@ -50,10 +50,10 @@
|
||||
:lessonData='lessonData'
|
||||
:lessonEditIndex='lessonEditIndex'
|
||||
ref="jobpane"
|
||||
v-show="lessonTools[3].isShow && lessonData.lessonData.lessonProgress[lessonEditIndex].progressScene == 'standstation'">
|
||||
v-show="lessonTools[3].isShow ">
|
||||
</Job-Pane>
|
||||
|
||||
<Tool-Bar v-show="lessonTools[4].isShow && lessonData.lessonData.lessonProgress[lessonEditIndex].progressScene == 'standstation'"></Tool-Bar>
|
||||
<Tool-Bar v-show="lessonTools[4].isShow "></Tool-Bar>
|
||||
|
||||
<div id="lesson3ddraw" class="lesson3ddraw">
|
||||
</div>
|
||||
|
@ -63,6 +63,7 @@
|
||||
top:0;
|
||||
border-radius:10px;
|
||||
border:solid 2px #000;
|
||||
color:#fff;
|
||||
z-index:1;
|
||||
}
|
||||
.stepstipstittle{
|
||||
|
@ -45,22 +45,23 @@
|
||||
<Step-Tips
|
||||
:lessonData='lessonData'
|
||||
:lessonPlayIndex='lessonPlayIndex'
|
||||
v-show="lessonTools[0].isShow && lessonData.lessonData.lessonProgress[lessonPlayIndex].progressScene == 'standstation'">
|
||||
:nowRole ='nowRole'
|
||||
v-show="lessonTools[0].isShow"
|
||||
@jumpEvent="jumpEvent">
|
||||
</Step-Tips>
|
||||
|
||||
<Process-Log
|
||||
:lessonData='lessonData'
|
||||
:lessonPlayIndex='lessonPlayIndex'
|
||||
ref="processlog"
|
||||
v-show="lessonTools[1].isShow && lessonData.lessonData.lessonProgress[lessonPlayIndex].progressScene == 'standstation'">
|
||||
v-show="lessonTools[1].isShow">
|
||||
</Process-Log>
|
||||
|
||||
<Explain-Pane
|
||||
:lessonData='lessonData'
|
||||
:lessonPlayIndex='lessonPlayIndex'
|
||||
:nowRole ='nowRole'
|
||||
v-show="lessonTools[2].isShow && lessonData.lessonData.lessonProgress[lessonPlayIndex].progressScene == 'standstation'"
|
||||
@jumpEvent="jumpEvent">
|
||||
v-show="lessonTools[2].isShow && !examMode"
|
||||
>
|
||||
</Explain-Pane>
|
||||
|
||||
<Job-Pane
|
||||
@ -69,11 +70,11 @@
|
||||
:lessonPlayIndex='lessonPlayIndex'
|
||||
:nowRole='nowRole'
|
||||
ref="jobpane"
|
||||
v-show="lessonTools[3].isShow && lessonData.lessonData.lessonProgress[lessonPlayIndex].progressScene == 'standstation'">
|
||||
v-show="lessonTools[3].isShow">
|
||||
</Job-Pane>
|
||||
|
||||
<Tool-Bar
|
||||
v-show="lessonTools[4].isShow && lessonData.lessonData.lessonProgress[lessonPlayIndex].progressScene == 'standstation'"
|
||||
v-show="lessonTools[4].isShow "
|
||||
@changeCameraPos="changeCameraPos">
|
||||
</Tool-Bar>
|
||||
|
||||
@ -273,7 +274,7 @@
|
||||
this.selectJobList = loadData.setup.checkedRole;
|
||||
this.jobPaneData.dataList = loadData.toolJobPane;
|
||||
this.$refs.jobpane.initJobList(this.jobPaneData.dataList);
|
||||
|
||||
console.log(loadData.lessonTools);
|
||||
this.lessonTools = loadData.lessonTools;
|
||||
this.lessonData.loadLessonProgress(loadData.lessonProgress);
|
||||
|
||||
|
@ -3,19 +3,16 @@
|
||||
v-if="lessonData.lessonData.lessonProgress[lessonPlayIndex]"
|
||||
|
||||
:style="{'background-image': 'url('+lessonbg+')'}">
|
||||
<!-- <div class="explainpanetittle" >
|
||||
{{lessonData.lessonData.lessonProgress[lessonPlayIndex].explainPane.tittle}}
|
||||
</div> -->
|
||||
<div class="explainpanepic" :style="{'background-image': 'url('+localStatic+lessonData.lessonData.lessonProgress[lessonPlayIndex].explainPane.picurl+')'}" >
|
||||
<div class="explainpanetittle" >
|
||||
操作提示
|
||||
</div>
|
||||
<div v-if="lessonData.lessonData.lessonProgress[lessonPlayIndex].explainPane.picurl != 'url'" class="explainpanepic" :style="{'background-image': 'url('+localStatic+lessonData.lessonData.lessonProgress[lessonPlayIndex].explainPane.picurl+')'}" >
|
||||
|
||||
</div>
|
||||
<div class="explainpanetext" >
|
||||
{{lessonData.lessonData.lessonProgress[lessonPlayIndex].explainPane.text}}
|
||||
</div>
|
||||
<div class="nextbuttondiv"
|
||||
:style="{'background-image': 'url('+staticImg+'/lesson3d/nextbutton.png)'}"
|
||||
v-if="lessonData.lessonData.lessonProgress[lessonPlayIndex].explainPane.explainPaneType=='jump'|| (lessonData.lessonData.lessonProgress[lessonPlayIndex].explainPane.explainPaneType == 'limitjump' && !(lessonData.lessonData.lessonProgress[lessonPlayIndex].roleName == nowRole)) "
|
||||
@click="explainJump"></div>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
@ -26,7 +23,7 @@
|
||||
|
||||
export default {
|
||||
name: 'ExplainPane',
|
||||
props:['lessonData','lessonPlayIndex','nowRole'],
|
||||
props:['lessonData','lessonPlayIndex'],
|
||||
components: {
|
||||
|
||||
},
|
||||
@ -53,12 +50,7 @@
|
||||
// selectTool(){
|
||||
// lesson3dSelect('toolproperty','explainpane');
|
||||
// },
|
||||
explainJump(){
|
||||
|
||||
if(this.lessonData.lessonData.lessonProgress[this.lessonPlayIndex].explainPane.explainPaneType == "jump" || (this.lessonData.lessonData.lessonProgress[this.lessonPlayIndex].explainPane.explainPaneType == "limitjump")){
|
||||
this.$emit('jumpEvent','jump',this.lessonData.lessonData.lessonProgress[this.lessonPlayIndex].explainPane);
|
||||
}
|
||||
},
|
||||
},
|
||||
|
||||
}
|
||||
|
@ -54,9 +54,10 @@
|
||||
handler: function (newVal, oldVal) {
|
||||
|
||||
if (newVal != oldVal) {
|
||||
this.logTexts.push(this.lessonData.lessonData.lessonProgress[oldVal].stepTipsData);
|
||||
this.processTexts.push(this.lessonData.lessonData.lessonProgress[oldVal].stepTipsData);
|
||||
this.nowProcessText = this.lessonData.lessonData.lessonProgress[newVal].stepTipsData.text;
|
||||
console.log(this.lessonData.lessonData.lessonProgress[oldVal]);
|
||||
this.logTexts.push(this.lessonData.lessonData.lessonProgress[oldVal].explainPane);
|
||||
this.processTexts.push(this.lessonData.lessonData.lessonProgress[oldVal].explainPane);
|
||||
this.nowProcessText = this.lessonData.lessonData.lessonProgress[newVal].explainPane.text;
|
||||
var div1 = document.getElementById('tabdiv1');
|
||||
// div.scrollIntoView();
|
||||
div1.scrollTop = div1.scrollHeight;
|
||||
@ -75,7 +76,7 @@
|
||||
},
|
||||
methods: {
|
||||
startLog(){
|
||||
this.nowProcessText = this.lessonData.lessonData.lessonProgress[this.lessonPlayIndex].stepTipsData.text;
|
||||
this.nowProcessText = this.lessonData.lessonData.lessonProgress[this.lessonPlayIndex].explainPane.text;
|
||||
},
|
||||
|
||||
},
|
||||
|
@ -1,14 +1,18 @@
|
||||
<template>
|
||||
<div class="stepstipsdiv"
|
||||
v-if="lessonData.lessonData.lessonProgress[lessonPlayIndex]"
|
||||
@click="selectTool"
|
||||
:style="{'background-image': 'url('+lessonbg+')'}">
|
||||
<div class="stepstipstittle" >
|
||||
{{lessonData.lessonData.lessonProgress[lessonPlayIndex].stepTipsData.tittle}}
|
||||
当前情况
|
||||
<!-- {{lessonData.lessonData.lessonProgress[lessonPlayIndex].stepTipsData.tittle}} -->
|
||||
</div>
|
||||
<div class="stepstipstext" >
|
||||
{{lessonData.lessonData.lessonProgress[lessonPlayIndex].stepTipsData.text}}
|
||||
</div>
|
||||
<div class="nextbuttondiv"
|
||||
:style="{'background-image': 'url('+staticImg+'/lesson3d/nextbutton.png)'}"
|
||||
v-if="lessonData.lessonData.lessonProgress[lessonPlayIndex].explainPane.explainPaneType=='jump'|| (lessonData.lessonData.lessonProgress[lessonPlayIndex].explainPane.explainPaneType == 'limitjump' && !(lessonData.lessonData.lessonProgress[lessonPlayIndex].roleName == nowRole)) "
|
||||
@click="explainJump"></div>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
@ -18,13 +22,14 @@
|
||||
//步骤提示
|
||||
export default {
|
||||
name: 'StepTips',
|
||||
props:['lessonData','lessonPlayIndex'],
|
||||
props:['lessonData','lessonPlayIndex','nowRole'],
|
||||
components: {
|
||||
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
lessonbg:JL3D_LOCAL_STATIC+"/lesson3d/lessonbg.png",
|
||||
staticImg:JL3D_LOCAL_STATIC,
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
@ -41,10 +46,12 @@
|
||||
},
|
||||
methods: {
|
||||
|
||||
selectTool(){
|
||||
lesson3dSelect('toolproperty','stepTips');
|
||||
},
|
||||
explainJump(){
|
||||
|
||||
if(this.lessonData.lessonData.lessonProgress[this.lessonPlayIndex].explainPane.explainPaneType == "jump" || (this.lessonData.lessonData.lessonProgress[this.lessonPlayIndex].explainPane.explainPaneType == "limitjump")){
|
||||
this.$emit('jumpEvent','jump',this.lessonData.lessonData.lessonProgress[this.lessonPlayIndex].explainPane);
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
},
|
||||
@ -76,5 +83,13 @@
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
.nextbuttondiv{
|
||||
width:30px;
|
||||
height:30px;
|
||||
background-size: 100%;
|
||||
position: absolute;
|
||||
right:0;
|
||||
bottom:0;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
440
src/views/newMap/displayBaSiDi/atr.vue
Normal file
@ -0,0 +1,440 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
v-dialogDrag
|
||||
class="haerbin-01__systerm"
|
||||
:title="title"
|
||||
:modal="false"
|
||||
width="600px"
|
||||
:visible.sync="show"
|
||||
:before-close="doClose"
|
||||
>
|
||||
<div style="padding: 0 10px;">
|
||||
<el-row>
|
||||
<span style="color:#000;font-size: 16px;font-weight: bold;">选择列车</span>
|
||||
<hr style="display: inline-block;width: 480px;">
|
||||
</el-row>
|
||||
<el-row style="padding: 5px;">
|
||||
<el-col :span="11" style="height: 28px;line-height: 28px;">
|
||||
<el-radio v-model="train" label="all">所有列车</el-radio>
|
||||
</el-col>
|
||||
<el-col :span="4" style="height: 28px;line-height: 28px;text-align: right;">
|
||||
<div>当前状态:</div>
|
||||
</el-col>
|
||||
<el-col :span="9">
|
||||
<el-input v-model="input" size="mini" :disabled="true" placeholder="请输入内容" />
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row style="padding: 5px;">
|
||||
<el-col :span="4" style="height: 28px;line-height: 28px;">
|
||||
<el-radio v-model="train" label="one">单列车号</el-radio>
|
||||
</el-col>
|
||||
<el-col :span="7">
|
||||
<el-select v-model="trainCode" :disabled="train !== 'one'" style="width: 160px" size="mini" placeholder="请选择">
|
||||
<el-option
|
||||
v-for="item in trainList"
|
||||
:key="item.code"
|
||||
:label="item.code"
|
||||
:value="item.code"
|
||||
/>
|
||||
</el-select>
|
||||
</el-col>
|
||||
<el-col :span="4" style="height: 28px;line-height: 28px;text-align: right;">
|
||||
<div>当前状态:</div>
|
||||
</el-col>
|
||||
<el-col :span="9">
|
||||
<el-input v-model="input" size="mini" :disabled="true" placeholder="请输入内容" />
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row style="padding: 5px 0;">
|
||||
<span style="color:#000;font-size: 16px;font-weight: bold;">选择调度模式</span>
|
||||
<hr style="display: inline-block;width: 170px;">
|
||||
<span style="color:#000;font-size: 16px;font-weight: bold;">调整行车间隔</span>
|
||||
<hr style="display: inline-block;width: 170px;">
|
||||
</el-row>
|
||||
<el-row style="padding: 5px;">
|
||||
<el-col :span="12" style="height: 28px;line-height: 28px;">
|
||||
<el-radio v-model="atrMode" label="TIME_TABLE_REGULATION">时刻表调度</el-radio>
|
||||
</el-col>
|
||||
<el-col :span="6" style="height: 28px;line-height: 28px;">
|
||||
<el-radio v-model="intervalMode" :disabled="true">列车个数</el-radio>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-input-number v-model="trainNumber" size="mini" :min="0" :max="999" :disabled="true" controls-position="right" label="列车个数" />
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row style="padding: 5px;">
|
||||
<el-col :offset="12" :span="6" style="height: 28px;line-height: 28px;">
|
||||
<el-radio v-model="intervalMode" :disabled="true">间隔时间(秒)</el-radio>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-input-number v-model="trainInterval" size="mini" :disabled="true" :min="0" :max="999" controls-position="right" label="间隔时间" />
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row style="padding: 5px;">
|
||||
<el-col :span="12" style="height: 28px;line-height: 28px;">
|
||||
<el-radio v-model="atrMode" label="HEADWAY_REGULATION_FRONT">列车间隔调度-前调</el-radio>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-button :disabled="true" style="height: 28px;width: 260px;">计算</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row style="padding: 5px;">
|
||||
<el-col :span="12">
|
||||
<el-radio v-model="atrMode" label="HEADWAY_REGULATION_FRONT_AND_BACK">列车间隔调度-前调+后调</el-radio>
|
||||
</el-col>
|
||||
<el-col :span="2" style="height: 28px;line-height: 28px;">
|
||||
<span>最小</span>
|
||||
</el-col>
|
||||
<el-col :span="5">
|
||||
<el-input v-model="input" :disabled="true" size="mini" />
|
||||
</el-col>
|
||||
<el-col :span="4" :offset="1">
|
||||
<el-input v-model="input" :disabled="true" size="mini" />
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row style="padding: 5px;">
|
||||
<el-col :span="2" :offset="12" style="height: 28px;line-height: 28px;">
|
||||
<span>最小</span>
|
||||
</el-col>
|
||||
<el-col :span="5">
|
||||
<el-input v-model="input" size="mini" :disabled="true" />
|
||||
</el-col>
|
||||
<el-col :span="4" :offset="1">
|
||||
<el-input v-model="input" size="mini" :disabled="true" />
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row style="padding: 5px;">
|
||||
<el-col :span="12" style="height: 28px;line-height: 28px;">
|
||||
<el-radio v-model="atrMode" label="REGULATION_OFF">关闭自动调度</el-radio>
|
||||
</el-col>
|
||||
<el-col :span="2" style="height: 28px;line-height: 28px;">
|
||||
<span>最大</span>
|
||||
</el-col>
|
||||
<el-col :span="5">
|
||||
<el-input v-model="input" size="mini" :disabled="true" />
|
||||
</el-col>
|
||||
<el-col :span="4" :offset="1">
|
||||
<el-input v-model="input" size="mini" :disabled="true" />
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row style="padding: 5px 0">
|
||||
<span style="color:#000;font-size: 16px;font-weight: bold;">选择时间项(人工调度)</span>
|
||||
<hr style="display: inline-block;width: 370px;">
|
||||
</el-row>
|
||||
<el-row style="padding: 5px;">
|
||||
<el-col :span="4">
|
||||
<el-radio v-model="timeTerm" :disabled="atrMode !== 'REGULATION_OFF'" label="stop" @change="termChange">停站时间</el-radio>
|
||||
<el-radio v-model="timeTerm" :disabled="atrMode !== 'REGULATION_OFF'" label="driving" @change="termChange">行驶时间</el-radio>
|
||||
<el-radio v-model="timeTerm" :disabled="atrMode !== 'REGULATION_OFF'" label="run" @change="termChange">不停/停站</el-radio>
|
||||
</el-col>
|
||||
<el-col :span="20">
|
||||
<el-table v-show="timeTerm === 'stop'" ref="table1" :data="tableData1" style="width: 100%" height="80">
|
||||
<el-table-column prop="direction" label="方向" />
|
||||
<el-table-column prop="name" label="站名" />
|
||||
<!--<el-table-column prop="time" label="时间" />-->
|
||||
<el-table-column label="时间" prop="time1">
|
||||
<template slot-scope="scope">
|
||||
<el-input-number v-model="scope.row.time" size="mini" :min="-1" :controls="false" style="width: 100%" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="timeRange" label="推荐时间" />
|
||||
</el-table>
|
||||
<el-table v-show="timeTerm === 'driving'" ref="table2" :data="tableData2" style="width: 100%" height="80">
|
||||
<el-table-column prop="follow" label="从" />
|
||||
<el-table-column prop="to" label="至" />
|
||||
<!--<el-table-column prop="time" label="时间" />-->
|
||||
<el-table-column label="时间" prop="time2">
|
||||
<template slot-scope="scope">
|
||||
<el-input-number v-model="scope.row.time" size="mini" :min="-1" :controls="false" style="width: 100%" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="timeRange" label="推荐时间" />
|
||||
</el-table>
|
||||
<el-table v-show="timeTerm === 'run'" ref="table3" :data="tableData3" style="width: 100%" height="80">
|
||||
<el-table-column prop="direction" label="方向" />
|
||||
<el-table-column prop="name" label="站名" />
|
||||
<el-table-column label="不停" prop="stop">
|
||||
<template slot-scope="scope">
|
||||
<el-checkbox v-model="scope.row.stop" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<el-table v-show="!timeTerm" ref="table4">
|
||||
<el-table-column prop="follow" label="从" />
|
||||
<el-table-column prop="to" label="至" />
|
||||
<el-table-column prop="time" label="时间" />
|
||||
<el-table-column prop="timeRange" label="推荐时间" />
|
||||
</el-table>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<div>
|
||||
<el-button style="width: 100px;height: 28px;margin-right: 103px;">显示列车信息</el-button>
|
||||
<el-button style="width: 100px;height: 28px;" @click="commit">执行</el-button>
|
||||
<el-button style="width: 100px;height: 28px;" @click="reset">重设</el-button>
|
||||
<el-button style="width: 100px;height: 28px;" @click="doClose">关闭</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</template>
|
||||
<script>
|
||||
import { mapGetters } from 'vuex';
|
||||
import CMD from '@/scripts/cmdPlugin/CommandEnum';
|
||||
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
||||
export default {
|
||||
name:'ATRDialog',
|
||||
data() {
|
||||
return {
|
||||
train: 'all',
|
||||
trainCode: '',
|
||||
atrMode: 'REGULATION_OFF',
|
||||
intervalMode: '',
|
||||
trainInterval: '',
|
||||
trainNumber: '',
|
||||
tableData: [],
|
||||
tableData1: [],
|
||||
tableData2: [],
|
||||
tableData3: [],
|
||||
tableData4: [],
|
||||
input: '',
|
||||
timeTerm: 'stop',
|
||||
sortStationList: [],
|
||||
noStopList: [],
|
||||
dialogShow:false
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
show() {
|
||||
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||
},
|
||||
title() {
|
||||
return '时刻表';
|
||||
},
|
||||
...mapGetters('map', [
|
||||
'trainList',
|
||||
'stationList',
|
||||
'stationStandList'
|
||||
])
|
||||
},
|
||||
watch: {
|
||||
train(val) {
|
||||
if (val === 'all') {
|
||||
this.tableData1.forEach(item => {
|
||||
const stand = this.$store.getters['map/getDeviceByCode'](item.code);
|
||||
item.time = stand.parkingTime;
|
||||
});
|
||||
} else if (val === 'one' && this.trainCode) {
|
||||
this.tableData1.forEach(item => {
|
||||
const stand = this.$store.getters['map/getDeviceByCode'](item.code);
|
||||
item.time = stand.parkingTimeMap[this.trainCode];
|
||||
});
|
||||
}
|
||||
},
|
||||
trainCode(val) {
|
||||
if (this.train === 'one') {
|
||||
this.tableData1.forEach(item => {
|
||||
const stand = this.$store.getters['map/getDeviceByCode'](item.code);
|
||||
item.time = ((stand.parkingTimeMap || {})[val]) || stand.parkingTime;
|
||||
});
|
||||
}
|
||||
},
|
||||
atrMode(val) {
|
||||
if (val !== 'REGULATION_OFF') {
|
||||
this.timeTerm = '';
|
||||
}
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
|
||||
},
|
||||
methods: {
|
||||
initData() {
|
||||
this.sortStationList = [...this.stationList];
|
||||
this.sortStationList.sort((station1, station2) => {
|
||||
return station1.sn - station2.sn;
|
||||
});
|
||||
const standMap = {};
|
||||
this.stationStandList.forEach(stand => {
|
||||
if (standMap[stand.stationCode]) {
|
||||
standMap[stand.stationCode].push(stand);
|
||||
} else {
|
||||
standMap[stand.stationCode] = [stand];
|
||||
}
|
||||
});
|
||||
for (let i = 0; i < this.sortStationList.length; i++) {
|
||||
const standList = standMap[this.sortStationList[i].code];
|
||||
if (!standList) {
|
||||
continue;
|
||||
}
|
||||
let rightStand = '';
|
||||
let leftStand = '';
|
||||
standList.forEach(stand => {
|
||||
if (stand.right) {
|
||||
rightStand = this.$store.getters['map/getDeviceByCode'](stand.code);
|
||||
} else {
|
||||
leftStand = this.$store.getters['map/getDeviceByCode'](stand.code);
|
||||
}
|
||||
});
|
||||
this.tableData1.push({ direction: '>', name: this.sortStationList[i].name, time: rightStand.parkingTime, timeRange: '020-060', code: rightStand.code });
|
||||
this.tableData1.push({ direction: '<', name: this.sortStationList[i].name, time: leftStand.parkingTime, timeRange: '020-060', code: leftStand.code });
|
||||
this.tableData3.push({ direction: '>', name: this.sortStationList[i].name, stop: false, code: rightStand.code });
|
||||
this.tableData3.push({ direction: '<', name: this.sortStationList[i].name, stop: false, code: leftStand.code });
|
||||
if (i === this.sortStationList.length - 1) {
|
||||
this.tableData2.push({ follow: '>' + this.sortStationList[i].name, to: '<' + this.sortStationList[i].name, time: 0, timeRange: '060-300', code: rightStand.code });
|
||||
this.tableData2.push({ follow: '<' + this.sortStationList[i].name, to: '<' + this.sortStationList[i - 1].name, time: 0, timeRange: '060-300', code: leftStand.code });
|
||||
} else if ( i === 0 ) {
|
||||
this.tableData2.push({ follow: '<' + this.sortStationList[i].name, to: '>' + this.sortStationList[i].name, time: 0, timeRange: '060-300', code: rightStand.code });
|
||||
this.tableData2.push({ follow: '>' + this.sortStationList[i].name, to: '>' + this.sortStationList[i + 1].name, time: 0, timeRange: '060-300', code: leftStand.code });
|
||||
} else {
|
||||
this.tableData2.push({ follow: '<' + this.sortStationList[i].name, to: '<' + this.sortStationList[i - 1].name, time: 0, timeRange: '060-300', code: rightStand.code });
|
||||
this.tableData2.push({ follow: '>' + this.sortStationList[i].name, to: '>' + this.sortStationList[i + 1].name, time: 0, timeRange: '060-300', code: leftStand.code });
|
||||
}
|
||||
}
|
||||
},
|
||||
doShow() {
|
||||
this.initData();
|
||||
this.dialogShow = true;
|
||||
},
|
||||
doClose() {
|
||||
this.dialogShow = false;
|
||||
},
|
||||
reset() {
|
||||
this.train = '';
|
||||
this.atrMode = '';
|
||||
this.timeTerm = '';
|
||||
},
|
||||
commit() {
|
||||
if (!this.train || (this.train === 'one' && !this.trainCode)) {
|
||||
this.$message.error('请选择列车!');
|
||||
return;
|
||||
} else if (!this.atrMode) {
|
||||
this.$message.error('请选择调度模式!');
|
||||
return;
|
||||
} else if (!this.timeTerm) {
|
||||
this.$message.error('请选择时间项!');
|
||||
return;
|
||||
}
|
||||
const param = {
|
||||
groupNumber: this.train === 'one' ? this.trainCode : '',
|
||||
parkingAlwaysValid: true,
|
||||
regulationParam: null,
|
||||
regulation: this.atrMode
|
||||
};
|
||||
if (this.atrMode === 'REGULATION_OFF') {
|
||||
if (this.timeTerm === 'stop') {
|
||||
const standParkingTime = {};
|
||||
this.tableData1.forEach(item => {
|
||||
standParkingTime[item.code] = item.time;
|
||||
});
|
||||
param.regulationParam = {
|
||||
parkTimeMap: standParkingTime,
|
||||
runTimeMap: null,
|
||||
skipMap: null
|
||||
};
|
||||
} else if (this.timeTerm === 'driving') {
|
||||
const runTimeMap = {};
|
||||
this.tableData2.forEach(item => {
|
||||
runTimeMap[item.code] = item.time;
|
||||
});
|
||||
param.regulationParam = {
|
||||
parkTimeMap: null,
|
||||
runTimeMap: runTimeMap,
|
||||
skipMap: null
|
||||
};
|
||||
} else if (this.timeTerm === 'run') {
|
||||
const skipMap = {};
|
||||
this.tableData3.forEach(item => {
|
||||
skipMap[item.code] = item.stop;
|
||||
});
|
||||
param.regulationParam = {
|
||||
parkTimeMap: null,
|
||||
runTimeMap: null,
|
||||
skipMap: skipMap
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
const step = {
|
||||
cmdType: CMD.Train.CMD_TRAIN_REGULATION,
|
||||
operate: OperationEvent.StationStand.setStopTime.confirm,
|
||||
param: param,
|
||||
over:true
|
||||
};
|
||||
|
||||
this.$store.dispatch('training/nextNew', step).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.dialogShow = false;
|
||||
}
|
||||
}).catch((error) => {
|
||||
console.error(error);
|
||||
if (error && error.code == '10017') {
|
||||
this.$message.error(error.message);
|
||||
} else {
|
||||
this.$message.error('命令执行失败');
|
||||
}
|
||||
});
|
||||
},
|
||||
termChange(val) {
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.actualTimetable{padding:0px 15px;}
|
||||
.actualTimetableT{width:100%;position: relative;}
|
||||
.defaultTimetableT{width:100%;position: relative;overflow:hidden;}
|
||||
.actualTimetableTtext,.defaultTimetableTtext{position:absolute;height: 20px;padding-right:5px;font-size:15px;color: #676767;background:#e2e2e2;font-weight: bold;}
|
||||
.actualTimetableTLine,.defaultTimetableTLine{display:inline-block;margin-left:10px;width:100%;border-bottom: 1px #A0A0A0 solid;vertical-align: top;height: 9px;}
|
||||
.actualTimetableForm{}
|
||||
.actualTimeFormEach{margin-top: 10px;}
|
||||
.actualTimeFormEach span{font-size:15px;color: #151515;}
|
||||
.actualTimeFormValue{
|
||||
font-size:15px;
|
||||
color: #151515;
|
||||
display: inline-block;
|
||||
padding: 5px 10px;
|
||||
border: 1px #A2A2A2 solid;
|
||||
width: 810px;
|
||||
}
|
||||
.defaultTimetable{
|
||||
padding:15px 15px 0px 15px;
|
||||
}
|
||||
// .defaultTimetab{
|
||||
// padding: 10px 15px 10px 15px;
|
||||
// }
|
||||
.defaultTimetableM{margin-top:10px;}
|
||||
.defaultTimetableB{display:inline-block;width:100%;margin-top: 10px;}
|
||||
#defaultClearSele{margin-right:10px;width:90px;}
|
||||
#defaultClearAll{width:90px;}
|
||||
#defaultShowTime{float:right;width:90px;}
|
||||
.defaultTimetableBtn{
|
||||
background:transparent;
|
||||
border:1px#9C9C9C solid ;
|
||||
height:auto ;
|
||||
outline:none;
|
||||
text-align:center;
|
||||
display: inline-block;
|
||||
padding:4px 0px;
|
||||
color:#090909;
|
||||
cursor: pointer;
|
||||
}
|
||||
.defaultTimetableBtn.disabled{border:1px #A9A9A9 solid ;color: #A7A7A7; cursor: no-drop;}
|
||||
.ttlButtonGroup{
|
||||
border-top: 1px #6d6d6d solid;
|
||||
margin-top: 10px;
|
||||
padding: 10px 15px;
|
||||
}
|
||||
#changeActual{margin-right:10px;width:120px}
|
||||
#changeDefault{width:120px;margin-right:175px;}
|
||||
#settingTimetable{width:130px;margin-right:10px;}
|
||||
#resetTimetable{width:130px;margin-right:10px;}
|
||||
#closeTimetable{width:130px;}
|
||||
</style>
|
||||
<style lang="scss">
|
||||
.ttl.haerbin-01__systerm .el-dialog .el-dialog__body{
|
||||
background: #E2E2E2;
|
||||
padding:20px 0px 10px 0px;
|
||||
}
|
||||
.defaultTimetab.el-table .cell{
|
||||
padding-top:5px;padding-bottom:5px;
|
||||
}
|
||||
</style>
|
@ -45,7 +45,7 @@
|
||||
<div class="div-simulate-button" style="width: 40px;">运图</div>
|
||||
<div class="div-simulate-button" style="width: 55px;" @click="handleDialogShow('ttlDialog')">时刻表</div>
|
||||
<div class="div-simulate-button" style="width: 40px;">编表</div>
|
||||
<div class="div-simulate-button" style="width: 40px;">调度</div>
|
||||
<div class="div-simulate-button" style="width: 40px;" @click="handleDialogShow('atrDialog')">调度</div>
|
||||
<div class="div-simulate-button" style="width: 40px;">站控</div>
|
||||
<div class="div-simulate-button" style="width: 40px;">计划</div>
|
||||
</div>
|
||||
|
@ -16,6 +16,7 @@
|
||||
<tra-dialog ref="traDialog" />
|
||||
<ttl-dialog ref="ttlDialog" />
|
||||
<tmt-dialog ref="tmtDialog" />
|
||||
<atr-dialog ref="atrDialog" />
|
||||
<set-time ref="setTime" @ConfirmSelectBeginTime="start" />
|
||||
</div>
|
||||
</template>
|
||||
@ -40,6 +41,7 @@ import TroDetail from './troDetail';
|
||||
import TraDialog from './tra';
|
||||
import TtlDialog from './ttl';
|
||||
import TmtDialog from './tmt';
|
||||
import AtrDialog from './atr';
|
||||
import parseStatus from '@/utils/parseStatus';
|
||||
|
||||
export default {
|
||||
@ -53,7 +55,8 @@ export default {
|
||||
TroDetail,
|
||||
TraDialog,
|
||||
TtlDialog,
|
||||
TmtDialog
|
||||
TmtDialog,
|
||||
AtrDialog
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
|
@ -60,11 +60,21 @@
|
||||
@click="hover('endSignalCode')"
|
||||
>{{ $t('map.activate') }}</el-button>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('map.greenOpen') + ':'" prop="greenOpen">
|
||||
<!-- <el-form-item :label="$t('map.greenOpen') + ':'" prop="greenOpen">
|
||||
<el-radio-group v-model="addModel.greenOpen">
|
||||
<el-radio :label="true">{{ $t('map.are') }}</el-radio>
|
||||
<el-radio :label="false">{{ $t('map.deny') }}</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item> -->
|
||||
<el-form-item :label="$t('map.signalColor') + ':'" prop="aspect">
|
||||
<el-select v-model="addModel.aspect">
|
||||
<el-option
|
||||
v-for="item in aspectList"
|
||||
:key="item.code"
|
||||
:label="item.name"
|
||||
:value="item.code"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('map.physicalSection') +':'" prop="routeSectionList">
|
||||
<el-select v-model="addModel.routeSectionList" multiple filterable> <!-- 111 -->
|
||||
@ -223,6 +233,11 @@ export default {
|
||||
{ name: '定位', code: true },
|
||||
{ name: '反位', code: false }
|
||||
],
|
||||
aspectList:[
|
||||
{ name: '绿', code: 'G' },
|
||||
{ name: '黄', code: 'Y' },
|
||||
{ name: '月白', code: ' W' }
|
||||
],
|
||||
addModel: {
|
||||
mapId: '',
|
||||
code: '',
|
||||
@ -235,7 +250,8 @@ export default {
|
||||
turnBack: false, // 是否折返进路
|
||||
startSignalCode: '', // 始端信号机
|
||||
endSignalCode: '', // 终端信号机
|
||||
greenOpen: true, // 是否开放绿灯
|
||||
// greenOpen: true, // 是否开放绿灯
|
||||
aspect:'',
|
||||
routeSectionList: [], // 进路物理区段
|
||||
routeSwitchList: [], // 进路道岔列表
|
||||
routeFlankProtectionList: [], // 进路侧防道岔列表
|
||||
|
@ -0,0 +1,236 @@
|
||||
<template>
|
||||
<div v-loading="loading" class="view-control-content">
|
||||
<el-scrollbar wrap-class="scrollbar-wrapper">
|
||||
<el-card class="box-card" shadow="never" style="width: 80%; margin: 0 auto 15px; border-top: none;">
|
||||
<div slot="header">
|
||||
<span>请选择车辆段显示设备</span>
|
||||
</div>
|
||||
<div style="padding: 10px;font-size: 14px;">
|
||||
<div class="content-box-list" style="margin-top: 10px;">
|
||||
<div class="title-box">设备列表</div>
|
||||
<div class="list-box" style="height:400px;overflow:auto">
|
||||
<div v-for="nor in addModel.elementList" :key="nor.code" class="list-content">
|
||||
<div class="name">{{ getDeviceName(nor) }}</div>
|
||||
<div class="close" @click="delList(nor, addModel.elementList)"><i class="el-icon-close" /></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</el-card>
|
||||
<div style="display: table; margin-left: 150px; margin-top: 12px; margin-bottom: 20px;">
|
||||
<el-button type="primary" size="small" @click="generateData">自动生成</el-button>
|
||||
<el-button type="primary" size="small" :loading="dataLoading" @click="save">保存</el-button>
|
||||
<el-button type="primary" size="small" @click="back">返回</el-button>
|
||||
</div>
|
||||
</el-scrollbar>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapGetters } from 'vuex';
|
||||
import { saveMap } from '@/api/jmap/mapdraft';
|
||||
|
||||
export default {
|
||||
components: {
|
||||
},
|
||||
props: {
|
||||
selected: {
|
||||
type: Object,
|
||||
default: function () {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
otherData: [],
|
||||
addModel: {
|
||||
type: 'DEPOT_IL',
|
||||
elementList: []
|
||||
},
|
||||
loading: false,
|
||||
dataLoading:false
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapGetters('map', [
|
||||
'sectionList',
|
||||
'stationList',
|
||||
'signalList',
|
||||
'switchList',
|
||||
'stationStandList',
|
||||
'automaticRouteButtonList',
|
||||
'axleCounterResetButtonList',
|
||||
'cycleButtonList',
|
||||
'directionRodList',
|
||||
'indicatorLightList',
|
||||
'lineList',
|
||||
'outerFrameList',
|
||||
'psdList',
|
||||
'responderList',
|
||||
'tbStrategyList',
|
||||
'tempSpeedLimitList',
|
||||
'textList',
|
||||
'totalGuideLockButtonVOList',
|
||||
'seclectDeviceList'
|
||||
])
|
||||
},
|
||||
watch: {
|
||||
selected: function (val, oldVal) {
|
||||
this.deviceSelect(val);
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.initData();
|
||||
},
|
||||
methods: {
|
||||
initData() {
|
||||
this.$store.state.map.map.displayList.forEach(item => {
|
||||
if (item.type === 'DEPOT_IL') {
|
||||
this.addModel = item;
|
||||
} else {
|
||||
this.otherData.push(item);
|
||||
}
|
||||
});
|
||||
},
|
||||
deviceSelect(selected) {
|
||||
if (selected && selected._type.toUpperCase() == 'CheckBox'.toUpperCase()) {
|
||||
this.seclectDeviceList.forEach(item => {
|
||||
if (this.addModel.elementList.indexOf(item.code) < 0) {
|
||||
this.addModel.elementList.push(item.code);
|
||||
}
|
||||
});
|
||||
} else if (selected) {
|
||||
if (this.addModel.elementList.indexOf(selected.code) < 0) {
|
||||
this.addModel.elementList.push(selected.code);
|
||||
}
|
||||
}
|
||||
},
|
||||
getDeviceName(code) {
|
||||
const device = this.$store.getters['map/getDeviceByCode'](code);
|
||||
return device.name || device.code;
|
||||
},
|
||||
// 删除当前选中
|
||||
delList(model, list) {
|
||||
list.forEach((nor, index) => {
|
||||
if (nor == model) {
|
||||
list.splice(index, 1);
|
||||
}
|
||||
});
|
||||
this.seclectDeviceList.forEach((item, index) => {
|
||||
if (item.code == model) {
|
||||
this.seclectDeviceList.splice(index, 1);
|
||||
}
|
||||
});
|
||||
},
|
||||
save() {
|
||||
const map = this.$store.state.map.map;
|
||||
const param = {
|
||||
displayList: [...this.otherData, this.addModel],
|
||||
mapId: this.$route.params.mapId
|
||||
};
|
||||
this.dataLoading = true;
|
||||
saveMap(Object.assign(map, param)).then(response => {
|
||||
this.$message.success('保存车辆段配置成功');
|
||||
this.dataLoading = false;
|
||||
}).catch(() => {
|
||||
this.dataLoading = false;
|
||||
this.$messageBox('保存车辆段配置失败');
|
||||
});
|
||||
},
|
||||
back() {
|
||||
this.$emit('goDraw');
|
||||
},
|
||||
generateOverlab() { // 生成
|
||||
if (!this.addModel.stationCodeList.length) {
|
||||
this.$messageBox('请选择车站!');
|
||||
return;
|
||||
}
|
||||
if (!this.addModel.switchStationCodeList.length) {
|
||||
this.$messageBox('请选择可切换显示的车站!');
|
||||
return;
|
||||
}
|
||||
this.tableData.push(this.addModel);
|
||||
this.clearData();
|
||||
},
|
||||
clear() {
|
||||
this.addModel = { stationCodeList: [], elementList: [], switchStationCodeList:[] };
|
||||
},
|
||||
clearData() {
|
||||
this.addModel = { stationCodeList: [], elementList: [], switchStationCodeList:[] };
|
||||
this.index = '';
|
||||
},
|
||||
generateData() {
|
||||
this.loading = true;
|
||||
this.tableData = [];
|
||||
const station = this.stationList.find(item => item.depot);
|
||||
console.log(station, station.code);
|
||||
[...this.sectionList, ...this.signalList, ...this.stationStandList, ...this.switchList, ...this.automaticRouteButtonList,
|
||||
...this.axleCounterResetButtonList, ...this.cycleButtonList, ...this.indicatorLightList, ...this.lineList, ...this.outerFrameList,
|
||||
...this.responderList, ...this.tbStrategyList, ...this.tempSpeedLimitList, ...this.textList, ...this.totalGuideLockButtonVOList].forEach(item => {
|
||||
if (item.stationCode === station.code) {
|
||||
this.addModel.elementList.push(item.code);
|
||||
}
|
||||
});
|
||||
[...this.directionRodList].forEach(item => {
|
||||
if (item.deviceStationCode === station.code) {
|
||||
this.addModel.elementList.push(item.code);
|
||||
}
|
||||
});
|
||||
this.psdList.forEach(item => {
|
||||
const stand = this.$store.getters['map/getDeviceByCode'](item.standCode);
|
||||
if (stand.stationCode === station.code) {
|
||||
this.addModel.elementList.push(item.code);
|
||||
}
|
||||
});
|
||||
const map = this.$store.state.map.map;
|
||||
const param = {
|
||||
displayList: [...this.otherData, this.addModel],
|
||||
mapId: this.$route.params.mapId
|
||||
};
|
||||
saveMap(Object.assign(map, param)).then(response => {
|
||||
this.loading = false;
|
||||
this.$message.success('保存车辆段配置成功');
|
||||
}).catch(() => {
|
||||
this.loading = false;
|
||||
this.$messageBox('保存车辆段配置失败');
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style rel="stylesheet/scss" lang="scss" scoped>
|
||||
.title-box{
|
||||
padding-left: 10px;
|
||||
border-left: 4px solid red;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.list-box{
|
||||
overflow: hidden;
|
||||
.list-content{
|
||||
float: left;
|
||||
background: #e2e2e2;
|
||||
margin: 5px;
|
||||
border-radius: 5px;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
padding-left: 10px;
|
||||
padding-right: 3px;
|
||||
cursor: pointer;
|
||||
|
||||
&:hover{
|
||||
background: #ccc;
|
||||
}
|
||||
.name{
|
||||
float: left;
|
||||
margin-right: 20px;
|
||||
}
|
||||
.close{
|
||||
float: left;
|
||||
width: 23px;
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
@ -0,0 +1,220 @@
|
||||
<template>
|
||||
<div v-loading="loading" class="view-control-content">
|
||||
<el-scrollbar wrap-class="scrollbar-wrapper">
|
||||
<el-card class="box-card" shadow="never" style="width: 80%; margin: 0 auto 15px; border-top: none;">
|
||||
<div slot="header">
|
||||
<span>请选择行调显示设备</span>
|
||||
</div>
|
||||
<div style="padding: 10px;font-size: 14px;">
|
||||
<div class="content-box-list" style="margin-top: 10px;">
|
||||
<div class="title-box">设备列表</div>
|
||||
<div class="list-box" style="height:400px;overflow:auto">
|
||||
<div v-for="nor in addModel.elementList" :key="nor.code" class="list-content">
|
||||
<div class="name">{{ getDeviceName(nor) }}</div>
|
||||
<div class="close" @click="delList(nor, addModel.elementList)"><i class="el-icon-close" /></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</el-card>
|
||||
<div style="display: table; margin-left: 150px; margin-top: 12px; margin-bottom: 20px;">
|
||||
<el-button type="primary" size="small" @click="generateData">自动生成</el-button>
|
||||
<el-button type="primary" size="small" :loading="dataLoading" @click="save">保存</el-button>
|
||||
<el-button type="primary" size="small" @click="back">返回</el-button>
|
||||
</div>
|
||||
</el-scrollbar>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapGetters } from 'vuex';
|
||||
import { saveMap } from '@/api/jmap/mapdraft';
|
||||
|
||||
export default {
|
||||
components: {
|
||||
},
|
||||
props: {
|
||||
selected: {
|
||||
type: Object,
|
||||
default: function () {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
otherData: [],
|
||||
addModel: {
|
||||
type: 'CENTER',
|
||||
elementList: []
|
||||
},
|
||||
loading: false,
|
||||
dataLoading:false
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapGetters('map', [
|
||||
'sectionList',
|
||||
'stationList',
|
||||
'signalList',
|
||||
'switchList',
|
||||
'stationStandList',
|
||||
'automaticRouteButtonList',
|
||||
'axleCounterResetButtonList',
|
||||
'cycleButtonList',
|
||||
'directionRodList',
|
||||
'indicatorLightList',
|
||||
'lineList',
|
||||
'outerFrameList',
|
||||
'psdList',
|
||||
'responderList',
|
||||
'tbStrategyList',
|
||||
'tempSpeedLimitList',
|
||||
'textList',
|
||||
'totalGuideLockButtonVOList',
|
||||
'seclectDeviceList'
|
||||
])
|
||||
},
|
||||
watch: {
|
||||
selected: function (val, oldVal) {
|
||||
this.deviceSelect(val);
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.initData();
|
||||
},
|
||||
methods: {
|
||||
initData() {
|
||||
this.$store.state.map.map.displayList.forEach(item => {
|
||||
if (item.type === 'CENTER') {
|
||||
this.addModel = item;
|
||||
} else {
|
||||
this.otherData.push(item);
|
||||
}
|
||||
});
|
||||
},
|
||||
deviceSelect(selected) {
|
||||
if (selected && selected._type.toUpperCase() == 'CheckBox'.toUpperCase()) {
|
||||
this.seclectDeviceList.forEach(item => {
|
||||
if (this.addModel.elementList.indexOf(item.code) < 0) {
|
||||
this.addModel.elementList.push(item.code);
|
||||
}
|
||||
});
|
||||
} else if (selected) {
|
||||
if (this.addModel.elementList.indexOf(selected.code) < 0) {
|
||||
this.addModel.elementList.push(selected.code);
|
||||
}
|
||||
}
|
||||
},
|
||||
getDeviceName(code) {
|
||||
const device = this.$store.getters['map/getDeviceByCode'](code);
|
||||
return device.name || device.code;
|
||||
},
|
||||
// 删除当前选中
|
||||
delList(model, list) {
|
||||
list.forEach((nor, index) => {
|
||||
if (nor == model) {
|
||||
list.splice(index, 1);
|
||||
}
|
||||
});
|
||||
this.seclectDeviceList.forEach((item, index) => {
|
||||
if (item.code == model) {
|
||||
this.seclectDeviceList.splice(index, 1);
|
||||
}
|
||||
});
|
||||
},
|
||||
save() {
|
||||
const map = this.$store.state.map.map;
|
||||
const param = {
|
||||
displayList: [...this.otherData, this.addModel],
|
||||
mapId: this.$route.params.mapId
|
||||
};
|
||||
this.dataLoading = true;
|
||||
saveMap(Object.assign(map, param)).then(response => {
|
||||
this.$message.success('保存行调配置成功');
|
||||
this.dataLoading = false;
|
||||
}).catch(() => {
|
||||
this.dataLoading = false;
|
||||
this.$messageBox('保存行调配置失败');
|
||||
});
|
||||
},
|
||||
back() {
|
||||
this.$emit('goDraw');
|
||||
},
|
||||
clear() {
|
||||
this.addModel = {elementList: []};
|
||||
},
|
||||
generateData() {
|
||||
this.loading = true;
|
||||
this.tableData = [];
|
||||
const station = this.stationList.find(item => item.depot);
|
||||
|
||||
[...this.sectionList, ...this.signalList, ...this.stationStandList, ...this.switchList, ...this.automaticRouteButtonList,
|
||||
...this.axleCounterResetButtonList, ...this.cycleButtonList, ...this.indicatorLightList, ...this.lineList, ...this.outerFrameList,
|
||||
...this.responderList, ...this.tbStrategyList, ...this.tempSpeedLimitList, ...this.textList, ...this.totalGuideLockButtonVOList].forEach(item => {
|
||||
if (item.stationCode !== station.code) {
|
||||
this.addModel.elementList.push(item.code);
|
||||
}
|
||||
});
|
||||
[...this.directionRodList].forEach(item => {
|
||||
if (item.deviceStationCode !== station.code) {
|
||||
this.addModel.elementList.push(item.code);
|
||||
}
|
||||
});
|
||||
this.psdList.forEach(item => {
|
||||
const stand = this.$store.getters['map/getDeviceByCode'](item.standCode);
|
||||
if (stand.stationCode !== station.code) {
|
||||
this.addModel.elementList.push(item.code);
|
||||
}
|
||||
});
|
||||
const map = this.$store.state.map.map;
|
||||
const param = {
|
||||
displayList: [...this.otherData, this.addModel],
|
||||
mapId: this.$route.params.mapId
|
||||
};
|
||||
saveMap(Object.assign(map, param)).then(response => {
|
||||
this.loading = false;
|
||||
this.$message.success('保存行调配置成功');
|
||||
}).catch(() => {
|
||||
this.loading = false;
|
||||
this.$messageBox('保存行调配置失败');
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style rel="stylesheet/scss" lang="scss" scoped>
|
||||
.title-box{
|
||||
padding-left: 10px;
|
||||
border-left: 4px solid red;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.list-box{
|
||||
overflow: hidden;
|
||||
.list-content{
|
||||
float: left;
|
||||
background: #e2e2e2;
|
||||
margin: 5px;
|
||||
border-radius: 5px;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
padding-left: 10px;
|
||||
padding-right: 3px;
|
||||
cursor: pointer;
|
||||
|
||||
&:hover{
|
||||
background: #ccc;
|
||||
}
|
||||
.name{
|
||||
float: left;
|
||||
margin-right: 20px;
|
||||
}
|
||||
.close{
|
||||
float: left;
|
||||
width: 23px;
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
@ -91,7 +91,9 @@ export default {
|
||||
data() {
|
||||
return {
|
||||
tableData: [],
|
||||
otherData: [],
|
||||
addModel: {
|
||||
type: 'LOCAL',
|
||||
stationCodeList: [],
|
||||
switchStationCodeList:[],
|
||||
elementList: []
|
||||
@ -125,7 +127,6 @@ export default {
|
||||
'tempSpeedLimitList',
|
||||
'textList',
|
||||
'totalGuideLockButtonVOList',
|
||||
'localStationConfig',
|
||||
'seclectDeviceList'
|
||||
]),
|
||||
cardTitle() {
|
||||
@ -158,7 +159,14 @@ export default {
|
||||
// }
|
||||
// },
|
||||
initData() {
|
||||
this.tableData = this.$store.state.map.map.displayList || [];
|
||||
// this.tableData = (this.$store.state.map.map.displayList || []).filter(item => item.type === 'LOCAL');
|
||||
this.$store.state.map.map.displayList.forEach( item => {
|
||||
if (item.type === 'LOCAL') {
|
||||
this.tableData.push(item);
|
||||
} else {
|
||||
this.otherData.push(item);
|
||||
}
|
||||
});
|
||||
},
|
||||
deviceSelect(selected) {
|
||||
if (selected && selected._type.toUpperCase() == 'CheckBox'.toUpperCase()) {
|
||||
@ -222,7 +230,7 @@ export default {
|
||||
save() {
|
||||
const map = this.$store.state.map.map;
|
||||
const param = {
|
||||
displayList: this.tableData,
|
||||
displayList: [...this.tableData, ...this.otherData],
|
||||
mapId: this.$route.params.mapId
|
||||
};
|
||||
this.dataLoading = true;
|
||||
@ -285,7 +293,7 @@ export default {
|
||||
});
|
||||
const map = this.$store.state.map.map;
|
||||
const param = {
|
||||
displayList: this.tableData,
|
||||
displayList: [...this.tableData, ...this.otherData],
|
||||
mapId: this.$route.params.mapId
|
||||
};
|
||||
saveMap(Object.assign(map, param)).then(response => {
|
@ -13,8 +13,10 @@
|
||||
<el-dropdown class="operate-button" trigger="click">
|
||||
<span class="el-dropdown-link">配置</span>
|
||||
<el-dropdown-menu slot="dropdown">
|
||||
<el-dropdown-item><span @click="showDispatchConfig">行调配置</span></el-dropdown-item>
|
||||
<el-dropdown-item><span @click="showLocalConfig">现地配置</span></el-dropdown-item>
|
||||
<el-dropdown-item><span @click="showScreenConfig">大屏配置</span></el-dropdown-item>
|
||||
<el-dropdown-item><span @click="showDepotConfig">车辆段配置</span></el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
</el-dropdown>
|
||||
<el-dropdown class="operate-button" trigger="click">
|
||||
@ -38,16 +40,10 @@
|
||||
/>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
<template v-if="configShow === 'local'">
|
||||
<local-config ref="localConfig" :selected="selected" @goDraw="goDraw" />
|
||||
</template>
|
||||
<template v-show="configShow === 'screen'">
|
||||
<split-screen
|
||||
ref="splitScreen"
|
||||
:selected="selected"
|
||||
@goDraw="goDraw"
|
||||
/>
|
||||
</template>
|
||||
<local-config v-if="configShow === 'local'" ref="localConfig" :selected="selected" @goDraw="goDraw" />
|
||||
<split-screen v-else-if="configShow === 'screen'" ref="splitScreen" :selected="selected" @goDraw="goDraw" />
|
||||
<dispatch-config v-else-if="configShow === 'dispatch'" ref="dispatchConfig" :selected="selected" @goDraw="goDraw" />
|
||||
<depot-config v-else-if="configShow === 'depot'" ref="dispatchConfig" :selected="selected" @goDraw="goDraw" />
|
||||
</div>
|
||||
</transition>
|
||||
</template>
|
||||
@ -75,11 +71,13 @@ import ResponderDraft from './responder/index';
|
||||
import ControlLamp from './controlLamp';
|
||||
import SplitStation from './splitStation';
|
||||
import Arrow from './arrow';
|
||||
import SplitScreen from './splitScreen';
|
||||
import SplitScreen from './displayConfig/splitScreen';
|
||||
import FloodGate from './floodGate';
|
||||
import DirectionRod from './directionRod';
|
||||
import SignalButton from './signalButton';
|
||||
import LocalConfig from './localConfig';
|
||||
import LocalConfig from './displayConfig/localConfig';
|
||||
import DispatchConfig from './displayConfig/dispatchConfig';
|
||||
import DepotConfig from './displayConfig/depotConfig';
|
||||
|
||||
export default {
|
||||
name: 'MapOperate',
|
||||
@ -111,7 +109,9 @@ export default {
|
||||
FloodGate,
|
||||
DirectionRod,
|
||||
SignalButton,
|
||||
LocalConfig
|
||||
LocalConfig,
|
||||
DispatchConfig,
|
||||
DepotConfig
|
||||
},
|
||||
props: {
|
||||
selected: {
|
||||
@ -188,12 +188,18 @@ export default {
|
||||
dataRelation() {
|
||||
this.$emit('selectView', 'path');
|
||||
},
|
||||
showDispatchConfig() {
|
||||
this.configShow = 'dispatch';
|
||||
},
|
||||
showLocalConfig() {
|
||||
this.configShow = 'local';
|
||||
},
|
||||
showScreenConfig() {
|
||||
this.configShow = 'screen';
|
||||
},
|
||||
showDepotConfig() {
|
||||
this.configShow = 'depot';
|
||||
},
|
||||
goDraw() {
|
||||
this.configShow = 'none';
|
||||
},
|
||||
|
@ -61,6 +61,7 @@ class Model {
|
||||
this.code = '';
|
||||
this.name = '';
|
||||
this.type = 'PROTECTION';
|
||||
this.signalModel = 'R';
|
||||
this.uniqueName = '';
|
||||
this.nameShow = true;
|
||||
this.lampPostType = '01'; // 灯柱类型
|
||||
@ -85,6 +86,7 @@ class Model {
|
||||
this.callOn = true;
|
||||
this.turnBack = false;
|
||||
this.ctc = true; // 是否灭灯显示
|
||||
this.ctcSetOverlap = true; // CTC级别是否办理延续保护
|
||||
this.noOverlap = false; // 是否无延续保护
|
||||
this.routeEnd = false; // 是否进路终端
|
||||
this.noRoute = false; // 是否不生成进路
|
||||
|
@ -30,7 +30,17 @@
|
||||
@click="hover('getSectionStart')"
|
||||
>{{ $t('map.activate') }}</el-button>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="createModel.type == '03' || createModel.type == '01'" label="距离长度:" prop="length">
|
||||
<el-form-item v-if="createModel.type == '05'" label="右关联区段" prop="rightSectionCode">
|
||||
<el-select v-model="createModel.rightSectionCode" filterable>
|
||||
<el-option v-for="item in switchAndPhySicalSectionList" :key="item.code" :label="item.name" :value="item.code" />
|
||||
</el-select>
|
||||
<el-button
|
||||
:type="field == 'getSectionEnd' ? 'danger' : 'primary'"
|
||||
size="small"
|
||||
@click="hover('getSectionEnd')"
|
||||
>{{ $t('map.activate') }}</el-button>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="createModel.type == '03' || createModel.type == '01'|| createModel.type == '05'" label="距离长度:" prop="length">
|
||||
<el-input-number v-model="createModel.length" :min="0" />
|
||||
</el-form-item>
|
||||
<el-form-item v-if="createModel.type == '02' || createModel.type == '04'" label="起始区段:" prop="leftSectionCode">
|
||||
@ -146,15 +156,21 @@ export default {
|
||||
{
|
||||
value: '01',
|
||||
label: this.$t('map.coordinateMode')
|
||||
}, {
|
||||
},
|
||||
{
|
||||
value: '05',
|
||||
label: '向左延伸方式'
|
||||
},
|
||||
{
|
||||
value: '03',
|
||||
label: this.$t('map.frontSectionMode')
|
||||
label: '向右延伸方式'
|
||||
// this.$t('map.frontSectionMode')
|
||||
}, {
|
||||
value: '02',
|
||||
label: this.$t('map.sectionAssociationMode')
|
||||
}, {
|
||||
value: '04',
|
||||
label: '批量创建'
|
||||
label: '批量创建(向右)'
|
||||
}
|
||||
]
|
||||
};
|
||||
@ -233,7 +249,24 @@ export default {
|
||||
this.createModel.modelList = [];
|
||||
}
|
||||
},
|
||||
extendCreate(model) { // 延伸创建
|
||||
extendCreate(model, type) { // 延伸创建
|
||||
const models = [];
|
||||
let section;
|
||||
switch (type) {
|
||||
case 'left': {
|
||||
const startModel = this.$store.getters['map/getDeviceByCode'](this.createModel.rightSectionCode);
|
||||
const start_x = startModel.points[0].x;
|
||||
const start_y = startModel.points[0].y;
|
||||
model.points = [
|
||||
{ x: start_x - this.createModel.length, y: start_y },
|
||||
{ x: start_x, y: start_y }
|
||||
];
|
||||
model.rightSectionCode = this.createModel.rightSectionCode;
|
||||
section = this.getSectionByCode(this.createModel.rightSectionCode);
|
||||
section.leftSectionCode = model.code;
|
||||
break;
|
||||
}
|
||||
case 'right': {
|
||||
const startModel = this.$store.getters['map/getDeviceByCode'](this.createModel.leftSectionCode);
|
||||
const start_x = startModel.points[startModel.points.length - 1].x;
|
||||
const start_y = startModel.points[startModel.points.length - 1].y;
|
||||
@ -241,12 +274,14 @@ export default {
|
||||
{ x: start_x, y: start_y },
|
||||
{ x: start_x + this.createModel.length, y: start_y }
|
||||
];
|
||||
const models = [];
|
||||
model.leftSectionCode = this.createModel.leftSectionCode;
|
||||
const leftSection = this.getSectionByCode(this.createModel.leftSectionCode);
|
||||
leftSection.rightSectionCode = model.code;
|
||||
section = this.getSectionByCode(this.createModel.leftSectionCode);
|
||||
section.rightSectionCode = model.code;
|
||||
break;
|
||||
}
|
||||
}
|
||||
models.push(model);
|
||||
models.push(leftSection);
|
||||
models.push(section);
|
||||
this.$emit('updateMapModel', models);
|
||||
},
|
||||
associatedCreate(model) { // 区段关联方式
|
||||
@ -305,7 +340,9 @@ export default {
|
||||
} else if (this.createModel.type === '02') {
|
||||
this.associatedCreate(model);
|
||||
} else if (this.createModel.type === '03') {
|
||||
this.createModel.leftSectionCode && this.extendCreate(model);
|
||||
this.createModel.leftSectionCode && this.extendCreate(model, 'right');
|
||||
} else if (this.createModel.type === '05') {
|
||||
this.createModel.rightSectionCode && this.extendCreate(model, 'left');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -68,6 +68,11 @@ export default {
|
||||
{ code: 'ARRIVAL', name: '进站信号机' },
|
||||
{ code: 'EXIT', name: '出站信号机' }
|
||||
],
|
||||
signalModelList:[
|
||||
{ code: 'RGY', name: '红绿黄三灯信号机'},
|
||||
{ code: 'R', name: '单红灯信号机'},
|
||||
{ code: 'BW', name: '蓝白调车信号机'}
|
||||
],
|
||||
field:'',
|
||||
editModel: getModel('Signal'),
|
||||
centralizedStationList: [], // 设备集中站列表
|
||||
@ -115,6 +120,7 @@ export default {
|
||||
{ prop: 'code', label: this.$t('map.signalCodeColon'), type: 'select', optionLabel: 'name&&code', optionValue: 'code', options: this.signalList, deviceChange: this.deviceChange },
|
||||
{ prop: 'name', label: this.$t('map.signalNameColon'), type: 'input' },
|
||||
{ prop: 'type', label: '信号机类型:', type: 'select', optionLabel: 'name', optionValue: 'code', options: this.signalTypeList},
|
||||
{ prop: 'signalModel', label: '信号机型号:', type: 'select', optionLabel: 'name', optionValue: 'code', options: this.signalModelList},
|
||||
{ prop: 'position', label: '信号机坐标:', type: 'coordinate', width: '140px', children: [
|
||||
{ prop: 'position.x', firstLevel: 'position', secondLevel: 'x', label: 'x:', type: 'number', labelWidth: '25px' },
|
||||
{ prop: 'position.y', firstLevel: 'position', secondLevel: 'y', label: 'y:', type: 'number', labelWidth: '25px' }
|
||||
@ -144,11 +150,11 @@ export default {
|
||||
{ prop: 'callOn', label: '是否引导信号:', type: 'checkbox'},
|
||||
{ prop: 'turnBack', label: '是否自动折返始端:', type: 'checkbox', isHidden: this.editModel.virtual},
|
||||
{ prop: 'ctc', label: '是否灭灯显示(CTC级)', type: 'checkbox'},
|
||||
{ prop: 'ctcSetOverlap', label: 'CTC级别是否办理延续保护', type: 'checkbox' },
|
||||
{ prop: 'noOverlap', label: '是否无延续保护', type: 'checkbox'},
|
||||
{ prop: 'routeEnd', label: '是否进路终端', type: 'checkbox'},
|
||||
{ prop: 'ignoreRouteEnd', label: '不生成进路的信号机终端', type: 'multiSelectHover', optionLabel: 'name&&code', optionValue: 'code', options: this.signalList, hover: this.hover, buttonType: 'signalIgnoreRouteEnd', buttonShowType: this.signalIgnoreRouteEnd },
|
||||
{ prop: 'noRoute', label: this.$t('map.signalNoRoute') + ':', type: 'checkbox'}
|
||||
|
||||
]
|
||||
},
|
||||
map: {
|
||||
@ -160,7 +166,6 @@ export default {
|
||||
{ prop: 'uniqueName', label: this.$t('map.signalUniqueName'), type: 'input' },
|
||||
{ prop: 'sectionCode', label: this.$t('map.belongsSection'), type: 'selectHover', optionLabel: 'name&&code', optionValue: 'code', options: this.signalSectionList, hover: this.hover, buttonType: 'signalSection', buttonShowType: this.signalSectionShow },
|
||||
{ prop: 'sectionOffset', label: this.$t('map.signalOffset'), type: 'number', min: 0, placeholder: this.$t('tip.meter') }
|
||||
|
||||
]
|
||||
}
|
||||
}
|
||||
|
@ -38,11 +38,13 @@ export default {
|
||||
pageIndex: 'pageNum'
|
||||
},
|
||||
deviceTypeList:ConstConfig.ConstSelect.projectDeviceTypeList,
|
||||
projectList: [{label:'西铁院', value: 'XTY'}, {label: '贵州装备', value:'GZB'}, {label: '哈尔滨', value:'HEB'}, {label: '苏电院', value:'SDY'}],
|
||||
projectList: [{label:'西铁院', value: 'XTY'}, {label: '贵州装备', value:'GZB'}, {label: '哈尔滨', value:'HEB'}, {label: '苏电院', value:'SDY'}, { label: '中航锐创(实训室)', value: 'RICHOR_JOINT' }],
|
||||
projectMap: {
|
||||
designxty: 'XTY',
|
||||
designgzb: 'GZB',
|
||||
designheb: 'HEB'
|
||||
designheb: 'HEB',
|
||||
designsdy: 'SDY',
|
||||
designrichorjoint: 'RICHOR_JOINT'
|
||||
},
|
||||
queryForm: {
|
||||
labelWidth: '120px',
|
||||
@ -196,7 +198,7 @@ export default {
|
||||
},
|
||||
getPath(index, row) {
|
||||
let url = '';
|
||||
url = `${window.location.protocol}//${window.location.host}/cbtc/login?project=${row.project.toLowerCase()}&projectDevice=${row.code}&type=${row.type}`;
|
||||
url = `${window.location.protocol}//${window.location.host}/cbtc/login?project=${row.project.toLowerCase().replace(/_/, '')}&projectDevice=${row.code}&type=${row.type}`;
|
||||
this.url = url;
|
||||
this.$messageBox();
|
||||
this.$confirm(`登录路径:${url}`, '登录路径', {
|
||||
|
BIN
static/jl3d/equipbox/DYB3.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
static/jl3d/equipbox/DYBgfd33vx.png
Normal file
After Width: | Height: | Size: 52 KiB |
BIN
static/jl3d/equipbox/beiyong343434.png
Normal file
After Width: | Height: | Size: 59 KiB |
BIN
static/jl3d/equipbox/close.png
Normal file
After Width: | Height: | Size: 16 KiB |
BIN
static/jl3d/equipbox/close1.png
Normal file
After Width: | Height: | Size: 20 KiB |
BIN
static/jl3d/equipbox/close2.png
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
static/jl3d/equipbox/gai2.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
static/jl3d/equipbox/green.png
Normal file
After Width: | Height: | Size: 29 KiB |
BIN
static/jl3d/equipbox/menmoshikaiguan.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
static/jl3d/equipbox/normalswitchbg.png
Normal file
After Width: | Height: | Size: 31 KiB |
BIN
static/jl3d/equipbox/open.png
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
static/jl3d/equipbox/open1.png
Normal file
After Width: | Height: | Size: 21 KiB |
BIN
static/jl3d/equipbox/open2.png
Normal file
After Width: | Height: | Size: 21 KiB |
BIN
static/jl3d/equipbox/red.png
Normal file
After Width: | Height: | Size: 30 KiB |
BIN
static/jl3d/equipbox/yellow.png
Normal file
After Width: | Height: | Size: 29 KiB |
BIN
static/jl3d/equipbox/门开关模式D.png
Normal file
After Width: | Height: | Size: 24 KiB |