Merge remote-tracking branch 'remotes/origin/test'
This commit is contained in:
commit
1c112b6ecb
@ -145,6 +145,50 @@ export function generateOfflineUser(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) {
|
||||
return request({
|
||||
|
@ -63,6 +63,7 @@ export default {
|
||||
dataDictionary: 'Data dictionary',
|
||||
dataDictionaryDetails: 'Data dictionary details',
|
||||
userManage: 'user management',
|
||||
loginUserManage:'login user Manage',
|
||||
cacheManage: 'cache management',
|
||||
userTrainingManage: 'User training management',
|
||||
userExamManage: 'User examination management',
|
||||
|
@ -62,6 +62,7 @@ export default {
|
||||
dataDictionary: '数据字典',
|
||||
dataDictionaryDetails: '数据字典明细',
|
||||
userManage: '用户管理',
|
||||
loginUserManage:'在线用户管理',
|
||||
cacheManage: '缓存管理',
|
||||
userTrainingManage: '用户实训统计',
|
||||
userExamManage: '用户考试统计',
|
||||
|
@ -8,6 +8,7 @@ import zrender from 'zrender';
|
||||
import localStore from 'storejs';
|
||||
import Options from './options';
|
||||
import MouseController from './mouseController';
|
||||
import KeyboardController from './keyboardController';
|
||||
import Painter from './painter';
|
||||
import deviceType from './constant/deviceType';
|
||||
import {calculateDCenter, createBoundingRect, deviceFactory} from './utils/parser';
|
||||
@ -22,7 +23,7 @@ class IbpPan {
|
||||
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 = {};
|
||||
@ -41,8 +42,10 @@ class IbpPan {
|
||||
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.$mouseController = new MouseController(this);
|
||||
this.$keyboardController = new KeyboardController(this);
|
||||
|
||||
this.$mouseController.enable();
|
||||
this.$keyboardController.enable();
|
||||
|
||||
this.$painter = new Painter(this);
|
||||
this.$painter.updateZrSize({width: this.$ibpZr.getWidth(), height: this.$ibpZr.getHeight()});
|
||||
@ -285,6 +288,7 @@ class IbpPan {
|
||||
this.clear();
|
||||
|
||||
this.$mouseController.dispose();
|
||||
this.$keyboardController.disable();
|
||||
this.$ibpZr && zrender.dispose(this.$ibpZr);
|
||||
this.$painter.dispose();
|
||||
}
|
||||
@ -299,6 +303,9 @@ class IbpPan {
|
||||
case this.events.MouseDown:
|
||||
this.$mouseController.on(this.events.MouseDown, cb, context);
|
||||
break;
|
||||
case this.events.MouseUp:
|
||||
this.$mouseController.on(this.events.MouseUp, cb, context);
|
||||
break;
|
||||
case this.events.Contextmenu:
|
||||
this.$mouseController.on(this.events.Contextmenu, cb, context);
|
||||
break;
|
||||
@ -308,6 +315,9 @@ class IbpPan {
|
||||
case this.events.__Pan:
|
||||
this.$mouseController.on(this.events.__Pan, this.optionsHandler);
|
||||
break;
|
||||
case this.events.Keyboard:
|
||||
this.$keyboardController.on(this.events.Keyboard, cb, context);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -322,6 +332,9 @@ class IbpPan {
|
||||
case this.events.MouseDown:
|
||||
this.$mouseController.off(this.events.MouseDown, cb);
|
||||
break;
|
||||
case this.events.MouseUp:
|
||||
this.$mouseController.off(this.events.MouseUp, cb);
|
||||
break;
|
||||
case this.events.Contextmenu:
|
||||
this.$mouseController.off(this.events.Contextmenu, cb);
|
||||
break;
|
||||
@ -331,6 +344,9 @@ class IbpPan {
|
||||
case this.events.__Pan:
|
||||
this.$mouseController.off(this.events.__Pan, cb);
|
||||
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._dragging = false;
|
||||
this.deviceList = [];
|
||||
this.trigger(this.events.MouseUp, new EventModel(e));
|
||||
}
|
||||
|
||||
contextmenu(e) {
|
||||
|
@ -135,8 +135,6 @@ export function JLmapDriving(dom,data,mapId,storemod,translation,routegroup,proj
|
||||
// sound.play();
|
||||
// });
|
||||
|
||||
|
||||
|
||||
let controls3 = new MouseControls(camera, 1.6);
|
||||
controls3.enabled = false;
|
||||
// controls3.getObject().rotation.x = Math.PI/2;
|
||||
|
@ -42,7 +42,7 @@ export default {
|
||||
operateType: 'CM_Apply_For_Center_Control',
|
||||
skinCode: '02',
|
||||
trainingName: '转为中控({1})',
|
||||
trainingRemark: '控制权限转换,站控转中控',
|
||||
trainingRemark: '控制权收回行调办理时使用,行调获得控制权后,行调可对设备进行操作,集中站无法对设备进行操作',
|
||||
trainingType: 'ControlConvertMenu',
|
||||
productTypes: ['02'],
|
||||
stepVOList: [
|
||||
@ -61,7 +61,7 @@ export default {
|
||||
operateType: 'CM_Apply_For_Station_Control',
|
||||
skinCode: '02',
|
||||
trainingName: '转为站控({1})',
|
||||
trainingRemark: '控制权限转换,中控转站控',
|
||||
trainingRemark: 'ATS 系统的控制模式有中控和站控两种控制模式,且某一时刻只能为其中的一种模式,在信号系统工作正常时,一般使用ATS系统的中控模式;当个别车站有表示故障或信号设备故障(如计轴故障等),出问题的车站可以转为站控,请求站控:请求控制权下放车站办理,需行调同意后方可转为站控,转为站控后,集中站可对设备进行操作。',
|
||||
trainingType: 'ControlConvertMenu',
|
||||
productTypes: ['01'],
|
||||
stepVOList: [
|
||||
@ -80,7 +80,7 @@ export default {
|
||||
operateType: 'CM_Force_Station_Control',
|
||||
skinCode: '02',
|
||||
trainingName: '强制站控({1})',
|
||||
trainingRemark: '控制权限转换,强制站控',
|
||||
trainingRemark: '出现故障时,应先尝试站控,无法恢复后,可强制获得站控权',
|
||||
trainingType: 'ControlConvertMenu',
|
||||
productTypes: ['01'],
|
||||
stepVOList: [
|
||||
@ -127,7 +127,7 @@ export default {
|
||||
operateType: 'Stand_Set_Hold_Train',
|
||||
skinCode: '02',
|
||||
trainingName: '站台扣车({10}-{12}站台)',
|
||||
trainingRemark: '设置扣车功能',
|
||||
trainingRemark: '对指定站台设置扣车,设置后当列车运行至该站台时,将会执行扣车,列车不再行驶',
|
||||
trainingType: 'Stand',
|
||||
productTypes: ['01', '02'],
|
||||
stepVOList: [
|
||||
@ -141,7 +141,7 @@ export default {
|
||||
operateType: 'Stand_Cancel_Hold_Train',
|
||||
skinCode: '02',
|
||||
trainingName: '站台取消扣车({10}-{12}站台)',
|
||||
trainingRemark: '设置取消扣车功能',
|
||||
trainingRemark: '对指定站台取消之前设置的扣车',
|
||||
trainingType: 'Stand',
|
||||
productTypes: ['01', '02'],
|
||||
stepVOList: [
|
||||
@ -155,7 +155,7 @@ export default {
|
||||
operateType: 'Stand_Force_Cancel_Hold_Train',
|
||||
skinCode: '02',
|
||||
trainingName: '强制取消扣车({10}-{12}站台)',
|
||||
trainingRemark: '强制取消扣车功能',
|
||||
trainingRemark: '对指定站台强制取消之前设置的扣车 1)中心与车站通信中断时,在现地控制工作站在站控模式下可强制取消中心设置的扣车; 2)存在 ATP 扣车但是扣车位置未知时现地控制工作站在站控模式下可强制取消 ATP 扣车。',
|
||||
trainingType: 'Stand',
|
||||
productTypes: ['01'],
|
||||
stepVOList: [
|
||||
@ -198,7 +198,7 @@ export default {
|
||||
operateType: 'Stand_Set_Jump_Stop',
|
||||
skinCode: '02',
|
||||
trainingName: '站台跳停({10}-{12}站台)',
|
||||
trainingRemark: '设置跳停功能',
|
||||
trainingRemark: '对指定站台设置跳停命令,命令后续列车不停站通过该站台',
|
||||
trainingType: 'Stand',
|
||||
productTypes: ['01', '02'],
|
||||
stepVOList: [
|
||||
@ -212,7 +212,7 @@ export default {
|
||||
operateType: 'Stand_Cancel_Jump_Stop',
|
||||
skinCode: '02',
|
||||
trainingName: '取消跳停({10}-{12}站台)',
|
||||
trainingRemark: '设置取消跳停功能',
|
||||
trainingRemark: '对指定站台取消之前设置的跳停命令',
|
||||
trainingType: 'Stand',
|
||||
productTypes: ['01', '02'],
|
||||
stepVOList: [
|
||||
@ -226,7 +226,7 @@ export default {
|
||||
operateType: 'Stand_View_Status',
|
||||
skinCode: '02',
|
||||
trainingName: '查询站台状态({10}-{12}站台)',
|
||||
trainingRemark: '查询站台状态功能',
|
||||
trainingRemark: '用于查看站台上已设置的命令信息,包括人工设置的停站时间、运行等级、扣车命令、跳停命令等',
|
||||
trainingType: 'Stand',
|
||||
productTypes: ['01', '02'],
|
||||
stepVOList: [
|
||||
@ -240,7 +240,7 @@ export default {
|
||||
operateType: 'Stand_Set_Park_Time',
|
||||
skinCode: '02',
|
||||
trainingName: '设置停站时间({10}-{12}站台)',
|
||||
trainingRemark: '设置停站时间(自动, 一直有效)',
|
||||
trainingRemark: '对某一指定站台设置列车停站时间 (自动, 一直有效)',
|
||||
trainingType: 'Stand',
|
||||
productTypes: ['02'],
|
||||
stepVOList: [
|
||||
@ -256,7 +256,7 @@ export default {
|
||||
operateType: 'Stand_Set_Park_Time',
|
||||
skinCode: '02',
|
||||
trainingName: '设置停站时间({10}-{12}站台)',
|
||||
trainingRemark: '设置停站时间(人工, 20秒, 一直有效)',
|
||||
trainingRemark: '对某一指定站台设置列车停站时间 (人工, 20秒, 一直有效)',
|
||||
trainingType: 'Stand',
|
||||
productTypes: ['02'],
|
||||
stepVOList: [
|
||||
@ -274,7 +274,7 @@ export default {
|
||||
operateType: 'Stand_Set_Park_Time',
|
||||
skinCode: '02',
|
||||
trainingName: '设置停站时间({10}-{12}站台)',
|
||||
trainingRemark: '设置停站时间(人工, 20秒, 一次有效)',
|
||||
trainingRemark: '对某一指定站台设置列车停站时间 (人工, 20秒, 一次有效)',
|
||||
trainingType: 'Stand',
|
||||
productTypes: ['02'],
|
||||
stepVOList: [
|
||||
@ -291,7 +291,7 @@ export default {
|
||||
operateType: 'Stand_Set_Run_Time',
|
||||
skinCode: '02',
|
||||
trainingName: '设置运行等级({10}-{12}站台)',
|
||||
trainingRemark: '设置运行等级(设置区间运行时间为60,一直有效)',
|
||||
trainingRemark: '设置某一指定站台到下一站台的区间运行时间 (设置区间运行时间为60,一直有效)',
|
||||
trainingType: 'Stand',
|
||||
productTypes: ['02'],
|
||||
stepVOList: [
|
||||
@ -308,7 +308,7 @@ export default {
|
||||
operateType: 'Stand_Set_Run_Time',
|
||||
skinCode: '02',
|
||||
trainingName: '设置运行等级({10}-{12}站台)',
|
||||
trainingRemark: '设置运行等级(设置区间运行时间为60,一次有效)',
|
||||
trainingRemark: '设置某一指定站台到下一站台的区间运行时间 (设置区间运行时间为60,一次有效)',
|
||||
trainingType: 'Stand',
|
||||
productTypes: ['02'],
|
||||
stepVOList: [
|
||||
@ -324,7 +324,7 @@ export default {
|
||||
operateType: 'Stand_Early_Depart',
|
||||
skinCode: '02',
|
||||
trainingName: '设置提前发车({10}-{12}站台)',
|
||||
trainingRemark: '设置提前发车功能',
|
||||
trainingRemark: '对指定站台设置提前发车命令,允许该站台当前停站列车立即发车,不论是否还剩余停站时间',
|
||||
trainingType: 'Stand',
|
||||
productTypes: ['02'],
|
||||
stepVOList: [
|
||||
@ -338,7 +338,7 @@ export default {
|
||||
operateType: 'Stand_Set_Reentry_Strategy',
|
||||
skinCode: '02',
|
||||
trainingName: '人工折返策略设置({10}-{12}站台)',
|
||||
trainingRemark: '人工折返策略设置功能',
|
||||
trainingRemark: '设定车辆运行至该站时的折返方式 (无折返)',
|
||||
trainingType: 'Stand',
|
||||
productTypes: ['02'],
|
||||
stepVOList: [
|
||||
@ -354,7 +354,7 @@ export default {
|
||||
operateType: 'Section_Fault_Unlock',
|
||||
skinCode: '02',
|
||||
trainingName: '区段故障解锁({8}{9})',
|
||||
trainingRemark: '故障解锁功能',
|
||||
trainingRemark: '列车通过进路时,因进路中设备故障,无法正常解锁时,需采用故障解锁使未解锁的部分解锁',
|
||||
trainingType: 'Section',
|
||||
productTypes: ['01', '02'],
|
||||
stepVOList: [
|
||||
@ -371,7 +371,7 @@ export default {
|
||||
operateType: 'Section_Cut_Off',
|
||||
skinCode: '02',
|
||||
trainingName: '区段切除({8}{9})',
|
||||
trainingRemark: '区段切除',
|
||||
trainingRemark: '对某一计轴设置切除状态,ATS不再使用该计轴的占用出清状态变化跟踪列车',
|
||||
trainingType: 'Section',
|
||||
productTypes: ['01', '02'],
|
||||
stepVOList: [
|
||||
@ -385,7 +385,7 @@ export default {
|
||||
operateType: 'Section_Active',
|
||||
skinCode: '02',
|
||||
trainingName: '区段激活({8}{9})',
|
||||
trainingRemark: '区段激活功能',
|
||||
trainingRemark: '取消某一计轴上被设置的切除状态,ATS重新使用该计轴的占用出清状态变化跟踪列车',
|
||||
trainingType: 'Section',
|
||||
productTypes: ['01', '02'],
|
||||
stepVOList: [
|
||||
@ -399,7 +399,7 @@ export default {
|
||||
operateType: 'Section_Axis_Pre_Reset',
|
||||
skinCode: '02',
|
||||
trainingName: '计轴预复位({8}{9})',
|
||||
trainingRemark: '计轴预复位功能',
|
||||
trainingRemark: '预复位是在计轴故障时预重置计轴区段',
|
||||
trainingType: 'Section',
|
||||
productTypes: ['01', '02'],
|
||||
stepVOList: [
|
||||
@ -416,7 +416,7 @@ export default {
|
||||
operateType: 'Section_Block',
|
||||
skinCode: '02',
|
||||
trainingName: '区段封锁({8}{9})',
|
||||
trainingRemark: '区段封锁功能',
|
||||
trainingRemark: '封锁后,禁止通过该区段排列进路',
|
||||
trainingType: 'Section',
|
||||
productTypes: ['01', '02'],
|
||||
stepVOList: [
|
||||
@ -430,7 +430,7 @@ export default {
|
||||
operateType: 'Section_Unblock',
|
||||
skinCode: '02',
|
||||
trainingName: '区段解封({8}{9})',
|
||||
trainingRemark: '区段解封功能',
|
||||
trainingRemark: '允许通过该区段排列进路',
|
||||
trainingType: 'Section',
|
||||
productTypes: ['01', '02'],
|
||||
stepVOList: [
|
||||
@ -447,7 +447,7 @@ export default {
|
||||
operateType: 'Section_Set_Limit_Speed',
|
||||
skinCode: '02',
|
||||
trainingName: '区段设置限速({8}{9})',
|
||||
trainingRemark: '区段设置限速功能(限速值:5)',
|
||||
trainingRemark: '对区段设置限速(限速值:5)',
|
||||
trainingType: 'Section',
|
||||
productTypes: ['01', '02'],
|
||||
stepVOList: [
|
||||
@ -469,7 +469,7 @@ export default {
|
||||
operateType: 'Section_Cancel_Limit_Speed',
|
||||
skinCode: '02',
|
||||
trainingName: '区段取消限速({8}{9})',
|
||||
trainingRemark: '区段取消限速功能',
|
||||
trainingRemark: '取消对区段的限速',
|
||||
trainingType: 'Section',
|
||||
productTypes: ['01', '02'],
|
||||
stepVOList: [
|
||||
@ -491,7 +491,7 @@ export default {
|
||||
operateType: 'Switch_Single_Lock',
|
||||
skinCode: '02',
|
||||
trainingName: '道岔单锁({7})',
|
||||
trainingRemark: '道岔单锁功能',
|
||||
trainingRemark: '锁定单个道岔,阻止转换',
|
||||
trainingType: 'Switch',
|
||||
productTypes: ['01', '02'],
|
||||
stepVOList: [
|
||||
@ -505,7 +505,7 @@ export default {
|
||||
operateType: 'Switch_Single_Unlock',
|
||||
skinCode: '02',
|
||||
trainingName: '道岔单解({7})',
|
||||
trainingRemark: '道岔单解功能',
|
||||
trainingRemark: '取消对单个道岔的锁定,道岔可以转换',
|
||||
trainingType: 'Switch',
|
||||
productTypes: ['01', '02'],
|
||||
stepVOList: [
|
||||
@ -522,7 +522,7 @@ export default {
|
||||
operateType: 'Switch_Block',
|
||||
skinCode: '02',
|
||||
trainingName: '道岔封锁({7})',
|
||||
trainingRemark: '道岔封锁功能',
|
||||
trainingRemark: '禁止通过道岔排列进路,但道岔可通过转换道岔命令进行位置转换。',
|
||||
trainingType: 'Switch',
|
||||
productTypes: ['01', '02'],
|
||||
stepVOList: [
|
||||
@ -536,7 +536,7 @@ export default {
|
||||
operateType: 'Switch_Unblock',
|
||||
skinCode: '02',
|
||||
trainingName: '道岔解封({7})',
|
||||
trainingRemark: '道岔解封功能',
|
||||
trainingRemark: '允许通过道岔排列进路',
|
||||
trainingType: 'Switch',
|
||||
productTypes: ['01', '02'],
|
||||
stepVOList: [
|
||||
@ -553,7 +553,7 @@ export default {
|
||||
operateType: 'Switch_Turn',
|
||||
skinCode: '02',
|
||||
trainingName: '道岔转动({7})',
|
||||
trainingRemark: '道岔转动功能({15}转{16})',
|
||||
trainingRemark: '转换道岔至{16}(道岔区段逻辑空闲;道岔没有被锁闭(没有被进路、保护区段、侧防征用);道岔没有挤岔。道岔没有(单独)锁定。)',
|
||||
trainingType: 'Switch',
|
||||
productTypes: ['01', '02'],
|
||||
stepVOList: [
|
||||
@ -567,7 +567,7 @@ export default {
|
||||
operateType: 'Switch_Fault_Unlock',
|
||||
skinCode: '02',
|
||||
trainingName: '道岔区段故障解锁({7})',
|
||||
trainingRemark: '道岔区段故障解锁功能',
|
||||
trainingRemark: '列车通过进路时,因进路中设备故障,无法正常解锁时,需采用故障解锁使未解锁的部分解锁',
|
||||
trainingType: 'Switch',
|
||||
productTypes: ['01', '02'],
|
||||
stepVOList: [
|
||||
@ -584,7 +584,7 @@ export default {
|
||||
operateType: 'Switch_Axle_Pre_Reset',
|
||||
skinCode: '02',
|
||||
trainingName: '道岔计轴预复位({7})',
|
||||
trainingRemark: '道岔计轴预复位功能',
|
||||
trainingRemark: '预复位是在计轴故障时预重置计轴区段',
|
||||
trainingType: 'Switch',
|
||||
productTypes: ['01'],
|
||||
stepVOList: [
|
||||
@ -601,7 +601,7 @@ export default {
|
||||
operateType: 'Switch_Cut_Off',
|
||||
skinCode: '02',
|
||||
trainingName: '道岔区段切除({7})',
|
||||
trainingRemark: '道岔区段切除',
|
||||
trainingRemark: '对某一计轴设置切除状态,ATS不再使用该计轴的占用出清状态变化跟踪列车',
|
||||
trainingType: 'Switch',
|
||||
productTypes: ['01', '02'],
|
||||
stepVOList: [
|
||||
@ -615,7 +615,7 @@ export default {
|
||||
operateType: 'Switch_Active',
|
||||
skinCode: '02',
|
||||
trainingName: '道岔区段激活({7})',
|
||||
trainingRemark: '道岔区段激活功能',
|
||||
trainingRemark: '取消某一计轴上被设置的切除状态,ATS重新使用该计轴的占用出清状态变化跟踪列车',
|
||||
trainingType: 'Switch',
|
||||
productTypes: ['01', '02'],
|
||||
stepVOList: [
|
||||
@ -629,7 +629,7 @@ export default {
|
||||
operateType: 'Switch_Set_Limit_Speed',
|
||||
skinCode: '02',
|
||||
trainingName: '道岔区段设置限速({7})',
|
||||
trainingRemark: '道岔区段设置限速功能(限速值:5)',
|
||||
trainingRemark: '对道岔设置限速(限速值:5)',
|
||||
trainingType: 'Switch',
|
||||
productTypes: ['01', '02'],
|
||||
stepVOList: [
|
||||
@ -648,7 +648,7 @@ export default {
|
||||
operateType: 'Switch_Cancel_Limit_Speed',
|
||||
skinCode: '02',
|
||||
trainingName: '道岔区段取消限速({7})',
|
||||
trainingRemark: '道岔区段取消限速功能',
|
||||
trainingRemark: '取消对道岔的限速',
|
||||
trainingType: 'Switch',
|
||||
productTypes: ['01', '02'],
|
||||
stepVOList: [
|
||||
@ -667,7 +667,7 @@ export default {
|
||||
operateType: 'Signal_Set_Route',
|
||||
skinCode: '02',
|
||||
trainingName: '进路选排({3})',
|
||||
trainingRemark: '选择排列进路',
|
||||
trainingRemark: '进路:列车在站内运行时所经由的路径。依据进路是否建立,可以将进路状态分成锁闭状态和解锁状态。建立了进路,即指利用该进路排列了进路,称该进路处于锁闭状态。进路处于锁闭状态时,进路上的所有道岔被锁闭在规定位置(不能转换位置),防护该进路的信号机才能开放,列车才可能在该进路上运行。',
|
||||
trainingType: 'Signal',
|
||||
productTypes: ['01', '02'],
|
||||
stepVOList: [
|
||||
@ -683,7 +683,7 @@ export default {
|
||||
operateType: 'Signal_Find_Routes_Status',
|
||||
skinCode: '04',
|
||||
trainingName: '查询进路控制模式({5} 信号机)',
|
||||
trainingRemark: '查询进路控制模式',
|
||||
trainingRemark: '查看某个信号机为始端的进路是否处于ATS自动触发状态',
|
||||
trainingType:'Signal',
|
||||
productTypes: ['01', '02'],
|
||||
stepVOList: [
|
||||
@ -697,7 +697,7 @@ export default {
|
||||
operateType: 'Signal_Cancel_Route',
|
||||
skinCode: '02',
|
||||
trainingName: '进路取消({3})',
|
||||
trainingRemark: '进路取消',
|
||||
trainingRemark: '当列车运行通过锁闭的进路后,该进路将被解锁而处于解锁状态。解锁状态时进路上道岔随时有转换位置的可能,列车在该进路上运行将极其危险,因而一般不允许列车在没有锁闭的进路上运行。',
|
||||
trainingType: 'Signal',
|
||||
productTypes: ['02'],
|
||||
stepVOList: [
|
||||
@ -712,7 +712,7 @@ export default {
|
||||
operateType: 'Signal_Cancel_Route',
|
||||
skinCode: '02',
|
||||
trainingName: '进路取消({3})',
|
||||
trainingRemark: '进路取消',
|
||||
trainingRemark: '当列车运行通过锁闭的进路后,该进路将被解锁而处于解锁状态。解锁状态时进路上道岔随时有转换位置的可能,列车在该进路上运行将极其危险,因而一般不允许列车在没有锁闭的进路上运行。',
|
||||
trainingType: 'Signal',
|
||||
productTypes: ['01'],
|
||||
stepVOList: [
|
||||
@ -726,7 +726,7 @@ export default {
|
||||
operateType: 'Signal_Block',
|
||||
skinCode: '02',
|
||||
trainingName: '信号封闭({5})',
|
||||
trainingRemark: '信号封闭',
|
||||
trainingRemark: '封锁在关闭状态下的信号机,信号机被封锁后,将不能开放主信号',
|
||||
trainingType: 'Signal',
|
||||
productTypes: ['01', '02'],
|
||||
stepVOList: [
|
||||
@ -740,7 +740,7 @@ export default {
|
||||
operateType: 'Signal_Unblock',
|
||||
skinCode: '02',
|
||||
trainingName: '信号解封({5})',
|
||||
trainingRemark: '信号解封',
|
||||
trainingRemark: '取消对关闭状态下的信号机的封锁',
|
||||
trainingType: 'Signal',
|
||||
productTypes: ['01', '02'],
|
||||
stepVOList: [
|
||||
@ -758,7 +758,7 @@ export default {
|
||||
operateType: 'Signal_Close_Signal',
|
||||
skinCode: '02',
|
||||
trainingName: '信号关灯({5})',
|
||||
trainingRemark: '信号关灯',
|
||||
trainingRemark: '设置信号机为关闭状态',
|
||||
trainingType: 'Signal',
|
||||
productTypes: ['01', '02'],
|
||||
stepVOList: [
|
||||
@ -773,7 +773,7 @@ export default {
|
||||
operateType: 'Signal_Reopen_Signal',
|
||||
skinCode: '02',
|
||||
trainingName: '信号重开({5})',
|
||||
trainingRemark: '信号重开',
|
||||
trainingRemark: '信号由于故障(如锁闭的进路区段故障)或人工干预导致信号关闭,此后调度运营想再次开放此信号(前提是信号开放的条件具备,如故障区段已恢复),可以执行信号重开使信号重新开放',
|
||||
trainingType: 'Signal',
|
||||
productTypes: ['01', '02'],
|
||||
stepVOList: [
|
||||
@ -788,7 +788,7 @@ export default {
|
||||
operateType: 'Signal_Set_Guide',
|
||||
skinCode: '02',
|
||||
trainingName: '进路引导({3})',
|
||||
trainingRemark: '进路办理信号引导',
|
||||
trainingRemark: '接车进路上轨道电路故障占用或进站信号机无法开放允许灯光时,以引导进路方式接车。',
|
||||
trainingType: 'Signal',
|
||||
productTypes: ['01'],
|
||||
stepVOList: [
|
||||
@ -805,7 +805,7 @@ export default {
|
||||
operateType: 'Signal_Set_Guide',
|
||||
skinCode: '02',
|
||||
trainingName: '引导进路办理({3})',
|
||||
trainingRemark: '进路办理信号引导',
|
||||
trainingRemark: '接车进路上轨道电路故障占用或进站信号机无法开放允许灯光时,以引导进路方式接车。',
|
||||
trainingType: 'Signal',
|
||||
productTypes: ['02'],
|
||||
stepVOList: [
|
||||
@ -822,7 +822,7 @@ export default {
|
||||
operateType: 'Signal_Open_Auto_Setting',
|
||||
skinCode: '02',
|
||||
trainingName: '进路交ATS自动控({3})',
|
||||
trainingRemark: '进路交ATS自动控',
|
||||
trainingRemark: '将某个信号机为始端的某条进路设置为由ATS自动触发使能',
|
||||
trainingType: 'Signal',
|
||||
productTypes: ['02'],
|
||||
stepVOList: [
|
||||
@ -837,7 +837,7 @@ export default {
|
||||
operateType: 'Signal_Close_Auto_Setting',
|
||||
skinCode: '02',
|
||||
trainingName: '进路交人工控({3})',
|
||||
trainingRemark: '进路交人工控',
|
||||
trainingRemark: '将某个信号机为始端的进路取消ATS自动触发使能转为人工办理',
|
||||
trainingType: 'Signal',
|
||||
productTypes: ['02'],
|
||||
stepVOList: [
|
||||
@ -846,27 +846,27 @@ export default {
|
||||
{ deviceType: '04', orderNum: 3, operateCode: '314', tip: '鼠标左键点击【确定】按钮', val: '{4}' }
|
||||
]
|
||||
},
|
||||
{
|
||||
maxDuration: 15,
|
||||
minDuration: 8,
|
||||
operateType: 'Signal_Find_Routes_Status',
|
||||
skinCode: '02',
|
||||
trainingName: '查询进路控制状态({5})',
|
||||
trainingRemark: '查询进路控制状态',
|
||||
trainingType: 'Signal',
|
||||
productTypes: ['02'],
|
||||
stepVOList: [
|
||||
{ deviceType: '04', orderNum: 1, operateCode: '316', tip: '鼠标右键菜单选择【查询进路控制模式】' },
|
||||
{ deviceType: '04', orderNum: 2, operateCode: '316', tip: '鼠标左键点击【确定】按钮' }
|
||||
]
|
||||
},
|
||||
// {
|
||||
// maxDuration: 15,
|
||||
// minDuration: 8,
|
||||
// operateType: 'Signal_Find_Routes_Status',
|
||||
// skinCode: '02',
|
||||
// trainingName: '查询进路控制状态({5})',
|
||||
// trainingRemark: '查询进路控制状态',
|
||||
// trainingType: 'Signal',
|
||||
// productTypes: ['02'],
|
||||
// stepVOList: [
|
||||
// { deviceType: '04', orderNum: 1, operateCode: '316', tip: '鼠标右键菜单选择【查询进路控制模式】' },
|
||||
// { deviceType: '04', orderNum: 2, operateCode: '316', tip: '鼠标左键点击【确定】按钮' }
|
||||
// ]
|
||||
// },
|
||||
{
|
||||
maxDuration: 15,
|
||||
minDuration: 8,
|
||||
operateType: 'Signal_Set_CI_Auto',
|
||||
skinCode: '02',
|
||||
trainingName: '设置联锁自动进路({5})',
|
||||
trainingRemark: '设置联锁自动进路',
|
||||
trainingRemark: '进行联锁进路排列,为NRM驾驶模式及RM驾驶模式的列车提供行车的进路',
|
||||
trainingType: 'Signal',
|
||||
productTypes: ['01'],
|
||||
stepVOList: [
|
||||
@ -880,7 +880,7 @@ export default {
|
||||
operateType: 'Signal_Cancel_CI_Auto',
|
||||
skinCode: '02',
|
||||
trainingName: '取消联锁自动进路({5})',
|
||||
trainingRemark: '取消联锁自动进路',
|
||||
trainingRemark: '取消联锁进路排列',
|
||||
trainingType: 'Signal',
|
||||
productTypes: ['01'],
|
||||
stepVOList: [
|
||||
@ -894,7 +894,7 @@ export default {
|
||||
operateType: 'Signal_Set_CI_Auto_Trigger',
|
||||
skinCode: '02',
|
||||
trainingName: '设置联锁自动触发({5})',
|
||||
trainingRemark: '设置联锁自动触发',
|
||||
trainingRemark: '设置单架信号机处于联锁自动排列进路',
|
||||
trainingType: 'Signal',
|
||||
productTypes: ['01'],
|
||||
stepVOList: [
|
||||
@ -908,7 +908,7 @@ export default {
|
||||
operateType: 'Signal_Cancel_CI_Auto_Trigger',
|
||||
skinCode: '02',
|
||||
trainingName: '取消联锁自动触发({5})',
|
||||
trainingRemark: '取消联锁自动触发',
|
||||
trainingRemark: '取消单架信号机处于联锁自动排列进路',
|
||||
trainingType: 'Signal',
|
||||
productTypes: ['01'],
|
||||
stepVOList: [
|
||||
|
@ -6,7 +6,7 @@ export default {
|
||||
operateType: 'Stand_Set_Hold_Train',
|
||||
skinCode: '06',
|
||||
trainingName: '扣车({10}-{12} 站台)',
|
||||
trainingRemark: '设置扣车功能',
|
||||
trainingRemark: '对指定站台设置扣车,设置后当列车运行至该站台时,将会执行扣车,列车不再行驶',
|
||||
trainingType: 'Stand',
|
||||
productTypes: ['01', '02'], // 产品类型 01 现地 02 行调
|
||||
stepVOList: [
|
||||
@ -21,7 +21,7 @@ export default {
|
||||
operateType: 'Stand_Cancel_Hold_Train',
|
||||
skinCode: '06',
|
||||
trainingName: '取消扣车({10}-{12} 站台)',
|
||||
trainingRemark: '取消扣车功能',
|
||||
trainingRemark: '对指定站台取消之前设置的扣车',
|
||||
trainingType: 'Stand',
|
||||
productTypes: ['01', '02'], // 产品类型 01 现地 02 行调
|
||||
stepVOList: [
|
||||
@ -64,7 +64,7 @@ export default {
|
||||
operateType: 'Stand_Early_Depart',
|
||||
skinCode: '06',
|
||||
trainingName: '提前发车({10}-{12}站台)',
|
||||
trainingRemark: '提前发车功能',
|
||||
trainingRemark: '对指定站台设置提前发车命令,允许该站台当前停站列车立即发车,不论是否还剩余停站时间',
|
||||
trainingType: 'Stand',
|
||||
productTypes: ['01', '02'],
|
||||
stepVOList: [
|
||||
@ -79,7 +79,7 @@ export default {
|
||||
operateType: 'Stand_Set_Jump_Stop',
|
||||
skinCode: '06',
|
||||
trainingName: '设置跳停({10}-{12}站台)',
|
||||
trainingRemark: '设置跳停功能',
|
||||
trainingRemark: '对指定站台设置跳停命令,命令后续列车不停站通过该站台',
|
||||
trainingType: 'Stand',
|
||||
productTypes: ['02'],
|
||||
stepVOList: [
|
||||
@ -93,7 +93,7 @@ export default {
|
||||
operateType: 'Stand_Set_Jump_Stop',
|
||||
skinCode: '06',
|
||||
trainingName: '设置跳停({10}-{12}站台)',
|
||||
trainingRemark: '设置指定001号列车跳停功能',
|
||||
trainingRemark: '对指定站台指定列车设置跳停命令,命令该列车不停站通过该站台(001号车)',
|
||||
trainingType: 'Stand',
|
||||
productTypes: ['02'],
|
||||
stepVOList: [
|
||||
@ -109,7 +109,7 @@ export default {
|
||||
operateType: 'Stand_Cancel_Jump_Stop',
|
||||
skinCode: '06',
|
||||
trainingName: '取消跳停({10}-{12}站台)',
|
||||
trainingRemark: '设置取消跳停功能',
|
||||
trainingRemark: '对指定站台取消之前设置的跳停命令',
|
||||
trainingType: 'Stand',
|
||||
productTypes: ['02'],
|
||||
stepVOList: [
|
||||
@ -138,7 +138,7 @@ export default {
|
||||
operateType: 'Stand_Set_Park_Time',
|
||||
skinCode: '06',
|
||||
trainingName: '设置停站时间({10}-{12}站台)',
|
||||
trainingRemark: '设置停站时间(人工, 20秒, 一直有效)',
|
||||
trainingRemark: '对某一指定站台设置列车停站时间 (人工, 20秒, 一直有效)',
|
||||
trainingType: 'Stand',
|
||||
productTypes: ['02'],
|
||||
stepVOList: [
|
||||
@ -155,7 +155,7 @@ export default {
|
||||
operateType: 'Stand_Set_Park_Time',
|
||||
skinCode: '06',
|
||||
trainingName: '设置停站时间({10}-{12}站台)',
|
||||
trainingRemark: '设置停站时间(人工, 20秒, 一次有效)',
|
||||
trainingRemark: '对某一指定站台设置列车停站时间 (人工, 20秒, 一次有效)',
|
||||
trainingType: 'Stand',
|
||||
productTypes: ['02'],
|
||||
stepVOList: [
|
||||
@ -171,7 +171,7 @@ export default {
|
||||
operateType: 'Stand_Set_Run_Time',
|
||||
skinCode: '06',
|
||||
trainingName: '设置运行等级({10}-{12} 站台)',
|
||||
trainingRemark: '设置运行等级(设置区间 运行等级1,运行时间为115,一直有效)',
|
||||
trainingRemark: '设置某一指定站台到下一站台的区间运行时间 (设置区间 运行等级1,运行时间为115,一直有效)',
|
||||
trainingType: 'Stand',
|
||||
productTypes: ['02'],
|
||||
stepVOList: [
|
||||
@ -232,7 +232,7 @@ export default {
|
||||
operateType: 'Stand_View_Status',
|
||||
skinCode: '06',
|
||||
trainingName: '站台详细信息({10}-{12}站台)',
|
||||
trainingRemark: '站台详细信息功能',
|
||||
trainingRemark: '用于查看站台上已设置的命令信息,包括人工设置的停站时间、运行等级、扣车命令、跳停命令等',
|
||||
trainingType: 'Stand',
|
||||
productTypes: ['01', '02'],
|
||||
stepVOList: [
|
||||
@ -246,7 +246,7 @@ export default {
|
||||
operateType: 'Section_Fault_Unlock',
|
||||
skinCode: '06',
|
||||
trainingName: '区故解({8}{9})',
|
||||
trainingRemark: '区故解',
|
||||
trainingRemark: '列车通过进路时,因进路中设备故障,无法正常解锁时,需采用故障解锁使未解锁的部分解锁',
|
||||
trainingType: 'Section',
|
||||
productTypes: ['01'],
|
||||
stepVOList: [
|
||||
@ -263,7 +263,7 @@ export default {
|
||||
operateType: 'Section_Cut_Off',
|
||||
skinCode: '06',
|
||||
trainingName: '区段跟踪切除({8}{9})',
|
||||
trainingRemark: '区段跟踪切除',
|
||||
trainingRemark: '对某一计轴设置切除状态,ATS不再使用该计轴的占用出清状态变化跟踪列车',
|
||||
trainingType: 'Section',
|
||||
productTypes: ['01', '02'],
|
||||
stepVOList: [
|
||||
@ -278,7 +278,7 @@ export default {
|
||||
operateType: 'Section_Active',
|
||||
skinCode: '06',
|
||||
trainingName: '区段跟踪激活({8}{9})',
|
||||
trainingRemark: '区段跟踪激活功能',
|
||||
trainingRemark: '取消某一计轴上被设置的切除状态,ATS重新使用该计轴的占用出清状态变化跟踪列车',
|
||||
trainingType: 'Section',
|
||||
productTypes: ['01', '02'],
|
||||
stepVOList: [
|
||||
@ -293,7 +293,7 @@ export default {
|
||||
operateType: 'Section_Set_Limit_Speed',
|
||||
skinCode: '06',
|
||||
trainingName: '设置临时限速({8}{9})',
|
||||
trainingRemark: '设置临时限速功能(限速值:5)',
|
||||
trainingRemark: '对区段设置限速(限速值:5)',
|
||||
trainingType: 'Section',
|
||||
productTypes: ['02'],
|
||||
stepVOList: [
|
||||
@ -312,7 +312,7 @@ export default {
|
||||
operateType: 'Section_Cancel_Limit_Speed',
|
||||
skinCode: '06',
|
||||
trainingName: '取消临时限速({8}{9})',
|
||||
trainingRemark: '取消临时限速功能',
|
||||
trainingRemark: '取消对区段的限速',
|
||||
trainingType: 'Section',
|
||||
productTypes: ['02'],
|
||||
stepVOList: [
|
||||
@ -331,7 +331,7 @@ export default {
|
||||
operateType: 'Section_Block',
|
||||
skinCode: '06',
|
||||
trainingName: '封锁({8}{9})',
|
||||
trainingRemark: '区段封锁功能',
|
||||
trainingRemark: '封锁后,禁止通过该区段排列进路',
|
||||
trainingType: 'Section',
|
||||
productTypes: ['01'],
|
||||
stepVOList: [
|
||||
@ -345,7 +345,7 @@ export default {
|
||||
operateType: 'Section_Unblock',
|
||||
skinCode: '06',
|
||||
trainingName: '解封({8}{9})',
|
||||
trainingRemark: '区段解封功能',
|
||||
trainingRemark: '允许通过该区段排列进路',
|
||||
trainingType: 'Section',
|
||||
productTypes: ['01'],
|
||||
stepVOList: [
|
||||
@ -362,7 +362,7 @@ export default {
|
||||
operateType: 'Section_Confirm_Axis_Valid',
|
||||
skinCode: '06',
|
||||
trainingName: '确认计轴有效({8}{9})',
|
||||
trainingRemark: '确认计轴有效功能',
|
||||
trainingRemark: '发送命令给ZC设备,确认某个被报告失效的计轴已被修复,要求ZC将该计轴置为有效状态。',
|
||||
trainingType: 'Section',
|
||||
productTypes: ['02'],
|
||||
stepVOList: [
|
||||
@ -410,7 +410,7 @@ export default {
|
||||
operateType: 'Switch_Cut_Off',
|
||||
skinCode: '06',
|
||||
trainingName: '区段切除({7})',
|
||||
trainingRemark: '区段切除功能',
|
||||
trainingRemark: '对某一计轴设置切除状态,ATS不再使用该计轴的占用出清状态变化跟踪列车',
|
||||
trainingType: 'Switch',
|
||||
productTypes: ['02'],
|
||||
stepVOList: [
|
||||
@ -424,7 +424,7 @@ export default {
|
||||
operateType: 'Switch_Active',
|
||||
skinCode: '06',
|
||||
trainingName: '区段激活({7})',
|
||||
trainingRemark: '区段激活功能',
|
||||
trainingRemark: '取消某一计轴上被设置的切除状态,ATS重新使用该计轴的占用出清状态变化跟踪列车',
|
||||
trainingType: 'Switch',
|
||||
productTypes: ['02'],
|
||||
stepVOList: [
|
||||
@ -438,7 +438,7 @@ export default {
|
||||
operateType: 'Switch_Confirm_Axis_Valid',
|
||||
skinCode: '06',
|
||||
trainingName: '确认计轴有效({7})',
|
||||
trainingRemark: '确认计轴有效功能',
|
||||
trainingRemark: '发送命令给ZC设备,确认某个被报告失效的计轴已被修复,要求ZC将该计轴置为有效状态。',
|
||||
trainingType: 'Switch',
|
||||
productTypes: ['02'],
|
||||
stepVOList: [
|
||||
@ -456,7 +456,7 @@ export default {
|
||||
operateType: 'Switch_Single_Lock',
|
||||
skinCode: '06',
|
||||
trainingName: '道岔单锁({7})',
|
||||
trainingRemark: '道岔单锁功能',
|
||||
trainingRemark: '锁定单个道岔,阻止转换',
|
||||
trainingType: 'Switch',
|
||||
productTypes: ['01'],
|
||||
stepVOList: [
|
||||
@ -471,7 +471,7 @@ export default {
|
||||
operateType: 'Switch_Single_Unlock',
|
||||
skinCode: '06',
|
||||
trainingName: '道岔单解({7})',
|
||||
trainingRemark: '道岔单解功能',
|
||||
trainingRemark: '取消对单个道岔的锁定,道岔可以转换',
|
||||
trainingType: 'Switch',
|
||||
productTypes: ['01'],
|
||||
stepVOList: [
|
||||
@ -488,7 +488,7 @@ export default {
|
||||
operateType: 'Switch_Block',
|
||||
skinCode: '06',
|
||||
trainingName: '道岔封锁({7})',
|
||||
trainingRemark: '道岔封锁功能',
|
||||
trainingRemark: '禁止通过道岔排列进路,但道岔可通过转换道岔命令进行位置转换。',
|
||||
trainingType: 'Switch',
|
||||
productTypes: ['01'],
|
||||
stepVOList: [
|
||||
@ -503,7 +503,7 @@ export default {
|
||||
operateType: 'Switch_Unblock',
|
||||
skinCode: '06',
|
||||
trainingName: '道岔解封({7})',
|
||||
trainingRemark: '道岔解封功能',
|
||||
trainingRemark: '允许通过道岔排列进路',
|
||||
trainingType: 'Switch',
|
||||
productTypes: ['01'],
|
||||
stepVOList: [
|
||||
@ -520,7 +520,7 @@ export default {
|
||||
operateType: 'Switch_Set_Limit_Speed',
|
||||
skinCode: '06',
|
||||
trainingName: '设置临时限速({7})',
|
||||
trainingRemark: '设置临时限速功能(限速值:10)',
|
||||
trainingRemark: '对道岔设置限速(限速值:10)',
|
||||
trainingType: 'Switch',
|
||||
productTypes: ['01', '02'],
|
||||
stepVOList: [
|
||||
@ -539,7 +539,7 @@ export default {
|
||||
operateType: 'Switch_Set_Limit_Speed',
|
||||
skinCode: '06',
|
||||
trainingName: '设置临时限速({7})',
|
||||
trainingRemark: '设置临时限速功能-取消临时限速(限速值:不限速)',
|
||||
trainingRemark: '取消对道岔的限速(限速值:不限速)',
|
||||
trainingType: 'Switch',
|
||||
productTypes: ['01', '02'],
|
||||
stepVOList: [
|
||||
@ -558,7 +558,7 @@ export default {
|
||||
operateType: 'Signal_Set_Route',
|
||||
skinCode: '06',
|
||||
trainingName: '排列进路({28})',
|
||||
trainingRemark: '排列进路',
|
||||
trainingRemark: '进路:列车在站内运行时所经由的路径。依据进路是否建立,可以将进路状态分成锁闭状态和解锁状态。建立了进路,即指利用该进路排列了进路,称该进路处于锁闭状态。进路处于锁闭状态时,进路上的所有道岔被锁闭在规定位置(不能转换位置),防护该进路的信号机才能开放,列车才可能在该进路上运行。',
|
||||
trainingType: 'Signal',
|
||||
productTypes: ['01', '02'],
|
||||
stepVOList: [
|
||||
@ -579,7 +579,7 @@ export default {
|
||||
operateType: 'Signal_Cancel_Route',
|
||||
skinCode: '06',
|
||||
trainingName: '取消列车进路({3})',
|
||||
trainingRemark: '取消列车进路',
|
||||
trainingRemark: '当列车运行通过锁闭的进路后,该进路将被解锁而处于解锁状态。解锁状态时进路上道岔随时有转换位置的可能,列车在该进路上运行将极其危险,因而一般不允许列车在没有锁闭的进路上运行。',
|
||||
trainingType: 'Signal',
|
||||
productTypes: ['01', '02'],
|
||||
stepVOList: [
|
||||
@ -594,7 +594,7 @@ export default {
|
||||
operateType: 'Signal_Reopen_Signal',
|
||||
skinCode: '06',
|
||||
trainingName: '信号重开({5})',
|
||||
trainingRemark: '信号重开功能',
|
||||
trainingRemark: '信号由于故障(如锁闭的进路区段故障)或人工干预导致信号关闭,此后调度运营想再次开放此信号(前提是信号开放的条件具备,如故障区段已恢复),可以执行信号重开使信号重新开放',
|
||||
trainingType: 'Signal',
|
||||
productTypes: ['01', '02'],
|
||||
stepVOList: [
|
||||
@ -609,7 +609,7 @@ export default {
|
||||
operateType: 'Signal_Open_Auto_Setting',
|
||||
skinCode: '06',
|
||||
trainingName: '进路交自动控({28})',
|
||||
trainingRemark: '进路交自动控',
|
||||
trainingRemark: '将某个信号机为始端的某条进路设置为由ATS自动触发使能',
|
||||
trainingType: 'Signal',
|
||||
productTypes: ['01', '02'],
|
||||
stepVOList: [
|
||||
@ -625,7 +625,7 @@ export default {
|
||||
operateType: 'Signal_Close_Auto_Setting',
|
||||
skinCode: '06',
|
||||
trainingName: '进路交人工控({28})',
|
||||
trainingRemark: '进路交人工控',
|
||||
trainingRemark: '将某个信号机为始端的进路取消ATS自动触发使能转为人工办理',
|
||||
trainingType: 'Signal',
|
||||
productTypes: ['01', '02'],
|
||||
stepVOList: [
|
||||
@ -641,7 +641,7 @@ export default {
|
||||
operateType: 'Signal_Set_CI_Auto',
|
||||
skinCode: '06',
|
||||
trainingName: '设置自动通过进路({5})',
|
||||
trainingRemark: '设置自动通过进路',
|
||||
trainingRemark: '向某个未开放信号机设置通过模式',
|
||||
trainingType: 'Signal',
|
||||
productTypes: ['01', '02'],
|
||||
stepVOList: [
|
||||
@ -672,7 +672,7 @@ export default {
|
||||
operateType: 'Signal_Cancel_CI_Auto',
|
||||
skinCode: '06',
|
||||
trainingName: '取消自动通过进路({5})',
|
||||
trainingRemark: '取消自动通过进路',
|
||||
trainingRemark: '向某个未开放信号机取消通过模式',
|
||||
trainingType: 'Signal',
|
||||
productTypes: ['01', '02'],
|
||||
stepVOList: [
|
||||
@ -716,7 +716,7 @@ export default {
|
||||
operateType: 'Signal_Set_Guide',
|
||||
skinCode: '06',
|
||||
trainingName: '引导({5})',
|
||||
trainingRemark: '引导办理',
|
||||
trainingRemark: '接车进路上轨道电路故障占用或进站信号机无法开放允许灯光时,以引导进路方式接车。',
|
||||
trainingType: 'Signal',
|
||||
productTypes: ['01'],
|
||||
stepVOList: [
|
||||
@ -732,7 +732,7 @@ export default {
|
||||
operateType: 'Signal_Block',
|
||||
skinCode: '06',
|
||||
trainingName: '封锁({5})',
|
||||
trainingRemark: '信号机封锁功能',
|
||||
trainingRemark: '封锁在关闭状态下的信号机,信号机被封锁后,将不能开放主信号',
|
||||
trainingType: 'Signal',
|
||||
productTypes: ['01'],
|
||||
stepVOList: [
|
||||
@ -747,7 +747,7 @@ export default {
|
||||
operateType: 'Signal_Unblock',
|
||||
skinCode: '06',
|
||||
trainingName: '解封({5})',
|
||||
trainingRemark: '信号机解封功能',
|
||||
trainingRemark: '取消对关闭状态下的信号机的封锁',
|
||||
trainingType: 'Signal',
|
||||
productTypes: ['01'],
|
||||
stepVOList: [
|
||||
@ -764,7 +764,7 @@ export default {
|
||||
operateType: 'Signal_Find_Routes_Status',
|
||||
skinCode: '06',
|
||||
trainingName: '查询进路控制状态({5})',
|
||||
trainingRemark: '查询进路控制状态',
|
||||
trainingRemark: '查看某个信号机为始端的进路是否处于ATS自动触发状态',
|
||||
trainingType: 'Signal',
|
||||
productTypes: ['01', '02'],
|
||||
stepVOList: [
|
||||
@ -779,7 +779,8 @@ export default {
|
||||
operateType: 'CM_Apply_For_Center_Control',
|
||||
skinCode: '06',
|
||||
trainingName: '请求遥控({1})',
|
||||
trainingRemark: '控制权限转换,站控转中控',
|
||||
trainingRemark: '控制权收回行调办理时使用,行调获得控制权后,行调可对设备进行操作,集中站无法对设备进行操作',
|
||||
// 控制权限转换,站控转中控
|
||||
trainingType: 'ControlConvertMenu',
|
||||
productTypes: ['01', '02'], // 行调请求中控
|
||||
stepVOList: [
|
||||
@ -793,7 +794,8 @@ export default {
|
||||
operateType: 'CM_Apply_For_Station_Control',
|
||||
skinCode: '06',
|
||||
trainingName: '请求站控({1})',
|
||||
trainingRemark: '控制权限转换,中控转站控',
|
||||
trainingRemark: 'ATS 系统的控制模式有中控和站控两种控制模式,且某一时刻只能为其中的一种模式,在信号系统工作正常时,一般使用ATS系统的中控模式;当个别车站有表示故障或信号设备故障(如计轴故障等),出问题的车站可以转为站控,请求站控:请求控制权下放车站办理,需行调同意后方可转为站控,转为站控后,集中站可对设备进行操作。',
|
||||
// 控制权限转换,中控转站控
|
||||
trainingType: 'ControlConvertMenu',
|
||||
productTypes: ['01', '02'], // 现地请求站控
|
||||
stepVOList: [
|
||||
@ -807,7 +809,7 @@ export default {
|
||||
operateType: 'CM_Emergency_Station_Control',
|
||||
skinCode: '06',
|
||||
trainingName: '紧急站控({1})',
|
||||
trainingRemark: '控制权限转换,中控转紧急站控',
|
||||
trainingRemark: '紧急情况下,车站可以直接切换成紧急站控状态,直接和联锁下位机通讯',
|
||||
trainingType: 'ControlConvertMenu',
|
||||
productTypes: ['01', '02'],
|
||||
stepVOList: [
|
||||
|
@ -69,7 +69,7 @@
|
||||
</el-submenu>
|
||||
</template>
|
||||
</template>
|
||||
<div class="rightGroup">
|
||||
<div v-if="!thirdLogin" class="rightGroup">
|
||||
<quick-entry ref="quickEntry" />
|
||||
<user-logout ref="userLogout" />
|
||||
</div>
|
||||
@ -81,6 +81,7 @@ import { mapGetters } from 'vuex';
|
||||
import UserLogout from './Logout';
|
||||
import QuickEntry from './Entry';
|
||||
import SystemTitle from './Title';
|
||||
import {getSessionStorage } from '@/utils/auth';
|
||||
|
||||
export default {
|
||||
components: {
|
||||
@ -93,7 +94,8 @@ export default {
|
||||
routes: [],
|
||||
isShow: false,
|
||||
activePath: '',
|
||||
index: ''
|
||||
index: '',
|
||||
thirdLogin:''
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
@ -101,6 +103,7 @@ export default {
|
||||
'avatar',
|
||||
'routers'
|
||||
])
|
||||
|
||||
},
|
||||
watch: {
|
||||
$route(val) {
|
||||
@ -112,6 +115,7 @@ export default {
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.thirdLogin = getSessionStorage('thirdLogin');
|
||||
this.routes = this.$router.options.routes;
|
||||
if (this.$route.fullPath.indexOf('design/usermap') >= 0) {
|
||||
this.activePath = '/design/usermap/home';
|
||||
|
@ -7,7 +7,7 @@ import 'nprogress/nprogress.css';
|
||||
import { setToken, getToken, removeToken, getSessionStorage } from '@/utils/auth';
|
||||
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']; // 登陆页面
|
||||
|
||||
|
@ -59,6 +59,8 @@ const CommandDictionaryDetail = () => import('@/views/system/commandDictionary/e
|
||||
const configLine = () => import('@/views/system/configLine/index');
|
||||
const Notification = () => import('@/views/system/notification/index');
|
||||
|
||||
const LoginUserControl = () => import('@/views/system/userLoginControl/index');
|
||||
|
||||
const IscsSystem = () => import('@/views/iscs/iscsSystem/index');
|
||||
const IscsDraw = () => import('@/views/iscs/iscsDraw/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 ThirdLogin = () => import('@/views/thirdLogin');
|
||||
|
||||
// import { GenerateRouteProjectList } from '@/scripts/ProjectConfig';
|
||||
// import { getSessionStorage } from '@/utils/auth';
|
||||
|
||||
@ -231,6 +235,11 @@ export const constantRoutes = [
|
||||
component: Demo,
|
||||
hidden: true
|
||||
},
|
||||
{
|
||||
path: '/thirdLogin',
|
||||
component: ThirdLogin,
|
||||
hidden: true
|
||||
},
|
||||
{
|
||||
path: '/demoTraining/:mode',
|
||||
component: DemoTraining,
|
||||
@ -1006,6 +1015,14 @@ export const asyncRouter = [
|
||||
i18n: 'router.userManage'
|
||||
}
|
||||
},
|
||||
{
|
||||
// 用户管理
|
||||
path: 'loginUserManage',
|
||||
component: LoginUserControl,
|
||||
meta: {
|
||||
i18n: 'router.loginUserManage'
|
||||
}
|
||||
},
|
||||
{
|
||||
// 单位管理
|
||||
path: 'companyManage',
|
||||
|
@ -129,7 +129,8 @@ export const IbpOperation = {
|
||||
SXKM: {operate: '10', event: 'SXKM', name: '上行屏蔽门开门'},
|
||||
XXYS: {operate: '09', event: 'XXYS', 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) {
|
||||
commit('setBaseUrl', baseUrl);
|
||||
},
|
||||
setToken({commit}, token) {
|
||||
commit('SET_TOKEN', token);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
@ -2,11 +2,11 @@ export function getBaseUrl() {
|
||||
let BASE_API;
|
||||
if (process.env.NODE_ENV === 'development') {
|
||||
// BASE_API = 'https://joylink.club/jlcloud';
|
||||
BASE_API = 'https://test.joylink.club/jlcloud';
|
||||
// BASE_API = 'https://test.joylink.club/jlcloud';
|
||||
// BASE_API = 'http://192.168.8.107:9000'; // 袁琪
|
||||
// BASE_API = 'http://192.168.3.83: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://b29z135112.zicp.vip';
|
||||
// BASE_API = 'http://2925963m2a.zicp.vip'; // 杜康
|
||||
|
@ -34,7 +34,7 @@
|
||||
/>
|
||||
</el-select>
|
||||
</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-option
|
||||
v-for="item in sectionList"
|
||||
@ -74,7 +74,9 @@ export default {
|
||||
{ label: '报警切除', value: 'BJQC' },
|
||||
{ label: '下行屏蔽门开门', value: 'XXKM' },
|
||||
{ label: '上行屏蔽门开门', value: 'SXKM' },
|
||||
{ label: '计轴复位', value: 'PRERESET' }
|
||||
{ label: '计轴复位', value: 'PRERESET' },
|
||||
{ label: '计轴预复位', value: 'AXLE_PRE_RESET' },
|
||||
{ label: '计轴预复零', value: 'PRERESET_Z' },
|
||||
],
|
||||
form: {
|
||||
code: '',
|
||||
|
@ -28,6 +28,8 @@ import { getSimulationInfoNew, getIbpInitialState } from '@/api/simulation';
|
||||
import BuzzerAudio from '@/assets/buzzer.mp3';
|
||||
import { getStationList } from '@/api/runplan';
|
||||
|
||||
let ctrlKeyPressed = false;
|
||||
let timer = null;
|
||||
export default {
|
||||
name: 'Ibp',
|
||||
props: {
|
||||
@ -118,6 +120,7 @@ export default {
|
||||
}
|
||||
this.ibpDestroy();
|
||||
},
|
||||
preResetBtn: null,
|
||||
methods: {
|
||||
initIbp(offsetX = 0) {
|
||||
this.ibpDestroy();
|
||||
@ -141,9 +144,11 @@ export default {
|
||||
Vue.prototype.$ibp = this.$ibp;
|
||||
this.initClockTime(this.initTime || this.$store.state.socket.simulationTimeSync);
|
||||
this.$ibp.on('contextmenu', this.onContextMenu, this);
|
||||
this.$ibp.on('keyboard', this.onKeyboardAction, this);
|
||||
if (this.$route.query.group) {
|
||||
this.$ibp.on('selected', this.onSelected, this);
|
||||
this.$ibp.on('mouseDown', this.onMouseDown, this);
|
||||
this.$ibp.on('mouseUp', this.onMouseUp, this);
|
||||
}
|
||||
},
|
||||
async show (deviceCode, ibpPart) {
|
||||
@ -191,6 +196,7 @@ export default {
|
||||
this.setIbp(data, ibpDatas);
|
||||
this.$store.dispatch('ibp/setIbpData', ibpDatas);
|
||||
this.handleBanOpenScreenDoorStatus();
|
||||
this.preResetBtn = this.$ibp.$painter.ibpInstanceLevel.SquareButton.children().find(e=>e.model.mean === 'PRERESET_Z');
|
||||
} else {
|
||||
// 无数据
|
||||
this.loading = false;
|
||||
@ -227,16 +233,42 @@ export default {
|
||||
// 点击选择事件
|
||||
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) {
|
||||
if (em.deviceModel.mean && IbpOperation[em.deviceModel.mean] && em.deviceModel.mean === IbpOperation.PRERESET.event) {
|
||||
handlerIbpEvent(this.$route.query.group, IbpOperation[em.deviceModel.mean].event, this.stationCode, em.deviceModel.sectionCode).then(() => {
|
||||
}).catch(error => { this.$message.error(error.message); });
|
||||
if (em.deviceModel.mean && IbpOperation[em.deviceModel.mean] && em.deviceModel.mean === IbpOperation.AXLE_PRE_RESET.event) {
|
||||
if (this.preResetBtn) {
|
||||
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]) {
|
||||
handlerIbpEvent(this.$route.query.group, IbpOperation[em.deviceModel.mean].event, this.stationCode).then(() => {
|
||||
}).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) {
|
||||
this.$store.dispatch('ibp/setUpdateDeviceData', em.eventTarget.model);
|
||||
@ -294,6 +326,7 @@ export default {
|
||||
this.$ibp = '';
|
||||
Vue.prototype.$ibp = '';
|
||||
}
|
||||
this.preResetBtn = null;
|
||||
},
|
||||
handleViewLoaded() {
|
||||
this.loading = false;
|
||||
|
@ -17,6 +17,7 @@
|
||||
<el-option label="VR模型" value="VrModel"></el-option>
|
||||
<el-option label="客流场景" value="客流模型"></el-option>
|
||||
<el-option label="三维课程" value="三维课程"></el-option>
|
||||
<el-option label="小程序模型" value="WxModel"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="设备类型">
|
||||
|
@ -9,6 +9,7 @@
|
||||
<el-option label="站台列表名称贴图" value="textureStation"></el-option>
|
||||
<el-option label="信号机贴图" value="textureSignal"></el-option>
|
||||
<el-option label="单体设备贴图" value="textureDevice"></el-option>
|
||||
<el-option label="小程序大铁贴图" value="textureRailwayWx"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="所属项目">
|
||||
|
@ -4,12 +4,12 @@
|
||||
<img class="buttonimg2" :src="start" />
|
||||
</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 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 id="directimgbrake" class="brakeimg" :src="brakeimgurlt" :style="{transform:braketrans}" @mousedown="touchstartbrake" />
|
||||
</div>
|
||||
|
@ -362,7 +362,7 @@ import axios from 'axios';
|
||||
|
||||
<style>
|
||||
.drivepane{
|
||||
width:60%;
|
||||
width:30%;
|
||||
height:333px;
|
||||
right:0;
|
||||
bottom:0;
|
||||
|
@ -17,19 +17,19 @@
|
||||
<div class="buttontext">{{ $t('jlmap3d.emergencyBraking') }}</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 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 id="directimgdiv" class="rightbuttonbcimg" :src="niuimg" :style="{transform:doordirecttou}" @mousedown='doordirecttouchstart' />
|
||||
</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" />
|
||||
</div>
|
||||
</div> -->
|
||||
|
||||
</div>
|
||||
</template>
|
||||
@ -199,55 +199,55 @@
|
||||
this.oldDirectType = 2;
|
||||
}
|
||||
|
||||
switch (data[3]) {
|
||||
case -1:
|
||||
this.stallh = 0;
|
||||
this.stalll = 0;
|
||||
break;
|
||||
case 0:
|
||||
this.stallh = 1;
|
||||
this.stalll = 2;
|
||||
break;
|
||||
case 1:
|
||||
this.stallh = 2;
|
||||
this.stalll = 0;
|
||||
break;
|
||||
case 2:
|
||||
this.stallh = 0;
|
||||
this.stalll = 1;
|
||||
break;
|
||||
case 3:
|
||||
this.stallh = 2;
|
||||
this.stalll = 1;
|
||||
break;
|
||||
case 4:
|
||||
this.stallh = 2;
|
||||
this.stalll = 2;
|
||||
break;
|
||||
case 5:
|
||||
this.stallh = 0;
|
||||
this.stalll = 2;
|
||||
break;
|
||||
case 6:
|
||||
this.stallh = 0;
|
||||
this.stalll = 3;
|
||||
break;
|
||||
case 7:
|
||||
this.stallh = 2;
|
||||
this.stalll = 3;
|
||||
break;
|
||||
case 8:
|
||||
this.stallh = 0;
|
||||
this.stalll = 4;
|
||||
break;
|
||||
case 9:
|
||||
this.stallh = 2;
|
||||
this.stalll = 4;
|
||||
}
|
||||
|
||||
|
||||
this.stalltop = this.stalls[this.stallh][this.stalll].t +"px";
|
||||
this.stallleft = this.stalls[this.stallh][this.stalll].l +"px";
|
||||
// switch (data[3]) {
|
||||
// case -1:
|
||||
// this.stallh = 0;
|
||||
// this.stalll = 0;
|
||||
// break;
|
||||
// case 0:
|
||||
// this.stallh = 1;
|
||||
// this.stalll = 2;
|
||||
// break;
|
||||
// case 1:
|
||||
// this.stallh = 2;
|
||||
// this.stalll = 0;
|
||||
// break;
|
||||
// case 2:
|
||||
// this.stallh = 0;
|
||||
// this.stalll = 1;
|
||||
// break;
|
||||
// case 3:
|
||||
// this.stallh = 2;
|
||||
// this.stalll = 1;
|
||||
// break;
|
||||
// case 4:
|
||||
// this.stallh = 2;
|
||||
// this.stalll = 2;
|
||||
// break;
|
||||
// case 5:
|
||||
// this.stallh = 0;
|
||||
// this.stalll = 2;
|
||||
// break;
|
||||
// case 6:
|
||||
// this.stallh = 0;
|
||||
// this.stalll = 3;
|
||||
// break;
|
||||
// case 7:
|
||||
// this.stallh = 2;
|
||||
// this.stalll = 3;
|
||||
// break;
|
||||
// case 8:
|
||||
// this.stallh = 0;
|
||||
// this.stalll = 4;
|
||||
// break;
|
||||
// case 9:
|
||||
// this.stallh = 2;
|
||||
// this.stalll = 4;
|
||||
// }
|
||||
//
|
||||
//
|
||||
// this.stalltop = this.stalls[this.stallh][this.stalll].t +"px";
|
||||
// this.stallleft = this.stalls[this.stallh][this.stalll].l +"px";
|
||||
},
|
||||
handleKeyup(event){
|
||||
const e = event || window.event || arguments.callee.caller.arguments[0];
|
||||
@ -372,26 +372,42 @@
|
||||
}
|
||||
|
||||
angle = angle + 180;
|
||||
|
||||
let paramGear = {
|
||||
// id:this.groupNum,
|
||||
id:"001",
|
||||
pos:''
|
||||
};
|
||||
|
||||
// console.log(angle);
|
||||
if(angle<=356){
|
||||
|
||||
this.doordirecttou = "rotate("+320+"deg)";
|
||||
this.directType = 1;
|
||||
paramGear.pos = '4';
|
||||
}
|
||||
if(angle>356 && angle<372){
|
||||
this.doordirecttou = "rotate("+360+"deg)";
|
||||
this.directType = 0;
|
||||
paramGear.pos = '0';
|
||||
}
|
||||
|
||||
if(angle>372 && angle<421){
|
||||
this.doordirecttou = "rotate("+399+"deg)";
|
||||
this.directType = -1;
|
||||
paramGear.pos = '4';
|
||||
}
|
||||
|
||||
if(angle>421){
|
||||
this.doordirecttou = "rotate("+442+"deg)";
|
||||
this.directType = 2;
|
||||
paramGear.pos = '4';
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
if(this.oldDirectType != this.directType){
|
||||
this.oldDirectType = this.directType;
|
||||
let param = {
|
||||
@ -401,6 +417,12 @@
|
||||
};
|
||||
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 => {
|
||||
// console.log(res);
|
||||
}).catch((error) => {
|
||||
|
@ -109,7 +109,7 @@ export default {
|
||||
lineCode: elem.lineCode
|
||||
},
|
||||
{
|
||||
id: '1',
|
||||
id: '2',
|
||||
name: '系统配置绘图',
|
||||
type: 'mapSystem',
|
||||
mapId: elem.id,
|
||||
|
@ -50,6 +50,9 @@ export default {
|
||||
if (this.type == 'Text') {
|
||||
data.content = `${this.editModel.prepend}::${this.editModel.content}`;
|
||||
}
|
||||
if (data.type !== 'VB') {
|
||||
data.signalCode = '';
|
||||
}
|
||||
this.$emit('updateMapModel', data);
|
||||
this.$emit('clearDeviceSelect');
|
||||
} else {
|
||||
|
@ -15,7 +15,7 @@
|
||||
@deviceSelect="deviceSelect"
|
||||
/>
|
||||
</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
|
||||
ref="respCreate"
|
||||
:field="field"
|
||||
@ -29,9 +29,9 @@
|
||||
@deviceChange="deviceChange"
|
||||
@deviceSelect="deviceSelect"
|
||||
/>
|
||||
</el-tab-pane>
|
||||
</el-tab-pane> -->
|
||||
<el-tab-pane class="view-control" label="批量创建" name="third" :lazy="lazy">
|
||||
<responder-batch
|
||||
<responder-batch
|
||||
ref="respBatch"
|
||||
:field="field"
|
||||
:responder-type-list="responderTypeList"
|
||||
@ -42,8 +42,7 @@
|
||||
v-on="$listeners"
|
||||
@hover="hover"
|
||||
@deviceChange="deviceChange"
|
||||
@deviceSelect="deviceSelect"
|
||||
/>
|
||||
@deviceSelect="deviceSelect" />
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</template>
|
||||
@ -209,4 +208,7 @@ export default {
|
||||
background-color: #fff;
|
||||
}
|
||||
}
|
||||
#pane-third {
|
||||
overflow: scroll;
|
||||
}
|
||||
</style>
|
||||
|
@ -1,171 +1,337 @@
|
||||
<template>
|
||||
<el-form ref="make" label-width="140px" :model="addModel" size="mini" :rules="mergeRules">
|
||||
<el-table :data="addModel.modelList" style="width: 100%">
|
||||
<el-table-column label="区段" prop="sectionCode">
|
||||
<template slot-scope="scope">
|
||||
<el-select v-model="scope.row.sectionCode" filterable size="mini" class="responderSet" placeholder="请选择">
|
||||
<el-option
|
||||
v-for="item in sectionList"
|
||||
:key="item.code"
|
||||
:label="item.name + '(' + item.code +')'"
|
||||
:value="item.code"
|
||||
/>
|
||||
</el-select>
|
||||
<el-button size="mini" :type="field === 'RelBatchSectionCode'&&rowData === scope.row?'danger':'primary'" @click="handleHover(scope.row, 'RelBatchSectionCode')">激活</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="信号机" prop="signalCode">
|
||||
<template slot-scope="scope">
|
||||
<el-select v-model="scope.row.signalCode" filterable size="mini" class="responderSet" placeholder="请选择">
|
||||
<el-option
|
||||
v-for="item in signalList"
|
||||
:key="item.code"
|
||||
:label="item.name + '(' + item.code +')'"
|
||||
:value="item.code"
|
||||
/>
|
||||
</el-select>
|
||||
<el-button size="mini" :type="field === 'RelBatchSignalCode'&&rowData === scope.row?'danger':'primary'" @click="handleHover(scope.row, 'RelBatchSignalCode')">激活</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="类型">
|
||||
<template slot-scope="scope">
|
||||
<el-select v-model="scope.row.type" filterable size="mini" class="responderSet" placeholder="请选择">
|
||||
<el-option
|
||||
v-for="item in responderTypeList"
|
||||
:key="item.value"
|
||||
:label="item.name"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="名称">
|
||||
<template slot-scope="scope">
|
||||
<el-input v-model="scope.row.name" placeholder="请输入内容" size="mini" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column width="55">
|
||||
<template slot="header">
|
||||
<el-button
|
||||
icon="el-icon-plus"
|
||||
circle
|
||||
size="small"
|
||||
@click="handlePush"
|
||||
/>
|
||||
</template>
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" type="text" @click="handleDelete(scope.$index, scope.row)">{{ $t('map.deleteObj') }}</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<div style="text-align: center;margin-top:17px">
|
||||
<el-button type="primary" size="small" @click="doBatchCreate">批量创建</el-button>
|
||||
<el-button type="danger" size="small" @click="doBatchReset">重置</el-button>
|
||||
</div>
|
||||
</el-form>
|
||||
<el-form
|
||||
ref="form"
|
||||
label-width="90px"
|
||||
:model="formData"
|
||||
size="mini"
|
||||
:rules="formRules"
|
||||
>
|
||||
<el-row>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="区段" prop="sectionCode">
|
||||
<el-select
|
||||
v-model="formData.sectionCode"
|
||||
filterable
|
||||
class="responderSet"
|
||||
placeholder="请选择"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in sectionList"
|
||||
:key="item.code"
|
||||
:label="item.name + '(' + item.code + ')'"
|
||||
:value="item.code"
|
||||
/>
|
||||
</el-select>
|
||||
<el-button
|
||||
@click="handleHover(-1, 'RelBatchSectionCode')"
|
||||
:type="
|
||||
field === 'RelBatchSectionCode' && row === -1
|
||||
? 'danger'
|
||||
: 'primary'
|
||||
"
|
||||
>
|
||||
激活
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="类型" prop="type">
|
||||
<el-select
|
||||
v-model="formData.type"
|
||||
filterable
|
||||
class="responderSet"
|
||||
placeholder="请选择"
|
||||
@change="changeSubFormType"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in responderTypeList"
|
||||
:key="item.value"
|
||||
:label="`${item.name}(${item.value})`"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="10">
|
||||
<el-form-item label="创建数量" prop="count">
|
||||
<el-input
|
||||
v-model="formData.count"
|
||||
class="responderSet"
|
||||
placeholder="请输入数量"
|
||||
type="number"
|
||||
min="1"
|
||||
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>
|
||||
|
||||
<script>
|
||||
import * as utils from './utils';
|
||||
|
||||
import * as utils from "./utils";
|
||||
export default {
|
||||
props: {
|
||||
selected: {
|
||||
type: Object,
|
||||
default: function () {
|
||||
return null;
|
||||
}
|
||||
},
|
||||
field: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
responderTypeList: {
|
||||
type: Array,
|
||||
required: true
|
||||
},
|
||||
sectionList: {
|
||||
type: Array,
|
||||
required: true
|
||||
},
|
||||
signalList: {
|
||||
type: Array,
|
||||
required: true
|
||||
},
|
||||
responderList: {
|
||||
type: Array,
|
||||
required: true
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
addModel: {
|
||||
modelList: []
|
||||
},
|
||||
mergeRules: {
|
||||
},
|
||||
rowData: null
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
setModelProp(selected, prop) {
|
||||
if (this.rowData) {
|
||||
this.rowData[prop] = selected.code;
|
||||
}
|
||||
},
|
||||
handleDelete(index, row) {
|
||||
this.addModel.modelList.splice(index, 1);
|
||||
},
|
||||
handleHover(row, prop) {
|
||||
this.rowData = row;
|
||||
this.$emit('hover', prop);
|
||||
},
|
||||
handlePush(row) {
|
||||
this.addModel.modelList.push({
|
||||
sectionCode: '',
|
||||
signalCode: '',
|
||||
type: '',
|
||||
name: ''
|
||||
});
|
||||
},
|
||||
doBatchCreate() {
|
||||
const groupMap = {};
|
||||
const models = [];
|
||||
name: "responderBatch",
|
||||
props: {
|
||||
selected: {
|
||||
type: Object,
|
||||
default: function() {
|
||||
return null;
|
||||
}
|
||||
},
|
||||
field: {
|
||||
type: String,
|
||||
default: ""
|
||||
},
|
||||
responderTypeList: {
|
||||
type: Array,
|
||||
required: true
|
||||
},
|
||||
sectionList: {
|
||||
type: Array,
|
||||
required: true
|
||||
},
|
||||
signalList: {
|
||||
type: Array,
|
||||
required: true
|
||||
},
|
||||
responderList: {
|
||||
type: Array,
|
||||
required: true
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
formData: {
|
||||
sectionCode: "",
|
||||
type: "",
|
||||
count: 0
|
||||
},
|
||||
subFormData: [],
|
||||
row: -2,
|
||||
formRules: {
|
||||
sectionCode: [
|
||||
{
|
||||
required: true,
|
||||
message: "请选择区段"
|
||||
}
|
||||
],
|
||||
type: [
|
||||
{
|
||||
required: true,
|
||||
message: "请选择类型"
|
||||
}
|
||||
],
|
||||
count: [
|
||||
{
|
||||
validator: (rule, value, cb) => {
|
||||
value !== 0 ? cb() : cb(new Error("至少创建一个"));
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
};
|
||||
},
|
||||
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 => {
|
||||
if (!groupMap[el.sectionCode]) {
|
||||
groupMap[el.sectionCode] = [];
|
||||
}
|
||||
groupMap[el.sectionCode].push(el);
|
||||
});
|
||||
|
||||
// 偏移量计算
|
||||
Object.keys(groupMap).forEach(code => {
|
||||
const section = this.$store.getters['map/getDeviceByCode'](code);
|
||||
const list = groupMap[code];
|
||||
const length = list.length;
|
||||
const ox = (section.points[length - 1].x - section.points[0].x) / (length + 1);
|
||||
const oy = (section.points[length - 1].y - section.points[0].y) / (length + 1);
|
||||
list.forEach((el, i) => {
|
||||
const x = section.points[0].x + ox * (i + 1);
|
||||
const y = section.points[0].y + oy * (i + 1);
|
||||
models.push(utils.buildModelBySection(section, {x, y}, el, this.responderList));
|
||||
});
|
||||
});
|
||||
|
||||
// 批量创建
|
||||
this.$emit('updateMapModel', models);
|
||||
},
|
||||
doBatchReset() {
|
||||
this.addModel.modelList = [];
|
||||
}
|
||||
}
|
||||
// 绘图位置计算
|
||||
Object.keys(groupMap).forEach(code => {
|
||||
const section = this.$store.getters[
|
||||
"map/getDeviceByCode"
|
||||
](code);
|
||||
const list = groupMap[code];
|
||||
const length = list.length;
|
||||
const ox =
|
||||
(section.points[section.points.length - 1].x -
|
||||
section.points[0].x) /
|
||||
(length + 1);
|
||||
const oy =
|
||||
(section.points[section.points.length - 1].y -
|
||||
section.points[0].y) /
|
||||
(length + 1);
|
||||
list.forEach((el, i) => {
|
||||
const x = section.points[0].x + ox * (i + 1);
|
||||
const y = section.points[0].y + oy * (i + 1);
|
||||
models.push(
|
||||
utils.buildModelBySection(
|
||||
section,
|
||||
{ x, y },
|
||||
el,
|
||||
this.responderList
|
||||
)
|
||||
);
|
||||
});
|
||||
});
|
||||
// 批量创建
|
||||
this.$emit("updateMapModel", models);
|
||||
}
|
||||
});
|
||||
},
|
||||
resetForm() {
|
||||
this.formData = {
|
||||
sectionCode: "",
|
||||
type: "",
|
||||
count: 0
|
||||
};
|
||||
this.numBlur();
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.responderSet{
|
||||
width:120px;
|
||||
<style lang="scss" scoped>
|
||||
.sub-form {
|
||||
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>
|
||||
|
@ -145,7 +145,7 @@ export default {
|
||||
] },
|
||||
{ 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: '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 }
|
||||
]
|
||||
},
|
||||
|
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" />
|
||||
<qcode ref="qcode" />
|
||||
<project-package ref="projectPackage" @createSuccess="createSuccess" />
|
||||
<distribute-package ref="distributePackage" @reloadTable="reloadTable" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@ -14,6 +15,7 @@ import { UrlConfig } from '@/scripts/ConstDic';
|
||||
import QrCode from '@/components/QrCode';
|
||||
import Qcode from './Qcode';
|
||||
import ProjectPackage from './projectPackage';
|
||||
import DistributePackage from './distributePackage';
|
||||
import { getOrganizationList } from '@/api/management/organization';
|
||||
// import { getPublishMapListOnline } from '@/api/jmap/map';
|
||||
import { getAdminAndSuperAdminList } from '@/api/management/user';
|
||||
@ -23,7 +25,8 @@ export default {
|
||||
components: {
|
||||
QrCode,
|
||||
Qcode,
|
||||
ProjectPackage
|
||||
ProjectPackage,
|
||||
DistributePackage
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
@ -185,6 +188,13 @@ export default {
|
||||
handleClick: this.handleBelongs,
|
||||
type: '',
|
||||
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: '权限回退',
|
||||
@ -323,6 +333,9 @@ export default {
|
||||
},
|
||||
handleBelongs(index, row) {
|
||||
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>
|
||||
<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" />
|
||||
<create-user ref="createUser" />
|
||||
<create-single-user ref="createSingleUser" @reloadTable="reloadTable" />
|
||||
<bind-company ref="bindCompany" :company-list="companyList" @create="create" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getUserList } from '@/api/management/user';
|
||||
import { getUserList, deleteUserInLogic } from '@/api/management/user';
|
||||
import { getCompanyList } from '@/api/company';
|
||||
import DictionaryEdit from './edit';
|
||||
import CreateUser from './createUser';
|
||||
import CreateSingleUser from './createSingleUser';
|
||||
import BindCompany from './bindCompany';
|
||||
|
||||
export default {
|
||||
@ -19,6 +21,7 @@ export default {
|
||||
components: {
|
||||
DictionaryEdit,
|
||||
CreateUser,
|
||||
CreateSingleUser,
|
||||
BindCompany
|
||||
},
|
||||
data() {
|
||||
@ -29,6 +32,11 @@ export default {
|
||||
},
|
||||
companyMap: {},
|
||||
companyList: [],
|
||||
countTypeList:[
|
||||
{label:'个人账户', value:'1'},
|
||||
{label:'企业账户', value:'2'},
|
||||
{label:'企业账户下子账户', value:'3'}
|
||||
],
|
||||
queryForm: {
|
||||
labelWidth: '80px',
|
||||
reset: true,
|
||||
@ -41,6 +49,14 @@ export default {
|
||||
type: 'text',
|
||||
label: 'id'
|
||||
},
|
||||
account:{
|
||||
type: 'text',
|
||||
label: '账号'
|
||||
},
|
||||
parentAccount:{
|
||||
type: 'text',
|
||||
label: '父账号'
|
||||
},
|
||||
roles: {
|
||||
type: 'select',
|
||||
label: this.$t('system.roles'),
|
||||
@ -66,6 +82,13 @@ export default {
|
||||
config: {
|
||||
data: []
|
||||
}
|
||||
},
|
||||
type:{
|
||||
type: 'select',
|
||||
label: '类型',
|
||||
config: {
|
||||
data: []
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -80,6 +103,16 @@ export default {
|
||||
prop: 'id',
|
||||
width: 80
|
||||
},
|
||||
{
|
||||
title: '账号',
|
||||
prop: 'account',
|
||||
width: 80
|
||||
},
|
||||
{
|
||||
title: '父账号',
|
||||
prop: 'parentAccount',
|
||||
width: 80
|
||||
},
|
||||
{
|
||||
title: this.$t('system.name'),
|
||||
prop: 'name'
|
||||
@ -88,6 +121,13 @@ export default {
|
||||
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'
|
||||
@ -122,13 +162,18 @@ export default {
|
||||
{
|
||||
name: '绑定组织管理员',
|
||||
handleClick: this.handleBind
|
||||
},
|
||||
{
|
||||
name: '删除',
|
||||
handleClick: this.handleDelete
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
actions: [
|
||||
{ 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: {}
|
||||
@ -144,6 +189,7 @@ export default {
|
||||
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);
|
||||
@ -157,18 +203,34 @@ export default {
|
||||
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();
|
||||
},
|
||||
createLocalUsers() {
|
||||
this.$refs.createUser.doShow();
|
||||
},
|
||||
createSingleUser() {
|
||||
this.$refs.createSingleUser.doShow();
|
||||
},
|
||||
companyManage() {
|
||||
this.$router.push({ path: `/system/companyManage`});
|
||||
},
|
||||
handleBind(index, row) {
|
||||
this.$refs.bindCompany.doShow(row);
|
||||
},
|
||||
handleDelete(index, row) {
|
||||
deleteUserInLogic(row.id).then(resp=> {
|
||||
// 逻辑删除
|
||||
this.$message.success('删除账户成功!');
|
||||
this.reloadTable();
|
||||
}).catch(() => {
|
||||
this.$messageBox('删除账户失败');
|
||||
});
|
||||
},
|
||||
create() {
|
||||
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