diff --git a/src/api/trainingManage.js b/src/api/trainingManage.js
index 97f016604..2ee4542e7 100644
--- a/src/api/trainingManage.js
+++ b/src/api/trainingManage.js
@@ -32,14 +32,21 @@ export function updateTraining(data) {
data
});
}
-/** 更新实训标签 */
-export function updateTrainingLabel(data) {
+/** 更新发布实训信息(标签, 描述, 标题) */
+export function updateTrainingInfo(data) {
return request({
- url: `/api/v2/training/published/update/label`,
+ url: `/api/v2/training/published/update`,
method: 'put',
data
});
}
+/** 已发布实训转为草稿 */
+export function saveAsTrainingDraft(trainingId) {
+ return request({
+ url: `/api/v2/training/published/${trainingId}/saveAsDraft`,
+ method: 'post'
+ });
+}
/** 查询步骤列表 */
export function getTrainingStepList(trainingId) {
return request({
diff --git a/src/assets/bg_pis.png b/src/assets/bg_pis.png
new file mode 100644
index 000000000..bc230e4dd
Binary files /dev/null and b/src/assets/bg_pis.png differ
diff --git a/src/assets/bg_tms.png b/src/assets/bg_tms.png
new file mode 100644
index 000000000..a2fe27c29
Binary files /dev/null and b/src/assets/bg_tms.png differ
diff --git a/src/jmapNew/shape/graph/Station/index.js b/src/jmapNew/shape/graph/Station/index.js
index 05e9b530f..13a8bfd8a 100644
--- a/src/jmapNew/shape/graph/Station/index.js
+++ b/src/jmapNew/shape/graph/Station/index.js
@@ -357,7 +357,7 @@ export default class Station extends Group {
zlevel: this.zlevel,
z: this.z,
style: {
- x: computedControlModePoint.x + this.style.Station.StationControl.text.offsetX,
+ x: computedControlModePoint.x,
y: computedControlModePoint.y + this.style.Station.StationControl.text.offsetY,
fontWeight: this.style.Station.StationControl.text.fontWeight,
fontSize: this.style.Station.StationControl.text.fontSize,
diff --git a/src/jmapNew/theme/fuzhou_01/menus/menuTrain.vue b/src/jmapNew/theme/fuzhou_01/menus/menuTrain.vue
index 50f100a0b..4047f9792 100644
--- a/src/jmapNew/theme/fuzhou_01/menus/menuTrain.vue
+++ b/src/jmapNew/theme/fuzhou_01/menus/menuTrain.vue
@@ -145,6 +145,10 @@ export default {
handler: this.handlerApplyRmMode
}
]
+ },
+ {
+ label: '停车',
+ handler: this.handleParkingTrain
}
],
menuSpeed: [
@@ -352,6 +356,13 @@ export default {
this.$refs.noticeInfo.doShow();
});
},
+ handleParkingTrain() {
+ commitOperate(menuOperate.Train.driverStop, { groupNumber: this.selected.code }, 3).then(({ valid, operate }) => {
+ }).catch((error) => {
+ console.error(error);
+ this.$refs.noticeInfo.doShow();
+ });
+ },
// 限速行驶
limitSpeed() {
const step = {
diff --git a/src/jmapNew/theme/xian_02/menus/menuStation.vue b/src/jmapNew/theme/xian_02/menus/menuStation.vue
index 1c007c93d..bd5c744d7 100644
--- a/src/jmapNew/theme/xian_02/menus/menuStation.vue
+++ b/src/jmapNew/theme/xian_02/menus/menuStation.vue
@@ -50,7 +50,7 @@ export default {
children: [
{
label: '请求',
- handler: this.setStationControl,
+ handler: this.work === 'localWork' ? this.setStationControl : this.setCenterControl,
cmdType: this.work === 'localWork' ? CMD.ControlConvertMenu.CMD_CM_APPLY_FOR_STATION_CONTROL : CMD.ControlConvertMenu.CMD_CM_APPLY_FOR_CENTER_CONTROL,
isDisabled: (station, work) => {
if (work === 'localWork') {
diff --git a/src/jmapNew/theme/xian_02/menus/menuTrain.vue b/src/jmapNew/theme/xian_02/menus/menuTrain.vue
index 066ac4d8b..14220c2b5 100644
--- a/src/jmapNew/theme/xian_02/menus/menuTrain.vue
+++ b/src/jmapNew/theme/xian_02/menus/menuTrain.vue
@@ -498,7 +498,7 @@ export default {
trainOrder(orderStop) {
const operate = {
start: true,
- send: true,
+ // send: true,
param:{},
code: this.selected.code
};
diff --git a/src/scripts/ConstConfig.js b/src/scripts/ConstConfig.js
index ade82e58a..c58fcb581 100644
--- a/src/scripts/ConstConfig.js
+++ b/src/scripts/ConstConfig.js
@@ -148,26 +148,6 @@ export default {
{ label: '会话', value: 'Conversation' }
],
- simulationDeviceList: [
- { label: '区段', value: 'SECTION' },
- { label: '计轴器', value: 'AXLE_COUNTER' },
- { label: '道岔', value: 'SWITCH' },
- { label: '信号机', value: 'SIGNAL' },
- { label: '车站', value: 'STATION' },
- { label: '站台', value: 'STAND' },
- { label: '屏蔽门', value: 'PSD' },
- { label: '紧急停车按钮', value: 'ESP' },
- { label: '区域控制器', value: 'ZC' },
- { label: '线路控制器', value: 'LC' },
- { label: '进路', value: 'ROUTE' },
- { label: '进路延续保护', value: 'OVERLAP' },
- { label: '自动信号', value: 'AUTO_SIGNAL' },
- { label: '自动折返', value: 'CYCLE' },
- { label: '列车', value: 'TRAIN' },
- { label: '列车门', value: 'TRAIN_DOOR' },
- { label: '交路', value: 'ROUTING' },
- { label: '站间运行等级', value: 'RUN_LEVEL' }
- ],
QuestionTypeList: [
{ label: '选择题', value: 'select' },
{ label: '判断题', value: 'judge' },
@@ -175,17 +155,6 @@ export default {
{ label: '填空题', value: 'fill' },
{ label: '问答题', value: 'answer' }
],
- // 新版的产品类型枚举
- prdType: [
- { enlabel: 'ATS local workstation', label: 'ATS现地工作站', value: '01' },
- { enlabel: 'ATS Traffic dispatching workstation', label: 'ATS行调工作站', value: '02' },
- { enlabel: 'Comprehensive exercise cloud platform', label: '综合演练云平台', value: '03' },
- { enlabel: 'Driver simulation driving system', label: '司机模拟驾驶系统', value: '04' },
- { enlabel: 'Dispatch workstation', label: '派班工作站', value: '05' },
- { enlabel: 'ISCS workstation', label: 'ISCS工作站', value: '06' },
- { enlabel: 'Interlocking station at depot', label: '车辆段联锁工作站', value: '09' },
- { enlabel: 'Large screen vehicle real workstation', label: '应急调度指挥系统', value: '10' }
- ],
trainingDeviceType: {
Switch: { enlabel: 'Switch training', label: '道岔实训' },
Section: { enlabel: 'Section training', label: '区段实训' },
@@ -234,21 +203,9 @@ export default {
{ label: '列车', value: 'TRAIN' },
{ label: 'UDP客户端', value: 'UDP_CLIENT' },
{ label: '站台PIS', value: 'PIS_STAND' },
- { label: '列车PIS', value: 'PIS_TRAIN' }
- ],
- ossList: [
- { name: '场景1', url: '场景1—桂花园道岔故障(配分版60分).pdf' },
- { name: '场景2', url: '场景2—体育馆道岔故障(配分版60分).pdf' },
- { name: '场景3', url: '场景3—火车站道岔故障(配分版60分).pdf' },
- { name: '场景4', url: '场景4—列车救援(配分版60分).pdf' },
- { name: '场景5', url: '场景5—接触网无电(配分版60分).pdf' },
- { name: '场景6', url: '场景6—计轴故障试题(配分版60分).pdf' },
- { name: '场景7', url: '场景7—大学城道岔故障(配分版40分).pdf' },
- { name: '场景8', url: '场景8—车站照明故障(配分版40分).pdf' },
- { name: '场景9', url: '场景9—车站站台门故障(配分版40分).pdf' },
- { name: '场景10', url: '场景10—列车限速(配分版40分).pdf' },
- { name: '场景11', url: '场景11—区间疏导乘客(配分版40分).pdf' },
- { name: '场景12', url: '场景12—区域控制器故障(配分版40分).pdf' }
+ { label: '列车PIS', value: 'PIS_TRAIN' },
+ { label: '乘客PIS', value: 'PIS' },
+ { label: 'TMS', value: 'TMS' }
],
responderTypeList: [{ name: '固定应答器', value: 'FB' }, { name: '可变应答器', value: 'VB' }, { name: '填充应答器', value: 'IB' }],
loadRuleList: [
diff --git a/src/utils/stomp.js b/src/utils/stomp.js
index b4ad3f919..cad94cbde 100644
--- a/src/utils/stomp.js
+++ b/src/utils/stomp.js
@@ -33,10 +33,10 @@ export function getTopic(type, group, param) {
break;
case 'ISCSGATE':
topic = `/queue/simulation/${group}/iscs/gate/${param.stationCode}`;
- break;
- case 'TMS':
- topic = `/queue/simulation/${group}/train/001/tms`
- break;
+ break;
+ case 'TMS':
+ topic = `/queue/simulation/${group}/train/001/tms`;
+ break;
case 'PIS_STAND':
topic = `/queue/simulation/${group}/standPis/${param.standCode}`;
break;
diff --git a/src/views/jlmap3d/drive/sceneview/tmsPage.vue b/src/views/jlmap3d/drive/sceneview/tmsPage.vue
index 72e3d9d87..a1462ca8a 100644
--- a/src/views/jlmap3d/drive/sceneview/tmsPage.vue
+++ b/src/views/jlmap3d/drive/sceneview/tmsPage.vue
@@ -1,304 +1,430 @@
-
-
-
-
-
- 运行 |
- 网压 |
- 网流 |
- 速度 |
- 牵引/制动级位 |
- 里程标 |
- 下一站 |
- 目的站 |
- 2022/02/02 |
-
-
- {{ trainInfo.voltage }}V |
- {{ trainInfo.current }}A |
- {{ trainInfo.speed }} km/h |
-
- {{ Math.abs(trainInfo.tractionPercent) }}%
- |
- {{ trainInfo.mileage || '--' }} |
- {{ trainInfo.nextStation }} |
- {{ trainInfo.destination }} |
-
-
-
-
-
-
-
- {{ k }} |
-
- {{ j + 1 }} |
-
-
-
- {{ `${item === '--' ? '' : '辅助'}${item}` }}
- |
-
-
-
- {{ item === 0 ? '--' : `${item} A` }}
- |
-
-
-
- {{ item }}
- {{ item }}
-
- |
-
-
-
-
- {{ item[0] }}
- {{ item[1] }}
-
- |
-
-
-
- {{ j < 3 ? 1 : 8 }}
- {{ j < 3 ? 3 : 6 }}
- {{ j < 3 ? 5 : 4 }}
- {{ j < 3 ? 7 : 2 }}
-
- |
-
-
-
- {{ j < 3 ? 2 : 7 }}
- {{ j < 3 ? 4 : 5 }}
- {{ j < 3 ? 6 : 3 }}
- {{ j < 3 ? 8 : 1 }}
-
- |
-
- {{ item }} |
-
- {{ item }} |
-
-
- {{ item }} bar
- |
-
- {{ item ? '' : '-- --' }} |
-
- {{ item ? '' : '-- --' }} |
-
-
-
-
-
-
-
- {{ trainInfo.speed }} km/h
- |
-
-
-
-
-
+
+
+
+
+
+ 运行 |
+ 网压 |
+ 网流 |
+ 速度 |
+ 牵引/制动级位 |
+ 里程标 |
+ 下一站 |
+ 目的站 |
+ 2022/02/02 |
+
+
+ {{ trainInfo.voltage }}V |
+ {{ trainInfo.current }}A |
+ {{ trainInfo.speed }} km/h |
+
+ {{ Math.abs(trainInfo.tractionPercent) }}%
+ |
+ {{ trainInfo.mileage || "--" }} |
+ {{ trainInfo.nextStation }} |
+ {{ trainInfo.destination }} |
+
+
+
+
+
+
+
+ {{ k }} |
+
+ {{ j + 1 }} |
+
+
+
+ {{ `${item === "--" ? "" : "辅助"}${item}` }}
+ |
+
+
+
+ {{ item === 0 ? "--" : `${item} A` }}
+ |
+
+
+
+ {{ item }}
+ {{ item }}
+
+ |
+
+
+
+
+ {{ item[0] }}
+ {{ item[1] }}
+
+ |
+
+
+
+
+ {{ j < 3 ? 1 : 8 }}
+
+
+ {{ j < 3 ? 3 : 6 }}
+
+
+ {{ j < 3 ? 5 : 4 }}
+
+
+ {{ j < 3 ? 7 : 2 }}
+
+
+ |
+
+
+
+
+ {{ j < 3 ? 2 : 7 }}
+
+
+ {{ j < 3 ? 4 : 5 }}
+
+
+ {{ j < 3 ? 6 : 3 }}
+
+
+ {{ j < 3 ? 8 : 1 }}
+
+
+ |
+
+
+ {{ item }}
+ |
+
+
+ {{ item }}
+ |
+
+
+ {{ item }} bar
+ |
+
+
+ {{ item ? "" : "-- --" }}
+ |
+
+
+ {{ item ? "" : "-- --" }}
+ |
+
+
+
+
+
+
+
+ {{ trainInfo.speed }} km/h
+ |
+
+
+
+
+
diff --git a/src/views/login/index.vue b/src/views/login/index.vue
index 5e7f24712..acd68be23 100644
--- a/src/views/login/index.vue
+++ b/src/views/login/index.vue
@@ -22,7 +22,7 @@
{{ loginProtitle }}
@@ -57,6 +57,8 @@ import bgIscsImg from '@/assets/bg_iscs.jpg';
import bgCctvImg from '@/assets/bg_cctv.jpg';
import bgLswImg from '@/assets/bg_lsw.jpg';
import bgPsdImg from '@/assets/bg_psd.png';
+import bgPisImg from '@/assets/bg_pis.png';
+import bgTmsImg from '@/assets/bg_tms.png';
import ZongheIcon from '@/assets/icon/icon_zonghe.png';
import { getLoginWmurl, checkLoginStatus, getLoginInfo } from '@/api/login';
import { getToken} from '@/utils/auth';
@@ -97,7 +99,7 @@ export default {
return this.$route.query.type;
},
syncLogin() {
- const synchronousLogin = ['VR_IBP', 'LSW', 'CCTV', 'ISCS_LW', 'ISCS_CW', 'VR_PSD', 'SANDBOX', 'ILW', 'PIS_STAND', 'PIS_TRAIN'];
+ const synchronousLogin = ['VR_IBP', 'LSW', 'CCTV', 'ISCS_LW', 'ISCS_CW', 'VR_PSD', 'SANDBOX', 'ILW', 'PIS_STAND', 'PIS_TRAIN', 'PIS', 'TMS'];
return this.type ? synchronousLogin.includes(this.type) : false;
},
bgImg() {
@@ -142,7 +144,9 @@ export default {
ILW:{text:'检测教员机登录中', Img:bgLswImg},
PIS_TRAIN:{text:'检测教员机登录中'},
PIS_STAND:{text:'检测教员机登录中'},
- SANDBOX:{Img:bgLswImg, text:'检测教员机登录中'}
+ SANDBOX:{Img:bgLswImg, text:'检测教员机登录中'},
+ PIS:{text:'检测教员机登录中', Img: bgPisImg},
+ TMS:{text:'检测列车驾驶终端登录中', Img: bgTmsImg}
};
this.loadingText = deviceMap[this.type].text;
this.deviceImg = deviceMap[this.type].Img;
diff --git a/src/views/newMap/display/trainingDesign/draftTrainingList.vue b/src/views/newMap/display/trainingDesign/draftTrainingList.vue
index 234411d39..ff54eb823 100644
--- a/src/views/newMap/display/trainingDesign/draftTrainingList.vue
+++ b/src/views/newMap/display/trainingDesign/draftTrainingList.vue
@@ -24,7 +24,7 @@ import { loadTrainingBg } from '@/api/jmap/training';
import Cookies from 'js-cookie';
import ConstConfig from '@/scripts/ConstConfig';
import { loadDraftTraining } from '@/api/jmap/training';
-import { deleteTraining, publishTraining } from '@/api/trainingManage';
+import { deleteTraining, publishTraining, jumpToTraining } from '@/api/trainingManage';
import { OperateMode } from '@/scripts/ConstDic';
export default {
@@ -206,6 +206,18 @@ export default {
this.$jlmap && this.$jlmap.updateTransform(mapLocation.scale, {x:mapLocation.x, y:mapLocation.y});
}
this.$emit('updateDetails', resp.data);
+ if (resp.data && resp.data.needRunToFinalStep) {
+ this.$confirm('此草稿实训为转存后实训且未保存步骤背景,如需编辑则需快速仿真到最后一步!', this.$t('global.tips'), {
+ confirmButtonText: '快速仿真',
+ cancelButtonText: this.$t('global.cancel'),
+ type: 'info'
+ }).then(() => {
+ const stepList = JSON.parse(resp.data.stepJson);
+ jumpToTraining(this.$route.query.group, stepList[stepList.length - 1].id).then(()=>{
+ this.$message.success('开始快速仿真!');
+ }).catch(e => this.$message.error('开始快速仿真失败!'));
+ });
+ }
}).catch((e) => {
console.error(e);
this.$emit('updateDetails', {});
diff --git a/src/views/organization/trainingManage/editTraining.vue b/src/views/organization/trainingManage/editTraining.vue
index 18360f47b..0be52bbdf 100644
--- a/src/views/organization/trainingManage/editTraining.vue
+++ b/src/views/organization/trainingManage/editTraining.vue
@@ -53,7 +53,7 @@
diff --git a/src/views/system/deviceManage/editConfigScreen.vue b/src/views/system/deviceManage/editConfigScreen.vue
index 221aef105..3d32a0964 100644
--- a/src/views/system/deviceManage/editConfigScreen.vue
+++ b/src/views/system/deviceManage/editConfigScreen.vue
@@ -111,7 +111,7 @@ export default {
{ prop: 'deviceCode', label: '教研机:', type: 'select', options: this.deviceList, optionLabel: 'code', optionValue: 'code' },
{ prop: 'quadrant', label: '屏幕配置:', type: 'select', options: this.screenList, optionLabel: 'label', optionValue: 'value'},
{ prop: 'roleCode', label: '关联角色:', type: 'select', options: this.roleList, optionLabel: 'label', optionValue: 'value' },
- { prop: 'client', label: '初始客户端:', type: 'select', options: this.clientList, optionLabel: 'label', optionValue: 'value' },
+ { prop: 'client', label: '初始客户端:', type: 'select', options: this.clientList, optionLabel: 'name', optionValue: 'id' },
{ prop: 'clientList', label: '客户端列表:', type: 'select', options: this.clientList, optionLabel: 'name', optionValue: 'id' }
]
};
@@ -121,7 +121,7 @@ export default {
items: [
{ prop: 'deviceCode', label: '教研机:', type: 'select', options: this.deviceList, optionLabel: 'code', optionValue: 'code' },
{ prop: 'roleCode', label: '关联角色:', type: 'select', options: this.roleList, optionLabel: 'label', optionValue: 'value' },
- { prop: 'client', label: '关联客户端:', type: 'select', options: this.clientList, optionLabel: 'label', optionValue: 'value' },
+ { prop: 'client', label: '关联客户端:', type: 'select', options: this.clientList, optionLabel: 'name', optionValue: 'id' },
{ prop: 'clientList', label: '客户端列表:', type: 'select', options: this.clientList, optionLabel: 'name', optionValue: 'id' }
]
};
@@ -131,7 +131,7 @@ export default {
items: [
{ prop: 'deviceCode', label: '教研机', type: 'select', options: this.deviceList, optionLabel: 'code', optionValue: 'code'},
{ prop: 'roleCode', label: '关联角色:', type: 'select', options: this.roleList, optionLabel: 'label', optionValue: 'value' },
- { prop: 'client', label: '关联客户端:', type: 'select', options: this.clientList, optionLabel: 'label', optionValue: 'value' },
+ { prop: 'client', label: '关联客户端:', type: 'select', options: this.clientList, optionLabel: 'name', optionValue: 'id' },
{ prop: 'clientList', label: '客户端列表:', type: 'select', options: this.clientList, optionLabel: 'name', optionValue: 'id' }
]
};
@@ -141,7 +141,7 @@ export default {
items: [
{ prop: 'deviceCode', label: '教研机', type: 'select', options: this.deviceList, optionLabel: 'code', optionValue: 'code'},
{ prop: 'roleCode', label: '关联角色:', type: 'select', options: this.roleList, optionLabel: 'label', optionValue: 'value' },
- { prop: 'client', label: '关联客户端:', type: 'select', options: this.clientList, optionLabel: 'label', optionValue: 'value' },
+ { prop: 'client', label: '关联客户端:', type: 'select', options: this.clientList, optionLabel: 'name', optionValue: 'id' },
{ prop: 'clientList', label: '客户端列表:', type: 'select', options: this.clientList, optionLabel: 'name', optionValue: 'id' }
]
};
diff --git a/src/views/system/deviceManage/index.vue b/src/views/system/deviceManage/index.vue
index ce1f709bc..cf7b1a263 100644
--- a/src/views/system/deviceManage/index.vue
+++ b/src/views/system/deviceManage/index.vue
@@ -187,7 +187,7 @@ export default {
});
},
editConfig(index, row) {
- const configGatewayList = ['SWITCH', 'SIGNAL', 'PSD', 'PSL', 'PSC', 'UDP_LOW', 'SECTION', 'TRAIN', 'UDP_CLIENT', 'PIS_STAND', 'PIS_TRAIN'];
+ const configGatewayList = ['SWITCH', 'SIGNAL', 'PSD', 'PSL', 'PSC', 'UDP_LOW', 'SECTION', 'TRAIN', 'UDP_CLIENT', 'PIS_STAND', 'PIS_TRAIN', 'PIS', 'TMS'];
if (['LW', 'VR_IBP', 'ISCS_LW', 'ISCS_CW', 'IM', 'CW', 'DRIVE', 'DEPOT'].includes(row.type)) {
this.$refs.editConfig.doShow(row);
} else if (configGatewayList.includes(row.type)) {