Merge remote-tracking branch 'origin/test'

This commit is contained in:
thesai 2021-12-06 21:19:18 +08:00
commit 9631685998
28 changed files with 683 additions and 206 deletions

View File

@ -3,6 +3,16 @@
<router-view />
<deomon-topic ref="deomonTopic" />
<img v-show="loading" :src="loadingImg" class="AppAll">
<div
v-if="!$store.state.user.baseUrl"
v-loading="!$store.state.user.baseUrl"
element-loading-text="拼命加载中"
element-loading-background="rgba(0, 0, 0, 0)"
element-loading-spinner="el-icon-loading"
style="width: 100%;height: 100%;"
>
<img :src="appLoading" class="centerImg">
</div>
</div>
</template>
@ -13,6 +23,7 @@ import { loginInfo, ProjectIcon } from '@/scripts/ProjectConfig';
import DeomonTopic from '@/views/demonstration/deomonTopic';
import WindowResizeHandler from '@/mixin/WindowResizeHandler';
import LoadingImg from '@/assets/loading.gif';
import AppLoading from '@/assets/appLoading.png';
import { openIndexedDB } from '@/utils/indexedDb';
export default {
@ -26,6 +37,7 @@ export default {
data() {
return {
loadingImg: LoadingImg,
appLoading: AppLoading,
loading: false
};
},
@ -113,4 +125,13 @@ export default {
</script>
<style lang="scss" scoped>
.AppAll{position: absolute;top: 0;left: 0;width: 100%;height: 100%;z-index: 2003}
.centerImg {
position: absolute;
left:50%;
top: 50%;
width: 480px;
height: 456px;
margin-left: -240px;
margin-top: -228px;
}
</style>

40
src/api/projectServer.js Normal file
View File

@ -0,0 +1,40 @@
import request from '@/utils/request';
/** 获取请求baseURL */
export function getBaseUrlByProject(project) {
return request({
url: `/api/projectServer/project/${project}`,
method: 'get'
});
}
/** 分页查询项目服务器 */
export function projectServerPaging(params) {
return request({
url: `/api/projectServer/paging`,
method: 'get',
params
});
}
/** 创建项目服务器数据 */
export function createProjectServer(data) {
return request({
url: `/api/projectServer`,
method: 'post',
data
});
}
/** 修改项目服务器数据 */
export function updateProjectServer(id, data) {
return request({
url: `/api/projectServer/${id}`,
method: 'put',
data
});
}
/** 删除项目服务器数据 */
export function deleteProjectServer(id) {
return request({
url: `/api/projectServer/${id}`,
method: 'delete'
});
}

BIN
src/assets/appLoading.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

View File

@ -99,5 +99,6 @@ export default {
publishISCSManage:'publish ISCS Manage',
voiceTraining: 'Voice Training',
mapGroup: 'Map Group',
drawingMange:'Drawing Mange'
drawingMange:'Drawing Mange',
projectServer: 'Project Server'
};

View File

@ -103,5 +103,6 @@ export default {
publishISCSManage:'发布ISCS管理',
voiceTraining: '语音训练',
mapGroup: '地图分组',
drawingMange:'图纸管理'
drawingMange:'图纸管理',
projectServer: '项目域名'
};

View File

@ -408,8 +408,15 @@ export default class ELines extends Group {
}
}
setCrossBlock() {
this.crossSection && this.crossSection.setStyle({fill:this.model.style.Section.cross.centerSquare.blockColor});
setCrossBlock(routeLock) {
this.centerSquare && this.centerSquare.setStyle({fill:this.model.style.Section.cross.centerSquare.blockColor});
if (routeLock) {
this.centerSquare && this.centerSquare.animateStyle(true)
.when(0, { fill: this.model.style.Section.cross.centerSquare.blockColor })
.when(1000, { fill: this.model.style.backgroundColor })
.when(2000, { fill: this.model.style.Section.cross.centerSquare.blockColor })
.start();
}
}
setCrossUnBlock() {
this.crossSection && this.crossSection.setStyle({fill:this.model.style.Section.cross.centerSquare.defaultColor});
@ -582,6 +589,8 @@ export default class ELines extends Group {
recover() {
this.section && this.section.show();
this.centerSquare && this.centerSquare.stopAnimation(true);
this.centerSquare && this.centerSquare.setStyle({fill: this.model.style.Section.cross.centerSquare.defaultColor});
}
setState() {

View File

@ -198,16 +198,17 @@ export default class Section extends Group {
stroke: this.style.Section.line.communicationOccupiedColor,
lineWidth: this.style.Section.line.width + this.style.Section.line.beyondWidth
});
this.line.setCrossRouteLock();
}
this.axle && this.axle.setStyle({
stroke: this.style.Section.line.communicationOccupiedColor,
fill:this.style.Section.line.communicationOccupiedColor
});
if (this.model.parentCode && this.model.type == '01') {
const section = this.mapDevice[this.model.parentCode];
section && section.instance && section.instance.line.setCrossRouteLock();
}
// if (this.model.parentCode && this.model.type == '01') {
// const section = this.mapDevice[this.model.parentCode];
// section && section.instance && section.instance.line.setCrossRouteLock();
// }
}
closeSection() {
if (this.line) {
@ -225,6 +226,7 @@ export default class Section extends Group {
stroke: this.style.Section.line.unCommunicationOccupiedColor,
lineWidth: this.style.Section.line.width + this.style.Section.line.beyondWidth
});
this.line.setCrossRouteLock();
}
this.axle && this.axle.setStyle({
stroke: this.style.Section.line.unCommunicationOccupiedColor,
@ -234,10 +236,10 @@ export default class Section extends Group {
this.name.setStyle({ textFill: this.style.Section.name.occupyColor });
}
if (this.model.parentCode && this.model.type == '01') {
const section = this.mapDevice[this.model.parentCode];
section && section.instance && section.instance.line.setCrossRouteLock();
}
// if (this.model.parentCode && this.model.type == '01') {
// const section = this.mapDevice[this.model.parentCode];
// section && section.instance && section.instance.line.setCrossRouteLock();
// }
}
/** ARB故障 */
invalid() {
@ -290,7 +292,7 @@ export default class Section extends Group {
});
}
if (this.style.Section.cross && this.model.type == '05') {
this.line.setCrossBlock();
this.line.setCrossBlock(routeLock);
}
if (this.style.Section.block && this.style.Section.block.blockGlint && this.line && this.model.type !== '03') {
this.line.animateStyle(true, [
@ -388,6 +390,9 @@ export default class Section extends Group {
this.sectionMiddle && this.sectionMiddle.setStyle({stroke: this.style.Section.sectionMiddle.preResetColor});
this.sectionMiddle && this.sectionMiddle.show();
}
if (this.model.type == '05') {
this.line && this.line.setCross({fill: this.style.Section.sectionMiddle.preResetColor});
}
}
// 延时解锁
delayUnlock() {
@ -505,7 +510,7 @@ export default class Section extends Group {
model.speedUpLimit > 0 && this.setSpeedUpperLimit(model.speedUpLimit);
// 区段计轴预复位状态 (未处理)
// 区段延时解锁
model.delayUnlock && this.delayUnlock();
model.remain > 0 && this.delayUnlock();
// 设置灰显
if (model.noStatus || (model.atsNoStatus && store.state.training.prdType == '02')) {
this.setAshShow();

View File

@ -617,6 +617,10 @@ export default class Switch extends Group {
// 空闲
section.setStyle({'stroke': this.style.Section.line.spareColor});
section.show();
if (sectionModel.faultLock) {
section.setStyle({'stroke': this.style.Section.line.faultLockColor });
section.show();
}
// 道岔保护区段锁闭
if (sectionModel.overlapLock) {
section.setStyle({'stroke': this.style.Section.line.protectiveLockColor});

View File

@ -248,16 +248,26 @@ export default class Train extends Group {
}
}
// 设置列车停止方向类型
setDirectionStopType(right) {
setDirectionStopType(right, flag) {
if (this.style.Train.trainStatusStyle.directionStopType.length > 0) {
this.style.Train.trainStatusStyle.directionStopType.forEach((item) => {
if (right == item.type) {
if (this.style.Train.trainHead.directionStopType == 'special') {
if (flag) {
this.trainL && this.trainL.setArrowShow(!item.lineLShow);
this.trainR && this.trainR.setArrowShow(!item.lineRShow);
} else {
this.trainL && this.trainL.setArrowShow(item.lineLShow);
this.trainR && this.trainR.setArrowShow(item.lineRShow);
}
} else {
if (flag) {
this.trainL && this.trainL.setLineShow(!item.lineLShow);
this.trainR && this.trainR.setLineShow(!item.lineRShow);
} else {
this.trainL && this.trainL.setLineShow(item.lineLShow);
this.trainR && this.trainR.setLineShow(item.lineRShow);
}
this.triangle && this.triangle.setStopShow(true); // 停车
}
return true;
@ -268,7 +278,7 @@ export default class Train extends Group {
// 设置运行状态
setRunStatus(status, flag) {
if (status) {
this.setDirectionStopType(this.model.right); // 设置运行方向状态类型
this.setDirectionStopType(this.model.right, flag); // 设置运行方向状态类型
} else {
this.setDirectionType(this.model.right, flag); // 设置运行方向状态类型
}

View File

@ -229,7 +229,7 @@ export default {
} else if (selected._type === 'Switch' && this.popClass === 'nanjing-02__systerm' ) {
this.faultList = [
{label: '短闪', value: 'SPLIT'},
{label: '短闪(4次恢复', value: 'SPLIT_4'},
{label: '短闪(转动后恢复)', value: 'SPLIT_1'},
{label: '定位短闪', value: 'NORMAL_SPLIT'},
{label: '反位短闪', value: 'REVERSE_SPLIT'},
{label: '长闪', value: 'SQUEEZE'},

View File

@ -82,6 +82,7 @@ import UserLogout from './Logout';
import QuickEntry from './Entry';
import SystemTitle from './Title';
import {getSessionStorage } from '@/utils/auth';
import { ThirdLoginList } from '@/scripts/ProjectConfig';
export default {
components: {
@ -94,15 +95,17 @@ export default {
routes: [],
isShow: false,
activePath: '',
index: '',
thirdLogin:''
index: ''
};
},
computed: {
...mapGetters([
'avatar',
'routers'
])
]),
thirdLogin() {
return ThirdLoginList.includes(getSessionStorage('project'));
}
},
watch: {
@ -115,7 +118,6 @@ export default {
}
},
mounted() {
this.thirdLogin = getSessionStorage('project') == 'richor';
this.routes = this.$router.options.routes;
if (this.$route.fullPath.indexOf('design/usermap') >= 0) {
this.activePath = '/design/usermap/home';

View File

@ -1,11 +1,13 @@
import Vue from 'vue';
import store from '@/store/index';
import router from './router/index';
import {loginInfo} from '@/scripts/ProjectConfig';
import {loginInfo, ProjectCode, localPackageProject} from '@/scripts/ProjectConfig';
import NProgress from 'nprogress';
import 'nprogress/nprogress.css';
import { setToken, getToken, removeToken, getSessionStorage } from '@/utils/auth';
import { getBaseUrlByProject } from '@/api/projectServer';
import localStore from 'storejs';
import { getBaseUrl } from '@/utils/baseUrl';
const whiteList = ['/login', '/design/login', '/gzzbxy/relay', '/authorization', '/AUSline', '/AUStool', '/demo', '/thirdLogin']; // 不重定向白名单
@ -66,8 +68,37 @@ function handleRoute(to, next, loginPath) {
}
}
router.beforeEach((to, from, next) => {
const project = getSessionStorage('project');
router.beforeEach( async (to, from, next) => {
let project = '';
if (to.path.includes('login')) {
project = to.query.project;
const split = to.path.split('/')[1];
if (process.env.VUE_APP_PRO) {
project = localPackageProject[process.env.VUE_APP_PRO + split];
} else if (split == 'design') {
project = project ? split + project : split;
} else if (split == 'login') {
project = project || 'login';
} else {
project = split;
}
} else if (to.path.includes('thirdLogin')) {
project = to.query.project;
} else {
project = getSessionStorage('project');
}
if (!store.state.user.baseUrl && project) {
try {
const resp = await getBaseUrlByProject(ProjectCode[project]);
if (resp && resp.data && resp.data.domainName) {
store.dispatch('setBaseUrl', resp.data.domainName);
} else {
store.dispatch('setBaseUrl', getBaseUrl());
}
} catch (e) {
store.dispatch('setBaseUrl', getBaseUrl());
}
}
document.title = loginInfo[project || 'login'].browserTitle || loginInfo[project || 'login'].title;
NProgress.start();
const loginPath = getRouteInfo(to);

View File

@ -21,8 +21,6 @@ const Jlmap3dZzwwTest = () => import('@/views/jlmap3d/otherproject/zzww/zzwwtest
const XzExam = () => import('@/views/jlmap3d/otherproject/xzexam/xzexam');
const LcJy = () => import('@/views/jlmap3d/otherproject/xzexam/lcjy');
const Jlmap3d = () => import('@/views/jlmap3d/drive/jl3ddrive');
const Jlmap3dSandbox = () => import('@/views/jlmap3d/simulation/jl3dsimulation');
const Jlmap3dPassFlow = () => import('@/views/jlmap3d/passflow/jl3dpassflow');
@ -193,6 +191,7 @@ const UeditorDraftList = () => import('@/views/editor/listDraft');
const UploadPdfList = () => import('@/views/uploadPdf/list');
const ThirdLogin = () => import('@/views/thirdLogin');
const ProjectServer = () => import('@/views/system/serverManage');
// import { GenerateRouteProjectList } from '@/scripts/ProjectConfig';
// import { getSessionStorage } from '@/utils/auth';
@ -1203,6 +1202,13 @@ export const asyncRouter = [
meta: {
i18n: 'router.voiceTraining'
}
},
{
path: 'projectServer',
component: ProjectServer,
meta: {
i18n: 'router.projectServer'
}
}
// {
// path: 'deviceManage',

View File

@ -547,7 +547,10 @@ export const loginInfo = {
designrichorygy: {
title: '扬州工业职业技术学院城市轨道交通设计平台',
loginPath: '/design/login?project=richorygy',
bottomColumn: '中航锐创(北京)科技发展有限公司 联系电话:4000500081',
loginParam: 'RICHOR_YGY',
linkIcon: FaviconRichor,
titleIcon: FaviconRichor,
titleDistance: '-150px',
navigationLogoWidth: '40px',
navigationMarginLeft: '60px',
@ -556,7 +559,10 @@ export const loginInfo = {
richorygy: {
title: '扬州工业职业技术学院城市轨道交通实训平台',
loginPath: '/login?project=richorygy',
bottomColumn: '中航锐创(北京)科技发展有限公司 联系电话:4000500081',
loginParam: 'RICHOR_YGY',
linkIcon: FaviconRichor,
titleIcon: FaviconRichor,
titleDistance: '-150px',
navigationLogoWidth: '40px',
navigationMarginLeft: '60px',
@ -702,9 +708,12 @@ export const ProjectCode = {
hls: 'DEFAULT',
designhls: 'DEFAULT'
};
/** 嵌入第三方平台 导航栏右上角 清空 */
export const ThirdLoginList = ['richor', 'designrichor', 'richorygy', 'designrichorygy'];
/** 底部栏仅展示公司信息不展示备案号 */
export const BottomColumnOnlyConInfo = ['heb', 'designheb', 'jyd', 'designjyd', 'tky', 'designtky', 'bxkc', 'designbxkc', 'crsc', 'designcrsc', 'hls',
'designhls', 'hyd', 'designhyd', 'cgy', 'designcgy', 'richor', 'richorlesson3d', 'richorjoint', 'designrichorjoint', 'nologo', 'designnologo'];
'designhls', 'hyd', 'designhyd', 'cgy', 'designcgy', 'richor', 'richorlesson3d', 'richorjoint', 'designrichorjoint', 'nologo', 'designnologo', 'richorygy',
'designrichorygy'];
/** 实训设计平台通过项目code获取地图列表的项目 */
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',
@ -772,9 +781,7 @@ export const goOtherPlatformMenu = {
srsandbox: '/design/login?project=srsandbox',
designsrsandbox: '/login?project=srsandbox',
jxgm: '/design/login?project=jxgm',
designjxgm: '/login?project=jxgm',
richorygy: '/design/login?project=richorygy',
designrichorygy: '/login?project=richorygy'
designjxgm: '/login?project=jxgm'
};
export const ProjectList = [
{value:'xty', label:'西铁院'},

View File

@ -19,7 +19,7 @@ const service = axios.create({
timeout: 600000 // 请求超时时间
});
// request拦截器
// request拦截器108
service.interceptors.request.use(config => {
if (getToken()) {
config.headers['X-Token'] = getToken(); // 让每个请求携带自定义token 请根据实际情况自行修改

View File

@ -8,10 +8,10 @@ export function EbUiData() {
{
name:"ATON",
label:"ATO",
light:"#6C6C6C",
light:"#FF2D2D",
lighttype:"normal",
status:false,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
status:true,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/open.png",
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
top:"5%",
width:"4.5%",
@ -19,10 +19,10 @@ statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
{
name:"ATPN",
label:"ATP",
light:"#6C6C6C",
light:"#FF2D2D",
lighttype:"normal",
status:false,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
status:true,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/open.png",
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
top:"5%",
width:"4.5%",
@ -30,10 +30,10 @@ statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
{
name:"BCN",
label:"制动控制",
light:"#6C6C6C",
light:"#FF2D2D",
lighttype:"normal",
status:false,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
status:true,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/open.png",
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
top:"5%",
width:"4.5%",
@ -41,10 +41,10 @@ statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
{
name:"BVN",
label:"司控器制动控制",
light:"#6C6C6C",
light:"#FF2D2D",
lighttype:"normal",
status:false,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
status:true,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/open.png",
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
top:"5%",
width:"4.5%",
@ -52,10 +52,10 @@ statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
{
name:"CABN",
label:"司机室激活",
light:"#6C6C6C",
light:"#FF2D2D",
lighttype:"normal",
status:false,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
status:true,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/open.png",
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
top:"5%",
width:"4.5%",
@ -63,10 +63,10 @@ statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
{
name:"CEHECN",
label:"司机室电热设备控制",
light:"#6C6C6C",
light:"#FF2D2D",
lighttype:"normal",
status:false,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
status:true,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/open.png",
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
top:"5%",
width:"4.5%",
@ -75,10 +75,10 @@ statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
{
name:"CLN",
label:"司机室灯",
light:"#6C6C6C",
light:"#FF2D2D",
lighttype:"normal",
status:false,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
status:true,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/open.png",
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
top:"5%",
width:"4.5%",
@ -86,10 +86,10 @@ statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
{
name:"CMCN",
label:"空压机控制",
light:"#6C6C6C",
light:"#FF2D2D",
lighttype:"normal",
status:false,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
status:true,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/open.png",
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
top:"5%",
width:"4.5%",
@ -98,10 +98,10 @@ statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
{
name:"CVSN",
label:"CVS控制",
light:"#6C6C6C",
light:"#FF2D2D",
lighttype:"normal",
status:false,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
status:true,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/open.png",
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
top:"5%",
width:"4.5%",
@ -109,10 +109,10 @@ statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
{
name:"DACUN",
label:"广播控制盒",
light:"#6C6C6C",
light:"#FF2D2D",
lighttype:"normal",
status:false,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
status:true,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/open.png",
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
top:"5%",
width:"4.5%",
@ -121,10 +121,10 @@ statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
{
name:"DC24M1N",
label:"DC24V电源1",
light:"#6C6C6C",
light:"#FF2D2D",
lighttype:"normal",
status:false,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
status:true,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/open.png",
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
top:"5%",
width:"4.5%",
@ -132,10 +132,10 @@ statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
{
name:"DC24M2N",
label:"DC24V电源2",
light:"#6C6C6C",
light:"#FF2D2D",
lighttype:"normal",
status:false,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
status:true,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/open.png",
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
top:"5%",
width:"4.5%",
@ -144,10 +144,10 @@ statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
{
name:"DCN",
label:"车门控制",
light:"#6C6C6C",
light:"#FF2D2D",
lighttype:"normal",
status:false,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
status:true,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/open.png",
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
top:"5%",
width:"4.5%",
@ -155,10 +155,10 @@ statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
{
name:"DFVN",
label:"蓄电池电压表",
light:"#6C6C6C",
light:"#FF2D2D",
lighttype:"normal",
status:false,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
status:true,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/open.png",
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
top:"5%",
width:"4.5%",
@ -167,10 +167,10 @@ statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
{
name:"EBCN",
label:"紧急制动控制",
light:"#6C6C6C",
light:"#FF2D2D",
lighttype:"normal",
status:false,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
status:true,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/open.png",
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
top:"5%",
width:"4.5%",
@ -178,10 +178,10 @@ statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
{
name:"FPCN",
label:"废排风机控制",
light:"#6C6C6C",
light:"#FF2D2D",
lighttype:"normal",
status:false,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
status:true,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/open.png",
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
top:"5%",
width:"4.5%",
@ -190,10 +190,10 @@ statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
{
name:"HMIN",
label:"信号显示屏",
light:"#6C6C6C",
light:"#FF2D2D",
lighttype:"normal",
status:false,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
status:true,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/open.png",
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
top:"5%",
width:"4.5%",
@ -201,10 +201,10 @@ statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
{
name:"PACN",
label:"PA司机室",
light:"#6C6C6C",
light:"#FF2D2D",
lighttype:"normal",
status:false,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
status:true,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/open.png",
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
top:"5%",
width:"4.5%",
@ -213,10 +213,10 @@ statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
{
name:"PANCN",
label:"受电弓控制",
light:"#6C6C6C",
light:"#FF2D2D",
lighttype:"normal",
status:false,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
status:true,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/open.png",
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
top:"5%",
width:"4.5%",
@ -224,10 +224,10 @@ statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
{
name:"PCN",
label:"司控器牵引控制",
light:"#6C6C6C",
light:"#FF2D2D",
lighttype:"normal",
status:false,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
status:true,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/open.png",
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
top:"5%",
width:"4.5%",
@ -236,10 +236,10 @@ statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
{
name:"PEHCN",
label:"客室电加热器控制",
light:"#6C6C6C",
light:"#FF2D2D",
lighttype:"normal",
status:false,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
status:true,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/open.png",
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
top:"5%",
width:"4.5%",
@ -247,10 +247,10 @@ statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
{
name:"EHVN",
label:"备用",
light:"#6C6C6C",
light:"#FF2D2D",
lighttype:"normal",
status:false,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
status:true,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/open.png",
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
top:"5%",
width:"4.5%",
@ -262,10 +262,10 @@ statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
{
name:"PISCN",
label:"司机室信显",
light:"#6C6C6C",
light:"#FF2D2D",
lighttype:"normal",
status:false,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
status:true,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/open.png",
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
top:"5%",
width:"4.5%",
@ -273,10 +273,10 @@ statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
{
name:"PLCN",
label:"客室照明控制",
light:"#6C6C6C",
light:"#FF2D2D",
lighttype:"normal",
status:false,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
status:true,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/open.png",
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
top:"5%",
width:"4.5%",
@ -285,10 +285,10 @@ statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
{
name:"RBN",
label:"雨刷",
light:"#6C6C6C",
light:"#FF2D2D",
lighttype:"normal",
status:false,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
status:true,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/open.png",
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
top:"5%",
width:"4.5%",
@ -296,10 +296,10 @@ statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
{
name:"RCSN",
label:"信号无线",
light:"#6C6C6C",
light:"#FF2D2D",
lighttype:"normal",
status:false,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
status:true,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/open.png",
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
top:"5%",
width:"4.5%",
@ -308,10 +308,10 @@ statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
{
name:"RN",
label:"车载无线电台",
light:"#6C6C6C",
light:"#FF2D2D",
lighttype:"normal",
status:false,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
status:true,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/open.png",
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
top:"5%",
width:"4.5%",
@ -319,10 +319,10 @@ statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
{
name:"SILN",
label:"信号灯",
light:"#6C6C6C",
light:"#FF2D2D",
lighttype:"normal",
status:false,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
status:true,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/open.png",
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
top:"5%",
width:"4.5%",
@ -331,10 +331,10 @@ statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
{
name:"TCMSDPN",
label:"TCMS显示屏",
light:"#6C6C6C",
light:"#FF2D2D",
lighttype:"normal",
status:false,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
status:true,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/open.png",
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
top:"5%",
width:"4.5%",
@ -342,10 +342,10 @@ statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
{
name:"TCMSN",
label:"TCMS",
light:"#6C6C6C",
light:"#FF2D2D",
lighttype:"normal",
status:false,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
status:true,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/open.png",
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
top:"5%",
width:"4.5%",
@ -354,10 +354,10 @@ statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
{
name:"WFLN",
label:"轮缘润滑装置",
light:"#6C6C6C",
light:"#FF2D2D",
lighttype:"normal",
status:false,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
status:true,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/open.png",
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
top:"5%",
width:"4.5%",
@ -365,10 +365,10 @@ statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
{
name:"CLBPN",
label:"导光板",
light:"#6C6C6C",
light:"#FF2D2D",
lighttype:"normal",
status:false,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
status:true,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/open.png",
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
top:"5%",
width:"4.5%",
@ -377,10 +377,10 @@ statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
{
name:"HLN",
label:"前照灯",
light:"#6C6C6C",
light:"#FF2D2D",
lighttype:"normal",
status:false,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
status:true,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/open.png",
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
top:"5%",
width:"4.5%",
@ -388,10 +388,10 @@ statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
{
name:"MSRN",
label:"司控器电位计",
light:"#6C6C6C",
light:"#FF2D2D",
lighttype:"normal",
status:false,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
status:true,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/open.png",
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
top:"5%",
width:"4.5%",
@ -400,10 +400,10 @@ statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
{
name:"RPLN",
label:"防护灯",
light:"#6C6C6C",
light:"#FF2D2D",
lighttype:"normal",
status:false,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
status:true,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/open.png",
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
top:"5%",
width:"4.5%",
@ -411,10 +411,10 @@ statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
{
name:"VSN",
label:"网压传感器",
light:"#6C6C6C",
light:"#FF2D2D",
lighttype:"normal",
status:false,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
status:true,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/open.png",
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
top:"5%",
width:"4.5%",
@ -423,10 +423,10 @@ statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
{
name:"备用",
label:"备用",
light:"#6C6C6C",
light:"#FF2D2D",
lighttype:"normal",
status:false,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
status:true,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/open.png",
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
top:"5%",
width:"4.5%",
@ -434,10 +434,10 @@ statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
{
name:"CVN",
label:"司机室通风",
light:"#6C6C6C",
light:"#FF2D2D",
lighttype:"normal",
status:false,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
status:true,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/open.png",
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
top:"5%",
width:"4.5%",
@ -446,10 +446,10 @@ statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
{
name:"SLPN",
label:"漏电保护",
light:"#6C6C6C",
light:"#FF2D2D",
lighttype:"non",
status:false,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close1.png",
status:true,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/open1.png",
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
top:"5%",
width:"9%",
@ -457,10 +457,10 @@ statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
{
name:"EHGN",
label:"电热玻璃",
light:"#6C6C6C",
light:"#FF2D2D",
lighttype:"two",
status:false,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close2.png",
status:true,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/open2.png",
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
top:"5%",
width:"9%",
@ -469,10 +469,10 @@ statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
{
name:"CEHN",
label:"司机室电加热",
light:"#6C6C6C",
light:"#FF2D2D",
lighttype:"two",
status:false,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close2.png",
status:true,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/open2.png",
bgpic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/normalswitchbg.png",
top:"5%",
width:"9%",
@ -485,7 +485,7 @@ statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
name:"BNBB",
label:"制动不缓解旁路",
lighttype:"normal",
status:false,
status:true,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/gai2.png",
top:"5%",
width:"11%",
@ -494,7 +494,7 @@ statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
name:"PABB",
label:"停放制动旁路",
lighttype:"normal",
status:false,
status:true,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/gai2.png",
top:"5%",
width:"11%",
@ -503,7 +503,7 @@ statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
name:"DCBB",
label:"门安全旁路",
lighttype:"normal",
status:false,
status:true,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/gai2.png",
top:"5%",
width:"11%",
@ -512,7 +512,7 @@ statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
name:"DSBB",
label:"门选择旁路",
lighttype:"normal",
status:false,
status:true,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/gai2.png",
top:"5%",
width:"11%",
@ -521,7 +521,7 @@ statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
name:"DMBB",
label:"警惕旁路",
lighttype:"normal",
status:false,
status:true,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/gai2.png",
top:"5%",
width:"11%",
@ -530,7 +530,7 @@ statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
name:"TOWB",
label:"回送",
lighttype:"normal",
status:false,
status:true,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/gai2.png",
top:"5%",
width:"11%",
@ -539,7 +539,7 @@ statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
name:"CFB",
label:"换端",
lighttype:"normal",
status:false,
status:true,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/green.png",
top:"5%",
width:"11%",
@ -548,7 +548,7 @@ statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
name:"BATOB",
label:"蓄电池断",
lighttype:"normal",
status:false,
status:true,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/red.png",
top:"5%",
width:"11%",
@ -557,7 +557,7 @@ statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
name:"DMTB",
label:"警惕测试",
lighttype:"normal",
status:false,
status:true,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/yellow.png",
top:"5%",
width:"11%",
@ -566,7 +566,7 @@ statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
name:"ADDCB",
label:"ADD切除",
lighttype:"normal",
status:false,
status:true,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/gai2.png",
top:"5%",
width:"11%",
@ -575,7 +575,7 @@ statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
name:"BACKMB",
label:"后背模式",
lighttype:"normal",
status:false,
status:true,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/gai2.png",
top:"5%",
width:"11%",
@ -584,7 +584,7 @@ statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
name:"EBSB",
label:"紧急制动环路短接",
lighttype:"normal",
status:false,
status:true,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/gai2.png",
top:"5%",
width:"11%",
@ -593,7 +593,7 @@ statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
name:"E3B",
label:"紧急按钮旁路",
lighttype:"normal",
status:false,
status:true,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/gai2.png",
top:"5%",
width:"11%",
@ -602,7 +602,7 @@ statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
name:"LD1BB",
label:"左门1km/h旁路",
lighttype:"normal",
status:false,
status:true,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/gai2.png",
top:"5%",
width:"11%",
@ -611,7 +611,7 @@ statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
name:"RD1BB",
label:"右门1km/h旁路",
lighttype:"normal",
status:false,
status:true,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/gai2.png",
top:"5%",
width:"11%",
@ -620,7 +620,7 @@ statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
name:"",
label:"备用",
lighttype:"normal",
status:false,
status:true,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/gai2.png",
top:"5%",
width:"11%",
@ -629,7 +629,7 @@ statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
name:"BATCB",
label:"蓄电池合",
lighttype:"normal",
status:false,
status:true,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/green.png",
top:"5%",
width:"11%",
@ -638,7 +638,7 @@ statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/close.png",
name:"FRB",
label:"初次升弓",
lighttype:"normal",
status:false,
status:true,
statuspic:JL3D_LOCAL_STATIC+"/jl3d/equipbox/green.png",
top:"5%",
width:"11%",

View File

@ -593,7 +593,7 @@ export default {
});
} else if (this.project === 'zzwwtest') {
this.$router.push({ path: '/jlmap3d/zzwwtest', query: {lessonId:'35'} });
}else if (this.project === 'xzexam') {
} else if (this.project === 'xzexam') {
this.$router.push({ path: '/jlmap3d/xzexam', query: {} });
} else if (this.project === 'richorlesson3d') {
this.$router.push({ path: '/jlmap3d/lesson3dselect', query: {} });

View File

@ -30,9 +30,9 @@
<el-button type="danger" size="small" @click="handleQuitQuest">退出剧本</el-button>
</template>
<template v-else-if="!projectDevice">
<el-button v-if="!isDepoltSim && project !== 'srsandbox'" type="success" :disabled="isDisable" size="small" @click="selectBeginTime">{{ $t('display.demon.drivingByPlan') }}</el-button>
<el-button v-if="project !== 'srsandbox'" type="success" :disabled="isDisable" size="small" @click="selectBeginTime">{{ $t('display.demon.drivingByPlan') }}</el-button>
<!-- isDisable&& -->
<el-button v-if="isAdmin&&!isDepoltSim" v-loading="pauseLoading" :type="simulationPaused?'warning':'primary'" size="small" @click="startOrPause">{{ simulationPaused?'开始':'暂停' }}</el-button>
<el-button v-if="isAdmin" v-loading="pauseLoading" :type="simulationPaused?'warning':'primary'" size="small" @click="startOrPause">{{ simulationPaused?'开始':'暂停' }}</el-button>
<el-button type="danger" size="small" @click="end">{{ $t('display.demon.initialize') }}</el-button>
</template>
</template>
@ -164,9 +164,6 @@ export default {
simulationPaused() {
return this.$store.state.socket.simulationPause;
},
isDepoltSim() {
return this.$route.query.prdType === '09';
},
noChatBox() {
return this.project.includes('srsandbox') || this.project.includes('jxgm');
}

View File

@ -2,7 +2,7 @@
<div>
<div class="schema" :style="{top: offset+'px'}">
<select-station v-if="isShowSelectStation && !isScript" ref="selectStation" :style-css="'width: 100px;'" />
<el-select v-if="!isDepoltSim" v-model="speed" style="width: 100px;" size="small" @change="speedChange">
<el-select v-model="speed" style="width: 100px;" size="small" @change="speedChange">
<el-option
v-for="item in speedList"
:key="item.value"
@ -10,12 +10,12 @@
:value="item.value"
/>
</el-select>
<template v-if="!dataError && !isDepoltSim">
<template v-if="!dataError">
<el-button-group v-if="project !== 'bjd'">
<el-button v-if="isLocalStation && $route.query.lineCode!='08'" size="small" @click="goIbp">IBP盘</el-button>
<el-button v-if="isScheduling && isDepot" size="small" type="primary" @click="runPlanEditShow">运行图编辑</el-button>
<!-- 加载剧本 -->
<el-button v-if="isDemon && !isScheduling && !isContest" size="small" :disabled="viewDisabled" type="success" @click="viewRunQuest">{{ $t('display.schema.loadScript') }}</el-button>
<el-button v-if="isDemon && !isScheduling && !isContest && !isDepoltSim" size="small" :disabled="viewDisabled" type="success" @click="viewRunQuest">{{ $t('display.schema.loadScript') }}</el-button>
<!-- 运行图加载 -->
<!-- notScript && -->
<el-button v-if="running" size="small" :disabled="viewDisabled" @click="viewRunPlan">{{ $t('display.schema.previewRunDiagram') }}</el-button>

View File

@ -93,7 +93,7 @@ export default {
'routeNameUseEndOppositeSignalName', 'generateTbRoute', 'tbRouteNameUseEndOppositeSignalName', 'routeSignalAlwaysGreen',
'routeApartByOverlap', 'overlapOnlySwitch', 'overlapSwitchNpOnly', 'overlapSignalOppositeSwitchNpOnly',
'generateCycle', 'routeButton', 'likeHa1', 'getNearlySignal', 'overlapSettingByTrigger', 'generateFls', 'signalApproachNotPassPreSignal',
'generateDestination', 'ctcOverlapOnlyTurnBackStationLock', 'routeInterlockDoNotIncludeStandHoldTrain'
'generateDestination', 'ctcOverlapOnlyTurnBackStationLock', 'routeInterlockDoNotIncludeStandHoldTrain', 'handleDepot'
],
multipleList: ['sharingECStations'],
selectList: [],
@ -128,7 +128,8 @@ export default {
generateDestination: '是否生成目的地码定义(泰雷兹)',
sharingECStations: '共享紧急关闭效果的车站',
ctcOverlapOnlyTurnBackStationLock: 'CTC列车进路延续保护仅折返站处锁闭',
routeInterlockDoNotIncludeStandHoldTrain: '进路联锁不包含站台扣车'
routeInterlockDoNotIncludeStandHoldTrain: '进路联锁不包含站台扣车',
handleDepot: '是否处理停车场/车辆段逻辑'
}
};
},

View File

@ -274,7 +274,6 @@ export default {
loadInitPage() {
this.$store.dispatch('training/changeMode', { mode: TrainingMode.MAP_EDIT });
this.mapInfo = { name: this.$t('map.pleaseSelectMap'), id: this.$route.params.mapId };
console.log(this.mapInfo, '======================');
if (parseInt(this.mapInfo.id)) {
this.mapInfo.name = this.$route.query.name;
getMapDetail(this.$route.params.mapId)

View File

@ -41,7 +41,12 @@
<el-button type="" size="mini" @click="clearList">清空</el-button>
</div>
</el-tab-pane>
<el-tab-pane label="批量车头翻转" name="fifth">
<el-button type="primary" size="mini" @click="handleTrainReverse">批量车头翻转</el-button>
<el-button type="" size="mini" @click="clearList">清空</el-button>
</el-tab-pane>
</el-tabs>
<template v-if="activeName != 'fifth'">
<div v-for="item in modelList" :key="item.type" class="content-box-list" style="margin-top: 10px">
<div class="title-box">{{ item.name }}</div>
<div class="list-box">
@ -57,6 +62,22 @@
</div>
</div>
</div>
</template>
<div v-if="activeName == 'fifth'" class="content-box-list" style="margin-top: 10px">
<div class="title-box">车次窗列表</div>
<div class="list-box">
<div
v-for="nor in trainWindowList"
:key="nor.code"
class="list-content"
@mouseenter="mouseenter(nor)"
@mouseleave="mouseleave(nor)"
>
<div class="name">{{ nor.code }}</div>
<div class="close" @click="delList(nor, trainWindowList)"><i class="el-icon-close" /></div>
</div>
</div>
</div>
</div>
</div>
</template>
@ -81,6 +102,7 @@ export default {
stationCode: '',
belongStationCode: '',
activeName: 'first',
trainWindowList: [],
modelList: [
{
type: 'Section',
@ -129,6 +151,7 @@ export default {
} else {
this.modelList[0].logicSectionList.push(item);
}
if (item.trainWindowCode) { this.trainWindowList.push(this.$store.getters['map/getDeviceByCode'](item.trainWindowCode)); }
} else if (item._type == 'Switch') {
this.modelList[1].list.push(item);
} else if (item._type == 'Signal') {
@ -226,6 +249,16 @@ export default {
el.click();
URL.revokeObjectURL(url);
},
handleTrainReverse() {
const models = [];
this.trainWindowList.forEach(item => {
const Model = deepAssign({}, this.$store.getters['map/getDeviceByCode'](item.code));
Model.reversal = !Model.reversal;
models.push(Model);
});
this.$emit('updateMapModel', models);
this.$message.success('批量车头翻转设置成功!');
},
handleReverse() {
const models = [];
this.modelList.forEach(model => {
@ -266,6 +299,7 @@ export default {
//
this.stationCode = '';
this.belongStationCode = '';
this.trainWindowList = [];
this.$store.commit('map/setSeclectDeviceList', []);
this.modelList = [
{

View File

@ -29,6 +29,7 @@ class Model {
this.transferTrack = false; // 是否转换轨
this.transferTrackName = '';
this.transferTrackNamePosition = { x: 0, y: 0 };
this.parkingTrack = false; // 是否停车轨
this.switchSection = false; // 是否关联道岔
this.relSwitchCode = '';
this.stationCode = '';

View File

@ -148,7 +148,7 @@ export default {
{ prop: 'roadType', label: '线路类型:', type: 'select', optionLabel: 'name', optionValue: 'code', options: this.sectionRoadTypeList, clearable: true, isHidden: !this.isSwitchSectionType || !this.isCrossSectionType, deviceChange: this.roadTypeChange },
{ prop: 'leftSectionCode', label: this.$t('map.leftAssociatedSection'), type: 'selectHover', optionLabel: 'name&&code', optionValue: 'code', clearable: true, options: this.switchAndPhySicalSectionList, hover: this.hover, buttonType: 'leftSection', buttonShowType: this.isLeftSectionButtonShow, isHidden: !this.hasAssociatedSection }, //
{ prop: 'rightSectionCode', label: this.$t('map.rightAssociatedSection'), type: 'selectHover', optionLabel: 'name&&code', optionValue: 'code', clearable: true, options: this.switchAndPhySicalSectionList, hover: this.hover, buttonType: 'rightSection', buttonShowType: this.isRightSectionButtonShow, isHidden: !this.hasAssociatedSection }, //
{ prop: 'parentCode', label: this.$t('map.associatedSection'), type: 'select', mode: true, optionLabel: 'name&&code', optionValue: 'code', disabled: true, options: this.sectionList, isHidden: !this.isParentCode }, // /code
{ prop: 'parentCode', label: this.$t('map.associatedSection'), type: 'select', mode: true, optionLabel: 'name&&code', optionValue: 'code', disabled: this.isCrossSectionType, options: this.sectionList, isHidden: !this.isParentCode }, // /code
{ prop: 'sepTypeLeft', label: this.$t('map.sepTypeLeft'), type: 'select', optionLabel: 'name', optionValue: 'code', options: this.SectionSepTypeList, isHidden: !this.isSwitchSectionType || !this.isCrossSectionType },
{ prop: 'sepTypeRight', label: this.$t('map.sepTypeRight'), type: 'select', optionLabel: 'name', optionValue: 'code', options: this.SectionSepTypeList, isHidden: !this.isSwitchSectionType || !this.isCrossSectionType },
{ prop: 'points', label: this.$t('map.segmentCoordinates'), type: 'points', width: '100px', isHidden: !this.isPointsShow, addPoint: this.addPoint, delPoint: this.delPoint, lastDisabled: true },
@ -181,7 +181,7 @@ export default {
{ prop: 'destinationCodePoint.x', firstLevel: 'destinationCodePoint', secondLevel: 'x', label: 'x:', type: 'number', labelWidth: '20px' },
{ prop: 'destinationCodePoint.y', firstLevel: 'destinationCodePoint', secondLevel: 'y', label: 'y:', type: 'number', labelWidth: '20px' }
] }, //
{ prop: 'parkingTrack', label: '是否停车轨:', type: 'checkbox' },
{ prop: 'switchSection', label: this.$t('map.isSwitchSection'), type: 'checkbox', disabled: true, isHidden: !this.isRelevanceSwitchShow }, //
{ prop: 'relSwitchCode', label: this.$t('map.relSwitchCode'), type: 'select', optionLabel: 'name&&code', optionValue: 'code', options: this.switchList, isHidden: !this.isRelevanceSwitchShow, disabled: true }, //
{ prop: 'logicSectionNameSort', label: this.$t('map.logicSectionNameSort'), type: 'radio', optionLabel: 'label', optionValue: 'value', isHidden: !this.isLogicSectionNameSort, radioList: [
@ -332,7 +332,7 @@ export default {
return this.hasAssociatedSection && this.editModel.rightAxlePosition;
},
isParentCode() {
return this.editModel.type == '02' || this.editModel.type == '03' || (this.editModel.type == '01' && this.editModel.parentCode);
return this.editModel.type == '02' || this.editModel.type == '03' || (this.editModel.type == '01' && this.editModel.parentCode) || this.editModel.type == '05';
},
isstandTrackNameShow() {
return this.editModel.type == '01' && this.editModel.standTrack;
@ -353,7 +353,7 @@ export default {
return this.hasAssociatedSection && (this.editModel.reentryTrack || this.editModel.transferTrack);
},
isStopPointOffset() {
return this.editModel.type !== '04' && (this.editModel.reentryTrack || this.editModel.standTrack || this.editModel.transferTrack);
return this.editModel.type !== '04' && (this.editModel.reentryTrack || this.editModel.standTrack || this.editModel.transferTrack || this.editModel.parkingTrack);
},
isHasLogicPhysicalSection() { //
return this.editModel.type == '01' && this.editModel.logicSectionCodeList && this.editModel.logicSectionCodeList.length;

View File

@ -11,7 +11,7 @@
<el-radio label="01">{{ $t('map.create') }}</el-radio>
<el-radio label="02">{{ $t('map.createBatch') }}</el-radio>
</el-radio-group>
<el-form ref="form" :model="addModel" label-width="90px" size="mini" :rules="rules">
<el-form ref="form" :model="addModel" label-width="120px" size="mini" :rules="rules">
<el-form-item v-if="mode == '01'" :label="$t('map.groupNumber')" prop="groupNumber">
<el-input v-model="addModel.groupNumber" />
</el-form-item>
@ -36,6 +36,16 @@
</el-button>
</el-button-group>
</el-form-item>
<el-form-item label="车辆段/停车场:" prop="stationCode">
<el-select v-model="addModel.stationCode" filterable>
<el-option
v-for="item in depotStationList"
:key="item.code"
:label="item.name"
:value="item.code"
/>
</el-select>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
@ -54,6 +64,10 @@ export default {
trainModelList: {
type: Array,
required: true
},
depotStationList: {
type: Array,
required: true
}
},
data() {
@ -65,6 +79,7 @@ export default {
beg: 1,
end: 1
},
stationCode: '',
groupNumber: '',
modelCode: ''
},
@ -94,6 +109,9 @@ export default {
],
modelCode: [
{ required: true, message: this.$t('rules.selectTrainType'), trigger: 'change' }
],
stationCode: [
{ required: true, message: '请选择车辆段/停车场', trigger: 'change' }
]
};
}
@ -115,6 +133,7 @@ export default {
this.addModel.modelCode = '';
this.$emit('dispatch', { callback: 'delTrainMode', params: code});
},
// 14
handleConfirm() {
this.$refs['form'].validate((valid) => {
if (valid) {
@ -125,6 +144,7 @@ export default {
_type: 'Train',
code: getUID('Train', [...this.trainList, ...list]),
modelCode: this.addModel.modelCode,
stationCode: this.addModel.stationCode,
groupNumber: this.addModel.groupNumber
});
break;
@ -134,6 +154,7 @@ export default {
_type: 'Train',
code: getUID('Train', [...this.trainList, ...list]),
modelCode: this.addModel.modelCode,
stationCode: this.addModel.stationCode,
groupNumber: ('000' + num).slice(-3)
});
}

View File

@ -2,14 +2,24 @@
<el-tabs v-model="activeName" class="card">
<el-tab-pane class="view-control" :label="$t('map.operation')" name="second">
<div class="view-control-content">
<el-input v-model="search" style="margin:10px 20px; width: 480px;" prefix-icon="el-icon-search" size="mini" placeholder="请输入内容" />
<el-scrollbar wrap-class="scrollbar-wrapper">
<el-table :data="trainList.filter(data => !search || data.groupNumber.toLowerCase().includes(search.toLowerCase()))" style="width: 100%">
<el-table-column :label="$t('map.trainNumber')" prop="groupNumber" />
<el-table-column :label="$t('map.codeC')" prop="code" />
<el-table-column align="right">
<template slot="header">
<el-input v-model="search" size="mini" :placeholder="$t('map.pleaseSelect')" />
<el-table-column :label="$t('map.trainNumber')" align="center" width="65px" prop="groupNumber" />
<el-table-column :label="$t('map.codeC')" align="center" width="110px" prop="code" />
<el-table-column label="所属车辆段/停车场" align="center">
<template slot-scope="scope">
<el-select v-model="scope.row.stationCode" size="mini" clearable placeholder="请选择">
<el-option
v-for="item in depotStationList"
:key="item.code"
:label="item.name"
:value="item.code"
/>
</el-select>
</template>
</el-table-column>
<el-table-column label="操作" width="110px" align="center">
<template slot-scope="scope">
<el-button size="mini" type="danger" @click="handleDelete(scope.$index, scope.row)">{{ $t('map.deleteObj') }}</el-button>
</template>
@ -25,7 +35,7 @@
</div>
</el-tab-pane>
<train-model ref="trainMode" />
<create ref="create" :train-model-list="trainModelList" @dispatch="dispatch" />
<create ref="create" :train-model-list="trainModelList" :depot-station-list="depotStationList" @dispatch="dispatch" />
</el-tabs>
</template>
@ -75,8 +85,12 @@ export default {
...mapGetters('map', [
'trainList',
'trainModelList',
'lineCode'
])
'lineCode',
'stationList'
]),
depotStationList() {
return this.stationList.filter(station => station.depot);
}
},
methods: {
deviceChange(code) {

View File

@ -0,0 +1,110 @@
<template>
<el-dialog v-dialogDrag :title="title" :visible.sync="dialogVisible" width="30%" :before-close="handleClose" center :close-on-click-modal="false">
<data-form ref="dataform" :form="form" :form-model="formModel" :rules="rules" />
<span slot="footer" class="dialog-footer">
<el-button v-loading="loading" type="primary" @click="doSave">{{ $t('global.confirm') }}</el-button>
<el-button @click="handleClose">{{ $t('global.cancel') }}</el-button>
</span>
</el-dialog>
</template>
<script>
import { createProjectServer, updateProjectServer } from '@/api/projectServer';
export default {
name: 'DeviceAdd',
props: {
projectList: {
type: Array,
required: true
}
},
data() {
return {
dialogVisible: false,
formModel: {
id: '',
domainName: '',
project: ''
},
loading: false
};
},
computed: {
form() {
const form = {
labelWidth: '120px',
items: [
{ prop: 'domainName', label: '域名', type: 'text', required: true, placeholder: '请输入域名' },
{ prop: 'project', label: '项目', type: 'select', required: true, options: this.projectList, placeholder: '请选择项目' }
]
};
return form;
},
rules() {
const crules = {
domainName: [
{ required: true, message: '请输入域名', trigger: 'blur' }
],
project: [
{ required: true, message: '请选择项目', trigger: 'change' }
]
};
return crules;
},
title() {
return this.formModel.id ? '修改项目域名' : '创建项目域名';
}
},
mounted() {
},
methods: {
show(data) {
if (data) {
this.formModel.id = data.id;
this.formModel.domainName = data.domainName;
this.formModel.project = data.project;
}
this.dialogVisible = true;
},
doSave() {
this.$refs.dataform.validateForm(() => {
this.loading = true;
const data = {
id: this.formModel.id,
domainName: this.formModel.domainName,
project: this.formModel.project.toUpperCase()
};
if (data.id) {
updateProjectServer(data.id, data).then(resp => {
this.$message.success('修改项目域名数据成功!');
this.handleClose();
this.$emit('reloadTable');
}).catch(error => {
this.$message.error(error.message);
this.loading = false;
});
} else {
createProjectServer(data).then(resp => {
this.$message.success('创建项目域名数据成功!');
this.handleClose();
this.$emit('reloadTable');
}).catch(error => {
this.$message.error(error.message);
this.loading = false;
});
}
});
},
handleClose() {
this.formModel = {
id: '',
domainName: '',
project: ''
};
this.$refs.dataform.resetForm();
this.dialogVisible = false;
this.loading = false;
}
}
};
</script>

View File

@ -0,0 +1,163 @@
<template>
<div>
<QueryListPage ref="queryListPage" :pager-config="pagerConfig" :query-form="queryForm" :query-list="queryList" />
<add-server ref="addServer" :project-list="projectList" @reloadTable="reloadTable" />
</div>
</template>
<script>
import { projectServerPaging, deleteProjectServer } from '@/api/projectServer';
import { getSessionStorage } from '@/utils/auth';
import { ProjectList } from '@/scripts/ProjectConfig';
import AddServer from './add';
export default {
name: 'DeviceManage',
components: {
AddServer
},
data() {
return {
examResultList: [],
url: '',
pagerConfig: {
pageSize: 'pageSize',
pageIndex: 'pageNum'
},
queryForm: {
labelWidth: '120px',
beforeQuery: this.beforeQuery,
reset: true,
queryObject: {
project: {
type: 'select',
label: '项目:',
config: {
data: []
}
}
}
},
queryList: {
query: projectServerPaging,
selectCheckShow: false,
indexShow: true,
columns: [
{
title: '域名',
prop: 'domainName'
},
{
title: '项目名称',
prop: 'projectCode',
type: 'tag',
columnValue: (row) => { return this.handleProjectName(row.project, this.projectList); },
tagType: (row) => { return 'success'; }
},
{
title: '创建时间',
prop: 'createTime',
type: 'tag',
columnValue: (row) => { return this.handleTime(row.createTime); },
tagType: (row) => { return 'success'; }
},
{
type: 'button',
title: this.$t('global.operate'),
width: '300',
buttons: [
{
name: '编辑',
handleClick: this.editConfig
},
{
name: this.$t('global.delete'),
handleClick: this.handleDelete,
type: 'danger'
}
]
}
],
actions: [
{ text: this.$t('global.add'), handler: this.createProjectServer}
]
},
currentModel: {}
};
},
computed: {
projectCode() {
return this.projectMap[getSessionStorage('project')];
},
projectList() {
return [{value: 'default', label: '默认'}, ...ProjectList];
}
},
mounted() {
this.queryForm.queryObject.project.config.data = this.projectList;
},
methods: {
createProjectDevice() {
this.$refs.add.show();
},
beforeQuery(params) {
params.project = params.project.toUpperCase();
return params;
},
computation(fieldValue, type) {
let list = [];
if (type === 'projectType') {
list = this.projectList;
} else if ( type === 'deviceType' ) {
list = this.deviceTypeList;
}
let value = '';
list.forEach((elem) => {
elem.label = fieldValue;
value = elem.value;
});
console.log(value, fieldValue, type);
return value;
},
handleTime(time) {
const timeList = time.split('T');
let newTime = '';
if (timeList.length > 1) {
newTime = timeList[0] + ' ' + timeList[1];
} else {
newTime = time;
}
return newTime;
},
//
handleDelete(index, row) {
this.$confirm('此操作将删除该域名数据!', this.$t('global.tips'), {
confirmButtonText: this.$t('global.confirm'),
cancelButtonText: this.$t('global.cancel'),
type: 'warning'
}).then(() => {
deleteProjectServer(row.id).then(response => {
this.$message.success(this.$t('system.deleteSuccess'));
this.reloadTable();
}).catch(() => {
this.reloadTable();
this.$messageBox(this.$t('error.deleteFailed'));
});
});
},
handleProjectName(projectCode, projectList) {
const project = projectList.find(elem => elem.value.toUpperCase() === projectCode);
return project ? project.label : '无效项目';
},
createProjectServer() {
this.$refs.addServer.show();
},
editConfig(index, row) {
this.$refs.addServer.show(row);
},
reloadTable() {
this.queryList.reload();
}
}
};
</script>