Compare commits
2 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
332577b03a | ||
|
6e6737a7c6 |
52
.gitea/workflows/CICD_local_test.yaml
Normal file
52
.gitea/workflows/CICD_local_test.yaml
Normal file
@ -0,0 +1,52 @@
|
||||
---
|
||||
name: local-test分支构建发布到本地服务器
|
||||
run-name: ${{ gitea.actor }} is testing out Gitea Actions
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- local-test
|
||||
jobs:
|
||||
Build-Publish:
|
||||
runs-on: joylink-local233
|
||||
steps:
|
||||
- name: 检出代码
|
||||
uses: https://gitea.joylink.club/actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
- name: 设置node环境
|
||||
uses: https://gitea.joylink.club/actions/local-setup-node@v0.1.1
|
||||
with:
|
||||
version: v14.21.3
|
||||
cache: yarn
|
||||
cache-dependency-path: yarn.lock
|
||||
- name: 安装yarn,并build
|
||||
run: |
|
||||
node -v
|
||||
npm config set registry https://registry.npmmirror.com
|
||||
npm install --global yarn
|
||||
yarn config set registry https://registry.npmmirror.com
|
||||
yarn
|
||||
yarn run buildas local-test
|
||||
tar czvf ./dist-local-test.tar.gz ./dist
|
||||
- name: 打包发送到服务器
|
||||
uses: https://gitea.joylink.club/appleboy/scp-action@v0.1.7
|
||||
with:
|
||||
host: ${{ secrets.LOCAL_233_SSH_HOST }}
|
||||
username: ${{ secrets.LOCAL_233_SSH_USER }}
|
||||
password: ${{ secrets.LOCAL_233_SSH_PASSWORD }}
|
||||
port: ${{ secrets.LOCAL_233_SSH_PORT }}
|
||||
source: ./dist-local-test.tar.gz
|
||||
target: /home/minio/oss/rt-sim-training-client
|
||||
overwrite: true
|
||||
- name: SSH连接并解压发布
|
||||
uses: https://gitea.joylink.club/appleboy/ssh-action@v1.0.3
|
||||
with:
|
||||
host: ${{ secrets.LOCAL_233_SSH_HOST }}
|
||||
port: ${{ secrets.LOCAL_233_SSH_PORT }}
|
||||
username: ${{ secrets.LOCAL_233_SSH_USER }}
|
||||
password: ${{ secrets.LOCAL_233_SSH_PASSWORD }}
|
||||
script: |
|
||||
cd /home/minio/oss/rt-sim-training-client
|
||||
rm -rf /usr/local/joylink/client/cbtc
|
||||
mkdir -p /usr/local/joylink/client
|
||||
tar xz --strip 2 -C /usr/local/joylink/client -f dist-local-test.tar.gz
|
52
.gitea/workflows/CICD_master.yaml
Normal file
52
.gitea/workflows/CICD_master.yaml
Normal file
@ -0,0 +1,52 @@
|
||||
name: master分支构建发布到公网服务器
|
||||
run-name: ${{ gitea.actor }} is testing out Gitea Actions
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
|
||||
jobs:
|
||||
Build-Publish:
|
||||
runs-on: joylink-local233
|
||||
steps:
|
||||
- name: 检出代码
|
||||
uses: https://gitea.joylink.club/actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
- name: 设置node环境
|
||||
uses: https://gitea.joylink.club/actions/local-setup-node@v0.1.1
|
||||
with:
|
||||
version: 'v14.21.3'
|
||||
cache: 'yarn'
|
||||
cache-dependency-path: 'yarn.lock'
|
||||
- name: 安装yarn,并build
|
||||
run: |
|
||||
node -v
|
||||
npm config set registry https://registry.npmmirror.com
|
||||
npm install --global yarn
|
||||
yarn config set registry https://registry.npmmirror.com
|
||||
yarn
|
||||
yarn run build
|
||||
tar czvf ./dist-master.tar.gz ./dist
|
||||
- name: 打包发送到服务器
|
||||
uses: https://gitea.joylink.club/appleboy/scp-action@v0.1.7
|
||||
with:
|
||||
host: ${{ secrets.PUB1_DOMAIN_SSH_HOST }}
|
||||
port: ${{ secrets.PUB1_DOMAIN_SSH_PORT }}
|
||||
username: ${{ secrets.PUB1_DOMAIN_SSH_USER }}
|
||||
password: ${{ secrets.PUB1_DOMAIN_SSH_PASSWORD }}
|
||||
source: ./dist-master.tar.gz
|
||||
target: /mnt/data/published/rt-sim-training-client
|
||||
overwrite: true
|
||||
- name: SSH连接并解压发布
|
||||
uses: https://gitea.joylink.club/appleboy/ssh-action@v1.0.3
|
||||
with:
|
||||
host: ${{ secrets.PUB1_DOMAIN_SSH_HOST }}
|
||||
port: ${{ secrets.PUB1_DOMAIN_SSH_PORT }}
|
||||
username: ${{ secrets.PUB1_DOMAIN_SSH_USER }}
|
||||
password: ${{ secrets.PUB1_DOMAIN_SSH_PASSWORD }}
|
||||
script: |
|
||||
cd /mnt/data/published/rt-sim-training-client
|
||||
rm -rf /usr/local/joylink/client/cbtc
|
||||
mkdir -p /usr/local/joylink/client
|
||||
tar xz --strip 2 -C /usr/local/joylink/client -f dist-master.tar.gz
|
1
.gitignore
vendored
1
.gitignore
vendored
@ -4,7 +4,6 @@ dist/
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
package-lock.json
|
||||
tests/**/coverage/
|
||||
src/utils/baseUrl.js*
|
||||
|
||||
|
@ -344,3 +344,13 @@ export function queryTagList(data) {
|
||||
data
|
||||
});
|
||||
}
|
||||
/**
|
||||
* 获取试卷创建者list
|
||||
*/
|
||||
export function queryPaperCreatorList(data) {
|
||||
return request({
|
||||
url: `/api/v2/paper/composition/list/creatorInfo`,
|
||||
method: 'POST',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
@ -323,3 +323,11 @@ export function isExistEmail(params) {
|
||||
});
|
||||
}
|
||||
|
||||
// 成工院第三方登录
|
||||
export function cgyThirdLogin(data) {
|
||||
return request({
|
||||
url: '/api/login/cgy/third',
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
@ -847,18 +847,16 @@ class SkinCode extends defaultStyle {
|
||||
trainBody: {
|
||||
fontFamily: 'consolas',
|
||||
trainBodyLineWidth: 1, // 车身line宽
|
||||
changeTrainWidth: true, // 是否根据车身上车组号、服务号、车次号、目的地码显示情况改变列车长度
|
||||
changeTrainWidth: false, // 是否根据车身上车组号、服务号、车次号、目的地码显示情况改变列车长度
|
||||
specialTrainType: [
|
||||
{
|
||||
type: '03',
|
||||
serviceNumber: '---',
|
||||
// nameFormat: 'groupNumber:serviceNumber'
|
||||
nameFormat:'tripNumber'
|
||||
nameFormat: 'groupNumber:serviceNumber'
|
||||
},
|
||||
{
|
||||
type: '03',
|
||||
// nameFormat: 'serviceNumber:trainNumber'
|
||||
nameFormat:'tripNumber'
|
||||
nameFormat: 'serviceNumber:trainNumber'
|
||||
}
|
||||
], // 特殊列车类型需设置显示格式
|
||||
lrPadding: 4, // 两边间隔
|
||||
@ -956,15 +954,15 @@ class SkinCode extends defaultStyle {
|
||||
directionType: [
|
||||
{
|
||||
type: 1,
|
||||
lineLShow: false,
|
||||
lineRShow: false,
|
||||
lineLShow: true,
|
||||
lineRShow: true,
|
||||
arrowLShow: false,
|
||||
arrowRShow: true
|
||||
},
|
||||
{
|
||||
type: 0,
|
||||
lineLShow: false,
|
||||
lineRShow: false,
|
||||
lineLShow: true,
|
||||
lineRShow: true,
|
||||
arrowLShow: true,
|
||||
arrowRShow: false
|
||||
}
|
||||
|
@ -189,6 +189,13 @@ class SkinCode extends defaultStyle {
|
||||
},
|
||||
lowButton:{
|
||||
display: false // 现地 信号机按钮
|
||||
},
|
||||
transmission: { // 传输信号机
|
||||
fillColor: '#f00',
|
||||
fillColorVirtual: '#f00',
|
||||
sideLength: 20,
|
||||
textColor: '#fff',
|
||||
strokeColor: '#00FFFF'
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -233,6 +233,13 @@ class SkinCode extends defaultStyle {
|
||||
fontSize: 12,
|
||||
distance: 20,
|
||||
defaultText: 'E'
|
||||
},
|
||||
transmission: { // 传输信号机
|
||||
fillColor: '#f00',
|
||||
fillColorVirtual: '#f00',
|
||||
sideLength: 20,
|
||||
textColor: '#fff',
|
||||
strokeColor: '#00FFFF'
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -847,6 +847,15 @@ class Signal extends Group {
|
||||
case 'LIGHTING_UNIT_FAULT_HEAD':
|
||||
this.lightingUnitFaultHead();
|
||||
break;
|
||||
case 'R_WIRE_FAULT':
|
||||
this.lightingUnitFaultName();
|
||||
break;
|
||||
case 'G_WIRE_FAULT':
|
||||
this.lightingUnitFaultName();
|
||||
break;
|
||||
case 'Y_WIRE_FAULT':
|
||||
this.lightingUnitFaultName();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@ -922,8 +931,8 @@ class Signal extends Group {
|
||||
// 隐藏自动信号和自动进路
|
||||
setAutoClose() {
|
||||
if (this.style.Signal.auto.autoRouteType != 'text') {
|
||||
this.sigAuto.hide();
|
||||
this.sigAuto.setColor(this.style.backgroundColor);
|
||||
this.sigAuto && this.sigAuto.hide();
|
||||
this.sigAuto && this.sigAuto.setColor(this.style.backgroundColor);
|
||||
} else {
|
||||
this.sigName.setColor(this.style.Signal.text.defaultColor);
|
||||
}
|
||||
|
@ -326,9 +326,9 @@ export default class Switch extends Group {
|
||||
}
|
||||
|
||||
this.name.getTextRect().animateStyle(true)
|
||||
.when(0, { textFill: this.style.backgroundColor })
|
||||
.when(0, { textFill: this.style.transparentColor })
|
||||
.when(1000, { textFill: this.style.Switch.text.borderColor })
|
||||
.when(2000, { textFill: this.style.backgroundColor })
|
||||
.when(2000, { textFill: this.style.transparentColor })
|
||||
.start();
|
||||
}
|
||||
|
||||
@ -354,7 +354,7 @@ export default class Switch extends Group {
|
||||
this.lockCircle && this.lockCircle.hide(); // 圆形包围框
|
||||
this.lockArc && this.lockArc.hide(); // 圆形单锁框
|
||||
this.name.getNameText().stopAnimation(false);
|
||||
this.name.getTextRect().setStyle({ fill: this.style.backgroundColor });
|
||||
this.name.getTextRect().setStyle({ fill: this.style.transparentColor });
|
||||
this.shapeModelC && this.shapeModelC.hide(); // 形状 C
|
||||
this.shapeModelA && this.shapeModelA.hide(); // 形状 A
|
||||
this.shapeModelB && this.shapeModelB.hide(); // 形状 B
|
||||
@ -626,7 +626,7 @@ export default class Switch extends Group {
|
||||
}
|
||||
|
||||
if (this.style.Switch.core.specialCircle) {
|
||||
this.name.getTextRect().setStyle({ fill: this.style.backgroundColor });
|
||||
this.name.getTextRect().setStyle({ fill: this.style.transparentColor });
|
||||
this.setTextColor(this.style.Switch.text.guideMasterLockColor);
|
||||
} else {
|
||||
this.setTextColor(this.style.Switch.text.monolockLocationColor);
|
||||
@ -911,7 +911,7 @@ export default class Switch extends Group {
|
||||
this.setHasTextBorder(1, this.style.Switch.text.fpLockBorderColor);
|
||||
}
|
||||
if (this.style.Switch.core.specialCircle) {
|
||||
this.name.getTextRect().setStyle({ fill: this.style.backgroundColor });
|
||||
this.name.getTextRect().setStyle({ fill: this.style.transparentColor });
|
||||
this.setTextColor(this.style.Switch.text.fpLockColor);
|
||||
}
|
||||
}
|
||||
|
@ -277,9 +277,9 @@ export default {
|
||||
];
|
||||
} else if (selected._type === 'Signal' && this.popClass === 'nanjing-02__systerm') {
|
||||
this.faultList = [
|
||||
{label: '无法开放(非CTC)', value: 'NO_OPEN'},
|
||||
{label: '编号闪', value: 'LIGHTING_UNIT_FAULT_NAME'},
|
||||
{label: '机头闪', value: 'LIGHTING_UNIT_FAULT_HEAD'}
|
||||
{label: '红灯断丝', value: 'R_WIRE_FAULT'},
|
||||
{label: '绿灯断丝', value: 'G_WIRE_FAULT'},
|
||||
{label: '黄灯断丝', value: 'Y_WIRE_FAULT'}
|
||||
];
|
||||
} else if (selected._type === 'Section' && this.popClass === 'nanjing-02__systerm') {
|
||||
this.faultList = [
|
||||
|
@ -24,7 +24,7 @@
|
||||
</el-row>
|
||||
<div style="padding: 10px 15px; border: 1px double lightgray;height: 60px;margin-top: 15px;">
|
||||
<span class="base-label" style="left:-10px;background:#f0f0f0;">钩锁位置</span>
|
||||
<div style=" position: relative; top:-10px;">
|
||||
<div style=" position: relative; top:10px;">
|
||||
<el-radio-group v-model="normal">
|
||||
<el-radio :label="true">定位</el-radio>
|
||||
<el-radio :label="false">反位</el-radio>
|
||||
|
@ -46,20 +46,20 @@ export default {
|
||||
data() {
|
||||
return {
|
||||
menuNormal: [
|
||||
{
|
||||
title: this.$t('menu.menuBar.system'),
|
||||
operate: OperationEvent.Command.mBar.system,
|
||||
click: this.undeveloped,
|
||||
children: [
|
||||
]
|
||||
},
|
||||
{
|
||||
title: this.$t('menu.menuBar.view'),
|
||||
operate: OperationEvent.Command.mBar.check,
|
||||
click: this.undeveloped,
|
||||
children: [
|
||||
]
|
||||
},
|
||||
// {
|
||||
// title: this.$t('menu.menuBar.system'),
|
||||
// operate: OperationEvent.Command.mBar.system,
|
||||
// click: this.undeveloped,
|
||||
// children: [
|
||||
// ]
|
||||
// },
|
||||
// {
|
||||
// title: this.$t('menu.menuBar.view'),
|
||||
// operate: OperationEvent.Command.mBar.check,
|
||||
// click: this.undeveloped,
|
||||
// children: [
|
||||
// ]
|
||||
// },
|
||||
{
|
||||
title: this.$t('menu.menuBar.refresh'),
|
||||
operate: OperationEvent.Command.mBar.fresh,
|
||||
@ -70,7 +70,7 @@ export default {
|
||||
{
|
||||
title: this.$t('menu.menuBar.display'),
|
||||
operate: OperationEvent.Command.mBar.view,
|
||||
click: this.undeveloped,
|
||||
// click: this.undeveloped,
|
||||
children: [
|
||||
{
|
||||
title: this.$t('menu.menuBar.setTrainIdDisplay'),
|
||||
@ -89,13 +89,13 @@ export default {
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
title: this.$t('menu.menuBar.stationMapSwitch'),
|
||||
operate: '',
|
||||
click: this.undeveloped,
|
||||
children: [
|
||||
]
|
||||
},
|
||||
// {
|
||||
// title: this.$t('menu.menuBar.stationMapSwitch'),
|
||||
// operate: '',
|
||||
// click: this.undeveloped,
|
||||
// children: [
|
||||
// ]
|
||||
// },
|
||||
{
|
||||
title: this.$t('menu.menuBar.planCarOperation'),
|
||||
operate: OperationEvent.Command.mBar.planTrain,
|
||||
@ -117,13 +117,13 @@ export default {
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
title: this.$t('menu.menuBar.trainNumberMaintenance'),
|
||||
operate: '',
|
||||
click: this.undeveloped,
|
||||
children: [
|
||||
]
|
||||
},
|
||||
// {
|
||||
// title: this.$t('menu.menuBar.trainNumberMaintenance'),
|
||||
// operate: '',
|
||||
// click: this.undeveloped,
|
||||
// children: [
|
||||
// ]
|
||||
// },
|
||||
{
|
||||
title: this.$t('menu.menuBar.controlModeSwitch'),
|
||||
operate: OperationEvent.Command.mBar.remoteControl,
|
||||
@ -147,27 +147,27 @@ export default {
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
title: this.$t('menu.menuBar.requestOperationArea'),
|
||||
operate: OperationEvent.Command.mBar.requestZone,
|
||||
click: this.undeveloped,
|
||||
children: [
|
||||
]
|
||||
},
|
||||
{
|
||||
title: this.$t('menu.menuBar.schedulingLog'),
|
||||
operate: '',
|
||||
click: this.undeveloped,
|
||||
children: [
|
||||
]
|
||||
},
|
||||
{
|
||||
title: this.$t('menu.menuBar.systemAnalysis'),
|
||||
operate: '',
|
||||
click: this.undeveloped,
|
||||
children: [
|
||||
]
|
||||
},
|
||||
// {
|
||||
// title: this.$t('menu.menuBar.requestOperationArea'),
|
||||
// operate: OperationEvent.Command.mBar.requestZone,
|
||||
// click: this.undeveloped,
|
||||
// children: [
|
||||
// ]
|
||||
// },
|
||||
// {
|
||||
// title: this.$t('menu.menuBar.schedulingLog'),
|
||||
// operate: '',
|
||||
// click: this.undeveloped,
|
||||
// children: [
|
||||
// ]
|
||||
// },
|
||||
// {
|
||||
// title: this.$t('menu.menuBar.systemAnalysis'),
|
||||
// operate: '',
|
||||
// click: this.undeveloped,
|
||||
// children: [
|
||||
// ]
|
||||
// },
|
||||
{
|
||||
title: this.$t('menu.menuBar.userManage'),
|
||||
operate: OperationEvent.Command.mBar.userManage,
|
||||
@ -179,13 +179,13 @@ export default {
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
title: this.$t('menu.menuBar.historyQuery'),
|
||||
operate: OperationEvent.Command.mBar.historyQuery,
|
||||
click: this.undeveloped,
|
||||
children: [
|
||||
]
|
||||
},
|
||||
// {
|
||||
// title: this.$t('menu.menuBar.historyQuery'),
|
||||
// operate: OperationEvent.Command.mBar.historyQuery,
|
||||
// click: this.undeveloped,
|
||||
// children: [
|
||||
// ]
|
||||
// },
|
||||
{
|
||||
title: this.$t('menu.menuBar.help'),
|
||||
operate: OperationEvent.Command.mBar.help,
|
||||
|
@ -37,20 +37,20 @@ export default {
|
||||
data() {
|
||||
return {
|
||||
menuNormal: [
|
||||
{
|
||||
title: this.$t('menu.menuBar.system'),
|
||||
operate: OperationEvent.Command.mBar.system,
|
||||
click: this.undeveloped,
|
||||
children: [
|
||||
]
|
||||
},
|
||||
{
|
||||
title: this.$t('menu.menuBar.view'),
|
||||
operate: OperationEvent.Command.mBar.check,
|
||||
click: this.undeveloped,
|
||||
children: [
|
||||
]
|
||||
},
|
||||
// {
|
||||
// title: this.$t('menu.menuBar.system'),
|
||||
// operate: OperationEvent.Command.mBar.system,
|
||||
// click: this.undeveloped,
|
||||
// children: [
|
||||
// ]
|
||||
// },
|
||||
// {
|
||||
// title: this.$t('menu.menuBar.view'),
|
||||
// operate: OperationEvent.Command.mBar.check,
|
||||
// click: this.undeveloped,
|
||||
// children: [
|
||||
// ]
|
||||
// },
|
||||
{
|
||||
title: this.$t('menu.menuBar.refresh'),
|
||||
operate: OperationEvent.Command.mBar.fresh,
|
||||
@ -61,7 +61,7 @@ export default {
|
||||
{
|
||||
title: this.$t('menu.menuBar.display'),
|
||||
operate: OperationEvent.Command.mBar.view,
|
||||
click: this.undeveloped,
|
||||
// click: this.undeveloped,
|
||||
children: [
|
||||
{
|
||||
title: this.$t('menu.menuBar.setTrainIdDisplay'),
|
||||
@ -80,17 +80,17 @@ export default {
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
title: this.$t('menu.menuBar.stationMapSwitch'),
|
||||
operate: '',
|
||||
click: this.undeveloped,
|
||||
children: [
|
||||
]
|
||||
},
|
||||
// {
|
||||
// title: this.$t('menu.menuBar.stationMapSwitch'),
|
||||
// operate: '',
|
||||
// click: this.undeveloped,
|
||||
// children: [
|
||||
// ]
|
||||
// },
|
||||
{
|
||||
title: this.$t('menu.menuBar.controlModeSwitch'),
|
||||
operate: OperationEvent.Command.mBar.remoteControl,
|
||||
click: this.undeveloped,
|
||||
// click: this.undeveloped,
|
||||
children: [
|
||||
{
|
||||
title: this.$t('menu.menuBar.toStationControl'),
|
||||
@ -110,20 +110,20 @@ export default {
|
||||
// }
|
||||
]
|
||||
},
|
||||
{
|
||||
title: this.$t('menu.menuBar.requestOperationArea'),
|
||||
operate: OperationEvent.Command.mBar.requestZone,
|
||||
click: this.undeveloped,
|
||||
children: [
|
||||
]
|
||||
},
|
||||
{
|
||||
title: this.$t('menu.menuBar.historyQuery'),
|
||||
operate: OperationEvent.Command.mBar.historyQuery,
|
||||
click: this.undeveloped,
|
||||
children: [
|
||||
]
|
||||
},
|
||||
// {
|
||||
// title: this.$t('menu.menuBar.requestOperationArea'),
|
||||
// operate: OperationEvent.Command.mBar.requestZone,
|
||||
// click: this.undeveloped,
|
||||
// children: [
|
||||
// ]
|
||||
// },
|
||||
// {
|
||||
// title: this.$t('menu.menuBar.historyQuery'),
|
||||
// operate: OperationEvent.Command.mBar.historyQuery,
|
||||
// click: this.undeveloped,
|
||||
// children: [
|
||||
// ]
|
||||
// },
|
||||
{
|
||||
title: this.$t('menu.menuBar.userManage'),
|
||||
operate: OperationEvent.Command.mBar.userManage,
|
||||
|
@ -152,11 +152,11 @@ export default {
|
||||
}
|
||||
],
|
||||
menuSpeed: [
|
||||
{
|
||||
label: this.$t('menu.menuTrain.confirmRunToFrontStation'),
|
||||
handler: this.undeveloped,
|
||||
cmdType:CMD.Train.CMD_TRAIN_MANUAL_LIMIT_DRIVE
|
||||
}
|
||||
// {
|
||||
// label: this.$t('menu.menuTrain.confirmRunToFrontStation'),
|
||||
// handler: this.undeveloped,
|
||||
// cmdType:CMD.Train.CMD_TRAIN_MANUAL_LIMIT_DRIVE
|
||||
// }
|
||||
]
|
||||
};
|
||||
},
|
||||
|
@ -664,9 +664,9 @@ export default {
|
||||
this.param = { routeCode: this.route.code };
|
||||
}
|
||||
this.tempData = [];
|
||||
this.selectRouteList.forEach(el => {
|
||||
this.tempData.push(el);
|
||||
});
|
||||
// this.selectRouteList.forEach(el => {
|
||||
// this.tempData.push(el);
|
||||
// });
|
||||
},
|
||||
// 校验上次点击信号机
|
||||
checkSignal() {
|
||||
@ -786,6 +786,10 @@ export default {
|
||||
}
|
||||
});
|
||||
this.tempData = [...overlapList];
|
||||
} else if (row.cmdType === CMD.Signal.CMD_SIGNAL_SET_ROUTE || row.cmdType === CMD.Signal.CMD_SIGNAL_CANCEL_ROUTE) {
|
||||
this.selectRouteList.forEach(el => {
|
||||
this.tempData.push(el);
|
||||
});
|
||||
}
|
||||
|
||||
if (this.tempData.length) {
|
||||
|
@ -740,9 +740,9 @@ export default {
|
||||
this.param = { routeCode: this.route.code };
|
||||
}
|
||||
this.tempData = [];
|
||||
this.selectRouteList.forEach(el => {
|
||||
this.tempData.push(el);
|
||||
});
|
||||
// this.selectRouteList.forEach(el => {
|
||||
// this.tempData.push(el);
|
||||
// });
|
||||
},
|
||||
// 校验上次点击信号机
|
||||
checkSignal() {
|
||||
@ -862,6 +862,10 @@ export default {
|
||||
}
|
||||
});
|
||||
this.tempData = [...overlapList];
|
||||
} else if (row.cmdType === CMD.Signal.CMD_SIGNAL_SET_ROUTE || row.cmdType === CMD.Signal.CMD_SIGNAL_CANCEL_ROUTE) {
|
||||
this.selectRouteList.forEach(el => {
|
||||
this.tempData.push(el);
|
||||
});
|
||||
}
|
||||
|
||||
if (this.tempData.length) {
|
||||
|
@ -3,12 +3,12 @@ import store from '@/store/index';
|
||||
import router from './router/index';
|
||||
import NProgress from 'nprogress';
|
||||
import 'nprogress/nprogress.css';
|
||||
import { setToken, getToken, getSessionStorage, setSessionStorage } from '@/utils/auth';
|
||||
import { setToken, getToken, getSessionStorage, setSessionStorage, removeToken } from '@/utils/auth';
|
||||
import { getFrontProjectConfigByLogin} from '@/api/projectConfig';
|
||||
import localStore from 'storejs';
|
||||
import { handlerUrl } from '@/utils/baseUrl';
|
||||
|
||||
const whiteList = ['/login', '/design/login', '/loginNew', '/gzzbxy/relay', '/authorization', '/AUSline', '/AUStool', '/demo', '/thirdLogin']; // 不重定向白名单
|
||||
const whiteList = ['/login', '/design/login', '/loginNew', '/gzzbxy/relay', '/authorization', '/AUSline', '/AUStool', '/demo', '/thirdLogin', '/cgyLogin']; // 不重定向白名单
|
||||
|
||||
// 登录路径判断获取
|
||||
function getRouteInfo(to) {
|
||||
@ -83,7 +83,10 @@ function handleRoute(to, next, loginPath) {
|
||||
// store.dispatch('subscribe', {header, type: getSessionStorage('project')});
|
||||
// }
|
||||
// }
|
||||
router.beforeEach( async (to, from, next) => {
|
||||
router.beforeEach(async (to, from, next) => {
|
||||
if (to.path == '/thirdLogin') { // 到第三方登录页面时先删除之前的token
|
||||
removeToken();
|
||||
}
|
||||
// 判断第三方登陆
|
||||
if (to.query.thirdJump) {
|
||||
setToken(to.query.key);
|
||||
|
@ -220,6 +220,7 @@ const UserRulesManage = () => import('@/views/userRulesManage/index');
|
||||
const AuthorityTransfer = () => import('@/views/authorityTransfer/index');
|
||||
const CreateDistribute = () => import('@/views/authorityTransfer/create/index');
|
||||
const ThirdJumpSim = () => import('@/views/newMap/display/thirdJump');
|
||||
const CgyLogin = () => import('@/views/thirdLogin/cgyLogin');
|
||||
const TmsPage = () => import('@/views/jlmap3d/drive/sceneview/tmsPage');
|
||||
|
||||
const ContestSubjectManage = () => import('@/views/contestDataManage/contestSubjectManage/ContestSubjectManage');
|
||||
@ -430,6 +431,11 @@ export const constantRoutes = [
|
||||
component: ThirdJumpSim,
|
||||
hidden: true
|
||||
},
|
||||
{
|
||||
path: '/cgyLogin',
|
||||
component: CgyLogin,
|
||||
hidden: true
|
||||
},
|
||||
{
|
||||
path: '/404',
|
||||
component: Errpr404,
|
||||
|
@ -629,13 +629,6 @@ const map = {
|
||||
return [];
|
||||
}
|
||||
},
|
||||
stationCircleList: state => {
|
||||
if (state.nccData) {
|
||||
return state.nccData.stationCircleList || [];
|
||||
} else {
|
||||
return [];
|
||||
}
|
||||
},
|
||||
// trainDetails: (state) => {
|
||||
// return state.trainDetails;
|
||||
// },
|
||||
|
@ -6,7 +6,7 @@
|
||||
:playsinline="false"
|
||||
:options="playOptions"
|
||||
@play="onPlayerPlay($event)"
|
||||
@timeupdate="onPlayerTimeupdate($event)"
|
||||
@pause="onPlayerPause($event)"
|
||||
/>
|
||||
</div>
|
||||
</el-dialog>
|
||||
@ -69,6 +69,7 @@ export default {
|
||||
});
|
||||
},
|
||||
handleClose() {
|
||||
this.$refs.videoPlayer.player.pause();
|
||||
this.dialogVisible = false;
|
||||
},
|
||||
onPlayerPlay(player) {
|
||||
@ -89,14 +90,6 @@ export default {
|
||||
},
|
||||
onPlayerPause(player) {
|
||||
this.playedTime = player.currentTime();
|
||||
},
|
||||
onPlayerTimeupdate(player) {
|
||||
const timeDisplay = player.currentTime();
|
||||
if (timeDisplay - this.currentTime > 1) {
|
||||
player.currentTime(this.currentTime > this.maxTime ? this.currentTime : this.maxTime);
|
||||
}
|
||||
this.currentTime = player.currentTime();
|
||||
this.maxTime = this.currentTime > this.maxTime ? this.currentTime : this.maxTime;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
@ -44,7 +44,8 @@
|
||||
</div>
|
||||
<div style="text-align: center;margin-top: 15px;">
|
||||
<el-button v-show="nowData.ruleId" v-loading="loading" type="primary" @click="showScoreRule">评分表</el-button>
|
||||
<el-button v-show="nowData.sceneId&&nowData.scenetype!=='Video'" v-loading="loading" type="primary" @click="startTask">开始任务</el-button>
|
||||
<el-button v-show="nowData.sceneId&&nowData.scenetype=='Local'" v-loading="loading" type="primary" @click="startTask">开始任务</el-button>
|
||||
<el-button v-show="nowData.sceneId&&nowData.scenetype=='Link'" v-loading="loading" type="primary" @click="startThreeTask">开始任务</el-button>
|
||||
<el-button v-show="nowData.sceneId&&nowData.scenetype=='Video'" type="primary" @click="playSceneVideo">播放视频</el-button>
|
||||
<el-button v-loading="loading" type="primary" :disabled="nowKey === taskList.length-1" @click="nextTask">下一任务</el-button>
|
||||
</div>
|
||||
@ -58,6 +59,7 @@
|
||||
<script>
|
||||
import { getTaskTree, getContextSenceDetail} from '@/api/contest';
|
||||
import { createSimulationNoFunction } from '@/api/simulation';
|
||||
import { getToken } from '@/utils/auth';
|
||||
import { getPublishMapInfo } from '@/api/jmap/map';
|
||||
import ScoreRule from './scoreRule';
|
||||
import PlayVideo from './PlayVideo';
|
||||
@ -180,6 +182,17 @@ export default {
|
||||
this.loading = false;
|
||||
}
|
||||
},
|
||||
startThreeTask() {
|
||||
this.loading = true;
|
||||
getContextSenceDetail(this.nowData.sceneId).then((res) => {
|
||||
const url = res.data.scene.url;
|
||||
const token = getToken();
|
||||
window.open(`${url}${token}`, '_blank');
|
||||
this.loading = false;
|
||||
}).catch(error => {
|
||||
this.$message.error(error.message);
|
||||
});
|
||||
},
|
||||
showScoreRule() {
|
||||
this.$refs.scoreRule.doShow(this.nowData.ruleId);
|
||||
},
|
||||
|
@ -2,16 +2,18 @@
|
||||
<div>
|
||||
<query-list-page ref="user" :card-padding="10" :pager-config="pagerConfig" :query-form="queryForm" :query-list="queryList" />
|
||||
<upload-Video ref="uploadVideo" @reloadTable="reloadTable" />
|
||||
<add-three ref="upThree" @reloadTable="reloadTable" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { queryContestSencePaged, deleteContestSence } from '@/api/contest';
|
||||
import UploadVideo from './UploadVideo';
|
||||
import addThree from './addThree';
|
||||
export default {
|
||||
name: 'ContestSeasonManage',
|
||||
components: {
|
||||
UploadVideo
|
||||
UploadVideo, addThree
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
@ -92,6 +94,13 @@ export default {
|
||||
return row.type == 'Video';
|
||||
}
|
||||
},
|
||||
{
|
||||
name: '编辑',
|
||||
handleClick: this.doEditLink,
|
||||
showControl: row => {
|
||||
return row.type == 'Link';
|
||||
}
|
||||
},
|
||||
{
|
||||
name: '删 除',
|
||||
handleClick: this.doDelete,
|
||||
@ -101,7 +110,8 @@ export default {
|
||||
}
|
||||
],
|
||||
actions: [
|
||||
{ text: '上 传', handler: this.doUpload }
|
||||
{ text: '上 传', handler: this.doUpload },
|
||||
{ text: '添 加', handler: this.doUpThree }
|
||||
]
|
||||
}
|
||||
};
|
||||
@ -116,6 +126,12 @@ export default {
|
||||
doEdit(index, row) {
|
||||
this.$refs.uploadVideo.doShow(row.id);
|
||||
},
|
||||
doUpThree() {
|
||||
this.$refs.upThree.doShow();
|
||||
},
|
||||
doEditLink(index, row) {
|
||||
this.$refs.upThree.doShow(row.id);
|
||||
},
|
||||
doDelete(index, row) {
|
||||
this.$confirm('该操作将删除竞赛场景,是否继续?', '提 示', {
|
||||
confirmButtonText: '确 定',
|
||||
|
108
src/views/contestDataManage/contestSceneManage/addThree.vue
Normal file
108
src/views/contestDataManage/contestSceneManage/addThree.vue
Normal file
@ -0,0 +1,108 @@
|
||||
<template>
|
||||
<el-dialog v-dialogDrag :title="title" :visible.sync="dialogVisible" width="500px" :before-close="handleClose" center :close-on-click-modal="false">
|
||||
<el-form ref="ruleForm" :model="formModel" :rules="rules" label-width="100px">
|
||||
<el-form-item label="场景名称:" prop="name">
|
||||
<el-input v-model="formModel.name" style="width: 350px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="场景url:" prop="url">
|
||||
<el-input v-model="formModel.url" type="textarea" style="width:350px;" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<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 { saveSceneVideo, editSceneVideo, getContextSenceDetail } from '@/api/contest';
|
||||
export default {
|
||||
name: 'AddContestTask',
|
||||
data() {
|
||||
return {
|
||||
dialogVisible: false,
|
||||
formModel: {
|
||||
id: '',
|
||||
name: '',
|
||||
url: ''
|
||||
},
|
||||
loading: false
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
rules() {
|
||||
const crules = {
|
||||
name: [
|
||||
{ required: true, message: '请输入场景名称', trigger: 'blur' }
|
||||
],
|
||||
url: [
|
||||
{ required: true, message: '请输入场景url', trigger: 'blur' }
|
||||
]
|
||||
};
|
||||
return crules;
|
||||
},
|
||||
title() {
|
||||
return this.formModel.id ? '修改三维场景' : '新建三维场景';
|
||||
}
|
||||
},
|
||||
methods:{
|
||||
doShow(sceneId) {
|
||||
this.dialogVisible = true;
|
||||
if (sceneId) {
|
||||
this.formModel.id = sceneId;
|
||||
getContextSenceDetail(sceneId).then((res) => {
|
||||
this.formModel.name = res.data.name;
|
||||
this.formModel.url = res.data.scene.url;
|
||||
}).catch(error => {
|
||||
this.$message.error(error.message);
|
||||
});
|
||||
} else {
|
||||
this.formModel = {
|
||||
id: '',
|
||||
name: '',
|
||||
url: ''
|
||||
};
|
||||
}
|
||||
},
|
||||
handleClose() {
|
||||
this.formModel = {
|
||||
id: '',
|
||||
name: '',
|
||||
url: ''
|
||||
};
|
||||
this.dialogVisible = false;
|
||||
this.loading = false;
|
||||
},
|
||||
doSave() {
|
||||
this.$refs.ruleForm.validate((valid) => {
|
||||
if (valid) {
|
||||
this.loading = true;
|
||||
const data = { name:this.formModel.name, type:'Link',
|
||||
scene:{url:this.formModel.url}};
|
||||
if (this.formModel.id) {
|
||||
editSceneVideo(this.formModel.id, data).then(() => {
|
||||
this.$message.success('修改三维场景成功!');
|
||||
this.handleClose();
|
||||
this.$emit('reloadTable');
|
||||
}).catch(error => {
|
||||
this.$message.error(error.message);
|
||||
this.loading = false;
|
||||
});
|
||||
} else {
|
||||
saveSceneVideo(data).then(() => {
|
||||
this.$message.success('创建三维场景成功!');
|
||||
this.handleClose();
|
||||
this.$emit('reloadTable');
|
||||
}).catch(error => {
|
||||
this.$message.error(error.message);
|
||||
this.loading = false;
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
@ -58,7 +58,7 @@ export default {
|
||||
mapPublishList: [],
|
||||
pageTreeMap: {
|
||||
'01': [],
|
||||
'49': [
|
||||
'63': [
|
||||
{
|
||||
// 牵引降压混合变电所主接线图 变电所接线图 降压变电所主接线图 解除网图 混合变电所主接线图
|
||||
name: '电力监控系统',
|
||||
|
@ -471,7 +471,11 @@ export default {
|
||||
const audio = document.getElementById(position.toLowerCase() + '_voice');
|
||||
if (!audio) { return; }
|
||||
audio.pause();
|
||||
audio.src = this.$store.state.user.ossUrl + info.url;
|
||||
if(info.url.startsWith('http')) {
|
||||
audio.src = info.url;
|
||||
} else {
|
||||
audio.src = this.$store.state.user.ossUrl + info.url;
|
||||
}
|
||||
audio.play();
|
||||
const _that = this;
|
||||
audio.addEventListener('ended', function() {
|
||||
|
@ -86,7 +86,7 @@ import { getByGroupStationList } from '@/api/jmap/map';
|
||||
import { getToken } from '@/utils/auth';
|
||||
// import { getSessionStorage } from '@/utils/auth';
|
||||
import { creatSubscribe, clearSubscribe, displayTopic} from '@/utils/stomp';
|
||||
import { clearSimulation } from '@/api/simulation';
|
||||
import { destroySimulationByAdmin } from '@/api/simulation';
|
||||
|
||||
import alarmConfig from './stationConfig/dialog/alarm';
|
||||
import incidentConfig from './stationConfig/dialog/incident';
|
||||
@ -117,27 +117,27 @@ export default {
|
||||
id: 'substation',
|
||||
type: 'interface'
|
||||
},
|
||||
{
|
||||
name: '能耗检测管理系统',
|
||||
mode: 'energyDetected',
|
||||
id: 'energyDetected',
|
||||
type: 'interface'
|
||||
}
|
||||
// {
|
||||
// name: '能耗检测管理系统',
|
||||
// mode: 'energyDetected',
|
||||
// id: 'energyDetected',
|
||||
// type: 'interface'
|
||||
// }
|
||||
] },
|
||||
environment:{name:'环境与设备监控系统', type:'totalSystem', id: 'environment', active:false, icon:iscs_icon3,
|
||||
children:[
|
||||
{
|
||||
name: '车站模式管理器',
|
||||
mode: 'environmentOne',
|
||||
id: 'environmentOne',
|
||||
type: 'interface'
|
||||
},
|
||||
{
|
||||
name: '时间管理器',
|
||||
mode: 'environmentTwo',
|
||||
id: 'environmentTwo',
|
||||
type: 'interface'
|
||||
},
|
||||
// {
|
||||
// name: '车站模式管理器',
|
||||
// mode: 'environmentOne',
|
||||
// id: 'environmentOne',
|
||||
// type: 'interface'
|
||||
// },
|
||||
// {
|
||||
// name: '时间管理器',
|
||||
// mode: 'environmentTwo',
|
||||
// id: 'environmentTwo',
|
||||
// type: 'interface'
|
||||
// },
|
||||
{
|
||||
name: '隧道通风系统',
|
||||
mode: 'environmentThree',
|
||||
@ -257,32 +257,32 @@ export default {
|
||||
]},
|
||||
signalSystem:{name:'信号系统', type:'totalSystem', id: 'signalSystem', mode: 'signalSystem', active:false, icon:iscs_icon7,
|
||||
children:[
|
||||
{
|
||||
name: 'TIS管理器',
|
||||
mode: 'tis',
|
||||
id: 'tis',
|
||||
type: 'interface',
|
||||
disabled: true
|
||||
},
|
||||
// {
|
||||
// name: 'TIS管理器',
|
||||
// mode: 'tis',
|
||||
// id: 'tis',
|
||||
// type: 'interface',
|
||||
// disabled: true
|
||||
// },
|
||||
{
|
||||
name: '列车时刻表',
|
||||
mode: 'schedule',
|
||||
id: 'schedule',
|
||||
type: 'interface'
|
||||
},
|
||||
{
|
||||
name: '信号系统',
|
||||
mode: 'signal',
|
||||
id: 'signal',
|
||||
type: 'interface'
|
||||
},
|
||||
{
|
||||
name: '全线信号系统界面',
|
||||
mode: 'allLineSignal',
|
||||
id: 'allLineSignal',
|
||||
type: 'interface',
|
||||
disabled: true
|
||||
}
|
||||
// {
|
||||
// name: '信号系统',
|
||||
// mode: 'signal',
|
||||
// id: 'signal',
|
||||
// type: 'interface'
|
||||
// },
|
||||
// {
|
||||
// name: '全线信号系统界面',
|
||||
// mode: 'allLineSignal',
|
||||
// id: 'allLineSignal',
|
||||
// type: 'interface',
|
||||
// disabled: true
|
||||
// }
|
||||
]},
|
||||
communication:{name:'通信', type:'totalSystem', id: 'communication', active:false, icon:iscs_icon7,
|
||||
children:[
|
||||
@ -365,7 +365,7 @@ export default {
|
||||
res.data.forEach(station => {
|
||||
if (!station.depot && station.visible) {
|
||||
const param = {
|
||||
name: station.runPlanName.includes('站') ? station.runPlanName : `${station.runPlanName}站`,
|
||||
name: station.name,
|
||||
id: station.code
|
||||
};
|
||||
|
||||
@ -492,13 +492,16 @@ export default {
|
||||
this.$store.dispatch('LogOut').then(() => {
|
||||
location.reload();
|
||||
});
|
||||
} else {
|
||||
clearSimulation(this.$route.query.group).then(resp => {
|
||||
this.$router.push({ path: `/trainingPlatform` });
|
||||
} else if(this.$store.state.training.simulationCreator){
|
||||
destroySimulationByAdmin(this.$route.query.group).then(resp => {
|
||||
history.go(-1);
|
||||
}).catch(()=> {
|
||||
this.$message.error('清除仿真失败!');
|
||||
});
|
||||
}
|
||||
} else {
|
||||
history.go(-1);
|
||||
}
|
||||
|
||||
},
|
||||
quit() {
|
||||
window.close();
|
||||
|
@ -488,7 +488,11 @@ export default {
|
||||
const audio = document.getElementById(position.toLowerCase() + '_voice');
|
||||
if (!audio) { return; }
|
||||
audio.pause();
|
||||
audio.src = this.$store.state.user.ossUrl + info.url;
|
||||
if(info.url.startsWith('http')) {
|
||||
audio.src = info.url;
|
||||
} else {
|
||||
audio.src = this.$store.state.user.ossUrl + info.url;
|
||||
}
|
||||
audio.play();
|
||||
// const _that = this;
|
||||
// audio.addEventListener('ended', function() {
|
||||
@ -635,13 +639,13 @@ export default {
|
||||
return;
|
||||
}
|
||||
sendCommandNew(this.$route.query.group, 'ISCS_PA_Stop_Playing', { iscsDeviceCodes: iscsDeviceCodes }).then(resp => {
|
||||
// positionList.forEach(elem => {
|
||||
// const audio = document.getElementById(elem.toLowerCase() + '_voice');
|
||||
// audio.pause();
|
||||
// });
|
||||
// const audio = document.getElementById('voice');
|
||||
// audio.pause();
|
||||
}).catch(() => {
|
||||
positionList.forEach(elem => {
|
||||
const audio = document.getElementById(elem.toLowerCase() + '_voice');
|
||||
audio && audio.pause();
|
||||
});
|
||||
const audio = document.getElementById('voice');
|
||||
audio.pause();
|
||||
}).catch((e) => {
|
||||
this.$message.error('背景音乐终止播放失败!');
|
||||
});
|
||||
},
|
||||
|
@ -24,7 +24,6 @@ export default {
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
|
||||
},
|
||||
methods:{
|
||||
selectIscsPane(param) {
|
||||
|
@ -62,6 +62,9 @@ export default {
|
||||
watch:{
|
||||
'mode':function() {
|
||||
this.getInitData();
|
||||
},
|
||||
'stationId':function() {
|
||||
this.getInitData();
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
@ -94,6 +97,7 @@ export default {
|
||||
getInitData() {
|
||||
let userInterface = '';
|
||||
this.system = 'environment';
|
||||
console.log(this.stationName, '====')
|
||||
if (this.mode == 'environmentThree') {
|
||||
this.title = this.stationName + ' 隧道通风系统';
|
||||
this.scaleRate = window.innerWidth / 2000;
|
||||
|
@ -47,6 +47,9 @@ export default {
|
||||
watch:{
|
||||
'mode':function() {
|
||||
this.getInitData();
|
||||
},
|
||||
'stationId':function() {
|
||||
this.getInitData();
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
|
@ -33,6 +33,7 @@ import PidsEmergency from '../config/pis/emergencyRelease';
|
||||
import PidsMain from '../config/pis/mainScreen';
|
||||
import PidsPreview from '../config/pis/timePreview';
|
||||
import PidsLcd from '../config/pis/lcdControl';
|
||||
import { EventBus } from '@/scripts/event-bus';
|
||||
|
||||
export default {
|
||||
name:'StationConfig',
|
||||
@ -67,6 +68,14 @@ export default {
|
||||
]
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
EventBus.$on('iscsModeChange', (type) => {
|
||||
this.mode = type;
|
||||
});
|
||||
},
|
||||
beforeDestroy() {
|
||||
EventBus.$off('iscsModeChange',(type) => {this.mode = type});
|
||||
},
|
||||
methods:{
|
||||
showPane(param) {
|
||||
this.mode = param.type;
|
||||
|
@ -18,6 +18,7 @@ import ProtectReset from './dialog/protectReset';
|
||||
import mapElement from '@/iscs/status/mapElement.js';
|
||||
import {deviceFactory} from '@/iscs/utils/parser';
|
||||
import { setNum } from '@/iscs/status/mapElement.js';
|
||||
import { EventBus } from '@/scripts/event-bus';
|
||||
|
||||
export default {
|
||||
name: 'IscsStation',
|
||||
@ -109,15 +110,6 @@ export default {
|
||||
|
||||
onlclick(em) {
|
||||
// 父编组上元素内容
|
||||
const query = {
|
||||
stationName: this.$route.query.stationName,
|
||||
stationId: this.$route.query.stationId,
|
||||
group: this.$route.query.group,
|
||||
mapId: this.$route.query.mapId,
|
||||
lineCode:'02',
|
||||
noPreLogout:this.$route.query.noPreLogout,
|
||||
partId: ''
|
||||
};
|
||||
let type = '';
|
||||
if (em.deviceType == 'IscsButton') {
|
||||
if (em.deviceModel.function == 'goToStand') {
|
||||
@ -149,7 +141,7 @@ export default {
|
||||
|
||||
}
|
||||
if (type) {
|
||||
this.$router.replace({ path: `/displayIscs/system/stationConfig/${type}`, query: query });
|
||||
EventBus.$emit('iscsModeChange', type)
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -43,6 +43,11 @@ export default {
|
||||
scaleRate:window.innerWidth / 2200,
|
||||
height: 1000
|
||||
};
|
||||
},
|
||||
watch:{
|
||||
'stationId':function() {
|
||||
this.getInitData();
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.getInitData();
|
||||
|
@ -46,6 +46,9 @@ export default {
|
||||
},
|
||||
'mode':function() {
|
||||
this.getInitData();
|
||||
},
|
||||
'stationId':function() {
|
||||
this.getInitData();
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
@ -104,7 +107,7 @@ export default {
|
||||
color: #d8e9a5;
|
||||
font-size: 25px;
|
||||
}
|
||||
.fasIndex{
|
||||
.fasIndex{
|
||||
display: inline-block;
|
||||
width:100%;
|
||||
height:100%;
|
||||
@ -116,4 +119,3 @@ export default {
|
||||
display: inline-block;
|
||||
}
|
||||
</style>
|
||||
|
@ -82,6 +82,7 @@ import iscs_icon7 from '@/assets/iscs_system/iscs_icon7.png';
|
||||
import alarmConfig from './stationConfig/dialog/alarm';
|
||||
import incidentConfig from './stationConfig/dialog/incident';
|
||||
import malfunction from './stationConfig/dialog/malfunction';
|
||||
import { destroySimulationByAdmin } from '@/api/simulation';
|
||||
export default {
|
||||
name:'StationNav',
|
||||
components: {
|
||||
@ -106,27 +107,27 @@ export default {
|
||||
id: 'substation',
|
||||
type: 'interface'
|
||||
},
|
||||
{
|
||||
name: '能耗检测管理系统',
|
||||
mode: 'energyDetected',
|
||||
id: 'energyDetected',
|
||||
type: 'interface'
|
||||
}
|
||||
// {
|
||||
// name: '能耗检测管理系统',
|
||||
// mode: 'energyDetected',
|
||||
// id: 'energyDetected',
|
||||
// type: 'interface'
|
||||
// }
|
||||
] },
|
||||
environment:{name:'环境与设备监控系统', type:'totalSystem', id: 'environment', active:false, icon:iscs_icon3,
|
||||
children:[
|
||||
{
|
||||
name: '车站模式管理器',
|
||||
mode: 'environmentOne',
|
||||
id: 'environmentOne',
|
||||
type: 'interface'
|
||||
},
|
||||
{
|
||||
name: '时间管理器',
|
||||
mode: 'environmentTwo',
|
||||
id: 'environmentTwo',
|
||||
type: 'interface'
|
||||
},
|
||||
// {
|
||||
// name: '车站模式管理器',
|
||||
// mode: 'environmentOne',
|
||||
// id: 'environmentOne',
|
||||
// type: 'interface'
|
||||
// },
|
||||
// {
|
||||
// name: '时间管理器',
|
||||
// mode: 'environmentTwo',
|
||||
// id: 'environmentTwo',
|
||||
// type: 'interface'
|
||||
// },
|
||||
{
|
||||
name: '隧道通风系统',
|
||||
mode: 'environmentThree',
|
||||
@ -246,32 +247,32 @@ export default {
|
||||
]},
|
||||
signalSystem:{name:'信号系统', type:'totalSystem', id: 'signalSystem', mode: 'signalSystem', active:false, icon:iscs_icon7,
|
||||
children:[
|
||||
{
|
||||
name: 'TIS管理器',
|
||||
mode: 'tis',
|
||||
id: 'tis',
|
||||
type: 'interface',
|
||||
disabled: true
|
||||
},
|
||||
// {
|
||||
// name: 'TIS管理器',
|
||||
// mode: 'tis',
|
||||
// id: 'tis',
|
||||
// type: 'interface',
|
||||
// disabled: true
|
||||
// },
|
||||
{
|
||||
name: '列车时刻表',
|
||||
mode: 'schedule',
|
||||
id: 'schedule',
|
||||
type: 'interface'
|
||||
},
|
||||
{
|
||||
name: '信号系统',
|
||||
mode: 'signal',
|
||||
id: 'signal',
|
||||
type: 'interface'
|
||||
},
|
||||
{
|
||||
name: '全线信号系统界面',
|
||||
mode: 'allLineSignal',
|
||||
id: 'allLineSignal',
|
||||
type: 'interface',
|
||||
disabled: true
|
||||
}
|
||||
// {
|
||||
// name: '信号系统',
|
||||
// mode: 'signal',
|
||||
// id: 'signal',
|
||||
// type: 'interface'
|
||||
// },
|
||||
// {
|
||||
// name: '全线信号系统界面',
|
||||
// mode: 'allLineSignal',
|
||||
// id: 'allLineSignal',
|
||||
// type: 'interface',
|
||||
// disabled: true
|
||||
// }
|
||||
]},
|
||||
communication:{name:'通信', type:'totalSystem', id: 'communication', active:false, icon:iscs_icon7,
|
||||
children:[
|
||||
@ -335,7 +336,7 @@ export default {
|
||||
res.data.forEach(station => {
|
||||
if (!station.depot && station.visible) {
|
||||
const param = {
|
||||
name: station.runPlanName.includes('站') ? station.runPlanName : `${station.runPlanName}站`,
|
||||
name: station.name,
|
||||
id: station.code
|
||||
};
|
||||
if (station.centralized) {
|
||||
@ -402,19 +403,19 @@ export default {
|
||||
this.$refs.malfunction.doShow('CANCEL');
|
||||
},
|
||||
back() {
|
||||
history.go(-1);
|
||||
// this.clearSubscribe();
|
||||
// if (this.projectDevice) {
|
||||
// this.$store.dispatch('LogOut').then(() => {
|
||||
// location.reload();
|
||||
// });
|
||||
// } else {
|
||||
// clearSimulation(this.$route.query.group).then(resp => {
|
||||
// this.$router.push({ path: `/trainingPlatform` });
|
||||
// }).catch(()=> {
|
||||
// this.$message.error('清除仿真失败!');
|
||||
// });
|
||||
// }
|
||||
if (this.projectDevice) {
|
||||
this.$store.dispatch('LogOut').then(() => {
|
||||
location.reload();
|
||||
});
|
||||
} else if(this.$store.state.training.simulationCreator){
|
||||
destroySimulationByAdmin(this.$route.query.group).then(resp => {
|
||||
history.go(-1);
|
||||
}).catch(()=> {
|
||||
this.$message.error('清除仿真失败!');
|
||||
});
|
||||
} else {
|
||||
history.go(-1);
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
@ -93,6 +93,7 @@ export default {
|
||||
beforeDestroy() {
|
||||
this.$store.dispatch('trainingNew/setExamSwitch', false);
|
||||
if (this.examInterval) { clearInterval(this.examInterval); }
|
||||
EventBus.$off('trainExamSubmit');
|
||||
},
|
||||
mounted() {
|
||||
EventBus.$on('trainExamSubmit', (data) => {
|
||||
|
@ -7,6 +7,21 @@
|
||||
:close-on-click-modal="false"
|
||||
@open="onOpen"
|
||||
>
|
||||
<el-form :inline="true" :model="form" size="small" style="display: flex; justify-content: space-between;">
|
||||
<el-form-item label="创建人">
|
||||
<el-select v-model="form.creatorId" :clearable="true">
|
||||
<el-option
|
||||
v-for="(option,index) in creatorList"
|
||||
:key="id"
|
||||
:label="option.name"
|
||||
:value="option.id"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="onSubmit">查询</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-table :data="paperList" border>
|
||||
<el-table-column prop="name" label="试卷名称" width="150px">
|
||||
<template slot-scope="scope">
|
||||
@ -58,14 +73,18 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getPapaerListOfOrg, generateExam, getUserExamInfo } from '@/api/management/exam';
|
||||
import { getPapaerListOfOrg, generateExam, getUserExamInfo, queryPaperCreatorList } from '@/api/management/exam';
|
||||
export default {
|
||||
name: 'SelectExam',
|
||||
emits: ['examStart'],
|
||||
data() {
|
||||
return {
|
||||
show: false,
|
||||
paperList: []
|
||||
paperList: [],
|
||||
creatorList: [],
|
||||
form: {
|
||||
creatorId: ''
|
||||
}
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
@ -76,14 +95,31 @@ export default {
|
||||
this.show = false;
|
||||
},
|
||||
onOpen() {
|
||||
getPapaerListOfOrg({
|
||||
orgId: this.$store.state.user.companyId,
|
||||
this.creatorList = [];
|
||||
const data = {
|
||||
orgId: this.$store.state.user.companyId,
|
||||
mapId: this.$route.query.mapId,
|
||||
findState: 3
|
||||
}).then(resp => {
|
||||
}
|
||||
queryPaperCreatorList(data).then(response => {
|
||||
this.creatorList = response.data;
|
||||
});
|
||||
this.onSubmit();
|
||||
},
|
||||
onSubmit() {
|
||||
const data = {
|
||||
orgId: this.$store.state.user.companyId,
|
||||
mapId: this.$route.query.mapId,
|
||||
creatorId: this.form.creatorId,
|
||||
findState: 3
|
||||
};
|
||||
if(!data.creatorId) {
|
||||
delete data.creatorId;
|
||||
}
|
||||
getPapaerListOfOrg(data).then(resp => {
|
||||
this.paperList = resp.data.list;
|
||||
});
|
||||
},
|
||||
},
|
||||
start(row) {
|
||||
if (this.$store.state.trainingNew.trainingSwitch) {
|
||||
this.$message.error('请先结束当前实训后再加载新的考试!');
|
||||
|
@ -29,7 +29,7 @@
|
||||
<diagram-load v-else-if="picture === 'diagramLoad'" ref="diagramLoad" :group="group" />
|
||||
<diagram-preview v-else-if="picture === 'diagramPreview'" ref="diagramPreview" />
|
||||
<diagram-edit v-else-if="picture === 'diagramEdit'" ref="diagramEdit" :plan-id="loadPlanId" @pictureChange="pictureChangeAndPlan" />
|
||||
<pis-terminal v-else-if="picture === 'pis'" ref="pisTerminal" />
|
||||
<pis-terminal v-else-if="picture === 'pisStand' || picture === 'pisTrain'" ref="pisTerminal" />
|
||||
<display-ba-si-di v-else-if="picture === 'baSiDi'" ref="displayBaSiDi" @pictureChange="pictureChangeByType" />
|
||||
<tro-work v-else-if="picture === 'troWork'" ref="troWork" />
|
||||
<tro-detail-work v-else-if="picture === 'troDetailWork'" ref="troDetailWork" :show-station-code="showStationCode" @pictureChange="pictureChangeByType" />
|
||||
|
@ -8,7 +8,8 @@
|
||||
<div class="station-box">
|
||||
<div class="leftRect" />
|
||||
<div class="rightRect" />
|
||||
<div class="station-list-box" :class="{'active': selectStation == item.id,'currentStation':tractionList.includes(item.name)}" @click="changeStation(item.id)" />
|
||||
<!--@click="changeStation(item.id)"-->
|
||||
<div class="station-list-box" :class="{'active': selectStation == item.id,'currentStation':tractionList.includes(item.name)}"/>
|
||||
</div>
|
||||
<div class="station-name" :class="index==0?'station-name-first':index%2==1?'station-name-up':'station-name-down'">{{ item.name }}</div>
|
||||
</div>
|
||||
@ -42,7 +43,7 @@ export default {
|
||||
res.data.forEach(station => {
|
||||
if (!station.depot && station.visible) {
|
||||
const param = {
|
||||
name: station.runPlanName.includes('站') ? station.runPlanName : `${station.runPlanName}站`,
|
||||
name: station.name,
|
||||
id: station.code
|
||||
};
|
||||
if (station.centralized) {
|
||||
@ -102,6 +103,7 @@ export default {
|
||||
border-left: 1px #fdfdfd solid;
|
||||
border-right: 1px #262626 solid;
|
||||
transform: translateY(-50%);
|
||||
cursor: not-allowed;
|
||||
}
|
||||
.station-list-box.currentStation::before{
|
||||
content: '';
|
||||
|
@ -70,7 +70,7 @@ export default {
|
||||
res.data.forEach(station => {
|
||||
if (!station.depot && station.visible) {
|
||||
const param = {
|
||||
name: station.runPlanName.includes('站') ? station.runPlanName : `${station.runPlanName}站`,
|
||||
name: station.name,
|
||||
id: station.code
|
||||
};
|
||||
if (station.centralized) {
|
||||
|
@ -81,7 +81,7 @@ export default {
|
||||
} else {
|
||||
this.initPictureShow();
|
||||
}
|
||||
} else if (!this.terminalList.length) {
|
||||
} else {
|
||||
this.initTerminalList([]);
|
||||
if (this.$route.query.client && !this.nowTerminal.id) {
|
||||
this.changeQueryClient();
|
||||
|
@ -359,7 +359,16 @@ export default {
|
||||
name: '通号端',
|
||||
code: 'maintainerSelect',
|
||||
isShow: () => type === 'METRO'
|
||||
|
||||
},
|
||||
{
|
||||
name: '站台PIS',
|
||||
code: 'pisStand',
|
||||
isShow: () => type === 'METRO'
|
||||
},
|
||||
{
|
||||
name: '列车PIS',
|
||||
code: 'pisTrain',
|
||||
isShow: () => type === 'METRO'
|
||||
}
|
||||
];
|
||||
const terminalList = commonTerminals(type);
|
||||
|
@ -12,7 +12,7 @@
|
||||
|
||||
<script>
|
||||
import config from '@/scripts/ConstConfig';
|
||||
import { getPapaerListOfOrg, getAllPapaerListOfOrg, lockPaper, invalidPaper, deletePaper } from '@/api/management/exam';
|
||||
import { getPapaerListOfOrg, getAllPapaerListOfOrg, lockPaper, invalidPaper, deletePaper, queryPaperCreatorList } from '@/api/management/exam';
|
||||
import { getPublishMapListOnline } from '@/api/jmap/map';
|
||||
|
||||
const { paperStateArr, paperStateQueryMap } = config.ConstSelect;
|
||||
@ -25,6 +25,7 @@ export default {
|
||||
pageSize: 'pageSize',
|
||||
pageIndex: 'pageNum'
|
||||
},
|
||||
creatorList: [],
|
||||
mapIdList: [],
|
||||
examQueryForm: {
|
||||
leftSpan: 14,
|
||||
@ -48,7 +49,12 @@ export default {
|
||||
}))
|
||||
},
|
||||
noClearable: true
|
||||
}
|
||||
},
|
||||
creatorId: {
|
||||
type: 'select',
|
||||
label: '创建人:',
|
||||
config: {},
|
||||
}
|
||||
}
|
||||
},
|
||||
examQueryList: {
|
||||
@ -63,6 +69,16 @@ export default {
|
||||
{
|
||||
title: '简介',
|
||||
prop: 'profile'
|
||||
},
|
||||
{
|
||||
title: '地图',
|
||||
prop: 'mapId',
|
||||
type: 'tag',
|
||||
width: '120',
|
||||
columnValue: row => {
|
||||
return this.mapIdList.find(item => item.id == row.mapId) ? this.mapIdList.find(item => item.id == row.mapId).name : ''
|
||||
},
|
||||
tagType: row => ''
|
||||
},
|
||||
{
|
||||
title: '状态',
|
||||
@ -174,12 +190,29 @@ export default {
|
||||
getPublishMapListOnline().then(response => {
|
||||
this.mapIdList = response.data;
|
||||
});
|
||||
this.creatorList = [];
|
||||
const data = {};
|
||||
if (!this.hasTeachingDataManage()) {
|
||||
data.orgId = this.orgId;
|
||||
}
|
||||
queryPaperCreatorList(data).then(response => {
|
||||
this.creatorList = response.data.map(item => {
|
||||
return {
|
||||
value: item.id,
|
||||
label: item.name
|
||||
}
|
||||
});
|
||||
this.examQueryForm.queryObject.creatorId.config.data = this.creatorList;
|
||||
});
|
||||
},
|
||||
methods: {
|
||||
hasTeachingDataManage() {
|
||||
return this.$route.path.includes('/teachingDataManage/');
|
||||
},
|
||||
getListApi(obj) {
|
||||
if(!obj.creatorId) {
|
||||
delete obj.creatorId;
|
||||
}
|
||||
if (this.hasTeachingDataManage()) {
|
||||
return getAllPapaerListOfOrg({ ...obj });
|
||||
} else {
|
||||
|
@ -368,19 +368,19 @@ export default {
|
||||
</script>
|
||||
<style rel="stylesheet/scss" lang="scss" scoped>
|
||||
/deep/ {
|
||||
.el-dialog {
|
||||
width: 600px;
|
||||
}
|
||||
.el-dialog {
|
||||
width: 600px;
|
||||
}
|
||||
|
||||
.el-form-item__content {
|
||||
width: calc(100% - 80px);
|
||||
}
|
||||
.el-form-item__content {
|
||||
width: calc(100% - 80px);
|
||||
}
|
||||
|
||||
.el-cascader {
|
||||
width: 100%;
|
||||
}
|
||||
.el-cascader {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
.dialog-footer {
|
||||
text-align: center;
|
||||
.dialog-footer{
|
||||
text-align: center;
|
||||
}
|
||||
</style>
|
||||
|
@ -147,7 +147,7 @@ export default {
|
||||
topicNum: formData.topicNum,
|
||||
tags: [formData.tags],
|
||||
subTypeParam: {
|
||||
client: formData.trainingClient
|
||||
client: formData.trainingClient || null
|
||||
}
|
||||
};
|
||||
if (formData.subtype === 5 && formData.sceneInfo && formData.sceneInfo.length) {
|
||||
|
94
src/views/thirdLogin/cgyLogin.vue
Normal file
94
src/views/thirdLogin/cgyLogin.vue
Normal file
@ -0,0 +1,94 @@
|
||||
<template>
|
||||
<div class="thirdLoginContainer">
|
||||
<div class="thirdLoginMessage">
|
||||
{{ message }}
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { cgyThirdLogin } from '@/api/management/user';
|
||||
import { setToken } from '@/utils/auth';
|
||||
import { createSimulation } from '@/api/simulation';
|
||||
import { launchFullscreen } from '@/utils/screen';
|
||||
import { getMapFunctioById } from '@/api/trainingPlatform';
|
||||
import { getPublishMapInfo } from '@/api/jmap/map';
|
||||
|
||||
export default {
|
||||
name:'CgyLogin',
|
||||
data() {
|
||||
return {
|
||||
message:''
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
project() {
|
||||
const project = this.$route.query.project;
|
||||
return project || 'login';
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
const appId = this.$route.query.appId;
|
||||
const sessionId = this.$route.query.sessionId;
|
||||
const timeStamp = this.$route.query.timeStamp;
|
||||
const account = this.$route.query.account;
|
||||
const name = this.$route.query.name;
|
||||
const parentAccount = this.$route.query.parentAccount;
|
||||
const functionId = this.$route.query.functionId;
|
||||
if (appId && account && name) {
|
||||
const data = {
|
||||
appId,
|
||||
sessionId,
|
||||
timeStamp,
|
||||
account,
|
||||
name,
|
||||
parentAccount,
|
||||
functionId
|
||||
};
|
||||
this.message = '正在登陆中......';
|
||||
cgyThirdLogin(data).then(resp=> {
|
||||
const token = resp.data;
|
||||
const header = { group: '', 'X-Token': token };
|
||||
setToken(token);
|
||||
this.$store.dispatch('setToken', token);
|
||||
this.$store.dispatch('subscribe', {header, type:'class'});
|
||||
this.enterSimulation();
|
||||
}).catch(() => {
|
||||
this.message = '参数有误,请检查';
|
||||
});
|
||||
} else {
|
||||
this.message = '参数有误,请检查';
|
||||
}
|
||||
},
|
||||
methods:{
|
||||
async enterSimulation() {
|
||||
const query = {
|
||||
third: true,
|
||||
query: 'cgy'
|
||||
};
|
||||
const resp = await getMapFunctioById(this.$route.query.systemId);
|
||||
query.mapId = resp.data.mapId;
|
||||
query.simType = resp.data.simType;
|
||||
const resp1 = await getPublishMapInfo(resp.data.mapId);
|
||||
query.lineCode = resp1.data.lineCode;
|
||||
createSimulation(this.$route.query.systemId).then(resp => {
|
||||
query.group = resp.data;
|
||||
this.$router.replace({ path: `/display/demon`, query: query });
|
||||
launchFullscreen();
|
||||
}).catch(error=>{
|
||||
if (error.code == 10003) {
|
||||
this.$messageBox(this.$t('error.createSimulationFailed') + ':您的仿真权限不足!');
|
||||
} else {
|
||||
this.$messageBox(this.$t('error.createSimulationFailed') + error.message);
|
||||
}
|
||||
this.disabled = false;
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.thirdLoginMessage{
|
||||
padding: 20px;
|
||||
font-size: 20px;
|
||||
}
|
||||
</style>
|
@ -29,7 +29,7 @@
|
||||
</template>
|
||||
</el-collapse>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="联机" name="second">
|
||||
<el-tab-pane v-if="canLiji" label="联机" name="second">
|
||||
<el-form ref="ruleForm" v-loading="loading" :model="ruleForm" :rules="rules" label-width="100px">
|
||||
<el-form-item label="仿真号" prop="inputGroup">
|
||||
<el-input v-model="ruleForm.inputGroup" placeholder="请输入仿真号" style="width: 200px;" />
|
||||
@ -68,6 +68,7 @@ export default {
|
||||
return {
|
||||
loading: false,
|
||||
param: '',
|
||||
canLiji: false,
|
||||
collapse: '1',
|
||||
subsetList: [],
|
||||
subsetMap: {},
|
||||
@ -307,7 +308,11 @@ export default {
|
||||
initMapSystem() {
|
||||
queryMapFunctionList({mapId: this.$route.params.mapId, detail: true}).then(resp => {
|
||||
this.systemList = resp.data;
|
||||
this.canLiji = false;
|
||||
this.systemList.forEach(item => {
|
||||
if (item.name === '综合演练') {
|
||||
this.canLiji = true;
|
||||
}
|
||||
if (item.subset && this.subsetList.includes(item.subset) && item.name !== '实训室') {
|
||||
this.subsetMap[item.subset].push(item);
|
||||
} else if (item.subset && item.name !== '实训室') {
|
||||
|
Loading…
Reference in New Issue
Block a user