Merge remote-tracking branch 'remotes/origin/test'
This commit is contained in:
commit
1c112b6ecb
@ -145,6 +145,50 @@ export function generateOfflineUser(data) {
|
|||||||
data: data
|
data: data
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 创建第三方用户
|
||||||
|
export function createThirdCount(data) {
|
||||||
|
return request({
|
||||||
|
url: `/api/user`,
|
||||||
|
method: 'post',
|
||||||
|
data: data
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 第三方用户登陆(通过url登陆)
|
||||||
|
export function thirdCountLogin(data) {
|
||||||
|
return request({
|
||||||
|
url: `/api/login/third`,
|
||||||
|
method: 'post',
|
||||||
|
data: data
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 查询在线的用户列表*/
|
||||||
|
export function getLoginUserList(params) {
|
||||||
|
return request({
|
||||||
|
url: `/api/loginUser/paging`,
|
||||||
|
method: 'get',
|
||||||
|
params: params
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 将权限分发包分发给指定账户 */
|
||||||
|
export function distributePackage(id, accountId) {
|
||||||
|
return request({
|
||||||
|
url: `/api/distribute/${id}/distribute/${accountId} `,
|
||||||
|
method: 'post'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 删除账户(逻辑删除) */
|
||||||
|
export function deleteUserInLogic(id) {
|
||||||
|
return request({
|
||||||
|
url: `/api/user/${id}`,
|
||||||
|
method: 'delete'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
// 导入学生成绩
|
// 导入学生成绩
|
||||||
export function importStudentResults(projectCode, data) {
|
export function importStudentResults(projectCode, data) {
|
||||||
return request({
|
return request({
|
||||||
|
@ -63,6 +63,7 @@ export default {
|
|||||||
dataDictionary: 'Data dictionary',
|
dataDictionary: 'Data dictionary',
|
||||||
dataDictionaryDetails: 'Data dictionary details',
|
dataDictionaryDetails: 'Data dictionary details',
|
||||||
userManage: 'user management',
|
userManage: 'user management',
|
||||||
|
loginUserManage:'login user Manage',
|
||||||
cacheManage: 'cache management',
|
cacheManage: 'cache management',
|
||||||
userTrainingManage: 'User training management',
|
userTrainingManage: 'User training management',
|
||||||
userExamManage: 'User examination management',
|
userExamManage: 'User examination management',
|
||||||
|
@ -62,6 +62,7 @@ export default {
|
|||||||
dataDictionary: '数据字典',
|
dataDictionary: '数据字典',
|
||||||
dataDictionaryDetails: '数据字典明细',
|
dataDictionaryDetails: '数据字典明细',
|
||||||
userManage: '用户管理',
|
userManage: '用户管理',
|
||||||
|
loginUserManage:'在线用户管理',
|
||||||
cacheManage: '缓存管理',
|
cacheManage: '缓存管理',
|
||||||
userTrainingManage: '用户实训统计',
|
userTrainingManage: '用户实训统计',
|
||||||
userExamManage: '用户考试统计',
|
userExamManage: '用户考试统计',
|
||||||
|
@ -8,6 +8,7 @@ import zrender from 'zrender';
|
|||||||
import localStore from 'storejs';
|
import localStore from 'storejs';
|
||||||
import Options from './options';
|
import Options from './options';
|
||||||
import MouseController from './mouseController';
|
import MouseController from './mouseController';
|
||||||
|
import KeyboardController from './keyboardController';
|
||||||
import Painter from './painter';
|
import Painter from './painter';
|
||||||
import deviceType from './constant/deviceType';
|
import deviceType from './constant/deviceType';
|
||||||
import {calculateDCenter, createBoundingRect, deviceFactory} from './utils/parser';
|
import {calculateDCenter, createBoundingRect, deviceFactory} from './utils/parser';
|
||||||
@ -22,7 +23,7 @@ class IbpPan {
|
|||||||
this.methods = opts.methods;
|
this.methods = opts.methods;
|
||||||
|
|
||||||
// 鼠标事件
|
// 鼠标事件
|
||||||
this.events = { __Pan: 'pan', Selected: 'selected', MouseDown: 'mouseDown', Contextmenu: 'contextmenu'};
|
this.events = { __Pan: 'pan', Selected: 'selected', MouseDown: 'mouseDown', MouseUp: 'mouseUp', Contextmenu: 'contextmenu', Keyboard: 'keyboard'};
|
||||||
|
|
||||||
// 设备数据
|
// 设备数据
|
||||||
this.ibpDevice = {};
|
this.ibpDevice = {};
|
||||||
@ -41,8 +42,10 @@ class IbpPan {
|
|||||||
this.$ibpZr = zrender.init(opts.dom, Object.assign({ renderer, devicePixelRatio, width, height }, opts.config));
|
this.$ibpZr = zrender.init(opts.dom, Object.assign({ renderer, devicePixelRatio, width, height }, opts.config));
|
||||||
this.$options = new Options(Object.assign({ scaleRate: 1, offsetX: 0, offsetY: 0 }, opts.options || {})); // 缩放
|
this.$options = new Options(Object.assign({ scaleRate: 1, offsetX: 0, offsetY: 0 }, opts.options || {})); // 缩放
|
||||||
this.$mouseController = new MouseController(this);
|
this.$mouseController = new MouseController(this);
|
||||||
|
this.$keyboardController = new KeyboardController(this);
|
||||||
|
|
||||||
this.$mouseController.enable();
|
this.$mouseController.enable();
|
||||||
|
this.$keyboardController.enable();
|
||||||
|
|
||||||
this.$painter = new Painter(this);
|
this.$painter = new Painter(this);
|
||||||
this.$painter.updateZrSize({width: this.$ibpZr.getWidth(), height: this.$ibpZr.getHeight()});
|
this.$painter.updateZrSize({width: this.$ibpZr.getWidth(), height: this.$ibpZr.getHeight()});
|
||||||
@ -285,6 +288,7 @@ class IbpPan {
|
|||||||
this.clear();
|
this.clear();
|
||||||
|
|
||||||
this.$mouseController.dispose();
|
this.$mouseController.dispose();
|
||||||
|
this.$keyboardController.disable();
|
||||||
this.$ibpZr && zrender.dispose(this.$ibpZr);
|
this.$ibpZr && zrender.dispose(this.$ibpZr);
|
||||||
this.$painter.dispose();
|
this.$painter.dispose();
|
||||||
}
|
}
|
||||||
@ -299,6 +303,9 @@ class IbpPan {
|
|||||||
case this.events.MouseDown:
|
case this.events.MouseDown:
|
||||||
this.$mouseController.on(this.events.MouseDown, cb, context);
|
this.$mouseController.on(this.events.MouseDown, cb, context);
|
||||||
break;
|
break;
|
||||||
|
case this.events.MouseUp:
|
||||||
|
this.$mouseController.on(this.events.MouseUp, cb, context);
|
||||||
|
break;
|
||||||
case this.events.Contextmenu:
|
case this.events.Contextmenu:
|
||||||
this.$mouseController.on(this.events.Contextmenu, cb, context);
|
this.$mouseController.on(this.events.Contextmenu, cb, context);
|
||||||
break;
|
break;
|
||||||
@ -308,6 +315,9 @@ class IbpPan {
|
|||||||
case this.events.__Pan:
|
case this.events.__Pan:
|
||||||
this.$mouseController.on(this.events.__Pan, this.optionsHandler);
|
this.$mouseController.on(this.events.__Pan, this.optionsHandler);
|
||||||
break;
|
break;
|
||||||
|
case this.events.Keyboard:
|
||||||
|
this.$keyboardController.on(this.events.Keyboard, cb, context);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -322,6 +332,9 @@ class IbpPan {
|
|||||||
case this.events.MouseDown:
|
case this.events.MouseDown:
|
||||||
this.$mouseController.off(this.events.MouseDown, cb);
|
this.$mouseController.off(this.events.MouseDown, cb);
|
||||||
break;
|
break;
|
||||||
|
case this.events.MouseUp:
|
||||||
|
this.$mouseController.off(this.events.MouseUp, cb);
|
||||||
|
break;
|
||||||
case this.events.Contextmenu:
|
case this.events.Contextmenu:
|
||||||
this.$mouseController.off(this.events.Contextmenu, cb);
|
this.$mouseController.off(this.events.Contextmenu, cb);
|
||||||
break;
|
break;
|
||||||
@ -331,6 +344,9 @@ class IbpPan {
|
|||||||
case this.events.__Pan:
|
case this.events.__Pan:
|
||||||
this.$mouseController.off(this.events.__Pan, cb);
|
this.$mouseController.off(this.events.__Pan, cb);
|
||||||
break;
|
break;
|
||||||
|
case this.events.Keyboard:
|
||||||
|
this.$keyboardController.off(this.events.Keyboard, cb);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
33
src/ibp/keyboardController.js
Normal file
33
src/ibp/keyboardController.js
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
import Eventful from "zrender/src/mixin/Eventful";
|
||||||
|
|
||||||
|
export default class keyboardController extends Eventful {
|
||||||
|
constructor(ibp) {
|
||||||
|
super();
|
||||||
|
this.$ibp = ibp;
|
||||||
|
this.$zr = ibp.getZr();
|
||||||
|
this.events = ibp.getEvents();
|
||||||
|
this.initHandler(this.$zr);
|
||||||
|
}
|
||||||
|
|
||||||
|
initHandler(zr) {
|
||||||
|
if (zr) {
|
||||||
|
let keyActionHandler = this.keyAction.bind(this);
|
||||||
|
|
||||||
|
this.enable = (opt = {}) => {
|
||||||
|
window.addEventListener("keyup", keyActionHandler, false);
|
||||||
|
window.addEventListener("keydown", keyActionHandler, false);
|
||||||
|
};
|
||||||
|
|
||||||
|
this.disable = () => {
|
||||||
|
window.removeEventListener("keyup", keyActionHandler, false);
|
||||||
|
window.removeEventListener("keydown", keyActionHandler, false);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
keyAction(e) {
|
||||||
|
if (!e.repeat) {
|
||||||
|
this.trigger(this.events.Keyboard, e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -163,6 +163,7 @@ class MouseController extends Eventful {
|
|||||||
this.eventTarget = '';
|
this.eventTarget = '';
|
||||||
this._dragging = false;
|
this._dragging = false;
|
||||||
this.deviceList = [];
|
this.deviceList = [];
|
||||||
|
this.trigger(this.events.MouseUp, new EventModel(e));
|
||||||
}
|
}
|
||||||
|
|
||||||
contextmenu(e) {
|
contextmenu(e) {
|
||||||
|
@ -135,8 +135,6 @@ export function JLmapDriving(dom,data,mapId,storemod,translation,routegroup,proj
|
|||||||
// sound.play();
|
// sound.play();
|
||||||
// });
|
// });
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
let controls3 = new MouseControls(camera, 1.6);
|
let controls3 = new MouseControls(camera, 1.6);
|
||||||
controls3.enabled = false;
|
controls3.enabled = false;
|
||||||
// controls3.getObject().rotation.x = Math.PI/2;
|
// controls3.getObject().rotation.x = Math.PI/2;
|
||||||
|
@ -42,7 +42,7 @@ export default {
|
|||||||
operateType: 'CM_Apply_For_Center_Control',
|
operateType: 'CM_Apply_For_Center_Control',
|
||||||
skinCode: '02',
|
skinCode: '02',
|
||||||
trainingName: '转为中控({1})',
|
trainingName: '转为中控({1})',
|
||||||
trainingRemark: '控制权限转换,站控转中控',
|
trainingRemark: '控制权收回行调办理时使用,行调获得控制权后,行调可对设备进行操作,集中站无法对设备进行操作',
|
||||||
trainingType: 'ControlConvertMenu',
|
trainingType: 'ControlConvertMenu',
|
||||||
productTypes: ['02'],
|
productTypes: ['02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -61,7 +61,7 @@ export default {
|
|||||||
operateType: 'CM_Apply_For_Station_Control',
|
operateType: 'CM_Apply_For_Station_Control',
|
||||||
skinCode: '02',
|
skinCode: '02',
|
||||||
trainingName: '转为站控({1})',
|
trainingName: '转为站控({1})',
|
||||||
trainingRemark: '控制权限转换,中控转站控',
|
trainingRemark: 'ATS 系统的控制模式有中控和站控两种控制模式,且某一时刻只能为其中的一种模式,在信号系统工作正常时,一般使用ATS系统的中控模式;当个别车站有表示故障或信号设备故障(如计轴故障等),出问题的车站可以转为站控,请求站控:请求控制权下放车站办理,需行调同意后方可转为站控,转为站控后,集中站可对设备进行操作。',
|
||||||
trainingType: 'ControlConvertMenu',
|
trainingType: 'ControlConvertMenu',
|
||||||
productTypes: ['01'],
|
productTypes: ['01'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -80,7 +80,7 @@ export default {
|
|||||||
operateType: 'CM_Force_Station_Control',
|
operateType: 'CM_Force_Station_Control',
|
||||||
skinCode: '02',
|
skinCode: '02',
|
||||||
trainingName: '强制站控({1})',
|
trainingName: '强制站控({1})',
|
||||||
trainingRemark: '控制权限转换,强制站控',
|
trainingRemark: '出现故障时,应先尝试站控,无法恢复后,可强制获得站控权',
|
||||||
trainingType: 'ControlConvertMenu',
|
trainingType: 'ControlConvertMenu',
|
||||||
productTypes: ['01'],
|
productTypes: ['01'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -127,7 +127,7 @@ export default {
|
|||||||
operateType: 'Stand_Set_Hold_Train',
|
operateType: 'Stand_Set_Hold_Train',
|
||||||
skinCode: '02',
|
skinCode: '02',
|
||||||
trainingName: '站台扣车({10}-{12}站台)',
|
trainingName: '站台扣车({10}-{12}站台)',
|
||||||
trainingRemark: '设置扣车功能',
|
trainingRemark: '对指定站台设置扣车,设置后当列车运行至该站台时,将会执行扣车,列车不再行驶',
|
||||||
trainingType: 'Stand',
|
trainingType: 'Stand',
|
||||||
productTypes: ['01', '02'],
|
productTypes: ['01', '02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -141,7 +141,7 @@ export default {
|
|||||||
operateType: 'Stand_Cancel_Hold_Train',
|
operateType: 'Stand_Cancel_Hold_Train',
|
||||||
skinCode: '02',
|
skinCode: '02',
|
||||||
trainingName: '站台取消扣车({10}-{12}站台)',
|
trainingName: '站台取消扣车({10}-{12}站台)',
|
||||||
trainingRemark: '设置取消扣车功能',
|
trainingRemark: '对指定站台取消之前设置的扣车',
|
||||||
trainingType: 'Stand',
|
trainingType: 'Stand',
|
||||||
productTypes: ['01', '02'],
|
productTypes: ['01', '02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -155,7 +155,7 @@ export default {
|
|||||||
operateType: 'Stand_Force_Cancel_Hold_Train',
|
operateType: 'Stand_Force_Cancel_Hold_Train',
|
||||||
skinCode: '02',
|
skinCode: '02',
|
||||||
trainingName: '强制取消扣车({10}-{12}站台)',
|
trainingName: '强制取消扣车({10}-{12}站台)',
|
||||||
trainingRemark: '强制取消扣车功能',
|
trainingRemark: '对指定站台强制取消之前设置的扣车 1)中心与车站通信中断时,在现地控制工作站在站控模式下可强制取消中心设置的扣车; 2)存在 ATP 扣车但是扣车位置未知时现地控制工作站在站控模式下可强制取消 ATP 扣车。',
|
||||||
trainingType: 'Stand',
|
trainingType: 'Stand',
|
||||||
productTypes: ['01'],
|
productTypes: ['01'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -198,7 +198,7 @@ export default {
|
|||||||
operateType: 'Stand_Set_Jump_Stop',
|
operateType: 'Stand_Set_Jump_Stop',
|
||||||
skinCode: '02',
|
skinCode: '02',
|
||||||
trainingName: '站台跳停({10}-{12}站台)',
|
trainingName: '站台跳停({10}-{12}站台)',
|
||||||
trainingRemark: '设置跳停功能',
|
trainingRemark: '对指定站台设置跳停命令,命令后续列车不停站通过该站台',
|
||||||
trainingType: 'Stand',
|
trainingType: 'Stand',
|
||||||
productTypes: ['01', '02'],
|
productTypes: ['01', '02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -212,7 +212,7 @@ export default {
|
|||||||
operateType: 'Stand_Cancel_Jump_Stop',
|
operateType: 'Stand_Cancel_Jump_Stop',
|
||||||
skinCode: '02',
|
skinCode: '02',
|
||||||
trainingName: '取消跳停({10}-{12}站台)',
|
trainingName: '取消跳停({10}-{12}站台)',
|
||||||
trainingRemark: '设置取消跳停功能',
|
trainingRemark: '对指定站台取消之前设置的跳停命令',
|
||||||
trainingType: 'Stand',
|
trainingType: 'Stand',
|
||||||
productTypes: ['01', '02'],
|
productTypes: ['01', '02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -226,7 +226,7 @@ export default {
|
|||||||
operateType: 'Stand_View_Status',
|
operateType: 'Stand_View_Status',
|
||||||
skinCode: '02',
|
skinCode: '02',
|
||||||
trainingName: '查询站台状态({10}-{12}站台)',
|
trainingName: '查询站台状态({10}-{12}站台)',
|
||||||
trainingRemark: '查询站台状态功能',
|
trainingRemark: '用于查看站台上已设置的命令信息,包括人工设置的停站时间、运行等级、扣车命令、跳停命令等',
|
||||||
trainingType: 'Stand',
|
trainingType: 'Stand',
|
||||||
productTypes: ['01', '02'],
|
productTypes: ['01', '02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -240,7 +240,7 @@ export default {
|
|||||||
operateType: 'Stand_Set_Park_Time',
|
operateType: 'Stand_Set_Park_Time',
|
||||||
skinCode: '02',
|
skinCode: '02',
|
||||||
trainingName: '设置停站时间({10}-{12}站台)',
|
trainingName: '设置停站时间({10}-{12}站台)',
|
||||||
trainingRemark: '设置停站时间(自动, 一直有效)',
|
trainingRemark: '对某一指定站台设置列车停站时间 (自动, 一直有效)',
|
||||||
trainingType: 'Stand',
|
trainingType: 'Stand',
|
||||||
productTypes: ['02'],
|
productTypes: ['02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -256,7 +256,7 @@ export default {
|
|||||||
operateType: 'Stand_Set_Park_Time',
|
operateType: 'Stand_Set_Park_Time',
|
||||||
skinCode: '02',
|
skinCode: '02',
|
||||||
trainingName: '设置停站时间({10}-{12}站台)',
|
trainingName: '设置停站时间({10}-{12}站台)',
|
||||||
trainingRemark: '设置停站时间(人工, 20秒, 一直有效)',
|
trainingRemark: '对某一指定站台设置列车停站时间 (人工, 20秒, 一直有效)',
|
||||||
trainingType: 'Stand',
|
trainingType: 'Stand',
|
||||||
productTypes: ['02'],
|
productTypes: ['02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -274,7 +274,7 @@ export default {
|
|||||||
operateType: 'Stand_Set_Park_Time',
|
operateType: 'Stand_Set_Park_Time',
|
||||||
skinCode: '02',
|
skinCode: '02',
|
||||||
trainingName: '设置停站时间({10}-{12}站台)',
|
trainingName: '设置停站时间({10}-{12}站台)',
|
||||||
trainingRemark: '设置停站时间(人工, 20秒, 一次有效)',
|
trainingRemark: '对某一指定站台设置列车停站时间 (人工, 20秒, 一次有效)',
|
||||||
trainingType: 'Stand',
|
trainingType: 'Stand',
|
||||||
productTypes: ['02'],
|
productTypes: ['02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -291,7 +291,7 @@ export default {
|
|||||||
operateType: 'Stand_Set_Run_Time',
|
operateType: 'Stand_Set_Run_Time',
|
||||||
skinCode: '02',
|
skinCode: '02',
|
||||||
trainingName: '设置运行等级({10}-{12}站台)',
|
trainingName: '设置运行等级({10}-{12}站台)',
|
||||||
trainingRemark: '设置运行等级(设置区间运行时间为60,一直有效)',
|
trainingRemark: '设置某一指定站台到下一站台的区间运行时间 (设置区间运行时间为60,一直有效)',
|
||||||
trainingType: 'Stand',
|
trainingType: 'Stand',
|
||||||
productTypes: ['02'],
|
productTypes: ['02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -308,7 +308,7 @@ export default {
|
|||||||
operateType: 'Stand_Set_Run_Time',
|
operateType: 'Stand_Set_Run_Time',
|
||||||
skinCode: '02',
|
skinCode: '02',
|
||||||
trainingName: '设置运行等级({10}-{12}站台)',
|
trainingName: '设置运行等级({10}-{12}站台)',
|
||||||
trainingRemark: '设置运行等级(设置区间运行时间为60,一次有效)',
|
trainingRemark: '设置某一指定站台到下一站台的区间运行时间 (设置区间运行时间为60,一次有效)',
|
||||||
trainingType: 'Stand',
|
trainingType: 'Stand',
|
||||||
productTypes: ['02'],
|
productTypes: ['02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -324,7 +324,7 @@ export default {
|
|||||||
operateType: 'Stand_Early_Depart',
|
operateType: 'Stand_Early_Depart',
|
||||||
skinCode: '02',
|
skinCode: '02',
|
||||||
trainingName: '设置提前发车({10}-{12}站台)',
|
trainingName: '设置提前发车({10}-{12}站台)',
|
||||||
trainingRemark: '设置提前发车功能',
|
trainingRemark: '对指定站台设置提前发车命令,允许该站台当前停站列车立即发车,不论是否还剩余停站时间',
|
||||||
trainingType: 'Stand',
|
trainingType: 'Stand',
|
||||||
productTypes: ['02'],
|
productTypes: ['02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -338,7 +338,7 @@ export default {
|
|||||||
operateType: 'Stand_Set_Reentry_Strategy',
|
operateType: 'Stand_Set_Reentry_Strategy',
|
||||||
skinCode: '02',
|
skinCode: '02',
|
||||||
trainingName: '人工折返策略设置({10}-{12}站台)',
|
trainingName: '人工折返策略设置({10}-{12}站台)',
|
||||||
trainingRemark: '人工折返策略设置功能',
|
trainingRemark: '设定车辆运行至该站时的折返方式 (无折返)',
|
||||||
trainingType: 'Stand',
|
trainingType: 'Stand',
|
||||||
productTypes: ['02'],
|
productTypes: ['02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -354,7 +354,7 @@ export default {
|
|||||||
operateType: 'Section_Fault_Unlock',
|
operateType: 'Section_Fault_Unlock',
|
||||||
skinCode: '02',
|
skinCode: '02',
|
||||||
trainingName: '区段故障解锁({8}{9})',
|
trainingName: '区段故障解锁({8}{9})',
|
||||||
trainingRemark: '故障解锁功能',
|
trainingRemark: '列车通过进路时,因进路中设备故障,无法正常解锁时,需采用故障解锁使未解锁的部分解锁',
|
||||||
trainingType: 'Section',
|
trainingType: 'Section',
|
||||||
productTypes: ['01', '02'],
|
productTypes: ['01', '02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -371,7 +371,7 @@ export default {
|
|||||||
operateType: 'Section_Cut_Off',
|
operateType: 'Section_Cut_Off',
|
||||||
skinCode: '02',
|
skinCode: '02',
|
||||||
trainingName: '区段切除({8}{9})',
|
trainingName: '区段切除({8}{9})',
|
||||||
trainingRemark: '区段切除',
|
trainingRemark: '对某一计轴设置切除状态,ATS不再使用该计轴的占用出清状态变化跟踪列车',
|
||||||
trainingType: 'Section',
|
trainingType: 'Section',
|
||||||
productTypes: ['01', '02'],
|
productTypes: ['01', '02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -385,7 +385,7 @@ export default {
|
|||||||
operateType: 'Section_Active',
|
operateType: 'Section_Active',
|
||||||
skinCode: '02',
|
skinCode: '02',
|
||||||
trainingName: '区段激活({8}{9})',
|
trainingName: '区段激活({8}{9})',
|
||||||
trainingRemark: '区段激活功能',
|
trainingRemark: '取消某一计轴上被设置的切除状态,ATS重新使用该计轴的占用出清状态变化跟踪列车',
|
||||||
trainingType: 'Section',
|
trainingType: 'Section',
|
||||||
productTypes: ['01', '02'],
|
productTypes: ['01', '02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -399,7 +399,7 @@ export default {
|
|||||||
operateType: 'Section_Axis_Pre_Reset',
|
operateType: 'Section_Axis_Pre_Reset',
|
||||||
skinCode: '02',
|
skinCode: '02',
|
||||||
trainingName: '计轴预复位({8}{9})',
|
trainingName: '计轴预复位({8}{9})',
|
||||||
trainingRemark: '计轴预复位功能',
|
trainingRemark: '预复位是在计轴故障时预重置计轴区段',
|
||||||
trainingType: 'Section',
|
trainingType: 'Section',
|
||||||
productTypes: ['01', '02'],
|
productTypes: ['01', '02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -416,7 +416,7 @@ export default {
|
|||||||
operateType: 'Section_Block',
|
operateType: 'Section_Block',
|
||||||
skinCode: '02',
|
skinCode: '02',
|
||||||
trainingName: '区段封锁({8}{9})',
|
trainingName: '区段封锁({8}{9})',
|
||||||
trainingRemark: '区段封锁功能',
|
trainingRemark: '封锁后,禁止通过该区段排列进路',
|
||||||
trainingType: 'Section',
|
trainingType: 'Section',
|
||||||
productTypes: ['01', '02'],
|
productTypes: ['01', '02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -430,7 +430,7 @@ export default {
|
|||||||
operateType: 'Section_Unblock',
|
operateType: 'Section_Unblock',
|
||||||
skinCode: '02',
|
skinCode: '02',
|
||||||
trainingName: '区段解封({8}{9})',
|
trainingName: '区段解封({8}{9})',
|
||||||
trainingRemark: '区段解封功能',
|
trainingRemark: '允许通过该区段排列进路',
|
||||||
trainingType: 'Section',
|
trainingType: 'Section',
|
||||||
productTypes: ['01', '02'],
|
productTypes: ['01', '02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -447,7 +447,7 @@ export default {
|
|||||||
operateType: 'Section_Set_Limit_Speed',
|
operateType: 'Section_Set_Limit_Speed',
|
||||||
skinCode: '02',
|
skinCode: '02',
|
||||||
trainingName: '区段设置限速({8}{9})',
|
trainingName: '区段设置限速({8}{9})',
|
||||||
trainingRemark: '区段设置限速功能(限速值:5)',
|
trainingRemark: '对区段设置限速(限速值:5)',
|
||||||
trainingType: 'Section',
|
trainingType: 'Section',
|
||||||
productTypes: ['01', '02'],
|
productTypes: ['01', '02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -469,7 +469,7 @@ export default {
|
|||||||
operateType: 'Section_Cancel_Limit_Speed',
|
operateType: 'Section_Cancel_Limit_Speed',
|
||||||
skinCode: '02',
|
skinCode: '02',
|
||||||
trainingName: '区段取消限速({8}{9})',
|
trainingName: '区段取消限速({8}{9})',
|
||||||
trainingRemark: '区段取消限速功能',
|
trainingRemark: '取消对区段的限速',
|
||||||
trainingType: 'Section',
|
trainingType: 'Section',
|
||||||
productTypes: ['01', '02'],
|
productTypes: ['01', '02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -491,7 +491,7 @@ export default {
|
|||||||
operateType: 'Switch_Single_Lock',
|
operateType: 'Switch_Single_Lock',
|
||||||
skinCode: '02',
|
skinCode: '02',
|
||||||
trainingName: '道岔单锁({7})',
|
trainingName: '道岔单锁({7})',
|
||||||
trainingRemark: '道岔单锁功能',
|
trainingRemark: '锁定单个道岔,阻止转换',
|
||||||
trainingType: 'Switch',
|
trainingType: 'Switch',
|
||||||
productTypes: ['01', '02'],
|
productTypes: ['01', '02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -505,7 +505,7 @@ export default {
|
|||||||
operateType: 'Switch_Single_Unlock',
|
operateType: 'Switch_Single_Unlock',
|
||||||
skinCode: '02',
|
skinCode: '02',
|
||||||
trainingName: '道岔单解({7})',
|
trainingName: '道岔单解({7})',
|
||||||
trainingRemark: '道岔单解功能',
|
trainingRemark: '取消对单个道岔的锁定,道岔可以转换',
|
||||||
trainingType: 'Switch',
|
trainingType: 'Switch',
|
||||||
productTypes: ['01', '02'],
|
productTypes: ['01', '02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -522,7 +522,7 @@ export default {
|
|||||||
operateType: 'Switch_Block',
|
operateType: 'Switch_Block',
|
||||||
skinCode: '02',
|
skinCode: '02',
|
||||||
trainingName: '道岔封锁({7})',
|
trainingName: '道岔封锁({7})',
|
||||||
trainingRemark: '道岔封锁功能',
|
trainingRemark: '禁止通过道岔排列进路,但道岔可通过转换道岔命令进行位置转换。',
|
||||||
trainingType: 'Switch',
|
trainingType: 'Switch',
|
||||||
productTypes: ['01', '02'],
|
productTypes: ['01', '02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -536,7 +536,7 @@ export default {
|
|||||||
operateType: 'Switch_Unblock',
|
operateType: 'Switch_Unblock',
|
||||||
skinCode: '02',
|
skinCode: '02',
|
||||||
trainingName: '道岔解封({7})',
|
trainingName: '道岔解封({7})',
|
||||||
trainingRemark: '道岔解封功能',
|
trainingRemark: '允许通过道岔排列进路',
|
||||||
trainingType: 'Switch',
|
trainingType: 'Switch',
|
||||||
productTypes: ['01', '02'],
|
productTypes: ['01', '02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -553,7 +553,7 @@ export default {
|
|||||||
operateType: 'Switch_Turn',
|
operateType: 'Switch_Turn',
|
||||||
skinCode: '02',
|
skinCode: '02',
|
||||||
trainingName: '道岔转动({7})',
|
trainingName: '道岔转动({7})',
|
||||||
trainingRemark: '道岔转动功能({15}转{16})',
|
trainingRemark: '转换道岔至{16}(道岔区段逻辑空闲;道岔没有被锁闭(没有被进路、保护区段、侧防征用);道岔没有挤岔。道岔没有(单独)锁定。)',
|
||||||
trainingType: 'Switch',
|
trainingType: 'Switch',
|
||||||
productTypes: ['01', '02'],
|
productTypes: ['01', '02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -567,7 +567,7 @@ export default {
|
|||||||
operateType: 'Switch_Fault_Unlock',
|
operateType: 'Switch_Fault_Unlock',
|
||||||
skinCode: '02',
|
skinCode: '02',
|
||||||
trainingName: '道岔区段故障解锁({7})',
|
trainingName: '道岔区段故障解锁({7})',
|
||||||
trainingRemark: '道岔区段故障解锁功能',
|
trainingRemark: '列车通过进路时,因进路中设备故障,无法正常解锁时,需采用故障解锁使未解锁的部分解锁',
|
||||||
trainingType: 'Switch',
|
trainingType: 'Switch',
|
||||||
productTypes: ['01', '02'],
|
productTypes: ['01', '02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -584,7 +584,7 @@ export default {
|
|||||||
operateType: 'Switch_Axle_Pre_Reset',
|
operateType: 'Switch_Axle_Pre_Reset',
|
||||||
skinCode: '02',
|
skinCode: '02',
|
||||||
trainingName: '道岔计轴预复位({7})',
|
trainingName: '道岔计轴预复位({7})',
|
||||||
trainingRemark: '道岔计轴预复位功能',
|
trainingRemark: '预复位是在计轴故障时预重置计轴区段',
|
||||||
trainingType: 'Switch',
|
trainingType: 'Switch',
|
||||||
productTypes: ['01'],
|
productTypes: ['01'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -601,7 +601,7 @@ export default {
|
|||||||
operateType: 'Switch_Cut_Off',
|
operateType: 'Switch_Cut_Off',
|
||||||
skinCode: '02',
|
skinCode: '02',
|
||||||
trainingName: '道岔区段切除({7})',
|
trainingName: '道岔区段切除({7})',
|
||||||
trainingRemark: '道岔区段切除',
|
trainingRemark: '对某一计轴设置切除状态,ATS不再使用该计轴的占用出清状态变化跟踪列车',
|
||||||
trainingType: 'Switch',
|
trainingType: 'Switch',
|
||||||
productTypes: ['01', '02'],
|
productTypes: ['01', '02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -615,7 +615,7 @@ export default {
|
|||||||
operateType: 'Switch_Active',
|
operateType: 'Switch_Active',
|
||||||
skinCode: '02',
|
skinCode: '02',
|
||||||
trainingName: '道岔区段激活({7})',
|
trainingName: '道岔区段激活({7})',
|
||||||
trainingRemark: '道岔区段激活功能',
|
trainingRemark: '取消某一计轴上被设置的切除状态,ATS重新使用该计轴的占用出清状态变化跟踪列车',
|
||||||
trainingType: 'Switch',
|
trainingType: 'Switch',
|
||||||
productTypes: ['01', '02'],
|
productTypes: ['01', '02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -629,7 +629,7 @@ export default {
|
|||||||
operateType: 'Switch_Set_Limit_Speed',
|
operateType: 'Switch_Set_Limit_Speed',
|
||||||
skinCode: '02',
|
skinCode: '02',
|
||||||
trainingName: '道岔区段设置限速({7})',
|
trainingName: '道岔区段设置限速({7})',
|
||||||
trainingRemark: '道岔区段设置限速功能(限速值:5)',
|
trainingRemark: '对道岔设置限速(限速值:5)',
|
||||||
trainingType: 'Switch',
|
trainingType: 'Switch',
|
||||||
productTypes: ['01', '02'],
|
productTypes: ['01', '02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -648,7 +648,7 @@ export default {
|
|||||||
operateType: 'Switch_Cancel_Limit_Speed',
|
operateType: 'Switch_Cancel_Limit_Speed',
|
||||||
skinCode: '02',
|
skinCode: '02',
|
||||||
trainingName: '道岔区段取消限速({7})',
|
trainingName: '道岔区段取消限速({7})',
|
||||||
trainingRemark: '道岔区段取消限速功能',
|
trainingRemark: '取消对道岔的限速',
|
||||||
trainingType: 'Switch',
|
trainingType: 'Switch',
|
||||||
productTypes: ['01', '02'],
|
productTypes: ['01', '02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -667,7 +667,7 @@ export default {
|
|||||||
operateType: 'Signal_Set_Route',
|
operateType: 'Signal_Set_Route',
|
||||||
skinCode: '02',
|
skinCode: '02',
|
||||||
trainingName: '进路选排({3})',
|
trainingName: '进路选排({3})',
|
||||||
trainingRemark: '选择排列进路',
|
trainingRemark: '进路:列车在站内运行时所经由的路径。依据进路是否建立,可以将进路状态分成锁闭状态和解锁状态。建立了进路,即指利用该进路排列了进路,称该进路处于锁闭状态。进路处于锁闭状态时,进路上的所有道岔被锁闭在规定位置(不能转换位置),防护该进路的信号机才能开放,列车才可能在该进路上运行。',
|
||||||
trainingType: 'Signal',
|
trainingType: 'Signal',
|
||||||
productTypes: ['01', '02'],
|
productTypes: ['01', '02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -683,7 +683,7 @@ export default {
|
|||||||
operateType: 'Signal_Find_Routes_Status',
|
operateType: 'Signal_Find_Routes_Status',
|
||||||
skinCode: '04',
|
skinCode: '04',
|
||||||
trainingName: '查询进路控制模式({5} 信号机)',
|
trainingName: '查询进路控制模式({5} 信号机)',
|
||||||
trainingRemark: '查询进路控制模式',
|
trainingRemark: '查看某个信号机为始端的进路是否处于ATS自动触发状态',
|
||||||
trainingType:'Signal',
|
trainingType:'Signal',
|
||||||
productTypes: ['01', '02'],
|
productTypes: ['01', '02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -697,7 +697,7 @@ export default {
|
|||||||
operateType: 'Signal_Cancel_Route',
|
operateType: 'Signal_Cancel_Route',
|
||||||
skinCode: '02',
|
skinCode: '02',
|
||||||
trainingName: '进路取消({3})',
|
trainingName: '进路取消({3})',
|
||||||
trainingRemark: '进路取消',
|
trainingRemark: '当列车运行通过锁闭的进路后,该进路将被解锁而处于解锁状态。解锁状态时进路上道岔随时有转换位置的可能,列车在该进路上运行将极其危险,因而一般不允许列车在没有锁闭的进路上运行。',
|
||||||
trainingType: 'Signal',
|
trainingType: 'Signal',
|
||||||
productTypes: ['02'],
|
productTypes: ['02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -712,7 +712,7 @@ export default {
|
|||||||
operateType: 'Signal_Cancel_Route',
|
operateType: 'Signal_Cancel_Route',
|
||||||
skinCode: '02',
|
skinCode: '02',
|
||||||
trainingName: '进路取消({3})',
|
trainingName: '进路取消({3})',
|
||||||
trainingRemark: '进路取消',
|
trainingRemark: '当列车运行通过锁闭的进路后,该进路将被解锁而处于解锁状态。解锁状态时进路上道岔随时有转换位置的可能,列车在该进路上运行将极其危险,因而一般不允许列车在没有锁闭的进路上运行。',
|
||||||
trainingType: 'Signal',
|
trainingType: 'Signal',
|
||||||
productTypes: ['01'],
|
productTypes: ['01'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -726,7 +726,7 @@ export default {
|
|||||||
operateType: 'Signal_Block',
|
operateType: 'Signal_Block',
|
||||||
skinCode: '02',
|
skinCode: '02',
|
||||||
trainingName: '信号封闭({5})',
|
trainingName: '信号封闭({5})',
|
||||||
trainingRemark: '信号封闭',
|
trainingRemark: '封锁在关闭状态下的信号机,信号机被封锁后,将不能开放主信号',
|
||||||
trainingType: 'Signal',
|
trainingType: 'Signal',
|
||||||
productTypes: ['01', '02'],
|
productTypes: ['01', '02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -740,7 +740,7 @@ export default {
|
|||||||
operateType: 'Signal_Unblock',
|
operateType: 'Signal_Unblock',
|
||||||
skinCode: '02',
|
skinCode: '02',
|
||||||
trainingName: '信号解封({5})',
|
trainingName: '信号解封({5})',
|
||||||
trainingRemark: '信号解封',
|
trainingRemark: '取消对关闭状态下的信号机的封锁',
|
||||||
trainingType: 'Signal',
|
trainingType: 'Signal',
|
||||||
productTypes: ['01', '02'],
|
productTypes: ['01', '02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -758,7 +758,7 @@ export default {
|
|||||||
operateType: 'Signal_Close_Signal',
|
operateType: 'Signal_Close_Signal',
|
||||||
skinCode: '02',
|
skinCode: '02',
|
||||||
trainingName: '信号关灯({5})',
|
trainingName: '信号关灯({5})',
|
||||||
trainingRemark: '信号关灯',
|
trainingRemark: '设置信号机为关闭状态',
|
||||||
trainingType: 'Signal',
|
trainingType: 'Signal',
|
||||||
productTypes: ['01', '02'],
|
productTypes: ['01', '02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -773,7 +773,7 @@ export default {
|
|||||||
operateType: 'Signal_Reopen_Signal',
|
operateType: 'Signal_Reopen_Signal',
|
||||||
skinCode: '02',
|
skinCode: '02',
|
||||||
trainingName: '信号重开({5})',
|
trainingName: '信号重开({5})',
|
||||||
trainingRemark: '信号重开',
|
trainingRemark: '信号由于故障(如锁闭的进路区段故障)或人工干预导致信号关闭,此后调度运营想再次开放此信号(前提是信号开放的条件具备,如故障区段已恢复),可以执行信号重开使信号重新开放',
|
||||||
trainingType: 'Signal',
|
trainingType: 'Signal',
|
||||||
productTypes: ['01', '02'],
|
productTypes: ['01', '02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -788,7 +788,7 @@ export default {
|
|||||||
operateType: 'Signal_Set_Guide',
|
operateType: 'Signal_Set_Guide',
|
||||||
skinCode: '02',
|
skinCode: '02',
|
||||||
trainingName: '进路引导({3})',
|
trainingName: '进路引导({3})',
|
||||||
trainingRemark: '进路办理信号引导',
|
trainingRemark: '接车进路上轨道电路故障占用或进站信号机无法开放允许灯光时,以引导进路方式接车。',
|
||||||
trainingType: 'Signal',
|
trainingType: 'Signal',
|
||||||
productTypes: ['01'],
|
productTypes: ['01'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -805,7 +805,7 @@ export default {
|
|||||||
operateType: 'Signal_Set_Guide',
|
operateType: 'Signal_Set_Guide',
|
||||||
skinCode: '02',
|
skinCode: '02',
|
||||||
trainingName: '引导进路办理({3})',
|
trainingName: '引导进路办理({3})',
|
||||||
trainingRemark: '进路办理信号引导',
|
trainingRemark: '接车进路上轨道电路故障占用或进站信号机无法开放允许灯光时,以引导进路方式接车。',
|
||||||
trainingType: 'Signal',
|
trainingType: 'Signal',
|
||||||
productTypes: ['02'],
|
productTypes: ['02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -822,7 +822,7 @@ export default {
|
|||||||
operateType: 'Signal_Open_Auto_Setting',
|
operateType: 'Signal_Open_Auto_Setting',
|
||||||
skinCode: '02',
|
skinCode: '02',
|
||||||
trainingName: '进路交ATS自动控({3})',
|
trainingName: '进路交ATS自动控({3})',
|
||||||
trainingRemark: '进路交ATS自动控',
|
trainingRemark: '将某个信号机为始端的某条进路设置为由ATS自动触发使能',
|
||||||
trainingType: 'Signal',
|
trainingType: 'Signal',
|
||||||
productTypes: ['02'],
|
productTypes: ['02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -837,7 +837,7 @@ export default {
|
|||||||
operateType: 'Signal_Close_Auto_Setting',
|
operateType: 'Signal_Close_Auto_Setting',
|
||||||
skinCode: '02',
|
skinCode: '02',
|
||||||
trainingName: '进路交人工控({3})',
|
trainingName: '进路交人工控({3})',
|
||||||
trainingRemark: '进路交人工控',
|
trainingRemark: '将某个信号机为始端的进路取消ATS自动触发使能转为人工办理',
|
||||||
trainingType: 'Signal',
|
trainingType: 'Signal',
|
||||||
productTypes: ['02'],
|
productTypes: ['02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -846,27 +846,27 @@ export default {
|
|||||||
{ deviceType: '04', orderNum: 3, operateCode: '314', tip: '鼠标左键点击【确定】按钮', val: '{4}' }
|
{ deviceType: '04', orderNum: 3, operateCode: '314', tip: '鼠标左键点击【确定】按钮', val: '{4}' }
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
// {
|
||||||
maxDuration: 15,
|
// maxDuration: 15,
|
||||||
minDuration: 8,
|
// minDuration: 8,
|
||||||
operateType: 'Signal_Find_Routes_Status',
|
// operateType: 'Signal_Find_Routes_Status',
|
||||||
skinCode: '02',
|
// skinCode: '02',
|
||||||
trainingName: '查询进路控制状态({5})',
|
// trainingName: '查询进路控制状态({5})',
|
||||||
trainingRemark: '查询进路控制状态',
|
// trainingRemark: '查询进路控制状态',
|
||||||
trainingType: 'Signal',
|
// trainingType: 'Signal',
|
||||||
productTypes: ['02'],
|
// productTypes: ['02'],
|
||||||
stepVOList: [
|
// stepVOList: [
|
||||||
{ deviceType: '04', orderNum: 1, operateCode: '316', tip: '鼠标右键菜单选择【查询进路控制模式】' },
|
// { deviceType: '04', orderNum: 1, operateCode: '316', tip: '鼠标右键菜单选择【查询进路控制模式】' },
|
||||||
{ deviceType: '04', orderNum: 2, operateCode: '316', tip: '鼠标左键点击【确定】按钮' }
|
// { deviceType: '04', orderNum: 2, operateCode: '316', tip: '鼠标左键点击【确定】按钮' }
|
||||||
]
|
// ]
|
||||||
},
|
// },
|
||||||
{
|
{
|
||||||
maxDuration: 15,
|
maxDuration: 15,
|
||||||
minDuration: 8,
|
minDuration: 8,
|
||||||
operateType: 'Signal_Set_CI_Auto',
|
operateType: 'Signal_Set_CI_Auto',
|
||||||
skinCode: '02',
|
skinCode: '02',
|
||||||
trainingName: '设置联锁自动进路({5})',
|
trainingName: '设置联锁自动进路({5})',
|
||||||
trainingRemark: '设置联锁自动进路',
|
trainingRemark: '进行联锁进路排列,为NRM驾驶模式及RM驾驶模式的列车提供行车的进路',
|
||||||
trainingType: 'Signal',
|
trainingType: 'Signal',
|
||||||
productTypes: ['01'],
|
productTypes: ['01'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -880,7 +880,7 @@ export default {
|
|||||||
operateType: 'Signal_Cancel_CI_Auto',
|
operateType: 'Signal_Cancel_CI_Auto',
|
||||||
skinCode: '02',
|
skinCode: '02',
|
||||||
trainingName: '取消联锁自动进路({5})',
|
trainingName: '取消联锁自动进路({5})',
|
||||||
trainingRemark: '取消联锁自动进路',
|
trainingRemark: '取消联锁进路排列',
|
||||||
trainingType: 'Signal',
|
trainingType: 'Signal',
|
||||||
productTypes: ['01'],
|
productTypes: ['01'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -894,7 +894,7 @@ export default {
|
|||||||
operateType: 'Signal_Set_CI_Auto_Trigger',
|
operateType: 'Signal_Set_CI_Auto_Trigger',
|
||||||
skinCode: '02',
|
skinCode: '02',
|
||||||
trainingName: '设置联锁自动触发({5})',
|
trainingName: '设置联锁自动触发({5})',
|
||||||
trainingRemark: '设置联锁自动触发',
|
trainingRemark: '设置单架信号机处于联锁自动排列进路',
|
||||||
trainingType: 'Signal',
|
trainingType: 'Signal',
|
||||||
productTypes: ['01'],
|
productTypes: ['01'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -908,7 +908,7 @@ export default {
|
|||||||
operateType: 'Signal_Cancel_CI_Auto_Trigger',
|
operateType: 'Signal_Cancel_CI_Auto_Trigger',
|
||||||
skinCode: '02',
|
skinCode: '02',
|
||||||
trainingName: '取消联锁自动触发({5})',
|
trainingName: '取消联锁自动触发({5})',
|
||||||
trainingRemark: '取消联锁自动触发',
|
trainingRemark: '取消单架信号机处于联锁自动排列进路',
|
||||||
trainingType: 'Signal',
|
trainingType: 'Signal',
|
||||||
productTypes: ['01'],
|
productTypes: ['01'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
|
@ -6,7 +6,7 @@ export default {
|
|||||||
operateType: 'Stand_Set_Hold_Train',
|
operateType: 'Stand_Set_Hold_Train',
|
||||||
skinCode: '06',
|
skinCode: '06',
|
||||||
trainingName: '扣车({10}-{12} 站台)',
|
trainingName: '扣车({10}-{12} 站台)',
|
||||||
trainingRemark: '设置扣车功能',
|
trainingRemark: '对指定站台设置扣车,设置后当列车运行至该站台时,将会执行扣车,列车不再行驶',
|
||||||
trainingType: 'Stand',
|
trainingType: 'Stand',
|
||||||
productTypes: ['01', '02'], // 产品类型 01 现地 02 行调
|
productTypes: ['01', '02'], // 产品类型 01 现地 02 行调
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -21,7 +21,7 @@ export default {
|
|||||||
operateType: 'Stand_Cancel_Hold_Train',
|
operateType: 'Stand_Cancel_Hold_Train',
|
||||||
skinCode: '06',
|
skinCode: '06',
|
||||||
trainingName: '取消扣车({10}-{12} 站台)',
|
trainingName: '取消扣车({10}-{12} 站台)',
|
||||||
trainingRemark: '取消扣车功能',
|
trainingRemark: '对指定站台取消之前设置的扣车',
|
||||||
trainingType: 'Stand',
|
trainingType: 'Stand',
|
||||||
productTypes: ['01', '02'], // 产品类型 01 现地 02 行调
|
productTypes: ['01', '02'], // 产品类型 01 现地 02 行调
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -64,7 +64,7 @@ export default {
|
|||||||
operateType: 'Stand_Early_Depart',
|
operateType: 'Stand_Early_Depart',
|
||||||
skinCode: '06',
|
skinCode: '06',
|
||||||
trainingName: '提前发车({10}-{12}站台)',
|
trainingName: '提前发车({10}-{12}站台)',
|
||||||
trainingRemark: '提前发车功能',
|
trainingRemark: '对指定站台设置提前发车命令,允许该站台当前停站列车立即发车,不论是否还剩余停站时间',
|
||||||
trainingType: 'Stand',
|
trainingType: 'Stand',
|
||||||
productTypes: ['01', '02'],
|
productTypes: ['01', '02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -79,7 +79,7 @@ export default {
|
|||||||
operateType: 'Stand_Set_Jump_Stop',
|
operateType: 'Stand_Set_Jump_Stop',
|
||||||
skinCode: '06',
|
skinCode: '06',
|
||||||
trainingName: '设置跳停({10}-{12}站台)',
|
trainingName: '设置跳停({10}-{12}站台)',
|
||||||
trainingRemark: '设置跳停功能',
|
trainingRemark: '对指定站台设置跳停命令,命令后续列车不停站通过该站台',
|
||||||
trainingType: 'Stand',
|
trainingType: 'Stand',
|
||||||
productTypes: ['02'],
|
productTypes: ['02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -93,7 +93,7 @@ export default {
|
|||||||
operateType: 'Stand_Set_Jump_Stop',
|
operateType: 'Stand_Set_Jump_Stop',
|
||||||
skinCode: '06',
|
skinCode: '06',
|
||||||
trainingName: '设置跳停({10}-{12}站台)',
|
trainingName: '设置跳停({10}-{12}站台)',
|
||||||
trainingRemark: '设置指定001号列车跳停功能',
|
trainingRemark: '对指定站台指定列车设置跳停命令,命令该列车不停站通过该站台(001号车)',
|
||||||
trainingType: 'Stand',
|
trainingType: 'Stand',
|
||||||
productTypes: ['02'],
|
productTypes: ['02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -109,7 +109,7 @@ export default {
|
|||||||
operateType: 'Stand_Cancel_Jump_Stop',
|
operateType: 'Stand_Cancel_Jump_Stop',
|
||||||
skinCode: '06',
|
skinCode: '06',
|
||||||
trainingName: '取消跳停({10}-{12}站台)',
|
trainingName: '取消跳停({10}-{12}站台)',
|
||||||
trainingRemark: '设置取消跳停功能',
|
trainingRemark: '对指定站台取消之前设置的跳停命令',
|
||||||
trainingType: 'Stand',
|
trainingType: 'Stand',
|
||||||
productTypes: ['02'],
|
productTypes: ['02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -138,7 +138,7 @@ export default {
|
|||||||
operateType: 'Stand_Set_Park_Time',
|
operateType: 'Stand_Set_Park_Time',
|
||||||
skinCode: '06',
|
skinCode: '06',
|
||||||
trainingName: '设置停站时间({10}-{12}站台)',
|
trainingName: '设置停站时间({10}-{12}站台)',
|
||||||
trainingRemark: '设置停站时间(人工, 20秒, 一直有效)',
|
trainingRemark: '对某一指定站台设置列车停站时间 (人工, 20秒, 一直有效)',
|
||||||
trainingType: 'Stand',
|
trainingType: 'Stand',
|
||||||
productTypes: ['02'],
|
productTypes: ['02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -155,7 +155,7 @@ export default {
|
|||||||
operateType: 'Stand_Set_Park_Time',
|
operateType: 'Stand_Set_Park_Time',
|
||||||
skinCode: '06',
|
skinCode: '06',
|
||||||
trainingName: '设置停站时间({10}-{12}站台)',
|
trainingName: '设置停站时间({10}-{12}站台)',
|
||||||
trainingRemark: '设置停站时间(人工, 20秒, 一次有效)',
|
trainingRemark: '对某一指定站台设置列车停站时间 (人工, 20秒, 一次有效)',
|
||||||
trainingType: 'Stand',
|
trainingType: 'Stand',
|
||||||
productTypes: ['02'],
|
productTypes: ['02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -171,7 +171,7 @@ export default {
|
|||||||
operateType: 'Stand_Set_Run_Time',
|
operateType: 'Stand_Set_Run_Time',
|
||||||
skinCode: '06',
|
skinCode: '06',
|
||||||
trainingName: '设置运行等级({10}-{12} 站台)',
|
trainingName: '设置运行等级({10}-{12} 站台)',
|
||||||
trainingRemark: '设置运行等级(设置区间 运行等级1,运行时间为115,一直有效)',
|
trainingRemark: '设置某一指定站台到下一站台的区间运行时间 (设置区间 运行等级1,运行时间为115,一直有效)',
|
||||||
trainingType: 'Stand',
|
trainingType: 'Stand',
|
||||||
productTypes: ['02'],
|
productTypes: ['02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -232,7 +232,7 @@ export default {
|
|||||||
operateType: 'Stand_View_Status',
|
operateType: 'Stand_View_Status',
|
||||||
skinCode: '06',
|
skinCode: '06',
|
||||||
trainingName: '站台详细信息({10}-{12}站台)',
|
trainingName: '站台详细信息({10}-{12}站台)',
|
||||||
trainingRemark: '站台详细信息功能',
|
trainingRemark: '用于查看站台上已设置的命令信息,包括人工设置的停站时间、运行等级、扣车命令、跳停命令等',
|
||||||
trainingType: 'Stand',
|
trainingType: 'Stand',
|
||||||
productTypes: ['01', '02'],
|
productTypes: ['01', '02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -246,7 +246,7 @@ export default {
|
|||||||
operateType: 'Section_Fault_Unlock',
|
operateType: 'Section_Fault_Unlock',
|
||||||
skinCode: '06',
|
skinCode: '06',
|
||||||
trainingName: '区故解({8}{9})',
|
trainingName: '区故解({8}{9})',
|
||||||
trainingRemark: '区故解',
|
trainingRemark: '列车通过进路时,因进路中设备故障,无法正常解锁时,需采用故障解锁使未解锁的部分解锁',
|
||||||
trainingType: 'Section',
|
trainingType: 'Section',
|
||||||
productTypes: ['01'],
|
productTypes: ['01'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -263,7 +263,7 @@ export default {
|
|||||||
operateType: 'Section_Cut_Off',
|
operateType: 'Section_Cut_Off',
|
||||||
skinCode: '06',
|
skinCode: '06',
|
||||||
trainingName: '区段跟踪切除({8}{9})',
|
trainingName: '区段跟踪切除({8}{9})',
|
||||||
trainingRemark: '区段跟踪切除',
|
trainingRemark: '对某一计轴设置切除状态,ATS不再使用该计轴的占用出清状态变化跟踪列车',
|
||||||
trainingType: 'Section',
|
trainingType: 'Section',
|
||||||
productTypes: ['01', '02'],
|
productTypes: ['01', '02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -278,7 +278,7 @@ export default {
|
|||||||
operateType: 'Section_Active',
|
operateType: 'Section_Active',
|
||||||
skinCode: '06',
|
skinCode: '06',
|
||||||
trainingName: '区段跟踪激活({8}{9})',
|
trainingName: '区段跟踪激活({8}{9})',
|
||||||
trainingRemark: '区段跟踪激活功能',
|
trainingRemark: '取消某一计轴上被设置的切除状态,ATS重新使用该计轴的占用出清状态变化跟踪列车',
|
||||||
trainingType: 'Section',
|
trainingType: 'Section',
|
||||||
productTypes: ['01', '02'],
|
productTypes: ['01', '02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -293,7 +293,7 @@ export default {
|
|||||||
operateType: 'Section_Set_Limit_Speed',
|
operateType: 'Section_Set_Limit_Speed',
|
||||||
skinCode: '06',
|
skinCode: '06',
|
||||||
trainingName: '设置临时限速({8}{9})',
|
trainingName: '设置临时限速({8}{9})',
|
||||||
trainingRemark: '设置临时限速功能(限速值:5)',
|
trainingRemark: '对区段设置限速(限速值:5)',
|
||||||
trainingType: 'Section',
|
trainingType: 'Section',
|
||||||
productTypes: ['02'],
|
productTypes: ['02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -312,7 +312,7 @@ export default {
|
|||||||
operateType: 'Section_Cancel_Limit_Speed',
|
operateType: 'Section_Cancel_Limit_Speed',
|
||||||
skinCode: '06',
|
skinCode: '06',
|
||||||
trainingName: '取消临时限速({8}{9})',
|
trainingName: '取消临时限速({8}{9})',
|
||||||
trainingRemark: '取消临时限速功能',
|
trainingRemark: '取消对区段的限速',
|
||||||
trainingType: 'Section',
|
trainingType: 'Section',
|
||||||
productTypes: ['02'],
|
productTypes: ['02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -331,7 +331,7 @@ export default {
|
|||||||
operateType: 'Section_Block',
|
operateType: 'Section_Block',
|
||||||
skinCode: '06',
|
skinCode: '06',
|
||||||
trainingName: '封锁({8}{9})',
|
trainingName: '封锁({8}{9})',
|
||||||
trainingRemark: '区段封锁功能',
|
trainingRemark: '封锁后,禁止通过该区段排列进路',
|
||||||
trainingType: 'Section',
|
trainingType: 'Section',
|
||||||
productTypes: ['01'],
|
productTypes: ['01'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -345,7 +345,7 @@ export default {
|
|||||||
operateType: 'Section_Unblock',
|
operateType: 'Section_Unblock',
|
||||||
skinCode: '06',
|
skinCode: '06',
|
||||||
trainingName: '解封({8}{9})',
|
trainingName: '解封({8}{9})',
|
||||||
trainingRemark: '区段解封功能',
|
trainingRemark: '允许通过该区段排列进路',
|
||||||
trainingType: 'Section',
|
trainingType: 'Section',
|
||||||
productTypes: ['01'],
|
productTypes: ['01'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -362,7 +362,7 @@ export default {
|
|||||||
operateType: 'Section_Confirm_Axis_Valid',
|
operateType: 'Section_Confirm_Axis_Valid',
|
||||||
skinCode: '06',
|
skinCode: '06',
|
||||||
trainingName: '确认计轴有效({8}{9})',
|
trainingName: '确认计轴有效({8}{9})',
|
||||||
trainingRemark: '确认计轴有效功能',
|
trainingRemark: '发送命令给ZC设备,确认某个被报告失效的计轴已被修复,要求ZC将该计轴置为有效状态。',
|
||||||
trainingType: 'Section',
|
trainingType: 'Section',
|
||||||
productTypes: ['02'],
|
productTypes: ['02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -410,7 +410,7 @@ export default {
|
|||||||
operateType: 'Switch_Cut_Off',
|
operateType: 'Switch_Cut_Off',
|
||||||
skinCode: '06',
|
skinCode: '06',
|
||||||
trainingName: '区段切除({7})',
|
trainingName: '区段切除({7})',
|
||||||
trainingRemark: '区段切除功能',
|
trainingRemark: '对某一计轴设置切除状态,ATS不再使用该计轴的占用出清状态变化跟踪列车',
|
||||||
trainingType: 'Switch',
|
trainingType: 'Switch',
|
||||||
productTypes: ['02'],
|
productTypes: ['02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -424,7 +424,7 @@ export default {
|
|||||||
operateType: 'Switch_Active',
|
operateType: 'Switch_Active',
|
||||||
skinCode: '06',
|
skinCode: '06',
|
||||||
trainingName: '区段激活({7})',
|
trainingName: '区段激活({7})',
|
||||||
trainingRemark: '区段激活功能',
|
trainingRemark: '取消某一计轴上被设置的切除状态,ATS重新使用该计轴的占用出清状态变化跟踪列车',
|
||||||
trainingType: 'Switch',
|
trainingType: 'Switch',
|
||||||
productTypes: ['02'],
|
productTypes: ['02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -438,7 +438,7 @@ export default {
|
|||||||
operateType: 'Switch_Confirm_Axis_Valid',
|
operateType: 'Switch_Confirm_Axis_Valid',
|
||||||
skinCode: '06',
|
skinCode: '06',
|
||||||
trainingName: '确认计轴有效({7})',
|
trainingName: '确认计轴有效({7})',
|
||||||
trainingRemark: '确认计轴有效功能',
|
trainingRemark: '发送命令给ZC设备,确认某个被报告失效的计轴已被修复,要求ZC将该计轴置为有效状态。',
|
||||||
trainingType: 'Switch',
|
trainingType: 'Switch',
|
||||||
productTypes: ['02'],
|
productTypes: ['02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -456,7 +456,7 @@ export default {
|
|||||||
operateType: 'Switch_Single_Lock',
|
operateType: 'Switch_Single_Lock',
|
||||||
skinCode: '06',
|
skinCode: '06',
|
||||||
trainingName: '道岔单锁({7})',
|
trainingName: '道岔单锁({7})',
|
||||||
trainingRemark: '道岔单锁功能',
|
trainingRemark: '锁定单个道岔,阻止转换',
|
||||||
trainingType: 'Switch',
|
trainingType: 'Switch',
|
||||||
productTypes: ['01'],
|
productTypes: ['01'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -471,7 +471,7 @@ export default {
|
|||||||
operateType: 'Switch_Single_Unlock',
|
operateType: 'Switch_Single_Unlock',
|
||||||
skinCode: '06',
|
skinCode: '06',
|
||||||
trainingName: '道岔单解({7})',
|
trainingName: '道岔单解({7})',
|
||||||
trainingRemark: '道岔单解功能',
|
trainingRemark: '取消对单个道岔的锁定,道岔可以转换',
|
||||||
trainingType: 'Switch',
|
trainingType: 'Switch',
|
||||||
productTypes: ['01'],
|
productTypes: ['01'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -488,7 +488,7 @@ export default {
|
|||||||
operateType: 'Switch_Block',
|
operateType: 'Switch_Block',
|
||||||
skinCode: '06',
|
skinCode: '06',
|
||||||
trainingName: '道岔封锁({7})',
|
trainingName: '道岔封锁({7})',
|
||||||
trainingRemark: '道岔封锁功能',
|
trainingRemark: '禁止通过道岔排列进路,但道岔可通过转换道岔命令进行位置转换。',
|
||||||
trainingType: 'Switch',
|
trainingType: 'Switch',
|
||||||
productTypes: ['01'],
|
productTypes: ['01'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -503,7 +503,7 @@ export default {
|
|||||||
operateType: 'Switch_Unblock',
|
operateType: 'Switch_Unblock',
|
||||||
skinCode: '06',
|
skinCode: '06',
|
||||||
trainingName: '道岔解封({7})',
|
trainingName: '道岔解封({7})',
|
||||||
trainingRemark: '道岔解封功能',
|
trainingRemark: '允许通过道岔排列进路',
|
||||||
trainingType: 'Switch',
|
trainingType: 'Switch',
|
||||||
productTypes: ['01'],
|
productTypes: ['01'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -520,7 +520,7 @@ export default {
|
|||||||
operateType: 'Switch_Set_Limit_Speed',
|
operateType: 'Switch_Set_Limit_Speed',
|
||||||
skinCode: '06',
|
skinCode: '06',
|
||||||
trainingName: '设置临时限速({7})',
|
trainingName: '设置临时限速({7})',
|
||||||
trainingRemark: '设置临时限速功能(限速值:10)',
|
trainingRemark: '对道岔设置限速(限速值:10)',
|
||||||
trainingType: 'Switch',
|
trainingType: 'Switch',
|
||||||
productTypes: ['01', '02'],
|
productTypes: ['01', '02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -539,7 +539,7 @@ export default {
|
|||||||
operateType: 'Switch_Set_Limit_Speed',
|
operateType: 'Switch_Set_Limit_Speed',
|
||||||
skinCode: '06',
|
skinCode: '06',
|
||||||
trainingName: '设置临时限速({7})',
|
trainingName: '设置临时限速({7})',
|
||||||
trainingRemark: '设置临时限速功能-取消临时限速(限速值:不限速)',
|
trainingRemark: '取消对道岔的限速(限速值:不限速)',
|
||||||
trainingType: 'Switch',
|
trainingType: 'Switch',
|
||||||
productTypes: ['01', '02'],
|
productTypes: ['01', '02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -558,7 +558,7 @@ export default {
|
|||||||
operateType: 'Signal_Set_Route',
|
operateType: 'Signal_Set_Route',
|
||||||
skinCode: '06',
|
skinCode: '06',
|
||||||
trainingName: '排列进路({28})',
|
trainingName: '排列进路({28})',
|
||||||
trainingRemark: '排列进路',
|
trainingRemark: '进路:列车在站内运行时所经由的路径。依据进路是否建立,可以将进路状态分成锁闭状态和解锁状态。建立了进路,即指利用该进路排列了进路,称该进路处于锁闭状态。进路处于锁闭状态时,进路上的所有道岔被锁闭在规定位置(不能转换位置),防护该进路的信号机才能开放,列车才可能在该进路上运行。',
|
||||||
trainingType: 'Signal',
|
trainingType: 'Signal',
|
||||||
productTypes: ['01', '02'],
|
productTypes: ['01', '02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -579,7 +579,7 @@ export default {
|
|||||||
operateType: 'Signal_Cancel_Route',
|
operateType: 'Signal_Cancel_Route',
|
||||||
skinCode: '06',
|
skinCode: '06',
|
||||||
trainingName: '取消列车进路({3})',
|
trainingName: '取消列车进路({3})',
|
||||||
trainingRemark: '取消列车进路',
|
trainingRemark: '当列车运行通过锁闭的进路后,该进路将被解锁而处于解锁状态。解锁状态时进路上道岔随时有转换位置的可能,列车在该进路上运行将极其危险,因而一般不允许列车在没有锁闭的进路上运行。',
|
||||||
trainingType: 'Signal',
|
trainingType: 'Signal',
|
||||||
productTypes: ['01', '02'],
|
productTypes: ['01', '02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -594,7 +594,7 @@ export default {
|
|||||||
operateType: 'Signal_Reopen_Signal',
|
operateType: 'Signal_Reopen_Signal',
|
||||||
skinCode: '06',
|
skinCode: '06',
|
||||||
trainingName: '信号重开({5})',
|
trainingName: '信号重开({5})',
|
||||||
trainingRemark: '信号重开功能',
|
trainingRemark: '信号由于故障(如锁闭的进路区段故障)或人工干预导致信号关闭,此后调度运营想再次开放此信号(前提是信号开放的条件具备,如故障区段已恢复),可以执行信号重开使信号重新开放',
|
||||||
trainingType: 'Signal',
|
trainingType: 'Signal',
|
||||||
productTypes: ['01', '02'],
|
productTypes: ['01', '02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -609,7 +609,7 @@ export default {
|
|||||||
operateType: 'Signal_Open_Auto_Setting',
|
operateType: 'Signal_Open_Auto_Setting',
|
||||||
skinCode: '06',
|
skinCode: '06',
|
||||||
trainingName: '进路交自动控({28})',
|
trainingName: '进路交自动控({28})',
|
||||||
trainingRemark: '进路交自动控',
|
trainingRemark: '将某个信号机为始端的某条进路设置为由ATS自动触发使能',
|
||||||
trainingType: 'Signal',
|
trainingType: 'Signal',
|
||||||
productTypes: ['01', '02'],
|
productTypes: ['01', '02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -625,7 +625,7 @@ export default {
|
|||||||
operateType: 'Signal_Close_Auto_Setting',
|
operateType: 'Signal_Close_Auto_Setting',
|
||||||
skinCode: '06',
|
skinCode: '06',
|
||||||
trainingName: '进路交人工控({28})',
|
trainingName: '进路交人工控({28})',
|
||||||
trainingRemark: '进路交人工控',
|
trainingRemark: '将某个信号机为始端的进路取消ATS自动触发使能转为人工办理',
|
||||||
trainingType: 'Signal',
|
trainingType: 'Signal',
|
||||||
productTypes: ['01', '02'],
|
productTypes: ['01', '02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -641,7 +641,7 @@ export default {
|
|||||||
operateType: 'Signal_Set_CI_Auto',
|
operateType: 'Signal_Set_CI_Auto',
|
||||||
skinCode: '06',
|
skinCode: '06',
|
||||||
trainingName: '设置自动通过进路({5})',
|
trainingName: '设置自动通过进路({5})',
|
||||||
trainingRemark: '设置自动通过进路',
|
trainingRemark: '向某个未开放信号机设置通过模式',
|
||||||
trainingType: 'Signal',
|
trainingType: 'Signal',
|
||||||
productTypes: ['01', '02'],
|
productTypes: ['01', '02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -672,7 +672,7 @@ export default {
|
|||||||
operateType: 'Signal_Cancel_CI_Auto',
|
operateType: 'Signal_Cancel_CI_Auto',
|
||||||
skinCode: '06',
|
skinCode: '06',
|
||||||
trainingName: '取消自动通过进路({5})',
|
trainingName: '取消自动通过进路({5})',
|
||||||
trainingRemark: '取消自动通过进路',
|
trainingRemark: '向某个未开放信号机取消通过模式',
|
||||||
trainingType: 'Signal',
|
trainingType: 'Signal',
|
||||||
productTypes: ['01', '02'],
|
productTypes: ['01', '02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -716,7 +716,7 @@ export default {
|
|||||||
operateType: 'Signal_Set_Guide',
|
operateType: 'Signal_Set_Guide',
|
||||||
skinCode: '06',
|
skinCode: '06',
|
||||||
trainingName: '引导({5})',
|
trainingName: '引导({5})',
|
||||||
trainingRemark: '引导办理',
|
trainingRemark: '接车进路上轨道电路故障占用或进站信号机无法开放允许灯光时,以引导进路方式接车。',
|
||||||
trainingType: 'Signal',
|
trainingType: 'Signal',
|
||||||
productTypes: ['01'],
|
productTypes: ['01'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -732,7 +732,7 @@ export default {
|
|||||||
operateType: 'Signal_Block',
|
operateType: 'Signal_Block',
|
||||||
skinCode: '06',
|
skinCode: '06',
|
||||||
trainingName: '封锁({5})',
|
trainingName: '封锁({5})',
|
||||||
trainingRemark: '信号机封锁功能',
|
trainingRemark: '封锁在关闭状态下的信号机,信号机被封锁后,将不能开放主信号',
|
||||||
trainingType: 'Signal',
|
trainingType: 'Signal',
|
||||||
productTypes: ['01'],
|
productTypes: ['01'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -747,7 +747,7 @@ export default {
|
|||||||
operateType: 'Signal_Unblock',
|
operateType: 'Signal_Unblock',
|
||||||
skinCode: '06',
|
skinCode: '06',
|
||||||
trainingName: '解封({5})',
|
trainingName: '解封({5})',
|
||||||
trainingRemark: '信号机解封功能',
|
trainingRemark: '取消对关闭状态下的信号机的封锁',
|
||||||
trainingType: 'Signal',
|
trainingType: 'Signal',
|
||||||
productTypes: ['01'],
|
productTypes: ['01'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -764,7 +764,7 @@ export default {
|
|||||||
operateType: 'Signal_Find_Routes_Status',
|
operateType: 'Signal_Find_Routes_Status',
|
||||||
skinCode: '06',
|
skinCode: '06',
|
||||||
trainingName: '查询进路控制状态({5})',
|
trainingName: '查询进路控制状态({5})',
|
||||||
trainingRemark: '查询进路控制状态',
|
trainingRemark: '查看某个信号机为始端的进路是否处于ATS自动触发状态',
|
||||||
trainingType: 'Signal',
|
trainingType: 'Signal',
|
||||||
productTypes: ['01', '02'],
|
productTypes: ['01', '02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -779,7 +779,8 @@ export default {
|
|||||||
operateType: 'CM_Apply_For_Center_Control',
|
operateType: 'CM_Apply_For_Center_Control',
|
||||||
skinCode: '06',
|
skinCode: '06',
|
||||||
trainingName: '请求遥控({1})',
|
trainingName: '请求遥控({1})',
|
||||||
trainingRemark: '控制权限转换,站控转中控',
|
trainingRemark: '控制权收回行调办理时使用,行调获得控制权后,行调可对设备进行操作,集中站无法对设备进行操作',
|
||||||
|
// 控制权限转换,站控转中控
|
||||||
trainingType: 'ControlConvertMenu',
|
trainingType: 'ControlConvertMenu',
|
||||||
productTypes: ['01', '02'], // 行调请求中控
|
productTypes: ['01', '02'], // 行调请求中控
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -793,7 +794,8 @@ export default {
|
|||||||
operateType: 'CM_Apply_For_Station_Control',
|
operateType: 'CM_Apply_For_Station_Control',
|
||||||
skinCode: '06',
|
skinCode: '06',
|
||||||
trainingName: '请求站控({1})',
|
trainingName: '请求站控({1})',
|
||||||
trainingRemark: '控制权限转换,中控转站控',
|
trainingRemark: 'ATS 系统的控制模式有中控和站控两种控制模式,且某一时刻只能为其中的一种模式,在信号系统工作正常时,一般使用ATS系统的中控模式;当个别车站有表示故障或信号设备故障(如计轴故障等),出问题的车站可以转为站控,请求站控:请求控制权下放车站办理,需行调同意后方可转为站控,转为站控后,集中站可对设备进行操作。',
|
||||||
|
// 控制权限转换,中控转站控
|
||||||
trainingType: 'ControlConvertMenu',
|
trainingType: 'ControlConvertMenu',
|
||||||
productTypes: ['01', '02'], // 现地请求站控
|
productTypes: ['01', '02'], // 现地请求站控
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
@ -807,7 +809,7 @@ export default {
|
|||||||
operateType: 'CM_Emergency_Station_Control',
|
operateType: 'CM_Emergency_Station_Control',
|
||||||
skinCode: '06',
|
skinCode: '06',
|
||||||
trainingName: '紧急站控({1})',
|
trainingName: '紧急站控({1})',
|
||||||
trainingRemark: '控制权限转换,中控转紧急站控',
|
trainingRemark: '紧急情况下,车站可以直接切换成紧急站控状态,直接和联锁下位机通讯',
|
||||||
trainingType: 'ControlConvertMenu',
|
trainingType: 'ControlConvertMenu',
|
||||||
productTypes: ['01', '02'],
|
productTypes: ['01', '02'],
|
||||||
stepVOList: [
|
stepVOList: [
|
||||||
|
@ -69,7 +69,7 @@
|
|||||||
</el-submenu>
|
</el-submenu>
|
||||||
</template>
|
</template>
|
||||||
</template>
|
</template>
|
||||||
<div class="rightGroup">
|
<div v-if="!thirdLogin" class="rightGroup">
|
||||||
<quick-entry ref="quickEntry" />
|
<quick-entry ref="quickEntry" />
|
||||||
<user-logout ref="userLogout" />
|
<user-logout ref="userLogout" />
|
||||||
</div>
|
</div>
|
||||||
@ -81,6 +81,7 @@ import { mapGetters } from 'vuex';
|
|||||||
import UserLogout from './Logout';
|
import UserLogout from './Logout';
|
||||||
import QuickEntry from './Entry';
|
import QuickEntry from './Entry';
|
||||||
import SystemTitle from './Title';
|
import SystemTitle from './Title';
|
||||||
|
import {getSessionStorage } from '@/utils/auth';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
@ -93,7 +94,8 @@ export default {
|
|||||||
routes: [],
|
routes: [],
|
||||||
isShow: false,
|
isShow: false,
|
||||||
activePath: '',
|
activePath: '',
|
||||||
index: ''
|
index: '',
|
||||||
|
thirdLogin:''
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
@ -101,6 +103,7 @@ export default {
|
|||||||
'avatar',
|
'avatar',
|
||||||
'routers'
|
'routers'
|
||||||
])
|
])
|
||||||
|
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
$route(val) {
|
$route(val) {
|
||||||
@ -112,6 +115,7 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
|
this.thirdLogin = getSessionStorage('thirdLogin');
|
||||||
this.routes = this.$router.options.routes;
|
this.routes = this.$router.options.routes;
|
||||||
if (this.$route.fullPath.indexOf('design/usermap') >= 0) {
|
if (this.$route.fullPath.indexOf('design/usermap') >= 0) {
|
||||||
this.activePath = '/design/usermap/home';
|
this.activePath = '/design/usermap/home';
|
||||||
|
@ -7,7 +7,7 @@ import 'nprogress/nprogress.css';
|
|||||||
import { setToken, getToken, removeToken, getSessionStorage } from '@/utils/auth';
|
import { setToken, getToken, removeToken, getSessionStorage } from '@/utils/auth';
|
||||||
import localStore from 'storejs';
|
import localStore from 'storejs';
|
||||||
|
|
||||||
const whiteList = ['/login', '/design/login', '/gzzbxy/relay', '/authorization', '/AUSline', '/AUStool', '/demo']; // 不重定向白名单
|
const whiteList = ['/login', '/design/login', '/gzzbxy/relay', '/authorization', '/AUSline', '/AUStool', '/demo', '/thirdLogin']; // 不重定向白名单
|
||||||
|
|
||||||
const loginList = ['/login', '/design/login']; // 登陆页面
|
const loginList = ['/login', '/design/login']; // 登陆页面
|
||||||
|
|
||||||
|
@ -59,6 +59,8 @@ const CommandDictionaryDetail = () => import('@/views/system/commandDictionary/e
|
|||||||
const configLine = () => import('@/views/system/configLine/index');
|
const configLine = () => import('@/views/system/configLine/index');
|
||||||
const Notification = () => import('@/views/system/notification/index');
|
const Notification = () => import('@/views/system/notification/index');
|
||||||
|
|
||||||
|
const LoginUserControl = () => import('@/views/system/userLoginControl/index');
|
||||||
|
|
||||||
const IscsSystem = () => import('@/views/iscs/iscsSystem/index');
|
const IscsSystem = () => import('@/views/iscs/iscsSystem/index');
|
||||||
const IscsDraw = () => import('@/views/iscs/iscsDraw/index');
|
const IscsDraw = () => import('@/views/iscs/iscsDraw/index');
|
||||||
const IscsDesign = () => import('@/views/iscs/iscsDesign/index');
|
const IscsDesign = () => import('@/views/iscs/iscsDesign/index');
|
||||||
@ -182,6 +184,8 @@ const UeditorDraftList = () => import('@/views/editor/listDraft');
|
|||||||
|
|
||||||
const UploadPdfList = () => import('@/views/uploadPdf/list');
|
const UploadPdfList = () => import('@/views/uploadPdf/list');
|
||||||
|
|
||||||
|
const ThirdLogin = () => import('@/views/thirdLogin');
|
||||||
|
|
||||||
// import { GenerateRouteProjectList } from '@/scripts/ProjectConfig';
|
// import { GenerateRouteProjectList } from '@/scripts/ProjectConfig';
|
||||||
// import { getSessionStorage } from '@/utils/auth';
|
// import { getSessionStorage } from '@/utils/auth';
|
||||||
|
|
||||||
@ -231,6 +235,11 @@ export const constantRoutes = [
|
|||||||
component: Demo,
|
component: Demo,
|
||||||
hidden: true
|
hidden: true
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: '/thirdLogin',
|
||||||
|
component: ThirdLogin,
|
||||||
|
hidden: true
|
||||||
|
},
|
||||||
{
|
{
|
||||||
path: '/demoTraining/:mode',
|
path: '/demoTraining/:mode',
|
||||||
component: DemoTraining,
|
component: DemoTraining,
|
||||||
@ -1006,6 +1015,14 @@ export const asyncRouter = [
|
|||||||
i18n: 'router.userManage'
|
i18n: 'router.userManage'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
// 用户管理
|
||||||
|
path: 'loginUserManage',
|
||||||
|
component: LoginUserControl,
|
||||||
|
meta: {
|
||||||
|
i18n: 'router.loginUserManage'
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
// 单位管理
|
// 单位管理
|
||||||
path: 'companyManage',
|
path: 'companyManage',
|
||||||
|
@ -129,7 +129,8 @@ export const IbpOperation = {
|
|||||||
SXKM: {operate: '10', event: 'SXKM', name: '上行屏蔽门开门'},
|
SXKM: {operate: '10', event: 'SXKM', name: '上行屏蔽门开门'},
|
||||||
XXYS: {operate: '09', event: 'XXYS', name: '下行钥匙'},
|
XXYS: {operate: '09', event: 'XXYS', name: '下行钥匙'},
|
||||||
SXYS: {operate: '11', event: 'SXYS', name: '上行钥匙'},
|
SXYS: {operate: '11', event: 'SXYS', name: '上行钥匙'},
|
||||||
PRERESET: {operate: '12', event: 'PRERESET', name: '计轴复位'}
|
PRERESET: {operate: '12', event: 'PRERESET', name: '计轴复位'},
|
||||||
|
AXLE_PRE_RESET: {operate: '13', event: 'AXLE_PRE_RESET', name: '计轴预复位'},
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -211,6 +211,9 @@ const user = {
|
|||||||
},
|
},
|
||||||
setBaseUrl ({commit}, baseUrl) {
|
setBaseUrl ({commit}, baseUrl) {
|
||||||
commit('setBaseUrl', baseUrl);
|
commit('setBaseUrl', baseUrl);
|
||||||
|
},
|
||||||
|
setToken({commit}, token) {
|
||||||
|
commit('SET_TOKEN', token);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -2,11 +2,11 @@ export function getBaseUrl() {
|
|||||||
let BASE_API;
|
let BASE_API;
|
||||||
if (process.env.NODE_ENV === 'development') {
|
if (process.env.NODE_ENV === 'development') {
|
||||||
// BASE_API = 'https://joylink.club/jlcloud';
|
// BASE_API = 'https://joylink.club/jlcloud';
|
||||||
BASE_API = 'https://test.joylink.club/jlcloud';
|
// BASE_API = 'https://test.joylink.club/jlcloud';
|
||||||
// BASE_API = 'http://192.168.8.107:9000'; // 袁琪
|
// BASE_API = 'http://192.168.8.107:9000'; // 袁琪
|
||||||
// BASE_API = 'http://192.168.3.83:9000'; // 旭强 有线
|
// BASE_API = 'http://192.168.3.83:9000'; // 旭强 有线
|
||||||
// BASE_API = 'http://192.168.8.114:9000'; // 旭强 无线
|
// BASE_API = 'http://192.168.8.114:9000'; // 旭强 无线
|
||||||
// BASE_API = 'http://192.168.3.120:9000'; // 张赛
|
BASE_API = 'http://192.168.3.120:9000'; // 张赛
|
||||||
// BASE_API = 'http://192.168.8.140:9000'; // 杜康
|
// BASE_API = 'http://192.168.8.140:9000'; // 杜康
|
||||||
// BASE_API = 'http://b29z135112.zicp.vip';
|
// BASE_API = 'http://b29z135112.zicp.vip';
|
||||||
// BASE_API = 'http://2925963m2a.zicp.vip'; // 杜康
|
// BASE_API = 'http://2925963m2a.zicp.vip'; // 杜康
|
||||||
|
@ -34,7 +34,7 @@
|
|||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item v-if="form.mean === 'PRERESET'" label="关联区段" prop="sectionCode">
|
<el-form-item v-if="['PRERESET', 'AXLE_PRE_RESET'].includes(form.mean)" label="关联区段" prop="sectionCode">
|
||||||
<el-select v-model="form.sectionCode" filterable placeholder="请选择">
|
<el-select v-model="form.sectionCode" filterable placeholder="请选择">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in sectionList"
|
v-for="item in sectionList"
|
||||||
@ -74,7 +74,9 @@ export default {
|
|||||||
{ label: '报警切除', value: 'BJQC' },
|
{ label: '报警切除', value: 'BJQC' },
|
||||||
{ label: '下行屏蔽门开门', value: 'XXKM' },
|
{ label: '下行屏蔽门开门', value: 'XXKM' },
|
||||||
{ label: '上行屏蔽门开门', value: 'SXKM' },
|
{ label: '上行屏蔽门开门', value: 'SXKM' },
|
||||||
{ label: '计轴复位', value: 'PRERESET' }
|
{ label: '计轴复位', value: 'PRERESET' },
|
||||||
|
{ label: '计轴预复位', value: 'AXLE_PRE_RESET' },
|
||||||
|
{ label: '计轴预复零', value: 'PRERESET_Z' },
|
||||||
],
|
],
|
||||||
form: {
|
form: {
|
||||||
code: '',
|
code: '',
|
||||||
|
@ -28,6 +28,8 @@ import { getSimulationInfoNew, getIbpInitialState } from '@/api/simulation';
|
|||||||
import BuzzerAudio from '@/assets/buzzer.mp3';
|
import BuzzerAudio from '@/assets/buzzer.mp3';
|
||||||
import { getStationList } from '@/api/runplan';
|
import { getStationList } from '@/api/runplan';
|
||||||
|
|
||||||
|
let ctrlKeyPressed = false;
|
||||||
|
let timer = null;
|
||||||
export default {
|
export default {
|
||||||
name: 'Ibp',
|
name: 'Ibp',
|
||||||
props: {
|
props: {
|
||||||
@ -118,6 +120,7 @@ export default {
|
|||||||
}
|
}
|
||||||
this.ibpDestroy();
|
this.ibpDestroy();
|
||||||
},
|
},
|
||||||
|
preResetBtn: null,
|
||||||
methods: {
|
methods: {
|
||||||
initIbp(offsetX = 0) {
|
initIbp(offsetX = 0) {
|
||||||
this.ibpDestroy();
|
this.ibpDestroy();
|
||||||
@ -141,9 +144,11 @@ export default {
|
|||||||
Vue.prototype.$ibp = this.$ibp;
|
Vue.prototype.$ibp = this.$ibp;
|
||||||
this.initClockTime(this.initTime || this.$store.state.socket.simulationTimeSync);
|
this.initClockTime(this.initTime || this.$store.state.socket.simulationTimeSync);
|
||||||
this.$ibp.on('contextmenu', this.onContextMenu, this);
|
this.$ibp.on('contextmenu', this.onContextMenu, this);
|
||||||
|
this.$ibp.on('keyboard', this.onKeyboardAction, this);
|
||||||
if (this.$route.query.group) {
|
if (this.$route.query.group) {
|
||||||
this.$ibp.on('selected', this.onSelected, this);
|
this.$ibp.on('selected', this.onSelected, this);
|
||||||
this.$ibp.on('mouseDown', this.onMouseDown, this);
|
this.$ibp.on('mouseDown', this.onMouseDown, this);
|
||||||
|
this.$ibp.on('mouseUp', this.onMouseUp, this);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
async show (deviceCode, ibpPart) {
|
async show (deviceCode, ibpPart) {
|
||||||
@ -191,6 +196,7 @@ export default {
|
|||||||
this.setIbp(data, ibpDatas);
|
this.setIbp(data, ibpDatas);
|
||||||
this.$store.dispatch('ibp/setIbpData', ibpDatas);
|
this.$store.dispatch('ibp/setIbpData', ibpDatas);
|
||||||
this.handleBanOpenScreenDoorStatus();
|
this.handleBanOpenScreenDoorStatus();
|
||||||
|
this.preResetBtn = this.$ibp.$painter.ibpInstanceLevel.SquareButton.children().find(e=>e.model.mean === 'PRERESET_Z');
|
||||||
} else {
|
} else {
|
||||||
// 无数据
|
// 无数据
|
||||||
this.loading = false;
|
this.loading = false;
|
||||||
@ -227,16 +233,42 @@ export default {
|
|||||||
// 点击选择事件
|
// 点击选择事件
|
||||||
onSelected(em) {
|
onSelected(em) {
|
||||||
|
|
||||||
|
},
|
||||||
|
onKeyboardAction(e){
|
||||||
|
if (this.preResetBtn) {
|
||||||
|
if (e.type === 'keydown' && e.key === 'Control') {
|
||||||
|
ctrlKeyPressed = true;
|
||||||
|
this.preResetBtn.open();
|
||||||
|
} else if (e.type === 'keyup' && e.key === 'Control'){
|
||||||
|
ctrlKeyPressed = false;
|
||||||
|
this.preResetBtn.close();
|
||||||
|
clearTimeout(timer);
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
onMouseDown(em) {
|
onMouseDown(em) {
|
||||||
if (em.deviceModel.mean && IbpOperation[em.deviceModel.mean] && em.deviceModel.mean === IbpOperation.PRERESET.event) {
|
if (em.deviceModel.mean && IbpOperation[em.deviceModel.mean] && em.deviceModel.mean === IbpOperation.AXLE_PRE_RESET.event) {
|
||||||
handlerIbpEvent(this.$route.query.group, IbpOperation[em.deviceModel.mean].event, this.stationCode, em.deviceModel.sectionCode).then(() => {
|
if (this.preResetBtn) {
|
||||||
}).catch(error => { this.$message.error(error.message); });
|
if (ctrlKeyPressed) {
|
||||||
|
timer = setTimeout(() => {
|
||||||
|
handlerIbpEvent(this.$route.query.group, IbpOperation[em.deviceModel.mean].event, this.stationCode, em.deviceModel.sectionCode).then(() => {}).catch(error => { this.$message.error(error.message); });
|
||||||
|
}, 3000);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
handlerIbpEvent(this.$route.query.group, IbpOperation[em.deviceModel.mean].event, this.stationCode, em.deviceModel.sectionCode).then(() => {}).catch(error => { this.$message.error(error.message); });
|
||||||
|
}
|
||||||
} else if ( em.deviceModel.mean && IbpOperation[em.deviceModel.mean]) {
|
} else if ( em.deviceModel.mean && IbpOperation[em.deviceModel.mean]) {
|
||||||
handlerIbpEvent(this.$route.query.group, IbpOperation[em.deviceModel.mean].event, this.stationCode).then(() => {
|
handlerIbpEvent(this.$route.query.group, IbpOperation[em.deviceModel.mean].event, this.stationCode).then(() => {
|
||||||
}).catch(error => { this.$message.error(error.message); });
|
}).catch(error => { this.$message.error(error.message); });
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
onMouseUp(em) {
|
||||||
|
if (em.deviceModel.mean && IbpOperation[em.deviceModel.mean] && em.deviceModel.mean === IbpOperation.AXLE_PRE_RESET.event) {
|
||||||
|
if (this.preResetBtn) {
|
||||||
|
clearTimeout(timer);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
// 右键点击事件
|
// 右键点击事件
|
||||||
onContextMenu(em) {
|
onContextMenu(em) {
|
||||||
this.$store.dispatch('ibp/setUpdateDeviceData', em.eventTarget.model);
|
this.$store.dispatch('ibp/setUpdateDeviceData', em.eventTarget.model);
|
||||||
@ -294,6 +326,7 @@ export default {
|
|||||||
this.$ibp = '';
|
this.$ibp = '';
|
||||||
Vue.prototype.$ibp = '';
|
Vue.prototype.$ibp = '';
|
||||||
}
|
}
|
||||||
|
this.preResetBtn = null;
|
||||||
},
|
},
|
||||||
handleViewLoaded() {
|
handleViewLoaded() {
|
||||||
this.loading = false;
|
this.loading = false;
|
||||||
|
@ -17,6 +17,7 @@
|
|||||||
<el-option label="VR模型" value="VrModel"></el-option>
|
<el-option label="VR模型" value="VrModel"></el-option>
|
||||||
<el-option label="客流场景" value="客流模型"></el-option>
|
<el-option label="客流场景" value="客流模型"></el-option>
|
||||||
<el-option label="三维课程" value="三维课程"></el-option>
|
<el-option label="三维课程" value="三维课程"></el-option>
|
||||||
|
<el-option label="小程序模型" value="WxModel"></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="设备类型">
|
<el-form-item label="设备类型">
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
<el-option label="站台列表名称贴图" value="textureStation"></el-option>
|
<el-option label="站台列表名称贴图" value="textureStation"></el-option>
|
||||||
<el-option label="信号机贴图" value="textureSignal"></el-option>
|
<el-option label="信号机贴图" value="textureSignal"></el-option>
|
||||||
<el-option label="单体设备贴图" value="textureDevice"></el-option>
|
<el-option label="单体设备贴图" value="textureDevice"></el-option>
|
||||||
|
<el-option label="小程序大铁贴图" value="textureRailwayWx"></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="所属项目">
|
<el-form-item label="所属项目">
|
||||||
|
@ -4,12 +4,12 @@
|
|||||||
<img class="buttonimg2" :src="start" />
|
<img class="buttonimg2" :src="start" />
|
||||||
</div> -->
|
</div> -->
|
||||||
|
|
||||||
<div id="direct" class="brakebutton" style="bottom:5%;left:110px;">
|
<!-- <div id="direct" class="brakebutton" style="bottom:5%;left:110px;">
|
||||||
<img class="brakeimg" :src="brakeallimgurl" />
|
<img class="brakeimg" :src="brakeallimgurl" />
|
||||||
<img id="directimgbrakeall" class="brakeimg" :src="brakeallimgurlt" :style="{transform:braketransall}" @mousedown="touchstartbrakeall" />
|
<img id="directimgbrakeall" class="brakeimg" :src="brakeallimgurlt" :style="{transform:braketransall}" @mousedown="touchstartbrakeall" />
|
||||||
</div>
|
</div> -->
|
||||||
|
|
||||||
<div id="direct" class="brakebutton" style="bottom:5%;left:440px;">
|
<div id="direct" class="brakebutton" style="bottom:5%;left:100px;">
|
||||||
<img class="brakeimg" :src="brakeimgurl" />
|
<img class="brakeimg" :src="brakeimgurl" />
|
||||||
<img id="directimgbrake" class="brakeimg" :src="brakeimgurlt" :style="{transform:braketrans}" @mousedown="touchstartbrake" />
|
<img id="directimgbrake" class="brakeimg" :src="brakeimgurlt" :style="{transform:braketrans}" @mousedown="touchstartbrake" />
|
||||||
</div>
|
</div>
|
||||||
|
@ -362,7 +362,7 @@ import axios from 'axios';
|
|||||||
|
|
||||||
<style>
|
<style>
|
||||||
.drivepane{
|
.drivepane{
|
||||||
width:60%;
|
width:30%;
|
||||||
height:333px;
|
height:333px;
|
||||||
right:0;
|
right:0;
|
||||||
bottom:0;
|
bottom:0;
|
||||||
|
@ -17,19 +17,19 @@
|
|||||||
<div class="buttontext">{{ $t('jlmap3d.emergencyBraking') }}</div>
|
<div class="buttontext">{{ $t('jlmap3d.emergencyBraking') }}</div>
|
||||||
</div> -->
|
</div> -->
|
||||||
|
|
||||||
<div id="stallpane" class="stalldiv" style="top:10%;left:0%;">
|
<!-- <div id="stallpane" class="stalldiv" style="top:10%;left:0%;">
|
||||||
<img id="nowstall" :style="{top:stalltop,left:stallleft}" class="nowstallimg" :src="nowstallimgurl" />
|
<img id="nowstall" :style="{top:stalltop,left:stallleft}" class="nowstallimg" :src="nowstallimgurl" />
|
||||||
<img class="stallimg" :src="stallimgurl" />
|
<img class="stallimg" :src="stallimgurl" />
|
||||||
</div>
|
</div> -->
|
||||||
|
|
||||||
<div id="directpane" class="directbutton" style="bottom:10%;left:0;">
|
<div id="directpane" class="directbutton" style="bottom:10%;right:5%;">
|
||||||
<img class="rightbuttonbcimg" :src="zuoimg" />
|
<img class="rightbuttonbcimg" :src="zuoimg" />
|
||||||
<img id="directimgdiv" class="rightbuttonbcimg" :src="niuimg" :style="{transform:doordirecttou}" @mousedown='doordirecttouchstart' />
|
<img id="directimgdiv" class="rightbuttonbcimg" :src="niuimg" :style="{transform:doordirecttou}" @mousedown='doordirecttouchstart' />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="clutch" class="directbutton" style="bottom:10%;left:150px;">
|
<!-- <div id="clutch" class="directbutton" style="bottom:10%;left:150px;">
|
||||||
<img class="rightbuttonbcimg" :src="liheimg" />
|
<img class="rightbuttonbcimg" :src="liheimg" />
|
||||||
</div>
|
</div> -->
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@ -199,55 +199,55 @@
|
|||||||
this.oldDirectType = 2;
|
this.oldDirectType = 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (data[3]) {
|
// switch (data[3]) {
|
||||||
case -1:
|
// case -1:
|
||||||
this.stallh = 0;
|
// this.stallh = 0;
|
||||||
this.stalll = 0;
|
// this.stalll = 0;
|
||||||
break;
|
// break;
|
||||||
case 0:
|
// case 0:
|
||||||
this.stallh = 1;
|
// this.stallh = 1;
|
||||||
this.stalll = 2;
|
// this.stalll = 2;
|
||||||
break;
|
// break;
|
||||||
case 1:
|
// case 1:
|
||||||
this.stallh = 2;
|
// this.stallh = 2;
|
||||||
this.stalll = 0;
|
// this.stalll = 0;
|
||||||
break;
|
// break;
|
||||||
case 2:
|
// case 2:
|
||||||
this.stallh = 0;
|
// this.stallh = 0;
|
||||||
this.stalll = 1;
|
// this.stalll = 1;
|
||||||
break;
|
// break;
|
||||||
case 3:
|
// case 3:
|
||||||
this.stallh = 2;
|
// this.stallh = 2;
|
||||||
this.stalll = 1;
|
// this.stalll = 1;
|
||||||
break;
|
// break;
|
||||||
case 4:
|
// case 4:
|
||||||
this.stallh = 2;
|
// this.stallh = 2;
|
||||||
this.stalll = 2;
|
// this.stalll = 2;
|
||||||
break;
|
// break;
|
||||||
case 5:
|
// case 5:
|
||||||
this.stallh = 0;
|
// this.stallh = 0;
|
||||||
this.stalll = 2;
|
// this.stalll = 2;
|
||||||
break;
|
// break;
|
||||||
case 6:
|
// case 6:
|
||||||
this.stallh = 0;
|
// this.stallh = 0;
|
||||||
this.stalll = 3;
|
// this.stalll = 3;
|
||||||
break;
|
// break;
|
||||||
case 7:
|
// case 7:
|
||||||
this.stallh = 2;
|
// this.stallh = 2;
|
||||||
this.stalll = 3;
|
// this.stalll = 3;
|
||||||
break;
|
// break;
|
||||||
case 8:
|
// case 8:
|
||||||
this.stallh = 0;
|
// this.stallh = 0;
|
||||||
this.stalll = 4;
|
// this.stalll = 4;
|
||||||
break;
|
// break;
|
||||||
case 9:
|
// case 9:
|
||||||
this.stallh = 2;
|
// this.stallh = 2;
|
||||||
this.stalll = 4;
|
// this.stalll = 4;
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
|
//
|
||||||
this.stalltop = this.stalls[this.stallh][this.stalll].t +"px";
|
// this.stalltop = this.stalls[this.stallh][this.stalll].t +"px";
|
||||||
this.stallleft = this.stalls[this.stallh][this.stalll].l +"px";
|
// this.stallleft = this.stalls[this.stallh][this.stalll].l +"px";
|
||||||
},
|
},
|
||||||
handleKeyup(event){
|
handleKeyup(event){
|
||||||
const e = event || window.event || arguments.callee.caller.arguments[0];
|
const e = event || window.event || arguments.callee.caller.arguments[0];
|
||||||
@ -372,26 +372,42 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
angle = angle + 180;
|
angle = angle + 180;
|
||||||
|
|
||||||
|
let paramGear = {
|
||||||
|
// id:this.groupNum,
|
||||||
|
id:"001",
|
||||||
|
pos:''
|
||||||
|
};
|
||||||
|
|
||||||
// console.log(angle);
|
// console.log(angle);
|
||||||
if(angle<=356){
|
if(angle<=356){
|
||||||
|
|
||||||
this.doordirecttou = "rotate("+320+"deg)";
|
this.doordirecttou = "rotate("+320+"deg)";
|
||||||
this.directType = 1;
|
this.directType = 1;
|
||||||
|
paramGear.pos = '4';
|
||||||
}
|
}
|
||||||
if(angle>356 && angle<372){
|
if(angle>356 && angle<372){
|
||||||
this.doordirecttou = "rotate("+360+"deg)";
|
this.doordirecttou = "rotate("+360+"deg)";
|
||||||
this.directType = 0;
|
this.directType = 0;
|
||||||
|
paramGear.pos = '0';
|
||||||
}
|
}
|
||||||
|
|
||||||
if(angle>372 && angle<421){
|
if(angle>372 && angle<421){
|
||||||
this.doordirecttou = "rotate("+399+"deg)";
|
this.doordirecttou = "rotate("+399+"deg)";
|
||||||
this.directType = -1;
|
this.directType = -1;
|
||||||
|
paramGear.pos = '4';
|
||||||
}
|
}
|
||||||
|
|
||||||
if(angle>421){
|
if(angle>421){
|
||||||
this.doordirecttou = "rotate("+442+"deg)";
|
this.doordirecttou = "rotate("+442+"deg)";
|
||||||
this.directType = 2;
|
this.directType = 2;
|
||||||
|
paramGear.pos = '4';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if(this.oldDirectType != this.directType){
|
if(this.oldDirectType != this.directType){
|
||||||
this.oldDirectType = this.directType;
|
this.oldDirectType = this.directType;
|
||||||
let param = {
|
let param = {
|
||||||
@ -401,6 +417,12 @@
|
|||||||
};
|
};
|
||||||
const userInfo = store.state.training.simulationUserList.find(el => el.id == store.state.user.id);
|
const userInfo = store.state.training.simulationUserList.find(el => el.id == store.state.user.id);
|
||||||
|
|
||||||
|
trainSimulationForce(this.group,userInfo.memberId,paramGear,"Train_Drive_Gear_Change").then(res => {
|
||||||
|
// console.log(res);
|
||||||
|
}).catch((error) => {
|
||||||
|
console.log(error);
|
||||||
|
});
|
||||||
|
|
||||||
trainSimulationForce(this.group,userInfo.memberId,param,"Train_Drive_Change_Over_Switch").then(res => {
|
trainSimulationForce(this.group,userInfo.memberId,param,"Train_Drive_Change_Over_Switch").then(res => {
|
||||||
// console.log(res);
|
// console.log(res);
|
||||||
}).catch((error) => {
|
}).catch((error) => {
|
||||||
|
@ -109,7 +109,7 @@ export default {
|
|||||||
lineCode: elem.lineCode
|
lineCode: elem.lineCode
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: '1',
|
id: '2',
|
||||||
name: '系统配置绘图',
|
name: '系统配置绘图',
|
||||||
type: 'mapSystem',
|
type: 'mapSystem',
|
||||||
mapId: elem.id,
|
mapId: elem.id,
|
||||||
|
@ -50,6 +50,9 @@ export default {
|
|||||||
if (this.type == 'Text') {
|
if (this.type == 'Text') {
|
||||||
data.content = `${this.editModel.prepend}::${this.editModel.content}`;
|
data.content = `${this.editModel.prepend}::${this.editModel.content}`;
|
||||||
}
|
}
|
||||||
|
if (data.type !== 'VB') {
|
||||||
|
data.signalCode = '';
|
||||||
|
}
|
||||||
this.$emit('updateMapModel', data);
|
this.$emit('updateMapModel', data);
|
||||||
this.$emit('clearDeviceSelect');
|
this.$emit('clearDeviceSelect');
|
||||||
} else {
|
} else {
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
@deviceSelect="deviceSelect"
|
@deviceSelect="deviceSelect"
|
||||||
/>
|
/>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane class="view-control" :label="$t('map.newConstruction')" name="second" :lazy="lazy">
|
<!-- <el-tab-pane class="view-control" :label="$t('map.newConstruction')" name="second" :lazy="lazy">
|
||||||
<responder-create
|
<responder-create
|
||||||
ref="respCreate"
|
ref="respCreate"
|
||||||
:field="field"
|
:field="field"
|
||||||
@ -29,9 +29,9 @@
|
|||||||
@deviceChange="deviceChange"
|
@deviceChange="deviceChange"
|
||||||
@deviceSelect="deviceSelect"
|
@deviceSelect="deviceSelect"
|
||||||
/>
|
/>
|
||||||
</el-tab-pane>
|
</el-tab-pane> -->
|
||||||
<el-tab-pane class="view-control" label="批量创建" name="third" :lazy="lazy">
|
<el-tab-pane class="view-control" label="批量创建" name="third" :lazy="lazy">
|
||||||
<responder-batch
|
<responder-batch
|
||||||
ref="respBatch"
|
ref="respBatch"
|
||||||
:field="field"
|
:field="field"
|
||||||
:responder-type-list="responderTypeList"
|
:responder-type-list="responderTypeList"
|
||||||
@ -42,8 +42,7 @@
|
|||||||
v-on="$listeners"
|
v-on="$listeners"
|
||||||
@hover="hover"
|
@hover="hover"
|
||||||
@deviceChange="deviceChange"
|
@deviceChange="deviceChange"
|
||||||
@deviceSelect="deviceSelect"
|
@deviceSelect="deviceSelect" />
|
||||||
/>
|
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
</el-tabs>
|
</el-tabs>
|
||||||
</template>
|
</template>
|
||||||
@ -209,4 +208,7 @@ export default {
|
|||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#pane-third {
|
||||||
|
overflow: scroll;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -1,171 +1,337 @@
|
|||||||
<template>
|
<template>
|
||||||
<el-form ref="make" label-width="140px" :model="addModel" size="mini" :rules="mergeRules">
|
<el-form
|
||||||
<el-table :data="addModel.modelList" style="width: 100%">
|
ref="form"
|
||||||
<el-table-column label="区段" prop="sectionCode">
|
label-width="90px"
|
||||||
<template slot-scope="scope">
|
:model="formData"
|
||||||
<el-select v-model="scope.row.sectionCode" filterable size="mini" class="responderSet" placeholder="请选择">
|
size="mini"
|
||||||
<el-option
|
:rules="formRules"
|
||||||
v-for="item in sectionList"
|
>
|
||||||
:key="item.code"
|
<el-row>
|
||||||
:label="item.name + '(' + item.code +')'"
|
<el-col :span="24">
|
||||||
:value="item.code"
|
<el-form-item label="区段" prop="sectionCode">
|
||||||
/>
|
<el-select
|
||||||
</el-select>
|
v-model="formData.sectionCode"
|
||||||
<el-button size="mini" :type="field === 'RelBatchSectionCode'&&rowData === scope.row?'danger':'primary'" @click="handleHover(scope.row, 'RelBatchSectionCode')">激活</el-button>
|
filterable
|
||||||
</template>
|
class="responderSet"
|
||||||
</el-table-column>
|
placeholder="请选择"
|
||||||
<el-table-column label="信号机" prop="signalCode">
|
>
|
||||||
<template slot-scope="scope">
|
<el-option
|
||||||
<el-select v-model="scope.row.signalCode" filterable size="mini" class="responderSet" placeholder="请选择">
|
v-for="item in sectionList"
|
||||||
<el-option
|
:key="item.code"
|
||||||
v-for="item in signalList"
|
:label="item.name + '(' + item.code + ')'"
|
||||||
:key="item.code"
|
:value="item.code"
|
||||||
:label="item.name + '(' + item.code +')'"
|
/>
|
||||||
:value="item.code"
|
</el-select>
|
||||||
/>
|
<el-button
|
||||||
</el-select>
|
@click="handleHover(-1, 'RelBatchSectionCode')"
|
||||||
<el-button size="mini" :type="field === 'RelBatchSignalCode'&&rowData === scope.row?'danger':'primary'" @click="handleHover(scope.row, 'RelBatchSignalCode')">激活</el-button>
|
:type="
|
||||||
</template>
|
field === 'RelBatchSectionCode' && row === -1
|
||||||
</el-table-column>
|
? 'danger'
|
||||||
<el-table-column label="类型">
|
: 'primary'
|
||||||
<template slot-scope="scope">
|
"
|
||||||
<el-select v-model="scope.row.type" filterable size="mini" class="responderSet" placeholder="请选择">
|
>
|
||||||
<el-option
|
激活
|
||||||
v-for="item in responderTypeList"
|
</el-button>
|
||||||
:key="item.value"
|
</el-form-item>
|
||||||
:label="item.name"
|
</el-col>
|
||||||
:value="item.value"
|
</el-row>
|
||||||
/>
|
<el-row>
|
||||||
</el-select>
|
<el-col :span="12">
|
||||||
</template>
|
<el-form-item label="类型" prop="type">
|
||||||
</el-table-column>
|
<el-select
|
||||||
<el-table-column label="名称">
|
v-model="formData.type"
|
||||||
<template slot-scope="scope">
|
filterable
|
||||||
<el-input v-model="scope.row.name" placeholder="请输入内容" size="mini" />
|
class="responderSet"
|
||||||
</template>
|
placeholder="请选择"
|
||||||
</el-table-column>
|
@change="changeSubFormType"
|
||||||
<el-table-column width="55">
|
>
|
||||||
<template slot="header">
|
<el-option
|
||||||
<el-button
|
v-for="item in responderTypeList"
|
||||||
icon="el-icon-plus"
|
:key="item.value"
|
||||||
circle
|
:label="`${item.name}(${item.value})`"
|
||||||
size="small"
|
:value="item.value"
|
||||||
@click="handlePush"
|
/>
|
||||||
/>
|
</el-select>
|
||||||
</template>
|
</el-form-item>
|
||||||
<template slot-scope="scope">
|
</el-col>
|
||||||
<el-button size="mini" type="text" @click="handleDelete(scope.$index, scope.row)">{{ $t('map.deleteObj') }}</el-button>
|
<el-col :span="10">
|
||||||
</template>
|
<el-form-item label="创建数量" prop="count">
|
||||||
</el-table-column>
|
<el-input
|
||||||
</el-table>
|
v-model="formData.count"
|
||||||
<div style="text-align: center;margin-top:17px">
|
class="responderSet"
|
||||||
<el-button type="primary" size="small" @click="doBatchCreate">批量创建</el-button>
|
placeholder="请输入数量"
|
||||||
<el-button type="danger" size="small" @click="doBatchReset">重置</el-button>
|
type="number"
|
||||||
</div>
|
min="1"
|
||||||
</el-form>
|
max="10"
|
||||||
|
@blur="numBlur"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<div class="sub-form" v-if="subFormData.length">
|
||||||
|
<template v-for="(item, index) in subFormData">
|
||||||
|
<div :key="`subFormUnit${index}`" class="sub-form-unit">
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="10">
|
||||||
|
<el-form-item label="名称">
|
||||||
|
<el-input
|
||||||
|
v-model="item.name"
|
||||||
|
placeholder="请输入名称"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="类型">
|
||||||
|
<el-select
|
||||||
|
v-model="item.type"
|
||||||
|
filterable
|
||||||
|
placeholder="请选择类型"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="opt in responderTypeList"
|
||||||
|
:key="opt.value"
|
||||||
|
:label="`${opt.name}(${opt.value})`"
|
||||||
|
:value="opt.value"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="10">
|
||||||
|
<el-form-item label="区段偏移值">
|
||||||
|
<el-input-number v-model="item.offset" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="14" v-if="item.type === 'VB'">
|
||||||
|
<el-form-item label="信号机">
|
||||||
|
<el-select
|
||||||
|
v-model="item.signalCode"
|
||||||
|
filterable
|
||||||
|
placeholder="请选择信号机"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="opt in signalList"
|
||||||
|
:key="opt.code"
|
||||||
|
:label="`${opt.name}(${opt.code})`"
|
||||||
|
:value="opt.code"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
<el-button
|
||||||
|
@click="
|
||||||
|
handleHover(index, 'RelBatchSignalCode')
|
||||||
|
"
|
||||||
|
:type="
|
||||||
|
field === 'RelBatchSignalCode' &&
|
||||||
|
row === index
|
||||||
|
? 'danger'
|
||||||
|
: 'primary'
|
||||||
|
"
|
||||||
|
>
|
||||||
|
激活
|
||||||
|
</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</div>
|
||||||
|
<div class="btn-area">
|
||||||
|
<el-button size="small" type="primary" @click="doBatchCreate"
|
||||||
|
>批量创建</el-button
|
||||||
|
>
|
||||||
|
<el-button size="small" type="danger" @click="resetForm"
|
||||||
|
>重置</el-button
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</el-form>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import * as utils from './utils';
|
import * as utils from "./utils";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
props: {
|
name: "responderBatch",
|
||||||
selected: {
|
props: {
|
||||||
type: Object,
|
selected: {
|
||||||
default: function () {
|
type: Object,
|
||||||
return null;
|
default: function() {
|
||||||
}
|
return null;
|
||||||
},
|
}
|
||||||
field: {
|
},
|
||||||
type: String,
|
field: {
|
||||||
default: ''
|
type: String,
|
||||||
},
|
default: ""
|
||||||
responderTypeList: {
|
},
|
||||||
type: Array,
|
responderTypeList: {
|
||||||
required: true
|
type: Array,
|
||||||
},
|
required: true
|
||||||
sectionList: {
|
},
|
||||||
type: Array,
|
sectionList: {
|
||||||
required: true
|
type: Array,
|
||||||
},
|
required: true
|
||||||
signalList: {
|
},
|
||||||
type: Array,
|
signalList: {
|
||||||
required: true
|
type: Array,
|
||||||
},
|
required: true
|
||||||
responderList: {
|
},
|
||||||
type: Array,
|
responderList: {
|
||||||
required: true
|
type: Array,
|
||||||
}
|
required: true
|
||||||
},
|
}
|
||||||
data() {
|
},
|
||||||
return {
|
data() {
|
||||||
addModel: {
|
return {
|
||||||
modelList: []
|
formData: {
|
||||||
},
|
sectionCode: "",
|
||||||
mergeRules: {
|
type: "",
|
||||||
},
|
count: 0
|
||||||
rowData: null
|
},
|
||||||
};
|
subFormData: [],
|
||||||
},
|
row: -2,
|
||||||
methods: {
|
formRules: {
|
||||||
setModelProp(selected, prop) {
|
sectionCode: [
|
||||||
if (this.rowData) {
|
{
|
||||||
this.rowData[prop] = selected.code;
|
required: true,
|
||||||
}
|
message: "请选择区段"
|
||||||
},
|
}
|
||||||
handleDelete(index, row) {
|
],
|
||||||
this.addModel.modelList.splice(index, 1);
|
type: [
|
||||||
},
|
{
|
||||||
handleHover(row, prop) {
|
required: true,
|
||||||
this.rowData = row;
|
message: "请选择类型"
|
||||||
this.$emit('hover', prop);
|
}
|
||||||
},
|
],
|
||||||
handlePush(row) {
|
count: [
|
||||||
this.addModel.modelList.push({
|
{
|
||||||
sectionCode: '',
|
validator: (rule, value, cb) => {
|
||||||
signalCode: '',
|
value !== 0 ? cb() : cb(new Error("至少创建一个"));
|
||||||
type: '',
|
}
|
||||||
name: ''
|
}
|
||||||
});
|
]
|
||||||
},
|
}
|
||||||
doBatchCreate() {
|
};
|
||||||
const groupMap = {};
|
},
|
||||||
const models = [];
|
methods: {
|
||||||
|
setModelProp(selected, prop) {
|
||||||
|
if (prop === "sectionCode") {
|
||||||
|
//激活区段
|
||||||
|
this.formData[prop] = selected.code;
|
||||||
|
} else if (prop === "signalCode") {
|
||||||
|
//激活信号机
|
||||||
|
this.subFormData[this.row][prop] = selected.code;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
numBlur() {
|
||||||
|
const oldNum = this.subFormData.length;
|
||||||
|
const newNum = this.formData.count;
|
||||||
|
if (oldNum < newNum) {
|
||||||
|
this.subFormData = [
|
||||||
|
...this.subFormData,
|
||||||
|
...this.createSubForm(newNum - oldNum)
|
||||||
|
];
|
||||||
|
} else if (oldNum > newNum) {
|
||||||
|
this.subFormData = this.subFormData.slice(0, newNum);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
createSubForm(length) {
|
||||||
|
return Array.from({ length }, _ => {
|
||||||
|
return {
|
||||||
|
name: "",
|
||||||
|
type: this.formData.type,
|
||||||
|
offset: 0,
|
||||||
|
signalCode: ""
|
||||||
|
};
|
||||||
|
});
|
||||||
|
},
|
||||||
|
changeSubFormType() {
|
||||||
|
this.subFormData.forEach(_ => {
|
||||||
|
_.type = this.formData.type;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
handleHover(row, prop) {
|
||||||
|
this.row = row;
|
||||||
|
this.$emit("hover", prop);
|
||||||
|
},
|
||||||
|
doBatchCreate() {
|
||||||
|
this.$refs.form.validate(valid => {
|
||||||
|
if (valid) {
|
||||||
|
const groupMap = {};
|
||||||
|
const models = [];
|
||||||
|
// 分组
|
||||||
|
this.subFormData.forEach(el => {
|
||||||
|
if (el.type !== "VB") el.signalCode = "";
|
||||||
|
el.sectionCode = this.formData.sectionCode;
|
||||||
|
if (!groupMap[el.sectionCode]) {
|
||||||
|
groupMap[el.sectionCode] = [];
|
||||||
|
}
|
||||||
|
groupMap[el.sectionCode].push(el);
|
||||||
|
});
|
||||||
|
|
||||||
// 分组
|
// 绘图位置计算
|
||||||
this.addModel.modelList.forEach(el => {
|
Object.keys(groupMap).forEach(code => {
|
||||||
if (!groupMap[el.sectionCode]) {
|
const section = this.$store.getters[
|
||||||
groupMap[el.sectionCode] = [];
|
"map/getDeviceByCode"
|
||||||
}
|
](code);
|
||||||
groupMap[el.sectionCode].push(el);
|
const list = groupMap[code];
|
||||||
});
|
const length = list.length;
|
||||||
|
const ox =
|
||||||
// 偏移量计算
|
(section.points[section.points.length - 1].x -
|
||||||
Object.keys(groupMap).forEach(code => {
|
section.points[0].x) /
|
||||||
const section = this.$store.getters['map/getDeviceByCode'](code);
|
(length + 1);
|
||||||
const list = groupMap[code];
|
const oy =
|
||||||
const length = list.length;
|
(section.points[section.points.length - 1].y -
|
||||||
const ox = (section.points[length - 1].x - section.points[0].x) / (length + 1);
|
section.points[0].y) /
|
||||||
const oy = (section.points[length - 1].y - section.points[0].y) / (length + 1);
|
(length + 1);
|
||||||
list.forEach((el, i) => {
|
list.forEach((el, i) => {
|
||||||
const x = section.points[0].x + ox * (i + 1);
|
const x = section.points[0].x + ox * (i + 1);
|
||||||
const y = section.points[0].y + oy * (i + 1);
|
const y = section.points[0].y + oy * (i + 1);
|
||||||
models.push(utils.buildModelBySection(section, {x, y}, el, this.responderList));
|
models.push(
|
||||||
});
|
utils.buildModelBySection(
|
||||||
});
|
section,
|
||||||
|
{ x, y },
|
||||||
// 批量创建
|
el,
|
||||||
this.$emit('updateMapModel', models);
|
this.responderList
|
||||||
},
|
)
|
||||||
doBatchReset() {
|
);
|
||||||
this.addModel.modelList = [];
|
});
|
||||||
}
|
});
|
||||||
}
|
// 批量创建
|
||||||
|
this.$emit("updateMapModel", models);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
resetForm() {
|
||||||
|
this.formData = {
|
||||||
|
sectionCode: "",
|
||||||
|
type: "",
|
||||||
|
count: 0
|
||||||
|
};
|
||||||
|
this.numBlur();
|
||||||
|
}
|
||||||
|
}
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style lang="scss" scoped>
|
||||||
.responderSet{
|
.sub-form {
|
||||||
width:120px;
|
padding: 5px;
|
||||||
|
margin-bottom: 70px;
|
||||||
|
background-color: #eee;
|
||||||
|
.sub-form-unit {
|
||||||
|
border-bottom: 1px solid #ccc;
|
||||||
|
padding: 8px 0;
|
||||||
|
.el-form-item {
|
||||||
|
margin: 5px 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.btn-area {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-evenly;
|
||||||
|
position: absolute;
|
||||||
|
bottom: 0;
|
||||||
|
width: 100%;
|
||||||
|
background-color: #fff;
|
||||||
|
padding: 10px;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -145,7 +145,7 @@ export default {
|
|||||||
] },
|
] },
|
||||||
{ prop:'textRotate', label: '文字旋转', type: 'number' },
|
{ prop:'textRotate', label: '文字旋转', type: 'number' },
|
||||||
{ prop: 'sectionCode', label: '关联区段', type: 'selectHover', optionLabel: 'name&&code', optionValue: 'code', options: this.sectionList, buttonType: 'RelModelSectionCode', hover: this.hover, buttonShowType: this.isSectionButtonType },
|
{ prop: 'sectionCode', label: '关联区段', type: 'selectHover', optionLabel: 'name&&code', optionValue: 'code', options: this.sectionList, buttonType: 'RelModelSectionCode', hover: this.hover, buttonShowType: this.isSectionButtonType },
|
||||||
{ prop: 'signalCode', label: '关联信号机', type: 'selectHover', optionLabel: 'name&&code', optionValue: 'code', options: this.signalList, buttonType: 'RelModelSignalCode', hover: this.hover, buttonShowType: this.isSignalButtonType },
|
this.editModel.type === 'VB'? { prop: 'signalCode', label: '关联信号机', type: 'selectHover', optionLabel: 'name&&code', optionValue: 'code', options: this.signalList, buttonType: 'RelModelSignalCode', hover: this.hover, buttonShowType: this.isSignalButtonType } :'',
|
||||||
{ prop: 'stationCode', label: '关联集中站' + ':', type: 'select', optionLabel: 'name&&code', optionValue: 'code', options: this.centralizedStationList }
|
{ prop: 'stationCode', label: '关联集中站' + ':', type: 'select', optionLabel: 'name&&code', optionValue: 'code', options: this.centralizedStationList }
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
182
src/views/orderauthor/permission/distributePackage.vue
Normal file
182
src/views/orderauthor/permission/distributePackage.vue
Normal file
@ -0,0 +1,182 @@
|
|||||||
|
<template>
|
||||||
|
<el-dialog title="权限分发包分发" :visible.sync="dialogVisible" width="1200px" :before-close="doClose" center :close-on-click-modal="false">
|
||||||
|
<QueryListPage ref="queryListPage1" :pager-config="pagerConfig" :query-form="queryForm" :query-list="queryList" />
|
||||||
|
</el-dialog>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
// v-dialogDrag
|
||||||
|
import { getUserList, distributePackage } from '@/api/management/user';
|
||||||
|
import { getCompanyList } from '@/api/company';
|
||||||
|
export default {
|
||||||
|
name:'DistributePackage',
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
packageId:'',
|
||||||
|
dialogVisible:false,
|
||||||
|
pagerConfig: {
|
||||||
|
pageSize: 'pageSize',
|
||||||
|
pageIndex: 'pageNum'
|
||||||
|
},
|
||||||
|
companyMap: {},
|
||||||
|
companyList: [],
|
||||||
|
countTypeList:[
|
||||||
|
{label:'个人账户', value:'1'},
|
||||||
|
{label:'企业账户', value:'2'},
|
||||||
|
{label:'企业账户下子账户', value:'3'}
|
||||||
|
],
|
||||||
|
queryForm: {
|
||||||
|
labelWidth: '80px',
|
||||||
|
reset: true,
|
||||||
|
queryObject: {
|
||||||
|
name: {
|
||||||
|
type: 'text',
|
||||||
|
label: this.$t('system.name')
|
||||||
|
},
|
||||||
|
id: {
|
||||||
|
type: 'text',
|
||||||
|
label: 'id'
|
||||||
|
},
|
||||||
|
roles: {
|
||||||
|
type: 'select',
|
||||||
|
label: this.$t('system.roles'),
|
||||||
|
config: {
|
||||||
|
data: this.$ConstSelect.roleList
|
||||||
|
}
|
||||||
|
},
|
||||||
|
nickname: {
|
||||||
|
type: 'text',
|
||||||
|
label: '昵称'
|
||||||
|
},
|
||||||
|
mobile: {
|
||||||
|
type: 'text',
|
||||||
|
label: '手机号'
|
||||||
|
},
|
||||||
|
email: {
|
||||||
|
type: 'text',
|
||||||
|
label: '邮箱'
|
||||||
|
},
|
||||||
|
companyId: {
|
||||||
|
type: 'select',
|
||||||
|
label: '组织',
|
||||||
|
config: {
|
||||||
|
data: []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
type:{
|
||||||
|
type: 'select',
|
||||||
|
label: '类型',
|
||||||
|
config: {
|
||||||
|
data: []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
queryList: {
|
||||||
|
query: getUserList,
|
||||||
|
selectCheckShow: false,
|
||||||
|
indexShow: true,
|
||||||
|
columns: [
|
||||||
|
{
|
||||||
|
title: 'id',
|
||||||
|
prop: 'id',
|
||||||
|
width: 80
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: this.$t('system.name'),
|
||||||
|
prop: 'name'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: this.$t('system.nickname'),
|
||||||
|
prop: 'nickname'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '类型',
|
||||||
|
prop: 'type',
|
||||||
|
type: 'tag',
|
||||||
|
columnValue: (row) => { return this.getCountType(row.type); },
|
||||||
|
tagType: (row) => { return 'success'; }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: this.$t('global.mobile'),
|
||||||
|
prop: 'mobile'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: this.$t('global.email'),
|
||||||
|
prop: 'email'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '组织',
|
||||||
|
prop: 'companyId',
|
||||||
|
type: 'tag',
|
||||||
|
columnValue: (row) => { return this.getCompanyName(row.companyId); },
|
||||||
|
tagType: (row) => { return 'success'; }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: this.$t('system.roles'),
|
||||||
|
prop: 'roles',
|
||||||
|
type: 'tagMore',
|
||||||
|
columnValue: (row) => { return this.$convertField(row.roles, this.$ConstSelect.roleList, ['value', 'label'], true); },
|
||||||
|
tagType: (row) => { return 'success'; }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'button',
|
||||||
|
title: this.$t('global.operate'),
|
||||||
|
width: '90',
|
||||||
|
buttons: [
|
||||||
|
{
|
||||||
|
name: '选择',
|
||||||
|
handleClick: this.distributePackage
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
};
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.companyMap = {};
|
||||||
|
this.companyList = [];
|
||||||
|
getCompanyList().then(resp => {
|
||||||
|
if (resp && resp.data && resp.data.length) {
|
||||||
|
resp.data.forEach(item => {
|
||||||
|
this.companyMap[item.id] = item.name;
|
||||||
|
this.companyList.push({label: item.name, value: parseInt(item.id)});
|
||||||
|
});
|
||||||
|
this.queryForm.queryObject.companyId.config.data = this.companyList;
|
||||||
|
this.queryForm.queryObject.type.config.data = this.countTypeList;
|
||||||
|
}
|
||||||
|
}).catch((error) => {
|
||||||
|
console.error(error);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
methods:{
|
||||||
|
doShow(data) {
|
||||||
|
this.packageId = data.id;
|
||||||
|
this.dialogVisible = true;
|
||||||
|
},
|
||||||
|
doClose() {
|
||||||
|
this.dialogVisible = false;
|
||||||
|
},
|
||||||
|
getCountType(type) {
|
||||||
|
const countType = this.countTypeList.find(each=>{ return each.value == type; });
|
||||||
|
return countType ? countType.label : '';
|
||||||
|
},
|
||||||
|
getCompanyName(companyId) {
|
||||||
|
return this.companyMap[companyId];
|
||||||
|
},
|
||||||
|
distributePackage(index, row) {
|
||||||
|
if (this.packageId) {
|
||||||
|
const accountId = row.id;
|
||||||
|
distributePackage(this.packageId, accountId).then(resp=> {
|
||||||
|
this.$message.success('权限分发包分发给指定账户成功!');
|
||||||
|
this.$emit('reloadTable');
|
||||||
|
this.doClose();
|
||||||
|
}).catch(() => {
|
||||||
|
this.$messageBox('权限分发包分发给指定账户失败');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
@ -4,6 +4,7 @@
|
|||||||
<qr-code ref="qrCode" />
|
<qr-code ref="qrCode" />
|
||||||
<qcode ref="qcode" />
|
<qcode ref="qcode" />
|
||||||
<project-package ref="projectPackage" @createSuccess="createSuccess" />
|
<project-package ref="projectPackage" @createSuccess="createSuccess" />
|
||||||
|
<distribute-package ref="distributePackage" @reloadTable="reloadTable" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -14,6 +15,7 @@ import { UrlConfig } from '@/scripts/ConstDic';
|
|||||||
import QrCode from '@/components/QrCode';
|
import QrCode from '@/components/QrCode';
|
||||||
import Qcode from './Qcode';
|
import Qcode from './Qcode';
|
||||||
import ProjectPackage from './projectPackage';
|
import ProjectPackage from './projectPackage';
|
||||||
|
import DistributePackage from './distributePackage';
|
||||||
import { getOrganizationList } from '@/api/management/organization';
|
import { getOrganizationList } from '@/api/management/organization';
|
||||||
// import { getPublishMapListOnline } from '@/api/jmap/map';
|
// import { getPublishMapListOnline } from '@/api/jmap/map';
|
||||||
import { getAdminAndSuperAdminList } from '@/api/management/user';
|
import { getAdminAndSuperAdminList } from '@/api/management/user';
|
||||||
@ -23,7 +25,8 @@ export default {
|
|||||||
components: {
|
components: {
|
||||||
QrCode,
|
QrCode,
|
||||||
Qcode,
|
Qcode,
|
||||||
ProjectPackage
|
ProjectPackage,
|
||||||
|
DistributePackage
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
@ -185,6 +188,13 @@ export default {
|
|||||||
handleClick: this.handleBelongs,
|
handleClick: this.handleBelongs,
|
||||||
type: '',
|
type: '',
|
||||||
showControl: (row) => { return row.amount !== row.remains; }
|
showControl: (row) => { return row.amount !== row.remains; }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '领取到',
|
||||||
|
handleClick: this.distributePackage,
|
||||||
|
type: '',
|
||||||
|
// row.amount !== row.remains
|
||||||
|
showControl: (row) => { return row.remains > 0 && row.status == '1'; }
|
||||||
}
|
}
|
||||||
// {
|
// {
|
||||||
// name: '权限回退',
|
// name: '权限回退',
|
||||||
@ -323,6 +333,9 @@ export default {
|
|||||||
},
|
},
|
||||||
handleBelongs(index, row) {
|
handleBelongs(index, row) {
|
||||||
this.$router.push({ path: `/orderauthor/rules/manage`, query: {distributeId: row.id}});
|
this.$router.push({ path: `/orderauthor/rules/manage`, query: {distributeId: row.id}});
|
||||||
|
},
|
||||||
|
distributePackage(index, row) {
|
||||||
|
this.$refs.distributePackage.doShow(row);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
103
src/views/system/userControl/createSingleUser.vue
Normal file
103
src/views/system/userControl/createSingleUser.vue
Normal file
@ -0,0 +1,103 @@
|
|||||||
|
<template>
|
||||||
|
<el-dialog v-dialogDrag title="创建第三方账户" :visible.sync="dialogVisible" width="500px" :before-close="doClose" center :close-on-click-modal="false">
|
||||||
|
<el-form ref="form" :model="addModel" label-width="130px" :rules="rules">
|
||||||
|
<el-form-item label="账号" prop="account">
|
||||||
|
<el-input v-model="addModel.account" size="mini" style="width:220px" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="昵称" prop="nickname">
|
||||||
|
<el-input v-model="addModel.nickname" size="mini" style="width:220px" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="手机号">
|
||||||
|
<el-input v-model="addModel.mobile" size="mini" style="width:140px" />
|
||||||
|
<el-select v-model="addModel.nationcode" size="mini" style="width:80px">
|
||||||
|
<el-option
|
||||||
|
v-for="item in countryList"
|
||||||
|
:key="item.value"
|
||||||
|
:label="item.name"
|
||||||
|
:value="item.value"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="邮箱" prop="email">
|
||||||
|
<el-input v-model="addModel.email" size="mini" style="width:220px" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="密码" prop="password">
|
||||||
|
<el-input v-model="addModel.password" size="mini" style="width:220px" type="password" autocomplete="new-password" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="真实姓名" prop="name">
|
||||||
|
<el-input v-model="addModel.name" size="mini" style="width:220px" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<span slot="footer" class="dialog-footer">
|
||||||
|
<el-button type="primary" @click="handleCommit">{{ $t('global.confirm') }}</el-button>
|
||||||
|
<el-button @click="doClose">{{ $t('global.cancel') }}</el-button>
|
||||||
|
</span>
|
||||||
|
</el-dialog>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import { createThirdCount } from '@/api/management/user';
|
||||||
|
export default {
|
||||||
|
name:'CreateSingleUser',
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
dialogVisible:false,
|
||||||
|
addModel:{
|
||||||
|
account:'', // 账号
|
||||||
|
mobile:'', // 手机号
|
||||||
|
nationcode:'86', // 国家码
|
||||||
|
email:'', // 邮箱
|
||||||
|
password:'', // 密码
|
||||||
|
name:'', // 真实姓名
|
||||||
|
nickname:'' // 昵称
|
||||||
|
},
|
||||||
|
countryList:[
|
||||||
|
{ name: this.$t('global.china'), value: '86' },
|
||||||
|
{ name: this.$t('global.australia'), value: '61' },
|
||||||
|
{ name: this.$t('global.england'), value: '44' },
|
||||||
|
{ name: this.$t('global.hongKong'), value: '852' },
|
||||||
|
{ name: this.$t('global.Japanese'), value: '81' },
|
||||||
|
{ name: this.$t('global.macao'), value: '853' },
|
||||||
|
{ name: this.$t('global.singapore'), value: '65' },
|
||||||
|
{ name: this.$t('global.taiwan'), value: '886' },
|
||||||
|
{ name: this.$t('global.america'), value: '1' }
|
||||||
|
],
|
||||||
|
rules:{
|
||||||
|
account: [
|
||||||
|
{ required: true, message: '请输入账号', trigger: 'blur' }
|
||||||
|
],
|
||||||
|
nickname: [
|
||||||
|
{ required: true, message: '请输入昵称', trigger: 'blur' }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
};
|
||||||
|
},
|
||||||
|
methods:{
|
||||||
|
doShow() {
|
||||||
|
this.dialogVisible = true;
|
||||||
|
},
|
||||||
|
doClose() {
|
||||||
|
this.dialogVisible = false;
|
||||||
|
this.$refs.form.resetFields();
|
||||||
|
},
|
||||||
|
handleCommit() {
|
||||||
|
const self = this;
|
||||||
|
this.$refs.form.validate((valid) => {
|
||||||
|
if (valid) {
|
||||||
|
const model = Object.assign({}, this.addModel);
|
||||||
|
createThirdCount(model).then(resp=> {
|
||||||
|
self.$message.success('创建第三方账户成功!');
|
||||||
|
self.$emit('reloadTable');
|
||||||
|
self.doClose();
|
||||||
|
}).catch((error) => {
|
||||||
|
if (error.code == 10012) {
|
||||||
|
this.$messageBox('此账户数据已存在!');
|
||||||
|
} else {
|
||||||
|
this.$messageBox('创建第三方账户失败!');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
@ -1,17 +1,19 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<QueryListPage ref="queryListPage" :pager-config="pagerConfig" :query-form="queryForm" :query-list="queryList" />
|
<QueryListPage ref="queryListPage1" :pager-config="pagerConfig" :query-form="queryForm" :query-list="queryList" />
|
||||||
<dictionary-edit ref="edit" :company-list="companyList" @reloadTable="reloadTable" />
|
<dictionary-edit ref="edit" :company-list="companyList" @reloadTable="reloadTable" />
|
||||||
<create-user ref="createUser" />
|
<create-user ref="createUser" />
|
||||||
|
<create-single-user ref="createSingleUser" @reloadTable="reloadTable" />
|
||||||
<bind-company ref="bindCompany" :company-list="companyList" @create="create" />
|
<bind-company ref="bindCompany" :company-list="companyList" @create="create" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { getUserList } from '@/api/management/user';
|
import { getUserList, deleteUserInLogic } from '@/api/management/user';
|
||||||
import { getCompanyList } from '@/api/company';
|
import { getCompanyList } from '@/api/company';
|
||||||
import DictionaryEdit from './edit';
|
import DictionaryEdit from './edit';
|
||||||
import CreateUser from './createUser';
|
import CreateUser from './createUser';
|
||||||
|
import CreateSingleUser from './createSingleUser';
|
||||||
import BindCompany from './bindCompany';
|
import BindCompany from './bindCompany';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
@ -19,6 +21,7 @@ export default {
|
|||||||
components: {
|
components: {
|
||||||
DictionaryEdit,
|
DictionaryEdit,
|
||||||
CreateUser,
|
CreateUser,
|
||||||
|
CreateSingleUser,
|
||||||
BindCompany
|
BindCompany
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
@ -29,6 +32,11 @@ export default {
|
|||||||
},
|
},
|
||||||
companyMap: {},
|
companyMap: {},
|
||||||
companyList: [],
|
companyList: [],
|
||||||
|
countTypeList:[
|
||||||
|
{label:'个人账户', value:'1'},
|
||||||
|
{label:'企业账户', value:'2'},
|
||||||
|
{label:'企业账户下子账户', value:'3'}
|
||||||
|
],
|
||||||
queryForm: {
|
queryForm: {
|
||||||
labelWidth: '80px',
|
labelWidth: '80px',
|
||||||
reset: true,
|
reset: true,
|
||||||
@ -41,6 +49,14 @@ export default {
|
|||||||
type: 'text',
|
type: 'text',
|
||||||
label: 'id'
|
label: 'id'
|
||||||
},
|
},
|
||||||
|
account:{
|
||||||
|
type: 'text',
|
||||||
|
label: '账号'
|
||||||
|
},
|
||||||
|
parentAccount:{
|
||||||
|
type: 'text',
|
||||||
|
label: '父账号'
|
||||||
|
},
|
||||||
roles: {
|
roles: {
|
||||||
type: 'select',
|
type: 'select',
|
||||||
label: this.$t('system.roles'),
|
label: this.$t('system.roles'),
|
||||||
@ -66,6 +82,13 @@ export default {
|
|||||||
config: {
|
config: {
|
||||||
data: []
|
data: []
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
type:{
|
||||||
|
type: 'select',
|
||||||
|
label: '类型',
|
||||||
|
config: {
|
||||||
|
data: []
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -80,6 +103,16 @@ export default {
|
|||||||
prop: 'id',
|
prop: 'id',
|
||||||
width: 80
|
width: 80
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
title: '账号',
|
||||||
|
prop: 'account',
|
||||||
|
width: 80
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '父账号',
|
||||||
|
prop: 'parentAccount',
|
||||||
|
width: 80
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: this.$t('system.name'),
|
title: this.$t('system.name'),
|
||||||
prop: 'name'
|
prop: 'name'
|
||||||
@ -88,6 +121,13 @@ export default {
|
|||||||
title: this.$t('system.nickname'),
|
title: this.$t('system.nickname'),
|
||||||
prop: 'nickname'
|
prop: 'nickname'
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
title: '类型',
|
||||||
|
prop: 'type',
|
||||||
|
type: 'tag',
|
||||||
|
columnValue: (row) => { return this.getCountType(row.type); },
|
||||||
|
tagType: (row) => { return 'success'; }
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: this.$t('global.mobile'),
|
title: this.$t('global.mobile'),
|
||||||
prop: 'mobile'
|
prop: 'mobile'
|
||||||
@ -122,13 +162,18 @@ export default {
|
|||||||
{
|
{
|
||||||
name: '绑定组织管理员',
|
name: '绑定组织管理员',
|
||||||
handleClick: this.handleBind
|
handleClick: this.handleBind
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '删除',
|
||||||
|
handleClick: this.handleDelete
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
actions: [
|
actions: [
|
||||||
{ text: '创建本地用户', btnCode: 'employee_auto', handler: this.createLocalUsers },
|
{ text: '创建本地用户', btnCode: 'employee_auto', handler: this.createLocalUsers },
|
||||||
{ text: '组织管理', btnCode: 'company_manage', handler: this.companyManage }
|
{ text: '组织管理', btnCode: 'company_manage', handler: this.companyManage },
|
||||||
|
{ text: '创建第三方账户', btnCode: 'create_user', handler: this.createSingleUser }
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
currentModel: {}
|
currentModel: {}
|
||||||
@ -144,6 +189,7 @@ export default {
|
|||||||
this.companyList.push({label: item.name, value: parseInt(item.id)});
|
this.companyList.push({label: item.name, value: parseInt(item.id)});
|
||||||
});
|
});
|
||||||
this.queryForm.queryObject.companyId.config.data = this.companyList;
|
this.queryForm.queryObject.companyId.config.data = this.companyList;
|
||||||
|
this.queryForm.queryObject.type.config.data = this.countTypeList;
|
||||||
}
|
}
|
||||||
}).catch((error) => {
|
}).catch((error) => {
|
||||||
console.error(error);
|
console.error(error);
|
||||||
@ -157,18 +203,34 @@ export default {
|
|||||||
getCompanyName(companyId) {
|
getCompanyName(companyId) {
|
||||||
return this.companyMap[companyId];
|
return this.companyMap[companyId];
|
||||||
},
|
},
|
||||||
|
getCountType(type) {
|
||||||
|
const countType = this.countTypeList.find(each=>{ return each.value == type; });
|
||||||
|
return countType ? countType.label : '';
|
||||||
|
},
|
||||||
reloadTable() {
|
reloadTable() {
|
||||||
this.queryList.reload();
|
this.queryList.reload();
|
||||||
},
|
},
|
||||||
createLocalUsers() {
|
createLocalUsers() {
|
||||||
this.$refs.createUser.doShow();
|
this.$refs.createUser.doShow();
|
||||||
},
|
},
|
||||||
|
createSingleUser() {
|
||||||
|
this.$refs.createSingleUser.doShow();
|
||||||
|
},
|
||||||
companyManage() {
|
companyManage() {
|
||||||
this.$router.push({ path: `/system/companyManage`});
|
this.$router.push({ path: `/system/companyManage`});
|
||||||
},
|
},
|
||||||
handleBind(index, row) {
|
handleBind(index, row) {
|
||||||
this.$refs.bindCompany.doShow(row);
|
this.$refs.bindCompany.doShow(row);
|
||||||
},
|
},
|
||||||
|
handleDelete(index, row) {
|
||||||
|
deleteUserInLogic(row.id).then(resp=> {
|
||||||
|
// 逻辑删除
|
||||||
|
this.$message.success('删除账户成功!');
|
||||||
|
this.reloadTable();
|
||||||
|
}).catch(() => {
|
||||||
|
this.$messageBox('删除账户失败');
|
||||||
|
});
|
||||||
|
},
|
||||||
create() {
|
create() {
|
||||||
this.reloadTable();
|
this.reloadTable();
|
||||||
}
|
}
|
||||||
|
195
src/views/system/userLoginControl/index.vue
Normal file
195
src/views/system/userLoginControl/index.vue
Normal file
@ -0,0 +1,195 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<QueryListPage ref="queryListPage" :pager-config="pagerConfig" :query-form="queryForm" :query-list="queryList" />
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import { getLoginUserList } from '@/api/management/user';
|
||||||
|
import { getCompanyList } from '@/api/company';
|
||||||
|
export default {
|
||||||
|
name: 'UserLoginControl',
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
systemMap:{
|
||||||
|
'DEFAULT_Joylink':'城市轨道交通实训平台',
|
||||||
|
'DEFAULT_Design':'城市轨道交通设计平台',
|
||||||
|
'BJD_Joylink':'城市轨道交通列车运行智慧辅助系统(北交大)',
|
||||||
|
'WJLS_Joylink':'微机联锁仿真系统(大铁)',
|
||||||
|
'XTY_Joylink':'西铁院实训平台',
|
||||||
|
'XTY_Design':'西铁院设计平台',
|
||||||
|
'GZB_Joylink':'贵装备实训平台',
|
||||||
|
'GZB_Design':'贵装备设计平台',
|
||||||
|
'CGY_Joylink':'成都工业实训平台',
|
||||||
|
'CGY_Design':'成都工业设计平台',
|
||||||
|
'XADT_Joylink':'西安地铁实训平台',
|
||||||
|
'XADT_Design':'西安地铁设计平台',
|
||||||
|
'SDY_Joylink':'苏电院实训平台',
|
||||||
|
'SDY_Design':'苏电院设计平台',
|
||||||
|
'ZZWW_Joylink':'共赢列车仿真驾驶系统(郑州)',
|
||||||
|
'NTY_Joylink':'南铁院实训平台(云平台通用版)',
|
||||||
|
'NTY_Design':'南铁院设计平台(云平台通用版)',
|
||||||
|
'NTYC_Joylink':'南铁院实训平台(云平台专用版)',
|
||||||
|
'NTYC_Design':'南铁院设计平台(云平台专用版)',
|
||||||
|
'DRTS_Joylink':'调度大赛实训平台',
|
||||||
|
'DRTS_Design':'调度大赛设计平台',
|
||||||
|
'DEFAULT_Assistant':'琏课堂助手'
|
||||||
|
},
|
||||||
|
pagerConfig: {
|
||||||
|
pageSize: 'pageSize',
|
||||||
|
pageIndex: 'pageNum'
|
||||||
|
},
|
||||||
|
companyMap: {},
|
||||||
|
companyList: [],
|
||||||
|
countTypeList:[
|
||||||
|
{label:'个人账户', value:'1'},
|
||||||
|
{label:'企业账户', value:'2'},
|
||||||
|
{label:'企业账户下子账户', value:'3'}
|
||||||
|
],
|
||||||
|
queryForm: {
|
||||||
|
labelWidth: '80px',
|
||||||
|
reset: true,
|
||||||
|
queryObject: {
|
||||||
|
name: {
|
||||||
|
type: 'text',
|
||||||
|
label: this.$t('system.name')
|
||||||
|
},
|
||||||
|
id: {
|
||||||
|
type: 'text',
|
||||||
|
label: 'id'
|
||||||
|
},
|
||||||
|
roles: {
|
||||||
|
type: 'select',
|
||||||
|
label: this.$t('system.roles'),
|
||||||
|
config: {
|
||||||
|
data: this.$ConstSelect.roleList
|
||||||
|
}
|
||||||
|
},
|
||||||
|
nickname: {
|
||||||
|
type: 'text',
|
||||||
|
label: '昵称'
|
||||||
|
},
|
||||||
|
mobile: {
|
||||||
|
type: 'text',
|
||||||
|
label: '手机号'
|
||||||
|
},
|
||||||
|
email: {
|
||||||
|
type: 'text',
|
||||||
|
label: '邮箱'
|
||||||
|
},
|
||||||
|
companyId: {
|
||||||
|
type: 'select',
|
||||||
|
label: '组织',
|
||||||
|
config: {
|
||||||
|
data: []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
type:{
|
||||||
|
type: 'select',
|
||||||
|
label: '类型',
|
||||||
|
config: {
|
||||||
|
data: []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
queryList: {
|
||||||
|
query: getLoginUserList,
|
||||||
|
selectCheckShow: false,
|
||||||
|
indexShow: true,
|
||||||
|
columns: [
|
||||||
|
{
|
||||||
|
title: 'id',
|
||||||
|
prop: 'accountVO.id',
|
||||||
|
width: 80,
|
||||||
|
type: 'basicText',
|
||||||
|
columnValue: (row) => { return row.accountVO.id; }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: this.$t('system.name'),
|
||||||
|
prop: 'accountVO.name',
|
||||||
|
type: 'basicText',
|
||||||
|
columnValue: (row) => { return row.accountVO.name; }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: this.$t('system.nickname'),
|
||||||
|
prop: 'accountVO.nickname',
|
||||||
|
type: 'basicText',
|
||||||
|
columnValue: (row) => { return row.accountVO.nickname; }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '类型',
|
||||||
|
prop: 'accountVO.type',
|
||||||
|
type: 'tag',
|
||||||
|
columnValue: (row) => { return this.getCountType(row.accountVO.type); },
|
||||||
|
tagType: (row) => { return 'success'; }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: this.$t('global.mobile'),
|
||||||
|
prop: 'accountVO.mobile',
|
||||||
|
type: 'basicText',
|
||||||
|
width: 160,
|
||||||
|
columnValue: (row) => { return row.accountVO.mobile; }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: this.$t('global.email'),
|
||||||
|
prop: 'accountVO.email',
|
||||||
|
type: 'basicText',
|
||||||
|
columnValue: (row) => { return row.accountVO.email; }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '组织',
|
||||||
|
prop: 'accountVO.companyId',
|
||||||
|
type: 'tag',
|
||||||
|
columnValue: (row) => { return this.getCompanyName(row.accountVO.companyId); },
|
||||||
|
tagType: (row) => { return 'success'; }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: this.$t('system.roles'),
|
||||||
|
prop: 'accountVO.roles',
|
||||||
|
type: 'tagMore',
|
||||||
|
columnValue: (row) => { return this.$convertField(row.accountVO.roles, this.$ConstSelect.roleList, ['value', 'label'], true); },
|
||||||
|
tagType: (row) => { return 'success'; }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '登陆系统',
|
||||||
|
prop: 'project',
|
||||||
|
type: 'basicText',
|
||||||
|
width: 260,
|
||||||
|
columnValue: (row) => { return this.systemMap[row.project + '_' + row.client] || ''; }
|
||||||
|
// tagType: (row) => { return 'success'; }
|
||||||
|
}
|
||||||
|
],
|
||||||
|
actions: []
|
||||||
|
}
|
||||||
|
};
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.companyMap = {};
|
||||||
|
this.companyList = [];
|
||||||
|
getCompanyList().then(resp => {
|
||||||
|
if (resp && resp.data && resp.data.length) {
|
||||||
|
resp.data.forEach(item => {
|
||||||
|
this.companyMap[item.id] = item.name;
|
||||||
|
this.companyList.push({label: item.name, value: parseInt(item.id)});
|
||||||
|
});
|
||||||
|
this.queryForm.queryObject.companyId.config.data = this.companyList;
|
||||||
|
this.queryForm.queryObject.type.config.data = this.countTypeList;
|
||||||
|
}
|
||||||
|
}).catch((error) => {
|
||||||
|
console.error(error);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
methods:{
|
||||||
|
getCompanyName(companyId) {
|
||||||
|
return this.companyMap[companyId];
|
||||||
|
},
|
||||||
|
getCountType(type) {
|
||||||
|
const countType = this.countTypeList.find(each=>{ return each.value == type; });
|
||||||
|
return countType ? countType.label : '';
|
||||||
|
},
|
||||||
|
reloadTable() {
|
||||||
|
this.queryList.reload();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
79
src/views/thirdLogin/index.vue
Normal file
79
src/views/thirdLogin/index.vue
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
<template>
|
||||||
|
<div class="thirdLoginContainer">
|
||||||
|
<div class="thirdLoginMessage">
|
||||||
|
{{ message }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import { LoginParams } from '@/utils/login';
|
||||||
|
import { thirdCountLogin } from '@/api/management/user';
|
||||||
|
import md5 from 'js-md5';
|
||||||
|
import { setToken, getToken, setSessionStorage } from '@/utils/auth';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name:'ThirdLogin',
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
message:''
|
||||||
|
};
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
project() {
|
||||||
|
const project = this.$route.query.project;
|
||||||
|
return project || 'login';
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
setSessionStorage('project', this.project);
|
||||||
|
const userId = this.$route.query.userId;
|
||||||
|
const paccount = this.$route.query.paccount;
|
||||||
|
const secret = this.$route.query.secret;
|
||||||
|
// const project = this.$route.query.project || '';
|
||||||
|
const deviceCode = this.$route.query.deviceCode || '';
|
||||||
|
const computeSecret = md5(paccount + '::' + userId);
|
||||||
|
if (userId && paccount && secret == computeSecret) {
|
||||||
|
const model = Object.assign({
|
||||||
|
parentAccount:paccount,
|
||||||
|
account:userId,
|
||||||
|
deviceCode:deviceCode
|
||||||
|
}, LoginParams.LianKeTang);
|
||||||
|
this.message = '正在登陆中......';
|
||||||
|
const tokenKey = getToken();
|
||||||
|
if (tokenKey) {
|
||||||
|
const header = { group: '', 'X-Token': tokenKey };
|
||||||
|
this.$store.dispatch('setToken', tokenKey);
|
||||||
|
this.$store.dispatch('subscribe', {header, type:'class'});
|
||||||
|
this.$router.replace({path:'/trainingPlatform'});
|
||||||
|
} else {
|
||||||
|
thirdCountLogin(model).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.$router.replace({path:'/trainingPlatform'});
|
||||||
|
setSessionStorage('thirdLogin', true);
|
||||||
|
}).catch(() => {
|
||||||
|
this.message = '参数有误,请检查';
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
this.message = '参数有误,请检查';
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods:{
|
||||||
|
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.thirdLoginContainer{
|
||||||
|
|
||||||
|
}
|
||||||
|
.thirdLoginMessage{
|
||||||
|
padding: 20px;
|
||||||
|
font-size: 20px;
|
||||||
|
}
|
||||||
|
</style>
|
Loading…
Reference in New Issue
Block a user