Compare commits
62 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
cc1a9817ab | ||
|
837bf3a870 | ||
|
23a2447181 | ||
|
6142c2e90e | ||
|
4bfa9c78b8 | ||
|
0093b8bae1 | ||
|
de898b77ed | ||
|
617aa98149 | ||
|
0297144b16 | ||
de0d06c994 | |||
91ded59d7f | |||
|
008d4ebac0 | ||
|
f17a54b860 | ||
|
78122f6e7a | ||
|
7ff2271c38 | ||
|
502a994451 | ||
|
104496ac5a | ||
|
977d8df4b6 | ||
|
f2cdfe5ee1 | ||
|
1580b0a509 | ||
|
1555d9f401 | ||
|
731c716036 | ||
|
51e678011c | ||
|
7ce62aead4 | ||
|
8795adbe72 | ||
|
d501fe2792 | ||
|
26d75c1bf3 | ||
|
fc05f5ef13 | ||
|
4d92751f7d | ||
|
c98746317c | ||
|
03be9f8f75 | ||
|
d61deb1de4 | ||
|
bb8989ba1a | ||
|
4e0fa46cc2 | ||
|
b898aee79a | ||
|
b1345badec | ||
|
0cb84ab7aa | ||
|
a64b627982 | ||
|
78cbf08eda | ||
|
8b2c00e7fa | ||
|
8d2939197f | ||
|
9648f95d4e | ||
|
04b49c870e | ||
|
fd5248bf3f | ||
|
2a85d2e6cf | ||
|
c84cc54639 | ||
|
795e8d8196 | ||
|
6a9aa02cc3 | ||
|
d8f29517d6 | ||
|
8a4bc974f4 | ||
|
65853dcd7b | ||
|
641084eb3c | ||
|
b4304099fe | ||
|
43f83ac624 | ||
|
4c65f22c8a | ||
|
334710bb94 | ||
|
18663fd5bd | ||
|
05cebda4cb | ||
|
ba21c4fe95 | ||
|
ec03a5b6b7 | ||
|
03c97957f3 | ||
|
1fe0f491f8 |
@ -1,52 +0,0 @@
|
||||
---
|
||||
name: local-test分支构建发布到本地服务器
|
||||
run-name: ${{ gitea.actor }} is testing out Gitea Actions
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- local-test
|
||||
jobs:
|
||||
Build-Publish:
|
||||
runs-on: joylink-local233
|
||||
steps:
|
||||
- name: 检出代码
|
||||
uses: https://gitea.joylink.club/actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
- name: 设置node环境
|
||||
uses: https://gitea.joylink.club/actions/local-setup-node@v0.1.1
|
||||
with:
|
||||
version: v14.21.3
|
||||
cache: yarn
|
||||
cache-dependency-path: yarn.lock
|
||||
- name: 安装yarn,并build
|
||||
run: |
|
||||
node -v
|
||||
npm config set registry https://registry.npmmirror.com
|
||||
npm install --global yarn
|
||||
yarn config set registry https://registry.npmmirror.com
|
||||
yarn
|
||||
yarn run buildas local-test
|
||||
tar czvf ./dist-local-test.tar.gz ./dist
|
||||
- name: 打包发送到服务器
|
||||
uses: https://gitea.joylink.club/appleboy/scp-action@v0.1.7
|
||||
with:
|
||||
host: ${{ secrets.LOCAL_233_SSH_HOST }}
|
||||
username: ${{ secrets.LOCAL_233_SSH_USER }}
|
||||
password: ${{ secrets.LOCAL_233_SSH_PASSWORD }}
|
||||
port: ${{ secrets.LOCAL_233_SSH_PORT }}
|
||||
source: ./dist-local-test.tar.gz
|
||||
target: /home/minio/oss/rt-sim-training-client
|
||||
overwrite: true
|
||||
- name: SSH连接并解压发布
|
||||
uses: https://gitea.joylink.club/appleboy/ssh-action@v1.0.3
|
||||
with:
|
||||
host: ${{ secrets.LOCAL_233_SSH_HOST }}
|
||||
port: ${{ secrets.LOCAL_233_SSH_PORT }}
|
||||
username: ${{ secrets.LOCAL_233_SSH_USER }}
|
||||
password: ${{ secrets.LOCAL_233_SSH_PASSWORD }}
|
||||
script: |
|
||||
cd /home/minio/oss/rt-sim-training-client
|
||||
rm -rf /usr/local/joylink/client/cbtc
|
||||
mkdir -p /usr/local/joylink/client
|
||||
tar xz --strip 2 -C /usr/local/joylink/client -f dist-local-test.tar.gz
|
@ -1,52 +0,0 @@
|
||||
name: master分支构建发布到公网服务器
|
||||
run-name: ${{ gitea.actor }} is testing out Gitea Actions
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
|
||||
jobs:
|
||||
Build-Publish:
|
||||
runs-on: joylink-local233
|
||||
steps:
|
||||
- name: 检出代码
|
||||
uses: https://gitea.joylink.club/actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
- name: 设置node环境
|
||||
uses: https://gitea.joylink.club/actions/local-setup-node@v0.1.1
|
||||
with:
|
||||
version: 'v14.21.3'
|
||||
cache: 'yarn'
|
||||
cache-dependency-path: 'yarn.lock'
|
||||
- name: 安装yarn,并build
|
||||
run: |
|
||||
node -v
|
||||
npm config set registry https://registry.npmmirror.com
|
||||
npm install --global yarn
|
||||
yarn config set registry https://registry.npmmirror.com
|
||||
yarn
|
||||
yarn run build
|
||||
tar czvf ./dist-master.tar.gz ./dist
|
||||
- name: 打包发送到服务器
|
||||
uses: https://gitea.joylink.club/appleboy/scp-action@v0.1.7
|
||||
with:
|
||||
host: ${{ secrets.PUB1_DOMAIN_SSH_HOST }}
|
||||
port: ${{ secrets.PUB1_DOMAIN_SSH_PORT }}
|
||||
username: ${{ secrets.PUB1_DOMAIN_SSH_USER }}
|
||||
password: ${{ secrets.PUB1_DOMAIN_SSH_PASSWORD }}
|
||||
source: ./dist-master.tar.gz
|
||||
target: /mnt/data/published/rt-sim-training-client
|
||||
overwrite: true
|
||||
- name: SSH连接并解压发布
|
||||
uses: https://gitea.joylink.club/appleboy/ssh-action@v1.0.3
|
||||
with:
|
||||
host: ${{ secrets.PUB1_DOMAIN_SSH_HOST }}
|
||||
port: ${{ secrets.PUB1_DOMAIN_SSH_PORT }}
|
||||
username: ${{ secrets.PUB1_DOMAIN_SSH_USER }}
|
||||
password: ${{ secrets.PUB1_DOMAIN_SSH_PASSWORD }}
|
||||
script: |
|
||||
cd /mnt/data/published/rt-sim-training-client
|
||||
rm -rf /usr/local/joylink/client/cbtc
|
||||
mkdir -p /usr/local/joylink/client
|
||||
tar xz --strip 2 -C /usr/local/joylink/client -f dist-master.tar.gz
|
1
.gitignore
vendored
1
.gitignore
vendored
@ -4,6 +4,7 @@ dist/
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
package-lock.json
|
||||
tests/**/coverage/
|
||||
src/utils/baseUrl.js*
|
||||
|
||||
|
@ -4,6 +4,3 @@ English | [简体中文](./README-zh.md)
|
||||
|
||||
|
||||
Copyright (c) 2018-present Joylink
|
||||
### 项目环境
|
||||
- "node": "<=14.21.3";
|
||||
- "webpack": ">=4 < 4.29";
|
@ -19,8 +19,6 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@stomp/stompjs": "^5.4.4",
|
||||
"@wangeditor/editor": "^5.1.23",
|
||||
"@wangeditor/editor-for-vue": "^1.0.2",
|
||||
"axios": "^0.18.0",
|
||||
"dayjs": "^1.11.5",
|
||||
"echarts": "^4.7.0",
|
||||
@ -46,7 +44,6 @@
|
||||
"vue-i18n": "^8.12.0",
|
||||
"vue-quill-editor": "^3.0.6",
|
||||
"vue-router": "^3.1.6",
|
||||
"vue-video-player": "^5.0.1",
|
||||
"vuedraggable": "^2.24.3",
|
||||
"vuex": "^3.1.0",
|
||||
"wangeditor": "^4.6.17",
|
||||
|
@ -1,416 +0,0 @@
|
||||
import request from '@/utils/request';
|
||||
|
||||
/**
|
||||
* 获取竞赛试卷分页列表
|
||||
* @param {Object} params
|
||||
* @param {String} params.name 试卷名称
|
||||
*/
|
||||
export function getPaperList(params) {
|
||||
return request({
|
||||
url: '/api/exercise/race/paper/page',
|
||||
method: 'GET',
|
||||
params
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建试卷
|
||||
* @param {Object} data
|
||||
* @param {String} data.name 试卷名称
|
||||
* @param {String} data.desc 基础描述
|
||||
* @param {Number} data.seasonId 所属赛季id
|
||||
* @param {Boolean} data.supportCopy 是否支持拷贝
|
||||
*/
|
||||
export function createPaper(data) {
|
||||
return request({
|
||||
url: '/api/exercise/race/paper',
|
||||
method: 'POST',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
/** 修改试卷
|
||||
* @param {Object} data 同创建试卷
|
||||
* @param {Number} id 试卷id
|
||||
*/
|
||||
export function editPaper(id, data) {
|
||||
return request({
|
||||
url: `/api/exercise/race/paper/${id}`,
|
||||
method: 'POST',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
/** 删除指定试卷
|
||||
* @param {Number} id 任务id
|
||||
*/
|
||||
export function deletePaper(id) {
|
||||
return request({
|
||||
url: `/api/exercise/race/paper/${id}`,
|
||||
method: 'DELETE'
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取竞赛试卷菜单
|
||||
* @param {Object} params
|
||||
* @param {String} params.group 分组ZZ=中职;GZ=高职
|
||||
*/
|
||||
export function getPaperMenu(params) {
|
||||
return request({
|
||||
url: '/api/exercise/race/paper/menu',
|
||||
method: 'GET',
|
||||
params
|
||||
});
|
||||
}
|
||||
|
||||
/** 模块修改任务设置
|
||||
* @param {Object} data
|
||||
* @param {Array} data.modules 所有模块
|
||||
* @param {Number} data.modules[i].module_name 模块名字
|
||||
* @param {Number} data.modules[i].duration 考试总时间
|
||||
* @param {Number} data.modules[i].group 任务分组
|
||||
* @param {Number} data.modules[i].group.taskIds 此分组中的任务id
|
||||
* @param {Number} data.modules[i].group.name 此组的名字
|
||||
* @param {Number} data.modules[i].group.group 此分组的子分组
|
||||
*/
|
||||
export function paperModuleTaskSetting(paperId, data) {
|
||||
return request({
|
||||
url: `/api/exercise/race/paper/${paperId}/config`,
|
||||
method: 'POST',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
/** 查看试卷明细
|
||||
* @param {Number} id 模块id
|
||||
*/
|
||||
export function getPaperDetail(id) {
|
||||
return request({
|
||||
url: `/api/exercise/race/paper/${id}`,
|
||||
method: 'GET'
|
||||
});
|
||||
}
|
||||
|
||||
/** 试卷拷贝
|
||||
* @param {Number} id 模块id
|
||||
*/
|
||||
export function copyPaper(id) {
|
||||
console.log(id);
|
||||
return request({
|
||||
url: `/api/exercise/race/paper/${id}/copy`,
|
||||
method: 'PUT'
|
||||
});
|
||||
}
|
||||
|
||||
/** 查看所有任务数据 */
|
||||
export function getTaskTreeDatas() {
|
||||
return request({
|
||||
url: '/api/exercise/race/task/tree',
|
||||
method: 'GET'
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建任务
|
||||
* @param {Object} data
|
||||
* @param {String} data.name 任务名称
|
||||
* @param {String} data.desc 基础描述
|
||||
* @param {String} data.content 考核内容
|
||||
* @param {String} data.standards 评价标准
|
||||
* @param {Number} data.parentId 如果是子任务,需要父任务的id
|
||||
*/
|
||||
export function createTask(data) {
|
||||
return request({
|
||||
url: '/api/exercise/race/task',
|
||||
method: 'POST',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
/** 修改指定任务
|
||||
* @param {Object} data 同创建任务
|
||||
* @param {Number} id 任务id
|
||||
*/
|
||||
export function editTask(id, data) {
|
||||
return request({
|
||||
url: `/api/exercise/race/task/${id}`,
|
||||
method: 'POST',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
/** 删除指定任务
|
||||
* @param {Number} id 任务id
|
||||
*/
|
||||
export function deleteTask(id) {
|
||||
return request({
|
||||
url: `/api/exercise/race/task/${id}`,
|
||||
method: 'DELETE'
|
||||
});
|
||||
}
|
||||
|
||||
/** 查看任务详情
|
||||
* @param {Number} id 任务id
|
||||
*/
|
||||
export function getTaskDetail(id) {
|
||||
return request({
|
||||
url: `/api/exercise/race/task/${id}`,
|
||||
method: 'GET'
|
||||
});
|
||||
}
|
||||
|
||||
/** 查看指定子任务
|
||||
* @param {Number} id 任务id
|
||||
*/
|
||||
export function getchildrenTaskDatas(id) {
|
||||
return request({
|
||||
url: `/api/exercise/race/task/${id}/children`,
|
||||
method: 'GET'
|
||||
});
|
||||
}
|
||||
|
||||
/** 任务绑定
|
||||
* @param {Array} data
|
||||
* @param {Number} taskId 任务id
|
||||
* @param {Number} data[i].bindId 绑定id,根据bindtype来区分对应的id
|
||||
* @param {String} data[i].bindType rule =0评分规则;scene=1场景
|
||||
* @param {Number} data[i].status 0=绑定 ;1=解绑
|
||||
*/
|
||||
export function bindTask(taskId, data) {
|
||||
return request({
|
||||
url: `/api/exercise/race/task/${taskId}/bind`,
|
||||
method: 'POST',
|
||||
data
|
||||
});
|
||||
}
|
||||
/** 竞赛赛季添加
|
||||
* @param {Object} data
|
||||
* @param {Number} data.group 分组 1-高职 2中职
|
||||
* @param {String} data.term 赛季
|
||||
* @param {String} data.code 编号
|
||||
*/
|
||||
export function addContestSeason(data) {
|
||||
return request({
|
||||
url: '/api/exercise/race/season',
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
/** 竞赛赛季分页查询
|
||||
* @param {Object} params
|
||||
* @param {Number} params.group 分组 1-高职 2中职
|
||||
* @param {String} params.term 赛季
|
||||
* @param {String} params.code 编号
|
||||
*/
|
||||
export function queryContestSeasonPaged(params) {
|
||||
return request({
|
||||
url: '/api/exercise/race/season/page',
|
||||
method: 'get',
|
||||
params
|
||||
});
|
||||
}
|
||||
/** 竞赛赛季修改
|
||||
* @param {Object} data
|
||||
* @param {Number} id 赛季id
|
||||
* @param {String} data.group 分组 ZZ=中职;GZ=高职
|
||||
* @param {String} data.term 赛季
|
||||
* @param {String} data.code 编号
|
||||
*/
|
||||
export function updateContestSeason(id, data) {
|
||||
return request({
|
||||
url: `/api/exercise/race/season/${id}`,
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
/** 竞赛赛季删除
|
||||
* @param {Number} id 赛季id
|
||||
*/
|
||||
export function deleteContestSeason(id) {
|
||||
return request({
|
||||
url: `/api/exercise/race/season/${id}`,
|
||||
method: 'delete'
|
||||
});
|
||||
}
|
||||
/** 竞赛评分创建基本信息
|
||||
* @param {Object} data
|
||||
* @param {String} data.name 名称
|
||||
*/
|
||||
export function createContextScore(data) {
|
||||
return request({
|
||||
url: '/api/exercise/race/score',
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
/** 竞赛评分列表分页
|
||||
* @param {Object} params
|
||||
* @param {String} params.name 名称
|
||||
*/
|
||||
export function queryContextScorePaged(params) {
|
||||
return request({
|
||||
url: '/api/exercise/race/score/page',
|
||||
method: 'get',
|
||||
params
|
||||
});
|
||||
}
|
||||
/** 竞赛评分删除
|
||||
* @param {Number} id 评分id
|
||||
*/
|
||||
export function deleteContextScore(id) {
|
||||
return request({
|
||||
url: `/api/exercise/race/score/${id}`,
|
||||
method: 'delete'
|
||||
});
|
||||
}
|
||||
/** 竞赛评分修改评分详情内容
|
||||
* @param {Number} id 评分id
|
||||
* @param {Object} data
|
||||
* @param {Array [object]} data.units 评分单元
|
||||
* @param {String} data.units[0].text 文字描述
|
||||
* @param {Number} data.units[0].sceneStepId 场景步骤ID
|
||||
* @param {Number} data.units[0].score 分值
|
||||
* @param {String} data.units[0].worker 作业程序
|
||||
* @param {String} data.units[0].criteria 评分标准
|
||||
*/
|
||||
export function updateContextScoreDetail(id, data) {
|
||||
return request({
|
||||
url: `/api/exercise/race/score/edit/rule/${id}`,
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
/** 竞赛评分详情
|
||||
* @param {Number} id 评分id
|
||||
*/
|
||||
export function getContextScoreDetail(id) {
|
||||
return request({
|
||||
url: `/api/exercise/race/score/${id}`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
/** 竞赛场景分页查询
|
||||
* @param {Object} params
|
||||
* @param {String} params.type 竞赛类型 local=场景;link=3D
|
||||
*/
|
||||
export function queryContestSencePaged(params) {
|
||||
return request({
|
||||
url: '/api/exercise/race/scene/page',
|
||||
method: 'get',
|
||||
params
|
||||
});
|
||||
}
|
||||
/** 竞赛场景删除
|
||||
* @param {Number} id 场景id
|
||||
*/
|
||||
export function deleteContestSence(id) {
|
||||
return request({
|
||||
url: `/api/exercise/race/scene/${id}`,
|
||||
method: 'delete'
|
||||
});
|
||||
}
|
||||
/** 竞赛场景详情
|
||||
* @param {Number} id 场景id
|
||||
*/
|
||||
export function getContextSenceDetail(id) {
|
||||
return request({
|
||||
url: `/api/exercise/race/scene/${id}`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
/** 实训场景发布到大赛场景
|
||||
* @param {Object} data
|
||||
* @param {Number} data.traningPublishId 草稿实训场景id
|
||||
* @param {String} data.name 大赛场景名称
|
||||
*/
|
||||
export function publishContextSence(data) {
|
||||
return request({
|
||||
url: `/api/exercise/race/scene/publish/training`,
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
/** 场景视频保存
|
||||
* @param {Object} data
|
||||
* @param {String} data.name 场景名称
|
||||
* @param {String} data.type Video=视频
|
||||
* @param {Object} data.scene 大赛场景
|
||||
* @param {String} data.scene.url 地址
|
||||
* @param {String} data.scene.fileName 文件名
|
||||
*/
|
||||
export function saveSceneVideo(data) {
|
||||
return request({
|
||||
url: `/api/exercise/race/scene/custom/edit`,
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
/** 场景视频编辑 */
|
||||
export function editSceneVideo(sceneId, data) {
|
||||
return request({
|
||||
url: `/api/exercise/race/scene/custom/${sceneId}/edit`,
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
/** 竞赛试卷测试模块任务集合
|
||||
* @param {String} paperId 试卷id
|
||||
* @param {String} moduleId 模块id
|
||||
*/
|
||||
export function getTaskTree(paperId, moduleId) {
|
||||
return request({
|
||||
url: `/api/exercise/race/paper/${paperId}/module/${moduleId}/task`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
||||
/** 竞赛开始训练
|
||||
* @param {String} paperId 试卷id
|
||||
* @param {String} moduleId 模块id
|
||||
*/
|
||||
export function beginContestExercise(paperId, moduleId) {
|
||||
return request({
|
||||
url: `/api/race/${paperId}/${moduleId}`,
|
||||
method: 'POST'
|
||||
});
|
||||
}
|
||||
|
||||
/** 竞赛完成训练 */
|
||||
export function finishContestExercise() {
|
||||
return request({
|
||||
url: '/api/race/finish',
|
||||
method: 'PUT'
|
||||
});
|
||||
}
|
||||
|
||||
/** 竞赛赛季html内容编辑
|
||||
* @param {String} id 赛季id
|
||||
* @param {String} data.htmlContent 内容
|
||||
*/
|
||||
export function editSeasonContent(id, data) {
|
||||
return request({
|
||||
url: `/api/exercise/race/season/${id}/html`,
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
/** 竞赛赛季html内容获取
|
||||
* @param {String} id 赛季id
|
||||
*/
|
||||
export function getSeasonContent(id) {
|
||||
return request({
|
||||
url: `/api/exercise/race/season/${id}/html`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
||||
export function getTheoryList() {
|
||||
return request({
|
||||
url: '/api/exercise/race/paper/questions',
|
||||
method: 'get'
|
||||
});
|
||||
}
|
@ -344,13 +344,3 @@ export function queryTagList(data) {
|
||||
data
|
||||
});
|
||||
}
|
||||
/**
|
||||
* 获取试卷创建者list
|
||||
*/
|
||||
export function queryPaperCreatorList(data) {
|
||||
return request({
|
||||
url: `/api/v2/paper/composition/list/creatorInfo`,
|
||||
method: 'POST',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
@ -323,11 +323,3 @@ export function isExistEmail(params) {
|
||||
});
|
||||
}
|
||||
|
||||
// 成工院第三方登录
|
||||
export function cgyThirdLogin(data) {
|
||||
return request({
|
||||
url: '/api/login/cgy/third',
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
@ -15,20 +15,3 @@ export function selectQuestionTypeNum(companyId) {
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
||||
/** 加载场景 */
|
||||
export function loadRace(simulationId, sceneId) {
|
||||
return request({
|
||||
url: `/api/race/${simulationId}/load/${sceneId}`,
|
||||
method: 'put'
|
||||
});
|
||||
|
||||
}
|
||||
/** 完成任务 */
|
||||
export function overTask(taskId, data) {
|
||||
return request({
|
||||
url: `/api/race/${taskId}/finish`,
|
||||
method: 'put',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
@ -523,6 +523,29 @@ export function sandTableTrainControl(group, params) {
|
||||
params
|
||||
});
|
||||
}
|
||||
/** 设置轨道占用 */
|
||||
export function setOccupy(simulationId, sectionCodes) {
|
||||
return request({
|
||||
url: `/api/sandTable/${simulationId}/occupy`,
|
||||
method: 'put',
|
||||
params: { sectionCodes, occupy: true }
|
||||
})
|
||||
}
|
||||
/** 按计划运行 */
|
||||
export function sandTableRunAsPlan(simulationId, data) {
|
||||
return request({
|
||||
url: `/api/sandTable/${simulationId}/runAsPlan`,
|
||||
method: 'put',
|
||||
data,
|
||||
})
|
||||
}
|
||||
/** 获取运行计划详情 */
|
||||
export function getSandTableRunPlanDetail(simulationId) {
|
||||
return request({
|
||||
url: `/api/sandTable/${simulationId}/runPlanDetail`,
|
||||
method: 'get',
|
||||
});
|
||||
}
|
||||
/** 条件查询仿真中的ISCS资源 */
|
||||
export function queryIscsResourcesByGroup(group, params) {
|
||||
return request({
|
||||
@ -583,27 +606,3 @@ export function enterSimulationByTeacher(group) {
|
||||
method: 'post'
|
||||
});
|
||||
}
|
||||
/** 切换角色后触发消息 */
|
||||
export function getUnreceivedMessages(simulationId, memberId) {
|
||||
return request({
|
||||
url: `/simulation/${simulationId}/${memberId}/unreceivedMessages`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
||||
/** 控制叶佳供货的小车 */
|
||||
export function controlYjTrain(simulationId, right) {
|
||||
return request({
|
||||
url: `/api/realDevice/${simulationId}/train`,
|
||||
method: 'put',
|
||||
params: { right }
|
||||
});
|
||||
}
|
||||
/** 创建仿真(不通过功能id) */
|
||||
export function createSimulationNoFunction(mapId, data) {
|
||||
return request({
|
||||
url: `/simulation/new/${mapId}`,
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
@ -32,21 +32,14 @@ export function updateTraining(data) {
|
||||
data
|
||||
});
|
||||
}
|
||||
/** 更新发布实训信息(标签, 描述, 标题) */
|
||||
export function updateTrainingInfo(data) {
|
||||
/** 更新实训标签 */
|
||||
export function updateTrainingLabel(data) {
|
||||
return request({
|
||||
url: `/api/v2/training/published/update`,
|
||||
url: `/api/v2/training/published/update/label`,
|
||||
method: 'put',
|
||||
data
|
||||
});
|
||||
}
|
||||
/** 已发布实训转为草稿 */
|
||||
export function saveAsTrainingDraft(trainingId) {
|
||||
return request({
|
||||
url: `/api/v2/training/published/${trainingId}/saveAsDraft`,
|
||||
method: 'post'
|
||||
});
|
||||
}
|
||||
/** 查询步骤列表 */
|
||||
export function getTrainingStepList(trainingId) {
|
||||
return request({
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 37 KiB |
Binary file not shown.
Before Width: | Height: | Size: 130 KiB |
Binary file not shown.
Before Width: | Height: | Size: 6.3 KiB |
@ -4,10 +4,10 @@
|
||||
<qrcode-vue v-loading="loading" :value="url" :size="400" />
|
||||
</div>
|
||||
<div v-if="group" class="qrcodeGroup">
|
||||
<span>{{ $t('global.roomId')+group }}</span>
|
||||
<span>{{ 'Simulation number:'+group }}</span>
|
||||
</div>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="doClose">{{ $t('global.close') }}</el-button>
|
||||
<el-button @click="doClose">Close</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
@ -32,7 +32,7 @@ import trainingManage from './trainingManage';
|
||||
import newRouter from './newRouter';
|
||||
|
||||
export default {
|
||||
enLocale,
|
||||
...enLocale,
|
||||
map,
|
||||
global,
|
||||
router,
|
||||
|
@ -38,12 +38,6 @@ export default {
|
||||
permissionManage: 'Permission',
|
||||
authorityTransferManage: 'Privilege distribution management',
|
||||
userRulesManage: 'User Rights Statistics',
|
||||
contestDataManage:'Contest data management',
|
||||
contestSubjectManage:'contest subject management',
|
||||
contestTaskManage:'contest task management',
|
||||
contestSceneManage:'contest scene management',
|
||||
contestTaskScoreManage:'contest task score management',
|
||||
contestSeasonManage:'contest season management',
|
||||
fileManage: 'File Manage',
|
||||
frontResourceManage: 'Front-End Resource Management',
|
||||
iscsPrerecordManage: 'ISCS Advance record management',
|
||||
|
@ -1,112 +1,110 @@
|
||||
export default {
|
||||
homePage: 'Home',
|
||||
homePage: 'Home',
|
||||
|
||||
mapManage: 'Map',
|
||||
skinManage: 'Skin management',
|
||||
mapDraw: 'Map draw',
|
||||
runPlanManage: 'Run plan',
|
||||
productEdit: 'Product editor',
|
||||
mapManage: 'Map',
|
||||
skinManage: 'Skin management',
|
||||
mapDraw: 'Map draw',
|
||||
runPlanManage: 'Run plan',
|
||||
productEdit: 'Product editor',
|
||||
|
||||
newDesignEditor: 'Editor',
|
||||
newDesignEditorList: 'Editor List',
|
||||
newDesignDraftEditorList: 'Draft Editor List',
|
||||
uploadPdf: 'Upload Pdf',
|
||||
fileManage: 'File Manage',
|
||||
newDesignEditor: 'Editor',
|
||||
newDesignEditorList: 'Editor List',
|
||||
newDesignDraftEditorList: 'Draft Editor List',
|
||||
uploadPdf: 'Upload Pdf',
|
||||
fileManage: 'File Manage',
|
||||
|
||||
designhomePage: 'Public map',
|
||||
designUserPage: 'Personal map',
|
||||
newDesignUserPage: 'Personal map',
|
||||
designhomePage: 'Public map',
|
||||
designUserPage: 'Personal map',
|
||||
newDesignUserPage: 'Personal map',
|
||||
|
||||
lessaonManage: 'Lesson',
|
||||
lessonEdit: 'Lesson editor',
|
||||
trainingRecord: 'Trainning recording',
|
||||
trainingRule: 'Training rules',
|
||||
trainingManage: 'Training management',
|
||||
taskManage: 'Task management',
|
||||
scriptManage: 'Script',
|
||||
lessaonManage: 'Lesson',
|
||||
lessonEdit: 'Lesson editor',
|
||||
trainingRecord: 'Trainning recording',
|
||||
trainingRule: 'Training rules',
|
||||
trainingManage: 'Training management',
|
||||
taskManage: 'Task management',
|
||||
scriptManage: 'Script',
|
||||
|
||||
teachSystem: 'Teaching',
|
||||
teachSystem: 'Teaching',
|
||||
|
||||
examSystem: 'Examination',
|
||||
examSystem: 'Examination',
|
||||
|
||||
demonstrationSystem: 'Simulation',
|
||||
demonstrationSystem: 'Simulation',
|
||||
|
||||
dpSystem: 'Large screen',
|
||||
dpSystem: 'Large screen',
|
||||
|
||||
planSystem: 'Lian plan',
|
||||
planSystem: 'Lian plan',
|
||||
|
||||
replayManage: 'Playback',
|
||||
replayManage: 'Playback',
|
||||
|
||||
permissionManage: 'Permission',
|
||||
selfPermission: 'My Permission',
|
||||
permissionManage: 'Permission',
|
||||
selfPermission: 'My Permission',
|
||||
|
||||
pulishManage: 'Publication',
|
||||
publishMapManage: 'Publishing map management',
|
||||
productStateManage: 'Product state management',
|
||||
publishLessonManage: 'Publishing lesson management',
|
||||
runPlanTemplateManage: 'Template plan management',
|
||||
runPlanCommonManage: 'Loading Plan Managemen',
|
||||
runPlanEveryDayManage: 'Daily plan Management',
|
||||
examRuleManage: 'Management of examination rules',
|
||||
pulishManage: 'Publication',
|
||||
publishMapManage: 'Publishing map management',
|
||||
productStateManage: 'Product state management',
|
||||
publishLessonManage: 'Publishing lesson management',
|
||||
runPlanTemplateManage: 'Template plan management',
|
||||
runPlanCommonManage: 'Loading Plan Managemen',
|
||||
runPlanEveryDayManage: 'Daily plan Management',
|
||||
examRuleManage: 'Management of examination rules',
|
||||
|
||||
orderAuthorityManage: 'Order&Authority',
|
||||
commodityManage: 'Commodity management',
|
||||
orderManage: 'Order management',
|
||||
authorityManage: 'authority management',
|
||||
authorityTransferManage: 'Privilege distribution management',
|
||||
userRulesManage: 'User Rights Statistics',
|
||||
addCommodity: 'Adding goods',
|
||||
addOrder: 'Adding orders',
|
||||
addCoursePermissions: 'Adding course permissions',
|
||||
orderAuthorityManage: 'Order&Authority',
|
||||
commodityManage: 'Commodity management',
|
||||
orderManage: 'Order management',
|
||||
authorityManage: 'authority management',
|
||||
authorityTransferManage: 'Privilege distribution management',
|
||||
userRulesManage: 'User Rights Statistics',
|
||||
addCommodity: 'Adding goods',
|
||||
addOrder: 'Adding orders',
|
||||
addCoursePermissions: 'Adding course permissions',
|
||||
|
||||
systemManage: 'System',
|
||||
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',
|
||||
userSimulationManage: 'User simulation management',
|
||||
existingSimulation: 'Existence simulation management',
|
||||
ibpDraw: 'Ibp Draw',
|
||||
trainingPlatform: 'trainingPlatform',
|
||||
releaseApplication: 'Release application',
|
||||
courseApplication: 'Course release application',
|
||||
scriptReleaseApplication: 'Script release application',
|
||||
runGraphReleaseApplication: 'Run graph release application',
|
||||
subsystemGeneration: 'Subsystem generation',
|
||||
newsBulletin: 'New bulletin',
|
||||
notificationBulletin: 'Systematic notification',
|
||||
commandDictionary: 'Command dictionary',
|
||||
configLine: 'Line management',
|
||||
deviceManage: 'Device management',
|
||||
iscsDraw: 'Iscs Draw',
|
||||
iscsSystem: 'Iscs System',
|
||||
studentManage: 'Student manage',
|
||||
examDetail: 'Exam detail',
|
||||
raceManage: 'Race manage',
|
||||
practiceManage: 'Practice manage',
|
||||
bankManage: 'Bank manage',
|
||||
sceneManage: 'Scene manage',
|
||||
companyManage: 'Company manage',
|
||||
authorApply: 'Grant application',
|
||||
AuthorList: 'Authorization code list',
|
||||
questionsRuleManage: 'Question rule manage',
|
||||
preTheoryData: 'Pre Theory Data',
|
||||
boardManage: 'Message Board Manage',
|
||||
publishIBPManage: 'publish IBP Manage',
|
||||
publishISCSManage: 'publish ISCS Manage',
|
||||
publishTrainingManage: 'publish Training Manage',
|
||||
voiceTraining: 'Voice Training',
|
||||
mapGroup: 'Map Group',
|
||||
drawingMange: 'Drawing Mange',
|
||||
projectServer: 'Project Server',
|
||||
audioResourcesManage: 'Audio Resources Manage',
|
||||
iscsDeviceManage: 'ISCS Device Manage',
|
||||
iscsResourcesManage: 'ISCS Resources Manage',
|
||||
projectManage: 'Project Manage',
|
||||
frontProjectConfigManage: 'Front Project Config Manage',
|
||||
training: 'Training',
|
||||
theory: 'Theory'
|
||||
};
|
||||
systemManage: 'System',
|
||||
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',
|
||||
userSimulationManage: 'User simulation management',
|
||||
existingSimulation: 'Existence simulation management',
|
||||
ibpDraw: 'Ibp Draw',
|
||||
trainingPlatform: 'trainingPlatform',
|
||||
releaseApplication: 'Release application',
|
||||
courseApplication: 'Course release application',
|
||||
scriptReleaseApplication: 'Script release application',
|
||||
runGraphReleaseApplication: 'Run graph release application',
|
||||
subsystemGeneration: 'Subsystem generation',
|
||||
newsBulletin: 'New bulletin',
|
||||
notificationBulletin: 'Systematic notification',
|
||||
commandDictionary: 'Command dictionary',
|
||||
configLine: 'Line management',
|
||||
deviceManage: 'Device management',
|
||||
iscsDraw: 'Iscs Draw',
|
||||
iscsSystem: 'Iscs System',
|
||||
studentManage: 'Student manage',
|
||||
examDetail: 'Exam detail',
|
||||
raceManage: 'Race manage',
|
||||
practiceManage: 'Practice manage',
|
||||
bankManage: 'Bank manage',
|
||||
sceneManage: 'Scene manage',
|
||||
companyManage: 'Company manage',
|
||||
authorApply: 'Grant application',
|
||||
AuthorList: 'Authorization code list',
|
||||
questionsRuleManage: 'Question rule manage',
|
||||
preTheoryData: 'Pre Theory Data',
|
||||
boardManage: 'Message Board Manage',
|
||||
publishIBPManage: 'publish IBP Manage',
|
||||
publishISCSManage: 'publish ISCS Manage',
|
||||
publishTrainingManage: 'publish Training Manage',
|
||||
voiceTraining: 'Voice Training',
|
||||
mapGroup: 'Map Group',
|
||||
drawingMange: 'Drawing Mange',
|
||||
projectServer: 'Project Server',
|
||||
audioResourcesManage: 'Audio Resources Manage',
|
||||
iscsDeviceManage: 'ISCS Device Manage',
|
||||
iscsResourcesManage: 'ISCS Resources Manage',
|
||||
projectManage: 'Project Manage',
|
||||
frontProjectConfigManage: 'Front Project Config Manage',
|
||||
}
|
||||
|
@ -51,7 +51,7 @@ export default {
|
||||
menuSignal: {
|
||||
routeSelect: '进路选排',
|
||||
routeCancel: '进路取消',
|
||||
signalBlock: '信号封锁',
|
||||
signalBlock: '信号封闭',
|
||||
signalDeblock: '信号解封',
|
||||
signalReopen: '信号重开',
|
||||
guideRouteHandle: '引导进路办理',
|
||||
|
@ -1,7 +1,7 @@
|
||||
export default {
|
||||
simulation: '仿真',
|
||||
simulation: 'Simulation',
|
||||
multiplayerSimulation: '多人仿真',
|
||||
regulationSimulation: '监管仿真',
|
||||
regulationSimulation: 'Regulation of the simulation',
|
||||
teachingManagement: '教学管理',
|
||||
classroom: '班级管理',
|
||||
student: '学生管理',
|
||||
@ -38,12 +38,6 @@ export default {
|
||||
permissionManage: '权限管理',
|
||||
authorityTransferManage: '权限分发管理',
|
||||
userRulesManage: '用户权限管理',
|
||||
contestDataManage:'竞赛数据管理',
|
||||
contestSubjectManage:'竞赛题目管理',
|
||||
contestTaskManage:'竞赛任务管理',
|
||||
contestSceneManage:'竞赛场景管理',
|
||||
contestTaskScoreManage:'竞赛任务评分管理',
|
||||
contestSeasonManage:'竞赛赛季管理',
|
||||
fileManage: '文件管理',
|
||||
frontResourceManage: '前端资源管理',
|
||||
iscsPrerecordManage: 'ISCS预录管理',
|
||||
|
@ -1,116 +1,114 @@
|
||||
export default {
|
||||
homePage: '首页',
|
||||
homePage: '首页',
|
||||
|
||||
designhomePage: '公共地图',
|
||||
designUserPage: '个人地图',
|
||||
newDesignUserPage: '地图绘制',
|
||||
newDesignEditor: '编辑器',
|
||||
newDesignEditorList: '图文列表',
|
||||
newDesignDraftEditorList: '文章草稿',
|
||||
uploadPdf: 'PDF上传',
|
||||
fileManage: '文件管理',
|
||||
designhomePage: '公共地图',
|
||||
designUserPage: '个人地图',
|
||||
newDesignUserPage: '地图绘制',
|
||||
newDesignEditor: '编辑器',
|
||||
newDesignEditorList: '图文列表',
|
||||
newDesignDraftEditorList: '文章草稿',
|
||||
uploadPdf: 'PDF上传',
|
||||
fileManage: '文件管理',
|
||||
|
||||
mapManage: '地图管理',
|
||||
skinManage: '皮肤管理',
|
||||
mapDraw: '地图绘制',
|
||||
runPlanManage: '运行图管理',
|
||||
productEdit: '产品编辑',
|
||||
mapManage: '地图管理',
|
||||
skinManage: '皮肤管理',
|
||||
mapDraw: '地图绘制',
|
||||
runPlanManage: '运行图管理',
|
||||
productEdit: '产品编辑',
|
||||
|
||||
lessaonManage: '课程管理',
|
||||
trainingRecord: '实训录制',
|
||||
taskManage: '任务管理',
|
||||
trainingRule: '操作定义',
|
||||
trainingManage: '实训管理',
|
||||
lessonEdit: '课程编辑',
|
||||
scriptManage: '剧本管理',
|
||||
lessaonManage: '课程管理',
|
||||
trainingRecord: '实训录制',
|
||||
taskManage: '任务管理',
|
||||
trainingRule: '操作定义',
|
||||
trainingManage: '实训管理',
|
||||
lessonEdit: '课程编辑',
|
||||
scriptManage: '剧本管理',
|
||||
|
||||
teachSystem: '教学系统',
|
||||
teachSystem: '教学系统',
|
||||
|
||||
examSystem: '考试系统',
|
||||
examSystem: '考试系统',
|
||||
|
||||
demonstrationSystem: '仿真系统',
|
||||
demonstrationSystem: '仿真系统',
|
||||
|
||||
dpSystem: '大屏系统',
|
||||
dpSystem: '大屏系统',
|
||||
|
||||
planSystem: '琏计划',
|
||||
planSystem: '琏计划',
|
||||
|
||||
replayManage: '回放管理',
|
||||
replayManage: '回放管理',
|
||||
|
||||
permissionManage: '权限管理',
|
||||
selfPermission: '我的权限',
|
||||
permissionManage: '权限管理',
|
||||
selfPermission: '我的权限',
|
||||
|
||||
pulishManage: '发布内容管理',
|
||||
publishMapManage: '发布地图管理',
|
||||
productStateManage: '产品状态管理',
|
||||
publishLessonManage: '发布课程管理',
|
||||
runPlanTemplateManage: '模板运行图管理',
|
||||
runPlanCommonManage: '加载计划运行图管理',
|
||||
runPlanEveryDayManage: '每日运行图管理',
|
||||
examRuleManage: '试卷规则管理',
|
||||
pulishManage: '发布内容管理',
|
||||
publishMapManage: '发布地图管理',
|
||||
productStateManage: '产品状态管理',
|
||||
publishLessonManage: '发布课程管理',
|
||||
runPlanTemplateManage: '模板运行图管理',
|
||||
runPlanCommonManage: '加载计划运行图管理',
|
||||
runPlanEveryDayManage: '每日运行图管理',
|
||||
examRuleManage: '试卷规则管理',
|
||||
|
||||
orderAuthorityManage: '订单权限管理',
|
||||
commodityManage: '商品管理',
|
||||
orderManage: '订单管理',
|
||||
authorityManage: '权限管理',
|
||||
authorityTransferManage: '权限分发管理',
|
||||
userRulesManage: '用户权限统计',
|
||||
addCommodity: '添加商品',
|
||||
addOrder: '添加订单',
|
||||
addCoursePermissions: '添加课程权限',
|
||||
orderAuthorityManage: '订单权限管理',
|
||||
commodityManage: '商品管理',
|
||||
orderManage: '订单管理',
|
||||
authorityManage: '权限管理',
|
||||
authorityTransferManage: '权限分发管理',
|
||||
userRulesManage: '用户权限统计',
|
||||
addCommodity: '添加商品',
|
||||
addOrder: '添加订单',
|
||||
addCoursePermissions: '添加课程权限',
|
||||
|
||||
systemManage: '系统管理',
|
||||
dataDictionary: '数据字典',
|
||||
dataDictionaryDetails: '数据字典明细',
|
||||
userManage: '用户管理',
|
||||
loginUserManage: '在线用户管理',
|
||||
cacheManage: '缓存管理',
|
||||
userTrainingManage: '用户实训统计',
|
||||
userExamManage: '用户考试统计',
|
||||
userSimulationManage: '用户仿真统计',
|
||||
existingSimulation: '存在仿真管理',
|
||||
systemManage: '系统管理',
|
||||
dataDictionary: '数据字典',
|
||||
dataDictionaryDetails: '数据字典明细',
|
||||
userManage: '用户管理',
|
||||
loginUserManage: '在线用户管理',
|
||||
cacheManage: '缓存管理',
|
||||
userTrainingManage: '用户实训统计',
|
||||
userExamManage: '用户考试统计',
|
||||
userSimulationManage: '用户仿真统计',
|
||||
existingSimulation: '存在仿真管理',
|
||||
|
||||
ibpDraw: 'Ibp盘绘制',
|
||||
trainingPlatform: '实训平台',
|
||||
releaseApplication: '发布申请',
|
||||
courseApplication: '课程发布申请',
|
||||
scriptReleaseApplication: '剧本发布申请',
|
||||
runGraphReleaseApplication: '运行图发布申请',
|
||||
subsystemGeneration: '子系统生成',
|
||||
newsBulletin: '消息公告',
|
||||
notificationBulletin: '系统通知',
|
||||
commandDictionary: '指令字典',
|
||||
configLine: '线路管理',
|
||||
deviceManage: '设备管理',
|
||||
iscsDraw: 'Iscs绘制',
|
||||
iscsSystem: 'Iscs系统',
|
||||
studentManage: '学生管理',
|
||||
competitionManage: '竞赛管理',
|
||||
refereeJManage: '仿真管理',
|
||||
homeJsxt: '首页',
|
||||
examDetail: '考试详情',
|
||||
raceManage: '竞赛管理',
|
||||
recaList: '报名列表',
|
||||
bankManage: '题库列表',
|
||||
practiceManage: '实操列表',
|
||||
sceneManage: '场景列表',
|
||||
companyManage: '组织管理',
|
||||
authorApply: '授权申请',
|
||||
AuthorList: '授权列表',
|
||||
questionsRuleManage: '出题规则管理',
|
||||
preTheoryData: '理论导入预处理',
|
||||
boardManage: '留言板管理',
|
||||
publishIBPManage: '发布IBP盘管理',
|
||||
publishISCSManage: '发布ISCS管理',
|
||||
publishTrainingManage: '发布实训管理',
|
||||
voiceTraining: '语音训练',
|
||||
mapGroup: '地图分组',
|
||||
drawingMange: '图纸管理',
|
||||
projectServer: '项目域名',
|
||||
audioResourcesManage: '音频资源管理',
|
||||
iscsDeviceManage: 'ISCS设备管理',
|
||||
iscsResourcesManage: 'ISCS资源管理',
|
||||
projectManage: '项目管理',
|
||||
frontProjectConfigManage: '前端项目配置管理',
|
||||
training: '实训',
|
||||
theory: '理论'
|
||||
};
|
||||
ibpDraw: 'Ibp盘绘制',
|
||||
trainingPlatform: '实训平台',
|
||||
releaseApplication: '发布申请',
|
||||
courseApplication: '课程发布申请',
|
||||
scriptReleaseApplication: '剧本发布申请',
|
||||
runGraphReleaseApplication: '运行图发布申请',
|
||||
subsystemGeneration: '子系统生成',
|
||||
newsBulletin: '消息公告',
|
||||
notificationBulletin: '系统通知',
|
||||
commandDictionary: '指令字典',
|
||||
configLine: '线路管理',
|
||||
deviceManage: '设备管理',
|
||||
iscsDraw: 'Iscs绘制',
|
||||
iscsSystem: 'Iscs系统',
|
||||
studentManage: '学生管理',
|
||||
competitionManage: '竞赛管理',
|
||||
refereeJManage: '仿真管理',
|
||||
homeJsxt: '首页',
|
||||
examDetail: '考试详情',
|
||||
raceManage: '竞赛管理',
|
||||
recaList: '报名列表',
|
||||
bankManage: '题库列表',
|
||||
practiceManage: '实操列表',
|
||||
sceneManage: '场景列表',
|
||||
companyManage: '组织管理',
|
||||
authorApply: '授权申请',
|
||||
AuthorList: '授权列表',
|
||||
questionsRuleManage: '出题规则管理',
|
||||
preTheoryData: '理论导入预处理',
|
||||
boardManage: '留言板管理',
|
||||
publishIBPManage: '发布IBP盘管理',
|
||||
publishISCSManage: '发布ISCS管理',
|
||||
publishTrainingManage: '发布实训管理',
|
||||
voiceTraining: '语音训练',
|
||||
mapGroup: '地图分组',
|
||||
drawingMange: '图纸管理',
|
||||
projectServer: '项目域名',
|
||||
audioResourcesManage: '音频资源管理',
|
||||
iscsDeviceManage: 'ISCS设备管理',
|
||||
iscsResourcesManage: 'ISCS资源管理',
|
||||
projectManage: '项目管理',
|
||||
frontProjectConfigManage: '前端项目配置管理',
|
||||
}
|
||||
|
@ -9,15 +9,7 @@ const mapDeviceStyle = {
|
||||
'09': 'xian_02',
|
||||
'10': 'xian_01', // 西安一号线
|
||||
'11': 'xian_01', // 西安三号线
|
||||
'12': 'ningbo_03', // 宁波三号线
|
||||
'13': 'race_01', // 2020国赛线路
|
||||
'14':'nanjing_02', // 南京二号线
|
||||
'15': 'datie_01', // 大铁线路一
|
||||
'16': 'datie_02', // 大铁线路二
|
||||
'17':'datie_tky', // 铁科院大铁线路
|
||||
'18':'datie_jd1a',
|
||||
'19': 'datie_ksk', // 大铁 卡斯柯
|
||||
'20': 'ningbo_01'
|
||||
'12': 'ningbo_03' // 宁波三号线
|
||||
};
|
||||
|
||||
export function selectLineCode(code) {
|
||||
|
@ -396,7 +396,7 @@ export function JobPaneData() {
|
||||
],
|
||||
},
|
||||
{
|
||||
name:"工电调度",
|
||||
name:"电力调度",
|
||||
value:"dldd",
|
||||
text:"负责供电系统的正常运行。",
|
||||
picurl:"",
|
||||
|
@ -17,8 +17,7 @@ const mapDeviceStyle = {
|
||||
'16': 'datie_02', // 大铁线路二
|
||||
'17':'datie_tky', // 铁科院大铁线路
|
||||
'18':'datie_jd1a',
|
||||
'19': 'datie_ksk', // 大铁 卡斯柯
|
||||
'20': 'ningbo_special'
|
||||
'19': 'datie_ksk' // 大铁 卡斯柯
|
||||
};
|
||||
|
||||
export function selectLineCode(code) {
|
||||
|
@ -346,15 +346,14 @@ class SkinCode extends defaultStyle {
|
||||
|
||||
this[deviceType.StationTurnBack] = { // 站后折返
|
||||
lamp: {
|
||||
fill: '#ccc', // 填充色
|
||||
radiusR: 6,
|
||||
otherFill: '#0F0' // 控制灯大小
|
||||
fill: '#f1f1f1', // 填充色
|
||||
radiusR: 7 // 控制灯大小
|
||||
},
|
||||
text: {
|
||||
titleTextShow: false,
|
||||
fontWeight: 580,
|
||||
fontSize: 10,
|
||||
distance: 5
|
||||
distance: 10
|
||||
},
|
||||
rect: {
|
||||
fill: 'rgba(0,0,0,0)',
|
||||
|
@ -415,24 +415,24 @@ class SkinCode extends defaultStyle {
|
||||
lineWidth: 1
|
||||
},
|
||||
emergencyControl: { // 紧急站控
|
||||
show: false,
|
||||
offset: { x: 0, y: 0 },
|
||||
text: '紧急站控',
|
||||
show: true,
|
||||
offset: { x: 10, y: 0 },
|
||||
text: 'Emergency Ctrl',
|
||||
arrowShow: false,
|
||||
grayColor: '#7F7F7F'
|
||||
},
|
||||
centerControl: { // 中控
|
||||
show: false,
|
||||
offset: { x: 0, y: 0 },
|
||||
text: '中控',
|
||||
show: true,
|
||||
offset: { x: -190, y: 0 },
|
||||
text: 'Center Ctrl',
|
||||
buttonShow: false,
|
||||
arrowShow: false,
|
||||
grayColor: '#7F7F7F'
|
||||
},
|
||||
substationControl: { // 站控按钮
|
||||
show: false,
|
||||
offset: { x: 0, y: 0 },
|
||||
text: '站控',
|
||||
show: true,
|
||||
offset: { x: -160, y: 0 },
|
||||
text: 'Station Ctrl',
|
||||
arrowShow: false,
|
||||
grayColor: '#7F7F7F'
|
||||
},
|
||||
@ -444,34 +444,34 @@ class SkinCode extends defaultStyle {
|
||||
grayColor: '#7F7F7F'
|
||||
},
|
||||
veryControl: {
|
||||
show: true,
|
||||
offset: { x: 0, y: 0 },
|
||||
show: false,
|
||||
offset: { x: 50, y: 0 },
|
||||
lightColor: '#f00',
|
||||
defaultColor: '#7F7F7F',
|
||||
text: '非常站控'
|
||||
},
|
||||
selfDiscipline: {
|
||||
show: true,
|
||||
offset: { x: 0, y: 0 },
|
||||
text: '允许自律',
|
||||
defaultColor: '#7F7F7F',
|
||||
lightColor: '#ff0'
|
||||
text: 'Very station controlled'
|
||||
},
|
||||
// selfDiscipline: {
|
||||
// show: false,
|
||||
// offset: { x: -140, y: 0 },
|
||||
// text: 'Self-regulation allowed',
|
||||
// defaultColor: '#7F7F7F',
|
||||
// lightColor: '#ff0'
|
||||
// },
|
||||
selfDisciplineControl: {
|
||||
show: true,
|
||||
offset: { x: 0, y: 0 },
|
||||
show: false,
|
||||
offset: { x: -50, y: 0 },
|
||||
lightColor: '#0f0',
|
||||
defaultColor: '#7F7F7F',
|
||||
text: '自律控制'
|
||||
},
|
||||
veryControlButton: {
|
||||
offset: { x: 0, y: 0 },
|
||||
text: '非常站控',
|
||||
lightColor: '#ff0',
|
||||
border:true, // 有边框
|
||||
borderLine:1,
|
||||
defaultColor: '#ccc'
|
||||
text: 'Self-discipline control'
|
||||
},
|
||||
// veryControlButton: {
|
||||
// offset: { x: 140, y: 0 },
|
||||
// text: 'Very station controlled',
|
||||
// lightColor: '#ff0',
|
||||
// border:true, // 有边框
|
||||
// borderLine:1,
|
||||
// defaultColor: '#ccc'
|
||||
// },
|
||||
selfDisciplineThree: {
|
||||
offset: { x: 0, y: 0 },
|
||||
text: '分散自律',
|
||||
@ -487,27 +487,41 @@ class SkinCode extends defaultStyle {
|
||||
},
|
||||
planControl: {
|
||||
show: true,
|
||||
offset: { x: 0, y: 0 },
|
||||
text: '计划控制',
|
||||
offset: { x: -20, y: 0 },
|
||||
text: 'Plan Ctrl',
|
||||
lightColor: '#0f0',
|
||||
defaultColor: '#7F7F7F'
|
||||
},
|
||||
centerCommunication: {
|
||||
show: true,
|
||||
offset: { x: 0, y: 30 },
|
||||
text: '中心通信',
|
||||
offset: { x: 100, y: 0 },
|
||||
text: 'COMM',
|
||||
lightColor: '#FF0000',
|
||||
defaultColor: '#0f0'
|
||||
},
|
||||
selfDisciplineCommunication: {
|
||||
etcs2: {
|
||||
show: true,
|
||||
offset: { x: 40, y: 0 },
|
||||
text: 'ETCS-2',
|
||||
lightColor: '#FF0000',
|
||||
defaultColor: '#0f0'
|
||||
},
|
||||
etcs3: {
|
||||
show: true,
|
||||
offset: { x: 100, y: 0 },
|
||||
text: 'ETCS-3',
|
||||
lightColor: '#FF0000',
|
||||
defaultColor: '#ccc'
|
||||
},
|
||||
selfDisciplineCommunication: {
|
||||
show: false,
|
||||
offset: { x: 0, y: 30 },
|
||||
text: '自律机通信',
|
||||
lightColor: '#7F7F7F',
|
||||
defaultColor: '#0f0'
|
||||
},
|
||||
allowedTurnBack: {
|
||||
show: true,
|
||||
show: false,
|
||||
offset: { x: 0, y: 30 },
|
||||
text: '允许转回',
|
||||
lightColor: '#ff0',
|
||||
@ -847,16 +861,18 @@ class SkinCode extends defaultStyle {
|
||||
trainBody: {
|
||||
fontFamily: 'consolas',
|
||||
trainBodyLineWidth: 1, // 车身line宽
|
||||
changeTrainWidth: false, // 是否根据车身上车组号、服务号、车次号、目的地码显示情况改变列车长度
|
||||
changeTrainWidth: true, // 是否根据车身上车组号、服务号、车次号、目的地码显示情况改变列车长度
|
||||
specialTrainType: [
|
||||
{
|
||||
type: '03',
|
||||
serviceNumber: '---',
|
||||
nameFormat: 'groupNumber:serviceNumber'
|
||||
// nameFormat: 'groupNumber:serviceNumber'
|
||||
nameFormat:'groupNumber'
|
||||
},
|
||||
{
|
||||
type: '03',
|
||||
nameFormat: 'serviceNumber:trainNumber'
|
||||
// nameFormat: 'serviceNumber:trainNumber'
|
||||
nameFormat:'groupNumber'
|
||||
}
|
||||
], // 特殊列车类型需设置显示格式
|
||||
lrPadding: 4, // 两边间隔
|
||||
@ -865,7 +881,7 @@ class SkinCode extends defaultStyle {
|
||||
trainSidelineColor: '#F00',
|
||||
trainSidelineStopColor: '#000',
|
||||
// trainNameFormat: 'serviceNumber:targetCode'// 列车显示格式
|
||||
trainNameFormat:'tripNumber'
|
||||
trainNameFormat:'groupNumber'
|
||||
},
|
||||
directionArrow: {
|
||||
},
|
||||
@ -954,15 +970,15 @@ class SkinCode extends defaultStyle {
|
||||
directionType: [
|
||||
{
|
||||
type: 1,
|
||||
lineLShow: true,
|
||||
lineRShow: true,
|
||||
lineLShow: false,
|
||||
lineRShow: false,
|
||||
arrowLShow: false,
|
||||
arrowRShow: true
|
||||
},
|
||||
{
|
||||
type: 0,
|
||||
lineLShow: true,
|
||||
lineRShow: true,
|
||||
lineLShow: false,
|
||||
lineRShow: false,
|
||||
arrowLShow: true,
|
||||
arrowRShow: false
|
||||
}
|
||||
|
@ -189,13 +189,6 @@ class SkinCode extends defaultStyle {
|
||||
},
|
||||
lowButton:{
|
||||
display: false // 现地 信号机按钮
|
||||
},
|
||||
transmission: { // 传输信号机
|
||||
fillColor: '#f00',
|
||||
fillColorVirtual: '#f00',
|
||||
sideLength: 20,
|
||||
textColor: '#fff',
|
||||
strokeColor: '#00FFFF'
|
||||
}
|
||||
};
|
||||
|
||||
@ -448,8 +441,7 @@ class SkinCode extends defaultStyle {
|
||||
monolockLocationColor: '#ea282c', // 道岔单锁'定位'颜色
|
||||
monolockInversionColor: '#ea282c', // 道岔单锁'反位'颜色
|
||||
block: true, // 封锁名称
|
||||
faultFlashing: true, // 故障闪烁
|
||||
lossRect: true // 道岔失表矩形
|
||||
faultFlashing: true // 故障闪烁
|
||||
},
|
||||
sectionAction: {
|
||||
flag: false, // 道岔 关联区段显示
|
||||
|
@ -192,7 +192,6 @@ class SkinCode extends defaultStyle {
|
||||
closeSignalVerColor: '#FF1F10', // 关闭信号 灯柱竖柱颜色 level 1
|
||||
guideSignalVerColor: '#FFFF00', // 引导信号控制级 灯柱竖柱颜色 level 2
|
||||
autoRouteVerColor: '#9DFF6E', // 联锁自动进路颜色
|
||||
atpLevelColor: '#009600', // ATP级别灯柱颜色
|
||||
standardVerticalShape: '8', // 灯柱 竖杆 8边型
|
||||
standardLength: 12, // 高柱长度
|
||||
standardHeight: 5, // 灯柱高度
|
||||
@ -562,7 +561,7 @@ class SkinCode extends defaultStyle {
|
||||
|
||||
this[deviceType.Switch] = {
|
||||
shapeFlash: true, // 道岔转动失去表示 道岔遮罩删除
|
||||
faultNoHandle: false, // 南京二 道岔长闪 道岔无状态 道岔区段 bc 闪烁 (南京叶老师要求有短闪)
|
||||
faultNoHandle: true, // 南京二 道岔长闪 道岔无状态 道岔区段 bc 闪烁
|
||||
text: {
|
||||
show: true, // 道岔名称显示
|
||||
position: 0, // 区段名称位置 1 上面 -1 下面 0 对称
|
||||
|
@ -1,870 +0,0 @@
|
||||
import defaultStyle from '../defaultStyle';
|
||||
import deviceType from '../../constant/deviceType';
|
||||
|
||||
class SkinCode extends defaultStyle {
|
||||
constructor() {
|
||||
super();
|
||||
this.fontFamily = '宋体';
|
||||
this[deviceType.Section] = {
|
||||
elemnetType:['name', 'standTrackText', 'reentryTrackText', 'transferTrackText', 'destinationText', 'line', 'separator', 'speedLimit'],
|
||||
active: {
|
||||
routeColor: false // 进路触发颜色
|
||||
},
|
||||
name: {
|
||||
z: 10,
|
||||
position: 0, // 区段名称位置 1 上面 -1 下面 0 对称
|
||||
distance: 10, // 文字离区段距离
|
||||
fontSize: 12, // 字体大小
|
||||
fontWeight: 'normal', // 字体粗细
|
||||
fontColor: 'lightgreen', // 字体颜色
|
||||
textAlign: 'center', // 水平对齐方式
|
||||
textPosition: 'inside', // 文字位置
|
||||
textVerticalAlign: 'middle', // 文字垂直对齐方式
|
||||
approachColor: '#FFFFFF'
|
||||
},
|
||||
logicText: { // 逻辑区段名称
|
||||
z: 10,
|
||||
position: 0, // 区段名称位置 1 上面 -1 下面 0 对称
|
||||
distance: 12, // 文字离区段距离
|
||||
fontSize: 11, // 字体大小
|
||||
fontWeight: 'normal', // 字体粗细
|
||||
fontColor: '#FFFFFF', // 字体颜色
|
||||
textAlign: 'center', // 水平对齐方式
|
||||
textPosition: 'inside', // 文字位置
|
||||
textVerticalAlign: 'middle' // 文字垂直对齐方式
|
||||
},
|
||||
standTrackText: { // 站台
|
||||
z: 10,
|
||||
position: 0, // 区段名称位置 1 上面 -1 下面 0 对称
|
||||
distance: 24, // 文字离区段距离
|
||||
fontSize: 11, // 字体大小
|
||||
fontWeight: 'normal', // 字体粗细
|
||||
fontColor: '#FFFFFF', // 字体颜色
|
||||
textAlign: 'center', // 水平对齐方式
|
||||
textPosition: 'inside', // 文字位置
|
||||
textVerticalAlign: 'middle' // 文字垂直对齐方式
|
||||
},
|
||||
reentryTrackText: { // 折返
|
||||
z: 10,
|
||||
position: 0, // 区段名称位置 1 上面 -1 下面 0 对称
|
||||
distance: 36, // 文字离区段距离
|
||||
fontSize: 11, // 字体大小
|
||||
fontWeight: 'normal', // 字体粗细
|
||||
fontColor: '#FFFFFF', // 字体颜色
|
||||
textAlign: 'center', // 水平对齐方式
|
||||
textPosition: 'inside', // 文字位置
|
||||
textVerticalAlign: 'middle' // 文字垂直对齐方式
|
||||
},
|
||||
transferTrackText: { // 转换轨
|
||||
z: 10,
|
||||
position: 0, // 区段名称位置 1 上面 -1 下面 0 对称
|
||||
distance: 36, // 文字离区段距离
|
||||
fontSize: 11, // 字体大小
|
||||
fontWeight: 'normal', // 字体粗细
|
||||
fontColor: '#FFFFFF', // 字体颜色
|
||||
textAlign: 'center', // 水平对齐方式
|
||||
textPosition: 'inside', // 文字位置
|
||||
textVerticalAlign: 'middle' // 文字垂直对齐方式
|
||||
},
|
||||
destinationText: { // 目的地
|
||||
z: 10,
|
||||
position: 0, // 区段名称位置 1 上面 -1 下面 0 对称
|
||||
distance: 12, // 文字离区段距离
|
||||
fontSize: 11, // 字体大小
|
||||
fontWeight: 'bold', // 字体粗细
|
||||
fontColor: 'yellow', // 字体颜色
|
||||
textAlign: 'center', // 水平对齐方式
|
||||
textPosition: 'inside', // 文字位置
|
||||
textVerticalAlign: 'middle' // 文字垂直对齐方式
|
||||
},
|
||||
line: {
|
||||
z: 0,
|
||||
width: 5, // 区段宽度
|
||||
beyondWidth: 0, // 区段宽超出宽度
|
||||
invadeColor: '#FFFFFF', // 区段侵入颜色
|
||||
spareColor: '#5578B6', // 区段空闲颜色
|
||||
communicationOccupiedColor: 'red', // 区段通信车占用颜色 // 调整 未确定
|
||||
unCommunicationOccupiedColor: '#FF0000', // 区段非通讯车占用颜色
|
||||
routeLockColor: '#00ff00', // 区段进路锁定颜色
|
||||
faultLockColor: 'white', // 区段故障锁定颜色
|
||||
undefinedColor: '#0071C1', // 区段未定义颜色
|
||||
blockColor: '#d659d6', // 区段封锁颜色(淡紫色)
|
||||
atcExcisionColor: '#A0522D', // 区段atc切除颜色
|
||||
atsExcisionColor: '#A0522D', // 区段ats切除颜色
|
||||
invalidColor: '#AC8F40', // 计轴故障颜色
|
||||
timeReleaseColor: '#3F3F3F', // 区段延时释放颜色
|
||||
protectiveLockColor: '#03C85C', // 区段保护锁闭 延续保护
|
||||
protectiveTimeReleaseColor: '#0071C1', // 区段保护延时解锁
|
||||
logicalColor: '#FFFF00', // 逻辑区段颜色 (未用)
|
||||
logicalTextColor: 'white' // 逻辑区段名称颜色 (未用)
|
||||
},
|
||||
speedLimit: { // 限速元素
|
||||
z: 2,
|
||||
width: 1, // 限速线的宽度
|
||||
distance: 5, // 限速线距离区段距离
|
||||
lineColor: '#C0C000', // 限速线颜色 (黄色透明光)
|
||||
nameShow: false // 名称显示
|
||||
},
|
||||
separator: {
|
||||
z: 3, // 分割符层级
|
||||
width: 1.5, // 物理区段分隔符宽度
|
||||
logicWidth:1.5, // 逻辑区段分隔符宽度
|
||||
endWidth: 1.5, // 尽头分隔符宽度
|
||||
endColor: '#FFFFFF', // 尽头分隔符颜色
|
||||
color: 'white', // 区段边界符颜色
|
||||
halfHeight: 5 // 区段分隔符高度的一半
|
||||
},
|
||||
block: {
|
||||
blockGlint: true // 区段封锁闪烁显示
|
||||
},
|
||||
trainPosition:{
|
||||
display: false // 列车实时位置显示
|
||||
},
|
||||
mouseOverStyle: {
|
||||
borderColor: '#fff',
|
||||
borderBackgroundColor: '#22DFDF',
|
||||
textShadowColor: '#22DFDF',
|
||||
nameShow: true,
|
||||
nameBackgroundColor: '#000',
|
||||
lineDash: [3, 3],
|
||||
lineWidthMore: 2.5
|
||||
}
|
||||
};
|
||||
|
||||
this[deviceType.Signal] = {
|
||||
distance: 8, // 设备距离区段的距离
|
||||
post: {
|
||||
standardLength: 6, // 高柱长度
|
||||
standardHeight: 6, // 灯柱高度
|
||||
standardColor: '#C0C0C0', // 灯柱颜色
|
||||
standardVerticalWidth: 2, // 灯柱竖杆宽度
|
||||
standardRailWidth: 2, // 灯柱横杆宽度
|
||||
approachLockColor: '#FFFF00' // 接近锁闭灯柱颜色
|
||||
},
|
||||
text: {
|
||||
show: true, // 信号机名称显示
|
||||
distance: 3, // 文字和灯杆的距离
|
||||
isAlignCenter: false, // 信号字体对其方式
|
||||
fontSize: 11, // 信号机名称字体大小
|
||||
fontWeight: 'bold', // 信号机名称字体粗细
|
||||
defaultColor: 'white', // 信号灯字体默认色
|
||||
blockColor: '#EF0C08', // 信号灯字体锁定颜色
|
||||
checkColor: '#00FF00' // 信号保护区段检查颜色
|
||||
},
|
||||
lamp: {
|
||||
bgShow: false, // 是否被选中
|
||||
guidName: 'double', // 默认引导类型
|
||||
borderVariable: true, // 信号灯边框可变
|
||||
stopWidth: 2, // 禁止线宽度
|
||||
borderWidth: 2, // 信号灯边框线宽度
|
||||
borderColor: '#EF0C08', // 信号灯边框线颜色
|
||||
radiusR: 5, // 信号灯半径
|
||||
grayColor: '#C0C0C0', // 信号灯灰色
|
||||
redColor: 'red', // 信号灯红色
|
||||
greenColor: 'green', // 信号灯绿色
|
||||
yellowColor: 'yellow', // 信号灯黄色
|
||||
whiteColor: '#FFFFFF', // 信号灯白色
|
||||
blueColor: '#0070C0', // 信号灯蓝色
|
||||
blockColor: '#339933', // 信号灯墨绿色
|
||||
blockFlash: true // 信号机封锁闪烁
|
||||
},
|
||||
route: {
|
||||
direction: false, // 自动通过方向
|
||||
radiusR: 8, // 自动通过三角半径
|
||||
offset: { x: 2, y: 0 }, // 自动通过偏移量
|
||||
routeColor: '#00FF00' // 自动进路
|
||||
},
|
||||
auto: {
|
||||
signalFrontTriangle: true, // 信号灯前三角展示
|
||||
direction: true, // 自动通过方向
|
||||
offset: { x: 4, y: 0 }, // 自动通过偏移量
|
||||
width: 5, // 自动宽度
|
||||
manualControl: '#FFFF00', // 人工控制
|
||||
autoRoute: '#00FF00', // 自动进路 (绿色)
|
||||
autoTrigger: '#FFFF00', // 自动触发
|
||||
outConflict: '#C00808' // 出车冲突
|
||||
},
|
||||
delay: {
|
||||
direction: false, // 延时解锁方向
|
||||
offset: { x: -5, y: 0 }, // 延时解锁偏移量
|
||||
fontSize: 11, // 延迟解锁字体大小
|
||||
fontColor: '#C00808', // 延迟解锁颜色
|
||||
fontWeight: 'bold' // 字体粗细
|
||||
|
||||
},
|
||||
button: {
|
||||
distance: 5, // 信号灯按钮距离区段的距离
|
||||
borderDashColor: '#FFFFFF', // 信号灯按钮边线
|
||||
buttonColor: 'darkgreen', // 信号灯按钮颜色
|
||||
buttonLightenColor: 'yellow' // 信号灯按钮闪烁颜色
|
||||
},
|
||||
lowButton:{
|
||||
display: false // 现地 信号机按钮
|
||||
},
|
||||
mouseOverStyle: {
|
||||
borderLineColor: '#FFFFFF',
|
||||
borderLineDash: [3, 3],
|
||||
nameBackgroundColor: '#22DFDF',
|
||||
lampBorderLineColor: '#22DFDF'
|
||||
}
|
||||
};
|
||||
|
||||
this[deviceType.Station] = {
|
||||
// 宁波一号线 车站元素 车站名称
|
||||
elemnetType:['stationText'],
|
||||
stationText:{
|
||||
z:0,
|
||||
fontWeight:'normal', // 字体粗细
|
||||
textPadding:[0, 0], // 字体边距
|
||||
borderColor:'', // 字体边框颜色
|
||||
textBorderWidth:0 // 字体边框宽度
|
||||
},
|
||||
|
||||
kmPostShow: false, // 公里标显示
|
||||
kilometerPosition: 'up', // 公里标朝向
|
||||
text: {
|
||||
fontSize: 11, // 字体大小
|
||||
fontWeight: 'normal', // 字体粗细
|
||||
distance: 5 // 灯跟文字距离
|
||||
},
|
||||
lamp: {
|
||||
radiusR: 6, // 控制灯大小
|
||||
controlColor: '#FFFF00' // 控制灯颜色
|
||||
},
|
||||
turnBack: { // 按图折返
|
||||
lamp: 1, // 灯数量
|
||||
lampSpace: 60 // 灯间距
|
||||
},
|
||||
StationControl: {
|
||||
text: {
|
||||
distance: 12, // 灯和文字之间的距离
|
||||
fontSize: 12, // 字体大小
|
||||
fontFormat: 'consolas', // 字体格式
|
||||
fontColor: '#ffffff', // 字体颜色
|
||||
fontWeight: 'normal', // 字体粗细
|
||||
textAlign: 'middle', // 字体水平对齐
|
||||
textVerticalAlign: 'top' // 字体垂直对齐
|
||||
},
|
||||
lamp: {
|
||||
count: 4, // 控制模式的个数
|
||||
offset: { x: 20, y: 0 }, // 偏移量
|
||||
emergencyOffset: {x: 0, y: 0},
|
||||
radiusR: 6, // 控制模式灯的半径
|
||||
distance: 46, // 控制模式之间灯之间的距离
|
||||
grayColor: '#C0C0C0', // 控制模式灰色
|
||||
greenColor: 'green', // 控制模式绿色
|
||||
redColor: 'red', // 控制模式红色
|
||||
yellowColor: 'yellow', // 控制模式黄色
|
||||
stroke: '#FFFFFF', // 框的颜色
|
||||
fill: 'rgba(0,0,0,0)', // 填充色
|
||||
textColorNoChange: true
|
||||
},
|
||||
emergencyControl: { // 紧急站控
|
||||
show: true,
|
||||
offset: { x: 0, y: 0 },
|
||||
text: '紧急站控',
|
||||
arrowShow: false,
|
||||
grayColor: '#7F7F7F'
|
||||
},
|
||||
centerControl: { // 中控
|
||||
show: true,
|
||||
offset: { x: 0, y: 0 },
|
||||
text: '遥控',
|
||||
buttonText: '站遥控按钮',
|
||||
buttonShow: true,
|
||||
arrowShow: false,
|
||||
grayColor: '#7F7F7F',
|
||||
lightShow: true,
|
||||
lightText: '强制点灯',
|
||||
preResetShow: true,
|
||||
preResetText: '计轴复位'
|
||||
},
|
||||
substationControl: { // 站控按钮
|
||||
show: true,
|
||||
offset: { x: 0, y: 0 },
|
||||
text: '站控',
|
||||
arrowShow: false,
|
||||
grayColor: '#7F7F7F'
|
||||
},
|
||||
interconnectedControl: { // 联锁控
|
||||
show: false,
|
||||
offset: { x: 0, y: 0 },
|
||||
text: '联锁控',
|
||||
arrowShow: false,
|
||||
grayColor: '#7F7F7F'
|
||||
},
|
||||
mouseOverStyle: { // 鼠标悬浮样式
|
||||
fontSize: 10,
|
||||
fontFormat: 'consolas',
|
||||
fontColor: '#FFF000',
|
||||
fontWeight: 'normal',
|
||||
textAlign: 'middle',
|
||||
textVerticalAlign: 'top'
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
this[deviceType.Switch] = {
|
||||
text: {
|
||||
show: true, // 道岔名称显示
|
||||
position: 0, // 区段名称位置 1 上面 -1 下面 0 对称
|
||||
offset: { x: 5, y: -10 }, // 道岔名称与区段距离
|
||||
fontSize: 11, // 字体大小
|
||||
fontColor: '#C0C0C0', // 道岔名称颜色
|
||||
fontWeight: 'normal', // 字体粗细
|
||||
borderColor: '#FE0000', // 道岔名称边框颜色
|
||||
lossColor: 'lightgreen', // 道岔名称失去颜色
|
||||
locateColor: 'lightgreen', // 道岔定位颜色
|
||||
inversionColor: '#FFFF00', // 道岔反位颜色
|
||||
monolockLocationColor: 'lightgreen', // 道岔单锁'定位'颜色 (浅绿色)
|
||||
monolockInversionColor: '#FFFF00', // 道岔单锁'反位'颜色 (黄色)
|
||||
block: true, // 封锁名称
|
||||
faultFlashing: true, // 故障闪烁
|
||||
lossRect: false // 道岔失表矩形
|
||||
},
|
||||
sectionAction: {
|
||||
flag: false, // 道岔 关联区段显示
|
||||
spareColor: '#5b5b5b' // 区段显示颜色
|
||||
},
|
||||
core: {
|
||||
length: 6 // 道岔单边长度
|
||||
},
|
||||
jointImg: { // 道岔 A B C D四元素属性配置
|
||||
trapezoidLength: 8, // 直角梯形元素默认长度
|
||||
block: true, // 联合图形封锁状态
|
||||
flashingColors: '#D600D5', // 联合图形封锁闪烁显示颜色
|
||||
fork: true, // 挤岔专用(如有挤岔操作 变为true)
|
||||
faultStatus: true, // 宁波失表状态用 挤岔表示
|
||||
forKColor: 'red' // 挤岔颜色 配合挤岔专用
|
||||
},
|
||||
arcBlcok: { // 圆形封锁图形
|
||||
show: true, // 显示
|
||||
shapeR: 5,
|
||||
arcBorderColor: 'green', // 默认边框颜色
|
||||
locationColor: 'green', // 定位封锁颜色
|
||||
inversionColor: '#FFFF00' // 反位封锁颜色
|
||||
},
|
||||
rectLock: { // 矩形封锁框图形
|
||||
rectWidth: 22, // 矩形框 宽高
|
||||
rectBorderColor: '#fff', // 矩形边框颜色
|
||||
monolock: false, // 单锁显示
|
||||
block: false // 封锁显示
|
||||
},
|
||||
mouseOverStyle: {
|
||||
borderBackgroundColor: '#22DFDF', // 边框背景色
|
||||
borderColor: '#fff', // 边框颜色
|
||||
textShadowColor: '#22DFDF', // 字体阴影颜色
|
||||
coreBackgroundColor: '#00BFFF', // 岔心颜色 浅蓝色
|
||||
coreBackgroundColorOver: '#001AFC' // 岔心颜色 深蓝色
|
||||
}
|
||||
};
|
||||
|
||||
// 屏蔽门
|
||||
this[deviceType.Psd] = {
|
||||
// 宁波一号线 屏蔽门
|
||||
elemnetType:['safetyDoorNormal'],
|
||||
safetyDoorNormal: { // 屏蔽门
|
||||
z:0,
|
||||
height: 3, // 站台屏蔽门高度
|
||||
distance: 4, // 站台和屏蔽门之间的距离
|
||||
defaultColor: 'green', // 屏蔽门默认颜色
|
||||
splitDoorColor: 'green' // 屏蔽门切除颜色
|
||||
}
|
||||
};
|
||||
|
||||
this[deviceType.StationStand] = {
|
||||
// 宁波一号线站台元素 站台 站台紧急关闭 扣车元素 停站时间 运行等级
|
||||
elemnetType:['solidStand', 'emergentRhombus', 'detainNormal', 'stopTime', 'level'],
|
||||
// 站台
|
||||
solidStand:{
|
||||
// 层级
|
||||
z:0,
|
||||
spareColor: 'white', // 站台空闲颜色
|
||||
jumpStopColor: '#6260f3', // 站台跳停颜色
|
||||
designatedJumpStopColor: 'lightSkyBlue', // 站台指定列车跳停颜色
|
||||
headFontSize: 10, // 站台首端字体大小
|
||||
stopColor: 'yellow' // 站台列车停站颜色
|
||||
},
|
||||
// 站台紧急关闭
|
||||
emergentRhombus:{
|
||||
z:1,
|
||||
mergentR: 4, // 站台紧急关闭半径
|
||||
mergentN: 4, // 站台紧急关闭边数
|
||||
insideOffset: { x: 0, y: 25 }, // 内站台紧急关闭偏移量
|
||||
outsideOffset: { x: 0, y: -25 }, // 外站台紧急关闭偏移量
|
||||
closeColor: 'red' // 站台紧急关闭颜色
|
||||
},
|
||||
// 扣车元素 普通扣车
|
||||
detainNormal:{
|
||||
z:0,
|
||||
position: 1, // 扣车标识在站台上显示方向
|
||||
text: 'H', // 扣车显示内容
|
||||
insideOffset: { x: -8, y: 10 }, // 内站台扣车偏移量
|
||||
outsideOffset: { x: -8, y: 10 }, // 外站台扣车偏移量
|
||||
centerTrainColor: 'white', // 中心扣车颜色
|
||||
andCenterTrainColor: 'red', // 车站+中心扣车颜色
|
||||
detainTrainTextColor: '#E4EF50', // 车站扣除文字颜色
|
||||
fontSize: 10, // 字体大小
|
||||
fontWeight: 'normal'
|
||||
},
|
||||
// 停站时间
|
||||
stopTime:{
|
||||
z:1,
|
||||
textFontSize: 10, // 停站时间字体大小
|
||||
textColor: 'white', // 停站时间字体颜色
|
||||
position: 1, // 停站时间方向
|
||||
offset: { x: -8, y: 4 } // 停站时间偏移量
|
||||
},
|
||||
// 运行等级
|
||||
level:{
|
||||
z:1,
|
||||
textFontSize: 10, // 运行等级字体大小
|
||||
position: -1, // 运行等级方向
|
||||
offset: { x: -8, y: 4 }, // 运行等级偏移量
|
||||
textColor: '#FFF000' // 停站等级字体颜色
|
||||
},
|
||||
|
||||
common: { // 通用属性
|
||||
textFontSize: 10, // 站台默认字体大小
|
||||
functionButtonShow: '03' // 功能灯按钮显示条件(01所有模式下显示 02 行调显示 03现地显示)
|
||||
},
|
||||
lamp: {
|
||||
radiusR: 6, // 控制灯大小
|
||||
lampColor: '#5A5D5A' // 功能按钮颜色
|
||||
},
|
||||
text: {
|
||||
fontSize: 11, // 字体大小
|
||||
fontWeight: 'normal', // 字体粗细
|
||||
distance: 5 // 灯跟文字距离
|
||||
},
|
||||
mouseOverStyle: {
|
||||
borderLineColor: '#FFFFFF',
|
||||
borderLineDash: [3, 3],
|
||||
standBackgroundColor: '#00BFFF', // 浅蓝色
|
||||
standBackgroundColorOver: '#001AFC' // 深蓝色
|
||||
}
|
||||
// reentry: {}, // 站台折返策略
|
||||
// jump: {},
|
||||
// trainStop: {}, // 停车标志
|
||||
// trainDepart: {}, // 停车计时
|
||||
|
||||
};
|
||||
|
||||
this[deviceType.StationTurnBack] = { // 站后折返
|
||||
lamp: {
|
||||
fill: '#FFFF00', // 填充色
|
||||
radiusR: 6 // 控制灯大小
|
||||
},
|
||||
text: {
|
||||
titleTextShow: false,
|
||||
fontWeight: 580,
|
||||
fontSize: 12,
|
||||
distance: 10
|
||||
},
|
||||
rect: {
|
||||
fill: 'rgba(0,0,0,0)',
|
||||
stroke: '#fff',
|
||||
lineWidth: 2,
|
||||
padding: 6
|
||||
}
|
||||
};
|
||||
|
||||
this[deviceType.AutoTurnBack] = {
|
||||
// 是否显示
|
||||
visibleConditions: '01',
|
||||
text: {
|
||||
fontSize: 11, // 字体大小
|
||||
fontWeight: 'normal', // 字体粗细
|
||||
distance: 5 // 灯跟文字距离
|
||||
},
|
||||
subtitleText: {
|
||||
fontSize: 11, // 字体大小
|
||||
fontWeight: 'normal', // 字体粗细
|
||||
distance: 17 // 等于副标题距离
|
||||
},
|
||||
lamp: {
|
||||
borderShow: true, // 是否显示边框
|
||||
lineDash: null, // 灯的包围框
|
||||
stroke: '#FFFFFF', // 框的颜色
|
||||
fill: 'rgba(0,0,0,0)', // 填充色
|
||||
radiusR: 6, // 控制灯大小
|
||||
controlColor: '#b5b3b3', // 控制灯颜色 (灰色)
|
||||
lightUpColor: '#ffff00' // 点亮灯颜色
|
||||
},
|
||||
OutFrame: {
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
/** 引导总锁 */
|
||||
this[deviceType.GuideLock] = {
|
||||
text: {
|
||||
fontSize: 11, // 字体大小
|
||||
fontWeight: 'normal', // 字体粗细
|
||||
distance: 5 // 灯跟文字距离
|
||||
},
|
||||
lamp: {
|
||||
fill: 'rgba(0,0,0,0)', // 填充色
|
||||
radiusR: 6, // 控制灯大小
|
||||
controlColor: '#b5b3b3', // 控制灯颜色 (灰色)
|
||||
lightUpColor: '#FF0000' // 点亮灯颜色
|
||||
}
|
||||
};
|
||||
|
||||
this[deviceType.StationCounter] = {
|
||||
text: {
|
||||
distance: 2, // 计数器名称和文字的距离
|
||||
fontColor: '#FFFFFF', // 计数器字体颜色
|
||||
borderColor: '#E4EF50' // 计数器边框颜色
|
||||
}
|
||||
};
|
||||
|
||||
// 供电线路
|
||||
this[deviceType.Power] = {
|
||||
noElectricStrokeColor:'#808080', // 无电颜色
|
||||
defaultStrokeColor: '#F00', // 线条颜色
|
||||
extendLength: 10 // 延伸长度
|
||||
};
|
||||
|
||||
// 延续保护计时
|
||||
this[deviceType.OverAp] = {
|
||||
show: false
|
||||
};
|
||||
|
||||
this[deviceType.StationDelayUnlock] = {
|
||||
text: {
|
||||
distance: 3, // 延迟解锁和设备之间的距离
|
||||
fontColor: '#FFFFFF', // 延时解锁字体颜色
|
||||
borderColor: '#FFFFFF' // 延迟解锁边框颜色
|
||||
}
|
||||
};
|
||||
|
||||
this[deviceType.LcControl] = {
|
||||
text: {
|
||||
fontSize: 11, // 字体大小
|
||||
fontWeight: 'normal', // 字体粗细
|
||||
distance: 5 // 灯跟文字距离
|
||||
},
|
||||
lamp: {
|
||||
radiusR: 6, // 控制灯大小
|
||||
controlColor: '#FFFF00' // 控制灯颜色
|
||||
},
|
||||
mouseOverStyle: {
|
||||
fontSize: 10,
|
||||
fontFormat: 'consolas',
|
||||
fontColor: '#FFF000',
|
||||
fontWeight: 'normal',
|
||||
textAlign: 'middle',
|
||||
textVerticalAlign: 'top',
|
||||
arcColor: '#00FFFF',
|
||||
textColor: '#000000'
|
||||
}
|
||||
};
|
||||
|
||||
this[deviceType.ZcControl] = {
|
||||
// 是否显示
|
||||
visible: true,
|
||||
text: {
|
||||
fontSize: 11, // 字体大小
|
||||
fontWeight: 'normal', // 字体粗细
|
||||
distance: 5 // 灯跟文字距离
|
||||
},
|
||||
lamp: {
|
||||
radiusR: 6, // 控制灯大小
|
||||
controlColor: '#00FF00', // 控制灯颜色
|
||||
activeColor:'#ff0000' // 控制灯激活颜色
|
||||
},
|
||||
mouseOverStyle: {
|
||||
fontSize: 10,
|
||||
fontFormat: 'consolas',
|
||||
fontColor: '#FFF000',
|
||||
fontWeight: 'normal',
|
||||
textAlign: 'middle',
|
||||
textVerticalAlign: 'top',
|
||||
arcColor: '#00FFFF',
|
||||
textColor: '#000000'
|
||||
}
|
||||
};
|
||||
|
||||
this[deviceType.LimitControl] = {
|
||||
text: {
|
||||
fontSize: 11, // 字体大小
|
||||
fontWeight: 'normal', // 字体粗细
|
||||
distance: 5 // 灯跟文字距离
|
||||
},
|
||||
lamp: {
|
||||
radiusR: 6, // 控制灯大小
|
||||
controlColor: '#ECE9D8' // 控制灯颜色
|
||||
},
|
||||
mouseOverStyle: {
|
||||
fontSize: 10,
|
||||
fontFormat: 'consolas',
|
||||
fontColor: '#FFF000',
|
||||
fontWeight: 'normal',
|
||||
textAlign: 'middle',
|
||||
textVerticalAlign: 'top',
|
||||
textColor: '#000000',
|
||||
arcColor: '#00FFFF'
|
||||
}
|
||||
};
|
||||
|
||||
this[deviceType.Line] = {
|
||||
lineColor: '#FFFFFF' // 线条颜色
|
||||
};
|
||||
this[deviceType.AutomaticRoute] = {
|
||||
text: {
|
||||
fontSize: 11, // 字体大小
|
||||
fontWeight: 'normal', // 字体粗细
|
||||
distance: 5 // 灯跟文字距离
|
||||
},
|
||||
lamp: {
|
||||
fill: 'rgba(0,0,0,0)', // 填充色
|
||||
radiusR: 6, // 控制灯大小
|
||||
controlColor: '#b5b3b3' // 控制灯颜色 (灰色)
|
||||
}
|
||||
};
|
||||
this[deviceType.AxleReset] = {
|
||||
text: {
|
||||
fontSize: 11, // 字体大小
|
||||
fontWeight: 'normal', // 字体粗细
|
||||
distance: 5 // 灯跟文字距离
|
||||
},
|
||||
lamp: {
|
||||
fill: 'rgba(0,0,0,0)', // 填充色
|
||||
radiusR: 6, // 控制灯大小
|
||||
controlColor: 'red' // 控制灯颜色 (灰色)
|
||||
}
|
||||
};
|
||||
/* 上电解锁 */
|
||||
this[deviceType.PowerUnLock] = {
|
||||
text: {
|
||||
fontSize: 11, // 字体大小
|
||||
fontWeight: 'normal', // 字体粗细
|
||||
distance: 5 // 灯跟文字距离
|
||||
},
|
||||
lamp: {
|
||||
fill: 'rgba(0,0,0,0)', // 填充色
|
||||
radiusR: 6, // 控制灯大小
|
||||
controlColor: 'red' // 控制灯颜色 (灰色)
|
||||
}
|
||||
};
|
||||
|
||||
/** 引导总锁 */
|
||||
this[deviceType.GuideLock] = {
|
||||
text: {
|
||||
fontSize: 11, // 字体大小
|
||||
fontWeight: 'normal', // 字体粗细
|
||||
distance: 5 // 灯跟文字距离
|
||||
},
|
||||
lamp: {
|
||||
fill: 'rgba(0,0,0,0)', // 填充色
|
||||
radiusR: 6, // 控制灯大小
|
||||
controlColor: '#b5b3b3' // 控制灯颜色 (灰色)
|
||||
}
|
||||
};
|
||||
this[deviceType.TrainWindow] = {
|
||||
lineColor: '#fff', // 车次窗颜色
|
||||
lineDash: [3], // 车次窗虚线间隔
|
||||
lineWidth: 0.5, // 车次窗线宽
|
||||
trainWindowSmooth: 0, // 车次窗矩形圆滑程度
|
||||
show: true // 车次窗是否显示
|
||||
};
|
||||
this[deviceType.SplitStation] = {
|
||||
lineLength: 15, // 箭头线长度
|
||||
lineWidth: 2, // 线宽
|
||||
height: 35, // 分隔整体高度
|
||||
strokeColor: '#00FF00', // 线颜色
|
||||
triangleFillColor: '#00FF00', // 三角填充颜色
|
||||
textFill: '#FFFFFF', // 文字颜色
|
||||
verticalDistance: 10, // 箭头三角垂直高度
|
||||
horizontalDistance: 7// 箭头三角水平高度
|
||||
};
|
||||
this[deviceType.Train] = {
|
||||
trainBody: {
|
||||
fontFamily: 'consolas',
|
||||
trainBodyLineWidth: 1, // 车身line宽
|
||||
changeTrainWidth: false, // 是否根据车身上车组号、服务号、车次号、目的地码显示情况改变列车长度
|
||||
specialTrainType: [
|
||||
{
|
||||
type: 'MANUAL',
|
||||
serviceNumber: '',
|
||||
nameFormat: 'groupNumber:targetCode'
|
||||
},
|
||||
{
|
||||
type: 'HEAD',
|
||||
nameFormat: 'serviceNumber:tripNumber:targetCode'
|
||||
}
|
||||
], // 特殊列车类型需设置显示格式
|
||||
lrPadding: 4, // 两边间隔
|
||||
upPadding: 4, // 上边距离
|
||||
trainSidelineColor: '#ABFE9B',
|
||||
trainBodyFillColor: '#A388B1', // 列车车身填充颜色
|
||||
trainNameFormat: 'serviceNumber:tripNumber:targetCode'// 列车显示格式
|
||||
},
|
||||
directionArrow: {
|
||||
hasArrow: true,
|
||||
width: 6,
|
||||
radiusR: 4,
|
||||
fillColor: '#00FF00',
|
||||
distanceTop: 15,
|
||||
distanceBottom: 35
|
||||
},
|
||||
hsda: {
|
||||
lrPaddingHSDA: 3, // HSDA两边间隔
|
||||
upPaddingHSDA: 4, // HSDA上边距离
|
||||
trainHSDATextFontSize: 12, // 列车HDSA字号
|
||||
textHContent: 'H', // textH文本
|
||||
textSContent: 'S', // textS文本
|
||||
textDContent: 'D', // textD文本
|
||||
textAContent: 'A' // textA文本
|
||||
},
|
||||
trainNumber: {
|
||||
targetCodePrefix: '00', // 目的地码前缀
|
||||
defaultTargetCode: 'DD', // 默认目的地码
|
||||
trainTargetTextAlign: 'left', // 目的地码文字显示位置
|
||||
trainNumberOffset: { x: 36, y: 4 }, // 目的地码偏移量
|
||||
headTypeColor: '#1CBAFD', // 头码车目的地号显示颜色
|
||||
manualTypeColor: '#1CBAFD' // 人工车目的地号显示颜色
|
||||
},
|
||||
trainServer: {
|
||||
serviceNumberPrefix: '000', // 服务号(表号)前缀
|
||||
defaultServiceNumber: 'TTT', // 默认服务号(表号)
|
||||
defaultServerNoColor: '#FFFFFF', // 默认服务号状态显示颜色
|
||||
trainServerOffset: { x: 4, y: 4 } // 列车服务号偏移
|
||||
},
|
||||
trainTarget: {
|
||||
tripNumberPrefix: '00', // 车次号前缀
|
||||
defaultTripNumber: 'DD', // 默认车次号2
|
||||
trainTargetOffset: { x: 24, y: 4 }, // 列车车次号偏移
|
||||
trainTargetTextAlign: 'right' // 车次号文字显示位置
|
||||
},
|
||||
trainTargetNumber: {
|
||||
groupNumberPrefix: '00000', // 车组号前缀
|
||||
defaultGroupNumber: 'EEEEE', // 默认车组号
|
||||
trainTargetNumberOffset: {x: -4, y: 4}, // 车组号偏移量
|
||||
lineNumber: '01', // 线路号在人工车时车组号拼接线路号
|
||||
manualTypeColor: '#FA7FD7', // 人工车车组号显示颜色
|
||||
maskText: '0' // 车组号遮罩
|
||||
},
|
||||
trainHead: {
|
||||
trainConntWidth: 2, // 列车竖杠的宽度
|
||||
trainHeadFillColor: '#000000', // 列车车头矩形填充颜色
|
||||
trainHeadRectHeight: 20, // 列车车头矩形高度
|
||||
directionStopType:'normal', // special 西安二号线 停车 列车方向图标不消失 normal 正常
|
||||
trainHeadHeight: 'trainBox', // 列车车头高度取决于trainBox高度
|
||||
trainHeadArrowWidth: 5, // 列车车头三角宽度
|
||||
trainHeadArrowOffsetX: 4 // 列车车头三角偏移
|
||||
},
|
||||
common: {
|
||||
trainHeight: 20, // 列车高度
|
||||
trainHeadDistance: 2, // 列车和车头之间的间距
|
||||
trainWidth: 70, // 列车长度
|
||||
trainTextFontSize: 16, // 列车字号
|
||||
fontFamily: 'consolas', // 默认字体 族类
|
||||
haveTextHSDA: true, // 是否需创建textHSDA对象
|
||||
haveArrowText: true, // 是否需创建arrowText对象
|
||||
textOffset: 4, // 字体偏移(用以控制字体据车头的距离)
|
||||
trainWidthMoreText: 8, // 计算列车长度时--列车长比text多出尺寸
|
||||
trainHeadColorChangeMode: 1, // 1:driveMode + runlevel
|
||||
trainTip:false // 鼠标悬停列车状态信息框是否显示
|
||||
},
|
||||
mouseOverStyle:{
|
||||
borderLineColor: '#FFFFFF',
|
||||
borderLineDash: [3, 3],
|
||||
leftOffset:30,
|
||||
rightOffset:30
|
||||
},
|
||||
trainStatusStyle: {
|
||||
defaultDestinationColor: '#FFFFFF', // 默认目的地状态显示颜色
|
||||
destinationStatusSetText: 'trainTarget', // 目的地状态设置的对应哪个text的颜色
|
||||
destinationStatus: [
|
||||
{ status: '01', showColor: '#FFFFFF' },
|
||||
{ status: '02', showColor: '#00FF00' },
|
||||
{ status: '03', showColor: '#A0522D' },
|
||||
{ status: '04', showColor: '#FFFF00' }
|
||||
], // 目的地状态 01准点 02早点 03晚点 04头码车
|
||||
serverNoType: [
|
||||
{ type: '01', showColor: '#FFFFFF' },
|
||||
{ type: '02', showColor: '#FFF000' }
|
||||
], // 服务号状态类型 01显示服务号 计划车 02显示车组号: 头码车与人工车
|
||||
directionType: [
|
||||
{
|
||||
type: 1,
|
||||
lineLShow: false,
|
||||
lineRShow: true,
|
||||
arrowLShow: false,
|
||||
arrowRShow: true
|
||||
},
|
||||
{
|
||||
type: 0,
|
||||
lineLShow: true,
|
||||
lineRShow: false,
|
||||
arrowLShow: true,
|
||||
arrowRShow: false
|
||||
}
|
||||
], // 列车运行方向状态类型对应车头显示状态 1从左往右 0从右往左
|
||||
directionStopType: [
|
||||
{
|
||||
type: 1,
|
||||
lineLShow: false,
|
||||
lineRShow: true
|
||||
},
|
||||
{
|
||||
type: 0,
|
||||
lineLShow: true,
|
||||
lineRShow: false
|
||||
}
|
||||
], // 列车停止方向类型对应车头显示状态 1从左往右 0从右往左
|
||||
driveModeStatus: [
|
||||
{
|
||||
status: 'AMCBTC',
|
||||
trainLColor: '#FFCE4D',
|
||||
trainRColor: '#FFCE4D'
|
||||
},
|
||||
{
|
||||
status: 'CMCBTC',
|
||||
trainLColor: '#FFFFCD',
|
||||
trainRColor: '#FFFFCD'
|
||||
},
|
||||
{
|
||||
status: 'AMITC',
|
||||
trainLColor: '#B903E1',
|
||||
trainRColor: '#B903E1'
|
||||
},
|
||||
{
|
||||
status: 'CMITC',
|
||||
trainLColor: '#9370DB',
|
||||
trainRColor: '#9370DB'
|
||||
},
|
||||
{
|
||||
status: 'RMIL',
|
||||
trainLColor: '#808080',
|
||||
trainRColor: '#808080'
|
||||
},
|
||||
{
|
||||
status: 'RMITC',
|
||||
trainLColor: '#808080',
|
||||
trainRColor: '#808080'
|
||||
},
|
||||
{
|
||||
status: 'RMCBTC',
|
||||
trainLColor: '#808080',
|
||||
trainRColor: '#808080'
|
||||
},
|
||||
{
|
||||
status: 'NRMCBTC',
|
||||
trainLColor: 'rgba(0, 0, 0, 0)',
|
||||
trainRColor: 'rgba(0, 0, 0, 0)'
|
||||
}
|
||||
], // 列车运行模式对应车头颜色 ATO自动驾驶模式AM ATP监控下的人工驾驶模式CM 限制人工驾驶模式RM 非限制人工驾驶模式NRM
|
||||
communicationStatus: [
|
||||
] // 设置通信状态 cbtc级别CBTC 点式通信ITC 联锁级IL
|
||||
}
|
||||
};
|
||||
this[deviceType.FloodGate] = {};
|
||||
this[deviceType.DirectionRod] = {};
|
||||
this[deviceType.IndicatorLight] = {};
|
||||
}
|
||||
}
|
||||
|
||||
export default new SkinCode();
|
@ -233,13 +233,6 @@ class SkinCode extends defaultStyle {
|
||||
fontSize: 12,
|
||||
distance: 20,
|
||||
defaultText: 'E'
|
||||
},
|
||||
transmission: { // 传输信号机
|
||||
fillColor: '#f00',
|
||||
fillColorVirtual: '#f00',
|
||||
sideLength: 20,
|
||||
textColor: '#fff',
|
||||
strokeColor: '#00FFFF'
|
||||
}
|
||||
};
|
||||
|
||||
@ -289,7 +282,6 @@ class SkinCode extends defaultStyle {
|
||||
position: -1, // 扣车标识在站台上显示方向
|
||||
text: 'H', // 扣车显示内容
|
||||
offset: {x: 8, y: 0}, // 扣车偏移量
|
||||
ibpTrainColor: '#E4EF50', // ibp扣车颜色
|
||||
centerTrainColor: '#E400E4', // 中心扣车颜色
|
||||
andCenterTrainColor: 'red', // 车站+中心扣车颜色
|
||||
detainTrainTextColor: '#E4EF50', // 车站扣除颜色
|
||||
@ -483,10 +475,7 @@ class SkinCode extends defaultStyle {
|
||||
spareColor: '#5b5b5b' // 区段显示颜色
|
||||
},
|
||||
core: {
|
||||
length: 10, // 道岔单边长度
|
||||
graphShow: true, // 图形显示
|
||||
graphInversionColor: '#FFFF00', // 反位颜色
|
||||
graphLocalColor: '#00FF00' // 定位颜色
|
||||
length: 10 // 道岔单边长度
|
||||
},
|
||||
jointImg: { // 道岔 A B C D四元素属性配置
|
||||
trapezoidLength: 8 // 直角梯形元素默认长度
|
||||
|
@ -440,7 +440,7 @@ class Jlmap {
|
||||
const trainList = [];
|
||||
list.forEach(item => {
|
||||
const device = this.mapDevice[item];
|
||||
if (device && device._type !== deviceType.Switch && device._type !== deviceType.Train && device._type !== deviceType.TrainWindow) {
|
||||
if (device && device._type !== deviceType.Switch && device._type !== deviceType.Train) {
|
||||
const pictureDevice = store.getters['map/getPictureDeviceByCode'](item);
|
||||
device._pictureHide = pictureDevice ? pictureDevice.pictureHide : false;
|
||||
this.$painter.updatePicture(device);
|
||||
@ -585,16 +585,18 @@ class Jlmap {
|
||||
if (elem.hasOwnProperty('applicantId')) {
|
||||
controlTransferList.push(elem);
|
||||
}
|
||||
const oDevice = this.mapDevice[code] || deviceFactory(type, elem, this.showConfig);
|
||||
const guideLock = this.mapDevice[oDevice.guideLockCode];
|
||||
const guideLockStatus = {totalGuideLock: elem.totalGuideLock};
|
||||
if (guideLock && this.hookHandle(guideLock, guideLockStatus)) {
|
||||
this.$painter.update(guideLock);
|
||||
}
|
||||
if (elem.dispose) {
|
||||
this.$painter.delete(oDevice);
|
||||
} else {
|
||||
this.$painter.update(oDevice);
|
||||
if (!elem.applicantId) {
|
||||
const oDevice = this.mapDevice[code] || deviceFactory(type, elem, this.showConfig);
|
||||
const guideLock = this.mapDevice[oDevice.guideLockCode];
|
||||
const guideLockStatus = {totalGuideLock: elem.totalGuideLock};
|
||||
if (guideLock && this.hookHandle(guideLock, guideLockStatus)) {
|
||||
this.$painter.update(guideLock);
|
||||
}
|
||||
if (elem.dispose) {
|
||||
this.$painter.delete(oDevice);
|
||||
} else {
|
||||
this.$painter.update(oDevice);
|
||||
}
|
||||
}
|
||||
store.commit('map/mapStationStateUpdate');
|
||||
} else if (elem.deviceType === 'STATION_DIRECTION') {
|
||||
|
@ -27,11 +27,7 @@ export function parser(data, skinCode, showConfig) {
|
||||
zrUtil.each(centralStationList, elem => {
|
||||
mapDevice[elem.code].stationCode = elem.code;
|
||||
zrUtil.each(elem.chargeStationCodeList || [], item => {
|
||||
if (mapDevice[item]) {
|
||||
mapDevice[item].stationCode = elem.code;
|
||||
} else {
|
||||
console.error('未获取到设备' + item);
|
||||
}
|
||||
mapDevice[item].stationCode = elem.code;
|
||||
});
|
||||
});
|
||||
zrUtil.each(data.sectionList || [], elem => {
|
||||
|
@ -177,7 +177,10 @@ class ETextName extends Group {
|
||||
this.text && this.text.stopAnimation(false);
|
||||
}
|
||||
|
||||
setState() {
|
||||
setState(bool) {
|
||||
if (this.text) {
|
||||
bool ? this.text.show() : this.text.hide();
|
||||
}
|
||||
// 区段名称类暂时不做状态处理
|
||||
}
|
||||
}
|
||||
|
@ -483,9 +483,6 @@ export default class Section extends Group {
|
||||
// 哈尔滨线路 南京二 道岔相关区段设置 默认颜色
|
||||
if (this.style.Switch.sectionAction.flag && model.relSwitchCode && !flag) {
|
||||
const switchModel = this.mapDevice[model.relSwitchCode];
|
||||
if (!switchModel) {
|
||||
return;
|
||||
}
|
||||
const sectionB = switchModel.sectionBCode === model.code ? this.mapDevice[switchModel.sectionBCode] : null;
|
||||
const sectionC = switchModel.sectionCCode === model.code ? this.mapDevice[switchModel.sectionCCode] : null;
|
||||
const sectionA = this.mapDevice[switchModel.sectionACode];
|
||||
@ -602,6 +599,7 @@ export default class Section extends Group {
|
||||
// 分路不良
|
||||
// model.shuntingTypeList.length > 0 &&
|
||||
model.badShunt && this.badShuntStatus();
|
||||
this.name.setState(model.nameShow);
|
||||
// 停车倒计时
|
||||
if (this.remainTimeText) {
|
||||
if (model.stopCountDown) {
|
||||
|
@ -847,15 +847,6 @@ class Signal extends Group {
|
||||
case 'LIGHTING_UNIT_FAULT_HEAD':
|
||||
this.lightingUnitFaultHead();
|
||||
break;
|
||||
case 'R_WIRE_FAULT':
|
||||
this.lightingUnitFaultName();
|
||||
break;
|
||||
case 'G_WIRE_FAULT':
|
||||
this.lightingUnitFaultName();
|
||||
break;
|
||||
case 'Y_WIRE_FAULT':
|
||||
this.lightingUnitFaultName();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@ -931,8 +922,8 @@ class Signal extends Group {
|
||||
// 隐藏自动信号和自动进路
|
||||
setAutoClose() {
|
||||
if (this.style.Signal.auto.autoRouteType != 'text') {
|
||||
this.sigAuto && this.sigAuto.hide();
|
||||
this.sigAuto && this.sigAuto.setColor(this.style.backgroundColor);
|
||||
this.sigAuto.hide();
|
||||
this.sigAuto.setColor(this.style.backgroundColor);
|
||||
} else {
|
||||
this.sigName.setColor(this.style.Signal.text.defaultColor);
|
||||
}
|
||||
@ -1197,8 +1188,8 @@ class Signal extends Group {
|
||||
this.sigPost.setVerColor(this.style.Signal.post.closeSignalVerColor);
|
||||
} else if (model.level === 1 && this.style.Signal.post.guideSignalVerColor && !model.fleetMode) {
|
||||
this.sigPost.setVerColor(this.style.Signal.post.guideSignalVerColor);
|
||||
} else if (model.level === 2 && this.style.Signal.post.atpLevelColor && !model.fleetMode) {
|
||||
this.sigPost.setVerColor(this.style.Signal.post.atpLevelColor);
|
||||
} else if (model.level === 2 && this.style.Signal.post.autoRouteVerColor && !model.fleetMode) {
|
||||
this.sigPost.setVerColor(this.style.Signal.post.autoRouteVerColor);
|
||||
}
|
||||
|
||||
if (this.style.Signal.lamp.special) {
|
||||
|
@ -186,11 +186,68 @@ export default class Station extends Group {
|
||||
this.createInterconnectedControl(); // 联锁控
|
||||
this.createVeryControl();
|
||||
this.createSelfDiscipline();
|
||||
this.createTaiguo();
|
||||
}
|
||||
}
|
||||
}
|
||||
this.setState(model);
|
||||
}
|
||||
createTaiguo() {
|
||||
const computedControlModePoint = this.computedControlModePoint;
|
||||
this.centerCommunication = new ESingleControl({
|
||||
_subType: 'centerCommunication',
|
||||
style: this.style,
|
||||
zlevel: this.zlevel,
|
||||
z: this.z,
|
||||
point: {
|
||||
x: computedControlModePoint.x - this.style.Station.StationControl.lamp.distance * 2 + this.style.Station.StationControl.centerCommunication.offset.x,
|
||||
y: computedControlModePoint.y + this.style.Station.StationControl.centerCommunication.offset.y
|
||||
},
|
||||
context: this.style.Station.StationControl.centerCommunication.text,
|
||||
pop: false
|
||||
});
|
||||
this.add(this.centerCommunication);
|
||||
// 计划控制
|
||||
this.planControl = new ESingleControl({
|
||||
_subType: 'planControl',
|
||||
style: this.style,
|
||||
zlevel: this.zlevel,
|
||||
z: this.z,
|
||||
point: {
|
||||
x: computedControlModePoint.x + this.style.Station.StationControl.lamp.distance * 2 + this.style.Station.StationControl.planControl.offset.x,
|
||||
y: computedControlModePoint.y + this.style.Station.StationControl.planControl.offset.y
|
||||
},
|
||||
context: this.style.Station.StationControl.planControl.text,
|
||||
pop: false
|
||||
});
|
||||
this.add(this.planControl);
|
||||
this.etcs2 = new ESingleControl({
|
||||
_subType: 'etcs2',
|
||||
style: this.style,
|
||||
zlevel: this.zlevel,
|
||||
z: this.z,
|
||||
point: {
|
||||
x: computedControlModePoint.x + this.style.Station.StationControl.lamp.distance * 2 + this.style.Station.StationControl.etcs2.offset.x,
|
||||
y: computedControlModePoint.y + this.style.Station.StationControl.etcs2.offset.y
|
||||
},
|
||||
context: this.style.Station.StationControl.etcs2.text,
|
||||
pop: false
|
||||
});
|
||||
this.add(this.etcs2);
|
||||
this.etcs3 = new ESingleControl({
|
||||
_subType: 'etcs3',
|
||||
style: this.style,
|
||||
zlevel: this.zlevel,
|
||||
z: this.z,
|
||||
point: {
|
||||
x: computedControlModePoint.x + this.style.Station.StationControl.lamp.distance * 2 + this.style.Station.StationControl.etcs3.offset.x,
|
||||
y: computedControlModePoint.y + this.style.Station.StationControl.etcs3.offset.y
|
||||
},
|
||||
context: this.style.Station.StationControl.etcs3.text,
|
||||
pop: false
|
||||
});
|
||||
this.add(this.etcs3);
|
||||
}
|
||||
createCtcControlMode() { // 大铁
|
||||
// 非常站控
|
||||
// const model = this.model;
|
||||
@ -357,7 +414,7 @@ export default class Station extends Group {
|
||||
zlevel: this.zlevel,
|
||||
z: this.z,
|
||||
style: {
|
||||
x: computedControlModePoint.x,
|
||||
x: computedControlModePoint.x + this.style.Station.StationControl.text.offsetX,
|
||||
y: computedControlModePoint.y + this.style.Station.StationControl.text.offsetY,
|
||||
fontWeight: this.style.Station.StationControl.text.fontWeight,
|
||||
fontSize: this.style.Station.StationControl.text.fontSize,
|
||||
@ -635,7 +692,7 @@ export default class Station extends Group {
|
||||
_subType: 'veryControlButtonText',
|
||||
position: [0, 0],
|
||||
style: {
|
||||
x: computedControlModePoint.x + this.style.Station.StationControl.lamp.distance * 3 / 2 + this.style.Station.StationControl.veryControlButton.offset.y,
|
||||
x: computedControlModePoint.x + this.style.Station.StationControl.lamp.distance * 3 / 2 + this.style.Station.StationControl.veryControlButton.offset.x,
|
||||
y: computedControlModePoint.y + this.style.Station.StationControl.veryControlButton.offset.y + this.style.Station.StationControl.lamp.radiusR + this.style.Station.StationControl.text.distance,
|
||||
fontWeight: this.style.Station.StationControl.text.fontWeight,
|
||||
fontSize: this.style.Station.StationControl.text.fontSize,
|
||||
@ -877,9 +934,7 @@ export default class Station extends Group {
|
||||
if (this.graphRoad && model.routeSetMode == 'Manual_Set_Route') {
|
||||
this.graphRoad.setColor(this.style.Station.StationControl.graphRoad.lightColor);
|
||||
}
|
||||
if (this.planControl && model.planControl) {
|
||||
this.planControl.setColor(this.style.Station.StationControl.planControl.lightColor);
|
||||
}
|
||||
|
||||
// if (this.style.Station.StationControl.disPlayNone) {
|
||||
// this.stationText && this.stationText.setStyle('textFill', '#fff');
|
||||
// if (this.model.subheadDisplay) { // 副标题
|
||||
@ -954,7 +1009,6 @@ export default class Station extends Group {
|
||||
this.substationArrowsControl && this.substationArrowsControl.setColor(this.style.Station.StationControl.lamp.grayColor);
|
||||
this.emergencyArrowsControl && this.emergencyArrowsControl.setColor(this.style.Station.StationControl.lamp.grayColor);
|
||||
this.stationControlCC && this.stationControlCC.setStyle({text:'EL', textFill:this.style.Station.StationControl.text.emergencyControlColor});
|
||||
this.stationControlCC && this.stationControlCC.stopAnimation(true);
|
||||
this.veryControl && this.veryControl.setColor(this.style.Station.StationControl.veryControl.defaultColor);
|
||||
this.selfDiscipline && this.selfDiscipline.setColor(this.style.Station.StationControl.selfDiscipline.defaultColor);
|
||||
this.selfDisciplineControl && this.selfDisciplineControl.setColor(this.style.Station.StationControl.selfDisciplineControl.defaultColor);
|
||||
@ -963,6 +1017,7 @@ export default class Station extends Group {
|
||||
this.graphRoad && this.graphRoad.setColor(this.style.Station.StationControl.graphRoad.defaultColor);
|
||||
this.planControl && this.planControl.setColor(this.style.Station.StationControl.planControl.defaultColor);
|
||||
this.trainControl && this.trainControl.setColor(this.style.Station.StationControl.trainControl.defaultColor);
|
||||
this.etcs2 && this.etcs2.setColor(this.style.Station.StationControl.etcs2.defaultColor);
|
||||
this.allowedTurnBack && this.allowedTurnBack.setColor(this.style.Station.StationControl.allowedTurnBack.defaultColor);
|
||||
this.selfDisciplineCommunication && this.selfDisciplineCommunication.setColor(this.style.Station.StationControl.selfDisciplineCommunication.defaultColor);
|
||||
if (this.selfDisciplineThree) {
|
||||
@ -1010,6 +1065,9 @@ export default class Station extends Group {
|
||||
model.controlApplicant && this.handleControlApplicant(model);
|
||||
model.allowAutonomy && this.handleAllowAutonomy(model);
|
||||
// this.handlePowerUnlockShow(model);
|
||||
if (this.planControl && model.planControl) {
|
||||
this.planControl.setColor(this.style.Station.StationControl.planControl.lightColor);
|
||||
}
|
||||
this.handleGuideLock(model);
|
||||
if (this.style.Station.syncCentralizeStation && (model.controlMode || model.controller || model.emergencyController != undefined) && model.centralized) {
|
||||
model.chargeStationCodeList.forEach(item => {
|
||||
@ -1048,25 +1106,7 @@ export default class Station extends Group {
|
||||
device && device.instance && device.instance.setCount(countNum);
|
||||
}
|
||||
}
|
||||
if (this.style.Station.StationControl.special && model.apply2TheControlMode) {
|
||||
this.controlTextFlash(model.apply2TheControlMode);
|
||||
}
|
||||
}
|
||||
}
|
||||
controlTextFlash(apply2TheControlMode) {
|
||||
if (this.stationControlCC && apply2TheControlMode) {
|
||||
let color;
|
||||
if (apply2TheControlMode === 'Local') {
|
||||
color = this.style.Station.StationControl.text.stationControlColor;
|
||||
this.stationControlCC && this.stationControlCC.setStyle({text:'LC', textFill:color});
|
||||
} else if (apply2TheControlMode === 'Center') {
|
||||
color = this.style.Station.StationControl.text.centerControlColor;
|
||||
this.stationControlCC && this.stationControlCC.setStyle({text:'CC', textFill:color});
|
||||
}
|
||||
this.stationControlCC.animateStyle(true)
|
||||
.when(500, {textFill: '#000'})
|
||||
.when(1000, {textFill: color})
|
||||
.when(1500, {textFill: '#000'}).start();
|
||||
|
||||
}
|
||||
}
|
||||
handleGuideLock(model) {
|
||||
|
@ -18,19 +18,7 @@ class EDetainCircle extends Group {
|
||||
const x = computedPosition.x + (model.width / 2) * detainD + detainD * style.StationStand.detainCircle.offset.x + detainD * style.StationStand.detainCircle.circleWidth / 2;
|
||||
const y = computedPosition.y;
|
||||
const radius = style.StationStand.detainCircle.circleWidth / 2;
|
||||
this.ibpDetainCircle = new Circle({
|
||||
zlevel: this.model.zlevel,
|
||||
z: this.model.z,
|
||||
shape: {
|
||||
cx: x + detainD * 12,
|
||||
cy: y,
|
||||
r: 3
|
||||
},
|
||||
style:{
|
||||
lineWidth:2,
|
||||
stroke: '#ffff00'
|
||||
}
|
||||
});
|
||||
|
||||
this.detainCircle = new Circle({
|
||||
zlevel: this.model.zlevel,
|
||||
z: this.model.z,
|
||||
@ -73,7 +61,6 @@ class EDetainCircle extends Group {
|
||||
}
|
||||
});
|
||||
this.add(this.detainCircle);
|
||||
this.add(this.ibpDetainCircle);
|
||||
this.add(this.line1);
|
||||
this.add(this.line2);
|
||||
}
|
||||
@ -87,7 +74,6 @@ class EDetainCircle extends Group {
|
||||
recover() {
|
||||
const style = this.model.style;
|
||||
this.detainCircle && this.detainCircle.show();
|
||||
this.ibpDetainCircle && this.ibpDetainCircle.hide();
|
||||
this.line1 && this.line1.show();
|
||||
this.line2 && this.line2.show();
|
||||
this.setColor(style.StationStand.detainCircle.defaultColor);
|
||||
@ -102,8 +88,6 @@ class EDetainCircle extends Group {
|
||||
this.setColor(style.StationStand.detainCircle.centerTrainColor);
|
||||
} else if (model.centerHoldTrain) {
|
||||
this.setColor(style.StationStand.detainCircle.centerTrainColor);
|
||||
} else if (model.ibpHoldTrain) {
|
||||
this.ibpDetainCircle && this.ibpDetainCircle.show();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -166,11 +166,6 @@ export default class StationTurnBack extends Group {
|
||||
this.control && this.control.highlightType3(this.style.ReturnModeGroup.highlightColor);
|
||||
}
|
||||
}
|
||||
if (this.style.StationTurnBack.lamp.otherFill) {
|
||||
if (name == '自动折返' || name == '固定折返轨1' || name == '固定折返轨1') {
|
||||
this.control && this.control.setStyle({fill: this.style.StationTurnBack.lamp.otherFill});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
setAshShow() {
|
||||
|
@ -326,9 +326,9 @@ export default class Switch extends Group {
|
||||
}
|
||||
|
||||
this.name.getTextRect().animateStyle(true)
|
||||
.when(0, { textFill: this.style.transparentColor })
|
||||
.when(0, { textFill: this.style.backgroundColor })
|
||||
.when(1000, { textFill: this.style.Switch.text.borderColor })
|
||||
.when(2000, { textFill: this.style.transparentColor })
|
||||
.when(2000, { textFill: this.style.backgroundColor })
|
||||
.start();
|
||||
}
|
||||
|
||||
@ -354,7 +354,7 @@ export default class Switch extends Group {
|
||||
this.lockCircle && this.lockCircle.hide(); // 圆形包围框
|
||||
this.lockArc && this.lockArc.hide(); // 圆形单锁框
|
||||
this.name.getNameText().stopAnimation(false);
|
||||
this.name.getTextRect().setStyle({ fill: this.style.transparentColor });
|
||||
this.name.getTextRect().setStyle({ fill: this.style.backgroundColor });
|
||||
this.shapeModelC && this.shapeModelC.hide(); // 形状 C
|
||||
this.shapeModelA && this.shapeModelA.hide(); // 形状 A
|
||||
this.shapeModelB && this.shapeModelB.hide(); // 形状 B
|
||||
@ -474,6 +474,12 @@ export default class Switch extends Group {
|
||||
this.specialCircle && this.specialCircle.animate();
|
||||
}
|
||||
|
||||
this.lossShow && this.lossShow.show(); // 西安线路专有
|
||||
this.lossShow && this.lossShow.animateStyle(true)
|
||||
.when(0, { stroke: this.style.backgroundColor })
|
||||
.when(500, { stroke: '#F00' })
|
||||
.when(1000, { stroke: this.style.backgroundColor })
|
||||
.start();
|
||||
if (this.style.Switch.jointImg.loseNameFlash) {
|
||||
this.name.getNameText().animateStyle(true)
|
||||
.when(0, { textFill: this.style.backgroundColor })
|
||||
@ -503,14 +509,6 @@ export default class Switch extends Group {
|
||||
}
|
||||
}
|
||||
}
|
||||
if (pos === 'NO' && fault && faultList.includes(fault)) {
|
||||
this.lossShow && this.lossShow.show(); // 西安线路专有
|
||||
this.lossShow && this.lossShow.animateStyle(true)
|
||||
.when(0, { stroke: this.style.backgroundColor })
|
||||
.when(500, { stroke: '#F00' })
|
||||
.when(1000, { stroke: this.style.backgroundColor })
|
||||
.start();
|
||||
}
|
||||
// stopAnimation
|
||||
this.shapeModelB.stopAnimation(false);
|
||||
this.shapeModelC.stopAnimation(false);
|
||||
@ -626,7 +624,7 @@ export default class Switch extends Group {
|
||||
}
|
||||
|
||||
if (this.style.Switch.core.specialCircle) {
|
||||
this.name.getTextRect().setStyle({ fill: this.style.transparentColor });
|
||||
this.name.getTextRect().setStyle({ fill: this.style.backgroundColor });
|
||||
this.setTextColor(this.style.Switch.text.guideMasterLockColor);
|
||||
} else {
|
||||
this.setTextColor(this.style.Switch.text.monolockLocationColor);
|
||||
@ -836,6 +834,7 @@ export default class Switch extends Group {
|
||||
// N-定位 R-反位 NO-无(失表) EX-挤叉
|
||||
|
||||
// model.pos = 'EX';
|
||||
|
||||
if (model.pos == 'N') {
|
||||
this.switchPosition = 'normal';
|
||||
this.setLocationAction(model); /** 定位*/
|
||||
@ -911,7 +910,7 @@ export default class Switch extends Group {
|
||||
this.setHasTextBorder(1, this.style.Switch.text.fpLockBorderColor);
|
||||
}
|
||||
if (this.style.Switch.core.specialCircle) {
|
||||
this.name.getTextRect().setStyle({ fill: this.style.transparentColor });
|
||||
this.name.getTextRect().setStyle({ fill: this.style.backgroundColor });
|
||||
this.setTextColor(this.style.Switch.text.fpLockColor);
|
||||
}
|
||||
}
|
||||
|
@ -2,7 +2,7 @@ import Group from 'zrender/src/container/Group';
|
||||
import TrainBodyBox from './TrainBodyBox';
|
||||
// import '../StationStand/EDetain';
|
||||
import ETextName from '../element/ETextName'; // 名称文字 (共有)
|
||||
import EMouse from './EMouse';
|
||||
// import EMouse from './EMouse';
|
||||
import store from '@/store/index';
|
||||
import Circle from 'zrender/src/graphic/shape/Circle';
|
||||
import BoundingRect from 'zrender/src/core/BoundingRect';
|
||||
@ -21,26 +21,26 @@ export default class TrainBody extends Group {
|
||||
}
|
||||
|
||||
createMouse() {
|
||||
this.mouseEvent = new EMouse(this);
|
||||
this.add(this.mouseEvent);
|
||||
if (this.deviceModel.__down) {
|
||||
store.dispatch('map/setTrainDetails', this.deviceModel);
|
||||
this.mouseEvent.mouseover();
|
||||
}
|
||||
if (this.deviceModel.__click) {
|
||||
this.mouseEvent.mouseClick();
|
||||
}
|
||||
this.on('mouseover', () => {
|
||||
store.dispatch('map/setTrainDetails', this.deviceModel);
|
||||
this.mouseEvent.mouseover();
|
||||
});
|
||||
this.on('mouseout', () => {
|
||||
store.dispatch('map/setTrainDetails', null);
|
||||
this.mouseEvent.mouseout();
|
||||
});
|
||||
this.on('click', () => {
|
||||
this.mouseEvent.mouseClick();
|
||||
});
|
||||
// this.mouseEvent = new EMouse(this);
|
||||
// this.add(this.mouseEvent);
|
||||
// if (this.deviceModel.__down) {
|
||||
// store.dispatch('map/setTrainDetails', this.deviceModel);
|
||||
// this.mouseEvent.mouseover();
|
||||
// }
|
||||
// if (this.deviceModel.__click) {
|
||||
// this.mouseEvent.mouseClick();
|
||||
// }
|
||||
// this.on('mouseover', () => {
|
||||
// store.dispatch('map/setTrainDetails', this.deviceModel);
|
||||
// this.mouseEvent.mouseover();
|
||||
// });
|
||||
// this.on('mouseout', () => {
|
||||
// store.dispatch('map/setTrainDetails', null);
|
||||
// this.mouseEvent.mouseout();
|
||||
// });
|
||||
// this.on('click', () => {
|
||||
// this.mouseEvent.mouseClick();
|
||||
// });
|
||||
}
|
||||
|
||||
create() {
|
||||
@ -261,13 +261,12 @@ export default class TrainBody extends Group {
|
||||
this.add(this.travelNum);
|
||||
}
|
||||
if (style.Train.common.hasDelayTime) {
|
||||
const time = Math.abs(model.dt) <= 15 ? Math.abs(model.dt) : (model.dt > 0 ? '-' + model.dt : '+' + Math.abs(model.dt));
|
||||
this.delayTime = new ETextName({
|
||||
zlevel: model.zlevel,
|
||||
z: model.z + 1,
|
||||
x: parseInt(model.point.x + style.Train.delayTime.trainDelayTimeOffset.x),
|
||||
y: parseInt(model.point.y + style.Train.delayTime.trainDelayTimeOffset.y),
|
||||
text: time,
|
||||
text: model.dt > 0 ? '+' + model.dt : model.dt,
|
||||
textFill: '#DADA00',
|
||||
textStroke: style.trainTextColor,
|
||||
textStrokeWidth: 0,
|
||||
@ -309,12 +308,12 @@ export default class TrainBody extends Group {
|
||||
setTrainBorderColor(color) {
|
||||
this.trainBodyBox && this.trainBodyBox.setColor('stroke', color);
|
||||
}
|
||||
setHShow(isShow, parking) {
|
||||
setHShow(isShow) {
|
||||
if (this.textH) {
|
||||
isShow ? this.textH.show() : this.textH.hide();
|
||||
}
|
||||
if (this.style.Train.common.HSDASpliceShow && isShow) {
|
||||
this.trainBodyBox.buckleTrain(parking);
|
||||
if (this.style.Train.common.HSDASpliceShow) {
|
||||
isShow ? this.trainBodyBox.buckleTrain() : this.trainBodyBox.release();
|
||||
}
|
||||
}
|
||||
setSShow(isShow) {
|
||||
@ -551,12 +550,9 @@ export default class TrainBody extends Group {
|
||||
trainBodyFault() {
|
||||
this.trainBodyBox && this.trainBodyBox.trainBodyFault();
|
||||
}
|
||||
recoverTrainBoxAnimation() {
|
||||
this.trainBodyBox && this.trainBodyBox.recoverAnimation();
|
||||
untrainBodyFault() {
|
||||
this.trainBodyBox && this.trainBodyBox.untrainBodyFault();
|
||||
}
|
||||
// untrainBodyFault() {
|
||||
// this.trainBodyBox && this.trainBodyBox.untrainBodyFault();
|
||||
// }
|
||||
updateTextPosition(point) {
|
||||
this.mouseEvent.updateTextPosition(point);
|
||||
}
|
||||
|
@ -38,10 +38,10 @@ export default class TrainBodyBox extends Group {
|
||||
}
|
||||
}
|
||||
// 列车扣车
|
||||
buckleTrain(parking) {
|
||||
buckleTrain() {
|
||||
if (this.trainBodyBox) {
|
||||
if (parking) { // 列车停稳状态下开始闪烁
|
||||
this.trainBodyBox.setStyle('fill', 'yellow');
|
||||
this.trainBodyBox.setStyle('fill', 'yellow');
|
||||
if (!this.model.speed) { // 列车停稳状态下开始闪烁
|
||||
this.trainBodyBox.animateStyle(true)
|
||||
.when(0, { fill: this.model.style.backgroundColor })
|
||||
.when(1000, { fill: 'yellow' })
|
||||
@ -50,13 +50,13 @@ export default class TrainBodyBox extends Group {
|
||||
}
|
||||
}
|
||||
}
|
||||
// // 列车放行
|
||||
// release() {
|
||||
// if (this.trainBodyBox) {
|
||||
// this.trainBodyBox.setStyle('fill', this.model.style.Train.trainBody.trainBodyFillColor);
|
||||
// this.trainBodyBox.stopAnimation(false);
|
||||
// }
|
||||
// }
|
||||
// 列车放行
|
||||
release() {
|
||||
if (this.trainBodyBox) {
|
||||
this.trainBodyBox.setStyle('fill', this.model.style.Train.trainBody.trainBodyFillColor);
|
||||
this.trainBodyBox.stopAnimation(false);
|
||||
}
|
||||
}
|
||||
// 西安二号线 列车停车状态 闪烁红色
|
||||
trainBodyFault() {
|
||||
if (this.trainBodyBox) {
|
||||
@ -69,14 +69,8 @@ export default class TrainBodyBox extends Group {
|
||||
}
|
||||
|
||||
}
|
||||
// // 西安二号线 列车取消停车状态
|
||||
// untrainBodyFault() {
|
||||
// if (this.trainBodyBox) {
|
||||
// this.trainBodyBox.setStyle('fill', this.model.style.Train.trainBody.trainBodyFillColor);
|
||||
// this.trainBodyBox.stopAnimation(false);
|
||||
// }
|
||||
// }
|
||||
recoverAnimation() {
|
||||
// 西安二号线 列车取消停车状态
|
||||
untrainBodyFault() {
|
||||
if (this.trainBodyBox) {
|
||||
this.trainBodyBox.setStyle('fill', this.model.style.Train.trainBody.trainBodyFillColor);
|
||||
this.trainBodyBox.stopAnimation(false);
|
||||
|
@ -221,7 +221,7 @@ export default class Train extends Group {
|
||||
|
||||
// 恢复颜色状态
|
||||
recover() {
|
||||
this.trainB && this.trainB.setHShow(false, false);
|
||||
this.trainB && this.trainB.setHShow(false);
|
||||
this.trainB && this.trainB.setSShow(false);
|
||||
this.trainB && this.trainB.setDShow(false);
|
||||
this.trainB && this.trainB.setAShow(false);
|
||||
@ -231,7 +231,6 @@ export default class Train extends Group {
|
||||
this.trainL && this.trainL.setArrowShow(false);
|
||||
this.trainR && this.trainR.setArrowShow(false);
|
||||
this.trainB && this.trainB.setTrainBorderColor(this.style.Train.trainBody.trainSidelineColor || this.style.trainSidelineColor);
|
||||
this.trainB && this.trainB.recoverTrainBoxAnimation();
|
||||
}
|
||||
|
||||
// 设置运行方向状态类型
|
||||
@ -328,11 +327,11 @@ export default class Train extends Group {
|
||||
this.trainB && this.trainB.setSoonerOrLater(dt);
|
||||
}
|
||||
// 设置扣车状态
|
||||
setHoldStatus(status, parking) {
|
||||
setHoldStatus(status) {
|
||||
if (status) {
|
||||
this.trainB && this.trainB.setHShow(true, parking);
|
||||
this.trainB && this.trainB.setHShow(true);
|
||||
} else {
|
||||
this.trainB && this.trainB.setHShow(false, parking);
|
||||
this.trainB && this.trainB.setHShow(false);
|
||||
}
|
||||
}
|
||||
|
||||
@ -409,7 +408,7 @@ export default class Train extends Group {
|
||||
}
|
||||
this.setDoorStatus(model.doorCloseLock);
|
||||
this.setAlarmStatus(model.alarmStatus);
|
||||
this.setHoldStatus(model.hold, model.parking);
|
||||
this.setHoldStatus(model.hold);
|
||||
this.setJumpStatus(model.jump);
|
||||
// this.setSoonerOrLater(model.dt);
|
||||
this.setTrainTypeColor(model.type);
|
||||
@ -422,11 +421,9 @@ export default class Train extends Group {
|
||||
if (store.state.map.picture == 'largePassengerView') {
|
||||
this.handlePassagerColor(model.num);
|
||||
}
|
||||
// 西安二号线 列车停车状态 闪烁红色
|
||||
this.updateTrainBodyFault(model.orderStop);
|
||||
if (!model.groundCommunicable) {
|
||||
this.trainL && this.trainL.setColor('#f00');
|
||||
this.trainR && this.trainR.setColor('#f00');
|
||||
if (style.Train.trainBody.trainBodyFaultFlashColor) {
|
||||
// 西安二号线 列车停车状态 闪烁红色
|
||||
this.updateTrainBodyFault(model.orderStop);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -441,9 +438,16 @@ export default class Train extends Group {
|
||||
}
|
||||
|
||||
updateTrainBodyFault(orderStop) {
|
||||
// 西安二号线 列车停车状态 闪烁红色
|
||||
if (this.style.Train.trainBody.trainBodyFaultFlashColor && orderStop && this.trainB) {
|
||||
this.trainB.trainBodyFault();
|
||||
if (orderStop) {
|
||||
// 西安二号线 列车停车状态 闪烁红色
|
||||
if (this.trainB) {
|
||||
this.trainB.trainBodyFault();
|
||||
}
|
||||
} else {
|
||||
// 西安二号线 列车取消停车状态
|
||||
if (this.trainB) {
|
||||
this.trainB.untrainBodyFault();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -48,8 +48,7 @@ export default class EMouse extends Group {
|
||||
e.target._subType == 'Text') {
|
||||
this.text.hide();
|
||||
} else {
|
||||
// this.device.control.setControlColor(this.device.style.ZcControl.lamp.controlColor);
|
||||
this.device.setState(this.device.model)
|
||||
this.device.control.setControlColor(this.device.style.ZcControl.lamp.controlColor);
|
||||
this.device.control.setTextColor('#FFFFFF');
|
||||
this.device.control.setTextBorder(false);
|
||||
this.device.control.setArcBorder(false);
|
||||
|
@ -73,6 +73,7 @@ export default class ZcControl extends Group {
|
||||
// 设置状态
|
||||
setState(model) {
|
||||
this.recover();
|
||||
|
||||
// 只响应前端自定义类型的状态变化
|
||||
if (model._free) {
|
||||
this.setAshShow();
|
||||
|
@ -1,373 +0,0 @@
|
||||
<template>
|
||||
<div class="menus" :style="{width: width + 'px'}">
|
||||
<menu-station-stand ref="menuStationStand" :selected="selected" :work="'atsWork'" />
|
||||
<menu-switch ref="menuSwitch" :selected="selected" :work="'atsWork'" />
|
||||
<menu-signal ref="menuSignal" :selected="selected" :work="'atsWork'" />
|
||||
<menu-section ref="menuSection" :selected="selected" :work="'atsWork'" />
|
||||
<menu-train ref="menuTrain" :selected="selected" :work="'atsWork'" />
|
||||
<menu-station ref="menuStation" :selected="selected" :work="'atsWork'" />
|
||||
<menu-limit ref="menuLimit" :selected="selected" :work="'atsWork'" />
|
||||
<passive-alarm ref="passiveAlarm" />
|
||||
<passive-contorl ref="passiveControl" pop-class="beijing-01__systerm" />
|
||||
<passive-timeout ref="passiveTimeout" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapGetters } from 'vuex';
|
||||
import MenuSignal from './menuSignal';
|
||||
import MenuStationStand from './menuStationStand';
|
||||
import MenuSwitch from './menuSwitch';
|
||||
import MenuSection from './menuSection';
|
||||
import MenuTrain from './menuTrain';
|
||||
import MenuStation from './menuStation';
|
||||
import MenuLimit from './menuLimit';
|
||||
import PassiveAlarm from './passiveDialog/alarm';
|
||||
import PassiveContorl from '@/jmapNew/theme/components/menus/passiveDialog/control';
|
||||
import PassiveTimeout from './passiveDialog/timeout';
|
||||
|
||||
export default {
|
||||
name: 'AtsWorkMenus',
|
||||
components: {
|
||||
MenuSignal,
|
||||
MenuSwitch,
|
||||
MenuSection,
|
||||
MenuStationStand,
|
||||
MenuStation,
|
||||
MenuTrain,
|
||||
MenuLimit,
|
||||
PassiveAlarm,
|
||||
PassiveContorl,
|
||||
PassiveTimeout
|
||||
},
|
||||
props: {
|
||||
selected: {
|
||||
type: Object,
|
||||
default() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
...mapGetters('config', [
|
||||
'width'
|
||||
])
|
||||
},
|
||||
watch: {
|
||||
'$store.state.trainingNew.trainingSwitch': function (val) {
|
||||
if (val) {
|
||||
this.$store.dispatch('menuOperation/setButtonOperation', null);
|
||||
}
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.$nextTick(() => {
|
||||
this.$store.dispatch('config/updateMenuBar');
|
||||
this.$refs['menuSignal'].setRouteSignal();
|
||||
});
|
||||
this.$root.$on('dialogOpen', e => {
|
||||
if (this.selected == e &&
|
||||
this.selected &&
|
||||
this.selected.instance &&
|
||||
this.selected.instance.mouseEvent) {
|
||||
this.selected.instance.mouseEvent.mouseover();
|
||||
}
|
||||
});
|
||||
|
||||
this.$root.$on('dialogClose', e => {
|
||||
if (this.selected == e &&
|
||||
this.selected &&
|
||||
this.selected.instance &&
|
||||
this.selected.instance.mouseEvent) {
|
||||
this.selected.instance.__down = false;
|
||||
this.selected.instance.mouseEvent.mouseout();
|
||||
this.$jlmap.clearEvent();
|
||||
}
|
||||
});
|
||||
},
|
||||
beforeDestroy() {
|
||||
this.$root.$off('dialogOpen');
|
||||
this.$root.$off('dialogClose');
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.menus .pop-menu {
|
||||
background: #F0F0F0;
|
||||
}
|
||||
|
||||
.menus .pop-menu span {
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.menus .pop-menu .is-disabled span {
|
||||
color: #B4B3B8;
|
||||
}
|
||||
|
||||
.beijing-01__systerm {
|
||||
overflow: hidden !important;
|
||||
}
|
||||
|
||||
.beijing-01__systerm .el-dialog {
|
||||
background: rgba(100, 100, 100, 0.3);
|
||||
border: 2px solid rgb(144, 144, 144, 0.8);
|
||||
border-radius: 6px;
|
||||
color: #000;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.beijing-01__systerm .el-dialog .el-dialog__header {
|
||||
padding: 10px;
|
||||
height: 26px;
|
||||
}
|
||||
|
||||
.beijing-01__systerm .el-dialog .el-dialog__footer {
|
||||
background: #F0F0F0;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.beijing-01__systerm .el-dialog .el-dialog__body {
|
||||
padding: 10px;
|
||||
margin: 5px;
|
||||
border: 2px solid rgba(120, 121, 123, 0.5);
|
||||
box-shadow: 1px hsla(240, 0%, 100%, 0.5) inset;
|
||||
background: #F0F0F0;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.beijing-01__systerm .el-dialog .el-dialog__title {
|
||||
position: absolute;
|
||||
top: 6px;
|
||||
color: #000;
|
||||
border-radius: 4px;
|
||||
padding: 0px 2px;
|
||||
height: 20px;
|
||||
line-height: 20px
|
||||
}
|
||||
|
||||
.beijing-01__systerm .el-dialog .el-dialog__title::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
filter: blur(7px);
|
||||
height: 20px;
|
||||
width: -webkit-fill-available;
|
||||
background: rgba(190, 190, 190, 0.8);
|
||||
z-index: -1;
|
||||
}
|
||||
|
||||
.beijing-01__systerm .el-dialog .el-dialog__headerbtn {
|
||||
background: linear-gradient(#CD98A0, #C27D6E, #B63022, #C68770);
|
||||
border: 1px solid #fff;
|
||||
border-radius: 4px;
|
||||
top: 5px;
|
||||
right: 5px;
|
||||
line-height: 18px;
|
||||
}
|
||||
|
||||
.beijing-01__systerm .el-dialog .el-dialog__headerbtn .el-icon-close:before {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.beijing-01__systerm .el-dialog .el-dialog__headerbtn .el-dialog__close {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.beijing-01__systerm .el-dialog .el-button {
|
||||
height: 32px;
|
||||
line-height: 32px;
|
||||
padding: 0px;
|
||||
width: 80px;
|
||||
border: 2px outset #E2E2E2;
|
||||
border-radius: 0px !important;
|
||||
color: #000;
|
||||
background: #F0F0F0;
|
||||
}
|
||||
|
||||
.beijing-01__systerm .el-dialog .expand {
|
||||
width: 120px;
|
||||
}
|
||||
|
||||
.beijing-01__systerm .el-dialog .el-button:focus span {
|
||||
border: 1px dashed gray;
|
||||
}
|
||||
|
||||
.beijing-01__systerm .el-dialog .el-button:active {
|
||||
border: 2px inset #E2E2E2;
|
||||
}
|
||||
|
||||
.beijing-01__systerm .el-dialog .el-button:disabled {
|
||||
border: 2px inset #E2E2E2;
|
||||
}
|
||||
|
||||
.beijing-01__systerm .el-dialog .el-button:disabled span {
|
||||
border: 0px;
|
||||
}
|
||||
|
||||
.beijing-01__systerm .el-dialog .el-input {
|
||||
border: 2px inset #E9E9E9;
|
||||
}
|
||||
|
||||
.beijing-01__systerm .el-dialog .el-input .el-input__inner {
|
||||
color: #000;
|
||||
background: #fff !important;
|
||||
border: 0px;
|
||||
border-radius: 0px !important;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.beijing-01__systerm .el-dialog .el-input.is-disabled .el-input__inner {
|
||||
background: #F0F0F0 !important;
|
||||
}
|
||||
|
||||
.beijing-01__systerm .el-dialog .el-textarea {
|
||||
border: 2px inset #E9E9E9;
|
||||
border-radius: 0px;
|
||||
}
|
||||
|
||||
.beijing-01__systerm .el-dialog .el-textarea .el-textarea__inner {
|
||||
color: #000;
|
||||
background: #fff !important;
|
||||
border: 0px;
|
||||
border-radius: 0px !important;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.beijing-01__systerm .el-dialog .el-textarea.is-disabled .el-textarea__inner {
|
||||
background: #F0F0F0 !important;
|
||||
}
|
||||
|
||||
.beijing-01__systerm .el-dialog .el-table--border th.gutter {
|
||||
background: #EBEADB !important;
|
||||
}
|
||||
|
||||
.beijing-01__systerm .el-dialog .el-table {
|
||||
border: 2px inset #E9E9E9;
|
||||
color: #000 !important;
|
||||
}
|
||||
|
||||
.beijing-01__systerm .el-dialog .el-table .cell {
|
||||
line-height: unset !important;
|
||||
}
|
||||
|
||||
.beijing-01__systerm .el-dialog .el-table th.is-leaf {
|
||||
background: #F0F0F0 !important;
|
||||
border-right: 1px solid #BDBDBD !important;
|
||||
border-bottom: 1px solid #BDBDBD !important;
|
||||
color: #000 !important;
|
||||
height: 20px !important;
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
.beijing-01__systerm .el-dialog .el-table tr td {
|
||||
height: 20px !important;
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
.beijing-01__systerm .el-dialog .el-table .el-table__empty-text {
|
||||
top: 15px !important;
|
||||
}
|
||||
|
||||
.beijing-01__systerm .el-dialog .current-row>td {
|
||||
background: #3399FF !important;
|
||||
color: #fff !important;
|
||||
}
|
||||
|
||||
.beijing-01__systerm .el-dialog .el-checkbox__inner {
|
||||
border: 1px inset #dcdfe6 !important;
|
||||
}
|
||||
|
||||
.beijing-01__systerm .el-dialog .el-checkbox__label {
|
||||
color: #000 !important;
|
||||
}
|
||||
|
||||
.beijing-01__systerm .el-dialog .el-checkbox.is-disabled .el-checkbox__inner {
|
||||
background: #E6E6E6 !important;
|
||||
}
|
||||
|
||||
.beijing-01__systerm .el-dialog .el-checkbox.is-disabled .el-checkbox__label {
|
||||
color: #C5C9CC !important;
|
||||
}
|
||||
|
||||
.beijing-01__systerm .el-dialog .el-checkbox__input.is-checked .el-checkbox__inner {
|
||||
background: #fff !important;
|
||||
border: 1px inset #dcdfe6 !important;
|
||||
}
|
||||
|
||||
.beijing-01__systerm .el-dialog .el-checkbox__input.is-checked .el-checkbox__inner::after {
|
||||
position: absolute;
|
||||
-webkit-box-sizing: content-box;
|
||||
box-sizing: content-box;
|
||||
content: "";
|
||||
border: 1px solid #000;
|
||||
border-left: 0;
|
||||
border-top: 0;
|
||||
height: 7px;
|
||||
left: 4px;
|
||||
top: 1px;
|
||||
}
|
||||
|
||||
.beijing-01__systerm .el-dialog .el-radio__inner {
|
||||
border: 1px inset #dcdfe6 !important;
|
||||
}
|
||||
|
||||
.beijing-01__systerm .el-dialog .el-radio__label {
|
||||
color: #000 !important;
|
||||
}
|
||||
|
||||
.beijing-01__systerm .el-dialog .el-radio__input.is-checked .el-radio__inner {
|
||||
background: #fff !important;
|
||||
border: 1px inset #dcdfe6 !important;
|
||||
}
|
||||
|
||||
.beijing-01__systerm .el-dialog .el-radio__input.is-checked .el-radio__inner::after {
|
||||
width: 4px;
|
||||
height: 4px;
|
||||
border-radius: 100%;
|
||||
background-color: #000 !important;
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
}
|
||||
|
||||
.beijing-01__systerm .el-dialog .el-radio.is-disabled .el-radio__inner {
|
||||
background: #E6E6E6 !important;
|
||||
}
|
||||
|
||||
.beijing-01__systerm .el-dialog .el-radio.is-disabled .el-radio__label {
|
||||
color: #C5C9CC !important;
|
||||
}
|
||||
|
||||
.beijing-01__systerm .el-dialog .base-label {
|
||||
background: rgba(0, 0, 0, x);
|
||||
position: relative;
|
||||
left: -15px;
|
||||
top: -18px;
|
||||
}
|
||||
|
||||
.beijing-01__systerm .el-dialog .el-form-item label {
|
||||
font-weight: normal !important;
|
||||
color: #000 !important;
|
||||
}
|
||||
|
||||
.beijing-01__systerm .el-dialog .context {
|
||||
height: 100px;
|
||||
border: 2px inset #E2E2E2;
|
||||
overflow-y: scroll;
|
||||
}
|
||||
|
||||
.beijing-01__systerm .el-dialog .table {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.beijing-01__systerm .el-dialog .notice {
|
||||
margin-left: 62px;
|
||||
line-height: 30px;
|
||||
}
|
||||
|
||||
.beijing-01__systerm .el-dialog .button-group {
|
||||
margin-top: 10px;
|
||||
}
|
||||
</style>
|
@ -1,435 +0,0 @@
|
||||
<template>
|
||||
<div class="chengdou-01__menus" :style="{width: width + 'px'}">
|
||||
<menu-request ref="menuRequest" />
|
||||
<menu-station-stand ref="menuStationStand" :selected="selected" :work="work" />
|
||||
<menu-switch ref="menuSwitch" :selected="selected" :work="work" />
|
||||
<menu-signal ref="menuSignal" :selected="selected" :work="work" />
|
||||
<menu-section ref="menuSection" :selected="selected" :work="work" />
|
||||
<menu-train ref="menuTrain" :selected="selected" :work="work" />
|
||||
<menu-station ref="menuStation" :selected="selected" :work="work" />
|
||||
<menu-station-platform ref="menuStationPlatform" :selected="selected" @popMenuStationStand="popMenuStationStand" />
|
||||
<passive-alarm ref="passiveAlarm" />
|
||||
<passive-contorl ref="passiveControl" pop-class="chengdou-01__system" :work="work" />
|
||||
<passive-Timeout ref="passiveTimeout" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapGetters } from 'vuex';
|
||||
import MenuRequest from './menuRequest';
|
||||
import MenuSignal from './menuSignal';
|
||||
import MenuStationStand from './menuStationStand';
|
||||
import MenuSwitch from './menuSwitch';
|
||||
import MenuSection from './menuSection';
|
||||
import MenuTrain from './menuTrain';
|
||||
import MenuStation from './menuStation';
|
||||
import PassiveAlarm from './passiveDialog/alarm';
|
||||
import PassiveContorl from '@/jmapNew/theme/components/menus/passiveDialog/control';
|
||||
import PassiveTimeout from './passiveDialog/timeout';
|
||||
import MenuStationPlatform from './menuStationPlatform';
|
||||
|
||||
export default {
|
||||
name: 'AtsWorkMenu',
|
||||
components: {
|
||||
MenuRequest,
|
||||
// MenuCancel,
|
||||
MenuSignal,
|
||||
MenuSwitch,
|
||||
MenuSection,
|
||||
MenuStationStand,
|
||||
MenuStation,
|
||||
MenuTrain,
|
||||
PassiveAlarm,
|
||||
PassiveContorl,
|
||||
PassiveTimeout,
|
||||
MenuStationPlatform
|
||||
},
|
||||
props: {
|
||||
selected: {
|
||||
type: Object,
|
||||
default() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
work: 'atsWork'
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapGetters('config', [
|
||||
'width'
|
||||
])
|
||||
},
|
||||
watch: {
|
||||
},
|
||||
mounted() {
|
||||
this.$nextTick(() => {
|
||||
this.$store.dispatch('config/updateMenuBar');
|
||||
});
|
||||
},
|
||||
methods: {
|
||||
popMenuStationStand(param) {
|
||||
this.$refs.menuStationStand.doShow(param.position, param.type);
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.chengdou-01__menus .pop-menu {
|
||||
background: #5F9EA0;
|
||||
}
|
||||
.chengdou-01__menus .pop-menu .el-popover{
|
||||
background: #5F9EA0;
|
||||
}
|
||||
.chengdou-01__menus .pop-menu span {
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.chengdou-01__menus .pop-menu .is-disabled span {
|
||||
color: #B4B3B8;
|
||||
}
|
||||
|
||||
.chengdou-01__systerm {
|
||||
overflow: hidden !important;
|
||||
}
|
||||
|
||||
.chengdou-01__system .el-dialog {
|
||||
background: #0055E8;
|
||||
box-shadow: 1px hsla(240, 0%, 100%, 0.5) inset;
|
||||
border: 1px solid rgb(69, 134, 247);
|
||||
border-radius: 6px;
|
||||
font-size: 13px !important;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.chengdou-01__system .el-dialog span {
|
||||
font-size: 13px !important;
|
||||
line-height: 22px;
|
||||
}
|
||||
|
||||
.chengdou-01__system .el-dialog .el-dialog__footer {
|
||||
background: #5F9EA0;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.chengdou-01__system .el-dialog .el-dialog__body {
|
||||
padding: 20px;
|
||||
margin: 0px 3px 3px;
|
||||
border: 2px solid rgba(120, 121, 123, 0.5);
|
||||
box-shadow: 1px hsla(240, 0%, 100%, 0.5) inset;
|
||||
background: #5F9EA0;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.chengdou-01__system .station-stand .el-dialog__body {
|
||||
background: #000;
|
||||
color: #E8E8E8;
|
||||
}
|
||||
.chengdou-01__system .el-dialog .el-dialog__title {
|
||||
font-size: 16px;
|
||||
color: #fff;
|
||||
position: absolute;
|
||||
top: 4px;
|
||||
left:25px;
|
||||
}
|
||||
|
||||
.chengdou-01__system .el-dialog .el-dialog__headerbtn {
|
||||
background: linear-gradient(#CD98A0, #C27D6E, #B63022, #C68770);
|
||||
border: 1px solid #fff;
|
||||
border-radius: 4px;
|
||||
top: 6px;
|
||||
right: 3px;
|
||||
line-height: 16px;
|
||||
}
|
||||
|
||||
.chengdou-01__system .el-dialog .el-dialog__headerbtn .el-icon-close:before {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.chengdou-01__system .el-dialog .el-dialog__headerbtn .el-dialog__close {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.chengdou-01__system .el-dialog .el-button {
|
||||
height: 24px;
|
||||
line-height: 22px;
|
||||
padding: 0px;
|
||||
width: 80px;
|
||||
border: 2px outset #B7D4D5;
|
||||
border-radius: 0 !important;
|
||||
color: #000;
|
||||
background: #5F9EA0;
|
||||
}
|
||||
|
||||
.chengdou-01__system .el-dialog .expand {
|
||||
width: 120px;
|
||||
}
|
||||
|
||||
.chengdou-01__system .el-dialog .el-button:focus span {
|
||||
border: 1px dashed #315253;
|
||||
}
|
||||
|
||||
.chengdou-01__system .el-dialog .el-button:active {
|
||||
border: 2px inset #B7D4D5;
|
||||
}
|
||||
|
||||
.chengdou-01__system .el-dialog .el-button:disabled {
|
||||
border: 2px inset #B7D4D5;
|
||||
}
|
||||
|
||||
.chengdou-01__system .el-dialog .el-button:disabled span {
|
||||
border: 0px;
|
||||
}
|
||||
.chengdou-01__select-option .el-select-dropdown__item{
|
||||
background: #5F9EA0;
|
||||
}
|
||||
.chengdou-01__select-option .el-scrollbar__wrap {
|
||||
background-color: #5F9EA0;
|
||||
overflow: hidden;
|
||||
overflow-y: scroll;
|
||||
}
|
||||
.chengdou-01__select-option{
|
||||
border-style: solid;
|
||||
border-width: 1px;
|
||||
border-color: #335658 #99C1C3 #99C1C3 #335658;
|
||||
border-radius: 0;
|
||||
background:#5F9EA0;
|
||||
}
|
||||
.chengdou-01__select-option .el-scrollbar{
|
||||
border-style: solid;
|
||||
border-width: 1px;
|
||||
border-color: #467576 #A0C6C7 #A0C6C7 #467576;
|
||||
border-radius: 0;
|
||||
}
|
||||
.chengdou-01__select-option .el-select-dropdown__item.selected{
|
||||
color: #fff;
|
||||
}
|
||||
.chengdou-01__select-option .el-select-dropdown__item{
|
||||
color: #000;
|
||||
}
|
||||
.chengdou-01__system .el-dialog .el-transfer-panel{
|
||||
border-style: solid;
|
||||
border-width: 1px;
|
||||
border-color: #467576 #A0C6C7 #A0C6C7 #467576;
|
||||
border-radius: 0;
|
||||
background: #5F9EA0;
|
||||
}
|
||||
.chengdou-01__system .el-dialog .el-transfer .el-button{
|
||||
width: 40px;
|
||||
}
|
||||
.chengdou-01__system .el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label span {
|
||||
color: #000;
|
||||
}
|
||||
.chengdou-01__system .el-dialog .el-transfer-panel .el-transfer-panel__header {
|
||||
background: #5F9EA0;
|
||||
border-bottom: 1px solid #467576;
|
||||
}
|
||||
.chengdou-01__system .el-dialog .el-transfer-panel .el-transfer-panel__empty {
|
||||
color: #5F9EA0;
|
||||
}
|
||||
.chengdou-01__system .el-dialog .el-input {
|
||||
border-style:solid;
|
||||
border-width: 1px;
|
||||
border-color: #335658 #99C1C3 #99C1C3 #335658;
|
||||
height: 22px !important;
|
||||
line-height: 22px !important;
|
||||
background: #5F9EA0;
|
||||
}
|
||||
|
||||
.chengdou-01__system .el-dialog .el-input__inner {
|
||||
color: #000;
|
||||
background: #5F9EA0 !important;
|
||||
border-style:solid;
|
||||
border-width: 1px;
|
||||
border-color: #467576 #A0C6C7 #A0C6C7 #467576;
|
||||
border-radius: 0px !important;
|
||||
box-sizing: border-box;
|
||||
height: 22px !important;
|
||||
line-height: 22px !important;
|
||||
}
|
||||
|
||||
.chengdou-01__system .el-dialog .el-input.is-disabled .el-input__inner {
|
||||
background: #F0F0F0 !important;
|
||||
}
|
||||
|
||||
.chengdou-01__system .el-dialog .el-textarea {
|
||||
border-style:solid;
|
||||
border-width: 1px;
|
||||
border-color: #335658 #99C1C3 #99C1C3 #335658;
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
.chengdou-01__system .el-dialog .el-textarea .el-textarea__inner {
|
||||
color: #000;
|
||||
background: #5F9EA0 !important;
|
||||
border-style:solid;
|
||||
border-width: 1px;
|
||||
border-color: #467576 #A0C6C7 #A0C6C7 #467576;
|
||||
border-radius: 0px !important;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.chengdou-01__system .el-dialog .el-textarea.is-disabled .el-textarea__inner {
|
||||
background: #F0F0F0 !important;
|
||||
}
|
||||
|
||||
.chengdou-01__system .el-dialog .el-table--border th.gutter {
|
||||
background: #EBEADB !important;
|
||||
}
|
||||
|
||||
.chengdou-01__system .el-dialog .el-table {
|
||||
border: 2px inset #E9E9E9;
|
||||
color: #000 !important;
|
||||
}
|
||||
|
||||
.chengdou-01__system .el-dialog .el-table .cell {
|
||||
height: 22px;
|
||||
line-height: 22px;
|
||||
}
|
||||
|
||||
.chengdou-01__system .el-dialog .el-table th.is-leaf {
|
||||
background: #F0F0F0 !important;
|
||||
border-right: 1px solid #BDBDBD !important;
|
||||
border-bottom: 1px solid #BDBDBD !important;
|
||||
color: #000 !important;
|
||||
height: 20px !important;
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
.chengdou-01__system .el-dialog .el-table tr td {
|
||||
height: 20px !important;
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
.chengdou-01__system .el-dialog .el-table .el-table__empty-text {
|
||||
top: 15px !important;
|
||||
}
|
||||
|
||||
.chengdou-01__system .el-dialog .current-row>td {
|
||||
background: #3399FF !important;
|
||||
color: #fff !important;
|
||||
}
|
||||
|
||||
.chengdou-01__system .el-dialog .el-checkbox__inner {
|
||||
border: 1px inset #dcdfe6 !important;
|
||||
}
|
||||
|
||||
.chengdou-01__system .el-dialog .el-checkbox__label {
|
||||
color: #000 !important;
|
||||
}
|
||||
|
||||
.chengdou-01__system .el-dialog .el-checkbox.is-disabled .el-checkbox__inner {
|
||||
background: #E6E6E6 !important;
|
||||
}
|
||||
|
||||
.chengdou-01__system .el-dialog .el-checkbox.is-disabled .el-checkbox__label {
|
||||
color: #C5C9CC !important;
|
||||
}
|
||||
|
||||
.chengdou-01__system .el-dialog .el-checkbox__input.is-checked .el-checkbox__inner {
|
||||
background: #fff !important;
|
||||
border: 1px inset #dcdfe6 !important;
|
||||
}
|
||||
|
||||
.chengdou-01__system .el-dialog .el-checkbox__input.is-checked .el-checkbox__inner::after {
|
||||
position: absolute;
|
||||
-webkit-box-sizing: content-box;
|
||||
box-sizing: content-box;
|
||||
content: "";
|
||||
border: 1px solid #000;
|
||||
border-left: 0;
|
||||
border-top: 0;
|
||||
height: 7px;
|
||||
left: 4px;
|
||||
top: 1px;
|
||||
}
|
||||
|
||||
.chengdou-01__system .el-dialog .el-radio__inner {
|
||||
border: 1px inset #dcdfe6 !important;
|
||||
}
|
||||
|
||||
.chengdou-01__system .el-dialog .el-radio__label {
|
||||
color: #000 !important;
|
||||
}
|
||||
|
||||
.chengdou-01__system .el-dialog .el-radio__input.is-checked .el-radio__inner {
|
||||
background: #fff !important;
|
||||
border: 1px inset #dcdfe6 !important;
|
||||
}
|
||||
|
||||
.chengdou-01__system .el-dialog .el-radio__input.is-checked .el-radio__inner::after {
|
||||
width: 4px;
|
||||
height: 4px;
|
||||
border-radius: 100%;
|
||||
background-color: #000 !important;
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
}
|
||||
|
||||
.chengdou-01__system .el-dialog .el-radio.is-disabled .el-radio__inner {
|
||||
background: #E6E6E6 !important;
|
||||
}
|
||||
|
||||
.chengdou-01__system .el-dialog .el-radio.is-disabled .el-radio__label {
|
||||
color: #C5C9CC !important;
|
||||
}
|
||||
|
||||
.chengdou-01__system .el-dialog .base-label {
|
||||
background: rgba(0, 0, 0, x);
|
||||
position: relative;
|
||||
left: -15px;
|
||||
top: -18px;
|
||||
}
|
||||
|
||||
.chengdou-01__system .el-dialog .el-form-item label {
|
||||
font-weight: normal !important;
|
||||
color: #000 !important;
|
||||
}
|
||||
|
||||
.chengdou-01__system .el-dialog .context {
|
||||
height: 100px;
|
||||
border: 2px inset #E2E2E2;
|
||||
overflow-y: scroll;
|
||||
}
|
||||
|
||||
.chengdou-01__system .el-dialog .table {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.chengdou-01__system .el-dialog .notice {
|
||||
margin-left: 62px;
|
||||
line-height: 30px;
|
||||
}
|
||||
|
||||
.chengdou-01__system .el-dialog .button-group {
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
.chengdou-01__system.request_box .content-box .el-table__body-wrapper .el-table__row{
|
||||
background: #000;
|
||||
height: 30px;
|
||||
color: #518E86;
|
||||
}
|
||||
.chengdou-01__system.request_box .content-box .el-table__body-wrapper .el-table__row.hover-row td{
|
||||
background: #d5ecf7;
|
||||
}
|
||||
.chengdou-01__system.request_box .content-box .el-table__body-wrapper .el-table__row.current-row td{
|
||||
background: #d5ecf7;
|
||||
}
|
||||
.chengdou-01__system .el-select .el-input__suffix {
|
||||
top: 5px;
|
||||
}
|
||||
.chengdou-01__system .el-select .is-focus .el-input__suffix {
|
||||
top: -5px;
|
||||
}
|
||||
.chengdou-01__select-option .el-scrollbar__thumb {
|
||||
border-style:solid;
|
||||
border-width: 1px;
|
||||
border-color: #335658 #99C1C3 #99C1C3 #335658;
|
||||
background: #518E86;
|
||||
}
|
||||
</style>
|
@ -52,8 +52,7 @@ export default {
|
||||
cmdType: CMD.Signal.CMD_SIGNAL_SET_ROUTE,
|
||||
isDisabled: (signal, work) => {
|
||||
return false;
|
||||
},
|
||||
isShow: (signal, work) => work !== 'atsWork'
|
||||
}
|
||||
},
|
||||
{
|
||||
label: '取消进路',
|
||||
@ -61,8 +60,7 @@ export default {
|
||||
cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_ROUTE,
|
||||
isDisabled: (signal, work) => {
|
||||
return false;
|
||||
},
|
||||
isShow: (signal, work) => work !== 'atsWork'
|
||||
}
|
||||
},
|
||||
{
|
||||
label: '开放自动进路',
|
||||
@ -70,8 +68,7 @@ export default {
|
||||
cmdType: CMD.Signal.CMD_SIGNAL_SET_CI_AUTO,
|
||||
isDisabled: (signal, work) => {
|
||||
return false;
|
||||
},
|
||||
isShow: (signal, work) => work !== 'atsWork'
|
||||
}
|
||||
},
|
||||
{
|
||||
label: '关闭自动进路',
|
||||
@ -79,8 +76,7 @@ export default {
|
||||
cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_CI_AUTO,
|
||||
isDisabled: (signal, work) => {
|
||||
return false;
|
||||
},
|
||||
isShow: (signal, work) => work !== 'atsWork'
|
||||
}
|
||||
},
|
||||
{
|
||||
label: '终端信号封锁',
|
||||
@ -88,8 +84,7 @@ export default {
|
||||
cmdType: CMD.Signal.CMD_SIGNAL_BLOCK,
|
||||
isDisabled: (signal, work) => {
|
||||
return signal.blockade !== 0;
|
||||
},
|
||||
isShow: (signal, work) => work !== 'atsWork'
|
||||
}
|
||||
},
|
||||
{
|
||||
label: '终端信号解封',
|
||||
@ -97,8 +92,7 @@ export default {
|
||||
cmdType: CMD.Signal.CMD_SIGNAL_UNBLOCK,
|
||||
isDisabled: (signal, work) => {
|
||||
return signal.blockade === 0;
|
||||
},
|
||||
isShow: (signal, work) => work !== 'atsWork'
|
||||
}
|
||||
},
|
||||
{
|
||||
label: '引导信号',
|
||||
@ -106,8 +100,7 @@ export default {
|
||||
cmdType: CMD.Signal.CMD_SIGNAL_ROUTE_GUIDE,
|
||||
isDisabled: (signal, work) => {
|
||||
return false;
|
||||
},
|
||||
isShow: (signal, work) => work !== 'atsWork'
|
||||
}
|
||||
},
|
||||
{
|
||||
label: '设备标签',
|
||||
@ -120,8 +113,7 @@ export default {
|
||||
cmdType: '',
|
||||
show: false
|
||||
}
|
||||
],
|
||||
isShow: (signal, work) => work !== 'atsWork'
|
||||
]
|
||||
},
|
||||
{
|
||||
label: '模拟',
|
||||
|
@ -66,8 +66,7 @@ export default {
|
||||
} else {
|
||||
return switchDevice.normalPosition === 1;
|
||||
}
|
||||
},
|
||||
isShow: (switchDevice, work) => work !== 'atsWork'
|
||||
}
|
||||
},
|
||||
{
|
||||
label: '道岔反位',
|
||||
@ -79,8 +78,7 @@ export default {
|
||||
} else {
|
||||
return switchDevice.reversePosition === 1;
|
||||
}
|
||||
},
|
||||
isShow: (switchDevice, work) => work !== 'atsWork'
|
||||
}
|
||||
},
|
||||
{
|
||||
label: '道岔单锁',
|
||||
@ -92,8 +90,7 @@ export default {
|
||||
} else {
|
||||
return switchDevice.singleLock !== 0;
|
||||
}
|
||||
},
|
||||
isShow: (switchDevice, work) => work !== 'atsWork'
|
||||
}
|
||||
},
|
||||
{
|
||||
label: '道岔单解',
|
||||
@ -105,8 +102,7 @@ export default {
|
||||
} else {
|
||||
return switchDevice.singleLock !== 1;
|
||||
}
|
||||
},
|
||||
isShow: (switchDevice, work) => work !== 'atsWork'
|
||||
}
|
||||
}
|
||||
],
|
||||
menuForce: [
|
||||
|
@ -1,346 +0,0 @@
|
||||
<template>
|
||||
<div class="menus" :style="{width: width + 'px'}">
|
||||
|
||||
<menu-station-stand ref="menuStationStand" :selected="selected" :work="'atsWork'" />
|
||||
<menu-switch ref="menuSwitch" :selected="selected" :work="'atsWork'" />
|
||||
<menu-signal ref="menuSignal" :selected="selected" :work="'atsWork'" />
|
||||
<menu-section ref="menuSection" :selected="selected" :work="'atsWork'" />
|
||||
<menu-station ref="menuStation" :selected="selected" :work="'atsWork'" />
|
||||
<menu-train ref="menuTrain" :selected="selected" :work="'atsWork'" />
|
||||
|
||||
<passive-alarm ref="passiveAlarm" />
|
||||
<passive-contorl ref="passiveControl" pop-class="chengdou-03__systerm" />
|
||||
<passive-Timeout ref="passiveTimeout" />
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { mapGetters } from 'vuex';
|
||||
|
||||
|
||||
import MenuSignal from './menuSignal';
|
||||
import MenuStationStand from './menuStationStand';
|
||||
import MenuSwitch from './menuSwitch';
|
||||
import MenuSection from './menuSection';
|
||||
import MenuStation from './menuStation';
|
||||
import MenuTrain from './menuTrain';
|
||||
|
||||
import PassiveAlarm from './passiveDialog/alarm';
|
||||
import PassiveContorl from '@/jmapNew/theme/components/menus/passiveDialog/control';
|
||||
import PassiveTimeout from './passiveDialog/timeout';
|
||||
export default {
|
||||
name: 'AtsWorkMenu',
|
||||
components: {
|
||||
MenuSignal,
|
||||
MenuStationStand,
|
||||
MenuSwitch,
|
||||
MenuSection,
|
||||
MenuStation,
|
||||
MenuTrain,
|
||||
PassiveAlarm,
|
||||
PassiveContorl,
|
||||
PassiveTimeout
|
||||
},
|
||||
props: {
|
||||
selected: {
|
||||
type: Object,
|
||||
default() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
...mapGetters('config', [
|
||||
'width'
|
||||
])
|
||||
},
|
||||
mounted() {
|
||||
this.$nextTick(() => {
|
||||
this.$store.dispatch('config/updateMenuBar');
|
||||
const _that = this;
|
||||
window.onclick = function (e) {
|
||||
if (!_that.$store.state.training.trainingStart) {
|
||||
_that.$refs.menuBar && _that.$refs.menuBar.blankClickClose();
|
||||
}
|
||||
};
|
||||
});
|
||||
},
|
||||
beforeDestroy() {
|
||||
window.onclick = function (e) {};
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style>
|
||||
.menus .pop-menu {
|
||||
background: #F0F0F0;
|
||||
}
|
||||
|
||||
.menus .pop-menu span {
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.menus .pop-menu .is-disabled span {
|
||||
color: #B4B3B8;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm {
|
||||
overflow: hidden !important;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog {
|
||||
background: #0055E8;
|
||||
box-shadow: 1px hsla(240, 0%, 100%, 0.5) inset;
|
||||
border: 1px solid rgb(69, 134, 247);
|
||||
border-radius: 6px;
|
||||
font-size: 13px !important;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog span {
|
||||
font-size: 13px !important;
|
||||
line-height: 22px;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog span .el-icon-arrow-up{
|
||||
line-height: 18px;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-dialog__footer {
|
||||
background: #ECE9D8;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-dialog__body {
|
||||
padding: 20px;
|
||||
margin: 0px 3px 3px;
|
||||
border: 2px solid rgba(120, 121, 123, 0.5);
|
||||
box-shadow: 1px hsla(240, 0%, 100%, 0.5) inset;
|
||||
background: #ECE9D8;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-dialog__title {
|
||||
font-size: 16px;
|
||||
color: #fff;
|
||||
position: absolute;
|
||||
top: 4px;
|
||||
left: 7px;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-dialog__headerbtn {
|
||||
background: linear-gradient(#CD98A0, #C27D6E, #B63022, #C68770);
|
||||
border: 1px solid #fff;
|
||||
border-radius: 4px;
|
||||
top: 6px;
|
||||
right: 3px;
|
||||
line-height: 16px;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-dialog__headerbtn .el-icon-close:before {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-dialog__headerbtn .el-dialog__close {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-button {
|
||||
height: 24px;
|
||||
line-height: 22px;
|
||||
padding: 0px;
|
||||
width: 80px;
|
||||
border: 2px outset #E2E2E2;
|
||||
border-radius: 4px !important;
|
||||
color: #000;
|
||||
background: #F0F0F0;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .expand {
|
||||
width: 120px;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-button:focus span {
|
||||
border: 1px dashed gray;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-button:active {
|
||||
border: 2px inset #E2E2E2;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-button:disabled {
|
||||
border: 2px inset #E2E2E2;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-button:disabled span {
|
||||
border: 0px;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-input {
|
||||
border: 2px inset #E9E9E9;
|
||||
height: 22px !important;
|
||||
line-height: 22px !important;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-input__inner {
|
||||
color: #000;
|
||||
background: #fff !important;
|
||||
border: 0px;
|
||||
border-radius: 0px !important;
|
||||
box-sizing: border-box;
|
||||
height: 22px !important;
|
||||
line-height: 22px !important;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-input.is-disabled .el-input__inner {
|
||||
background: #F0F0F0 !important;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-textarea {
|
||||
border: 2px inset #E9E9E9;
|
||||
border-radius: 0px;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-textarea .el-textarea__inner {
|
||||
color: #000;
|
||||
background: #fff !important;
|
||||
border: 0px;
|
||||
border-radius: 0px !important;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-textarea.is-disabled .el-textarea__inner {
|
||||
background: #F0F0F0 !important;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-table--border th.gutter {
|
||||
background: #EBEADB !important;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-table {
|
||||
border: 2px inset #E9E9E9;
|
||||
color: #000 !important;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-table .cell {
|
||||
height: 22px;
|
||||
line-height: 22px;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-table th.is-leaf {
|
||||
background: #F0F0F0 !important;
|
||||
border-right: 1px solid #BDBDBD !important;
|
||||
border-bottom: 1px solid #BDBDBD !important;
|
||||
color: #000 !important;
|
||||
height: 20px !important;
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-table tr td {
|
||||
height: 20px !important;
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-table .el-table__empty-text {
|
||||
top: 15px !important;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .current-row>td {
|
||||
background: #3399FF !important;
|
||||
color: #fff !important;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-checkbox__inner {
|
||||
border: 1px inset #dcdfe6 !important;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-checkbox__label {
|
||||
color: #000 !important;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-checkbox.is-disabled .el-checkbox__inner {
|
||||
background: #E6E6E6 !important;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-checkbox.is-disabled .el-checkbox__label {
|
||||
color: #C5C9CC !important;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-checkbox__input.is-checked .el-checkbox__inner {
|
||||
background: #fff !important;
|
||||
border: 1px inset #dcdfe6 !important;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-checkbox__input.is-checked .el-checkbox__inner::after {
|
||||
position: absolute;
|
||||
-webkit-box-sizing: content-box;
|
||||
box-sizing: content-box;
|
||||
content: "";
|
||||
border: 1px solid #000;
|
||||
border-left: 0;
|
||||
border-top: 0;
|
||||
height: 7px;
|
||||
left: 4px;
|
||||
top: 1px;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-radio__inner {
|
||||
border: 1px inset #dcdfe6 !important;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-radio__label {
|
||||
color: #000 !important;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-radio__input.is-checked .el-radio__inner {
|
||||
background: #fff !important;
|
||||
border: 1px inset #dcdfe6 !important;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-radio__input.is-checked .el-radio__inner::after {
|
||||
width: 4px;
|
||||
height: 4px;
|
||||
border-radius: 100%;
|
||||
background-color: #000 !important;
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-radio.is-disabled .el-radio__inner {
|
||||
background: #E6E6E6 !important;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-radio.is-disabled .el-radio__label {
|
||||
color: #C5C9CC !important;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .base-label {
|
||||
background: rgba(0, 0, 0, x);
|
||||
position: relative;
|
||||
left: -15px;
|
||||
top: -18px;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-form-item label {
|
||||
font-weight: normal !important;
|
||||
color: #000 !important;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .context {
|
||||
height: 100px;
|
||||
border: 2px inset #E2E2E2;
|
||||
overflow-y: scroll;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .table {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .notice {
|
||||
margin-left: 62px;
|
||||
line-height: 30px;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .button-group {
|
||||
margin-top: 20px;
|
||||
}
|
||||
</style>
|
@ -1,174 +0,0 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
v-dialogDrag
|
||||
class="chengdou-03__systerm stand-run-level"
|
||||
:title="title"
|
||||
:visible.sync="show"
|
||||
width="320px"
|
||||
:before-close="doClose"
|
||||
:z-index="2000"
|
||||
:modal="false"
|
||||
:close-on-click-modal="false"
|
||||
>
|
||||
<div style="font-size: 16px; margin-bottom: 5px;">变通节点</div>
|
||||
<div style="margin-bottom: 5px;">
|
||||
<el-input v-model="stationName" size="mini" disabled />
|
||||
</div>
|
||||
<div style="font-size: 16px; margin-bottom: 5px;">当前变通策略</div>
|
||||
<div style="margin-bottom: 5px;">
|
||||
<el-input v-model="stationStrategy" size="mini" disabled />
|
||||
</div>
|
||||
<div style="font-size: 16px; margin-bottom: 5px;">变通策略选项</div>
|
||||
<el-table
|
||||
ref="table"
|
||||
:data="strategyList"
|
||||
border
|
||||
:cell-style="tableStyle"
|
||||
style="width: 100%; margin-top:10px"
|
||||
size="mini"
|
||||
height="180"
|
||||
highlight-current-row
|
||||
:show-header="false"
|
||||
@row-click="clickEvent"
|
||||
>
|
||||
<el-table-column :id="domIdChoose" prop="label" style="margin-left:30px" />
|
||||
</el-table>
|
||||
<el-row justify="center" class="button-group">
|
||||
<el-col :span="10" :offset="2">
|
||||
<el-button :id="domIdConfirm" type="primary" :loading="loading" :disabled="!isConfirm" @click="commit">
|
||||
确定</el-button>
|
||||
</el-col>
|
||||
<el-col :span="8" :offset="4">
|
||||
<el-button :id="domIdCancel" @click="cancel">取 消</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<notice-info ref="noticeInfo" pop-class="chengdou-03__systerm" />
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
|
||||
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
||||
import {menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate';
|
||||
import { mapGetters } from 'vuex';
|
||||
|
||||
export default {
|
||||
name: 'StandBackStrategy',
|
||||
components: {
|
||||
NoticeInfo
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
dialogShow: false,
|
||||
loading: false,
|
||||
strategyList: [],
|
||||
stationName: '',
|
||||
stationStrategy: '',
|
||||
selection: [],
|
||||
isConfirm: false,
|
||||
strategyId: '',
|
||||
tableStyle: {
|
||||
'border-bottom': 'none'
|
||||
}
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapGetters('map', [
|
||||
'stationList'
|
||||
]),
|
||||
show() {
|
||||
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||
},
|
||||
domIdCancel() {
|
||||
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
|
||||
},
|
||||
domIdConfirm() {
|
||||
return this.dialogShow ? OperationEvent.Station.setBackStrategy.menu.domId : '';
|
||||
},
|
||||
domIdChoose() {
|
||||
return this.dialogShow ? OperationEvent.Station.setBackStrategy.choose.domId : '';
|
||||
},
|
||||
title() {
|
||||
return '策略选择';
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
doShow(operate, selected) {
|
||||
this.selected = selected;
|
||||
if (!this.dialogShow) {
|
||||
const name = selected.optionList.find(ele => ele.id == selected.tbStrategyId).label;
|
||||
this.stationName = selected.name || '';
|
||||
this.stationStrategy = selected.tbStrategyId ? name : '无策略折返'; // 当前默认折返策略
|
||||
this.strategyList = selected.optionList; // 策略列表
|
||||
}
|
||||
|
||||
this.dialogShow = true;
|
||||
this.$nextTick(function () {
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
});
|
||||
},
|
||||
clickEvent(row, column, event) {
|
||||
const operate = {
|
||||
operation: OperationEvent.Station.setBackStrategy.choose.operation
|
||||
};
|
||||
this.strategyId = row.id;
|
||||
this.isConfirm = true;
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||
}
|
||||
});
|
||||
},
|
||||
checkTableDataSelction(data) {
|
||||
const selection = [];
|
||||
if (data && data.length > 0) {
|
||||
data.forEach(row => {
|
||||
if (row.check && !row.disabled) {
|
||||
selection.push(row);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
this.disabledSend = !selection.length;
|
||||
if (JSON.stringify(selection) !== JSON.stringify(this.selection)) {
|
||||
this.selection = selection;
|
||||
}
|
||||
},
|
||||
doClose() {
|
||||
this.loading = false;
|
||||
this.dialogShow = false;
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
},
|
||||
commit() {
|
||||
if (this.isConfirm) {
|
||||
this.loading = true;
|
||||
commitOperate(menuOperate.StationControl.setBackStrategy, {id: this.strategyId}, 2).then(({valid})=>{
|
||||
this.loading = false;
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch(() => {
|
||||
this.loading = false;
|
||||
this.doClose();
|
||||
this.$refs.noticeInfo.doShow();
|
||||
});
|
||||
} else {
|
||||
this.doClose();
|
||||
}
|
||||
},
|
||||
cancel() {
|
||||
const operate = {
|
||||
operation: OperationEvent.Command.cancel.menu.operation
|
||||
};
|
||||
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch(() => {
|
||||
this.doClose();
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
@ -8,7 +8,6 @@
|
||||
<menu-section ref="menuSection" :selected="selected" :work="'dispatchWork'" />
|
||||
<menu-station ref="menuStation" :selected="selected" :work="'dispatchWork'" />
|
||||
<menu-train ref="menuTrain" :selected="selected" :work="'dispatchWork'" />
|
||||
<menu-station-turn-back ref="menuStationTurnBack" :selected="selected" :work="'dispatchWork'" />
|
||||
|
||||
<passive-alarm ref="passiveAlarm" />
|
||||
<passive-contorl ref="passiveControl" pop-class="chengdou-03__systerm" />
|
||||
@ -25,7 +24,6 @@ import MenuSwitch from './menuSwitch';
|
||||
import MenuSection from './menuSection';
|
||||
import MenuStation from './menuStation';
|
||||
import MenuTrain from './menuTrain';
|
||||
import MenuStationTurnBack from './menuStationTurnBack.vue';
|
||||
|
||||
import PassiveAlarm from './passiveDialog/alarm';
|
||||
import PassiveContorl from '@/jmapNew/theme/components/menus/passiveDialog/control';
|
||||
@ -42,8 +40,7 @@ export default {
|
||||
MenuTrain,
|
||||
PassiveAlarm,
|
||||
PassiveContorl,
|
||||
PassiveTimeout,
|
||||
MenuStationTurnBack
|
||||
PassiveTimeout
|
||||
},
|
||||
props: {
|
||||
selected: {
|
||||
|
@ -2,14 +2,7 @@
|
||||
<div class="menus" :style="{width: width + 'px'}">
|
||||
<menu-bar ref="menuBar" :selected="selected" />
|
||||
<menu-button ref="menuButton" />
|
||||
|
||||
<menu-station-stand ref="menuStationStand" :selected="selected" :work="'localWork'" />
|
||||
<menu-switch ref="menuSwitch" :selected="selected" :work="'localWork'" />
|
||||
<menu-signal ref="menuSignal" :selected="selected" :work="'localWork'" />
|
||||
<menu-section ref="menuSection" :selected="selected" :work="'localWork'" />
|
||||
<menu-station ref="menuStation" :selected="selected" :work="'localWork'" />
|
||||
<menu-train ref="menuTrain" :selected="selected" :work="'localWork'" />
|
||||
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
@ -17,22 +10,12 @@ import { mapGetters } from 'vuex';
|
||||
import MenuTrain from './menuTrain';
|
||||
import MenuButton from './menuButton';
|
||||
import MenuBar from './localWorkMenuBar';
|
||||
import MenuSignal from './menuSignal';
|
||||
import MenuStationStand from './menuStationStand';
|
||||
import MenuSwitch from './menuSwitch';
|
||||
import MenuSection from './menuSection';
|
||||
import MenuStation from './menuStation';
|
||||
export default {
|
||||
name: 'LocalWorkMenu',
|
||||
components: {
|
||||
MenuTrain,
|
||||
MenuButton,
|
||||
MenuBar,
|
||||
MenuSignal,
|
||||
MenuStationStand,
|
||||
MenuSwitch,
|
||||
MenuSection,
|
||||
MenuStation
|
||||
MenuBar
|
||||
},
|
||||
props: {
|
||||
selected: {
|
||||
|
@ -350,7 +350,7 @@ export default {
|
||||
}
|
||||
}
|
||||
// 如果该信号机红灯亮 而且 所属区段左右两侧区段锁闭 执行信号重启操作
|
||||
if (signal.lockedRouteCode) { // 信号重启
|
||||
if (signal.aspect == 'R' && isArrangementRoute) { // 信号重启
|
||||
operate.over = true;
|
||||
operate.cmdType = CMD.Signal.CMD_SIGNAL_REOPEN_SIGNAL;
|
||||
operate.code = deviceList[0].code;
|
||||
@ -370,8 +370,7 @@ export default {
|
||||
this.routeList.forEach(item => {
|
||||
// item.endButtonSignalCode
|
||||
// 起始信号机 和 结束信号机按钮 过滤进路
|
||||
const endSignalCode = item.endButtonSignalCode || item.endSignalCode;
|
||||
if (item.startSignalCode === deviceList[0].code && endSignalCode === deviceList[1].code) {
|
||||
if (item.startSignalCode === deviceList[0].code && item.endSignalCode === deviceList[1].code) {
|
||||
operate.over = true;
|
||||
operate.cmdType = CMD.Signal.CMD_SIGNAL_SET_ROUTE;
|
||||
operate.code = deviceList[1].code;
|
||||
@ -397,28 +396,19 @@ export default {
|
||||
operation: this.$store.state.menuOperation.buttonOperation,
|
||||
param: {}
|
||||
};
|
||||
let controlMode = '';
|
||||
const station = this.$store.getters['map/getDeviceByCode'](model.stationCode);
|
||||
if (station) {
|
||||
controlMode = station.controlMode;
|
||||
// if (station.controlMode == 'Local' || station.controlMode == 'Emergency') {
|
||||
// controlFlag = true;Interlock
|
||||
// }
|
||||
}
|
||||
const list2 = ['Local', 'Emergency'];
|
||||
if (model._type === 'StationStand' && subType === 'StopJumpLamp' && list2.includes(controlMode)) {
|
||||
if (model._type === 'StationStand' && subType === 'StopJumpLamp') {
|
||||
operate.cmdType = CMD.Stand.CMD_STAND_SET_JUMP_STOP;
|
||||
operate.param = {standCode: model.code, trainGroupNumber: ''};
|
||||
operate.code = model.code;
|
||||
} else if (model._type === 'StationStand' && subType === 'CancelStopJumpLamp' && list2.includes(controlMode)) {
|
||||
} else if (model._type === 'StationStand' && subType === 'CancelStopJumpLamp') {
|
||||
operate.cmdType = CMD.Stand.CMD_STAND_CANCEL_JUMP_STOP;
|
||||
operate.param = {standCode: model.code, trainGroupNumber: ''};
|
||||
operate.code = model.code;
|
||||
} else if (model._type === 'AutoTurnBack' && controlMode === 'Interlock') {
|
||||
} else if (model._type === 'AutoTurnBack' ) {
|
||||
operate.cmdType = CMD.Signal.CMD_SIGNAL_SET_AUTO_TURN_BACK;
|
||||
operate.param = {cycleCode: model.cycleCode};
|
||||
operate.code = model.code;
|
||||
} else if (model._type === 'AutomaticRoute' && controlMode === 'Interlock') {
|
||||
} else if (model._type === 'AutomaticRoute') {
|
||||
const route = this.routeData[model.automaticRouteCode];
|
||||
operate.cmdType = CMD.Signal.CMD_SIGNAL_SET_CI_AUTO;
|
||||
operate.param = {signalCode: route.startSignalCode};
|
||||
@ -433,34 +423,31 @@ export default {
|
||||
break;
|
||||
case 'center':
|
||||
operate.cmdType = CMD.ControlConvertMenu.CMD_CM_APPLY_FOR_CENTER_CONTROL;
|
||||
delete operate.over;
|
||||
// delete operate.over;
|
||||
operate.subType = 'center';
|
||||
operate.param = {stationCodes: [model.code]};
|
||||
operate.code = model.code;
|
||||
break;
|
||||
case 'emergency':
|
||||
operate.cmdType = CMD.ControlConvertMenu.CMD_CM_EMERGENCY_STATION_CONTROL;
|
||||
delete operate.over;
|
||||
// delete operate.over;
|
||||
operate.subType = 'emergency';
|
||||
operate.param = {stationCodes: [model.code]};
|
||||
operate.code = model.code;
|
||||
break;
|
||||
case 'interconnected':
|
||||
operate.cmdType = CMD.ControlConvertMenu.CMD_CM_INTERLOCK_CONTROL;
|
||||
delete operate.over;
|
||||
operate.cmdType = CMD.ControlConvertMenu.CMD_CM_EMERGENCY_STATION_CONTROL;
|
||||
// delete operate.over;
|
||||
operate.subType = 'interconnected';
|
||||
operate.param = {stationCodes: [model.code]};
|
||||
operate.code = model.code;
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
this.$message.info('请检查操作设备或控制权');
|
||||
return;
|
||||
}
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid, response }) => {
|
||||
// 判断是否需要 弹窗密码框
|
||||
// const operate = Object.assign({}, operate);
|
||||
if (subType == 'center' || subType == 'emergency' || subType == 'interconnected' ) {
|
||||
if (subType == 'center ' || subType == 'emergency' || subType == 'interconnected' ) {
|
||||
operate['operateNext'] = operate.operation = this.Command.close.password.operation;
|
||||
if (subType == 'center') {
|
||||
operate['nextCmdType'] = CMD.ControlConvertMenu.CMD_CM_APPLY_FOR_CENTER_CONTROL;
|
||||
@ -572,8 +559,7 @@ export default {
|
||||
};
|
||||
let flag = false;
|
||||
this.routeList.forEach(item => {
|
||||
const endSignalCode = item.endButtonSignalCode || item.endSignalCode;
|
||||
if (item.startSignalCode === deviceList[0].code && endSignalCode === deviceList[1].code) {
|
||||
if (item.startSignalCode === deviceList[0].code && item.endSignalCode === deviceList[1].code) {
|
||||
operate.param = {routeCode: item.code, signalCode: deviceList[0].code};
|
||||
this.deviceList = [];
|
||||
flag = true;
|
||||
@ -719,37 +705,38 @@ export default {
|
||||
this.handelFunctionButton(model, subType);
|
||||
} else {
|
||||
const station = this.$store.getters['map/getDeviceByCode'](model.stationCode);
|
||||
const list1 = ['Local', 'Emergency', 'Interlock'];
|
||||
const list2 = ['Local', 'Emergency'];
|
||||
if (station) {
|
||||
if (station.controlMode == 'Local' || station.controlMode == 'Emergency') {
|
||||
if (buttonOperation && this.commandTypeList.includes(model._type)) {
|
||||
this.deviceList.push(model);
|
||||
if (buttonOperation === this.Signal.arrangementRoute.button.operation && list1.includes(station.controlMode)) {
|
||||
if (buttonOperation === this.Signal.arrangementRoute.button.operation) {
|
||||
this.arrangementRouteOperation(this.deviceList);
|
||||
} else if (buttonOperation === this.MixinCommand.totalCancel.button.operation) {
|
||||
this.handelTotalCancel(model, subType);
|
||||
} else if (buttonOperation === this.Signal.humanTrainRoute.button.operation && list1.includes(station.controlMode)) {
|
||||
} else if (buttonOperation === this.Signal.humanTrainRoute.button.operation) {
|
||||
this.handleTotalHumanSolution(model);
|
||||
} else if (buttonOperation === this.Signal.guide.button.operation && list1.includes(station.controlMode)) {
|
||||
} else if (buttonOperation === this.Signal.guide.button.operation) {
|
||||
this.handleGuideRoute(this.deviceList);
|
||||
} else if ((buttonOperation === this.Signal.atsAutoControl.button.operation || buttonOperation === this.Signal.humanControl.button.operation) && list2.includes(station.controlMode)) {
|
||||
} else if (buttonOperation === this.Signal.atsAutoControl.button.operation || buttonOperation === this.Signal.humanControl.button.operation) {
|
||||
this.handelControlRoute(model);
|
||||
} else if (switchOperation.includes(buttonOperation) && list1.includes(station.controlMode)) {
|
||||
} else if (switchOperation.includes(buttonOperation)) {
|
||||
this.handelSwitchOperate(model);
|
||||
} else if ((buttonOperation === this.MixinCommand.block.button.operation || buttonOperation === this.MixinCommand.unblock.button.operation) && list1.includes(station.controlMode)) {
|
||||
} else if (buttonOperation === this.MixinCommand.block.button.operation || buttonOperation === this.MixinCommand.unblock.button.operation) {
|
||||
this.handelBlockOrUnblock(model);
|
||||
} else if (buttonOperation === this.Station.guideLock.button.operation && station.controlMode === 'Interlock') {
|
||||
} else if (buttonOperation === this.Station.guideLock.button.operation) {
|
||||
this.handelGuideLock(model);
|
||||
} else if (buttonOperation === this.Section.fault.button.operation && list1.includes(station.controlMode)) {
|
||||
} else if (buttonOperation === this.Section.fault.button.operation) {
|
||||
this.handelFaultSection(model);
|
||||
} else {
|
||||
this.clearOperate();
|
||||
this.operatemode != OperateMode.FAULT && this.$message.info('请检查操作设备或控制权');
|
||||
}
|
||||
} else {
|
||||
this.clearOperate();
|
||||
this.operatemode != OperateMode.FAULT && this.$message.info('请检查操作设备或控制权');
|
||||
}
|
||||
} else {
|
||||
this.clearOperate();
|
||||
this.operatemode != OperateMode.FAULT && this.$message.info('请先切换到站控或紧急站控');
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -1,105 +0,0 @@
|
||||
<template>
|
||||
<div>
|
||||
<pop-menu ref="popMenu" :menu="menu" />
|
||||
<station-back-strategy ref="stationBackStrategy" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import PopMenu from '@/components/PopMenu';
|
||||
import StationBackStrategy from './dialog/stationBackStrategy';
|
||||
import { mapGetters } from 'vuex';
|
||||
|
||||
import { DeviceMenu, OperateMode } from '@/scripts/ConstDic';
|
||||
import CMD from '@/scripts/cmdPlugin/CommandEnum';
|
||||
import {menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate';
|
||||
|
||||
export default {
|
||||
name: 'MenuStationTurnBack',
|
||||
components: {
|
||||
PopMenu,
|
||||
StationBackStrategy
|
||||
},
|
||||
props: {
|
||||
selected: {
|
||||
type: Object,
|
||||
default() {
|
||||
return null;
|
||||
}
|
||||
},
|
||||
work: {
|
||||
type: String,
|
||||
default() {
|
||||
return '';
|
||||
}
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
menu: [],
|
||||
menuNormal: [
|
||||
{
|
||||
label: '设置折返策略',
|
||||
handler: this.setBackStrategy,
|
||||
cmdType: CMD.Station.CMD_STATION_SET_TURN_BACK_STRATEGY
|
||||
}
|
||||
],
|
||||
menuForce: [
|
||||
]
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapGetters('training', [
|
||||
'mode',
|
||||
'operatemode'
|
||||
]),
|
||||
...mapGetters('menuOperation', [
|
||||
'buttonOperation'
|
||||
])
|
||||
},
|
||||
watch: {
|
||||
'$store.state.menuOperation.menuCount': function (val) {
|
||||
if (this.$store.getters['menuOperation/checkDialogIsOpen'](DeviceMenu.StationTurnBack) && !this.buttonOperation) {
|
||||
this.doShow(this.$store.state.menuOperation.menuPosition);
|
||||
} else {
|
||||
this.doClose();
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
initMenu() {
|
||||
// 编辑模式菜单列表
|
||||
this.menu = [];
|
||||
this.menuNormal.forEach(menuItem => {
|
||||
menuItem.disabled = menuItem.isDisabled ? menuItem.isDisabled(this.selected, this.work) : false;
|
||||
menuItem.show = menuItem.isShow ? menuItem.isShow(this.selected, this.work) : true;
|
||||
this.menu.push(menuItem);
|
||||
});
|
||||
|
||||
// 故障模式菜单列表
|
||||
if (this.operatemode === OperateMode.FAULT) {
|
||||
this.menu = this.menuForce;
|
||||
}
|
||||
},
|
||||
doShow(point) {
|
||||
this.initMenu();
|
||||
if (this.menu && this.menu.length > 0) {
|
||||
this.setBackStrategy();
|
||||
}
|
||||
},
|
||||
doClose() {
|
||||
if (this.$refs && this.$refs.popMenu) {
|
||||
this.$refs.popMenu.close();
|
||||
}
|
||||
},
|
||||
// 设置折返策略
|
||||
setBackStrategy() {
|
||||
commitOperate(menuOperate.StationControl.setBackStrategy, {stationCode: this.selected.stationCode}, 0).then(({valid, operate})=>{
|
||||
if (valid) {
|
||||
this.$refs.stationBackStrategy.doShow(operate, this.selected);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
@ -13,48 +13,48 @@
|
||||
>
|
||||
<div class="main">
|
||||
<div class="left">
|
||||
<div class="left-type">车站</div>
|
||||
<div class="left-type">Station</div>
|
||||
<div class="type-content">
|
||||
<div class="content-item">
|
||||
<img :src="shouxinImg" style="width: 58px; height: 58px">
|
||||
<div>收令箱</div>
|
||||
<div>Receive order box</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="content-box">
|
||||
<div class="box-top">
|
||||
<div class="top-title">收令箱</div>
|
||||
<div class="top-title">Receive order box</div>
|
||||
<div class="top-table">
|
||||
<el-table :data="cmdTableData" border style="width: 100%" height="160" highlight-current-row :row-class-name="tableRowClassName" @current-change="handleCurrentChange">
|
||||
<el-table-column prop="title" label="标题" show-overflow-tooltip />
|
||||
<el-table-column prop="cmdCode" label="号码" width="80" />
|
||||
<el-table-column label="命令类型" width="100">
|
||||
<el-table-column prop="title" label="Title" show-overflow-tooltip />
|
||||
<el-table-column prop="cmdCode" label="Number" width="80" />
|
||||
<el-table-column label="Order type" width="100">
|
||||
<template slot-scope="scope">
|
||||
<span style="margin-left: 10px">{{ typeObj[scope.row.type] || '' }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="收令日期" width="160">
|
||||
<el-table-column label="Date of receipt" width="160">
|
||||
<template slot-scope="scope">
|
||||
<span style="margin-left: 10px">{{ getStateInfo(scope.row.rcvCompanies).time || '' }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="发令单位" show-overflow-tooltip>
|
||||
<el-table-column label="Issuing unit" show-overflow-tooltip>
|
||||
<template slot-scope="scope">
|
||||
<span style="margin-left: 10px">{{ scope.row.sendCompany ? scope.row.sendCompany.name : '' }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="sender" label="发令人" show-overflow-tooltip />
|
||||
<el-table-column label="签否">
|
||||
<el-table-column prop="sender" label="Initiator" show-overflow-tooltip/>
|
||||
<el-table-column label="Signed or not">
|
||||
<template slot-scope="scope">
|
||||
<span style="margin-left: 10px">{{ getSignedStatus(getStateInfo(scope.row.rcvCompanies)) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="签收人" show-overflow-tooltip>
|
||||
<el-table-column label="Signatory" show-overflow-tooltip>
|
||||
<template slot-scope="scope">
|
||||
<span style="margin-left: 10px">{{ getSignedBy(scope.row.rcvCompanies) || '' }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="签收时间" width="160">
|
||||
<el-table-column label="Receipt time" width="160">
|
||||
<template slot-scope="scope">
|
||||
<span style="margin-left: 10px">{{ getStateInfo(scope.row.rcvCompanies).time || '' }}</span>
|
||||
</template>
|
||||
@ -64,26 +64,26 @@
|
||||
</div>
|
||||
<div class="box-middle">
|
||||
<div class="middle-left">
|
||||
<el-input v-model="currentInfo.content" readonly type="textarea" rows="19" resize="none" placeholder="请输入内容" />
|
||||
<el-input v-model="currentInfo.content" readonly type="textarea" rows="19" resize="none" placeholder="Please enter the content" />
|
||||
</div>
|
||||
<div class="middle-right">
|
||||
<div class="middle-right-top">
|
||||
<el-table :data="getTableData" border style="width: 100%" height="190">
|
||||
<el-table-column type="index" label="序" width="50" />
|
||||
<el-table-column prop="name" label="受令单位" />
|
||||
<el-table-column prop="copyers" label="抄知处所" />
|
||||
<el-table-column type="index" label="Index" width="53" />
|
||||
<el-table-column prop="name" label="Ordered unit" width="105" />
|
||||
<el-table-column prop="copyers" label="Place of receipt" />
|
||||
</el-table>
|
||||
</div>
|
||||
<div class="middle-right-middle">
|
||||
<span>阅读信息</span>
|
||||
<el-checkbox v-model="needRead">需阅读</el-checkbox>
|
||||
<el-checkbox v-model="stopRead">停止阅读</el-checkbox>
|
||||
<span>Read information</span>
|
||||
<el-checkbox v-model="needRead">To be read</el-checkbox>
|
||||
<el-checkbox v-model="stopRead">Stop reading</el-checkbox>
|
||||
</div>
|
||||
<div class="middle-right-bottom">
|
||||
<el-table :data="readList" border style="width: 100%" height="200">
|
||||
<el-table-column type="index" label="序" width="50" />
|
||||
<el-table-column prop="reader" label="阅读人" />
|
||||
<el-table-column prop="readTime" label="阅读时间" />
|
||||
<el-table-column type="index" label="Index" width="53" />
|
||||
<el-table-column prop="reader" label="Read by" />
|
||||
<el-table-column prop="readTime" label="Reading time" />
|
||||
</el-table>
|
||||
</div>
|
||||
</div>
|
||||
@ -91,9 +91,9 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom-btn">
|
||||
<el-button :id="getDomObj('signCmdFalse').domId" :disabled="!commandId || currentHasSigned" @click="signCmd(false)">拒签</el-button>
|
||||
<el-button :id="getDomObj('signCmdTrue').domId" :disabled="!commandId || currentHasSigned" @click="signCmd(true)">签收</el-button>
|
||||
<el-button @click="doClose">关闭</el-button>
|
||||
<el-button :id="getDomObj('signCmdFalse').domId" :disabled="!commandId || currentHasSigned" @click="signCmd(false)">Refusal</el-button>
|
||||
<el-button :id="getDomObj('signCmdTrue').domId" :disabled="!commandId || currentHasSigned" @click="signCmd(true)">Sign</el-button>
|
||||
<el-button @click="doClose">Close</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</template>
|
||||
@ -115,21 +115,21 @@ export default {
|
||||
currentInfo: {},
|
||||
queryResData: {},
|
||||
typeObj: {
|
||||
Normal: '普通调度命令',
|
||||
Construct: '施工调度命令',
|
||||
Forward: '转发调度命令',
|
||||
Request: '请求调度命令',
|
||||
LongTerm: '长效调度命令',
|
||||
ShiftScheduling: '班计划调度命令',
|
||||
Other: '其他调度命令'
|
||||
Normal: 'General scheduling command',
|
||||
Construct: 'Construction scheduling command',
|
||||
Forward: 'Forward scheduling command',
|
||||
Request: 'Request scheduling command',
|
||||
LongTerm: 'Long-acting scheduling command',
|
||||
ShiftScheduling: 'Shift scheduling command',
|
||||
Other: 'Other'
|
||||
},
|
||||
signedStatusObj: {
|
||||
Cache: '缓存',
|
||||
Sent: '已发送',
|
||||
SrmReceived: '自律机接收',
|
||||
Received: '已接收',
|
||||
Signed: '已签收',
|
||||
Reject: '已拒签'
|
||||
Cache: 'Cache',
|
||||
Sent: 'Send',
|
||||
SrmReceived: 'Self-regulating machine received',
|
||||
Received: 'Received',
|
||||
Signed: 'Signed',
|
||||
Reject: 'Reject'
|
||||
}
|
||||
};
|
||||
},
|
||||
@ -147,7 +147,7 @@ export default {
|
||||
return this.$route.query.group;
|
||||
},
|
||||
title() {
|
||||
return '调度命令管理';
|
||||
return 'Scheduling command management';
|
||||
},
|
||||
commandId() {
|
||||
return this.currentInfo.cmdId || '';
|
||||
|
@ -33,16 +33,6 @@
|
||||
</el-select>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="11">预选模式</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="11">
|
||||
<el-select v-model="addModel.preselectionMode" size="small">
|
||||
<el-option v-for="option in modeList" :key="option.value" :label="option.label" :value="option.value" />
|
||||
</el-select>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row justify="center" class="button-group">
|
||||
<el-col :span="10">
|
||||
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
|
||||
@ -81,18 +71,10 @@ export default {
|
||||
addModel: {
|
||||
groupNumber: '',
|
||||
right: '',
|
||||
sectionCode: '',
|
||||
preselectionMode: 'RM'
|
||||
sectionCode: ''
|
||||
},
|
||||
dialogShow: false,
|
||||
loading: false,
|
||||
modeList: [
|
||||
{ value: 'AM_C', label: 'AM-C模式' },
|
||||
{ value: 'SM_C', label: 'SM-C模式' },
|
||||
{ value: 'AM_I', label: 'AM-I模式'},
|
||||
{ value: 'SM_I', label: 'SM-I模式' },
|
||||
{ value: 'RM', label: 'RM模式' }
|
||||
]
|
||||
loading: false
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
@ -137,8 +119,7 @@ export default {
|
||||
this.addModel = {
|
||||
groupNumber: '',
|
||||
right: '',
|
||||
sectionCode: '',
|
||||
preselectionMode: 'RM'
|
||||
sectionCode: ''
|
||||
};
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
this.$store.dispatch('map/setTrainWindowShow', false);
|
||||
@ -152,8 +133,7 @@ export default {
|
||||
const params = {
|
||||
groupNumber: this.addModel.groupNumber,
|
||||
sectionCode: this.addModel.sectionCode,
|
||||
right: this.addModel.right,
|
||||
preselectionMode: this.addModel.preselectionMode
|
||||
right: this.addModel.right
|
||||
};
|
||||
this.messageTip1 = '';
|
||||
this.loading = true;
|
||||
|
@ -16,23 +16,24 @@
|
||||
<el-row>
|
||||
<el-form ref="form" :model="formModel" :rules="rules">
|
||||
<el-col :span="24">
|
||||
<el-form-item prop="speedLimit" label="限速:">
|
||||
<el-form-item prop="speedLimit" label="Speed limit:">
|
||||
<el-input v-model="formModel.speedLimit" style="width: 115px;margin-right: 10px;" size="small" />
|
||||
<span>km/h</span>
|
||||
<el-tooltip style="margin-left: 10px;" effect="dark" content="值为5-65之间,不填为取消限速" placement="top-start">
|
||||
<el-tooltip style="margin-left: 10px;" effect="dark" content="Value between 5 and 65, leave blank to cancel speed limit" placement="top-start">
|
||||
<i class="el-icon-warning" />
|
||||
</el-tooltip>
|
||||
</el-form-item>
|
||||
<el-form-item prop="through" label="方式:">
|
||||
<el-radio-group v-model="formModel.through" style="text-align: left;">
|
||||
<el-radio :label="1">越红灯行驶</el-radio><br>
|
||||
<el-radio style="margin-top: 10px" :label="2">越引导行驶</el-radio><br>
|
||||
<el-radio style="margin-top: 10px" :label="3">运行至前方车站</el-radio><br>
|
||||
<el-radio style="margin-top: 10px" :label="0">进路闭塞法行车</el-radio>
|
||||
<el-form-item prop="through" label="Mode:">
|
||||
<el-radio-group v-model="formModel.through">
|
||||
<el-radio :label="1">Drive through red lights</el-radio><br>
|
||||
<el-radio style="margin-top: 10px" :label="2">Oversteer</el-radio><br>
|
||||
<el-radio style="margin-top: 10px" :label="3">Running to the station ahead</el-radio><br>
|
||||
<el-radio style="margin-top: 10px" :label="4">Approach blocking method of travel</el-radio><br>
|
||||
<el-radio style="margin-top: 10px" :label="0">No</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item prop="targetDeviceCode" label="目的地:">
|
||||
<el-select ref="faultSelect1" v-model="formModel.targetDeviceCode" filterable clearable size="small" style="height: 32px;line-height: 32px;" placeholder="请选择">
|
||||
<el-form-item prop="targetDeviceCode" label="Destination:">
|
||||
<el-select ref="faultSelect1" v-model="formModel.targetDeviceCode" filterable clearable size="small" style="height: 32px;line-height: 32px;" placeholder="Please select">
|
||||
<el-option
|
||||
v-for="item in selectedList"
|
||||
:key="item.code"
|
||||
@ -40,7 +41,7 @@
|
||||
:value="item.code"
|
||||
/>
|
||||
</el-select>
|
||||
<el-tooltip style="margin-left: 10px;" effect="dark" content="可在站场图上进行点选" placement="top-start">
|
||||
<el-tooltip style="margin-left: 10px;" effect="dark" content="Point-and-click on the station map" placement="top-start">
|
||||
<i class="el-icon-warning" />
|
||||
</el-tooltip>
|
||||
<!--<el-button-->
|
||||
@ -55,8 +56,8 @@
|
||||
</template>
|
||||
<template v-else>
|
||||
<el-row class="header">
|
||||
<el-col :span="11"><span>设备:</span></el-col>
|
||||
<el-col :span="11" :offset="2"><span>故障类型:</span></el-col>
|
||||
<el-col :span="11"><span>Equipment:</span></el-col>
|
||||
<el-col :span="11" :offset="2"><span>Fault type:</span></el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-form ref="form" :model="form" :rules="rules">
|
||||
@ -67,7 +68,7 @@
|
||||
</el-col>
|
||||
<el-col :span="11" :offset="2">
|
||||
<el-form-item prop="faultType">
|
||||
<el-select ref="faultSelect2" v-model="form.faultType" size="small" style="height: 32px;line-height: 32px;" placeholder="请选择">
|
||||
<el-select ref="faultSelect2" v-model="form.faultType" size="small" style="height: 32px;line-height: 32px;" placeholder="Please select">
|
||||
<el-option
|
||||
v-for="item in faultList"
|
||||
:key="item.value"
|
||||
@ -82,10 +83,10 @@
|
||||
</template>
|
||||
<el-row justify="center" class="button-group">
|
||||
<el-col :span="10" :offset="2">
|
||||
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
|
||||
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">Confirm</el-button>
|
||||
</el-col>
|
||||
<el-col :span="8" :offset="4">
|
||||
<el-button :id="domIdCancel" @click="cancel">取消</el-button>
|
||||
<el-button :id="domIdCancel" @click="cancel">Cancel</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
@ -134,7 +135,7 @@ export default {
|
||||
selected: null,
|
||||
rules: {
|
||||
faultType: [
|
||||
{ required: true, message: '请选择故障类型', trigger: 'change'}
|
||||
{ required: true, message: 'Please select fault type', trigger: 'change'}
|
||||
]
|
||||
}
|
||||
};
|
||||
@ -160,11 +161,11 @@ export default {
|
||||
},
|
||||
title() {
|
||||
if (this.operation == OperationEvent.MixinCommand.stoppage.menu.operation) {
|
||||
return '设置故障';
|
||||
return 'Set faults';
|
||||
} else if (this.operation == OperationEvent.MixinCommand.cancelStoppage.menu.operation) {
|
||||
return '取消故障';
|
||||
return 'Cancel faults';
|
||||
} else if (this.operation == OperationEvent.MixinCommand.collocation.menu.operation) {
|
||||
return '驾驶';
|
||||
return 'Driving';
|
||||
}
|
||||
return '';
|
||||
}
|
||||
@ -203,7 +204,7 @@ export default {
|
||||
if (name) {
|
||||
this.deviceName = deviceType[selected._type] + '-' + name;
|
||||
} else if (selected._type == 'Server') {
|
||||
this.deviceName = '服务器';
|
||||
this.deviceName = 'Server';
|
||||
} else {
|
||||
this.deviceName = deviceType[selected._type];
|
||||
}
|
||||
@ -216,70 +217,38 @@ export default {
|
||||
// }
|
||||
if (selected._type === 'Section' && this.popClass === 'haerbin-01__systerm') {
|
||||
this.faultList = [
|
||||
{label: '计轴故障', value: 'FAULT'},
|
||||
{label: '通信车占用', value: 'CBTC_OCCUPIED_FAULT'}
|
||||
{label: 'Gauge shaft fault', value: 'FAULT'},
|
||||
{label: 'Communication train occupancy', value: 'CBTC_OCCUPIED_FAULT'}
|
||||
];
|
||||
} else if (selected._type === 'Section' && this.popClass === 'datie-02__systerm') {
|
||||
this.faultList = [
|
||||
{label: '电路故障', value: 'FAULT'},
|
||||
{label: '故障锁闭', value: 'FAULT_LOCK'}
|
||||
{label: 'Circuit failure', value: 'FAULT'},
|
||||
{label: 'Fault lockout', value: 'FAULT_LOCK'}
|
||||
// {label: '通信车占用', value: 'CBTC_OCCUPIED_FAULT'}
|
||||
];
|
||||
} else if (selected._type === 'Switch' && this.popClass === 'haerbin-01__systerm') {
|
||||
this.faultList = [
|
||||
{label: '失表', value: 'SPLIT'},
|
||||
{label: '定位失表', value: 'NORMAL_SPLIT'},
|
||||
{label: '反位失表', value: 'REVERSE_SPLIT'},
|
||||
{label: '挤岔', value: 'SQUEEZE'},
|
||||
{label: '通信车占用', value: 'CBTC_OCCUPIED_FAULT'},
|
||||
{label: '计轴故障', value: 'AXLE_FAULT'}
|
||||
];
|
||||
// } else if (selected._type === 'Switch' && this.popClass === 'haerbin-01__systerm') {
|
||||
// this.faultList = [
|
||||
// {label: 'Split', value: 'SPLIT'},
|
||||
// {label: 'Normal split', value: 'NORMAL_SPLIT'},
|
||||
// {label: 'Reverse split', value: 'REVERSE_SPLIT'},
|
||||
// {label: 'Squeeze', value: 'SQUEEZE'},
|
||||
// {label: 'Communication train occupancy', value: 'CBTC_OCCUPIED_FAULT'},
|
||||
// {label: 'Axle fault', value: 'AXLE_FAULT'}
|
||||
// ];
|
||||
} else if (selected._type === 'Switch' && this.popClass === 'datie-02__systerm') {
|
||||
this.faultList = [
|
||||
{label: '失表', value: 'SPLIT'},
|
||||
{label: '定位失表', value: 'NORMAL_SPLIT'},
|
||||
{label: '反位失表', value: 'REVERSE_SPLIT'},
|
||||
{label: '挤岔', value: 'SQUEEZE'},
|
||||
{label: 'Out of position', value: 'SPLIT'},
|
||||
{label: 'Normal Out of position', value: 'NORMAL_SPLIT'},
|
||||
{label: 'Reverse Out of position', value: 'REVERSE_SPLIT'},
|
||||
{label: 'Squeeze off', value: 'SQUEEZE'},
|
||||
// {label: '通信车占用', value: 'CBTC_OCCUPIED_FAULT'},
|
||||
{label: '电路故障', value: 'AXLE_FAULT'}
|
||||
];
|
||||
} else if (selected._type === 'Section' && this.popClass === 'xian-01__systerm') {
|
||||
this.faultList = [
|
||||
{label: '红光带故障', value: 'FAULT'},
|
||||
{label: '粉光带故障', value: 'CBTC_OCCUPIED_FAULT'},
|
||||
{label: '橙光带故障', value: 'ARB'}
|
||||
];
|
||||
} else if (selected._type === 'Switch' && this.popClass === 'xian-01__systerm' ) {
|
||||
this.faultList = [
|
||||
{label: '失表', value: 'SPLIT'},
|
||||
{label: '定位失表', value: 'NORMAL_SPLIT'},
|
||||
{label: '反位失表', value: 'REVERSE_SPLIT'},
|
||||
{label: '挤岔', value: 'SQUEEZE'},
|
||||
{label: '粉光带故障', value: 'CBTC_OCCUPIED_FAULT'},
|
||||
{label: '红光带故障', value: 'AXLE_FAULT'},
|
||||
{label: '橙光带故障', value: 'ARB'}
|
||||
];
|
||||
} else if (selected._type === 'Switch' && this.popClass === 'nanjing-02__systerm' ) {
|
||||
this.faultList = [
|
||||
{label: '短闪', value: 'SPLIT'},
|
||||
{label: '短闪(转动后恢复)', value: 'SPLIT_1'},
|
||||
{label: '定位短闪', value: 'NORMAL_SPLIT'},
|
||||
{label: '反位短闪', value: 'REVERSE_SPLIT'},
|
||||
{label: '长闪', value: 'SQUEEZE'},
|
||||
{label: '道岔区段灰显', value: 'SECTION_NO_STATUS'},
|
||||
{label: '红光带故障', value: 'CBTC_OCCUPIED_FAULT'},
|
||||
{label: '紫光带故障', value: 'AXLE_FAULT'},
|
||||
{label: '计轴受扰', value: 'ARB'}
|
||||
];
|
||||
} else if (selected._type === 'Server' && this.popClass === 'nanjing-02__systerm') {
|
||||
this.faultList = [
|
||||
{label: 'ATS故障', value: 'ATS_FAULT' }
|
||||
{label: 'Circuit failure', value: 'AXLE_FAULT'}
|
||||
];
|
||||
} else if (selected._type === 'Signal' && this.popClass === 'nanjing-02__systerm') {
|
||||
this.faultList = [
|
||||
{label: '红灯断丝', value: 'R_WIRE_FAULT'},
|
||||
{label: '绿灯断丝', value: 'G_WIRE_FAULT'},
|
||||
{label: '黄灯断丝', value: 'Y_WIRE_FAULT'}
|
||||
{label: '无法开放(非CTC)', value: 'NO_OPEN'},
|
||||
{label: '编号闪', value: 'LIGHTING_UNIT_FAULT_NAME'},
|
||||
{label: '机头闪', value: 'LIGHTING_UNIT_FAULT_HEAD'}
|
||||
];
|
||||
} else if (selected._type === 'Section' && this.popClass === 'nanjing-02__systerm') {
|
||||
this.faultList = [
|
||||
@ -408,12 +377,12 @@ export default {
|
||||
this.doClose();
|
||||
} else {
|
||||
this.doClose();
|
||||
this.$messageBox('设置或取消故障操作失败!');
|
||||
this.$messageBox('Failed to set or cancel the fault!');
|
||||
}
|
||||
}).catch((error) => {
|
||||
this.loading = false;
|
||||
this.doClose();
|
||||
this.$messageBox(error.message || '设置或取消故障操作失败!');
|
||||
this.$messageBox(error.message || 'Failed to set or cancel the fault!');
|
||||
});
|
||||
},
|
||||
|
||||
|
@ -11,8 +11,8 @@
|
||||
:close-on-click-modal="false"
|
||||
>
|
||||
<el-row class="header">
|
||||
<el-col :span="11"><span>车站名称</span></el-col>
|
||||
<el-col :span="11" :offset="2"><span>道岔</span></el-col>
|
||||
<el-col :span="11"><span>Station name</span></el-col>
|
||||
<el-col :span="11" :offset="2"><span>Switch</span></el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="11">
|
||||
@ -23,20 +23,20 @@
|
||||
</el-col>
|
||||
</el-row>
|
||||
<div style="padding: 10px 15px; border: 1px double lightgray;height: 60px;margin-top: 15px;">
|
||||
<span class="base-label" style="left:-10px;background:#f0f0f0;">钩锁位置</span>
|
||||
<div style=" position: relative; top:10px;">
|
||||
<span class="base-label" style="left:-10px;background:#f0f0f0;">Hook lock position</span>
|
||||
<div style=" position: relative; top:-10px;">
|
||||
<el-radio-group v-model="normal">
|
||||
<el-radio :label="true">定位</el-radio>
|
||||
<el-radio :label="false">反位</el-radio>
|
||||
<el-radio :label="true">Normal</el-radio>
|
||||
<el-radio :label="false">Reverse</el-radio>
|
||||
</el-radio-group>
|
||||
</div>
|
||||
</div>
|
||||
<el-row justify="center" class="button-group">
|
||||
<el-col :span="10" :offset="2">
|
||||
<el-button type="primary" :loading="loading" @click="commit">确定</el-button>
|
||||
<el-button type="primary" :loading="loading" @click="commit">Confirm</el-button>
|
||||
</el-col>
|
||||
<el-col :span="8" :offset="4">
|
||||
<el-button @click="doClose">取 消</el-button>
|
||||
<el-button @click="doClose">Cancel</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<notice-info ref="noticeInfo" :pop-class="popClass" />
|
||||
|
@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
v-dialogDrag
|
||||
title="列车操作"
|
||||
title="Train Control"
|
||||
:visible.sync="dialogVisible"
|
||||
width="30%"
|
||||
:modal="false"
|
||||
@ -20,7 +20,7 @@
|
||||
/>
|
||||
</el-col>
|
||||
<el-col :span="3" :offset="2">
|
||||
<el-button size="mini" type="danger" style="margin-top: 15px;" @click="brakeTrain">刹车</el-button>
|
||||
<el-button size="mini" type="danger" style="margin-top: 15px;" @click="brakeTrain">brake</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row style="margin-top: 40px">
|
||||
@ -35,7 +35,7 @@
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row style="text-align: center;margin-top: 15px;">
|
||||
<el-button type="primary" size="mini" @click="handleRun">自动运行</el-button>
|
||||
<el-button type="primary" size="mini" @click="handleRun">Run</el-button>
|
||||
</el-row>
|
||||
</el-dialog>
|
||||
</template>
|
||||
@ -44,7 +44,7 @@
|
||||
import LeftTrain from '@/assets/left_train.png';
|
||||
import RightTrain from '@/assets/right_train.png';
|
||||
import { sandTableTrainControl } from '@/api/simulation';
|
||||
import {menuOperate} from '@/jmapNew/theme/components/utils/menuOperate';
|
||||
import { menuOperate } from '@/jmapNew/theme/components/utils/menuOperate';
|
||||
export default {
|
||||
name: 'TrainOperation',
|
||||
data() {
|
||||
@ -117,7 +117,7 @@ export default {
|
||||
adjustDirection() {
|
||||
sandTableTrainControl(this.$route.query.group, { groupNumber: this.groupNumber, right: !this.right, speed: this.speed }).then(resp => {
|
||||
this.right = !this.right;
|
||||
}).catch(err => { this.$message.error(err.message); }).finally(() => { this.changeSpeedFlag = false; });
|
||||
}).catch(err => { this.$message.error(err.message); });
|
||||
},
|
||||
brakeTrain() {
|
||||
sandTableTrainControl(this.$route.query.group, { groupNumber: this.groupNumber, right: this.right, speed: 0 }).then(resp => {
|
||||
@ -146,7 +146,7 @@ export default {
|
||||
}
|
||||
}).catch((error) => {
|
||||
this.$messageBox(error.message || 'Failed to set or cancel the fault!');
|
||||
}).finally(() => { this.changeSpeedFlag = false; });
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
|
@ -13,7 +13,7 @@
|
||||
>
|
||||
<el-form ref="form" size="small" label-width="80px" :model="addModel" @submit.native.prevent>
|
||||
<div style="width: 96%;">
|
||||
<el-form-item label="是否EB:" label-width="95px" prop="speedLimit">
|
||||
<el-form-item label="is or isn't EB:" label-width="95px" prop="speedLimit">
|
||||
<div style="display: flex;align-items: center;">
|
||||
<el-checkbox v-model="addModel.eb" />
|
||||
</div>
|
||||
@ -22,10 +22,10 @@
|
||||
</el-form>
|
||||
<el-row justify="center" class="button-group">
|
||||
<el-col :span="10" :offset="2">
|
||||
<el-button type="primary" :loading="loading" @click="commit">确定</el-button>
|
||||
<el-button type="primary" :loading="loading" @click="commit">Confirm</el-button>
|
||||
</el-col>
|
||||
<el-col :span="8" :offset="4">
|
||||
<el-button @click="doClose">取 消</el-button>
|
||||
<el-button @click="doClose">Cancel</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<notice-info ref="noticeInfo" :pop-class="popClass" />
|
||||
@ -67,7 +67,7 @@ export default {
|
||||
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||
},
|
||||
title() {
|
||||
return '输入限速值';
|
||||
return 'Input speed limit';
|
||||
}
|
||||
},
|
||||
watch:{
|
||||
|
@ -13,7 +13,6 @@ import SetTrainOperation from '@/jmapNew/theme/components/menus/dialog/setTrainO
|
||||
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
|
||||
import SetFault from '@/jmapNew/theme/components/menus/dialog/setFault';
|
||||
import { DeviceMenu } from '@/scripts/ConstDic';
|
||||
import CMD from '@/scripts/cmdPlugin/CommandEnum';
|
||||
export default {
|
||||
name: 'MenuTrain',
|
||||
components: {
|
||||
@ -88,31 +87,6 @@ export default {
|
||||
{
|
||||
label: '回库',
|
||||
handler: this.setInbound
|
||||
},
|
||||
{
|
||||
label: '受电弓操作',
|
||||
children: [
|
||||
{
|
||||
label: '受电弓1升',
|
||||
handler: this.pantogrphOneUp,
|
||||
cmdType: CMD.Driver.CMD_SPECIAL_PANTOGRAPH_UP_DOWN
|
||||
},
|
||||
{
|
||||
label: '受电弓1降',
|
||||
handler: this.pantogrphOneDown,
|
||||
cmdType: CMD.Driver.CMD_SPECIAL_PANTOGRAPH_UP_DOWN
|
||||
},
|
||||
{
|
||||
label: '受电弓2升',
|
||||
handler: this.pantogrphTwoUp,
|
||||
cmdType: CMD.Driver.CMD_SPECIAL_PANTOGRAPH_UP_DOWN
|
||||
},
|
||||
{
|
||||
label: '受电弓2降',
|
||||
handler: this.pantogrphTwoDown,
|
||||
cmdType: CMD.Driver.CMD_SPECIAL_PANTOGRAPH_UP_DOWN
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
};
|
||||
@ -237,34 +211,6 @@ export default {
|
||||
this.$refs.popMenu.close();
|
||||
// this.$store.dispatch('map/setTrainWindowShow', false);
|
||||
}
|
||||
},
|
||||
pantogrphOneUp() {
|
||||
commitOperate(menuOperate.Driver.specialPantographUpDown, { index: 1, up: true, groupNumber: this.selected.code }, 3).then(({valid, operate}) => {
|
||||
}).catch((error)=> {
|
||||
console.error(error);
|
||||
this.$refs.noticeInfo.doShow();
|
||||
});
|
||||
},
|
||||
pantogrphOneDown() {
|
||||
commitOperate(menuOperate.Driver.specialPantographUpDown, { index: 1, up: false, groupNumber: this.selected.code }, 3).then(({valid, operate}) => {
|
||||
}).catch((error)=> {
|
||||
console.error(error);
|
||||
this.$refs.noticeInfo.doShow();
|
||||
});
|
||||
},
|
||||
pantogrphTwoUp() {
|
||||
commitOperate(menuOperate.Driver.specialPantographUpDown, { index: 2, up: true, groupNumber: this.selected.code }, 3).then(({valid, operate}) => {
|
||||
}).catch((error)=> {
|
||||
console.error(error);
|
||||
this.$refs.noticeInfo.doShow();
|
||||
});
|
||||
},
|
||||
pantogrphTwoDown() {
|
||||
commitOperate(menuOperate.Driver.specialPantographUpDown, { index: 2, up: false, groupNumber: this.selected.code }, 3).then(({valid, operate}) => {
|
||||
}).catch((error)=> {
|
||||
console.error(error);
|
||||
this.$refs.noticeInfo.doShow();
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
|
@ -2,7 +2,7 @@
|
||||
<el-dialog
|
||||
v-dialogDrag
|
||||
:class="popClass+' passive-control'"
|
||||
title="控制模式请求"
|
||||
title="Request Control Mode"
|
||||
:visible.sync="show"
|
||||
width="700px"
|
||||
:before-close="doClose"
|
||||
@ -11,7 +11,7 @@
|
||||
:modal="false"
|
||||
:close-on-click-modal="false"
|
||||
>
|
||||
<span class="control-label">{{ `${requestInfo}请求如下区域的控制模式` }}</span>
|
||||
<span class="control-label">{{ `${requestInfo} request control mode for the following areas` }}</span>
|
||||
<el-table
|
||||
ref="multipleTable"
|
||||
:data="tableData"
|
||||
@ -23,35 +23,35 @@
|
||||
size="mini"
|
||||
highlight-current-row
|
||||
>
|
||||
<el-table-column prop="operate" label="操作区域">
|
||||
<el-table-column prop="operate" label="Operating area">
|
||||
<template slot-scope="scope">
|
||||
<span :style="{color: scope.row.disabled ? '#CBCBCB':'unset'}">{{ scope.row.operate }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="control" label="当前控制模式" width="120">
|
||||
<el-table-column prop="control" label="Current control mode" width="120">
|
||||
<template slot-scope="scope">
|
||||
<span :style="{color: scope.row.disabled ? '#CBCBCB':'unset'}">{{ scope.row.control.name }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="target" label="请求控制模式" width="120">
|
||||
<el-table-column prop="target" label="Request control mode" width="120">
|
||||
<template slot-scope="scope">
|
||||
<span :style="{color: scope.row.disabled ? '#CBCBCB':'unset'}">{{ scope.row.target.name }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="agree" label="是否同意" width="140">
|
||||
<el-table-column prop="agree" label="Agree" width="140">
|
||||
<template slot-scope="scope">
|
||||
<el-checkbox ref="agree" v-model="scope.row.agree" :disabled="scope.row.disabled" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<span class="control-label">距离对话还有{{ count }}秒,请应答。</span>
|
||||
<span class="control-label">Two {{ count }} to speak. Respond.</span>
|
||||
<el-row class="button-group">
|
||||
<el-col :span="10" :offset="3">
|
||||
<el-button :id="domAgree" :disabled="disabledAgree" @click="agree">同意
|
||||
<el-button :id="domAgree" :disabled="disabledAgree" @click="agree">Agree
|
||||
</el-button>
|
||||
</el-col>
|
||||
<el-col :span="6" :offset="4">
|
||||
<el-button :id="domIdRefuse" :disabled="disabledRefuse" @click="refuse">拒绝</el-button>
|
||||
<el-button :id="domIdRefuse" :disabled="disabledRefuse" @click="refuse">Refuse</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<!-- ningbo-01__systerm -->
|
||||
@ -83,11 +83,11 @@ export default {
|
||||
dialogShow: false,
|
||||
disabledAgree: false,
|
||||
disabledRefuse: false,
|
||||
requestInfo: '调度员1工作站',
|
||||
requestInfo: 'Dispatcher 1 workstation',
|
||||
controlProps: {
|
||||
'Center': this.$t('menu.passiveDialog.inTheControl'),
|
||||
'Local': this.$t('menu.passiveDialog.stationControl'),
|
||||
'Emergency':this.$t('menu.passiveDialog.emergencyControl')
|
||||
'Center': 'Center',
|
||||
'Local': 'Local',
|
||||
'Emergency':'Emergency'
|
||||
},
|
||||
selection: [],
|
||||
tableData: [],
|
||||
@ -206,7 +206,9 @@ export default {
|
||||
let info = SimulationType[member.type];
|
||||
if (member.deviceCode) {
|
||||
const device = this.$store.getters['map/getDeviceByCode'](member.deviceCode);
|
||||
info = info + `(${device.name})`;
|
||||
if (device) {
|
||||
info = info + `(${device.name})`;
|
||||
}
|
||||
}
|
||||
if (member.userId) {
|
||||
simulationUserList.forEach(item => {
|
||||
@ -269,7 +271,7 @@ export default {
|
||||
}
|
||||
});
|
||||
} else if (!selection) {
|
||||
this.$messageBox('请选择一条数据');
|
||||
this.$messageBox('Please select a piece of data');
|
||||
}
|
||||
},
|
||||
agree() {
|
||||
|
@ -1,35 +1,20 @@
|
||||
import store from "@/store/index";
|
||||
import store from '@/store/index';
|
||||
/**
|
||||
* 判断菜单行值控制全
|
||||
* @param {String} stationCode 所属车站code
|
||||
* @param {String} centralStationCode 所属集中站code
|
||||
* @param {String} work 当前客户端
|
||||
* */
|
||||
export function judgeStationControl(
|
||||
stationCode,
|
||||
centralStationCode,
|
||||
work,
|
||||
isAvailableInOtherControlMode
|
||||
) {
|
||||
const centralStation = store.getters["map/getDeviceByCode"](
|
||||
centralStationCode
|
||||
);
|
||||
const isCenterMode = centralStation.controlMode === "Center";
|
||||
const isLocalMode =
|
||||
centralStation.controlMode === "Local" ||
|
||||
centralStation.controlMode === "Emergency";
|
||||
// 角色车站是 设备所属车站或所属集中站
|
||||
if (work === "localWork") {
|
||||
const isBelongingStation =
|
||||
store.state.training.roleDeviceCode === stationCode ||
|
||||
store.state.training.roleDeviceCode === centralStationCode;
|
||||
return (
|
||||
((isCenterMode && isAvailableInOtherControlMode) || isLocalMode) &&
|
||||
isBelongingStation
|
||||
);
|
||||
} else if (work === "dispatchWork") {
|
||||
return isCenterMode || (isLocalMode && isAvailableInOtherControlMode);
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
export function judgeStationControl(stationCode, centralStationCode, work) {
|
||||
const centralStation = store.getters['map/getDeviceByCode'](centralStationCode);
|
||||
// 角色车站是 设备所属车站或所属集中站
|
||||
if (work === 'localWork') {
|
||||
const flag1 = store.state.training.roleDeviceCode === stationCode || store.state.training.roleDeviceCode === centralStationCode;
|
||||
const flag2 = centralStation.controlMode === 'Local' || centralStation.controlMode === 'Emergency';
|
||||
return flag1 && flag2;
|
||||
} else if ( work === 'dispatchWork' ) {
|
||||
return centralStation.controlMode === 'Center';
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -388,14 +388,6 @@ export const menuOperate = {
|
||||
// 非常站控 大铁线路
|
||||
operation: OperationEvent.StationControl.requestVeryControl.menu.operation,
|
||||
cmdType:CMD.ControlConvertMenu.CMD_CM_SPECIAL_STATION_CONTROL
|
||||
},
|
||||
replyStationControl: {
|
||||
operation: OperationEvent.StationControl.controlResponse.agree.operation,
|
||||
cmdType: CMD.ControlConvertMenu.CMD_CM_REPLY_STATION_CONTROL
|
||||
},
|
||||
replyCenterControl: {
|
||||
operation: OperationEvent.StationControl.controlResponse.agree.operation,
|
||||
cmdType: CMD.ControlConvertMenu.CMD_CM_REPLY_CENTER_CONTROL
|
||||
}
|
||||
},
|
||||
TrainWindow: {
|
||||
@ -639,10 +631,6 @@ export const menuOperate = {
|
||||
takeOver: {
|
||||
operation: OperationEvent.Driver.takeOver.menu.operation,
|
||||
cmdType: CMD.Driver.CMD_DRIVER_TAKEOVER
|
||||
},
|
||||
specialPantographUpDown: {
|
||||
operation: OperationEvent.Driver.pantograph.menu.operation,
|
||||
cmdType: CMD.Driver.CMD_SPECIAL_PANTOGRAPH_UP_DOWN
|
||||
}
|
||||
},
|
||||
CTC: {
|
||||
|
@ -1,141 +0,0 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
v-dialogDrag
|
||||
class="chengdou-03__systerm confirm-control"
|
||||
:title="title"
|
||||
:visible.sync="show"
|
||||
width="360px"
|
||||
:before-close="doClose"
|
||||
:z-index="2000"
|
||||
:modal="false"
|
||||
:close-on-click-modal="false"
|
||||
append-to-body
|
||||
>
|
||||
<div class="context">
|
||||
<template v-for="(message, index) in messages">
|
||||
<span :key="index">{{ message }}</span>
|
||||
</template>
|
||||
</div>
|
||||
<el-row justify="center" class="button-group">
|
||||
<el-col :span="10" :offset="2">
|
||||
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
|
||||
</el-col>
|
||||
<el-col :span="8" :offset="4">
|
||||
<el-button :id="domIdCancel" @click="cancel">取 消</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<notice-info ref="noticeInfo" pop-class="chengdou-03__systerm" />
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
||||
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
|
||||
import CMD from '@/scripts/cmdPlugin/CommandEnum';
|
||||
|
||||
export default {
|
||||
name: 'ConfirmControl',
|
||||
components: {
|
||||
NoticeInfo
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
dialogShow: false,
|
||||
loading: false,
|
||||
operate: {},
|
||||
messages: '',
|
||||
operation: null
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
show() {
|
||||
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||
},
|
||||
title() {
|
||||
if (this.operation === OperationEvent.Signal.signalClose.menu.operation) {
|
||||
return '信号关灯';
|
||||
}
|
||||
return '';
|
||||
},
|
||||
domIdCancel() {
|
||||
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
|
||||
},
|
||||
domIdConfirm() {
|
||||
if (this.dialogShow) {
|
||||
if (this.operation === OperationEvent.Signal.signalClose.menu.operation) {
|
||||
/** 信号关灯*/
|
||||
return OperationEvent.Signal.signalClose.confirm.domId;
|
||||
}
|
||||
}
|
||||
return '';
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
doShow(operate) {
|
||||
if (!this.dialogShow) {
|
||||
this.loading = false;
|
||||
this.operate = operate || {};
|
||||
this.messages = operate.messages;
|
||||
this.operation = operate.operation;
|
||||
}
|
||||
|
||||
this.dialogShow = true;
|
||||
this.$nextTick(function () {
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
});
|
||||
},
|
||||
doClose() {
|
||||
this.loading = false;
|
||||
this.dialogShow = false;
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
},
|
||||
commit() {
|
||||
if (this.operation === OperationEvent.Signal.signalClose.menu.operation) {
|
||||
/** 信号关灯*/
|
||||
this.signalClose();
|
||||
}
|
||||
},
|
||||
// 信号关灯
|
||||
signalClose() {
|
||||
const operate = {
|
||||
over: true,
|
||||
operation: OperationEvent.Signal.signalClose.confirm.operation,
|
||||
cmdType: CMD.Signal.CMD_SIGNAL_CLOSE_SIGNAL
|
||||
};
|
||||
|
||||
this.loading = true;
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
this.loading = false;
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch((error) => {
|
||||
this.loading = false;
|
||||
this.doClose();
|
||||
console.error(error);
|
||||
this.$refs.noticeInfo.doShow();
|
||||
});
|
||||
},
|
||||
cancel() {
|
||||
const operate = {
|
||||
operation: OperationEvent.Command.cancel.menu.operation
|
||||
};
|
||||
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch(() => {
|
||||
this.doClose();
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
</script>
|
||||
<style>
|
||||
.confirm-control .context {
|
||||
padding-bottom: 40px !important;
|
||||
border: 1px solid lightgray;
|
||||
}
|
||||
</style>
|
@ -1,156 +0,0 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
v-dialogDrag
|
||||
class="chengdou-03__systerm confirm-control-speed"
|
||||
:title="title"
|
||||
:visible.sync="show"
|
||||
width="540px"
|
||||
:before-close="doClose"
|
||||
:z-index="2000"
|
||||
:modal="false"
|
||||
:close-on-click-modal="false"
|
||||
append-to-body
|
||||
>
|
||||
<div style="height: 60px; padding-left: 20px">
|
||||
<span style="font-size: 18px">{{ message }}</span>
|
||||
</div>
|
||||
<el-row justify="center" class="button-group">
|
||||
<el-col :span="6" :offset="6">
|
||||
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
|
||||
</el-col>
|
||||
<el-col :span="10" :offset="2">
|
||||
<el-button :id="domIdCancel" @click="cancel">取 消</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
||||
|
||||
export default {
|
||||
name: 'ConfirmControlSpeed',
|
||||
data() {
|
||||
return {
|
||||
dialogShow: false,
|
||||
loading: false,
|
||||
type: '',
|
||||
operation: '',
|
||||
message: ''
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
show() {
|
||||
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||
},
|
||||
title() {
|
||||
if (this.operation === OperationEvent.Section.setSpeed.order.operation) {
|
||||
return '区段设置限速';
|
||||
} else if (this.operation === OperationEvent.Section.cancelSpeed.order.operation) {
|
||||
return '区段取消限速';
|
||||
} else if (this.operation === OperationEvent.Switch.setSpeed.order.operation) {
|
||||
return '道岔设置限速';
|
||||
} else if (this.operation === OperationEvent.Switch.cancelSpeed.order.operation) {
|
||||
return '道岔取消限速';
|
||||
}
|
||||
return '';
|
||||
},
|
||||
domIdCancel() {
|
||||
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
|
||||
},
|
||||
domIdConfirm() {
|
||||
if (this.operation === OperationEvent.Section.setSpeed.order.operation) {
|
||||
/** 区段设置限速*/
|
||||
return OperationEvent.Section.setSpeed.confirm.domId;
|
||||
} else if (this.operation === OperationEvent.Section.cancelSpeed.order.operation) {
|
||||
/** 区段取消限速*/
|
||||
return OperationEvent.Section.cancelSpeed.confirm.domId;
|
||||
} else if (this.operation === OperationEvent.Switch.setSpeed.order.operation) {
|
||||
/** 道岔设置限速*/
|
||||
return OperationEvent.Switch.setSpeed.confirm.domId;
|
||||
} else if (this.operation === OperationEvent.Switch.cancelSpeed.order.operation) {
|
||||
/** 道岔取消限速*/
|
||||
return OperationEvent.Switch.cancelSpeed.confirm.domId;
|
||||
}
|
||||
return '';
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
doShow(operate) {
|
||||
if (!this.dialogShow) {
|
||||
this.type = operate.type;
|
||||
this.operation = operate.operation;
|
||||
this.message = operate.message;
|
||||
}
|
||||
|
||||
this.loading = false;
|
||||
this.dialogShow = true;
|
||||
this.$nextTick(function () {
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
});
|
||||
},
|
||||
doClose() {
|
||||
this.loading = false;
|
||||
this.dialogShow = false;
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
},
|
||||
commit() {
|
||||
const operate = {
|
||||
type: this.type
|
||||
};
|
||||
|
||||
if (this.operation === OperationEvent.Section.setSpeed.order.operation) {
|
||||
/** 区段设置限速*/
|
||||
operate.operation = OperationEvent.Section.setSpeed.confirm.operation;
|
||||
} else if (this.operation === OperationEvent.Section.cancelSpeed.order.operation) {
|
||||
/** 区段取消限速*/
|
||||
operate.operation = OperationEvent.Section.cancelSpeed.confirm.operation;
|
||||
} else if (this.operation === OperationEvent.Switch.setSpeed.order.operation) {
|
||||
/** 道岔设置限速*/
|
||||
operate.operation = OperationEvent.Switch.setSpeed.confirm.operation;
|
||||
} else if (this.operation === OperationEvent.Switch.cancelSpeed.order.operation) {
|
||||
/** 道岔取消限速*/
|
||||
operate.operation = OperationEvent.Switch.cancelSpeed.confirm.operation;
|
||||
}
|
||||
|
||||
this.loading = true;
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
this.loading = false;
|
||||
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||
if (valid) {
|
||||
this.$emit('setOperate', { step: 1, success: true });
|
||||
this.doClose();
|
||||
}
|
||||
}).catch(() => {
|
||||
this.loading = false;
|
||||
this.$emit('setOperate', { step: 0, success: false });
|
||||
this.doClose();
|
||||
});
|
||||
},
|
||||
cancel() {
|
||||
const operate = {
|
||||
type: this.type,
|
||||
operation: OperationEvent.Command.cancel.menu.operation
|
||||
};
|
||||
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||
if (valid) {
|
||||
this.$emit('setOperate', { step: 0, success: false });
|
||||
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||
this.doClose();
|
||||
}
|
||||
}).catch(() => {
|
||||
this.doClose();
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
</script>
|
||||
<style>
|
||||
.confirm-control-speed .context {
|
||||
padding-bottom: 40px !important;
|
||||
border: 1px solid lightgray;
|
||||
}
|
||||
</style>
|
@ -1,74 +0,0 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
v-dialogDrag
|
||||
class="chengdou-03__systerm confirm-control-speed"
|
||||
:title="title"
|
||||
:visible.sync="show"
|
||||
width="340px"
|
||||
:before-close="doClose"
|
||||
:z-index="2000"
|
||||
:modal="false"
|
||||
:close-on-click-modal="false"
|
||||
append-to-body
|
||||
>
|
||||
<div style="height: 60px; padding-left: 20px">
|
||||
<span style="font-size: 18px">{{ message }}</span>
|
||||
</div>
|
||||
<el-row justify="center" class="button-group">
|
||||
<el-col :span="11">
|
||||
<el-button :id="confirmId" type="primary" @click="confirm">确定</el-button>
|
||||
</el-col>
|
||||
<el-col :span="11" :offset="2">
|
||||
<el-button @click="doClose">取 消</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'ConfirmTip',
|
||||
data() {
|
||||
return {
|
||||
dialogShow: false,
|
||||
message: '',
|
||||
confirmId: ''
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
show() {
|
||||
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||
},
|
||||
title() {
|
||||
return '提示';
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
|
||||
},
|
||||
methods: {
|
||||
doShow(operate) {
|
||||
this.message = operate.message;
|
||||
this.dialogShow = true;
|
||||
this.confirmId = operate.confirmId;
|
||||
},
|
||||
confirm() {
|
||||
this.$emit('close');
|
||||
},
|
||||
doClose() {
|
||||
this.dialogShow = false;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
</script>
|
||||
<style scoped>
|
||||
.confirm-control-speed .context {
|
||||
padding-bottom: 40px !important;
|
||||
border: 1px solid lightgray;
|
||||
}
|
||||
.chengdou-03__systerm .el-dialog .el-button{
|
||||
display: block;
|
||||
margin: 0 auto;
|
||||
}
|
||||
</style>
|
@ -1,173 +0,0 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
v-dialogDrag
|
||||
class="chengdou-03__systerm confirm-control"
|
||||
:title="title"
|
||||
:visible.sync="show"
|
||||
width="360px"
|
||||
:before-close="doClose"
|
||||
:z-index="2000"
|
||||
:modal="false"
|
||||
:close-on-click-modal="false"
|
||||
append-to-body
|
||||
>
|
||||
<div class="context">
|
||||
<template v-for="(message, index) in messages">
|
||||
<span :key="index">{{ message }}</span>
|
||||
</template>
|
||||
</div>
|
||||
<el-row justify="center" class="button-group">
|
||||
<el-col :span="10" :offset="2">
|
||||
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
|
||||
</el-col>
|
||||
<el-col :span="8" :offset="4">
|
||||
<el-button :id="domIdCancel" @click="cancel">取 消</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<notice-info ref="noticeInfo" pop-class="chengdou-03__systerm" />
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
||||
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
|
||||
|
||||
export default {
|
||||
name: 'ConfirmTrain',
|
||||
components: {
|
||||
NoticeInfo
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
dialogShow: false,
|
||||
loading: false,
|
||||
operate: {},
|
||||
messages: '',
|
||||
operation: null
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
show() {
|
||||
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||
},
|
||||
title() {
|
||||
if (this.operation === OperationEvent.Train.addTrainId.menu.operation) {
|
||||
return '添加列车识别号';
|
||||
} else if (this.operation === OperationEvent.Train.editTrainId.menu.operation) {
|
||||
return '修改列车识别号';
|
||||
} else if (this.operation === OperationEvent.Train.delTrainId.menu.operation) {
|
||||
return '删除列车识别号';
|
||||
} else if (this.operation === OperationEvent.Train.moveTrainId.menu.operation) {
|
||||
return '移动列车识别号';
|
||||
} else if (this.operation === OperationEvent.Train.switchTrainId.menu.operation) {
|
||||
return '交换列车识别号';
|
||||
} else if (this.operation === OperationEvent.Train.editTrainNo.menu.operation) {
|
||||
return '修改车组号';
|
||||
}
|
||||
return '';
|
||||
},
|
||||
domIdCancel() {
|
||||
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
|
||||
},
|
||||
domIdConfirm() {
|
||||
if (this.operation === OperationEvent.Train.addTrainId.menu.operation) {
|
||||
/** 添加列车识别号*/
|
||||
return OperationEvent.Train.addTrainId.confirm.domId;
|
||||
} else if (this.operation === OperationEvent.Train.editTrainId.menu.operation) {
|
||||
/** 修改列车识别号*/
|
||||
return OperationEvent.Train.editTrainId.confirm.domId;
|
||||
} else if (this.operation === OperationEvent.Train.delTrainId.menu.operation) {
|
||||
/** 删除列车识别号*/
|
||||
return OperationEvent.Train.delTrainId.confirm.domId;
|
||||
} else if (this.operation === OperationEvent.Train.moveTrainId.menu.operation) {
|
||||
/** 移动列车识别号*/
|
||||
return OperationEvent.Train.moveTrainId.confirm.domId;
|
||||
} else if (this.operation === OperationEvent.Train.switchTrainId.menu.operation) {
|
||||
/** 交换列车识别号*/
|
||||
return OperationEvent.Train.switchTrainId.confirm.domId;
|
||||
} else if (this.operation === OperationEvent.Train.editTrainNo.menu.operation) {
|
||||
/** 修改车组号*/
|
||||
return OperationEvent.Train.editTrainNo.confirm.domId;
|
||||
}
|
||||
return '';
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
doShow(operate) {
|
||||
if (!this.dialogShow) {
|
||||
this.loading = false;
|
||||
this.operate = operate || {};
|
||||
this.messages = operate.messages;
|
||||
this.operation = operate.operation;
|
||||
}
|
||||
|
||||
this.dialogShow = true;
|
||||
this.$nextTick(function () {
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
});
|
||||
},
|
||||
doClose() {
|
||||
this.loading = false;
|
||||
this.dialogShow = false;
|
||||
this.$store.dispatch('map/setTrainWindowShow', false);
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
},
|
||||
commit() {
|
||||
if (this.operation === OperationEvent.Train.addTrainId.menu.operation) {
|
||||
this.routeSetting();
|
||||
} else if (this.operation === OperationEvent.Train.editTrainId.menu.operation) {
|
||||
this.routeSetting();
|
||||
} else if (this.operation === OperationEvent.Train.delTrainId.menu.operation) {
|
||||
this.routeSetting();
|
||||
} else if (this.operation === OperationEvent.Train.moveTrainId.menu.operation) {
|
||||
this.routeSetting();
|
||||
} else if (this.operation === OperationEvent.Train.switchTrainId.menu.operation) {
|
||||
this.routeSetting();
|
||||
} else if (this.operation === OperationEvent.Train.editTrainNo.menu.operation) {
|
||||
this.routeSetting();
|
||||
}
|
||||
},
|
||||
// 进路设置
|
||||
routeSetting() {
|
||||
const operate = {
|
||||
send: true,
|
||||
type: this.operate.type,
|
||||
operation: OperationEvent.Train.addTrainId.confirm.operation
|
||||
};
|
||||
|
||||
this.loading = true;
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
this.loading = false;
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch(() => {
|
||||
this.loading = false;
|
||||
this.doClose();
|
||||
this.$refs.noticeInfo.doShow();
|
||||
});
|
||||
},
|
||||
cancel() {
|
||||
const operate = {
|
||||
type: this.operate.type,
|
||||
operation: OperationEvent.Command.cancel.menu.operation
|
||||
};
|
||||
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch(() => {
|
||||
this.doClose();
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
</script>
|
||||
<style>
|
||||
.confirm-control .context {
|
||||
padding-bottom: 40px !important;
|
||||
border: 1px solid lightgray;
|
||||
}
|
||||
</style>
|
@ -1,194 +0,0 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
v-dialogDrag
|
||||
class="chengdou-03__systerm"
|
||||
:visible.sync="show"
|
||||
width="360px"
|
||||
:before-close="doClose"
|
||||
:z-index="2000"
|
||||
:modal="false"
|
||||
title="密码校验"
|
||||
:close-on-click-modal="false"
|
||||
append-to-body
|
||||
>
|
||||
<el-row>
|
||||
<el-col :span="22" :offset="1">
|
||||
<el-input v-model="encryptionPassword" placeholder="请使用软键盘输入" size="medium" :disabled="true" />
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row v-if="showMistake">
|
||||
<el-col :span="22" :offset="1">
|
||||
<span class="password-error">*密码输入错误请重新输入*</span>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row justify="center" class="button-group">
|
||||
<el-col :span="4" :offset="1">
|
||||
<el-button @click="inputNum(7)">7</el-button>
|
||||
</el-col>
|
||||
<el-col :span="4" :offset="4">
|
||||
<el-button @click="inputNum(8)">8</el-button>
|
||||
</el-col>
|
||||
<el-col :span="4" :offset="4">
|
||||
<el-button @click="inputNum(9)">9</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row justify="center" class="button-group">
|
||||
<el-col :span="4" :offset="1">
|
||||
<el-button @click="inputNum(4)">4</el-button>
|
||||
</el-col>
|
||||
<el-col :span="4" :offset="4">
|
||||
<el-button @click="inputNum(5)">5</el-button>
|
||||
</el-col>
|
||||
<el-col :span="4" :offset="4">
|
||||
<el-button @click="inputNum(6)">6</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row justify="center" class="button-group">
|
||||
<el-col :span="4" :offset="1">
|
||||
<el-button @click="inputNum(1)">1</el-button>
|
||||
</el-col>
|
||||
<el-col :span="4" :offset="4">
|
||||
<el-button @click="inputNum(2)">2</el-button>
|
||||
</el-col>
|
||||
<el-col :span="4" :offset="4">
|
||||
<el-button @click="inputNum(3)">3</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row justify="center" class="button-group">
|
||||
<el-col :span="4" :offset="1">
|
||||
<el-button @click="inputNum(0)">0</el-button>
|
||||
</el-col>
|
||||
<el-col :span="4" :offset="4">
|
||||
<el-button @click="inputClear">C</el-button>
|
||||
</el-col>
|
||||
<el-col :span="4" :offset="4">
|
||||
<el-button @click="backSpace"> < </el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row justify="center" class="button-group">
|
||||
<el-col :span="4" :offset="1">
|
||||
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
|
||||
</el-col>
|
||||
<el-col :span="4" :offset="12">
|
||||
<el-button :id="domIdCancel" @click="cancel">取 消</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
||||
import OperationHandler from '@/scripts/cmdPlugin/OperationHandler';
|
||||
|
||||
export default {
|
||||
name: 'PasswordBox',
|
||||
data() {
|
||||
return {
|
||||
/* 写死的初始密码*/
|
||||
correctPassword: '123',
|
||||
dialogShow: false,
|
||||
operation: '',
|
||||
checkHasInput: false,
|
||||
/* 输入值*/
|
||||
passwordCheck: '',
|
||||
/* 输入值替换为对应长度的星号*/
|
||||
encryptionPassword: '',
|
||||
loading: false,
|
||||
showMistake: false
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
show() {
|
||||
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||
},
|
||||
domIdCancel() {
|
||||
return this.dialogShow ? OperationEvent.Command.cancel.password.domId : '';
|
||||
},
|
||||
domIdConfirm() {
|
||||
return this.dialogShow ? OperationHandler.getDomIdByOperation(this.operation) : '';
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
doShow(operate) {
|
||||
this.operate = operate || {};
|
||||
this.operation = operate.operation;
|
||||
if (operate.operateNext) {
|
||||
this.operation = operate.operateNext;
|
||||
}
|
||||
this.dialogShow = true;
|
||||
this.checkHasInput = false;
|
||||
this.$nextTick(function () {
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
});
|
||||
},
|
||||
doClose() {
|
||||
this.loading = false;
|
||||
this.dialogShow = false;
|
||||
this.showMistake = false;
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
},
|
||||
commit() { // 确定
|
||||
if (this.passwordCheck === this.correctPassword) {
|
||||
this.$emit('checkOver', this.operate);
|
||||
this.doClose();
|
||||
this.inputClear();
|
||||
} else {
|
||||
this.showMistake = true;
|
||||
}
|
||||
},
|
||||
/* 软键盘输入*/
|
||||
inputNum(num) {
|
||||
this.showMistake = false;
|
||||
this.passwordCheck += num;
|
||||
this.encryptionPassword = this.passwordCheck.replace(/./g, '*');
|
||||
},
|
||||
/* 软键盘清除*/
|
||||
inputClear() {
|
||||
this.showMistake = false;
|
||||
this.passwordCheck = '';
|
||||
this.encryptionPassword = '';
|
||||
},
|
||||
/* 软键盘回退*/
|
||||
backSpace() {
|
||||
this.showMistake = false;
|
||||
const password = this.passwordCheck;
|
||||
if (password !== '') {
|
||||
this.passwordCheck = password.substring(0, password.length - 1);
|
||||
this.encryptionPassword = this.passwordCheck;
|
||||
}
|
||||
},
|
||||
|
||||
cancel() {
|
||||
const operate = {
|
||||
send: false,
|
||||
type: this.operate.type,
|
||||
operation: OperationEvent.Command.cancel.password.operation
|
||||
};
|
||||
this.$emit('checkCancel');
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
this.loading = false;
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
this.inputClear();
|
||||
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||
}
|
||||
}).catch(() => {
|
||||
this.loading = false;
|
||||
this.$refs.noticeInfo && this.$refs.noticeInfo.doShow();
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
</script>
|
||||
<style>
|
||||
.notice-info .context {
|
||||
padding-bottom: 40px !important;
|
||||
border: 1px solid lightgray;
|
||||
}
|
||||
|
||||
.password-error {
|
||||
|
||||
color: red;
|
||||
}
|
||||
</style>
|
@ -1,94 +0,0 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
v-dialogDrag
|
||||
class="chengdou-03__systerm popup-alarm"
|
||||
:title="title"
|
||||
:visible.sync="show"
|
||||
width="500px"
|
||||
:before-close="doClose"
|
||||
:z-index="2000"
|
||||
:modal="false"
|
||||
:close-on-click-modal="false"
|
||||
append-to-body
|
||||
>
|
||||
<el-row>
|
||||
<el-col :offset="2">
|
||||
<span v-for="(message, index) in messages" :key="index">{{ message }}</span><br>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row justify="center" class="button-group">
|
||||
<el-col :span="10" :offset="8">
|
||||
<el-button :id="domIdSure" type="primary" @click="commit">确定</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
||||
|
||||
export default {
|
||||
name: 'PopupAlarm',
|
||||
data() {
|
||||
return {
|
||||
dialogShow: false,
|
||||
messages: [],
|
||||
operate: null,
|
||||
operation: ''
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
show() {
|
||||
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||
},
|
||||
title() {
|
||||
return '弹出式告警';
|
||||
},
|
||||
domIdSure() {
|
||||
return this.dialogShow ? OperationEvent.Command.close.alarm.domId : '';
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
doShow(operate, messages) {
|
||||
this.operate = operate || {};
|
||||
this.operation = operate.operation;
|
||||
this.dialogShow = true;
|
||||
this.messages = messages || [];
|
||||
this.$nextTick(function () {
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
});
|
||||
},
|
||||
doClose() {
|
||||
this.dialogShow = false;
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
},
|
||||
commit() {
|
||||
if (this.operation == OperationEvent.Section.alxeEffective.menu.operation) {
|
||||
// 确认计轴有效
|
||||
this.alxeEffective();
|
||||
}
|
||||
|
||||
},
|
||||
alxeEffective() {
|
||||
const operate = {
|
||||
type: this.operate.type,
|
||||
operation: OperationEvent.Command.close.alarm.operation
|
||||
};
|
||||
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||
this.doClose();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
</script>
|
||||
<style>
|
||||
.popup-alarm .context {
|
||||
padding-bottom: 40px !important;
|
||||
border: 1px solid lightgray;
|
||||
}
|
||||
</style>
|
@ -1,163 +0,0 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
v-dialogDrag
|
||||
class="chengdou-03__systerm stand-stop-time"
|
||||
:title="title"
|
||||
:visible.sync="show"
|
||||
width="600px"
|
||||
:before-close="doClose"
|
||||
:z-index="2000"
|
||||
:modal="false"
|
||||
:close-on-click-modal="false"
|
||||
>
|
||||
<div>
|
||||
<el-form v-if="selected" :inline="true" :model="form" class="demo-form-inline">
|
||||
<el-form-item label="设备类型:">
|
||||
<el-select v-model="form.deviceType" :disabled="true" style="width: 150px;">
|
||||
<el-option
|
||||
v-for="item in deviceTypeList"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="设备名称:">
|
||||
<el-input v-model="form.deviceName" :disabled="true" style="width: 150px;" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-card>
|
||||
<el-table
|
||||
v-loading="loading"
|
||||
:data="tableData"
|
||||
style="width: 100%"
|
||||
>
|
||||
<el-table-column
|
||||
prop="fileName"
|
||||
label="文件"
|
||||
width="400"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="name"
|
||||
label="操作"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<div class="text-button" @click="openPdf(scope.row)">打开</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-card>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapGetters } from 'vuex';
|
||||
import CancelMouseState from '@/mixin/CancelMouseState';
|
||||
import { getUploadFile } from '@/api/pdf';
|
||||
import { DrawingType } from '@/scripts/ConstDic';
|
||||
|
||||
export default {
|
||||
name: 'TrainMove',
|
||||
mixins: [
|
||||
CancelMouseState
|
||||
],
|
||||
data() {
|
||||
return {
|
||||
selected: null,
|
||||
selectedType: '',
|
||||
dialogShow: false,
|
||||
loading: false,
|
||||
tableData: [],
|
||||
deviceTypeList: [
|
||||
{ label: '区段', value: 'Section' },
|
||||
{ label: '信号机', value: 'Signal' },
|
||||
{ label: '道岔', value: 'Switch' },
|
||||
{ label: '车站', value: 'Station' }
|
||||
],
|
||||
deviceIdList: [],
|
||||
form: {
|
||||
mapId: '',
|
||||
deviceId: '',
|
||||
deviceCode: '',
|
||||
deviceName: ''
|
||||
}
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapGetters('map', [
|
||||
'stationStandList'
|
||||
]),
|
||||
show() {
|
||||
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||
},
|
||||
title() {
|
||||
if (this.selectedType === 'normStudy') {
|
||||
return '规范学习';
|
||||
} else if (this.selectedType === 'clCaAn') {
|
||||
return '经典案例分析';
|
||||
} else if (this.selectedType === 'baDeTr') {
|
||||
return '基础设备培训';
|
||||
} else {
|
||||
return '图纸检索';
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
doShow(selected, selectedType) {
|
||||
this.selectedType = selectedType;
|
||||
const params = { mapId: this.$route.query.mapId, fileType: DrawingType[selectedType] };
|
||||
this.selected = selected;
|
||||
if (this.selected) {
|
||||
this.form.deviceName = selected.name;
|
||||
this.form.deviceType = selected._type;
|
||||
params.deviceType = selected._type.toUpperCase();
|
||||
params.deviceId = selected.code;
|
||||
}
|
||||
this.loading = true;
|
||||
getUploadFile(params).then(resp => {
|
||||
this.tableData = resp.data;
|
||||
this.loading = false;
|
||||
}).catch(() => {
|
||||
this.loading = false;
|
||||
this.$message.error('图纸检索失败!');
|
||||
});
|
||||
this.dialogShow = true;
|
||||
this.$nextTick(function () {
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
});
|
||||
},
|
||||
openPdf(row) {
|
||||
const url = `https://joylink.club/oss/joylink/${row.filePath}`;
|
||||
window.open(url, '_blank');
|
||||
},
|
||||
doClose() {
|
||||
this.loading = false;
|
||||
this.dialogShow = false;
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style scoped>
|
||||
.chengdou-03__systerm .el-dialog .base-label {
|
||||
background: rgba(0, 0, 0, x);
|
||||
position: relative;
|
||||
left: -5px;
|
||||
top: -18px;
|
||||
padding: 0 5px;
|
||||
background-color: #F0F0F0;
|
||||
}
|
||||
.text-button{
|
||||
color: #148ad0;
|
||||
cursor:pointer;
|
||||
}
|
||||
.text-button:active{
|
||||
color: #b938e1;
|
||||
text-decoration: underline;
|
||||
}
|
||||
.text-button:hover{
|
||||
color: #b938e1;
|
||||
text-decoration: underline;
|
||||
}
|
||||
</style>
|
@ -1,196 +0,0 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-dialog
|
||||
v-dialogDrag
|
||||
class="chengdou-03__systerm route-detail"
|
||||
:title="title"
|
||||
:visible.sync="show"
|
||||
width="460px"
|
||||
:before-close="doClose"
|
||||
:z-index="2000"
|
||||
:modal="false"
|
||||
:close-on-click-modal="false"
|
||||
>
|
||||
<el-row>
|
||||
<el-col :span="2"><span>车站</span></el-col>
|
||||
<el-col :span="6">
|
||||
<el-input v-model="stationName" size="small" disabled />
|
||||
</el-col>
|
||||
<el-col :span="6" :offset="1"><span>始端信号机</span></el-col>
|
||||
<el-col :span="6">
|
||||
<el-input v-model="signalName" size="small" disabled />
|
||||
</el-col>
|
||||
</el-row>
|
||||
<div style="margin-top: 20px">
|
||||
<el-table
|
||||
ref="tempTable"
|
||||
:data="tempData"
|
||||
border
|
||||
style="width: 100%"
|
||||
size="mini"
|
||||
highlight-current-row
|
||||
:height="140"
|
||||
>
|
||||
|
||||
<el-table-column :id="domIdChoose" prop="name" label="进路" style="margin-left:30px;" width="150px">
|
||||
<template slot-scope="scope">
|
||||
<div :style="{color: scope.row.turnBack? '#00FFFF':'#000000'}">
|
||||
{{ handleRouteName(scope.row.name) }}
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column :id="domIdChoose" prop="startSignalCode" label="方向" style="margin-left: 30px">
|
||||
<template slot-scope="scope">
|
||||
<div :style="{color: scope.row.turnBack? '#00FFFF':'#000000'}">
|
||||
{{ handleDirection(scope.row.startSignalCode) }}
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column :id="domIdChoose" prop="turnBack" label="属性" style="margin-left:30px">
|
||||
<template slot-scope="scope">
|
||||
<div :style="{color: scope.row.turnBack? '#00FFFF':'#000000'}">
|
||||
{{ scope.row.turnBack ? '折返': '直通' }}
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column :id="domIdChoose" prop="controlType" label="控制" style="margin-left:30px">
|
||||
<template slot-scope="scope">
|
||||
<div :style="{color: scope.row.turnBack? '#00FFFF':'#000000'}">
|
||||
{{ scope.row.atsControl == '0' ? '人工' : '自动' }}
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<el-row justify="center" class="button-group">
|
||||
<el-col :span="10" :offset="2">
|
||||
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
|
||||
</el-col>
|
||||
<el-col :span="8" :offset="4">
|
||||
<el-button :id="domIdCancel" @click="cancel">取 消</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<notice-info ref="noticeInfo" pop-class="chengdou-03__systerm" />
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapGetters } from 'vuex';
|
||||
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
||||
import CancelMouseState from '@/mixin/CancelMouseState';
|
||||
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
|
||||
|
||||
export default {
|
||||
name: 'RouteDetail',
|
||||
components: {
|
||||
NoticeInfo
|
||||
},
|
||||
mixins: [
|
||||
CancelMouseState
|
||||
],
|
||||
data() {
|
||||
return {
|
||||
dialogShow: false,
|
||||
loading: false,
|
||||
selected: null,
|
||||
tempData: [],
|
||||
stationName: '',
|
||||
signalName: '',
|
||||
domIdChoose: ''
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapGetters('map', [
|
||||
'signalList',
|
||||
'mapConfig'
|
||||
]),
|
||||
show() {
|
||||
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||
},
|
||||
domIdCancel() {
|
||||
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
|
||||
},
|
||||
domIdConfirm() {
|
||||
return this.dialogShow ? OperationEvent.Signal.detail.menu.domId : '';
|
||||
},
|
||||
title() {
|
||||
return '查询进路状态';
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
doShow(operate, selected, tempData) {
|
||||
this.selected = selected;
|
||||
// 如果不是因为断点激活则需要,初始化菜单初始值
|
||||
if (!this.dialogShow) {
|
||||
this.signalName = '';
|
||||
this.stationName = '';
|
||||
if (selected && selected._type.toUpperCase() === 'Signal'.toUpperCase()) {
|
||||
this.signalName = selected.name;
|
||||
const station = this.$store.getters['map/getDeviceByCode'](selected.stationCode);
|
||||
if (station) {
|
||||
this.stationName = station.name;
|
||||
}
|
||||
}
|
||||
this.tempData = tempData || [];
|
||||
}
|
||||
|
||||
this.dialogShow = true;
|
||||
this.$nextTick(function () {
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
});
|
||||
},
|
||||
handleRouteName(name) {
|
||||
return name.replace(/-/, '-->');
|
||||
},
|
||||
handleDirection(signalCode) {
|
||||
let signalDirection = '';
|
||||
this.signalList.some(item => {
|
||||
if (item.code === signalCode) {
|
||||
signalDirection = item.right;
|
||||
return true;
|
||||
}
|
||||
});
|
||||
if ((signalDirection && this.mapConfig.upRight) || (!signalDirection && !this.mapConfig.upRight)) {
|
||||
return '上行';
|
||||
} else {
|
||||
return '下行';
|
||||
}
|
||||
},
|
||||
doClose() {
|
||||
this.loading = false;
|
||||
this.dialogShow = false;
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
},
|
||||
commit() {
|
||||
const operate = {
|
||||
operation: OperationEvent.Signal.detail.menu.operation
|
||||
};
|
||||
this.loading = true;
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
this.loading = false;
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch(() => {
|
||||
this.loading = false;
|
||||
this.doClose();
|
||||
this.$refs.noticeInfo.doShow();
|
||||
});
|
||||
},
|
||||
cancel() {
|
||||
const operate = {
|
||||
operation: OperationEvent.Command.cancel.menu.operation
|
||||
};
|
||||
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch(() => {
|
||||
this.doClose();
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
@ -1,278 +0,0 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
v-dialogDrag
|
||||
class="chengdou-03__systerm route-setting"
|
||||
:title="title"
|
||||
:visible.sync="show"
|
||||
width="460px"
|
||||
:before-close="doClose"
|
||||
:z-index="2000"
|
||||
:modal="false"
|
||||
:close-on-click-modal="false"
|
||||
>
|
||||
<el-row>
|
||||
<el-col :span="2"><span class="item-lable">车站</span></el-col>
|
||||
<el-col :span="6">
|
||||
<el-input v-model="stationName" size="small" disabled />
|
||||
</el-col>
|
||||
<el-col :span="4" :offset="1"><span class="item-lable">始端信号机</span></el-col>
|
||||
<el-col :span="6">
|
||||
<el-input v-model="signalName" size="small" disabled />
|
||||
</el-col>
|
||||
</el-row>
|
||||
<div class="route-table-box">
|
||||
<span class="route-table-tip">进路列表</span>
|
||||
<el-table ref="table" :data="tempData" border :cell-style="tableStyle" style="width: 99%;" size="mini" height="90" highlight-current-row @row-click="clickEvent">
|
||||
<el-table-column :id="domIdChoose" prop="name" label="进路" style="margin-left:30px;" width="150px">
|
||||
<template slot-scope="scope">
|
||||
<div :style="{color: scope.row.turnBack? '#00FFFF':'#000000'}">
|
||||
{{ handleRouteName(scope.row.name) }}
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column :id="domIdChoose" prop="startSignalCode" label="方向" style="margin-left: 30px">
|
||||
<template slot-scope="scope">
|
||||
<div :style="{color: scope.row.turnBack? '#00FFFF':'#000000'}">
|
||||
{{ handleDirection(scope.row.startSignalCode) }}
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column :id="domIdChoose" prop="turnBack" label="属性" style="margin-left:30px">
|
||||
<template slot-scope="scope">
|
||||
<div :style="{color: scope.row.turnBack? '#00FFFF':'#000000'}">
|
||||
{{ scope.row.turnBack ? '折返': '直通' }}
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column :id="domIdChoose" prop="controlType" label="控制" style="margin-left:30px">
|
||||
<template slot-scope="scope">
|
||||
<div :style="{color: scope.row.turnBack? '#00FFFF':'#000000'}">
|
||||
{{ scope.row.atsControl == '0' ? '人工' : '自动' }}
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<el-row justify="center" style="margin-top: 40px">
|
||||
<el-col :span="12" :offset="12">
|
||||
<el-button
|
||||
:id="domIdConfirm"
|
||||
type="primary"
|
||||
:loading="loading"
|
||||
:disabled="commitDisabled"
|
||||
@click="commit"
|
||||
>执行</el-button>
|
||||
<el-button :id="domIdCancel" @click="cancel">取 消</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<notice-info ref="noticeInfo" pop-class="chengdou-03__systerm" />
|
||||
<!--<password-box ref="passwordBox" @checkOver="passWordCommit" />-->
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
||||
import CancelMouseState from '@/mixin/CancelMouseState';
|
||||
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
|
||||
// import PasswordBox from './childDialog/passwordInputBox.vue';
|
||||
import CMD from '@/scripts/cmdPlugin/CommandEnum';
|
||||
import { mapGetters } from 'vuex';
|
||||
|
||||
export default {
|
||||
name: 'RouteSelection',
|
||||
components: {
|
||||
NoticeInfo
|
||||
// PasswordBox
|
||||
},
|
||||
mixins: [
|
||||
CancelMouseState
|
||||
],
|
||||
data() {
|
||||
return {
|
||||
tempData: [],
|
||||
beforeSectionList: [],
|
||||
dialogShow: false,
|
||||
loading: false,
|
||||
selected: null,
|
||||
operation: '',
|
||||
display: true,
|
||||
stationName: '',
|
||||
signalName: '',
|
||||
tableStyle: {
|
||||
'border-bottom': 'none'
|
||||
},
|
||||
commitDisabled:true,
|
||||
controlTypeNameMap: {
|
||||
'01': '折返',
|
||||
'02': '直通'
|
||||
},
|
||||
row: ''
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
show() {
|
||||
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||
},
|
||||
domIdCancel() {
|
||||
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
|
||||
},
|
||||
domIdChoose() {
|
||||
return this.dialogShow ? OperationEvent.Signal.guide.choose.domId : '';
|
||||
},
|
||||
domIdConfirm() {
|
||||
return this.dialogShow ? OperationEvent.Signal.guide.confirm.domId : '';
|
||||
},
|
||||
title() {
|
||||
return '办理引导进路';
|
||||
},
|
||||
...mapGetters('map', [
|
||||
'signalList',
|
||||
'mapConfig'
|
||||
])
|
||||
},
|
||||
methods: {
|
||||
getProtectedSectionName(row) {
|
||||
let name = '';
|
||||
if (row &&
|
||||
row.overlapSectionList &&
|
||||
row.overlapSectionList &&
|
||||
row.overlapSectionList.length > 0) {
|
||||
|
||||
const protect = row.overlapSectionList[0];
|
||||
name = `${protect.name}`;
|
||||
const station = this.$store.getters['map/getDeviceByCode'](protect.stationCode);
|
||||
if (station) {
|
||||
name = `${name}(${station.name})`;
|
||||
}
|
||||
}
|
||||
return name;
|
||||
},
|
||||
handleRouteName(name) {
|
||||
return name.replace(/-/, '-->');
|
||||
},
|
||||
handleDirection(signalCode) {
|
||||
let signalDirection = '';
|
||||
this.signalList.some(item => {
|
||||
if (item.code === signalCode) {
|
||||
signalDirection = item.right;
|
||||
return true;
|
||||
}
|
||||
});
|
||||
if ((signalDirection && this.mapConfig.upRight) || (!signalDirection && !this.mapConfig.upRight)) {
|
||||
return '上行';
|
||||
} else {
|
||||
return '下行';
|
||||
}
|
||||
},
|
||||
doShow(operate, selected, tempData) {
|
||||
this.selected = selected;
|
||||
this.commitDisabled = true;
|
||||
// 如果不是断点激活,而是第一次显示,则需要设置初始值
|
||||
if (!this.dialogShow) {
|
||||
this.signalName = '';
|
||||
this.stationName = '';
|
||||
if (selected && selected._type.toUpperCase() === 'Signal'.toUpperCase()) {
|
||||
this.signalName = selected.name;
|
||||
const station = this.$store.getters['map/getDeviceByCode'](selected.stationCode);
|
||||
if (station) {
|
||||
this.stationName = station.name;
|
||||
}
|
||||
}
|
||||
|
||||
this.tempData = tempData || [];
|
||||
this.operation = operate.operation;
|
||||
}
|
||||
this.dialogShow = true;
|
||||
this.$nextTick(function () {
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
});
|
||||
},
|
||||
doClose() {
|
||||
this.loading = false;
|
||||
this.dialogShow = false;
|
||||
this.$refs.table.setCurrentRow();
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
},
|
||||
clickEvent(row, event, column) {
|
||||
this.commitDisabled = false;
|
||||
this.row = row;
|
||||
if (row) {
|
||||
const operate = {
|
||||
operation: OperationEvent.Signal.guide.choose.operation,
|
||||
val: row.code
|
||||
};
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
// 办理引导进路
|
||||
commit() {
|
||||
if (this.row && this.row.code) {
|
||||
const operate = {
|
||||
over: true,
|
||||
operation: OperationEvent.Signal.guide.confirm.operation,
|
||||
cmdType: CMD.Signal.CMD_SIGNAL_ROUTE_GUIDE,
|
||||
param: {
|
||||
routeCode: this.row.code
|
||||
}
|
||||
};
|
||||
|
||||
this.loading = true;
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
this.loading = false;
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
} else {
|
||||
this.doClose();
|
||||
this.$refs.noticeInfo.doShow();
|
||||
}
|
||||
}).catch(() => {
|
||||
this.loading = false;
|
||||
this.doClose();
|
||||
this.$refs.noticeInfo.doShow();
|
||||
});
|
||||
}
|
||||
},
|
||||
cancel() {
|
||||
const operate = {
|
||||
operation: OperationEvent.Command.cancel.menu.operation
|
||||
};
|
||||
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch(() => {
|
||||
this.doClose();
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style scoped>
|
||||
.route-table-tip {
|
||||
position: relative !important;
|
||||
color: #3C72DF !important;
|
||||
background: #ECE9D8 !important;
|
||||
font-size: 12px;
|
||||
top: -7px;
|
||||
left: 7px;
|
||||
}
|
||||
|
||||
.route-table-box {
|
||||
margin-top: 20px !important;
|
||||
line-height: 10px !important;
|
||||
border: 2px solid #FFFFFF !important;
|
||||
border-radius: 5px !important;
|
||||
z-index: 1;
|
||||
padding-bottom: 40px;
|
||||
}
|
||||
|
||||
.item-lable {
|
||||
line-height: 26px !important;
|
||||
font-size: 13px;
|
||||
}
|
||||
</style>
|
@ -1,268 +0,0 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-dialog v-dialogDrag class="chengdou-03__systerm route-hand-control" :title="title" :visible.sync="show" width="500px" :before-close="doClose" :z-index="2000" :modal="false" :close-on-click-modal="false">
|
||||
<el-row class="header">
|
||||
<el-col :span="11"><span>车站</span></el-col>
|
||||
<el-col :span="11" :offset="2"><span>始端信号机</span></el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="11">
|
||||
<el-input v-model="stationName" size="small" disabled />
|
||||
</el-col>
|
||||
<el-col :span="11" :offset="2">
|
||||
<el-input v-model="signalName" size="small" disabled />
|
||||
</el-col>
|
||||
</el-row>
|
||||
<div class="table">
|
||||
<el-table ref="tempTable" :data="tempData" border style="width: 100%" size="mini" :highlight-current-row="highlight" :height="140" @row-click="clickEvent">
|
||||
<el-table-column :id="domIdChoose" prop="name" label="进路" style="margin-left:30px;" width="150px">
|
||||
<template slot-scope="scope">
|
||||
<div :style="{color: scope.row.turnBack? '#00FFFF':'#000000'}">
|
||||
{{ handleRouteName(scope.row.name) }}
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column :id="domIdChoose" prop="startSignalCode" label="方向" style="margin-left: 30px">
|
||||
<template slot-scope="scope">
|
||||
<div :style="{color: scope.row.turnBack? '#00FFFF':'#000000'}">
|
||||
{{ handleDirection(scope.row.startSignalCode) }}
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column :id="domIdChoose" prop="turnBack" label="属性" style="margin-left:30px">
|
||||
<template slot-scope="scope">
|
||||
<div :style="{color: scope.row.turnBack? '#00FFFF':'#000000'}">
|
||||
{{ scope.row.turnBack ? '折返': '直通' }}
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column :id="domIdChoose" prop="controlType" label="控制" style="margin-left:30px">
|
||||
<template slot-scope="scope">
|
||||
<div :style="{color: scope.row.turnBack? '#00FFFF':'#000000'}">
|
||||
{{ scope.row.atsControl == '0' ? '人工' : '自动' }}
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<el-row justify="center" class="button-group">
|
||||
<el-col :span="10" :offset="2">
|
||||
<el-button :id="domIdConfirm" type="primary" :disabled="commitDisabled" :loading="loading" @click="commit">确定</el-button>
|
||||
</el-col>
|
||||
<el-col :span="8" :offset="4">
|
||||
<el-button :id="domIdCancel" @click="cancel">取 消</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<confirm-control ref="confirmControl" />
|
||||
<notice-info ref="noticeInfo" pop-class="chengdou-03__systerm" />
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapGetters } from 'vuex';
|
||||
import { UserOperationType } from '@/scripts/ConstDic';
|
||||
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
||||
import OperationHandler from '@/scripts/cmdPlugin/OperationHandler';
|
||||
import ConfirmControl from './childDialog/confirmControl';
|
||||
import CancelMouseState from '@/mixin/CancelMouseState';
|
||||
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
|
||||
import {menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate';
|
||||
|
||||
export default {
|
||||
name: 'RouteHandControl',
|
||||
components: {
|
||||
ConfirmControl,
|
||||
NoticeInfo
|
||||
},
|
||||
mixins: [
|
||||
CancelMouseState
|
||||
],
|
||||
data() {
|
||||
return {
|
||||
dialogShow: false,
|
||||
loading: false,
|
||||
selected: null,
|
||||
tempData: [],
|
||||
operation: null,
|
||||
selection: [],
|
||||
stationName: '',
|
||||
signalName: '',
|
||||
highlight: true,
|
||||
row: '',
|
||||
commitDisabled: true
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapGetters('map', [
|
||||
'signalList',
|
||||
'mapConfig'
|
||||
]),
|
||||
show() {
|
||||
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||
},
|
||||
domIdCancel() {
|
||||
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
|
||||
},
|
||||
domIdChoose() {
|
||||
if (this.operation == OperationEvent.Signal.humanControl.menu.operation) {
|
||||
return OperationEvent.Signal.humanControl.choose.domId;
|
||||
} else if (this.operation == OperationEvent.Signal.atsAutoControl.menu.operation) {
|
||||
return OperationEvent.Signal.atsAutoControl.choose.domId;
|
||||
}
|
||||
return '';
|
||||
},
|
||||
domIdConfirm() {
|
||||
return this.dialogShow ? OperationHandler.getDomIdByOperation(this.operation) : '';
|
||||
},
|
||||
title() {
|
||||
if (this.operation == OperationEvent.Signal.humanControl.menu.operation) {
|
||||
return '进路收人工控';
|
||||
} else if (this.operation == OperationEvent.Signal.atsAutoControl.menu.operation) {
|
||||
return '进路交自动控';
|
||||
}
|
||||
return '';
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
doShow(operate, selected, tempData) {
|
||||
this.selected = selected;
|
||||
this.selection = [];
|
||||
this.commitDisabled = true;
|
||||
// 如果不是断点激活,而是第一次显示则初始化
|
||||
if (!this.dialogShow) {
|
||||
this.signalName = '';
|
||||
this.stationName = '';
|
||||
if (selected && selected._type.toUpperCase() === 'Signal'.toUpperCase()) {
|
||||
this.signalName = selected.name;
|
||||
const station = this.$store.getters['map/getDeviceByCode'](selected.stationCode);
|
||||
if (station) {
|
||||
this.stationName = station.name;
|
||||
}
|
||||
}
|
||||
if (tempData && tempData.length > 0) {
|
||||
tempData.forEach(elem => {
|
||||
elem.check = false;
|
||||
elem.disabled = false;
|
||||
// 设置禁用状态
|
||||
if (operate.operation === OperationEvent.Signal.humanControl.menu.operation &&
|
||||
(elem.atsControl == '0') ) {
|
||||
elem.disabled = true;
|
||||
} if (operate.operation === OperationEvent.Signal.atsAutoControl.menu.operation &&
|
||||
(elem.atsControl == '1') ) {
|
||||
elem.disabled = true;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
this.tempData = tempData || [];
|
||||
this.operation = operate.operation;
|
||||
}
|
||||
this.dialogShow = true;
|
||||
this.$nextTick(function () {
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
});
|
||||
},
|
||||
handleRouteName(name) {
|
||||
return name.replace(/-/, '-->');
|
||||
},
|
||||
handleDirection(signalCode) {
|
||||
let signalDirection = '';
|
||||
this.signalList.some(item => {
|
||||
if (item.code === signalCode) {
|
||||
signalDirection = item.right;
|
||||
return true;
|
||||
}
|
||||
});
|
||||
if ((signalDirection && this.mapConfig.upRight) || (!signalDirection && !this.mapConfig.upRight)) {
|
||||
return '上行';
|
||||
} else {
|
||||
return '下行';
|
||||
}
|
||||
},
|
||||
doClose() {
|
||||
this.loading = false;
|
||||
this.dialogShow = false;
|
||||
this.$refs.tempTable.setCurrentRow();
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
},
|
||||
|
||||
clickEvent(row, event, column) {
|
||||
this.highlight = false;
|
||||
if (row && row.code) {
|
||||
this.highlight = true;
|
||||
this.selection = [row];
|
||||
this.beforeSectionList = row.containSectionList || [];
|
||||
this.row = row;
|
||||
// 设置选中指令
|
||||
const operate = {
|
||||
operation: '',
|
||||
val: row.code
|
||||
};
|
||||
if (this.operation == OperationEvent.Signal.humanControl.menu.operation) {
|
||||
/** 进路交人工控*/
|
||||
operate.operation = OperationEvent.Signal.humanControl.choose.operation;
|
||||
this.commitDisabled = !row.atsControl;
|
||||
} else if (this.operation == OperationEvent.Signal.atsAutoControl.menu.operation) {
|
||||
/** 进路交自动控*/
|
||||
this.commitDisabled = Boolean(row.atsControl);
|
||||
operate.operation = OperationEvent.Signal.atsAutoControl.choose.operation;
|
||||
}
|
||||
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
commit() {
|
||||
if (this.operation == OperationEvent.Signal.humanControl.menu.operation) {
|
||||
/** 进路交人工控*/
|
||||
this.humanControl();
|
||||
} else if (this.operation == OperationEvent.Signal.atsAutoControl.menu.operation) {
|
||||
/** 进路交自动控*/
|
||||
this.atsAutoControl();
|
||||
}
|
||||
},
|
||||
// 进路交人工控
|
||||
humanControl() {
|
||||
commitOperate(menuOperate.Signal.humanControl, {routeCodeList: [this.row.code]}, 2).then(({valid, operate}) => {
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch((error) => {
|
||||
this.loading = false;
|
||||
this.doClose();
|
||||
console.error(error);
|
||||
this.$refs.noticeInfo.doShow();
|
||||
});
|
||||
},
|
||||
// 进路交自动控
|
||||
atsAutoControl() {
|
||||
commitOperate(menuOperate.Signal.atsAutoControl, {routeCodeList: [this.row.code]}, 2).then(({valid, operate}) => {
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch((error) => {
|
||||
this.loading = false;
|
||||
this.doClose();
|
||||
console.error(error);
|
||||
this.$refs.noticeInfo.doShow();
|
||||
});
|
||||
},
|
||||
cancel() {
|
||||
const operate = {
|
||||
userOperationType: UserOperationType.LEFTCLICK,
|
||||
operation: OperationEvent.Command.cancel.menu.operation
|
||||
};
|
||||
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch(() => { this.doClose(); });
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
@ -1,325 +0,0 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
v-dialogDrag
|
||||
class="chengdou-03__systerm route-setting"
|
||||
:title="title"
|
||||
:visible.sync="show"
|
||||
width="500px"
|
||||
:before-close="doClose"
|
||||
:z-index="2000"
|
||||
:modal="false"
|
||||
:close-on-click-modal="false"
|
||||
>
|
||||
<el-row>
|
||||
<el-col :span="2"><span class="item-lable">车站</span></el-col>
|
||||
<el-col :span="6">
|
||||
<el-input v-model="stationName" size="small" disabled />
|
||||
</el-col>
|
||||
<el-col :span="4" :offset="1"><span class="item-lable">始端信号机</span></el-col>
|
||||
<el-col :span="6">
|
||||
<el-input v-model="signalName" size="small" disabled />
|
||||
</el-col>
|
||||
</el-row>
|
||||
<div class="route-table-box">
|
||||
<span class="route-table-tip">进路列表</span>
|
||||
<el-table
|
||||
ref="table"
|
||||
:data="tempData"
|
||||
border
|
||||
:cell-style="tableStyle"
|
||||
style="width: 99%;"
|
||||
size="mini"
|
||||
height="150"
|
||||
highlight-current-row
|
||||
@row-click="clickEvent"
|
||||
>
|
||||
<el-table-column :id="domIdChoose" prop="name" label="进路" style="margin-left:30px;" width="150px">
|
||||
<template slot-scope="scope">
|
||||
<div :style="{color: scope.row.turnBack? '#00FFFF':'#000000'}">
|
||||
{{ handleRouteName(scope.row.name) }}
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column :id="domIdChoose" prop="startSignalCode" label="方向" style="margin-left: 30px">
|
||||
<template slot-scope="scope">
|
||||
<div :style="{color: scope.row.turnBack? '#00FFFF':'#000000'}">
|
||||
{{ handleDirection(scope.row.startSignalCode) }}
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column :id="domIdChoose" prop="turnBack" label="属性" style="margin-left:30px">
|
||||
<template slot-scope="scope">
|
||||
<div :style="{color: scope.row.turnBack? '#00FFFF':'#000000'}">
|
||||
{{ scope.row.turnBack ? '折返': '直通' }}
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column :id="domIdChoose" prop="controlType" label="控制" style="margin-left:30px">
|
||||
<template slot-scope="scope">
|
||||
<div :style="{color: scope.row.turnBack? '#00FFFF':'#000000'}">
|
||||
{{ scope.row.atsControl == '0' ? '人工' : '自动' }}
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<el-row justify="center" style="margin-top: 70px">
|
||||
<el-col :span="12" :offset="12">
|
||||
<el-button
|
||||
:id="domIdConfirm"
|
||||
type="primary"
|
||||
:loading="loading"
|
||||
:disabled="commitDisabled"
|
||||
@click="commit"
|
||||
>执行</el-button>
|
||||
<el-button :id="domIdCancel" @click="cancel">取 消</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<notice-info ref="noticeInfo" pop-class="chengdou-03__systerm" />
|
||||
<password-box ref="passwordBox" @checkOver="passWordCommit" />
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
||||
import CancelMouseState from '@/mixin/CancelMouseState';
|
||||
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
|
||||
import { mapGetters } from 'vuex';
|
||||
import { deepAssign } from '@/utils/index';
|
||||
import PasswordBox from './childDialog/passwordInputBox.vue';
|
||||
import {menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate';
|
||||
|
||||
export default {
|
||||
name: 'RouteSelection',
|
||||
components: {
|
||||
NoticeInfo,
|
||||
PasswordBox
|
||||
},
|
||||
mixins: [
|
||||
CancelMouseState
|
||||
],
|
||||
data() {
|
||||
return {
|
||||
tempData: [],
|
||||
beforeSectionList: [],
|
||||
dialogShow: false,
|
||||
loading: false,
|
||||
selected: null,
|
||||
row: null,
|
||||
operation: '',
|
||||
display: true,
|
||||
stationName: '',
|
||||
signalName: '',
|
||||
commitDisabled:true,
|
||||
tableStyle: {
|
||||
'border-bottom': 'none'
|
||||
}
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
show() {
|
||||
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||
},
|
||||
domIdCancel() {
|
||||
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
|
||||
},
|
||||
domIdChoose() {
|
||||
return this.dialogShow ? OperationEvent.Signal.arrangementRoute.choose.domId : '';
|
||||
},
|
||||
domIdConfirm() {
|
||||
return this.dialogShow ? OperationEvent.Signal.arrangementRoute.confirm.domId : '';
|
||||
},
|
||||
title() {
|
||||
return '办理进路';
|
||||
},
|
||||
...mapGetters('map', [
|
||||
'signalList',
|
||||
'sectionList',
|
||||
'mapConfig'
|
||||
])
|
||||
},
|
||||
methods: {
|
||||
getProtectedSectionName(row) {
|
||||
let name = '';
|
||||
if (row &&
|
||||
row.overlapSectionList &&
|
||||
row.overlapSectionList &&
|
||||
row.overlapSectionList.length > 0) {
|
||||
|
||||
const protect = row.overlapSectionList[0];
|
||||
name = `${protect.name}`;
|
||||
const station = this.$store.getters['map/getDeviceByCode'](protect.stationCode);
|
||||
if (station) {
|
||||
name = `${name}(${station.name})`;
|
||||
}
|
||||
}
|
||||
return name;
|
||||
},
|
||||
handleRouteName(name) {
|
||||
return name.replace(/-/, '-->');
|
||||
},
|
||||
handleDirection(signalCode) {
|
||||
let signalDirection = '';
|
||||
this.signalList.some(item => {
|
||||
if (item.code === signalCode) {
|
||||
signalDirection = item.right;
|
||||
return true;
|
||||
}
|
||||
});
|
||||
if ((signalDirection && this.mapConfig.upRight) || (!signalDirection && !this.mapConfig.upRight)) {
|
||||
return '上行';
|
||||
} else {
|
||||
return '下行';
|
||||
}
|
||||
},
|
||||
doShow(operate, selected, tempData) {
|
||||
this.selected = selected;
|
||||
this.commitDisabled = true;
|
||||
// 如果不是断点激活,而是第一次显示,则需要设置初始值
|
||||
if (!this.dialogShow) {
|
||||
this.signalName = '';
|
||||
this.stationName = '';
|
||||
if (selected && selected._type.toUpperCase() === 'Signal'.toUpperCase()) {
|
||||
this.signalName = selected.name;
|
||||
const station = this.$store.getters['map/getDeviceByCode'](selected.stationCode);
|
||||
if (station) {
|
||||
this.stationName = station.name;
|
||||
}
|
||||
}
|
||||
this.tempData = tempData || [];
|
||||
this.operation = operate.operation;
|
||||
}
|
||||
this.dialogShow = true;
|
||||
this.$nextTick(function () {
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
});
|
||||
},
|
||||
doClose() {
|
||||
this.loading = false;
|
||||
this.dialogShow = false;
|
||||
this.restoreBeforeDevices();
|
||||
this.$refs.table.setCurrentRow();
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
},
|
||||
restoreBeforeDevices() {
|
||||
// 恢复之前选中设备
|
||||
if (this.beforeSectionList && this.beforeSectionList.length) {
|
||||
this.beforeSectionList.forEach(elem => {
|
||||
elem.cutOff = false;
|
||||
});
|
||||
}
|
||||
|
||||
this.$store.dispatch('training/updateMapState', [...this.beforeSectionList]);
|
||||
this.beforeSectionList = [];
|
||||
},
|
||||
clickEvent(row, event, column) {
|
||||
this.row = row;
|
||||
if (row) {
|
||||
// 恢复进路区段的切除状态
|
||||
this.restoreBeforeDevices();
|
||||
row.canSetting = true;
|
||||
this.commitDisabled = false;
|
||||
// 设置选中区段为切除状态
|
||||
const containSectionList = [];
|
||||
if (row.routeSectionList && row.routeSectionList.length) {
|
||||
// 设置新选的进路区段为切除状态
|
||||
row.routeSectionList.forEach(elem => {
|
||||
const section = deepAssign({}, this.$store.getters['map/getDeviceByCode'](elem));
|
||||
if (section.logicSectionCodeList && section.logicSectionCodeList.length) {
|
||||
section.logicSectionCodeList.forEach(item => {
|
||||
const sec = deepAssign({}, this.$store.getters['map/getDeviceByCode'](item));
|
||||
sec.cutOff = true;
|
||||
containSectionList.push(sec);
|
||||
});
|
||||
} else {
|
||||
section.cutOff = true;
|
||||
containSectionList.push(section);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
this.$store.dispatch('training/updateMapState', [...containSectionList]);
|
||||
this.beforeSectionList = containSectionList || [];
|
||||
|
||||
// 设置选中指令
|
||||
const operate = {
|
||||
operation: OperationEvent.Signal.arrangementRoute.choose.operation,
|
||||
val: row.code
|
||||
};
|
||||
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
commit() {
|
||||
if (this.row && this.row.canSetting) {
|
||||
this.loading = true;
|
||||
commitOperate({operation:OperationEvent.Signal.arrangementRoute.confirm.operation}, {routeCode: this.row.code}, 1).then(({valid, operate})=>{
|
||||
this.loading = false;
|
||||
if (valid) {
|
||||
this.$refs.passwordBox.doShow({operation:OperationEvent.Signal.arrangementRoute.menu.operation});
|
||||
this.doClose();
|
||||
}
|
||||
}).catch((error) => {
|
||||
this.loading = false;
|
||||
this.doClose();
|
||||
console.error(error);
|
||||
this.$refs.noticeInfo.doShow();
|
||||
});
|
||||
}
|
||||
},
|
||||
passWordCommit(data) {
|
||||
this.loading = true;
|
||||
commitOperate(menuOperate.Signal.arrangementRoute, {}, 2).then(({valid, operate})=>{
|
||||
this.loading = false;
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch((error) => {
|
||||
this.loading = false;
|
||||
this.doClose();
|
||||
console.error(error);
|
||||
this.$refs.noticeInfo.doShow();
|
||||
});
|
||||
},
|
||||
cancel() {
|
||||
const operate = {
|
||||
operation: OperationEvent.Command.cancel.menu.operation
|
||||
};
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch(() => {
|
||||
this.doClose();
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style scoped>
|
||||
.route-table-tip {
|
||||
position: relative !important;
|
||||
color: #3C72DF !important;
|
||||
background: #ECE9D8 !important;
|
||||
font-size: 12px;
|
||||
top: -7px;
|
||||
left: 7px;
|
||||
}
|
||||
|
||||
.route-table-box {
|
||||
margin-top: 15px !important;
|
||||
line-height: 10px !important;
|
||||
border: 2px solid #FFFFFF !important;
|
||||
border-radius: 5px !important;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.item-lable {
|
||||
line-height: 26px !important;
|
||||
font-size: 13px;
|
||||
}
|
||||
</style>
|
@ -1,114 +0,0 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-dialog
|
||||
v-dialogDrag
|
||||
class="chengdou-03__systerm section-detail"
|
||||
:title="title"
|
||||
:visible.sync="show"
|
||||
width="320px"
|
||||
:before-close="doClose"
|
||||
:z-index="2000"
|
||||
:modal="false"
|
||||
:close-on-click-modal="false"
|
||||
>
|
||||
<el-form ref="form" label-position="left" :model="formModel" label-width="100px">
|
||||
<el-form-item label="区段名称">
|
||||
<el-input v-model="formModel.sectionName" disabled />
|
||||
</el-form-item>
|
||||
<el-form-item label="车站名称">
|
||||
<el-input v-model="formModel.stationName" disabled />
|
||||
</el-form-item>
|
||||
<el-form-item label="公里标(Km)">
|
||||
<el-input v-model="formModel.kmPost" disabled />
|
||||
</el-form-item>
|
||||
<el-form-item label="长度(m)">
|
||||
<el-input v-model="formModel.lengthFact" disabled />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-row justify="center" style="margin-top: 50px">
|
||||
<el-col :span="7" :offset="17">
|
||||
<el-button :id="domIdConfirm" @click="commit">确定</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<notice-info ref="noticeInfo" pop-class="chengdou-03__systerm" />
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapGetters } from 'vuex';
|
||||
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
||||
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
|
||||
|
||||
export default {
|
||||
name: 'RouteDetail',
|
||||
components: {
|
||||
NoticeInfo
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
dialogShow: false,
|
||||
loading: false,
|
||||
selected: null,
|
||||
formModel: {
|
||||
sectionName: '',
|
||||
stationName: '',
|
||||
kmPost: '',
|
||||
lengthFact: ''
|
||||
}
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
show() {
|
||||
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||
},
|
||||
domIdConfirm() {
|
||||
return this.dialogShow ? OperationEvent.Section.detail.menu.domId : '';
|
||||
},
|
||||
title() {
|
||||
return '无岔区段属性对话框';
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
doShow(operate, selected) {
|
||||
this.selected = selected;
|
||||
// 如果不是因为断点激活则需要,初始化菜单初始值
|
||||
if (!this.dialogShow) {
|
||||
if (selected && selected._type.toUpperCase() === 'Section'.toUpperCase()) {
|
||||
const hasParentCode = (this.selected.type == '02');
|
||||
this.formModel.sectionName = hasParentCode ? selected.parentName + '-' + selected.name : selected.name;
|
||||
this.formModel.lengthFact = selected.lengthFact;
|
||||
const station = this.$store.getters['map/getDeviceByCode'](selected.stationCode);
|
||||
if (station) {
|
||||
this.formModel.stationName = station.name;
|
||||
this.formModel.kmPost = station.kmPost;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
this.dialogShow = true;
|
||||
this.$nextTick(function () {
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
});
|
||||
},
|
||||
doClose() {
|
||||
this.loading = false;
|
||||
this.dialogShow = false;
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
},
|
||||
commit() {
|
||||
const operate = {
|
||||
operation: OperationEvent.Section.detail.menu.operation
|
||||
};
|
||||
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch(() => {
|
||||
this.doClose();
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
@ -1,603 +0,0 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
v-dialogDrag
|
||||
class="chengdou-03__systerm stand-detain-train"
|
||||
:title="title"
|
||||
:visible.sync="show"
|
||||
width="400px"
|
||||
:before-close="doClose"
|
||||
:z-index="2000"
|
||||
:modal="false"
|
||||
:close-on-click-modal="false"
|
||||
>
|
||||
<el-row class="header">
|
||||
<el-col :span="11">
|
||||
<span>车站</span>
|
||||
<el-input v-model="stationName" style="width: 110px; margin-left: 10px;" size="small" disabled />
|
||||
</el-col>
|
||||
<el-col :span="11" :offset="1">
|
||||
<span>站台</span>
|
||||
<el-input v-model="standName" style="width: 110px; margin-left: 10px;" size="small" disabled />
|
||||
</el-col>
|
||||
</el-row>
|
||||
<div v-if="DetainTrain">
|
||||
<div
|
||||
style="padding: 15px; margin-bottom: 25px; margin-top: 20px; border: 1px solid lightgray;"
|
||||
>
|
||||
<span class="base-label" style="left: -5px; top: -22px; background: #ECE9D8; padding: 0 4px;">范围</span>
|
||||
<el-row style="margin-top: -13px;">
|
||||
<el-radio-group v-model="radio" @change="choose">
|
||||
<el-col :span="24">
|
||||
<el-radio
|
||||
:id="domIdDetainCar"
|
||||
label="01"
|
||||
style="display: block; text-align: left; float: left; margin-right: 10px;"
|
||||
>本站台
|
||||
</el-radio>
|
||||
<el-radio
|
||||
:id="isUpDirection? domIdDetainChoose: ''"
|
||||
v-if="radio1 == 2"
|
||||
:disabled="!isUpDirection"
|
||||
:label="`${isUpDirection}`"
|
||||
style="display: block; text-align: left; float: left; margin-right: 10px;"
|
||||
>上行全线
|
||||
</el-radio>
|
||||
<el-radio
|
||||
:id="isUpDirection ? '': domIdDetainChoose"
|
||||
v-if="radio1 == 2"
|
||||
:label="`${!isUpDirection}`"
|
||||
:disabled="isUpDirection"
|
||||
style="display: block; text-align: left; float: left;"
|
||||
>下行全线</el-radio>
|
||||
</el-col>
|
||||
</el-radio-group>
|
||||
</el-row>
|
||||
</div>
|
||||
<div style="padding: 15px; margin-top: 20px; border: 1px solid lightgray;">
|
||||
<span class="base-label" style="left: -5px; top: -22px; background: #ECE9D8; padding: 0 4px;">功能</span>
|
||||
<el-row style="margin-top: -13px;">
|
||||
<el-col :span="11">
|
||||
<el-radio
|
||||
v-model="radio1"
|
||||
label="1"
|
||||
:disabled="radio1 == '2'"
|
||||
style="display: block; text-align: left;"
|
||||
>
|
||||
扣车</el-radio>
|
||||
</el-col>
|
||||
<el-col :span="11" :offset="2">
|
||||
<el-radio
|
||||
v-model="radio1"
|
||||
label="2"
|
||||
:disabled="radio1 == '1'"
|
||||
style="display: block; text-align: left;"
|
||||
>
|
||||
取消扣车</el-radio>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="JumpStop">
|
||||
<div
|
||||
style="padding: 15px; margin-bottom: 25px; margin-top: 20px; border: 1px solid lightgray; height: 115px;"
|
||||
>
|
||||
<span class="base-label" style="left: -5px; top: -22px; background: #ECE9D8; padding: 0 4px;">范围</span>
|
||||
<el-row style="margin-top: -13px;">
|
||||
<el-col :span="24">
|
||||
<el-radio-group v-model="radio" @change="chooseJumpStop">
|
||||
<el-radio
|
||||
:id="radio == '02' ? domIdChoose : ''"
|
||||
label="01"
|
||||
style="display: block; text-align: left; margin-right: 10px; margin-bottom: 20px; width: 80px;"
|
||||
>
|
||||
站台跳停
|
||||
</el-radio>
|
||||
<el-radio
|
||||
:id="radio == '01' ? domIdChoose : ''"
|
||||
label="02"
|
||||
style="display: block; text-align: left; margin-left: 0; float: left;"
|
||||
>
|
||||
指定列车跳停</el-radio>
|
||||
<div style="float: left;">
|
||||
<span>车组号</span>
|
||||
<el-select
|
||||
:id="domIdCancelJumpStop"
|
||||
v-model="tripNumber"
|
||||
style="width: 120px; margin-left: 20px;"
|
||||
size="mini"
|
||||
:disabled="radio == '01'"
|
||||
@change="trainNoSelectChange"
|
||||
>
|
||||
<el-option
|
||||
v-for="option in trainList"
|
||||
:key="option.groupNumber"
|
||||
:label="option.groupNumber"
|
||||
:value="option.groupNumber"
|
||||
/>
|
||||
</el-select>
|
||||
</div>
|
||||
</el-radio-group>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
<div style="padding: 15px; margin-top: 20px; border: 1px solid lightgray;">
|
||||
<span class="base-label" style="left: -5px; top: -22px; background: #ECE9D8; padding: 0 4px;">功能</span>
|
||||
<el-row style="margin-top: -13px;">
|
||||
<el-col :span="11">
|
||||
<el-radio
|
||||
v-model="radio1"
|
||||
label="1"
|
||||
:disabled="radio1 == 2"
|
||||
style="display: block; text-align: left;"
|
||||
>
|
||||
跳停</el-radio>
|
||||
</el-col>
|
||||
<el-col :span="11" :offset="2">
|
||||
<el-radio
|
||||
v-model="radio1"
|
||||
label="2"
|
||||
:disabled="radio1 == 1"
|
||||
style="display: block; text-align: left;"
|
||||
>
|
||||
取消跳停</el-radio>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="RunLevel">
|
||||
<div
|
||||
style="padding: 15px; margin-bottom: 25px; margin-top: 20px; border: 1px solid lightgray; height: 105px;"
|
||||
>
|
||||
<span class="base-label" style="left: -5px; top: -22px; background: #ECE9D8; padding: 0 4px;">范围</span>
|
||||
<el-row style="margin-top: -13px;">
|
||||
<el-radio-group v-model="radio" @change="chooseStopTime">
|
||||
<el-col :span="24">
|
||||
<el-radio
|
||||
:id="radio == '02' ? domIdChoose1 : ''"
|
||||
label="01"
|
||||
style="display: block; text-align: left; margin-right: 10px; margin-bottom:10px; width: 60px;"
|
||||
>
|
||||
自动
|
||||
</el-radio>
|
||||
<el-radio
|
||||
:id="radio == '01' ? domIdChoose1 : ''"
|
||||
label="02"
|
||||
style="display: block; text-align: left; margin-left: 0; float: left;"
|
||||
>
|
||||
人工</el-radio>
|
||||
<div v-if="radio2 == 2" style="float: left; margin-left: 20px;">
|
||||
<span>运行等级</span>
|
||||
<el-select
|
||||
:id="domIdRunLevel"
|
||||
v-model="trainRunlevel"
|
||||
style="width: 120px; margin-left: 20px;"
|
||||
size="mini"
|
||||
:disabled="radio == '01'"
|
||||
@change="trainNoSelectLevel"
|
||||
>
|
||||
<el-option
|
||||
v-for="option in runLevelList"
|
||||
:key="option.value"
|
||||
:label="option.label"
|
||||
:value="option.value"
|
||||
/>
|
||||
</el-select>
|
||||
</div>
|
||||
<div v-if="radio2 == 1" style="float: left; margin-left: 20px;">
|
||||
<span>停站时间</span>
|
||||
<el-input-number
|
||||
:id="domIdStopTime"
|
||||
v-model="trainStopTime"
|
||||
:min="15"
|
||||
:max="300"
|
||||
:step="1"
|
||||
size="mini"
|
||||
:controls="false"
|
||||
style="width:100px;display:inline-block;margin-left:10px;height:34px;"
|
||||
:disabled="radio == '01'"
|
||||
@blur="handleTrainStopTime"
|
||||
/>
|
||||
<div style="margin-left: 5px;display: inline-block;font-size: 14px;">秒</div>
|
||||
</div>
|
||||
</el-col>
|
||||
</el-radio-group>
|
||||
</el-row>
|
||||
</div>
|
||||
<div style="padding: 15px; margin-top: 20px; border: 1px solid lightgray;">
|
||||
<span class="base-label" style="left: -5px; top: -22px; background: #ECE9D8; padding: 0 4px;">功能</span>
|
||||
<el-row style="margin-top: -13px;">
|
||||
<el-radio-group v-model="effective" :disabled="disabledTime" @change="chooseEffective">
|
||||
<el-radio :id="effective === false? '': domIdChoose2" :label="false">一次有效</el-radio>
|
||||
<el-radio :id="effective === true? '': domIdChoose2" :label="true">一直有效</el-radio>
|
||||
</el-radio-group>
|
||||
<!-- <el-radio-group v-model="effective" :disabled="disabledTime" @change="chooseEffective">
|
||||
<el-col :span="11">
|
||||
<el-radio
|
||||
:id="effective == '02' ? '': domIdChoose2"
|
||||
label="01"
|
||||
style="display: block; text-align: left;"
|
||||
>
|
||||
一次有效</el-radio>
|
||||
</el-col>
|
||||
<el-col :span="11" :offset="2">
|
||||
<el-radio
|
||||
:id="effective == '01' ? '': domIdChoose2"
|
||||
label="02"
|
||||
style="display: block; text-align: left;"
|
||||
>
|
||||
一直有效</el-radio>
|
||||
</el-col>
|
||||
</el-radio-group> -->
|
||||
</el-row>
|
||||
</div>
|
||||
</div>
|
||||
<el-row class="button-group">
|
||||
<el-col :span="10" :offset="2">
|
||||
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
|
||||
</el-col>
|
||||
<el-col :span="8" :offset="4">
|
||||
<el-button :id="domIdCancel" @click="cancel">取 消</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<notice-info ref="noticeInfo" pop-class="chengdou-03__systerm" />
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapGetters } from 'vuex';
|
||||
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
||||
import OperationHandler from '@/scripts/cmdPlugin/OperationHandler';
|
||||
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
|
||||
import {menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate';
|
||||
|
||||
export default {
|
||||
name: 'StandDetainTrain',
|
||||
components: {
|
||||
NoticeInfo
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
dialogShow: false,
|
||||
loading: false,
|
||||
standName: '',
|
||||
stationName: '',
|
||||
selected: null,
|
||||
operation: null,
|
||||
isUpDirection:true,
|
||||
radio: '01',
|
||||
radio1: '1',
|
||||
radio2: '1',
|
||||
DetainTrain: false,
|
||||
JumpStop: false,
|
||||
RunLevel: false,
|
||||
trainList: [],
|
||||
runLevelList: [
|
||||
{ value: 2, label: '常速' },
|
||||
{ value: 1, label: '低速' },
|
||||
{ value: 3, label: '高速' }
|
||||
],
|
||||
tripNumber: '',
|
||||
effective: '01',
|
||||
trainRunlevel: 2,
|
||||
trainStopTime: 30,
|
||||
disabledTime: true
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapGetters('map', [
|
||||
'map',
|
||||
'mapConfig'
|
||||
]),
|
||||
show() {
|
||||
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||
},
|
||||
domIdCancel() {
|
||||
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
|
||||
},
|
||||
domIdConfirm() {
|
||||
return this.dialogShow ? OperationHandler.getDomIdByOperation(this.operation) : '';
|
||||
},
|
||||
domIdDetainCar() {
|
||||
return this.dialogShow ? OperationEvent.StationStand.cancelDetainTrain.choose.domId : '';
|
||||
},
|
||||
domIdDetainChoose() {
|
||||
return this.dialogShow ? OperationEvent.Command.common.choose.domId : '';
|
||||
},
|
||||
domIdChoose() {
|
||||
if (this.radio1 == '1') { // 跳停
|
||||
return this.dialogShow ? OperationEvent.StationStand.setJumpStop.select.domId : '';
|
||||
} else { // 取消跳停
|
||||
return this.dialogShow ? OperationEvent.StationStand.cancelJumpStop.select.domId : '';
|
||||
}
|
||||
},
|
||||
// domIdJumpStop() {
|
||||
// return this.dialogShow ? OperationEvent.StationStand.setJumpStop.choose.domId : '';
|
||||
// },
|
||||
domIdCancelJumpStop() {
|
||||
return this.dialogShow ? OperationEvent.StationStand.cancelJumpStop.choose.domId : '';
|
||||
},
|
||||
domIdChoose1() {
|
||||
if (this.radio2 == '1') { // 设置停站时间
|
||||
return this.dialogShow ? OperationEvent.StationStand.setStopTime.choose1.domId : '';
|
||||
} else { // 设置站间运行等级
|
||||
return this.dialogShow ? OperationEvent.StationStand.setRunLevel.choose1.domId : '';
|
||||
}
|
||||
},
|
||||
domIdChoose2() {
|
||||
if (this.radio2 == '1') { // 设置停站时间
|
||||
return this.dialogShow ? OperationEvent.StationStand.setStopTime.choose2.domId : '';
|
||||
} else { // 设置站间运行等级
|
||||
return this.dialogShow ? OperationEvent.StationStand.setRunLevel.choose2.domId : '';
|
||||
}
|
||||
},
|
||||
domIdStopTime() {
|
||||
return this.dialogShow ? OperationEvent.StationStand.setStopTime.input.domId : '';
|
||||
},
|
||||
domIdRunLevel() {
|
||||
return this.dialogShow ? OperationEvent.StationStand.setRunLevel.chooseTrain.domId : '';
|
||||
},
|
||||
title() {
|
||||
if (this.operation == OperationEvent.StationStand.setDetainTrain.menu.operation) {
|
||||
return '扣车';
|
||||
} else if (this.operation == OperationEvent.StationStand.cancelDetainTrain.menu.operation || this.operation == OperationEvent.StationStand.cancelDetainTrainAll.menu.operation) {
|
||||
return '取消扣车';
|
||||
} else if (this.operation == OperationEvent.StationStand.setJumpStop.menu.operation) {
|
||||
return '设置跳停';
|
||||
} else if (this.operation == OperationEvent.StationStand.cancelJumpStop.menu.operation) {
|
||||
return '取消跳停';
|
||||
} else if (this.operation == OperationEvent.StationStand.setStopTime.menu.operation) {
|
||||
return '设置停站时间';
|
||||
} else if (this.operation == OperationEvent.StationStand.setRunLevel.menu.operation) {
|
||||
return '设置站间运行等级';
|
||||
}
|
||||
return '';
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
operation(data) {
|
||||
if (data != OperationEvent.StationStand.cancelDetainTrainAll.menu.operation) {
|
||||
this.JumpStop = false;
|
||||
this.RunLevel = false;
|
||||
this.DetainTrain = false;
|
||||
this.radio = '01';
|
||||
this.radio1 = '1';
|
||||
this.radio2 = '1';
|
||||
if (data == OperationEvent.StationStand.setDetainTrain.menu.operation) {
|
||||
this.radio1 = '1';
|
||||
this.radio = '01';
|
||||
this.DetainTrain = true;
|
||||
} else if (data == OperationEvent.StationStand.cancelDetainTrain.menu.operation) {
|
||||
this.radio1 = '2';
|
||||
this.radio = '01';
|
||||
this.DetainTrain = true;
|
||||
} else if (data == OperationEvent.StationStand.setJumpStop.menu.operation) {
|
||||
this.JumpStop = true;
|
||||
this.radio1 = '1';
|
||||
} else if (data == OperationEvent.StationStand.cancelJumpStop.menu.operation) {
|
||||
this.JumpStop = true;
|
||||
this.radio1 = '2';
|
||||
} else if (data == OperationEvent.StationStand.setStopTime.menu.operation) {
|
||||
this.RunLevel = true;
|
||||
this.radio2 = '1';
|
||||
} else if (data == OperationEvent.StationStand.setRunLevel.menu.operation) {
|
||||
this.RunLevel = true;
|
||||
this.radio2 = '2';
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
doShow(operate, selected, tempDate = null) {
|
||||
this.selected = selected;
|
||||
if (!this.dialogShow) {
|
||||
this.tripNumber = '';
|
||||
this.standName = '';
|
||||
this.stationName = '';
|
||||
this.operation = operate.operation;
|
||||
if (selected) {
|
||||
this.getDirection(selected);
|
||||
}
|
||||
if (selected && selected._type.toUpperCase() === 'StationStand'.toUpperCase()) {
|
||||
this.getDirection(selected);
|
||||
const station = this.$store.getters['map/getDeviceByCode'](selected.stationCode);
|
||||
if (station) {
|
||||
this.stationName = station.name;
|
||||
}
|
||||
}
|
||||
if (this.operation == OperationEvent.StationStand.setJumpStop.menu.operation || this.operation == OperationEvent.StationStand.setJumpStop.menu.operation) {
|
||||
this.radio = selected.direction;
|
||||
}
|
||||
this.effective = false;
|
||||
this.radio = '01';
|
||||
this.disabledTime = true;
|
||||
this.trainList = this.map.trainList; // 加载列车数据
|
||||
}
|
||||
this.dialogShow = true;
|
||||
this.$nextTick(function () {
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
});
|
||||
},
|
||||
getDirection(selected) {
|
||||
if (this.mapConfig.upRight) {
|
||||
this.standName = selected.right ? '上行' : '下行';
|
||||
this.isUpDirection = selected.right;
|
||||
} else if (!this.mapConfig.upRight) {
|
||||
this.standName = selected.right ? '下行' : '上行';
|
||||
this.isUpDirection = !selected.right;
|
||||
}
|
||||
},
|
||||
doClose() {
|
||||
this.loading = false;
|
||||
this.dialogShow = false;
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
this.operation = '';
|
||||
this.trainStopTime = 30;
|
||||
},
|
||||
choose(upDown) { // 取消扣车 请求code码
|
||||
const operate = {
|
||||
operation: upDown == '01'
|
||||
? OperationEvent.StationStand.cancelDetainTrain.choose.operation
|
||||
: OperationEvent.Command.common.choose.operation,
|
||||
val: this.radio
|
||||
};
|
||||
if (this.radio == '02' || this.radio == '03') {
|
||||
this.operation = OperationEvent.StationStand.cancelDetainTrainAll.menu.operation;
|
||||
} else {
|
||||
this.operation = OperationEvent.StationStand.cancelDetainTrain.menu.operation;
|
||||
}
|
||||
this.handleBreak(operate);
|
||||
},
|
||||
trainNoSelectChange(upDown) { // 跳停 选择车组号
|
||||
const operate = {
|
||||
operation: OperationEvent.StationStand.cancelDetainTrain.choose.operation
|
||||
};
|
||||
this.handleBreak(operate);
|
||||
},
|
||||
chooseJumpStop(upDown) {
|
||||
const operate = {
|
||||
operation: ''
|
||||
};
|
||||
if (this.radio1 == '1') { // 跳停选择
|
||||
operate.operation = OperationEvent.StationStand.setJumpStop.select.operation;
|
||||
} else { // 取消跳停选择
|
||||
operate.operation = OperationEvent.StationStand.cancelJumpStop.select.operation;
|
||||
}
|
||||
this.handleBreak(operate);
|
||||
},
|
||||
chooseEffective(effective) {
|
||||
const operate = {
|
||||
operation: '',
|
||||
val: effective
|
||||
};
|
||||
if (this.radio2 == '1') { // 设置停站时间
|
||||
operate.operation = OperationEvent.StationStand.setStopTime.choose2.operation;
|
||||
} else { // 设置站间运行等级
|
||||
operate.operation = OperationEvent.StationStand.setRunLevel.choose2.operation;
|
||||
}
|
||||
this.handleBreak(operate);
|
||||
},
|
||||
chooseStopTime(upDown) {
|
||||
const operate = {
|
||||
operation: '',
|
||||
val: this.radio
|
||||
};
|
||||
if (this.radio2 == '1') { // 设置停站时间
|
||||
operate.operation = OperationEvent.StationStand.setStopTime.choose1.operation;
|
||||
} else { // 设置站间运行等级
|
||||
operate.operation = OperationEvent.StationStand.setRunLevel.choose1.operation;
|
||||
}
|
||||
if (this.radio === '01') {
|
||||
this.disabledTime = true;
|
||||
this.trainRunlevel = 2;
|
||||
this.effective = false;
|
||||
} else {
|
||||
this.disabledTime = false;
|
||||
this.effective = true;
|
||||
}
|
||||
this.handleBreak(operate);
|
||||
},
|
||||
trainNoSelectLevel(upDown) {
|
||||
const operate = {
|
||||
operation: OperationEvent.StationStand.setRunLevel.chooseTrain.operation,
|
||||
val: `${upDown}`,
|
||||
param: {
|
||||
standRunLevel: `${upDown}`
|
||||
}
|
||||
};
|
||||
this.handleBreak(operate);
|
||||
},
|
||||
handleTrainStopTime() {
|
||||
const operate = {
|
||||
operation: OperationEvent.StationStand.setStopTime.input.operation,
|
||||
val: `${this.trainStopTime}`
|
||||
};
|
||||
this.handleBreak(operate);
|
||||
},
|
||||
handleBreak(operate) { // 断点记录
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
valid && this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||
});
|
||||
},
|
||||
commit() {
|
||||
if (this.operation == OperationEvent.StationStand.setDetainTrain.menu.operation) {
|
||||
this.setDetainTrain(); /** 设置扣车*/
|
||||
} else if (this.operation == OperationEvent.StationStand.cancelDetainTrain.menu.operation || this.operation == OperationEvent.StationStand.cancelDetainTrainAll.menu.operation) {
|
||||
this.cancelDetainTrain(); /** 取消扣车*/
|
||||
} else if (this.operation == OperationEvent.StationStand.setJumpStop.menu.operation) {
|
||||
this.setJumpStop(); /** 设置跳停*/
|
||||
} else if (this.operation == OperationEvent.StationStand.cancelJumpStop.menu.operation) {
|
||||
this.cancelJumpStop(); /** 取消跳停*/
|
||||
} else if (this.operation == OperationEvent.StationStand.setStopTime.menu.operation) {
|
||||
this.setStopTime(); /** 设置停站时间*/
|
||||
} else if (this.operation == OperationEvent.StationStand.setRunLevel.menu.operation) {
|
||||
this.setRunLevel(); /** 设置站间运行等级*/
|
||||
}
|
||||
},
|
||||
// 设置扣车
|
||||
setDetainTrain() {
|
||||
this.sendCommand(menuOperate.StationStand.setDetainTrain);
|
||||
},
|
||||
// 取消扣车
|
||||
cancelDetainTrain() {
|
||||
if (this.operation == OperationEvent.StationStand.cancelDetainTrain.menu.operation) {
|
||||
this.sendCommand(menuOperate.StationStand.cancelDetainTrain);
|
||||
} else {
|
||||
this.sendCommand(menuOperate.StationStand.cancelDetainTrainAll);
|
||||
}
|
||||
},
|
||||
// 设置跳停
|
||||
setJumpStop() {
|
||||
this.sendCommand(menuOperate.StationStand.setJumpStop, {trainGroupNumber:this.tripNumber});
|
||||
},
|
||||
// 取消跳停
|
||||
cancelJumpStop() {
|
||||
this.sendCommand(menuOperate.StationStand.cancelJumpStop, {trainGroupNumber:this.tripNumber});
|
||||
},
|
||||
// 设置停站时间
|
||||
setStopTime() {
|
||||
this.sendCommand(menuOperate.StationStand.setStopTime, {parkingTime: this.radio == '01' ? -1 : this.trainStopTime, parkingAlwaysValid: this.effective});
|
||||
},
|
||||
// 设置运行速度
|
||||
setRunLevel() {
|
||||
this.sendCommand(menuOperate.StationStand.setRunLevel, {runLevelTime:this.radio === '02' ? this.trainRunlevel : 2, runLevelTimeForever: this.effective});
|
||||
},
|
||||
sendCommand(operate, param) {
|
||||
this.loading = true;
|
||||
commitOperate(operate, param, 2).then(({valid})=>{
|
||||
this.loading = false;
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch((error) => {
|
||||
this.loading = false;
|
||||
this.doClose();
|
||||
console.error(error);
|
||||
this.$refs.noticeInfo.doShow();
|
||||
});
|
||||
},
|
||||
cancel() {
|
||||
const operate = {
|
||||
operation: OperationEvent.Command.cancel.menu.operation
|
||||
};
|
||||
this.loading = false;
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch(() => {
|
||||
this.doClose();
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.stand-detain-train .context {
|
||||
height: 80px !important;
|
||||
}
|
||||
/deep/ {
|
||||
.el-input--mini .el-input__icon{
|
||||
line-height: 100%;
|
||||
}
|
||||
}
|
||||
</style>
|
@ -1,217 +0,0 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
v-dialogDrag
|
||||
class="chengdou-03__systerm stand-detail"
|
||||
:title="title"
|
||||
:visible.sync="show"
|
||||
width="380px"
|
||||
:before-close="doClose"
|
||||
:z-index="2000"
|
||||
:modal="false"
|
||||
:close-on-click-modal="false"
|
||||
>
|
||||
<el-row class="header">
|
||||
<el-col :span="10">
|
||||
<span>车站</span>
|
||||
</el-col>
|
||||
<el-col :span="10" :offset="2">
|
||||
<span>站台</span>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row class="header">
|
||||
<el-col :span="10">
|
||||
<el-input v-model="stationName" size="small" disabled />
|
||||
</el-col>
|
||||
<el-col :span="10" :offset="2">
|
||||
<el-input v-model="standName" style="padding: 0 3px;" size="small" disabled />
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row class="content">
|
||||
<el-col :span="6">
|
||||
<span>停站时间</span>
|
||||
</el-col>
|
||||
<el-col :span="18">
|
||||
<el-input v-model="modelData.stopTime" size="small" disabled />
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row class="content">
|
||||
<el-col :span="6">
|
||||
<span>运行等级</span>
|
||||
</el-col>
|
||||
<el-col :span="18">
|
||||
<el-input v-model="modelData.runLevel" size="small" disabled />
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row class="content">
|
||||
<el-col :span="6">
|
||||
<span>扣车</span>
|
||||
</el-col>
|
||||
<el-col :span="18">
|
||||
<el-input v-model="modelData.detainCar" size="small" disabled />
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row class="content">
|
||||
<el-col :span="6">
|
||||
<span>跳停</span>
|
||||
</el-col>
|
||||
<el-col :span="18">
|
||||
<el-input v-model="modelData.jumpStop" size="small" disabled />
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row justify="center" class="button-group">
|
||||
<el-col :span="18">
|
||||
<span style="opacity: 0;">1</span>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">退出</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<notice-info ref="noticeInfo" pop-class="chengdou-03__systerm" />
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapGetters } from 'vuex';
|
||||
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
||||
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
|
||||
// import CMD from '@/scripts/cmdPlugin/CommandEnum';
|
||||
import CancelMouseState from '@/mixin/CancelMouseState';
|
||||
|
||||
export default {
|
||||
name: 'StandDetail',
|
||||
components: {
|
||||
NoticeInfo
|
||||
},
|
||||
mixins: [
|
||||
CancelMouseState
|
||||
],
|
||||
data() {
|
||||
return {
|
||||
dialogShow: false,
|
||||
loading: false,
|
||||
tempData: [],
|
||||
stationName: '',
|
||||
standName: '',
|
||||
runLevelList: [
|
||||
'自动',
|
||||
'低速',
|
||||
'常速',
|
||||
'高速'
|
||||
],
|
||||
modelData: {
|
||||
stopTime: '自动',
|
||||
runLevel: '自动',
|
||||
detainCar: '无扣车',
|
||||
jumpStop: '无跳停'
|
||||
}
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapGetters('map', [
|
||||
'mapConfig',
|
||||
'stationList'
|
||||
]),
|
||||
show() {
|
||||
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||
},
|
||||
domIdCancel() {
|
||||
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
|
||||
},
|
||||
domIdConfirm() {
|
||||
return this.dialogShow ? OperationEvent.Command.close.confirm.domId : '';
|
||||
},
|
||||
title() {
|
||||
return '站台信息';
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
loadInitData(selected, opts) {
|
||||
this.tempData = [];
|
||||
|
||||
// const stationList = this.stationList.slice();
|
||||
// const index = this.stationList.findIndex(n => n.code == selected.stationCode);
|
||||
// let stationStand, station;
|
||||
// if (selected.direction == '01') { // 下行
|
||||
// // 下行时,此站不是最后一站
|
||||
// if (index != 0) {
|
||||
// stationStand = this.$store.getters['map/getDeviceByCode'](this.stationList[index - 1].code);
|
||||
// station = this.$store.getters['map/getDeviceByCode'](stationStand.stationCode);
|
||||
// }
|
||||
// } else {
|
||||
// // 上行时,此站不是最后一站
|
||||
// if (index != this.stationList.length - 1) {
|
||||
// stationStand = this.$store.getters['map/getDeviceByCode'](this.stationList[index + 1].code);
|
||||
// station = this.$store.getters['map/getDeviceByCode'](stationStand.stationCode);
|
||||
// }
|
||||
// }
|
||||
this.modelData = {
|
||||
stopTime: selected.parkingTime < 0 ? '自动' : `${selected.parkingTime} 秒`,
|
||||
runLevel: this.runLevelList[selected.runLevelTime],
|
||||
detainCar: selected.stationHoldTrain || selected.centerHoldTrain ? '已设置' : '无扣车',
|
||||
jumpStop: selected.allSkip || selected.assignSkip ? '已设置' : '无跳停'
|
||||
};
|
||||
},
|
||||
doShow(operate, selected, opts) {
|
||||
this.selected = selected;
|
||||
if (!this.dialogShow) {
|
||||
this.standName = '';
|
||||
this.stationName = '';
|
||||
if (selected && selected._type.toUpperCase() === 'StationStand'.toUpperCase()) {
|
||||
if (this.mapConfig.upRight) {
|
||||
this.standName = selected.right ? '上行' : '下行';
|
||||
} else if (!this.mapConfig.upRight) {
|
||||
this.standName = selected.right ? '下行' : '上行';
|
||||
}
|
||||
const station = this.$store.getters['map/getDeviceByCode'](selected.stationCode);
|
||||
if (station) {
|
||||
this.stationName = station.name;
|
||||
}
|
||||
}
|
||||
this.loadInitData(selected, opts);
|
||||
}
|
||||
this.dialogShow = true;
|
||||
this.$nextTick(function () {
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
});
|
||||
},
|
||||
doClose() {
|
||||
this.loading = false;
|
||||
this.dialogShow = false;
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
},
|
||||
commit() {
|
||||
const operate = {
|
||||
operation: OperationEvent.Command.close.confirm.operation
|
||||
};
|
||||
|
||||
this.loading = true;
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
this.loading = false;
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch(() => {
|
||||
this.loading = false;
|
||||
this.doClose();
|
||||
});
|
||||
},
|
||||
cancel() {
|
||||
const operate = {
|
||||
operation: OperationEvent.Command.cancel.menu.operation
|
||||
};
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch(() => {
|
||||
this.doClose();
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style>
|
||||
.content {
|
||||
margin-top: 20px;
|
||||
}
|
||||
</style>
|
@ -1,332 +0,0 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
v-dialogDrag
|
||||
class="chengdou-03__systerm train-control"
|
||||
:title="title"
|
||||
:visible.sync="show"
|
||||
width="480px"
|
||||
:before-close="doClose"
|
||||
:z-index="2000"
|
||||
:modal="false"
|
||||
:close-on-click-modal="false"
|
||||
>
|
||||
<div class="el-dialog-div">
|
||||
<el-form ref="form" size="small" label-width="80px" :model="addModel" :rules="rules" label-position="left">
|
||||
<el-row>
|
||||
<el-col :span="11">
|
||||
<el-form-item prop="stationName">
|
||||
<span slot="label">车站</span>
|
||||
<el-input v-model="addModel.stationName" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="11" :offset="1">
|
||||
<el-form-item v-if="operation != '70c'" prop="sectionCode">
|
||||
<span slot="label">轨道</span>
|
||||
<el-input v-model="addModel.sectionCode" />
|
||||
</el-form-item>
|
||||
<el-form-item v-else prop="trainWindowCode">
|
||||
<span slot="label">车次窗</span>
|
||||
<el-input v-model="addModel.trainWindowCode" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="11">
|
||||
<el-form-item label="车组号:" prop="groupNumber">
|
||||
<el-select v-model="addModel.groupNumber" filterable>
|
||||
<el-option
|
||||
v-for="train in trainList"
|
||||
:key="train.groupNumber"
|
||||
:label="train.groupNumber"
|
||||
:value="train.groupNumber"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="11">
|
||||
<el-form-item v-if="operation == '708'" prop="serviceNumber">
|
||||
<span slot="label">服务号</span>
|
||||
<el-input v-model="addModel.serviceNumber" />
|
||||
</el-form-item>
|
||||
<el-form-item v-else-if="operation == '70c'" prop="targetCode">
|
||||
<span slot="label">目的地</span>
|
||||
<el-input v-model="addModel.targetCode" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="11" :offset="1">
|
||||
<el-form-item v-if="operation == '708'" prop="trainCode">
|
||||
<span slot="label">序列号</span>
|
||||
<el-input v-model="addModel.trainCode" />
|
||||
</el-form-item>
|
||||
<el-form-item v-else-if="operation == '70c'" prop="serviceNumber">
|
||||
<span slot="label">服务号</span>
|
||||
<el-input v-model="addModel.serviceNumber" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col>
|
||||
<el-form-item v-if="operation == '70c'" prop="trainType">
|
||||
<span slot="label">运行模式</span>
|
||||
<br>
|
||||
<el-radio-group v-model="addModel.runningMode" style="margin-left: 15px;">
|
||||
<el-radio :label="'01'">普通</el-radio>
|
||||
<el-radio :label="'02'">专列</el-radio>
|
||||
<el-radio :label="'03'">不停站直达</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
</div>
|
||||
<el-row justify="center" class="button-group">
|
||||
<el-col :span="10" :offset="2">
|
||||
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
|
||||
</el-col>
|
||||
<el-col :span="8" :offset="4">
|
||||
<el-button :id="domIdCancel" @click="cancel">取 消</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<confirm-train ref="confirmTrain" />
|
||||
<notice-info ref="noticeInfo" pop-class="chengdou-03__systerm" />
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapGetters } from 'vuex';
|
||||
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
||||
import CancelMouseState from '@/mixin/CancelMouseState';
|
||||
import ConfirmTrain from './childDialog/confirmTrain';
|
||||
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
|
||||
|
||||
export default {
|
||||
name: 'TrainControl',
|
||||
components: {
|
||||
ConfirmTrain,
|
||||
NoticeInfo
|
||||
},
|
||||
mixins: [
|
||||
CancelMouseState
|
||||
],
|
||||
data() {
|
||||
return {
|
||||
trainList: [],
|
||||
selected: null,
|
||||
addModel: {
|
||||
stationName: '',
|
||||
sectionCode: '',
|
||||
trainWindowCode: '',
|
||||
groupNumber: '',
|
||||
serviceNumber: '',
|
||||
targetCode: '',
|
||||
trainCode: '',
|
||||
runningMode: ''
|
||||
},
|
||||
|
||||
rules: {
|
||||
stationName: [
|
||||
{ required: true, message: '请输入车站', trigger: 'blur'}
|
||||
],
|
||||
sectionCode: [
|
||||
{ required: true, message: '请输入轨道', trigger: 'blur'}
|
||||
],
|
||||
trainWindowCode: [
|
||||
{ required: true, message: '请输入车次窗', trigger: 'blur'}
|
||||
],
|
||||
groupNumber: [
|
||||
{ required: true, message: '请选择车组号', trigger: 'change' }
|
||||
],
|
||||
serviceNumber: [
|
||||
{ required: true, message: '请输入服务号', trigger: 'blur'}
|
||||
],
|
||||
targetCode: [
|
||||
{ required: true, message: '请输入目的地号', trigger: 'blur'}
|
||||
],
|
||||
trainCode: [
|
||||
{ required: true, message: '请输入序列号', trigger: 'blur'}
|
||||
],
|
||||
runningMode: [
|
||||
{ required: true, message: '请选择运行模式', trigger: 'blur'}
|
||||
]
|
||||
},
|
||||
operation: null,
|
||||
|
||||
dialogShow: false,
|
||||
loading: false,
|
||||
direction: 0
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapGetters('map', [
|
||||
'map'
|
||||
]),
|
||||
show() {
|
||||
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||
},
|
||||
domIdCancel() {
|
||||
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
|
||||
},
|
||||
domIdConfirm() {
|
||||
if (this.dialogShow) {
|
||||
if (this.operation == OperationEvent.Train.destinationTrainId.menu.operation) {
|
||||
/* 设目的地*/
|
||||
return OperationEvent.Train.destinationTrainId.menu.domId;
|
||||
} else if (this.operation == OperationEvent.Train.setPlanTrainId.menu.operation) {
|
||||
/* 设计划车*/
|
||||
return OperationEvent.Train.setPlanTrainId.menu.domId;
|
||||
} else if (this.operation == OperationEvent.Train.artificialTrainId.menu.operation) {
|
||||
/* 设人工车*/
|
||||
return OperationEvent.Train.artificialTrainId.menu.domId;
|
||||
}
|
||||
return '';
|
||||
}
|
||||
return '';
|
||||
},
|
||||
title() {
|
||||
if ( this.operation == OperationEvent.Train.destinationTrainId.menu.operation) {
|
||||
return '设目的地车';
|
||||
} else if ( this.operation == OperationEvent.Train.setPlanTrainId.menu.operation ) {
|
||||
return '设计划车';
|
||||
} else if ( this.operation == OperationEvent.Train.artificialTrainId.menu.operation ) {
|
||||
return '设人工车';
|
||||
}
|
||||
return '';
|
||||
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
loadInitData(map) {
|
||||
},
|
||||
doShow(operate, selected) {
|
||||
this.selected = selected;
|
||||
// 如果不是断点激活,则需要对初始值进行初始化
|
||||
if (!this.dialogShow) {
|
||||
this.operation = operate.operation;
|
||||
}
|
||||
this.addModel = {
|
||||
tripNumber: '',
|
||||
groupNumber: '',
|
||||
trainType: '01',
|
||||
serviceNumber: '',
|
||||
targetCode: ''
|
||||
};
|
||||
/** 加载列车数据*/
|
||||
this.loadInitData(this.map);
|
||||
this.dialogShow = true;
|
||||
this.$nextTick(function () {
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
});
|
||||
},
|
||||
doClose() {
|
||||
this.loading = false;
|
||||
this.dialogShow = false;
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
this.$store.dispatch('map/setTrainWindowShow', false);
|
||||
this.mouseCancelState(this.selected);
|
||||
},
|
||||
commit() {
|
||||
if ( this.operation == OperationEvent.Train.destinationTrainId.menu.operation ) {
|
||||
this.destinationTrainId();
|
||||
} else if (this.operation == OperationEvent.Train.setPlanTrainId.menu.operation ) {
|
||||
this.setPlanTrainId();
|
||||
} else if (this.operation == OperationEvent.Train.artificialTrainId.menu.operation ) {
|
||||
this.artificialTrainId();
|
||||
}
|
||||
},
|
||||
// 设目的地车
|
||||
destinationTrainId() {
|
||||
this.$refs['form'].validate((valid) => {
|
||||
if (valid) {
|
||||
const operate = {
|
||||
|
||||
operation: OperationEvent.Train.destinationTrainId.menu.operation,
|
||||
message: [`设目的地车:成功`],
|
||||
val: ''
|
||||
};
|
||||
this.loading = true;
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
this.doClose();
|
||||
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||
}).catch(() => {
|
||||
this.loading = false;
|
||||
this.doClose();
|
||||
this.$refs.noticeInfo.doShow();
|
||||
});
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
},
|
||||
// 设计划车
|
||||
setPlanTrainId() {
|
||||
this.$refs['form'].validate((valid) => {
|
||||
if (valid) {
|
||||
const operate = {
|
||||
|
||||
operation: OperationEvent.Train.setPlanTrainId.menu.operation,
|
||||
message: [`设计划车:成功`],
|
||||
val: ''
|
||||
};
|
||||
this.loading = true;
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
this.doClose();
|
||||
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||
}).catch(() => {
|
||||
this.loading = false;
|
||||
this.doClose();
|
||||
this.$refs.noticeInfo.doShow();
|
||||
});
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
},
|
||||
// 设人工车
|
||||
artificialTrainId() {
|
||||
this.$refs['form'].validate((valid) => {
|
||||
if (valid) {
|
||||
const operate = {
|
||||
|
||||
operation: OperationEvent.Train.artificialTrainId.menu.operation,
|
||||
message: [`设人工车:成功`],
|
||||
val: ''
|
||||
};
|
||||
this.loading = true;
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
this.doClose();
|
||||
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||
}).catch(() => {
|
||||
this.loading = false;
|
||||
this.doClose();
|
||||
this.$refs.noticeInfo.doShow();
|
||||
});
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
},
|
||||
cancel() {
|
||||
const operate = {
|
||||
|
||||
operation: OperationEvent.Command.cancel.menu.operation
|
||||
};
|
||||
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch(() => {
|
||||
this.doClose();
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style scoped>
|
||||
.el-dialog-div {
|
||||
height: 400px;
|
||||
overflow: auto;
|
||||
}
|
||||
</style>
|
@ -1,133 +0,0 @@
|
||||
<template>
|
||||
<el-dialog v-dialogDrag class="chengdou-03__systerm route-create" :title="title" :visible.sync="show" width="380px" label-position="top" :before-close="doClose" :z-index="2000" :modal="false" :close-on-click-modal="false">
|
||||
<div style="padding: 10px 20px; border: 1px solid lightgray;">
|
||||
<el-form size="small" label-width="100px">
|
||||
<el-form-item label="列车:" prop="trainCode">
|
||||
<el-select v-model="trainCode" filterable placeholder="列车">
|
||||
<el-option
|
||||
v-for="item in trainList"
|
||||
:key="item.code"
|
||||
:label="item.groupNumber"
|
||||
:value="item.code"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="列车方向:" prop="direction">
|
||||
<el-select v-model="direction" filterable placeholder="列车方向">
|
||||
<el-option v-for="no in directionList" :key="no.value" :label="no.label" :value="no.value" />
|
||||
</el-select>
|
||||
<!-- <div style="font-size: 12px;">(上行路线车次号选择偶数,下行路线车次号选择基数)</div> -->
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-row>
|
||||
<el-col style="text-align: right;">
|
||||
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
|
||||
<el-button :id="domIdCancel" @click="cancel">取 消</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
<notice-info ref="noticeInfo" pop-class="chengdou-03__systerm" />
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapGetters } from 'vuex';
|
||||
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
||||
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
|
||||
import CMD from '@/scripts/cmdPlugin/CommandEnum';
|
||||
|
||||
export default {
|
||||
name: 'RouteCreate',
|
||||
components: {
|
||||
NoticeInfo
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
dialogShow: false,
|
||||
loading: false,
|
||||
trainList: [],
|
||||
trainNoList: [],
|
||||
directionList: [
|
||||
{
|
||||
value: '2',
|
||||
label: '上行'
|
||||
},
|
||||
{
|
||||
value: '1',
|
||||
label: '下行'
|
||||
}
|
||||
],
|
||||
trainCode: '',
|
||||
tripNumber: '',
|
||||
direction: '',
|
||||
selected: null
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapGetters('map', [
|
||||
'map'
|
||||
]),
|
||||
show() {
|
||||
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||
},
|
||||
domIdCancel() {
|
||||
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
|
||||
},
|
||||
domIdConfirm() {
|
||||
return OperationEvent.Section.newtrain.menu.domId;
|
||||
},
|
||||
title() {
|
||||
return '设置列车';
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
doShow(operate, selected) {
|
||||
this.dialogShow = true;
|
||||
this.selected = selected;
|
||||
|
||||
this.$nextTick(function () {
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
});
|
||||
},
|
||||
doClose() {
|
||||
this.trainCode = '';
|
||||
this.direction = '';
|
||||
this.loading = false;
|
||||
this.dialogShow = false;
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
},
|
||||
commit() {
|
||||
const operate = {
|
||||
send: true,
|
||||
operation: OperationEvent.Section.newtrain.menu.operation,
|
||||
cmdType: CMD.Section.CMD_NEW_TRAIN,
|
||||
val: '' + this.direction + '::' + this.trainCode
|
||||
};
|
||||
this.loading = true;
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
this.loading = false;
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch(() => {
|
||||
this.loading = false;
|
||||
this.doClose();
|
||||
this.$refs.noticeInfo.doShow();
|
||||
});
|
||||
},
|
||||
cancel() {
|
||||
const operate = {
|
||||
operation: OperationEvent.Command.cancel.menu.operation
|
||||
};
|
||||
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch(() => {
|
||||
this.doClose();
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
@ -1,181 +0,0 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
v-dialogDrag
|
||||
class="chengdou-03__systerm stand-stop-time"
|
||||
:title="title"
|
||||
:visible.sync="show"
|
||||
width="480px"
|
||||
:before-close="doClose"
|
||||
:z-index="2000"
|
||||
:modal="false"
|
||||
:close-on-click-modal="false"
|
||||
>
|
||||
<div class="el-dialog-div">
|
||||
<el-form ref="form" size="small" label-width="80px" :model="addModel" :rules="rules" label-position="left">
|
||||
<el-row>
|
||||
<el-col :span="11">
|
||||
<el-form-item prop="stationName">
|
||||
<span slot="label">车站</span>
|
||||
<el-input v-model="addModel.stationName" :disabled="true" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="11" :offset="1">
|
||||
<el-form-item prop="trainWindowCode">
|
||||
<span slot="label">车次窗</span>
|
||||
<el-input v-model="addModel.trainWindowCode" :disabled="true" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="11">
|
||||
<el-form-item label="车 组 号:" prop="groupNumber">
|
||||
<el-select v-model="addModel.groupNumber" filterable>
|
||||
<el-option
|
||||
v-for="train in trainList"
|
||||
:key="train.groupNumber"
|
||||
:label="train.groupNumber"
|
||||
:value="train.groupNumber"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
</div>
|
||||
<el-row justify="center" class="button-group">
|
||||
<el-col :span="10" :offset="2">
|
||||
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
|
||||
</el-col>
|
||||
<el-col :span="8" :offset="4">
|
||||
<el-button :id="domIdCancel" @click="cancel">取 消</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapGetters } from 'vuex';
|
||||
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
||||
import CancelMouseState from '@/mixin/CancelMouseState';
|
||||
|
||||
export default {
|
||||
name: 'TrainCreateNumber',
|
||||
mixins: [
|
||||
CancelMouseState
|
||||
],
|
||||
data() {
|
||||
return {
|
||||
trainNoList: [],
|
||||
trainList: [],
|
||||
selected: null,
|
||||
addModel: {
|
||||
stationName:'',
|
||||
trainWindowCode: '',
|
||||
groupNumber:''
|
||||
},
|
||||
|
||||
rules: {
|
||||
groupNumber: [
|
||||
{ required: true, message: '请输入车组号', trigger: 'blur'}
|
||||
]
|
||||
},
|
||||
dialogShow: false,
|
||||
loading: false
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapGetters('map', [
|
||||
'stationStandList'
|
||||
]),
|
||||
show() {
|
||||
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||
},
|
||||
domIdCancel() {
|
||||
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
|
||||
},
|
||||
domIdConfirm() {
|
||||
return this.dialogShow ? OperationEvent.Train.editTrainNo.menu.domId : '';
|
||||
},
|
||||
title() {
|
||||
return '新建车组号';
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
loadInitData(map) {
|
||||
},
|
||||
doShow(operate, selected) {
|
||||
this.selected = selected;
|
||||
// 如果不是断点激活,则需要对初始值进行初始化
|
||||
if (!this.dialogShow) {
|
||||
this.addModel = {
|
||||
stationName:'',
|
||||
trainWindowCode: '',
|
||||
groupNumber:''
|
||||
};
|
||||
}
|
||||
this.dialogShow = true;
|
||||
this.$nextTick(function () {
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
});
|
||||
},
|
||||
doClose() {
|
||||
this.loading = false;
|
||||
this.dialogShow = false;
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
this.$store.dispatch('map/setTrainWindowShow', false);
|
||||
this.mouseCancelState(this.selected);
|
||||
},
|
||||
commit() {
|
||||
this.$refs['form'].validate((valid) => {
|
||||
if (valid) {
|
||||
const operate = {
|
||||
send: true,
|
||||
|
||||
operation: OperationEvent.Train.createTrainNo.menu.operation
|
||||
};
|
||||
|
||||
this.loading = true;
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
this.loading = false;
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch(() => {
|
||||
this.loading = false;
|
||||
this.doClose();
|
||||
// this.$refs.noticeInfo.doShow();
|
||||
});
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
},
|
||||
cancel() {
|
||||
const operate = {
|
||||
|
||||
operation: OperationEvent.Command.cancel.menu.operation
|
||||
};
|
||||
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch(() => { this.doClose(); });
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style scoped>
|
||||
.chengdou-03__systerm .el-dialog .base-label {
|
||||
background: rgba(0, 0, 0, x);
|
||||
position: relative;
|
||||
left: -5px;
|
||||
top: -18px;
|
||||
padding: 0 5px;
|
||||
background-color: #F0F0F0;
|
||||
}
|
||||
.el-dialog-div {
|
||||
height: 400px;
|
||||
overflow: auto;
|
||||
}
|
||||
</style>
|
@ -1,150 +0,0 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
v-dialogDrag
|
||||
class="chengdou-03__systerm stand-stop-time"
|
||||
:title="title"
|
||||
:visible.sync="show"
|
||||
width="320px"
|
||||
:before-close="doClose"
|
||||
:z-index="2000"
|
||||
:modal="false"
|
||||
:close-on-click-modal="false"
|
||||
>
|
||||
<el-form ref="form" size="small" label-width="90px" :model="addModel" :rules="rules">
|
||||
<el-form-item label="车 组 号:" prop="groupNumber">
|
||||
<el-input v-model="addModel.groupNumber" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-row justify="center" class="button-group">
|
||||
<el-col :span="10" :offset="2">
|
||||
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
|
||||
</el-col>
|
||||
<el-col :span="8" :offset="4">
|
||||
<el-button :id="domIdCancel" @click="cancel">取 消</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<confirm-control ref="confirmControl" />
|
||||
<notice-info ref="noticeInfo" pop-class="chengdou-03__systerm" />
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapGetters } from 'vuex';
|
||||
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
||||
// import { getPublishMapTrainNos } from '@/api/runplan';
|
||||
import CancelMouseState from '@/mixin/CancelMouseState';
|
||||
import ConfirmControl from './childDialog/confirmControl';
|
||||
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
|
||||
|
||||
export default {
|
||||
name: 'TrainDelete',
|
||||
components: {
|
||||
ConfirmControl,
|
||||
NoticeInfo
|
||||
},
|
||||
mixins: [
|
||||
CancelMouseState
|
||||
],
|
||||
data() {
|
||||
return {
|
||||
trainNoList: [],
|
||||
selected: null,
|
||||
addModel: {
|
||||
groupNumber: ''
|
||||
},
|
||||
|
||||
rules: {
|
||||
groupNumber: [
|
||||
{ required: true, message: '请输入车组号', trigger: 'blur' }
|
||||
]
|
||||
},
|
||||
operation: null,
|
||||
dialogShow: false,
|
||||
loading: false
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapGetters('map', [
|
||||
'map'
|
||||
]),
|
||||
show() {
|
||||
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||
},
|
||||
domIdCancel() {
|
||||
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
|
||||
},
|
||||
domIdConfirm() {
|
||||
return this.dialogShow ? OperationEvent.Train.delTrainId.menu.domId : '';
|
||||
},
|
||||
title() {
|
||||
return '删除列车识别号';
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
loadInitData(map) {
|
||||
if (map) {
|
||||
// getPublishMapTrainNos(map.skinCode).then(response => {
|
||||
// this.trainNoList = response.data;
|
||||
// }).catch(() => {
|
||||
// this.$messageBox(`获取列车车组号失败`);
|
||||
// });
|
||||
}
|
||||
},
|
||||
doShow(operate, selected) {
|
||||
this.selected = selected;
|
||||
// 如果不是断点激活,则需要对初始值进行初始化
|
||||
if (!this.dialogShow) {
|
||||
this.operation = operate.operation;
|
||||
}
|
||||
this.dialogShow = true;
|
||||
this.$nextTick(function () {
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
});
|
||||
},
|
||||
doClose() {
|
||||
this.loading = false;
|
||||
this.dialogShow = false;
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
this.$store.dispatch('map/setTrainWindowShow', false);
|
||||
mouseCancelState(this.selected);
|
||||
},
|
||||
commit() {
|
||||
this.$refs['form'].validate((valid) => {
|
||||
if (valid) {
|
||||
const operate = {
|
||||
send: true,
|
||||
|
||||
operation: OperationEvent.Train.delTrainId.menu.operation
|
||||
};
|
||||
|
||||
this.loading = true;
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
this.loading = false;
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch(() => {
|
||||
this.loading = false;
|
||||
this.doClose();
|
||||
this.$refs.noticeInfo.doShow();
|
||||
});
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
},
|
||||
cancel() {
|
||||
const operate = {
|
||||
|
||||
operation: OperationEvent.Command.cancel.menu.operation
|
||||
};
|
||||
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch(() => { this.doClose(); });
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
@ -1,176 +0,0 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
v-dialogDrag
|
||||
class="chengdou-03__systerm stand-stop-time"
|
||||
:title="title"
|
||||
:visible.sync="show"
|
||||
width="480px"
|
||||
:before-close="doClose"
|
||||
:z-index="2000"
|
||||
:modal="false"
|
||||
:close-on-click-modal="false"
|
||||
>
|
||||
<div class="el-dialog-div">
|
||||
<el-form ref="form" size="small" label-width="80px" :model="addModel" label-position="left">
|
||||
<el-row>
|
||||
<el-col :span="11">
|
||||
<el-form-item prop="stationName">
|
||||
<span slot="label">车站</span>
|
||||
<el-input v-model="addModel.stationName" :disabled="true" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="11" :offset="1">
|
||||
<el-form-item prop="trainWindowCode">
|
||||
<span slot="label">车次窗</span>
|
||||
<el-input v-model="addModel.trainWindowCode" :disabled="true" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="11">
|
||||
<el-form-item label="车 组 号:" prop="groupNumber">
|
||||
<el-select v-model="addModel.groupNumber" filterable disabled>
|
||||
<el-option
|
||||
v-for="train in trainList"
|
||||
:key="train.groupNumber"
|
||||
:label="train.groupNumber"
|
||||
:value="train.groupNumber"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
</div>
|
||||
<el-row justify="center" class="button-group">
|
||||
<el-col :span="10" :offset="2">
|
||||
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
|
||||
</el-col>
|
||||
<el-col :span="8" :offset="4">
|
||||
<el-button :id="domIdCancel" @click="cancel">取 消</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapGetters } from 'vuex';
|
||||
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
||||
import CancelMouseState from '@/mixin/CancelMouseState';
|
||||
|
||||
export default {
|
||||
name: 'TrainDeleteNumber',
|
||||
mixins: [
|
||||
CancelMouseState
|
||||
],
|
||||
data() {
|
||||
return {
|
||||
trainNoList: [],
|
||||
trainList: [],
|
||||
selected: null,
|
||||
addModel: {
|
||||
stationName:'',
|
||||
trainWindowCode: '',
|
||||
groupNumber:''
|
||||
},
|
||||
|
||||
dialogShow: false,
|
||||
loading: false
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapGetters('map', [
|
||||
'stationStandList'
|
||||
]),
|
||||
show() {
|
||||
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||
},
|
||||
domIdCancel() {
|
||||
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
|
||||
},
|
||||
domIdConfirm() {
|
||||
return this.dialogShow ? OperationEvent.Train.editTrainNo.menu.domId : '';
|
||||
},
|
||||
title() {
|
||||
return '删除车组号';
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
loadInitData(map) {
|
||||
},
|
||||
doShow(operate, selected) {
|
||||
this.selected = selected;
|
||||
// 如果不是断点激活,则需要对初始值进行初始化
|
||||
if (!this.dialogShow) {
|
||||
this.addModel = {
|
||||
stationName:'',
|
||||
trainWindowCode: '',
|
||||
groupNumber:''
|
||||
};
|
||||
}
|
||||
this.dialogShow = true;
|
||||
this.$nextTick(function () {
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
});
|
||||
},
|
||||
doClose() {
|
||||
this.loading = false;
|
||||
this.dialogShow = false;
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
this.$store.dispatch('map/setTrainWindowShow', false);
|
||||
this.mouseCancelState(this.selected);
|
||||
},
|
||||
commit() {
|
||||
this.$refs['form'].validate((valid) => {
|
||||
if (valid) {
|
||||
const operate = {
|
||||
send: true,
|
||||
|
||||
operation: OperationEvent.Train.deleteTrainNo.menu.operation
|
||||
};
|
||||
|
||||
this.loading = true;
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
this.loading = false;
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch(() => {
|
||||
this.loading = false;
|
||||
this.doClose();
|
||||
// this.$refs.noticeInfo.doShow();
|
||||
});
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
},
|
||||
cancel() {
|
||||
const operate = {
|
||||
|
||||
operation: OperationEvent.Command.cancel.menu.operation
|
||||
};
|
||||
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch(() => { this.doClose(); });
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style scoped>
|
||||
.chengdou-03__systerm .el-dialog .base-label {
|
||||
background: rgba(0, 0, 0, x);
|
||||
position: relative;
|
||||
left: -5px;
|
||||
top: -18px;
|
||||
padding: 0 5px;
|
||||
background-color: #F0F0F0;
|
||||
}
|
||||
.el-dialog-div {
|
||||
height: 400px;
|
||||
overflow: auto;
|
||||
}
|
||||
</style>
|
@ -1,378 +0,0 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
v-dialogDrag
|
||||
class="chengdou-03__systerm stand-stop-time"
|
||||
:title="title"
|
||||
:visible.sync="show"
|
||||
width="480px"
|
||||
:before-close="doClose"
|
||||
:z-index="2000"
|
||||
:modal="false"
|
||||
:close-on-click-modal="false"
|
||||
>
|
||||
<div class="el-dialog-div">
|
||||
<el-tabs v-model="activeName" type="card" @tab-click="handleClick">
|
||||
<el-tab-pane :id="domIdBasicInfo" label="基本信息" name="first">
|
||||
<el-form ref="form" size="small" label-width="80px" :model="addModel" label-position="left">
|
||||
<el-row>
|
||||
<el-col :span="11">
|
||||
<el-form-item prop="groupNumber">
|
||||
<span slot="label">车组号</span>
|
||||
<el-input v-model="addModel.groupNumber" :disabled="true" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="11" :offset="1">
|
||||
<el-form-item prop="type">
|
||||
<span slot="label">服务类型</span>
|
||||
<el-input v-model="addModel.type" :disabled="true" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="11">
|
||||
<el-form-item prop="serviceNumber">
|
||||
<span slot="label">服务号</span>
|
||||
<el-input v-model="addModel.serviceNumber" :disabled="true" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="11" :offset="1">
|
||||
<el-form-item prop="trainCode">
|
||||
<span slot="label">序列号</span>
|
||||
<el-input v-model="addModel.trainCode" :disabled="true" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="11">
|
||||
<el-form-item prop="driverCode">
|
||||
<span slot="label">司机号</span>
|
||||
<el-input v-model="addModel.driverCode" :disabled="true" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="11" :offset="1">
|
||||
<el-form-item prop="targetCode">
|
||||
<span slot="label">目的地号</span>
|
||||
<el-input v-model="addModel.targetCode" :disabled="true" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="11">
|
||||
<el-form-item prop="stationName">
|
||||
<span slot="label">车站</span>
|
||||
<el-input v-model="addModel.stationName" :disabled="true" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="11" :offset="1">
|
||||
<el-form-item prop="sectionCode">
|
||||
<span slot="label">轨道</span>
|
||||
<el-input v-model="addModel.sectionCode" :disabled="true" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="11">
|
||||
<el-form-item prop="nextStation">
|
||||
<span slot="label">下一站</span>
|
||||
<el-input v-model="addModel.nextStation" :disabled="true" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="11" :offset="1">
|
||||
<el-form-item prop="targetName">
|
||||
<span slot="label">目的地</span>
|
||||
<el-input v-model="addModel.targetName" :disabled="true" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="11">
|
||||
<el-form-item prop="trackingMode">
|
||||
<span slot="label">跟踪模式</span>
|
||||
<el-input v-model="addModel.trackingMode" :disabled="true" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="11" :offset="1">
|
||||
<el-form-item prop="runStatus">
|
||||
<span slot="label">运行状态</span>
|
||||
<el-input v-model="addModel.runStatus" :disabled="true" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="11">
|
||||
<el-form-item prop="departureTime">
|
||||
<span slot="label">出发时刻</span>
|
||||
<el-input v-model="addModel.departureTime" :disabled="true" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="11" :offset="1">
|
||||
<el-form-item prop="arrivedTime">
|
||||
<span slot="label">到达时刻</span>
|
||||
<el-input v-model="addModel.arrivedTime" :disabled="true" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="11">
|
||||
<el-form-item prop="planDeviation">
|
||||
<span slot="label">计划偏离</span>
|
||||
<el-input v-model="addModel.planDeviation" :disabled="true" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane :id="domIdMarshalInfo" label="编组信息" name="second">
|
||||
<el-form ref="form" size="small" label-width="80px" :model="addModel" label-position="left">
|
||||
<el-row>
|
||||
<el-col :span="11">
|
||||
<el-form-item prop="marshallingNo">
|
||||
<span slot="label">编组号</span>
|
||||
<el-input v-model="addModel.marshallingNo" :disabled="true" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="11">
|
||||
<el-form-item prop="carNo1">
|
||||
<span slot="label">车头号1</span>
|
||||
<el-input v-model="addModel.carNo1" :disabled="true" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="11" :offset="1">
|
||||
<el-form-item prop="carNo2">
|
||||
<span slot="label">车头号2</span>
|
||||
<el-input v-model="addModel.carNo2" :disabled="true" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
<el-table :data="tableData" style="width: 100%" height="250">
|
||||
<el-table-column prop="carriage" label="车厢" width="80" />
|
||||
<el-table-column prop="carriageNumber" label="车厢号" width="80" />
|
||||
</el-table>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane :id="domIdAtpInfo" label="ATP信息" name="third">
|
||||
<el-form ref="form" size="small" label-width="80px" :model="addModel" label-position="left">
|
||||
<el-row>
|
||||
<el-col :span="11">
|
||||
<el-form-item prop="trainId">
|
||||
<span slot="label">车载ID</span>
|
||||
<el-input v-model="addModel.trainId" :disabled="true" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="11" :offset="1">
|
||||
<el-form-item prop="directionType">
|
||||
<span slot="label">运行方向</span>
|
||||
<el-input v-model="addModel.directionType" :disabled="true" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="11">
|
||||
<el-form-item prop="drivingMode">
|
||||
<span slot="label">驾驶模式</span>
|
||||
<el-input v-model="addModel.drivingMode" :disabled="true" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="11" :offset="1">
|
||||
<el-form-item prop="speed">
|
||||
<span slot="label">速度</span>
|
||||
<el-input v-model="addModel.speed" :disabled="true" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="11">
|
||||
<el-form-item prop="stopQuasiState">
|
||||
<span slot="label">停准状态</span>
|
||||
<el-input v-model="addModel.stopQuasiState" :disabled="true" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="11" :offset="1">
|
||||
<el-form-item prop="doorStatus">
|
||||
<span slot="label">车门状态</span>
|
||||
<el-input v-model="addModel.doorStatus" :disabled="true" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="11">
|
||||
<el-form-item prop="runLevel">
|
||||
<span slot="label">运行等级</span>
|
||||
<el-input v-model="addModel.runLevel" :disabled="true" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="11" :offset="1">
|
||||
<el-form-item prop="stopState">
|
||||
<span slot="label">停跳状态</span>
|
||||
<el-input v-model="addModel.stopState" :disabled="true" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="11">
|
||||
<el-form-item prop="position">
|
||||
<span slot="label">车头位置</span>
|
||||
<el-input v-model="addModel.position" :disabled="true" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="11" :offset="1">
|
||||
<el-form-item prop="loadingRate">
|
||||
<span slot="label">载重率</span>
|
||||
<el-input v-model="addModel.loadingRate" :disabled="true" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane :id="domIdCarAlarm" label="车辆报警" name="fourth" />
|
||||
</el-tabs>
|
||||
</div>
|
||||
<el-row justify="center" class="button-group">
|
||||
<el-col :span="4" :offset="19">
|
||||
<el-button :id="domIdCancel" @click="cancel">退出</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapGetters } from 'vuex';
|
||||
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
||||
import CancelMouseState from '@/mixin/CancelMouseState';
|
||||
|
||||
export default {
|
||||
name: 'TrainDetailInfo',
|
||||
mixins: [
|
||||
CancelMouseState
|
||||
],
|
||||
data() {
|
||||
return {
|
||||
trainNoList: [],
|
||||
trainList: [],
|
||||
selected: null,
|
||||
addModel: {
|
||||
stationName:'',
|
||||
groupNumber:'',
|
||||
type:'',
|
||||
serviceNumber:'',
|
||||
trainCode:'',
|
||||
driverCode:'',
|
||||
targetCode:'',
|
||||
sectionCode:'',
|
||||
nextStation:'',
|
||||
targetName:'',
|
||||
trackingMode:'',
|
||||
runStatus:'',
|
||||
departureTime:'',
|
||||
arrivedTime:'',
|
||||
planDeviation:'',
|
||||
marshallingNo:'',
|
||||
carNo1:'',
|
||||
carNo2:'',
|
||||
trainId:'',
|
||||
directionType:'',
|
||||
drivingMode:'',
|
||||
speed:'',
|
||||
stopQuasiState:'',
|
||||
doorStatus:'',
|
||||
runLevel:'',
|
||||
stopState:'',
|
||||
position:'',
|
||||
loadingRate:''
|
||||
},
|
||||
activeName:'first',
|
||||
dialogShow: false,
|
||||
loading: false,
|
||||
tableData:[
|
||||
{carriage:'1', carriageNumber:'101'},
|
||||
{carriage:'2', carriageNumber:'102'},
|
||||
{carriage:'3', carriageNumber:'103'},
|
||||
{carriage:'4', carriageNumber:'104'},
|
||||
{carriage:'5', carriageNumber:'105'},
|
||||
{carriage:'6', carriageNumber:'106'}
|
||||
]
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapGetters('map', [
|
||||
'stationStandList'
|
||||
]),
|
||||
show() {
|
||||
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||
},
|
||||
domIdCancel() {
|
||||
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
|
||||
},
|
||||
domIdCarAlarm() {
|
||||
return this.dialogShow ? OperationEvent.Train.detailTrainInfo.carAlarm.domId : '';
|
||||
},
|
||||
domIdBasicInfo() {
|
||||
return this.dialogShow ? OperationEvent.Train.detailTrainInfo.basicInfo.domId : '';
|
||||
},
|
||||
domIdMarshalInfo() {
|
||||
return this.dialogShow ? OperationEvent.Train.detailTrainInfo.marshalInfo.domId : '';
|
||||
},
|
||||
domIdAtpInfo() {
|
||||
return this.dialogShow ? OperationEvent.Train.detailTrainInfo.atpInfo.domId : '';
|
||||
},
|
||||
title() {
|
||||
return '列车信息显示';
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
doShow(operate, selected) {
|
||||
this.selected = selected;
|
||||
// 如果不是断点激活,则需要对初始值进行初始化
|
||||
if (!this.dialogShow) {
|
||||
this.addModel = {
|
||||
stationName:'',
|
||||
tripNumber: '',
|
||||
groupNumber:''
|
||||
};
|
||||
}
|
||||
this.dialogShow = true;
|
||||
this.$nextTick(function () {
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
});
|
||||
},
|
||||
doClose() {
|
||||
this.loading = false;
|
||||
this.dialogShow = false;
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
this.$store.dispatch('map/setTrainWindowShow', false);
|
||||
this.mouseCancelState(this.selected);
|
||||
},
|
||||
handleClick() {
|
||||
|
||||
},
|
||||
cancel() {
|
||||
const operate = {
|
||||
|
||||
operation: OperationEvent.Command.cancel.menu.operation
|
||||
};
|
||||
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch(() => { this.doClose(); });
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style scoped>
|
||||
.chengdou-03__systerm .el-dialog .base-label {
|
||||
background: rgba(0, 0, 0, x);
|
||||
position: relative;
|
||||
left: -5px;
|
||||
top: -18px;
|
||||
padding: 0 5px;
|
||||
background-color: #F0F0F0;
|
||||
}
|
||||
.el-dialog-div {
|
||||
height: 400px;
|
||||
overflow: auto;
|
||||
}
|
||||
</style>
|
@ -1,174 +0,0 @@
|
||||
<template>
|
||||
<el-dialog v-dialogDrag class="chengdou-03__systerm stand-stop-time" :title="title" :visible.sync="show" width="480px" :before-close="doClose" :z-index="2000" :modal="false" :close-on-click-modal="false">
|
||||
<div class="el-dialog-div">
|
||||
<el-form ref="form" size="small" label-width="80px" :model="addModel" :rules="rules" label-position="left">
|
||||
<el-form-item>
|
||||
<el-col :span="11">
|
||||
<el-form-item prop="stationName">
|
||||
<span slot="label">车站</span>
|
||||
<el-input v-model="addModel.stationName" :disabled="true" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="11" :offset="1">
|
||||
<el-form-item prop="trainWindowCode">
|
||||
<span slot="label">车次窗</span>
|
||||
<el-input v-model="addModel.trainWindowCode" :disabled="true" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-form-item>
|
||||
<el-row>
|
||||
<el-col :span="11">
|
||||
<el-form-item label="旧车组号" prop="oldGroupNumber">
|
||||
<el-select v-model="addModel.oldGroupNumber" filterable disabled>
|
||||
<el-option v-for="train in trainList" :key="train.oldGroupNumber" :label="train.oldGroupNumber" :value="train.oldGroupNumber" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="11" :offset="1">
|
||||
<el-form-item label="新车组号" prop="newGroupNumber">
|
||||
<el-select v-model="addModel.newGroupNumber">
|
||||
<el-option v-for="train in trainList" :key="train.newGroupNumber" :label="train.newGroupNumber" :value="train.newGroupNumber" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
</div>
|
||||
<el-row justify="center" class="button-group-train">
|
||||
<el-col :span="10" :offset="2">
|
||||
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
|
||||
</el-col>
|
||||
<el-col :span="8" :offset="4">
|
||||
<el-button :id="domIdCancel" @click="cancel">取 消</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapGetters } from 'vuex';
|
||||
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
||||
import CancelMouseState from '@/mixin/CancelMouseState';
|
||||
|
||||
export default {
|
||||
name: 'TrainEditNumber',
|
||||
mixins: [
|
||||
CancelMouseState
|
||||
],
|
||||
data() {
|
||||
return {
|
||||
trainNoList: [],
|
||||
trainList: [],
|
||||
selected: null,
|
||||
addModel: {
|
||||
stationName: '',
|
||||
trainWindowCode: '',
|
||||
oldGroupNumber: '',
|
||||
newGroupNumber: ''
|
||||
},
|
||||
|
||||
rules: {
|
||||
newGroupNumber: [
|
||||
{ required: true, message: '请输入新车组号', trigger: 'blur'}
|
||||
]
|
||||
},
|
||||
dialogShow: false,
|
||||
loading: false
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapGetters('map', [
|
||||
'stationStandList'
|
||||
]),
|
||||
show() {
|
||||
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||
},
|
||||
domIdCancel() {
|
||||
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
|
||||
},
|
||||
domIdConfirm() {
|
||||
return this.dialogShow ? OperationEvent.Train.editTrainNo.menu.domId : '';
|
||||
},
|
||||
title() {
|
||||
return '修改车组号';
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
loadInitData(map) {
|
||||
},
|
||||
doShow(operate, selected) {
|
||||
this.selected = selected;
|
||||
// 如果不是断点激活,则需要对初始值进行初始化
|
||||
if (!this.dialogShow) {
|
||||
this.addModel = {
|
||||
stationName: '',
|
||||
trainWindowCode: '',
|
||||
oldGroupNumber: '',
|
||||
newGroupNumber: ''
|
||||
};
|
||||
}
|
||||
this.dialogShow = true;
|
||||
this.$nextTick(function () {
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
});
|
||||
},
|
||||
doClose() {
|
||||
this.loading = false;
|
||||
this.dialogShow = false;
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
this.$store.dispatch('map/setTrainWindowShow', false);
|
||||
this.mouseCancelState(this.selected);
|
||||
},
|
||||
commit() {
|
||||
this.$refs['form'].validate((valid) => {
|
||||
if (valid) {
|
||||
const operate = {
|
||||
send: true,
|
||||
|
||||
operation: OperationEvent.Train.editTrainNo.menu.operation
|
||||
};
|
||||
|
||||
this.loading = true;
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
this.loading = false;
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch(() => {
|
||||
this.loading = false;
|
||||
this.doClose();
|
||||
});
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
},
|
||||
cancel() {
|
||||
const operate = {
|
||||
|
||||
operation: OperationEvent.Command.cancel.menu.operation
|
||||
};
|
||||
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch(() => { this.doClose(); });
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style scoped>
|
||||
.chengdou-03__systerm .el-dialog .base-label {
|
||||
background: rgba(0, 0, 0, x);
|
||||
position: relative;
|
||||
left: -5px;
|
||||
top: -18px;
|
||||
padding: 0 5px;
|
||||
background-color: #F0F0F0;
|
||||
}
|
||||
.el-dialog-div {
|
||||
height: 400px;
|
||||
overflow: auto;
|
||||
}
|
||||
</style>
|
@ -1,200 +0,0 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
v-dialogDrag
|
||||
class="chengdou-03__systerm stand-stop-time"
|
||||
:title="title"
|
||||
:visible.sync="show"
|
||||
width="640px"
|
||||
:before-close="doClose"
|
||||
:z-index="2000"
|
||||
:modal="false"
|
||||
:close-on-click-modal="false"
|
||||
>
|
||||
<el-form ref="form" size="small" label-width="80px" :model="addModel" :rules="rules">
|
||||
<div style="width: 46%;">
|
||||
<el-form-item label="车 组 号:" label-width="95px" prop="tripNumber">
|
||||
<el-input v-model="addModel.tripNumber" disabled />
|
||||
</el-form-item>
|
||||
</div>
|
||||
<div style="overflow: hidden;">
|
||||
<div
|
||||
style="width: 48%; float: left; padding: 10px 15px; border: 1px double lightgray; margin: 20px 0px; height: 120px; margin-right: 4%;"
|
||||
>
|
||||
<span class="base-label">源车次窗</span>
|
||||
<div style="position: relative; top:-10px;">
|
||||
<el-form-item prop="stationStandSource">
|
||||
<span slot="label">车  站:</span>
|
||||
<el-select v-model="addModel.stationStandSource" filterable placeholder="请选择">
|
||||
<el-option
|
||||
v-for="item in stationStandList"
|
||||
:key="item.code"
|
||||
:label="item.name"
|
||||
:value="item.code"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="车 次 窗:" prop="trainSource">
|
||||
<el-input v-model="addModel.trainSource" />
|
||||
</el-form-item>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
style="width: 48%; float: left; padding: 10px 15px; border: 1px double lightgray; margin: 20px 0px; height: 120px;"
|
||||
>
|
||||
<span class="base-label">目的车次窗</span>
|
||||
<div style="position: relative; top:-10px;">
|
||||
<el-form-item prop="stationStandGoal">
|
||||
<span slot="label">车  站:</span>
|
||||
<el-select v-model="addModel.stationStandGoal" filterable placeholder="请选择">
|
||||
<el-option
|
||||
v-for="item in stationStandList"
|
||||
:key="item.code"
|
||||
:label="item.name"
|
||||
:value="item.code"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="车 次 窗:" prop="trainGoal">
|
||||
<el-input v-model="addModel.trainGoal" />
|
||||
</el-form-item>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</el-form>
|
||||
<el-row justify="center" class="button-group">
|
||||
<el-col :span="10" :offset="2">
|
||||
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
|
||||
</el-col>
|
||||
<el-col :span="8" :offset="4">
|
||||
<el-button :id="domIdCancel" @click="cancel">取 消</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapGetters } from 'vuex';
|
||||
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
||||
import CancelMouseState from '@/mixin/CancelMouseState';
|
||||
|
||||
export default {
|
||||
name: 'TrainMove',
|
||||
mixins: [
|
||||
CancelMouseState
|
||||
],
|
||||
data() {
|
||||
return {
|
||||
trainNoList: [],
|
||||
selected: null,
|
||||
addModel: {
|
||||
tripNumber: '',
|
||||
trainSource: '',
|
||||
stationStandSource: '',
|
||||
trainGoal: '',
|
||||
stationStandGoal: ''
|
||||
},
|
||||
|
||||
rules: {
|
||||
tripNumber: [
|
||||
{ required: true, message: '请输入车组号', trigger: 'blur' }
|
||||
],
|
||||
trainSource: [
|
||||
{ required: true, message: '请输入车次号', trigger: 'blur' }
|
||||
],
|
||||
stationStandSource: [
|
||||
{ required: true, message: '请选择车站', trigger: 'change' }
|
||||
],
|
||||
trainGoal: [
|
||||
{ required: true, message: '请输入车次号', trigger: 'blur' }
|
||||
],
|
||||
stationStandGoal: [
|
||||
{ required: true, message: '请选择车站', trigger: 'change' }
|
||||
]
|
||||
},
|
||||
dialogShow: false,
|
||||
loading: false
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapGetters('map', [
|
||||
'stationStandList'
|
||||
]),
|
||||
show() {
|
||||
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||
},
|
||||
domIdCancel() {
|
||||
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
|
||||
},
|
||||
domIdConfirm() {
|
||||
return this.dialogShow ? OperationEvent.Train.moveTrainId.menu.domId : '';
|
||||
},
|
||||
title() {
|
||||
return '移动列车识别号';
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
doShow(operate, selected) {
|
||||
this.selected = selected;
|
||||
// 如果不是断点激活,则需要对初始值进行初始化
|
||||
this.dialogShow = true;
|
||||
this.$nextTick(function () {
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
});
|
||||
},
|
||||
doClose() {
|
||||
this.loading = false;
|
||||
this.dialogShow = false;
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
this.$store.dispatch('map/setTrainWindowShow', false);
|
||||
this.mouseCancelState(this.selected);
|
||||
},
|
||||
commit() {
|
||||
this.$refs['form'].validate((valid) => {
|
||||
if (valid) {
|
||||
const operate = {
|
||||
send: true,
|
||||
|
||||
operation: OperationEvent.Train.moveTrainId.menu.operation
|
||||
};
|
||||
|
||||
this.loading = true;
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
this.loading = false;
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch(() => {
|
||||
this.loading = false;
|
||||
this.doClose();
|
||||
// this.$refs.noticeInfo.doShow();
|
||||
});
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
},
|
||||
cancel() {
|
||||
const operate = {
|
||||
|
||||
operation: OperationEvent.Command.cancel.menu.operation
|
||||
};
|
||||
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch(() => { this.doClose(); });
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style scoped>
|
||||
.chengdou-03__systerm .el-dialog .base-label {
|
||||
background: rgba(0, 0, 0, x);
|
||||
position: relative;
|
||||
left: -5px;
|
||||
top: -18px;
|
||||
padding: 0 5px;
|
||||
background-color: #F0F0F0;
|
||||
}
|
||||
</style>
|
@ -1,193 +0,0 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
v-dialogDrag
|
||||
class="chengdou-03__systerm stand-stop-time"
|
||||
:title="title"
|
||||
:visible.sync="show"
|
||||
width="480px"
|
||||
:before-close="doClose"
|
||||
:z-index="2000"
|
||||
:modal="false"
|
||||
:close-on-click-modal="false"
|
||||
>
|
||||
<div class="el-dialog-div">
|
||||
<el-form ref="form" size="small" label-width="90px" :model="addModel" label-position="left">
|
||||
<el-row>
|
||||
<el-col :span="11">
|
||||
<el-form-item prop="stationName">
|
||||
<span slot="label">车站</span>
|
||||
<el-input v-model="addModel.stationName" :disabled="true" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="11" :offset="1">
|
||||
<el-form-item prop="trainWindowCode">
|
||||
<span slot="label">车次窗</span>
|
||||
<el-input v-model="addModel.trainWindowCode" :disabled="true" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="11">
|
||||
<el-form-item label="车 组 号:" prop="groupNumber">
|
||||
<el-select v-model="addModel.groupNumber" filterable disabled>
|
||||
<el-option
|
||||
v-for="train in trainList"
|
||||
:key="train.groupNumber"
|
||||
:label="train.groupNumber"
|
||||
:value="train.groupNumber"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="11">
|
||||
<el-form-item prop="purposeStationName">
|
||||
<span slot="label">车站</span>
|
||||
<el-input v-model="addModel.purposeStationName" :disabled="true" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="11" :offset="1">
|
||||
<el-form-item prop="purposeTrainWindowCode">
|
||||
<span slot="label">目的车次窗</span>
|
||||
<el-input v-model="addModel.purposeTrainWindowCode" :disabled="true" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
</div>
|
||||
<el-row justify="center" class="button-group">
|
||||
<el-col :span="10" :offset="2">
|
||||
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
|
||||
</el-col>
|
||||
<el-col :span="8" :offset="4">
|
||||
<el-button :id="domIdCancel" @click="cancel">取 消</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapGetters } from 'vuex';
|
||||
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
||||
import CancelMouseState from '@/mixin/CancelMouseState';
|
||||
|
||||
export default {
|
||||
name: 'TrainMoveNumber',
|
||||
mixins: [
|
||||
CancelMouseState
|
||||
],
|
||||
data() {
|
||||
return {
|
||||
trainNoList: [],
|
||||
trainList: [],
|
||||
selected: null,
|
||||
addModel: {
|
||||
stationName: '',
|
||||
trainWindowCode: '',
|
||||
groupNumber: '',
|
||||
purposeStationName: '',
|
||||
purposeTrainWindowCode: ''
|
||||
},
|
||||
dialogShow: false,
|
||||
loading: false
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapGetters('map', [
|
||||
'stationStandList'
|
||||
]),
|
||||
show() {
|
||||
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||
},
|
||||
domIdCancel() {
|
||||
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
|
||||
},
|
||||
domIdConfirm() {
|
||||
return this.dialogShow ? OperationEvent.Train.editTrainNo.menu.domId : '';
|
||||
},
|
||||
title() {
|
||||
return '移动车组号';
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
loadInitData(map) {
|
||||
},
|
||||
doShow(operate, selected) {
|
||||
this.selected = selected;
|
||||
// 如果不是断点激活,则需要对初始值进行初始化
|
||||
if (!this.dialogShow) {
|
||||
this.addModel = {
|
||||
stationName: '',
|
||||
trainWindowCode: '',
|
||||
groupNumber: '',
|
||||
purposeStationName: '',
|
||||
purposeTrainWindowCode: ''
|
||||
};
|
||||
}
|
||||
this.dialogShow = true;
|
||||
this.$nextTick(function () {
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
});
|
||||
},
|
||||
doClose() {
|
||||
this.loading = false;
|
||||
this.dialogShow = false;
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
this.$store.dispatch('map/setTrainWindowShow', false);
|
||||
this.mouseCancelState(this.selected);
|
||||
},
|
||||
commit() {
|
||||
this.$refs['form'].validate((valid) => {
|
||||
if (valid) {
|
||||
const operate = {
|
||||
send: true,
|
||||
|
||||
operation: OperationEvent.Train.moveTrainNo.menu.operation
|
||||
};
|
||||
|
||||
this.loading = true;
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
this.loading = false;
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch(() => {
|
||||
this.loading = false;
|
||||
this.doClose();
|
||||
// this.$refs.noticeInfo.doShow();
|
||||
});
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
},
|
||||
cancel() {
|
||||
const operate = {
|
||||
|
||||
operation: OperationEvent.Command.cancel.menu.operation
|
||||
};
|
||||
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch(() => { this.doClose(); });
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style scoped>
|
||||
.chengdou-03__systerm .el-dialog .base-label {
|
||||
background: rgba(0, 0, 0, x);
|
||||
position: relative;
|
||||
left: -5px;
|
||||
top: -18px;
|
||||
padding: 0 5px;
|
||||
background-color: #F0F0F0;
|
||||
}
|
||||
.el-dialog-div {
|
||||
height: 400px;
|
||||
overflow: auto;
|
||||
}
|
||||
</style>
|
@ -1,209 +0,0 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
v-dialogDrag
|
||||
class="chengdou-03__systerm stand-stop-time"
|
||||
:title="title"
|
||||
:visible.sync="show"
|
||||
width="640px"
|
||||
:before-close="doClose"
|
||||
:z-index="2000"
|
||||
:modal="false"
|
||||
:close-on-click-modal="false"
|
||||
>
|
||||
<el-form ref="form" size="small" label-width="80px" :model="addModel" :rules="rules">
|
||||
<div style="overflow: hidden;">
|
||||
<div
|
||||
style="width: 48%; float: left; padding: 10px 15px; border: 1px double lightgray; margin: 20px 0px; height: 177px; margin-right: 4%;"
|
||||
>
|
||||
<span class="base-label">源车次窗</span>
|
||||
<div style="position: relative; top:-10px;">
|
||||
<el-form-item label="车 组 号:" prop="trainNumberSource">
|
||||
<el-input v-model="addModel.trainNumberSource" />
|
||||
</el-form-item>
|
||||
<el-form-item prop="stationStandSource">
|
||||
<span slot="label">车  站:</span>
|
||||
<el-select v-model="addModel.stationStandSource" filterable placeholder="请选择">
|
||||
<el-option
|
||||
v-for="item in stationStandList"
|
||||
:key="item.code"
|
||||
:label="item.name"
|
||||
:value="item.code"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="车 次 窗:" prop="trainSource">
|
||||
<el-input v-model="addModel.trainSource" />
|
||||
</el-form-item>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
style="width: 48%; float: left; padding: 10px 15px; border: 1px double lightgray; margin: 20px 0px; height: 177px;"
|
||||
>
|
||||
<span class="base-label">目的车次窗</span>
|
||||
<div style="position: relative; top:-10px;">
|
||||
<el-form-item label="车 组 号:" prop="trainNumberGoal">
|
||||
<el-input v-model="addModel.trainNumberGoal" />
|
||||
</el-form-item>
|
||||
<el-form-item prop="stationStandGoal">
|
||||
<span slot="label">车  站:</span>
|
||||
<el-select v-model="addModel.stationStandGoal" filterable placeholder="请选择">
|
||||
<el-option
|
||||
v-for="item in stationStandList"
|
||||
:key="item.code"
|
||||
:label="item.name"
|
||||
:value="item.code"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="车 次 窗:" prop="trainGoal">
|
||||
<el-input v-model="addModel.trainGoal" />
|
||||
</el-form-item>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</el-form>
|
||||
<el-row justify="center" class="button-group">
|
||||
<el-col :span="10" :offset="2">
|
||||
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
|
||||
</el-col>
|
||||
<el-col :span="8" :offset="4">
|
||||
<el-button :id="domIdCancel" @click="cancel">取 消</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapGetters } from 'vuex';
|
||||
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
||||
import CancelMouseState from '@/mixin/CancelMouseState';
|
||||
|
||||
export default {
|
||||
name: 'TrainSwitch',
|
||||
mixins: [
|
||||
CancelMouseState
|
||||
],
|
||||
data() {
|
||||
return {
|
||||
trainNoList: [],
|
||||
selected: null,
|
||||
addModel: {
|
||||
trainNumberSource: '',
|
||||
trainSource: '',
|
||||
stationStandSource: '',
|
||||
trainGoal: '',
|
||||
stationStandGoal: '',
|
||||
trainNumberGoal: ''
|
||||
},
|
||||
|
||||
rules: {
|
||||
trainNumberSource: [
|
||||
{ required: true, message: '请输入车组号', trigger: 'blur' }
|
||||
],
|
||||
trainSource: [
|
||||
{ required: true, message: '请输入车次号', trigger: 'blur' }
|
||||
],
|
||||
stationStandSource: [
|
||||
{ required: true, message: '请选择车站', trigger: 'change' }
|
||||
],
|
||||
trainNumberGoal: [
|
||||
{ required: true, message: '请输入车组号', trigger: 'blur' }
|
||||
],
|
||||
trainGoal: [
|
||||
{ required: true, message: '请输入车次号', trigger: 'blur' }
|
||||
],
|
||||
stationStandGoal: [
|
||||
{ required: true, message: '请选择车站', trigger: 'change' }
|
||||
]
|
||||
},
|
||||
dialogShow: false,
|
||||
loading: false
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapGetters('map', [
|
||||
'stationStandList'
|
||||
]),
|
||||
show() {
|
||||
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||
},
|
||||
domIdCancel() {
|
||||
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
|
||||
},
|
||||
domIdConfirm() {
|
||||
return this.dialogShow ? OperationEvent.Train.moveTrainId.menu.domId : '';
|
||||
},
|
||||
title() {
|
||||
return '移动列车识别号';
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
doShow(operate, selected) {
|
||||
this.selected = selected;
|
||||
// 如果不是断点激活,则需要对初始值进行初始化
|
||||
if (!this.dialogShow) {
|
||||
|
||||
}
|
||||
this.dialogShow = true;
|
||||
this.$nextTick(function () {
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
});
|
||||
},
|
||||
doClose() {
|
||||
this.loading = false;
|
||||
this.dialogShow = false;
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
this.$store.dispatch('map/setTrainWindowShow', false);
|
||||
this.mouseCancelState(this.selected);
|
||||
},
|
||||
commit() {
|
||||
this.$refs['form'].validate((valid) => {
|
||||
if (valid) {
|
||||
const operate = {
|
||||
send: true,
|
||||
|
||||
operation: OperationEvent.Train.moveTrainId.menu.operation
|
||||
};
|
||||
|
||||
this.loading = true;
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
this.loading = false;
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch(error => {
|
||||
this.loading = false;
|
||||
this.doClose();
|
||||
console.error(error);
|
||||
// this.$refs.noticeInfo.doShow();
|
||||
});
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
},
|
||||
cancel() {
|
||||
const operate = {
|
||||
|
||||
operation: OperationEvent.Command.cancel.menu.operation
|
||||
};
|
||||
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch(error => { this.doClose(); });
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style scoped>
|
||||
.chengdou-03__systerm .el-dialog .base-label {
|
||||
background: rgba(0, 0, 0, x);
|
||||
position: relative;
|
||||
left: -5px;
|
||||
top: -18px;
|
||||
padding: 0 5px;
|
||||
background-color: #F0F0F0;
|
||||
}
|
||||
</style>
|
@ -1,364 +0,0 @@
|
||||
<template>
|
||||
<div class="menus" :style="{width: width + 'px'}">
|
||||
<!--<menu-bar v-show="isShowBar" ref="menuBar" :selected="selected" />-->
|
||||
<menu-button ref="menuButton" :selected="selected" />
|
||||
<menu-station-stand ref="menuStationStand" :selected="selected" />
|
||||
<menu-switch ref="menuSwitch" :selected="selected" />
|
||||
<menu-signal ref="menuSignal" :selected="selected" />
|
||||
<menu-section ref="menuSection" :selected="selected" />
|
||||
<menu-train ref="menuTrain" :selected="selected" />
|
||||
<menu-station ref="menuStation" :selected="selected" />
|
||||
<passive-alarm ref="passiveAlarm" />
|
||||
<passive-contorl ref="passiveControl" pop-class="chengdou-03__systerm" />
|
||||
<passive-Timeout ref="passiveTimeout" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapGetters } from 'vuex';
|
||||
import MenuSignal from './menuSignal';
|
||||
import MenuButton from './menuButton';
|
||||
import MenuStationStand from './menuStationStand';
|
||||
import MenuSwitch from './menuSwitch';
|
||||
import MenuSection from './menuSection';
|
||||
import MenuTrain from './menuTrain';
|
||||
import MenuStation from './menuStation';
|
||||
import MenuBar from './menuBar';
|
||||
import PassiveAlarm from './passiveDialog/alarm';
|
||||
import PassiveContorl from '@/jmapNew/theme/components/menus/passiveDialog/control';
|
||||
import PassiveTimeout from './passiveDialog/timeout';
|
||||
|
||||
export default {
|
||||
name: 'Menus',
|
||||
components: {
|
||||
MenuBar,
|
||||
MenuButton,
|
||||
MenuSignal,
|
||||
MenuSwitch,
|
||||
MenuSection,
|
||||
MenuStationStand,
|
||||
MenuStation,
|
||||
MenuTrain,
|
||||
PassiveAlarm,
|
||||
PassiveContorl,
|
||||
PassiveTimeout
|
||||
},
|
||||
props: {
|
||||
selected: {
|
||||
type: Object,
|
||||
default() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
...mapGetters('config', [
|
||||
'width'
|
||||
]),
|
||||
isShowBar() {
|
||||
return this.$store.state.training.prdType && this.$store.state.training.prdType !== '07';
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
isShowBar(val) {
|
||||
val && this.$store.dispatch('config/updateMenuBar');
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.$nextTick(() => {
|
||||
this.$store.dispatch('config/updateMenuBar');
|
||||
const _that = this;
|
||||
window.onclick = function (e) {
|
||||
if (!_that.$store.state.training.trainingStart) {
|
||||
_that.$refs.menuBar && _that.$refs.menuBar.blankClickClose();
|
||||
}
|
||||
_that.$refs.menuStationStand.doClose();
|
||||
_that.$refs.menuSwitch.doClose();
|
||||
_that.$refs.menuSignal.doClose();
|
||||
_that.$refs.menuSection.doClose();
|
||||
_that.$refs.menuTrain.doClose();
|
||||
_that.$refs.menuStation.doClose();
|
||||
};
|
||||
});
|
||||
},
|
||||
beforeDestroy() {
|
||||
window.onclick = function (e) {};
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.menus .pop-menu {
|
||||
background: #F0F0F0;
|
||||
}
|
||||
|
||||
.menus .pop-menu span {
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.menus .pop-menu .is-disabled span {
|
||||
color: #B4B3B8;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm {
|
||||
overflow: hidden !important;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog {
|
||||
background: #0055E8;
|
||||
box-shadow: 1px hsla(240, 0%, 100%, 0.5) inset;
|
||||
border: 1px solid rgb(69, 134, 247);
|
||||
border-radius: 6px;
|
||||
font-size: 13px !important;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog span {
|
||||
font-size: 13px !important;
|
||||
line-height: 22px;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog span .el-icon-arrow-up{
|
||||
line-height: 18px;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-dialog__footer {
|
||||
background: #ECE9D8;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-dialog__body {
|
||||
padding: 20px;
|
||||
margin: 0px 3px 3px;
|
||||
border: 2px solid rgba(120, 121, 123, 0.5);
|
||||
box-shadow: 1px hsla(240, 0%, 100%, 0.5) inset;
|
||||
background: #ECE9D8;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-dialog__title {
|
||||
font-size: 16px;
|
||||
color: #fff;
|
||||
position: absolute;
|
||||
top: 4px;
|
||||
left: 7px;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-dialog__headerbtn {
|
||||
background: linear-gradient(#CD98A0, #C27D6E, #B63022, #C68770);
|
||||
border: 1px solid #fff;
|
||||
border-radius: 4px;
|
||||
top: 6px;
|
||||
right: 3px;
|
||||
line-height: 16px;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-dialog__headerbtn .el-icon-close:before {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-dialog__headerbtn .el-dialog__close {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-button {
|
||||
height: 24px;
|
||||
line-height: 22px;
|
||||
padding: 0px;
|
||||
width: 80px;
|
||||
border: 2px outset #E2E2E2;
|
||||
border-radius: 4px !important;
|
||||
color: #000;
|
||||
background: #F0F0F0;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .expand {
|
||||
width: 120px;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-button:focus span {
|
||||
border: 1px dashed gray;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-button:active {
|
||||
border: 2px inset #E2E2E2;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-button:disabled {
|
||||
border: 2px inset #E2E2E2;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-button:disabled span {
|
||||
border: 0px;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-input {
|
||||
border: 2px inset #E9E9E9;
|
||||
height: 22px !important;
|
||||
line-height: 22px !important;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-input__inner {
|
||||
color: #000;
|
||||
background: #fff !important;
|
||||
border: 0px;
|
||||
border-radius: 0px !important;
|
||||
box-sizing: border-box;
|
||||
height: 22px !important;
|
||||
line-height: 22px !important;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-input.is-disabled .el-input__inner {
|
||||
background: #F0F0F0 !important;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-textarea {
|
||||
border: 2px inset #E9E9E9;
|
||||
border-radius: 0px;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-textarea .el-textarea__inner {
|
||||
color: #000;
|
||||
background: #fff !important;
|
||||
border: 0px;
|
||||
border-radius: 0px !important;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-textarea.is-disabled .el-textarea__inner {
|
||||
background: #F0F0F0 !important;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-table--border th.gutter {
|
||||
background: #EBEADB !important;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-table {
|
||||
border: 2px inset #E9E9E9;
|
||||
color: #000 !important;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-table .cell {
|
||||
height: 22px;
|
||||
line-height: 22px;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-table th.is-leaf {
|
||||
background: #F0F0F0 !important;
|
||||
border-right: 1px solid #BDBDBD !important;
|
||||
border-bottom: 1px solid #BDBDBD !important;
|
||||
color: #000 !important;
|
||||
height: 20px !important;
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-table tr td {
|
||||
height: 20px !important;
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-table .el-table__empty-text {
|
||||
top: 15px !important;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .current-row>td {
|
||||
background: #3399FF !important;
|
||||
color: #fff !important;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-checkbox__inner {
|
||||
border: 1px inset #dcdfe6 !important;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-checkbox__label {
|
||||
color: #000 !important;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-checkbox.is-disabled .el-checkbox__inner {
|
||||
background: #E6E6E6 !important;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-checkbox.is-disabled .el-checkbox__label {
|
||||
color: #C5C9CC !important;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-checkbox__input.is-checked .el-checkbox__inner {
|
||||
background: #fff !important;
|
||||
border: 1px inset #dcdfe6 !important;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-checkbox__input.is-checked .el-checkbox__inner::after {
|
||||
position: absolute;
|
||||
-webkit-box-sizing: content-box;
|
||||
box-sizing: content-box;
|
||||
content: "";
|
||||
border: 1px solid #000;
|
||||
border-left: 0;
|
||||
border-top: 0;
|
||||
height: 7px;
|
||||
left: 4px;
|
||||
top: 1px;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-radio__inner {
|
||||
border: 1px inset #dcdfe6 !important;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-radio__label {
|
||||
color: #000 !important;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-radio__input.is-checked .el-radio__inner {
|
||||
background: #fff !important;
|
||||
border: 1px inset #dcdfe6 !important;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-radio__input.is-checked .el-radio__inner::after {
|
||||
width: 4px;
|
||||
height: 4px;
|
||||
border-radius: 100%;
|
||||
background-color: #000 !important;
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-radio.is-disabled .el-radio__inner {
|
||||
background: #E6E6E6 !important;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-radio.is-disabled .el-radio__label {
|
||||
color: #C5C9CC !important;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .base-label {
|
||||
background: rgba(0, 0, 0, x);
|
||||
position: relative;
|
||||
left: -15px;
|
||||
top: -18px;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .el-form-item label {
|
||||
font-weight: normal !important;
|
||||
color: #000 !important;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .context {
|
||||
height: 100px;
|
||||
border: 2px inset #E2E2E2;
|
||||
overflow-y: scroll;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .table {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .notice {
|
||||
margin-left: 62px;
|
||||
line-height: 30px;
|
||||
}
|
||||
|
||||
.chengdou-03__systerm .el-dialog .button-group {
|
||||
margin-top: 20px;
|
||||
}
|
||||
</style>
|
@ -1,685 +0,0 @@
|
||||
<template>
|
||||
<div id="menuBarChengdu3">
|
||||
<menu-bar ref="menuBar" :menu-normal="menuNormal" style="width:100%" />
|
||||
<station-control-convert ref="stationControlConvert" />
|
||||
<password-box ref="passwordBox" @setLoginResult="getLoginResult" />
|
||||
<view-name ref="viewName" />
|
||||
<train-add ref="trainAdd" />
|
||||
<train-transtalet ref="trainTranstalet" />
|
||||
<train-delete ref="trainDelete" />
|
||||
<manage-user ref="manageUser" />
|
||||
<help-about ref="helpAbout" />
|
||||
<set-limit-speed ref="setLimitSpeed" />
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { mapGetters } from 'vuex';
|
||||
import MenuBar from '@/jmapNew/theme/components/menus/menuBar';
|
||||
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
||||
import StationControlConvert from './menuDialog/stationControlConvert';
|
||||
import TrainAdd from './menuDialog/trainAdd';
|
||||
import TrainTranstalet from './menuDialog/trainTranstalet';
|
||||
import TrainDelete from './menuDialog/trainDelete';
|
||||
import PasswordBox from './menuDialog/passwordBox';
|
||||
import ViewName from './menuDialog/viewName';
|
||||
import ManageUser from './menuDialog/manageUser';
|
||||
import HelpAbout from './menuDialog/helpAbout';
|
||||
import SetLimitSpeed from './menuDialog/setLimitSpeed';
|
||||
|
||||
export default {
|
||||
name: 'MenuBarChengdu03',
|
||||
components: {
|
||||
MenuBar,
|
||||
StationControlConvert,
|
||||
PasswordBox,
|
||||
ViewName,
|
||||
TrainAdd,
|
||||
TrainTranstalet,
|
||||
TrainDelete,
|
||||
ManageUser,
|
||||
HelpAbout,
|
||||
SetLimitSpeed
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
menuNormal: {
|
||||
Local: [
|
||||
{
|
||||
title: '系统',
|
||||
// operate: OperationEvent.Command.mBar.system,
|
||||
operate: '',
|
||||
children: [
|
||||
{
|
||||
title: '登录',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '注销',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
type: 'separator'
|
||||
},
|
||||
{
|
||||
title: '连接主用中心',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '连接备用中心',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
type: 'separator'
|
||||
},
|
||||
{
|
||||
title: '退出',
|
||||
click: this.undeveloped
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
title: '临时限速',
|
||||
operate: OperationEvent.Command.mBar.limitSpeed,
|
||||
children: [
|
||||
{
|
||||
title: '设置临时限速',
|
||||
operate: OperationEvent.Section.setLimitSpeed,
|
||||
click: this.setLimitSpeed
|
||||
},
|
||||
{
|
||||
title: '取消临时限速',
|
||||
operate: OperationEvent.Section.cancelSpeed,
|
||||
click: this.cancleLimitSpeed
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
title: '查看',
|
||||
// operate: OperationEvent.Command.mBar.check,
|
||||
operate: '',
|
||||
children: [
|
||||
{
|
||||
title: '运行图',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '报告分析',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
type: 'separator'
|
||||
},
|
||||
{
|
||||
title: '视图',
|
||||
click: this.undeveloped,
|
||||
operate: '',
|
||||
children: [{
|
||||
title: '报警',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '列车运行信息',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '设备状态',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '列车详细信息',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '站台详细信息',
|
||||
click: this.undeveloped
|
||||
}]
|
||||
},
|
||||
{
|
||||
title: '终端站发车列表',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '详细设备状态',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '查找列车',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
type: 'separator'
|
||||
},
|
||||
{
|
||||
title: '显示目的地号',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '显示轨道名',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '显示道岔名',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '显示信号机名',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '显示车次窗位置',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
type: 'separator'
|
||||
},
|
||||
{
|
||||
title: '显示车次号',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '显示车组号',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
type: 'separator'
|
||||
},
|
||||
{
|
||||
title: '全屏',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '放大',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '缩小',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '恢复',
|
||||
click: this.undeveloped
|
||||
}
|
||||
]
|
||||
},
|
||||
// {
|
||||
// title: '车站定位',
|
||||
// operate: '',
|
||||
// children: [
|
||||
// ]
|
||||
// },
|
||||
{
|
||||
title: '显示',
|
||||
// operate: OperationEvent.Command.mBar.view,
|
||||
operate: '',
|
||||
hide: true,
|
||||
children: [
|
||||
{
|
||||
title: '设置列车识别号显示',
|
||||
click: this.setTrainIdDisplay,
|
||||
operate: OperationEvent.Command.view.setTrainIdDisplay
|
||||
},
|
||||
{
|
||||
title: '设置名称显示',
|
||||
click: this.setNameDisplay,
|
||||
operate: OperationEvent.Command.view.setNameDisplay
|
||||
},
|
||||
{
|
||||
title: '设置设备显示',
|
||||
click: this.setDeviceDisplay,
|
||||
operate: OperationEvent.Command.view.setDeviceDisplay
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
title: 'ATS终端操作',
|
||||
operate: '',
|
||||
children: [
|
||||
{
|
||||
title: '当天运行车计划',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '出入库预告',
|
||||
click: this.undeveloped
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
title: '计划车操作',
|
||||
operate: '',
|
||||
children: [
|
||||
{
|
||||
title: '添加计划车',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '平移计划车',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '删除计划车',
|
||||
click: this.undeveloped
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
title: '批处理命令',
|
||||
operate: '',
|
||||
children: [
|
||||
{
|
||||
title: '全线扣车',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '取消全线扣车',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '取消上行全线扣车',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '取消下行全线扣车',
|
||||
click: this.undeveloped
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
title: '信息管理',
|
||||
operate: '',
|
||||
children: [
|
||||
{
|
||||
title: '调度日志',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '调度留言提醒',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '报警设置',
|
||||
click: this.undeveloped
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
title: '帮助',
|
||||
operate: '',
|
||||
children: [
|
||||
{
|
||||
title: '关于ITS GPC 工作站',
|
||||
click: this.about,
|
||||
operate: OperationEvent.Command.help.about
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
Center: [
|
||||
{
|
||||
title: '系统',
|
||||
operate: OperationEvent.Command.mBar.system,
|
||||
children: [
|
||||
{
|
||||
title: '登录',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '注销',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
type: 'separator'
|
||||
},
|
||||
{
|
||||
title: '连接主用中心',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '连接备用中心',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
type: 'separator'
|
||||
},
|
||||
{
|
||||
title: '退出',
|
||||
click: this.undeveloped
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
title: '临时限速',
|
||||
operate: OperationEvent.Command.mBar.limitSpeed,
|
||||
children: [
|
||||
{
|
||||
title: '设置临时限速',
|
||||
operate: OperationEvent.Section.setLimitSpeed,
|
||||
click: this.setLimitSpeed
|
||||
},
|
||||
{
|
||||
title: '取消临时限速',
|
||||
operate: OperationEvent.Section.cancelSpeed,
|
||||
click: this.cancleLimitSpeed
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
title: '查看',
|
||||
operate: OperationEvent.Command.mBar.check,
|
||||
children: [
|
||||
{
|
||||
title: '运行图',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '报告分析',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
type: 'separator'
|
||||
},
|
||||
{
|
||||
title: '视图',
|
||||
click: this.undeveloped,
|
||||
operate: '',
|
||||
children: [{
|
||||
title: '报警',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '列车运行信息',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '设备状态',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '列车详细信息',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '站台详细信息',
|
||||
click: this.undeveloped
|
||||
}]
|
||||
},
|
||||
{
|
||||
title: '终端站发车列表',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '详细设备状态',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '查找列车',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
type: 'separator'
|
||||
},
|
||||
{
|
||||
title: '显示目的地号',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '显示轨道名',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '显示道岔名',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '显示信号机名',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '显示车次窗位置',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
type: 'separator'
|
||||
},
|
||||
{
|
||||
title: '显示车次号',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '显示车组号',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
type: 'separator'
|
||||
},
|
||||
{
|
||||
title: '全屏',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '放大',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '缩小',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '恢复',
|
||||
click: this.undeveloped
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
title: '车站定位',
|
||||
operate: '',
|
||||
children: [
|
||||
]
|
||||
},
|
||||
{
|
||||
title: '显示',
|
||||
operate: OperationEvent.Command.mBar.view,
|
||||
hide: true,
|
||||
children: [
|
||||
{
|
||||
title: '设置列车识别号显示',
|
||||
click: this.setTrainIdDisplay,
|
||||
operate: OperationEvent.Command.view.setTrainIdDisplay
|
||||
},
|
||||
{
|
||||
title: '设置名称显示',
|
||||
click: this.setNameDisplay,
|
||||
operate: OperationEvent.Command.view.setNameDisplay
|
||||
},
|
||||
{
|
||||
title: '设置设备显示',
|
||||
click: this.setDeviceDisplay,
|
||||
operate: OperationEvent.Command.view.setDeviceDisplay
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
title: 'ATS终端操作',
|
||||
operate: '',
|
||||
children: [
|
||||
{
|
||||
title: '当天运行车计划',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '出入库预告',
|
||||
click: this.undeveloped
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
title: '计划车操作',
|
||||
operate: '',
|
||||
children: [
|
||||
{
|
||||
title: '添加计划车',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '平移计划车',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '删除计划车',
|
||||
click: this.undeveloped
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
title: '批处理命令',
|
||||
operate: '',
|
||||
children: [
|
||||
{
|
||||
title: '全线扣车',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '取消全线扣车',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '取消上行全线扣车',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '取消下行全线扣车',
|
||||
click: this.undeveloped
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
title: '信息管理',
|
||||
operate: '',
|
||||
children: [
|
||||
{
|
||||
title: '调度日志',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '调度留言提醒',
|
||||
click: this.undeveloped
|
||||
},
|
||||
{
|
||||
title: '报警设置',
|
||||
click: this.undeveloped
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
title: '帮助',
|
||||
operate: '',
|
||||
children: [
|
||||
{
|
||||
title: '关于ITS GPC 工作站',
|
||||
click: this.about,
|
||||
operate: OperationEvent.Command.help.about
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapGetters('map', [
|
||||
'stationList'
|
||||
])
|
||||
},
|
||||
created() {
|
||||
this.menuNormal['Center'][3].children = this.initStationList();
|
||||
},
|
||||
methods: {
|
||||
initStationList() {
|
||||
const list = [];
|
||||
this.stationList.forEach(station => {
|
||||
if (station.visible) {
|
||||
const node = {
|
||||
title: station.name,
|
||||
operate: station.code,
|
||||
show: true,
|
||||
click: this.mapLocation,
|
||||
code: station.code
|
||||
};
|
||||
|
||||
list.push(node);
|
||||
}
|
||||
});
|
||||
return list;
|
||||
},
|
||||
// 设置地图定位
|
||||
mapLocation(code) {
|
||||
if (code) {
|
||||
this.$store.dispatch('training/updateOffsetStationCode', { offsetStationCode: code });
|
||||
|
||||
}
|
||||
},
|
||||
// 关于
|
||||
about(order) {
|
||||
const operate = {
|
||||
operation: order.operate
|
||||
};
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||
this.$refs.helpAbout.doShow(operate);
|
||||
}
|
||||
});
|
||||
},
|
||||
getLoginResult(operate) {
|
||||
/** 密码校验*/
|
||||
if (operate.operation == OperationEvent.StationControl.forcedStationControl.passwordConfirm.operation) {
|
||||
if (operate.success) {
|
||||
/** 校验成功*/
|
||||
this.$refs.stationControlConvert.doShow({ operation: OperationEvent.StationControl.forcedStationControl.mbar.operation });
|
||||
}
|
||||
}
|
||||
},
|
||||
setLimitSpeed(order) {
|
||||
const operate = {
|
||||
operation: order.operate
|
||||
};
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||
this.$refs.setLimitSpeed.doShow(operate, true);
|
||||
}
|
||||
});
|
||||
},
|
||||
blankClickClose() {
|
||||
this.$refs.menuBar.doClose();
|
||||
},
|
||||
cancleLimitSpeed(order) {
|
||||
const operate = {
|
||||
operation: order.operate
|
||||
};
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||
this.$refs.setLimitSpeed.doShow(operate, false);
|
||||
}
|
||||
});
|
||||
},
|
||||
undeveloped() {
|
||||
this.$refs.menuBar.doClose();
|
||||
this.$alert('实现中......', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
callback: action => {
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style rel="stylesheet/scss" lang="scss">
|
||||
#menuBarChengdu3{
|
||||
line-height:30px;
|
||||
}
|
||||
#menuBarChengdu3 #menuBar .menu-li-block .label{
|
||||
padding: 0px 30px 0px 5px !important;
|
||||
}
|
||||
</style>
|
@ -1,133 +0,0 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
v-dialogDrag
|
||||
class="chengdou-03__systerm two-confirmation"
|
||||
title="二次确认"
|
||||
:visible.sync="show"
|
||||
width="360px"
|
||||
:before-close="doClose"
|
||||
:show-close="false"
|
||||
:z-index="2000"
|
||||
:modal="false"
|
||||
:close-on-click-modal="false"
|
||||
append-to-body
|
||||
>
|
||||
<div class="context">
|
||||
<template v-for="(message, index) in messages">
|
||||
<span :key="index">{{ message }}</span>
|
||||
</template>
|
||||
</div>
|
||||
<el-row class="button-group">
|
||||
<el-col :span="10" :offset="3">
|
||||
<el-button :id="show? domIdConfirm: ''" :loading="loading" @click="commit">确认</el-button>
|
||||
</el-col>
|
||||
<el-col :span="6" :offset="4">
|
||||
<el-button :id="domIdCancel" @click="cancel">关闭</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<notice-info ref="noticeInfo" />
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
||||
import OperationHandler from '@/scripts/cmdPlugin/OperationHandler';
|
||||
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
|
||||
|
||||
export default {
|
||||
name: 'TwoConfirmation',
|
||||
components: {
|
||||
NoticeInfo
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
dialogShow: false,
|
||||
loading: false,
|
||||
operate: '',
|
||||
timer: null,
|
||||
domIdConfirm: ''
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
show() {
|
||||
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||
},
|
||||
domIdCancel() {
|
||||
return this.dialogShow ? OperationEvent.Command.close.confirm.domId : '';
|
||||
},
|
||||
messages() {
|
||||
if (this.operate) {
|
||||
return this.operate.messages;
|
||||
}
|
||||
return [];
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
doShow(operate) {
|
||||
this.domIdConfirm = '';
|
||||
if (OperationHandler.checkOperationIsCurrentOperate(operate.operation, OperationEvent.StationControl.forcedStationControl)) {
|
||||
this.domIdConfirm = OperationEvent.StationControl.forcedStationControl.confirm.domId;
|
||||
} else if (OperationHandler.checkOperationIsCurrentOperate(operate.operation, OperationEvent.StationControl.requestStationControl)) {
|
||||
this.domIdConfirm = OperationEvent.StationControl.requestStationControl.confirm.domId;
|
||||
} else if (OperationHandler.checkOperationIsCurrentOperate(this.operation, OperationEvent.StationControl.requestCentralControl)) {
|
||||
this.domIdConfirm = OperationEvent.StationControl.requestCentralControl.confirm.domId;
|
||||
}
|
||||
|
||||
this.operate = operate || {};
|
||||
this.dialogShow = true;
|
||||
this.$nextTick(function () {
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
});
|
||||
},
|
||||
doClose() {
|
||||
this.dialogShow = false;
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
},
|
||||
cancel() {
|
||||
const operate = {
|
||||
type: this.operate.type,
|
||||
operation: OperationEvent.Command.close.confirm.operation
|
||||
};
|
||||
|
||||
this.$emit('setOperate', { selection: this.operate.selection, cancel: true });
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||
this.doClose();
|
||||
}
|
||||
});
|
||||
},
|
||||
commit() {
|
||||
if (this.operate && this.operate.selection) {
|
||||
const operate = {
|
||||
send: true,
|
||||
type: this.operate.type,
|
||||
val: this.operate.val,
|
||||
selection: this.operate.selection
|
||||
};
|
||||
|
||||
if (OperationHandler.checkOperationIsCurrentOperate(this.operate.operation, OperationEvent.StationControl.forcedStationControl)) {
|
||||
operate.operation = OperationEvent.StationControl.forcedStationControl.confirm.operation;
|
||||
} else if (OperationHandler.checkOperationIsCurrentOperate(this.operate.operation, OperationEvent.StationControl.requestStationControl)) {
|
||||
operate.operation = OperationEvent.StationControl.requestStationControl.confirm.operation;
|
||||
} else if (OperationHandler.checkOperationIsCurrentOperate(this.operate.operation, OperationEvent.StationControl.requestCentralControl)) {
|
||||
operate.operation = OperationEvent.StationControl.requestCentralControl.confirm.operation;
|
||||
}
|
||||
|
||||
this.loading = true;
|
||||
this.doClose();
|
||||
this.$emit('setOperate', { selection: this.operate.selection, commit: true });
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid, response }) => {
|
||||
if (valid) {
|
||||
this.loading = false;
|
||||
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||
}
|
||||
}, 1000).catch(() => {
|
||||
this.loading = true;
|
||||
this.$refs.noticeInfo.doShow();
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
@ -1,157 +0,0 @@
|
||||
<template>
|
||||
<el-dialog class="chengdou-03__systerm user-add" :title="title" :visible.sync="show" width="420px"
|
||||
:before-close="doClose" :zIndex="2000" :modal="false" :close-on-click-modal="false" append-to-body v-dialogDrag>
|
||||
<div style="padding: 15px 40px; border: 1px double lightgray; margin: 20px 10px; ">
|
||||
<el-form size="small" label-width="90px" :model="model" label-position="left" :rules="rules" ref="form">
|
||||
<el-form-item label="工号:" prop="jobNumber">
|
||||
<el-input v-model="model.jobNumber"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="用户名:" prop="userName">
|
||||
<el-input v-model="model.userName"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="密码:" prop="password">
|
||||
<el-input type="password" v-model="model.password"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="确认密码:" prop="confirm">
|
||||
<el-input type="password" v-model="model.confirm"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
</el-form>
|
||||
</div>
|
||||
<el-row justify="center" class="button-group">
|
||||
<el-col :span="8" :offset="6">
|
||||
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
|
||||
</el-col>
|
||||
<el-col :span="8" :offset="0">
|
||||
<el-button :id="domIdCancel" @click="cancel">取 消</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapGetters } from 'vuex';
|
||||
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
||||
|
||||
export default {
|
||||
name: 'UserAdd',
|
||||
components: {
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
operate: {},
|
||||
operation: null,
|
||||
dialogShow: false,
|
||||
loading: false,
|
||||
model: {
|
||||
type: 'ADD',
|
||||
jobNumber: '',
|
||||
userName: '',
|
||||
password: '',
|
||||
confirm: '',
|
||||
},
|
||||
rules: {
|
||||
jobNumber: [
|
||||
{ required: true, message: '请输入工号', trigger: 'blur' }
|
||||
],
|
||||
userName: [
|
||||
{ required: true, message: '请输入用户名', trigger: 'blur' }
|
||||
],
|
||||
password: [
|
||||
{ required: true, message: '请输入密码', trigger: 'change' }
|
||||
],
|
||||
confirm: [
|
||||
{ required: true, message: '请再次输入密码', trigger: 'change' }
|
||||
],
|
||||
},
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
...mapGetters('map', [
|
||||
'stationStandList'
|
||||
]),
|
||||
show() {
|
||||
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||
},
|
||||
domIdCancel() {
|
||||
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
|
||||
},
|
||||
domIdConfirm() {
|
||||
return this.dialogShow ? OperationEvent.Command.close.confirm.domId : '';
|
||||
},
|
||||
title() {
|
||||
return '增加用户'
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
doShow(operate) {
|
||||
//非断电激活时设置初始值
|
||||
if (!this.dialogShow) {
|
||||
this.loading = false;
|
||||
this.operate = operate || {};
|
||||
this.operation = operate.operation;
|
||||
this.$nextTick(() => {
|
||||
this.$refs.form.resetFields();
|
||||
});
|
||||
}
|
||||
|
||||
this.dialogShow = true;
|
||||
this.$nextTick(function () {
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
});
|
||||
},
|
||||
doClose() {
|
||||
this.loading = false;
|
||||
this.dialogShow = false;
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
},
|
||||
commit() {
|
||||
this.$refs['form'].validate((valid) => {
|
||||
if (valid) {
|
||||
let operate = {
|
||||
type: this.operate.type,
|
||||
operation: OperationEvent.Command.close.confirm.operation,
|
||||
}
|
||||
|
||||
this.loading = true;
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
this.loading = false;
|
||||
if (valid) {
|
||||
if (this.model.password === this.model.confirm) {
|
||||
this.doClose();
|
||||
this.$emit('operateUser', this.model);
|
||||
} else {
|
||||
this.$messageBox('二次输入密码不一致');
|
||||
}
|
||||
}
|
||||
})
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
},
|
||||
cancel() {
|
||||
let operate = {
|
||||
type: this.operate.type,
|
||||
operation: OperationEvent.Command.cancel.menu.operation,
|
||||
}
|
||||
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch(error => { this.doClose(); this.model });
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style scoped>
|
||||
.chengdou-03__systerm .el-dialog .base-label {
|
||||
background: rgba(0, 0, 0, x);
|
||||
position: relative;
|
||||
left: -5px;
|
||||
top: -10px;
|
||||
padding: 0 5px;
|
||||
background-color: #F0F0F0;
|
||||
}
|
||||
</style>
|
@ -1,129 +0,0 @@
|
||||
<template>
|
||||
<el-dialog class="chengdou-03__systerm user-delete" :title="title" :visible.sync="show" width="260px"
|
||||
:before-close="doClose" :zIndex="2000" :modal="false" :close-on-click-modal="false" append-to-body v-dialogDrag>
|
||||
<div style="padding-left: 10px; padding-bottom: 10px">
|
||||
<i class="el-icon-info"></i>
|
||||
<template v-for="message in messages">
|
||||
<span>{{message}}</span>
|
||||
</template>
|
||||
</div>
|
||||
<el-row justify="center" class="button-group">
|
||||
<el-col :span="8" :offset="3">
|
||||
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
|
||||
</el-col>
|
||||
<el-col :span="8" :offset="2">
|
||||
<el-button :id="domIdCancel" @click="cancel">取 消</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapGetters } from 'vuex';
|
||||
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
||||
|
||||
export default {
|
||||
name: 'UserDelete',
|
||||
components: {
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
operate: {},
|
||||
messages: [],
|
||||
model: {
|
||||
type: 'DELETE',
|
||||
jobNumber: '',
|
||||
userName: '',
|
||||
},
|
||||
operation: null,
|
||||
dialogShow: false,
|
||||
loading: false,
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
...mapGetters('map', [
|
||||
'stationStandList'
|
||||
]),
|
||||
show() {
|
||||
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||
},
|
||||
domIdCancel() {
|
||||
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
|
||||
},
|
||||
domIdConfirm() {
|
||||
return this.dialogShow ? OperationEvent.Command.close.confirm.domId : '';
|
||||
},
|
||||
title() {
|
||||
return '删除用户'
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
doShow(operate, selected) {
|
||||
//非断电激活时设置初始值
|
||||
if (!this.dialogShow) {
|
||||
this.loading = false;
|
||||
this.operate = operate || {};
|
||||
this.operation = operate.operation;
|
||||
this.messages = operate.messages;
|
||||
this.model.userName = '';
|
||||
this.model.jobNumber = '';
|
||||
if (selected) {
|
||||
this.model.userName = selected.userName;
|
||||
this.model.jobNumber = selected.jobNumber;
|
||||
}
|
||||
}
|
||||
|
||||
this.dialogShow = true;
|
||||
this.$nextTick(function () {
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
});
|
||||
},
|
||||
doClose() {
|
||||
this.loading = false;
|
||||
this.dialogShow = false;
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
},
|
||||
commit() {
|
||||
if (this.model.userName && this.model.jobNumber) {
|
||||
let operate = {
|
||||
type: this.operate.type,
|
||||
operation: OperationEvent.Command.close.confirm.operation,
|
||||
}
|
||||
|
||||
this.loading = true;
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
this.loading = false;
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
this.$emit('operateUser', this.model);
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.$messageBox('选择的用户名或工号为空');
|
||||
}
|
||||
},
|
||||
cancel() {
|
||||
let operate = {
|
||||
type: this.operate.type,
|
||||
operation: OperationEvent.Command.cancel.menu.operation,
|
||||
}
|
||||
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch(error => { this.doClose(); });
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style scoped>
|
||||
.chengdou-03__systerm .el-dialog .base-label {
|
||||
background: rgba(0, 0, 0, x);
|
||||
position: relative;
|
||||
left: -5px;
|
||||
top: -10px;
|
||||
padding: 0 5px;
|
||||
background-color: #F0F0F0;
|
||||
}
|
||||
</style>
|
@ -1,173 +0,0 @@
|
||||
<template>
|
||||
<el-dialog class="chengdou-03__systerm user-edit" :title="title" :visible.sync="show" width="420px"
|
||||
:before-close="doClose" :zIndex="2000" :modal="false" :close-on-click-modal="false" append-to-body v-dialogDrag>
|
||||
<div style="padding: 15px 40px; border: 1px double lightgray; margin: 20px 10px; ">
|
||||
<el-form size="small" label-width="90px" :model="model" label-position="left" :rules="rules" ref="form">
|
||||
<el-form-item label="工号:" prop="jobNumber">
|
||||
<el-input v-model="model.jobNumber" disabled></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="用户名:" prop="userName">
|
||||
<el-input v-model="model.userName" disabled></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="原始密码:" prop="oldPassword">
|
||||
<el-input type="oldPassword" v-model="model.oldPassword"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="密码:" prop="password">
|
||||
<el-input type="password" v-model="model.password"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="确认密码:" prop="confirm">
|
||||
<el-input type="password" v-model="model.confirm"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
</el-form>
|
||||
</div>
|
||||
<el-row justify="center" class="button-group">
|
||||
<el-col :span="8" :offset="6">
|
||||
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
|
||||
</el-col>
|
||||
<el-col :span="8" :offset="0">
|
||||
<el-button :id="domIdCancel" @click="cancel">取 消</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapGetters } from 'vuex';
|
||||
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
||||
|
||||
export default {
|
||||
name: 'UserEdit',
|
||||
components: {
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
operate: {},
|
||||
selected: {},
|
||||
operation: null,
|
||||
dialogShow: false,
|
||||
loading: false,
|
||||
model: {
|
||||
type: 'EDIT',
|
||||
jobNumber: '',
|
||||
userName: '',
|
||||
oldPassword: '',
|
||||
password: '',
|
||||
confirm: '',
|
||||
},
|
||||
rules: {
|
||||
jobNumber: [
|
||||
{ required: true, message: '请输入工号', trigger: 'blur' }
|
||||
],
|
||||
userName: [
|
||||
{ required: true, message: '请输入用户名', trigger: 'blur' }
|
||||
],
|
||||
oldPassword: [
|
||||
{ required: true, message: '请输入原始密码', trigger: 'change' }
|
||||
],
|
||||
password: [
|
||||
{ required: true, message: '请输入新密码', trigger: 'change' }
|
||||
],
|
||||
confirm: [
|
||||
{ required: true, message: '请再次输入新密码', trigger: 'change' }
|
||||
],
|
||||
},
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
...mapGetters('map', [
|
||||
'stationStandList'
|
||||
]),
|
||||
show() {
|
||||
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||
},
|
||||
domIdCancel() {
|
||||
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
|
||||
},
|
||||
domIdConfirm() {
|
||||
return this.dialogShow ? OperationEvent.Command.close.confirm.domId : '';
|
||||
},
|
||||
title() {
|
||||
return '用户编辑页面'
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
doShow(operate, selected) {
|
||||
//非断电激活时设置初始值
|
||||
if (!this.dialogShow) {
|
||||
this.loading = false;
|
||||
this.operate = operate || {};
|
||||
this.operation = operate.operation;
|
||||
this.$nextTick(() => {
|
||||
this.$refs.form.resetFields();
|
||||
this.selected = selected;
|
||||
if (selected) {
|
||||
this.model.jobNumber = selected.jobNumber;
|
||||
this.model.userName = selected.userName;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
this.dialogShow = true;
|
||||
this.$nextTick(function () {
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
});
|
||||
},
|
||||
doClose() {
|
||||
this.loading = false;
|
||||
this.dialogShow = false;
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
},
|
||||
commit() {
|
||||
this.$refs['form'].validate((valid) => {
|
||||
if (valid) {
|
||||
let operate = {
|
||||
type: this.operate.type,
|
||||
operation: OperationEvent.Command.close.confirm.operation,
|
||||
}
|
||||
|
||||
this.loading = true;
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
this.loading = false;
|
||||
if (valid)
|
||||
if (this.selected.password !== this.model.oldPassword) {
|
||||
this.$messageBox('原始密码错误');
|
||||
} else if (this.model.password !== this.model.confirm) {
|
||||
this.$messageBox('二次输入的密码错误');
|
||||
} else if (this.model.oldPassword === this.model.password) {
|
||||
this.$messageBox('老密码和新密相同');
|
||||
} else {
|
||||
this.doClose();
|
||||
this.$emit('operateUser', this.model);
|
||||
}
|
||||
})
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
},
|
||||
cancel() {
|
||||
let operate = {
|
||||
type: this.operate.type,
|
||||
operation: OperationEvent.Command.cancel.menu.operation,
|
||||
}
|
||||
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch(error => { this.doClose(); });
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style scoped>
|
||||
.chengdou-03__systerm .el-dialog .base-label {
|
||||
background: rgba(0, 0, 0, x);
|
||||
position: relative;
|
||||
left: -5px;
|
||||
top: -10px;
|
||||
padding: 0 5px;
|
||||
background-color: #F0F0F0;
|
||||
}
|
||||
</style>
|
@ -1,138 +0,0 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
v-dialogDrag
|
||||
class="chengdou-03__systerm stand-stop-time"
|
||||
:title="title"
|
||||
:visible.sync="show"
|
||||
width="320px"
|
||||
:before-close="doClose"
|
||||
:z-index="2000"
|
||||
:modal="false"
|
||||
:close-on-click-modal="false"
|
||||
>
|
||||
<el-row justify="center" class="button-group">
|
||||
<el-col :span="10" :offset="2">
|
||||
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
|
||||
</el-col>
|
||||
<el-col :span="8" :offset="4">
|
||||
<el-button :id="domIdCancel" @click="cancel">取 消</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapGetters } from 'vuex';
|
||||
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
||||
|
||||
export default {
|
||||
name: 'TrainAdd',
|
||||
components: {
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
trainNoList: [],
|
||||
addModel: {
|
||||
|
||||
},
|
||||
|
||||
rules: {
|
||||
// groupNumber: [
|
||||
// { required: true, message: '请输入车次号', trigger: 'blur' }
|
||||
// ],
|
||||
// stationStandCode: [
|
||||
// { required: true, message: '请选择终端', trigger: 'change' }
|
||||
// ],
|
||||
},
|
||||
operation: null,
|
||||
dialogShow: false,
|
||||
loading: false
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapGetters('map', [
|
||||
'stationStandList'
|
||||
]),
|
||||
show() {
|
||||
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||
},
|
||||
domIdCancel() {
|
||||
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
|
||||
},
|
||||
domIdConfirm() {
|
||||
return this.dialogShow ? OperationEvent.Command.planTrain.addPlanTrain.domId : '';
|
||||
},
|
||||
title() {
|
||||
return '设置限速';
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
doShow(operate) {
|
||||
this.operate = operate || {};
|
||||
this.operation = operate.operation;
|
||||
|
||||
if (!this.dialogShow) {
|
||||
this.loading = false;
|
||||
}
|
||||
|
||||
this.dialogShow = true;
|
||||
this.$nextTick(function () {
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
});
|
||||
},
|
||||
doClose() {
|
||||
this.loading = false;
|
||||
this.dialogShow = false;
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
},
|
||||
commit() {
|
||||
this.$refs['form'].validate((valid) => {
|
||||
if (valid) {
|
||||
const operate = {
|
||||
send: true,
|
||||
|
||||
operation: OperationEvent.Command.planTrain.addPlanTrain.operation
|
||||
};
|
||||
|
||||
this.loading = true;
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
this.loading = false;
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch(error => {
|
||||
this.loading = false;
|
||||
this.doClose();
|
||||
console.error(error);
|
||||
// this.$refs.noticeInfo.doShow();
|
||||
});
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
},
|
||||
cancel() {
|
||||
const operate = {
|
||||
|
||||
operation: OperationEvent.Command.cancel.menu.operation
|
||||
};
|
||||
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch(error => { this.doClose(); });
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style scoped>
|
||||
.chengdou-03__systerm .el-dialog .base-label {
|
||||
background: rgba(0, 0, 0, x);
|
||||
position: relative;
|
||||
left: -5px;
|
||||
top: -18px;
|
||||
padding: 0 5px;
|
||||
background-color: #F0F0F0;
|
||||
}
|
||||
</style>
|
@ -1,285 +0,0 @@
|
||||
<template>
|
||||
<el-dialog class="chengdou-03__systerm manage-user" :title="title" :visible.sync="show" width="420px"
|
||||
:before-close="doClose" :zIndex="2000" :modal="false" :close-on-click-modal="false" v-dialogDrag>
|
||||
<div style="padding: 5px 5px; border: 1px double lightgray; margin: 20px 0px; ">
|
||||
<span class="base-label">用户列表</span>
|
||||
<el-row>
|
||||
<el-col :span="18">
|
||||
<el-table ref="multipleTable" :data="tableData" border row-key="code" style="width: 100%"
|
||||
height="450" center size="mini" highlight-current-row @row-click="chooseUser">
|
||||
<el-table-column prop="jobNumber" label="工号" width="120">
|
||||
<template slot-scope="scope">
|
||||
<span>{{scope.row.jobNumber}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="userName" label="用户名">
|
||||
<template slot-scope="scope">
|
||||
<span>{{scope.row.userName}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column width="20">
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-button style="margin-top: 140px; margin-left: 10px;" :id="domIdFreshUser" @click="freshUser">刷新
|
||||
</el-button>
|
||||
<el-button style="margin-top: 30px; margin-left: 10px;" :id="domIdAddUser" @click="addUser">增加
|
||||
</el-button>
|
||||
<el-button style="margin-top: 30px; margin-left: 10px;" :id="domIdEditUser" @click="editUser">修改
|
||||
</el-button>
|
||||
<el-button style="margin-top: 30px; margin-left: 10px;" :id="domIdDelUser" @click="delUser">删除
|
||||
</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
<el-row justify="center" class="button-group">
|
||||
<el-col :span="8" :offset="6">
|
||||
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
|
||||
</el-col>
|
||||
<el-col :span="8" :offset="0">
|
||||
<el-button :id="domIdCancel" @click="cancel">取 消</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<user-add ref="userAdd" @operateUser="operateUser"></user-add>
|
||||
<user-edit ref="userEdit" @operateUser="operateUser"></user-edit>
|
||||
<user-delete ref="userDelete" @operateUser="operateUser"></user-delete>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapGetters } from 'vuex';
|
||||
import UserAdd from './childDialog/userAdd';
|
||||
import UserEdit from './childDialog/userEdit';
|
||||
import UserDelete from './childDialog/userDelete';
|
||||
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
||||
|
||||
export default {
|
||||
name: 'ManageUser',
|
||||
components: {
|
||||
UserAdd,
|
||||
UserEdit,
|
||||
UserDelete
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
tableData: [],
|
||||
operate: {},
|
||||
operation: null,
|
||||
dialogShow: false,
|
||||
loading: false,
|
||||
selected: null,
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
...mapGetters('map', [
|
||||
'stationStandList'
|
||||
]),
|
||||
show() {
|
||||
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||
},
|
||||
domIdAddUser() {
|
||||
return this.dialogShow ? OperationEvent.Command.manage.addUser.domId : '';
|
||||
},
|
||||
domIdEditUser() {
|
||||
return this.dialogShow ? OperationEvent.Command.manage.editUser.domId : '';
|
||||
},
|
||||
domIdDelUser() {
|
||||
return this.dialogShow ? OperationEvent.Command.manage.delUser.domId : '';
|
||||
},
|
||||
domIdFreshUser() {
|
||||
return this.dialogShow ? OperationEvent.Command.manage.freshUser.domId : '';
|
||||
},
|
||||
domIdChooseUser() {
|
||||
return this.dialogShow ? OperationEvent.Command.manage.chooseUser.domId : '';
|
||||
},
|
||||
domIdCancel() {
|
||||
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
|
||||
},
|
||||
domIdConfirm() {
|
||||
return this.dialogShow ? OperationEvent.Command.close.menu.domId : '';
|
||||
},
|
||||
title() {
|
||||
return '用户管理'
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
doShow(operate) {
|
||||
//非断电激活时设置初始值
|
||||
if (!this.dialogShow) {
|
||||
this.loading = false;
|
||||
this.operate = operate || {};
|
||||
this.operation = operate.operation;
|
||||
}
|
||||
|
||||
this.dialogShow = true;
|
||||
this.$nextTick(function () {
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
});
|
||||
},
|
||||
doClose() {
|
||||
this.loading = false;
|
||||
this.dialogShow = false;
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
},
|
||||
//添加用户
|
||||
addUser() {
|
||||
let operate = {
|
||||
type: this.operate.type,
|
||||
operation: OperationEvent.Command.manage.addUser.operation,
|
||||
}
|
||||
|
||||
this.loading = true;
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
this.loading = false;
|
||||
if (valid) {
|
||||
this.$refs.userAdd.doShow(operate);
|
||||
}
|
||||
}).catch(error => {
|
||||
this.loading = false;
|
||||
})
|
||||
},
|
||||
//编辑用户
|
||||
editUser() {
|
||||
if (this.selected) {
|
||||
let operate = {
|
||||
type: this.operate.type,
|
||||
operation: OperationEvent.Command.manage.editUser.operation,
|
||||
}
|
||||
|
||||
this.loading = true;
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
this.loading = false;
|
||||
if (valid) {
|
||||
this.$refs.userEdit.doShow(operate, this.selected);
|
||||
}
|
||||
}).catch(error => {
|
||||
this.loading = false;
|
||||
})
|
||||
} else {
|
||||
this.$messageBox('请先选择用户');
|
||||
}
|
||||
},
|
||||
//删除用户
|
||||
delUser() {
|
||||
if (this.selected) {
|
||||
let operate = {
|
||||
type: this.operate.type,
|
||||
operation: OperationEvent.Command.manage.delUser.operation,
|
||||
messages: [`你确定删除用户${this.selected.userName}吗?`]
|
||||
}
|
||||
|
||||
this.loading = true;
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
this.loading = false;
|
||||
if (valid) {
|
||||
this.$refs.userDelete.doShow(operate, this.selected);
|
||||
}
|
||||
}).catch(error => {
|
||||
this.loading = false;
|
||||
})
|
||||
} else {
|
||||
this.$messageBox('请先选择用户');
|
||||
}
|
||||
},
|
||||
//刷新用户
|
||||
freshUser() {
|
||||
let operate = {
|
||||
type: this.operate.type,
|
||||
operation: OperationEvent.Command.manage.freshUser.operation,
|
||||
}
|
||||
|
||||
this.loading = true;
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
this.loading = false;
|
||||
}).catch(error => {
|
||||
this.loading = false;
|
||||
})
|
||||
},
|
||||
//选择用户
|
||||
chooseUser(row) {
|
||||
let operate = {
|
||||
type: this.operate.type,
|
||||
operation: OperationEvent.Command.manage.chooseUser.operation,
|
||||
}
|
||||
|
||||
this.loading = true;
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
this.loading = false;
|
||||
this.selected = row;
|
||||
}).catch(error => {
|
||||
this.loading = false;
|
||||
})
|
||||
},
|
||||
commit() {
|
||||
let operate = {
|
||||
type: this.operate.type,
|
||||
operation: OperationEvent.Command.close.menu.operation,
|
||||
}
|
||||
|
||||
this.loading = true;
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
this.loading = false;
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch(error => {
|
||||
this.loading = false;
|
||||
this.doClose();
|
||||
})
|
||||
},
|
||||
cancel() {
|
||||
let operate = {
|
||||
type: this.operate.type,
|
||||
operation: OperationEvent.Command.cancel.menu.operation,
|
||||
}
|
||||
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch(error => { this.doClose(); });
|
||||
},
|
||||
//增删改函数处理
|
||||
operateUser(data) {
|
||||
if (data && data.type === 'ADD') {
|
||||
let index = this.tableData.indexOf(this.tableData.find(elem => { return elem.jobNumber === data.jobNumber }));
|
||||
if (index < 0) {
|
||||
this.tableData.push({
|
||||
jobNumber: data.jobNumber,
|
||||
userName: data.userName,
|
||||
password: data.password
|
||||
});
|
||||
} else {
|
||||
this.$messageBox('添加失败,存在相同工号的用户');
|
||||
}
|
||||
} else if (data && data.type === 'EDIT') {
|
||||
let index = this.tableData.indexOf(this.tableData.find(elem => { return elem.jobNumber === data.jobNumber }));
|
||||
if (index >= 0) {
|
||||
this.tableData[index].password = data.password;
|
||||
this.tableData[index].userName = data.userName;
|
||||
} else {
|
||||
this.$messageBox('修改失败');
|
||||
}
|
||||
} else if (data && data.type === 'DELETE') {
|
||||
let index = this.tableData.indexOf(this.tableData.find(elem => { return elem.jobNumber === data.jobNumber }));
|
||||
if (index >= 0) {
|
||||
this.tableData.splice(index, 1);
|
||||
} else {
|
||||
this.$messageBox('删除失败');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style scoped>
|
||||
.chengdou-03__systerm .el-dialog .base-label {
|
||||
background: rgba(0, 0, 0, x);
|
||||
position: relative;
|
||||
left: -5px;
|
||||
top: -10px;
|
||||
padding: 0 5px;
|
||||
background-color: #F0F0F0;
|
||||
}
|
||||
</style>
|
@ -1,221 +0,0 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
v-dialogDrag
|
||||
class="chengdou-03__systerm password-box"
|
||||
title="密码框"
|
||||
:visible.sync="show"
|
||||
width="320px"
|
||||
:before-close="doClose"
|
||||
:z-index="2000"
|
||||
:modal="false"
|
||||
:close-on-click-modal="false"
|
||||
>
|
||||
<div class="context" style="overflow:hidden">
|
||||
<el-form label-width="80px" size="mini">
|
||||
<el-form-item prop="username">
|
||||
<span slot="label">用户名:</span>
|
||||
<el-input v-model="model.username" disabled />
|
||||
</el-form-item>
|
||||
<el-form-item prop="password">
|
||||
<span slot="label">密 码:</span>
|
||||
<el-input v-model="model.password" type="password" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div class="operate">
|
||||
<el-button-group v-model="key" class="left" size="mini">
|
||||
<el-button size="mini" @click="click(1)">1</el-button>
|
||||
<el-button size="mini" @click="click(2)">2</el-button>
|
||||
<el-button size="mini" @click="click(3)">3</el-button>
|
||||
<el-button size="mini" @click="click(4)">4</el-button>
|
||||
<el-button size="mini" @click="click(5)">5</el-button>
|
||||
</el-button-group>
|
||||
<el-button-group v-model="key" class="right" size="mini">
|
||||
<el-button @click="esc">回退</el-button>
|
||||
</el-button-group>
|
||||
<el-button-group v-model="key" class="left" size="mini">
|
||||
<el-button size="mini" @click="click(6)">6</el-button>
|
||||
<el-button size="mini" @click="click(7)">7</el-button>
|
||||
<el-button size="mini" @click="click(8)">8</el-button>
|
||||
<el-button size="mini" @click="click(9)">9</el-button>
|
||||
<el-button size="mini" @click="click(0)">0</el-button>
|
||||
</el-button-group>
|
||||
<el-button-group v-model="key" class="right" size="mini">
|
||||
<el-button @click="clr">清空</el-button>
|
||||
</el-button-group>
|
||||
</div>
|
||||
</div>
|
||||
<el-row class="button-group">
|
||||
<el-col :span="6" :offset="4">
|
||||
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
|
||||
</el-col>
|
||||
<el-col :span="6" :offset="4">
|
||||
<el-button :id="domIdCancel" @click="cancel">取 消</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<notice-info ref="noticeInfo" />
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
||||
import OperationHandler from '@/scripts/cmdPlugin/OperationHandler';
|
||||
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
|
||||
|
||||
export default {
|
||||
name: 'PasswordBox',
|
||||
components: {
|
||||
NoticeInfo
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
dialogShow: false,
|
||||
loading: false,
|
||||
operate: null,
|
||||
operation: null,
|
||||
model: {
|
||||
username: '',
|
||||
password: ''
|
||||
},
|
||||
key: ''
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
show() {
|
||||
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||
},
|
||||
domIdCancel() {
|
||||
return this.dialogShow ? OperationEvent.Command.close.password.domId : '';
|
||||
},
|
||||
domIdConfirm() {
|
||||
if (OperationHandler.checkOperationIsCurrentOperate(this.operation, OperationEvent.StationControl.forcedStationControl)) {
|
||||
/** 强制站控*/
|
||||
return OperationEvent.StationControl.forcedStationControl.passwordConfirm.domId;
|
||||
}
|
||||
return '';
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
loadInitData(operate) {
|
||||
this.model.username = '';
|
||||
this.model.password = '';
|
||||
this.operate = operate || {};
|
||||
this.operation = operate.operation;
|
||||
this.model.username = this.$store.state.user.name;
|
||||
},
|
||||
doShow(operate) {
|
||||
/** 如果不是断点激活,而是第一次显示需要初始化数据*/
|
||||
if (!this.dialogShow) {
|
||||
this.loadInitData(operate);
|
||||
}
|
||||
this.dialogShow = true;
|
||||
this.$nextTick(function () {
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
});
|
||||
},
|
||||
doClose() {
|
||||
this.dialogShow = false;
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
},
|
||||
cancel() {
|
||||
const operate = {
|
||||
type: this.operate.type,
|
||||
operation: OperationEvent.Command.close.password.operation
|
||||
};
|
||||
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
});
|
||||
},
|
||||
commit() {
|
||||
const operate = {
|
||||
type: this.operate.type
|
||||
};
|
||||
|
||||
if (OperationHandler.checkOperationIsCurrentOperate(this.operation, OperationEvent.StationControl.forcedStationControl)) {
|
||||
/** 强制站控*/
|
||||
operate.operation = OperationEvent.StationControl.forcedStationControl.passwordConfirm.operation;
|
||||
}
|
||||
|
||||
if (this.model.password == '123456') {
|
||||
this.loading = true;
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
this.loading = false;
|
||||
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||
if (valid) {
|
||||
this.$emit('setLoginResult', {
|
||||
operation: operate.operation,
|
||||
success: valid
|
||||
});
|
||||
this.doClose();
|
||||
}
|
||||
}).catch(() => {
|
||||
this.loading = false;
|
||||
this.$emit('setLoginResult', {
|
||||
operation: operate.operation,
|
||||
success: false
|
||||
});
|
||||
});
|
||||
} else {
|
||||
this.$refs.noticeInfo.doShow('密码输入错误!');
|
||||
}
|
||||
},
|
||||
click(key) {
|
||||
if (!this.model.password) {
|
||||
this.model.password = '';
|
||||
}
|
||||
this.model.password += key;
|
||||
},
|
||||
esc() {
|
||||
if (this.model.password) {
|
||||
this.model.password = this.model.password.substring(0, this.model.password.length - 1);
|
||||
}
|
||||
},
|
||||
clr() {
|
||||
this.model.password = '';
|
||||
}
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
</script>
|
||||
<style rel="stylesheet/scss" lang="scss" scoped>
|
||||
@import "src/styles/mixin.scss";
|
||||
|
||||
.password-box .el-form {
|
||||
margin-top: 10px !important;
|
||||
margin-right: 20px !important;
|
||||
}
|
||||
|
||||
.password-box .el-form-item {
|
||||
margin-bottom: 5px !important;
|
||||
}
|
||||
|
||||
.password-box .context {
|
||||
height: 170px !important;
|
||||
}
|
||||
|
||||
.password-box .operate {
|
||||
margin-top: 10px !important;
|
||||
padding-bottom: 10px !important;
|
||||
}
|
||||
|
||||
.password-box .left {
|
||||
margin-left: 10px !important;
|
||||
}
|
||||
|
||||
.password-box .left .el-button {
|
||||
color: #000;
|
||||
background: #F0F0F0;
|
||||
text-align: center;
|
||||
width: 30px !important;
|
||||
}
|
||||
|
||||
.password-box .right {
|
||||
color: #000;
|
||||
margin-left: 10px !important;
|
||||
background: #F0F0F0;
|
||||
width: 80px !important;
|
||||
}
|
||||
</style>
|
@ -1,286 +0,0 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
v-dialogDrag
|
||||
class="chengdou-03__systerm stand-stop-time"
|
||||
:title="title"
|
||||
:visible.sync="show"
|
||||
width="800px"
|
||||
:before-close="doClose"
|
||||
:z-index="2000"
|
||||
:modal="false"
|
||||
:close-on-click-modal="false"
|
||||
>
|
||||
<el-row>
|
||||
<el-col :span="14">
|
||||
<div class="card-box">
|
||||
<span class="tip-label">请求</span>
|
||||
<el-row style="margin: 5px">
|
||||
<el-col :span="6" class="item-label">线路选择</el-col>
|
||||
<el-col :span="6">
|
||||
<el-select v-model="data.path">
|
||||
<el-option
|
||||
v-for="item in pathList"
|
||||
:key="item.value"
|
||||
:label="item.name"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-col>
|
||||
<el-col :span="6" class="item-label">限制速度</el-col>
|
||||
<el-col :span="6">
|
||||
<el-select v-model="data.speed">
|
||||
<el-option
|
||||
v-for="item in speedList"
|
||||
:key="item.value"
|
||||
:label="item.name"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="6" class="item-label">起始公里标</el-col>
|
||||
<el-col :span="6">
|
||||
<el-input v-model="data.begKmPost" />
|
||||
</el-col>
|
||||
<el-col :span="6" class="item-label">结束公里标</el-col>
|
||||
<el-col :span="6">
|
||||
<el-input v-model="data.endKmPost" />
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="6" class="item-label">限速区段长度</el-col>
|
||||
<el-col :span="6">
|
||||
<el-input v-model="data.length" />
|
||||
</el-col>
|
||||
<el-col :span="3">
|
||||
<el-button>查看</el-button>
|
||||
</el-col>
|
||||
<el-col :span="3">
|
||||
<el-button>请求</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
<div class="card-box">
|
||||
<span class="tip-label">执行</span>
|
||||
<el-row style="margin: 5px">
|
||||
<el-col :span="6" class="item-label">线路选择</el-col>
|
||||
<el-col :span="6">
|
||||
<el-select v-model="form.path">
|
||||
<el-option
|
||||
v-for="item in pathList"
|
||||
:key="item.value"
|
||||
:label="item.name"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-col>
|
||||
<el-col :span="6" class="item-label">限制速度</el-col>
|
||||
<el-col :span="6">
|
||||
<el-select v-model="form.speed">
|
||||
<el-option
|
||||
v-for="item in speedList"
|
||||
:key="item.value"
|
||||
:label="item.name"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="6" class="item-label">起始公里标</el-col>
|
||||
<el-col :span="6">
|
||||
<el-input v-model="form.begKmPost" />
|
||||
</el-col>
|
||||
<el-col :span="6" class="item-label">结束公里标</el-col>
|
||||
<el-col :span="6">
|
||||
<el-input v-model="form.endKmPost" />
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="6" class="item-label">限速区段长度</el-col>
|
||||
<el-col :span="6">
|
||||
<el-input v-model="form.length" />
|
||||
</el-col>
|
||||
<el-col :span="3">
|
||||
<el-button>查看</el-button>
|
||||
</el-col>
|
||||
<el-col :span="3">
|
||||
<el-button>请求</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
<div class="card-box">
|
||||
<span class="tip-label">操作提示</span>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="9" :offset="1">
|
||||
<div class="card-box">
|
||||
<span class="tip-label">设备列表</span>
|
||||
<el-table class="card-table" :data="deviceData" border style="width: 100%" height="300">
|
||||
<el-table-column prop="stationName" label="站名" />
|
||||
<el-table-column prop="deviceCode" label="设备号" />
|
||||
<el-table-column prop="deviceName" label="设备名" />
|
||||
</el-table>
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row justify="center" class="button-group">
|
||||
<el-col :span="10" :offset="2">
|
||||
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
|
||||
</el-col>
|
||||
<el-col :span="8" :offset="4">
|
||||
<el-button :id="domIdCancel" @click="cancel">取 消</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapGetters } from 'vuex';
|
||||
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
||||
|
||||
export default {
|
||||
name: 'TrainAdd',
|
||||
components: {
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
operation: null,
|
||||
dialogShow: false,
|
||||
loading: false,
|
||||
data: {
|
||||
path: '',
|
||||
speed: '',
|
||||
begKmPost: '',
|
||||
endKmPost: '',
|
||||
length: ''
|
||||
},
|
||||
form: {
|
||||
path: '',
|
||||
speed: '',
|
||||
begKmPost: '',
|
||||
endKmPost: '',
|
||||
length: ''
|
||||
},
|
||||
pathList: [
|
||||
{ name: '上行站线', value: '01' },
|
||||
{ name: '下行站线', value: '02' }
|
||||
],
|
||||
speedList: [
|
||||
{ name: '10Km/h', value: '10' },
|
||||
{ name: '15Km/h', value: '15' },
|
||||
{ name: '20Km/h', value: '20' },
|
||||
{ name: '25Km/h', value: '25' }
|
||||
],
|
||||
deviceData: []
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapGetters('map', [
|
||||
'stationStandList'
|
||||
]),
|
||||
show() {
|
||||
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||
},
|
||||
domIdCancel() {
|
||||
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
|
||||
},
|
||||
domIdConfirm() {
|
||||
return this.dialogShow ? OperationEvent.Command.planTrain.addPlanTrain.domId : '';
|
||||
},
|
||||
title() {
|
||||
return '设置临时限速';
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
doShow(operate) {
|
||||
this.operate = operate || {};
|
||||
this.operation = operate.operation;
|
||||
|
||||
if (!this.dialogShow) {
|
||||
this.loading = false;
|
||||
}
|
||||
|
||||
this.dialogShow = true;
|
||||
this.$nextTick(function () {
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
});
|
||||
},
|
||||
doClose() {
|
||||
this.loading = false;
|
||||
this.dialogShow = false;
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
},
|
||||
commit() {
|
||||
this.$refs['form'].validate((valid) => {
|
||||
if (valid) {
|
||||
const operate = {
|
||||
send: true,
|
||||
|
||||
operation: OperationEvent.Command.planTrain.addPlanTrain.operation
|
||||
};
|
||||
|
||||
this.loading = true;
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
this.loading = false;
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch(error => {
|
||||
this.loading = false;
|
||||
this.doClose();
|
||||
console.error(error);
|
||||
// this.$refs.noticeInfo.doShow();
|
||||
});
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
},
|
||||
cancel() {
|
||||
const operate = {
|
||||
|
||||
operation: OperationEvent.Command.cancel.menu.operation
|
||||
};
|
||||
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch(error => { this.doClose(); });
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style scoped>
|
||||
.chengdou-03__systerm .el-dialog .base-label {
|
||||
background: rgba(0, 0, 0, x);
|
||||
position: relative;
|
||||
left: -5px;
|
||||
top: -18px;
|
||||
padding: 0 5px;
|
||||
background-color: #F0F0F0;
|
||||
}
|
||||
|
||||
.card-box {
|
||||
border: 1px solid #c0c0c0;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.card-table {
|
||||
position: relative;
|
||||
top: -15px;
|
||||
}
|
||||
|
||||
.tip-label {
|
||||
position: relative;
|
||||
left: 5px;
|
||||
top: -15px;
|
||||
background: #ECE9D8;
|
||||
}
|
||||
|
||||
.item-label {
|
||||
text-align: center;
|
||||
}
|
||||
</style>
|
@ -1,168 +0,0 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
v-dialogDrag
|
||||
class="chengdou-03__systerm stand-stop-time"
|
||||
:title="title"
|
||||
:visible.sync="show"
|
||||
width="320px"
|
||||
:before-close="doClose"
|
||||
:z-index="2000"
|
||||
:modal="false"
|
||||
:close-on-click-modal="false"
|
||||
>
|
||||
<el-form ref="form" size="small" label-width="100px" :model="addModel" :rules="rules">
|
||||
<div style="padding: 10px 15px; border: 1px double lightgray; margin: 20px 0px; height: 120px;">
|
||||
<span class="base-label">添加位置</span>
|
||||
<div style="position: relative; top:-10px;">
|
||||
<el-form-item prop="stationStandCode">
|
||||
<span slot="label">终   端:</span>
|
||||
<el-select v-model="addModel.stationStandCode" filterable placeholder="请选择">
|
||||
<el-option
|
||||
v-for="item in stationStandList"
|
||||
:key="item.code"
|
||||
:label="item.name"
|
||||
:value="item.code"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="前车车次号:" prop="trainNumberLimber">
|
||||
<el-input v-model="addModel.trainNumberLimber" />
|
||||
</el-form-item>
|
||||
</div>
|
||||
</div>
|
||||
<el-form-item label="添加车次号:" label-width="115px" prop="groupNumber">
|
||||
<el-input v-model="addModel.groupNumber" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-row justify="center" class="button-group">
|
||||
<el-col :span="10" :offset="2">
|
||||
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
|
||||
</el-col>
|
||||
<el-col :span="8" :offset="4">
|
||||
<el-button :id="domIdCancel" @click="cancel">取 消</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapGetters } from 'vuex';
|
||||
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
||||
|
||||
export default {
|
||||
name: 'TrainAdd',
|
||||
components: {
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
trainNoList: [],
|
||||
addModel: {
|
||||
groupNumber: '',
|
||||
stationStandCode: '',
|
||||
trainNumberLimber: ''
|
||||
},
|
||||
|
||||
rules: {
|
||||
groupNumber: [
|
||||
{ required: true, message: '请输入车次号', trigger: 'blur' }
|
||||
],
|
||||
// trainNumberLimber: [
|
||||
// { required: true, message: '请输入前车车次号', trigger: 'blur' }
|
||||
// ],
|
||||
stationStandCode: [
|
||||
{ required: true, message: '请选择终端', trigger: 'change' }
|
||||
]
|
||||
},
|
||||
operation: null,
|
||||
dialogShow: false,
|
||||
loading: false
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapGetters('map', [
|
||||
'stationStandList'
|
||||
]),
|
||||
show() {
|
||||
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||
},
|
||||
domIdCancel() {
|
||||
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
|
||||
},
|
||||
domIdConfirm() {
|
||||
return this.dialogShow ? OperationEvent.Command.planTrain.addPlanTrain.domId : '';
|
||||
},
|
||||
title() {
|
||||
return '添加计划车';
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
doShow(operate) {
|
||||
this.operate = operate || {};
|
||||
this.operation = operate.operation;
|
||||
|
||||
// 非断电激活时设置初始值
|
||||
if (!this.dialogShow) {
|
||||
this.loading = false;
|
||||
}
|
||||
|
||||
this.dialogShow = true;
|
||||
this.$nextTick(function () {
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
});
|
||||
},
|
||||
doClose() {
|
||||
this.loading = false;
|
||||
this.dialogShow = false;
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
},
|
||||
commit() {
|
||||
this.$refs['form'].validate((valid) => {
|
||||
if (valid) {
|
||||
const operate = {
|
||||
send: true,
|
||||
|
||||
operation: OperationEvent.Command.planTrain.addPlanTrain.operation
|
||||
};
|
||||
|
||||
this.loading = true;
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
this.loading = false;
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch(error => {
|
||||
this.loading = false;
|
||||
this.doClose();
|
||||
console.error(error);
|
||||
// this.$refs.noticeInfo.doShow();
|
||||
});
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
},
|
||||
cancel() {
|
||||
const operate = {
|
||||
|
||||
operation: OperationEvent.Command.cancel.menu.operation
|
||||
};
|
||||
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch(error => { this.doClose(); });
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style scoped>
|
||||
.chengdou-03__systerm .el-dialog .base-label {
|
||||
background: rgba(0, 0, 0, x);
|
||||
position: relative;
|
||||
left: -5px;
|
||||
top: -18px;
|
||||
padding: 0 5px;
|
||||
background-color: #F0F0F0;
|
||||
}
|
||||
</style>
|
@ -1,151 +0,0 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
v-dialogDrag
|
||||
class="chengdou-03__systerm stand-stop-time"
|
||||
:title="title"
|
||||
:visible.sync="show"
|
||||
width="320px"
|
||||
:before-close="doClose"
|
||||
:z-index="2000"
|
||||
:modal="false"
|
||||
:close-on-click-modal="false"
|
||||
>
|
||||
<el-form ref="form" size="small" label-width="100px" :model="addModel" :rules="rules">
|
||||
<el-form-item prop="stationStandCode">
|
||||
<span slot="label">终  端:</span>
|
||||
<el-select v-model="addModel.stationStandCode" filterable placeholder="请选择">
|
||||
<el-option v-for="item in stationStandList" :key="item.code" :label="item.name" :value="item.code" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="车 次 号:" prop="groupNumber">
|
||||
<el-input v-model="addModel.groupNumber" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-row justify="center" class="button-group">
|
||||
<el-col :span="10" :offset="2">
|
||||
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
|
||||
</el-col>
|
||||
<el-col :span="8" :offset="4">
|
||||
<el-button :id="domIdCancel" @click="cancel">取 消</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapGetters } from 'vuex';
|
||||
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
||||
|
||||
export default {
|
||||
name: 'TrainAdd',
|
||||
components: {
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
trainNoList: [],
|
||||
addModel: {
|
||||
groupNumber: '',
|
||||
stationStandCode: ''
|
||||
},
|
||||
|
||||
rules: {
|
||||
groupNumber: [
|
||||
{ required: true, message: '请输入车次号', trigger: 'blur' }
|
||||
],
|
||||
stationStandCode: [
|
||||
{ required: true, message: '请选择终端', trigger: 'change' }
|
||||
]
|
||||
},
|
||||
operation: null,
|
||||
dialogShow: false,
|
||||
loading: false
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapGetters('map', [
|
||||
'stationStandList'
|
||||
]),
|
||||
show() {
|
||||
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||
},
|
||||
domIdCancel() {
|
||||
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
|
||||
},
|
||||
domIdConfirm() {
|
||||
return this.dialogShow ? OperationEvent.Command.planTrain.delPlanTrain.domId : '';
|
||||
},
|
||||
title() {
|
||||
return '删除计划车';
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
doShow(operate) {
|
||||
this.operate = operate || {};
|
||||
this.operation = operate.operation;
|
||||
|
||||
// 非断电激活时设置初始值
|
||||
if (!this.dialogShow) {
|
||||
this.loading = false;
|
||||
}
|
||||
|
||||
this.dialogShow = true;
|
||||
this.$nextTick(function () {
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
});
|
||||
},
|
||||
doClose() {
|
||||
this.loading = false;
|
||||
this.dialogShow = false;
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
},
|
||||
commit() {
|
||||
this.$refs['form'].validate((valid) => {
|
||||
if (valid) {
|
||||
const operate = {
|
||||
send: true,
|
||||
|
||||
operation: OperationEvent.Command.planTrain.delPlanTrain.operation
|
||||
};
|
||||
|
||||
this.loading = true;
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
this.loading = false;
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch(error => {
|
||||
this.loading = false;
|
||||
this.doClose();
|
||||
console.error(error);
|
||||
// this.$refs.noticeInfo.doShow();
|
||||
});
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
},
|
||||
cancel() {
|
||||
const operate = {
|
||||
|
||||
operation: OperationEvent.Command.cancel.menu.operation
|
||||
};
|
||||
|
||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch(error => { this.doClose(); });
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style scoped>
|
||||
.chengdou-03__systerm .el-dialog .base-label {
|
||||
background: rgba(0, 0, 0, x);
|
||||
position: relative;
|
||||
left: -5px;
|
||||
top: -18px;
|
||||
padding: 0 5px;
|
||||
background-color: #F0F0F0;
|
||||
}
|
||||
</style>
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user