Compare commits
442 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
99fc3ffcfb | ||
|
0d34d83747 | ||
|
4e37183818 | ||
|
92c66ab4d6 | ||
|
5a7c5fdbeb | ||
|
ae826ac205 | ||
|
84b9f52c8f | ||
|
526fd047e7 | ||
|
529c122278 | ||
|
5b1362f94b | ||
|
2d1da55ffc | ||
|
97e121a65a | ||
|
327533c003 | ||
|
e9a71a1116 | ||
|
8a80a7d732 | ||
|
cbdfc57243 | ||
|
8fbaa85b99 | ||
|
5c81fc4dcf | ||
|
b0ef9e5242 | ||
|
f14d998f19 | ||
|
f2efa437df | ||
|
32430607dd | ||
|
a1c8b4f662 | ||
|
954ee991fa | ||
|
13f16e5570 | ||
|
5470a32bb7 | ||
|
eff99d3609 | ||
|
60e7a09d69 | ||
|
45fbdf0dd7 | ||
|
904434caf3 | ||
|
9045d2a118 | ||
|
1f9541eb31 | ||
|
10e27697fb | ||
|
acf3109c0b | ||
|
a21524b839 | ||
|
2b8116afd3 | ||
|
478261512c | ||
|
f66844bc27 | ||
|
364bd1e539 | ||
|
0c4c5bebb0 | ||
|
22a2e11517 | ||
|
4841ebdda7 | ||
|
0147f270f2 | ||
|
916bc645ed | ||
|
37e0779d23 | ||
|
081d5bf630 | ||
|
27418dc041 | ||
|
cef55a4c6b | ||
|
869c86b94d | ||
|
dc2165733e | ||
|
0c5bba7c0f | ||
|
ef9165faa4 | ||
|
ae74123f18 | ||
|
b1baeaabcd | ||
|
91a8410dc2 | ||
|
c97def5fca | ||
|
31376bc221 | ||
|
5be2cea1ca | ||
|
dda44c870f | ||
|
5548806ea5 | ||
|
3fc31777a2 | ||
|
d5eb68ea1c | ||
|
bd10b05228 | ||
|
2b13ff0a5a | ||
|
5212b6417a | ||
|
5666af96cc | ||
|
6b3d83979d | ||
|
a21e880a18 | ||
|
27129e8b21 | ||
|
6c3b06c4a0 | ||
|
d1f8927355 | ||
|
f1e6121a8f | ||
|
8f14259db7 | ||
|
2c79bd847f | ||
db8f007ca8 | |||
8d4e0d2a89 | |||
abdce5a30d | |||
86aaa5d5b1 | |||
|
06aef16a5d | ||
|
506fcd481b | ||
|
7971fce1b6 | ||
|
fdaf9d81f8 | ||
|
29d5474e40 | ||
|
720546f99b | ||
|
21e5b5b659 | ||
|
0b92511070 | ||
|
b57ea909b4 | ||
|
991121f9d8 | ||
|
f134ea6b5f | ||
|
2b3b7c189d | ||
|
51e700a2ad | ||
|
a763880dac | ||
|
f4e0552a61 | ||
|
e9facb70f5 | ||
|
71ed5445c3 | ||
|
f0cea7706c | ||
|
8a15cd0d1c | ||
|
bb8678e486 | ||
|
aeb581dced | ||
|
ee36444dc7 | ||
|
5ea69acaf8 | ||
|
b2989b0eb5 | ||
|
ceaf44950d | ||
|
6dbe1dc14c | ||
|
7b07b17e13 | ||
|
a1ed6248bf | ||
|
c7a622eadf | ||
|
2134f027e7 | ||
|
bb8e6938a6 | ||
|
d17dc79e24 | ||
|
68584fd5fd | ||
|
c3bb3266a4 | ||
|
6501cb0d1b | ||
|
89c417ae41 | ||
|
b0ad026724 | ||
|
db1c5070db | ||
|
f220213f38 | ||
|
bb453012c8 | ||
|
e5c38220a2 | ||
|
cf94b2570d | ||
|
ce1be2d1c8 | ||
|
2ae715a936 | ||
|
3e5996aee4 | ||
|
7de8989806 | ||
|
bdec361003 | ||
|
7e7b238c34 | ||
|
f06d766ffa | ||
|
4495db6d77 | ||
|
35c6d3e19f | ||
|
670e3c9b12 | ||
|
47d6193733 | ||
|
8cf496c2ae | ||
|
0444ef9c46 | ||
|
3d43eafa14 | ||
|
a1383c9b7a | ||
|
5dab51356d | ||
|
f08d9e0e8e | ||
|
aaa0c83514 | ||
|
899df2a574 | ||
|
6181fda6c6 | ||
|
303837765a | ||
|
41e46a983e | ||
|
31f1192de0 | ||
|
c60127798c | ||
|
22457f7f49 | ||
|
e29dc3860e | ||
|
cf421fe32e | ||
|
1c80c5f56a | ||
|
ff33bec539 | ||
|
1aca5f00ab | ||
|
18860dd3e5 | ||
|
e1bdbff6ac | ||
|
ccaefdeb5e | ||
|
7810cfc993 | ||
|
e6e2b7567f | ||
|
44361f14f6 | ||
|
a1f2fab981 | ||
|
f5dcc979bf | ||
|
01b95a3fd4 | ||
|
c1376ddf8f | ||
|
77713154d0 | ||
|
a69657c8e6 | ||
|
8b92ce23e4 | ||
|
e554cda023 | ||
|
0478838734 | ||
|
65b77a3b60 | ||
|
a36b8e7c22 | ||
|
c2885cb0cc | ||
|
126507f87f | ||
|
13aefab82b | ||
|
32866bab90 | ||
|
5016a5b175 | ||
|
976292fc4c | ||
|
d105130eae | ||
|
2d856bc24e | ||
|
b1766b0ac5 | ||
|
9e1d58f972 | ||
|
103a63494e | ||
|
dd4a338a4c | ||
|
fc554ce855 | ||
|
5ed4f1e3dc | ||
|
2063900e40 | ||
|
87a86e1de0 | ||
|
7cc8b14555 | ||
|
f47f504ada | ||
|
f42fc8a17c | ||
|
6912d01d2c | ||
|
cc28f00377 | ||
|
dc68ba2397 | ||
|
2dd7c48786 | ||
|
508afb9954 | ||
|
2f767d7d31 | ||
|
7c68ade822 | ||
|
b0a93298cb | ||
|
b0461baca0 | ||
|
0dd4837960 | ||
|
37d4739ea9 | ||
|
66bfacadb6 | ||
|
9949210f89 | ||
|
6071755a23 | ||
|
de15e693e9 | ||
|
fefbf3ce83 | ||
|
ad8c8de231 | ||
|
f908c8db04 | ||
|
9d2420920c | ||
|
d77e872858 | ||
|
d9ba49392d | ||
|
8c59b44de1 | ||
|
e48289b953 | ||
|
757f661a22 | ||
|
0be7c03f81 | ||
|
47c5168e4b | ||
|
5564e354b4 | ||
|
c769dcf49a | ||
|
0585807c1e | ||
|
4804cebfcd | ||
|
d8219cc2eb | ||
|
5e38fa05e2 | ||
|
ab31f2cefa | ||
|
933a1367c4 | ||
|
28dc2c3739 | ||
|
1aaa427dac | ||
|
388f4593f1 | ||
|
6e477bef89 | ||
|
72f730aaa6 | ||
|
1ecab822f4 | ||
|
a9f18f6d61 | ||
|
241dbcd36f | ||
|
3cb71dce37 | ||
|
9d039b3f58 | ||
|
bd310dbc28 | ||
|
3fcf066e66 | ||
|
c33c50005c | ||
|
29197c56ee | ||
|
ef230ae278 | ||
|
90a87a73e1 | ||
|
d89b457c78 | ||
|
111df40c91 | ||
|
6d2dd68108 | ||
|
81c1806603 | ||
|
c0bf588334 | ||
|
cf2801288f | ||
|
8e68e6e974 | ||
|
a95c91f640 | ||
|
7094bca4f4 | ||
|
ed9340f261 | ||
|
42cb54bf72 | ||
|
a981965452 | ||
|
bf54424109 | ||
|
05788794cd | ||
|
c6c3a3a377 | ||
|
e29028ec0e | ||
|
c513a3e80b | ||
|
9b2db3957e | ||
|
c2298f9995 | ||
|
74bfcf49f1 | ||
|
56eea551fb | ||
|
19fde5c7fc | ||
|
8a3670f51d | ||
|
5aefd0dea0 | ||
|
af3b4b1d97 | ||
|
ad6d96890c | ||
|
8020075b98 | ||
|
dd4bbab000 | ||
|
907a88c6ea | ||
|
0b688dea64 | ||
|
2bfdb557d1 | ||
|
f62f8ff273 | ||
|
ae9748a649 | ||
|
007548623d | ||
|
285b40091f | ||
|
4c67af284c | ||
|
684f32c481 | ||
|
597d4ea7d1 | ||
|
0867248df3 | ||
|
313f716613 | ||
|
c98c50f401 | ||
|
a5d260a340 | ||
|
4ba24892fc | ||
|
1c76b26541 | ||
|
2ef158851d | ||
|
e795ba1573 | ||
|
f9c47cbac6 | ||
|
efbd29a70a | ||
|
8fbddfe40d | ||
|
ca183eed7e | ||
|
d9b03b30f6 | ||
910082305d | |||
|
16d9ee72bb | ||
|
90d52176f2 | ||
|
82e67c69e6 | ||
|
f01c445b25 | ||
|
0598da9a2d | ||
|
ac096dd663 | ||
|
fbdb48dc08 | ||
|
2d7cdff431 | ||
|
9b3cfdab78 | ||
|
5efcec96ec | ||
|
2b035003e2 | ||
|
dd6f8bace4 | ||
|
cad848ce8e | ||
|
9bc7126509 | ||
|
b9830714c7 | ||
|
ae8c202dbe | ||
|
aea0436cbc | ||
|
acb8c3455f | ||
|
52a5a78861 | ||
|
e08677eabe | ||
|
3dd44c3243 | ||
|
ee58c53b83 | ||
|
0600abc0c9 | ||
|
8e34a0f267 | ||
|
a8e2c9ef3b | ||
|
6b18628b7c | ||
|
d232546e8c | ||
|
f20378c4b4 | ||
|
42779dc952 | ||
|
9aab60fe9c | ||
|
e1f35c56e9 | ||
|
92e3e5db31 | ||
|
3855087abd | ||
|
ca329a4db7 | ||
|
e32d8f9b6b | ||
|
23975cd271 | ||
|
f4e27a6e31 | ||
|
4424137da9 | ||
|
ac82fad041 | ||
fd5af534af | |||
|
06e4bb93c7 | ||
|
8a966ac5ae | ||
|
5eb2a3f80c | ||
|
e1bf3dbcea | ||
|
67ea7ef5ae | ||
|
3fc6f13c6a | ||
|
ce62a19aa0 | ||
|
d09e415720 | ||
|
503c4c4ed3 | ||
fff07141b6 | |||
80178a80f6 | |||
1d824c135e | |||
|
1318ecb97a | ||
|
e3857a75d0 | ||
|
f3ae97f7f8 | ||
|
b472601fbc | ||
|
d0a6b8e951 | ||
|
dd45877e1c | ||
|
b6edc4913b | ||
|
5c72107b90 | ||
|
c4028ee8c6 | ||
|
a7b0609389 | ||
|
204aef1583 | ||
|
c563fe8efa | ||
|
1b1ddad29e | ||
|
7fa5b1d62e | ||
|
e353289594 | ||
|
210a7d0fdd | ||
|
a373d21deb | ||
|
f2039927db | ||
|
c020d69150 | ||
|
f27fd63e29 | ||
|
857472ba72 | ||
|
1aca150711 | ||
|
8593174685 | ||
|
2bb8c6df92 | ||
|
54fb5eb47a | ||
|
95b6d019dd | ||
|
ed1c4c0e53 | ||
|
6fd16fcc95 | ||
|
8ec88a84a2 | ||
|
8e7b653bd3 | ||
|
710dd576d4 | ||
|
3e3d3622dc | ||
|
916688b47c | ||
|
1c2912285b | ||
|
47e87c0457 | ||
|
910e0c5712 | ||
|
00866bde38 | ||
|
da4020e8c6 | ||
|
bf1d744b34 | ||
|
c9dd8752c1 | ||
|
22064af280 | ||
|
d9a06f3f1e | ||
|
a03b16e60a | ||
|
6897cb6c0b | ||
|
082c075290 | ||
|
3a35705576 | ||
|
313c587314 | ||
|
401e09cdee | ||
|
b35ca66983 | ||
|
24d64b91ac | ||
|
c5d4e425e4 | ||
|
f9f05f12fd | ||
|
e47e38003e | ||
|
6802e297a8 | ||
ef7c7601b8 | |||
5dda532435 | |||
76de50fc6a | |||
|
ff9101233c | ||
44363cc3e8 | |||
|
577c1f7141 | ||
|
fa8f5dca6c | ||
|
d2cf5489b3 | ||
|
1fe561222c | ||
|
3e60f4b8e1 | ||
|
131e70c729 | ||
|
a8ce60f33e | ||
|
15cf33c850 | ||
|
d568be81ec | ||
|
0929b54f9d | ||
|
215dab7074 | ||
|
013e667452 | ||
b05cedd44c | |||
b73395f840 | |||
|
b9fa32a96a | ||
0cb4088f6c | |||
|
7677fa4607 | ||
|
226744e7f7 | ||
|
ad47f33d16 | ||
|
bf1886a534 | ||
|
f61785fc5e | ||
|
d82ab8f93c | ||
|
62be008849 | ||
|
25c8ddd667 | ||
|
62e0f34ef6 | ||
|
03611598e1 | ||
|
fc9c148753 | ||
|
87dc324d74 | ||
|
e5240b10ca | ||
|
f876c33603 | ||
|
a56505a3d0 | ||
|
ecb4c2569e | ||
|
6ed22109af | ||
|
7fbe309f70 | ||
|
c8ba0b63b7 | ||
|
3fdff6d329 | ||
|
38b1beeef5 | ||
|
4431fe9dd4 | ||
|
5bf48a83f0 | ||
|
204995be22 | ||
|
958a469ba7 | ||
|
c1698252aa | ||
000cbada55 |
52
.gitea/workflows/CICD_local_test.yaml
Normal file
52
.gitea/workflows/CICD_local_test.yaml
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
---
|
||||||
|
name: local-test分支构建发布到本地服务器
|
||||||
|
run-name: ${{ gitea.actor }} is testing out Gitea Actions
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- local-test
|
||||||
|
jobs:
|
||||||
|
Build-Publish:
|
||||||
|
runs-on: joylink-local233
|
||||||
|
steps:
|
||||||
|
- name: 检出代码
|
||||||
|
uses: https://gitea.joylink.club/actions/checkout@v4
|
||||||
|
with:
|
||||||
|
submodules: recursive
|
||||||
|
- name: 设置node环境
|
||||||
|
uses: https://gitea.joylink.club/actions/local-setup-node@v0.1.1
|
||||||
|
with:
|
||||||
|
version: v14.21.3
|
||||||
|
cache: yarn
|
||||||
|
cache-dependency-path: yarn.lock
|
||||||
|
- name: 安装yarn,并build
|
||||||
|
run: |
|
||||||
|
node -v
|
||||||
|
npm config set registry https://registry.npmmirror.com
|
||||||
|
npm install --global yarn
|
||||||
|
yarn config set registry https://registry.npmmirror.com
|
||||||
|
yarn
|
||||||
|
yarn run buildas local-test
|
||||||
|
tar czvf ./dist-local-test.tar.gz ./dist
|
||||||
|
- name: 打包发送到服务器
|
||||||
|
uses: https://gitea.joylink.club/appleboy/scp-action@v0.1.7
|
||||||
|
with:
|
||||||
|
host: ${{ secrets.LOCAL_233_SSH_HOST }}
|
||||||
|
username: ${{ secrets.LOCAL_233_SSH_USER }}
|
||||||
|
password: ${{ secrets.LOCAL_233_SSH_PASSWORD }}
|
||||||
|
port: ${{ secrets.LOCAL_233_SSH_PORT }}
|
||||||
|
source: ./dist-local-test.tar.gz
|
||||||
|
target: /home/minio/oss/rt-sim-training-client
|
||||||
|
overwrite: true
|
||||||
|
- name: SSH连接并解压发布
|
||||||
|
uses: https://gitea.joylink.club/appleboy/ssh-action@v1.0.3
|
||||||
|
with:
|
||||||
|
host: ${{ secrets.LOCAL_233_SSH_HOST }}
|
||||||
|
port: ${{ secrets.LOCAL_233_SSH_PORT }}
|
||||||
|
username: ${{ secrets.LOCAL_233_SSH_USER }}
|
||||||
|
password: ${{ secrets.LOCAL_233_SSH_PASSWORD }}
|
||||||
|
script: |
|
||||||
|
cd /home/minio/oss/rt-sim-training-client
|
||||||
|
rm -rf /usr/local/joylink/client/cbtc
|
||||||
|
mkdir -p /usr/local/joylink/client
|
||||||
|
tar xz --strip 2 -C /usr/local/joylink/client -f dist-local-test.tar.gz
|
52
.gitea/workflows/CICD_master.yaml
Normal file
52
.gitea/workflows/CICD_master.yaml
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
name: master分支构建发布到公网服务器
|
||||||
|
run-name: ${{ gitea.actor }} is testing out Gitea Actions
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
Build-Publish:
|
||||||
|
runs-on: joylink-local233
|
||||||
|
steps:
|
||||||
|
- name: 检出代码
|
||||||
|
uses: https://gitea.joylink.club/actions/checkout@v4
|
||||||
|
with:
|
||||||
|
submodules: recursive
|
||||||
|
- name: 设置node环境
|
||||||
|
uses: https://gitea.joylink.club/actions/local-setup-node@v0.1.1
|
||||||
|
with:
|
||||||
|
version: 'v14.21.3'
|
||||||
|
cache: 'yarn'
|
||||||
|
cache-dependency-path: 'yarn.lock'
|
||||||
|
- name: 安装yarn,并build
|
||||||
|
run: |
|
||||||
|
node -v
|
||||||
|
npm config set registry https://registry.npmmirror.com
|
||||||
|
npm install --global yarn
|
||||||
|
yarn config set registry https://registry.npmmirror.com
|
||||||
|
yarn
|
||||||
|
yarn run build
|
||||||
|
tar czvf ./dist-master.tar.gz ./dist
|
||||||
|
- name: 打包发送到服务器
|
||||||
|
uses: https://gitea.joylink.club/appleboy/scp-action@v0.1.7
|
||||||
|
with:
|
||||||
|
host: ${{ secrets.PUB1_DOMAIN_SSH_HOST }}
|
||||||
|
port: ${{ secrets.PUB1_DOMAIN_SSH_PORT }}
|
||||||
|
username: ${{ secrets.PUB1_DOMAIN_SSH_USER }}
|
||||||
|
password: ${{ secrets.PUB1_DOMAIN_SSH_PASSWORD }}
|
||||||
|
source: ./dist-master.tar.gz
|
||||||
|
target: /mnt/data/published/rt-sim-training-client
|
||||||
|
overwrite: true
|
||||||
|
- name: SSH连接并解压发布
|
||||||
|
uses: https://gitea.joylink.club/appleboy/ssh-action@v1.0.3
|
||||||
|
with:
|
||||||
|
host: ${{ secrets.PUB1_DOMAIN_SSH_HOST }}
|
||||||
|
port: ${{ secrets.PUB1_DOMAIN_SSH_PORT }}
|
||||||
|
username: ${{ secrets.PUB1_DOMAIN_SSH_USER }}
|
||||||
|
password: ${{ secrets.PUB1_DOMAIN_SSH_PASSWORD }}
|
||||||
|
script: |
|
||||||
|
cd /mnt/data/published/rt-sim-training-client
|
||||||
|
rm -rf /usr/local/joylink/client/cbtc
|
||||||
|
mkdir -p /usr/local/joylink/client
|
||||||
|
tar xz --strip 2 -C /usr/local/joylink/client -f dist-master.tar.gz
|
1
.gitignore
vendored
1
.gitignore
vendored
@ -4,7 +4,6 @@ dist/
|
|||||||
npm-debug.log*
|
npm-debug.log*
|
||||||
yarn-debug.log*
|
yarn-debug.log*
|
||||||
yarn-error.log*
|
yarn-error.log*
|
||||||
package-lock.json
|
|
||||||
tests/**/coverage/
|
tests/**/coverage/
|
||||||
src/utils/baseUrl.js*
|
src/utils/baseUrl.js*
|
||||||
|
|
||||||
|
@ -4,3 +4,6 @@ English | [简体中文](./README-zh.md)
|
|||||||
|
|
||||||
|
|
||||||
Copyright (c) 2018-present Joylink
|
Copyright (c) 2018-present Joylink
|
||||||
|
### 项目环境
|
||||||
|
- "node": "<=14.21.3";
|
||||||
|
- "webpack": ">=4 < 4.29";
|
@ -19,6 +19,8 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@stomp/stompjs": "^5.4.4",
|
"@stomp/stompjs": "^5.4.4",
|
||||||
|
"@wangeditor/editor": "^5.1.23",
|
||||||
|
"@wangeditor/editor-for-vue": "^1.0.2",
|
||||||
"axios": "^0.18.0",
|
"axios": "^0.18.0",
|
||||||
"dayjs": "^1.11.5",
|
"dayjs": "^1.11.5",
|
||||||
"echarts": "^4.7.0",
|
"echarts": "^4.7.0",
|
||||||
@ -44,6 +46,7 @@
|
|||||||
"vue-i18n": "^8.12.0",
|
"vue-i18n": "^8.12.0",
|
||||||
"vue-quill-editor": "^3.0.6",
|
"vue-quill-editor": "^3.0.6",
|
||||||
"vue-router": "^3.1.6",
|
"vue-router": "^3.1.6",
|
||||||
|
"vue-video-player": "^5.0.1",
|
||||||
"vuedraggable": "^2.24.3",
|
"vuedraggable": "^2.24.3",
|
||||||
"vuex": "^3.1.0",
|
"vuex": "^3.1.0",
|
||||||
"wangeditor": "^4.6.17",
|
"wangeditor": "^4.6.17",
|
||||||
|
416
src/api/contest.js
Normal file
416
src/api/contest.js
Normal file
@ -0,0 +1,416 @@
|
|||||||
|
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,3 +344,13 @@ export function queryTagList(data) {
|
|||||||
data
|
data
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* 获取试卷创建者list
|
||||||
|
*/
|
||||||
|
export function queryPaperCreatorList(data) {
|
||||||
|
return request({
|
||||||
|
url: `/api/v2/paper/composition/list/creatorInfo`,
|
||||||
|
method: 'POST',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
@ -323,3 +323,11 @@ export function isExistEmail(params) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 成工院第三方登录
|
||||||
|
export function cgyThirdLogin(data) {
|
||||||
|
return request({
|
||||||
|
url: '/api/login/cgy/third',
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
});
|
||||||
|
}
|
||||||
|
@ -15,3 +15,20 @@ export function selectQuestionTypeNum(companyId) {
|
|||||||
method: 'get'
|
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,29 +523,6 @@ export function sandTableTrainControl(group, params) {
|
|||||||
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资源 */
|
/** 条件查询仿真中的ISCS资源 */
|
||||||
export function queryIscsResourcesByGroup(group, params) {
|
export function queryIscsResourcesByGroup(group, params) {
|
||||||
return request({
|
return request({
|
||||||
@ -606,3 +583,27 @@ export function enterSimulationByTeacher(group) {
|
|||||||
method: 'post'
|
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,14 +32,21 @@ export function updateTraining(data) {
|
|||||||
data
|
data
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
/** 更新实训标签 */
|
/** 更新发布实训信息(标签, 描述, 标题) */
|
||||||
export function updateTrainingLabel(data) {
|
export function updateTrainingInfo(data) {
|
||||||
return request({
|
return request({
|
||||||
url: `/api/v2/training/published/update/label`,
|
url: `/api/v2/training/published/update`,
|
||||||
method: 'put',
|
method: 'put',
|
||||||
data
|
data
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
/** 已发布实训转为草稿 */
|
||||||
|
export function saveAsTrainingDraft(trainingId) {
|
||||||
|
return request({
|
||||||
|
url: `/api/v2/training/published/${trainingId}/saveAsDraft`,
|
||||||
|
method: 'post'
|
||||||
|
});
|
||||||
|
}
|
||||||
/** 查询步骤列表 */
|
/** 查询步骤列表 */
|
||||||
export function getTrainingStepList(trainingId) {
|
export function getTrainingStepList(trainingId) {
|
||||||
return request({
|
return request({
|
||||||
|
BIN
src/assets/bg_pis.png
Normal file
BIN
src/assets/bg_pis.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 37 KiB |
BIN
src/assets/bg_tms.png
Normal file
BIN
src/assets/bg_tms.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 130 KiB |
BIN
src/assets/icon/icon_zonghe.png
Normal file
BIN
src/assets/icon/icon_zonghe.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.3 KiB |
@ -4,10 +4,10 @@
|
|||||||
<qrcode-vue v-loading="loading" :value="url" :size="400" />
|
<qrcode-vue v-loading="loading" :value="url" :size="400" />
|
||||||
</div>
|
</div>
|
||||||
<div v-if="group" class="qrcodeGroup">
|
<div v-if="group" class="qrcodeGroup">
|
||||||
<span>{{ 'Simulation number:'+group }}</span>
|
<span>{{ $t('global.roomId')+group }}</span>
|
||||||
</div>
|
</div>
|
||||||
<span slot="footer" class="dialog-footer">
|
<span slot="footer" class="dialog-footer">
|
||||||
<el-button @click="doClose">Close</el-button>
|
<el-button @click="doClose">{{ $t('global.close') }}</el-button>
|
||||||
</span>
|
</span>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</template>
|
</template>
|
||||||
|
@ -32,7 +32,7 @@ import trainingManage from './trainingManage';
|
|||||||
import newRouter from './newRouter';
|
import newRouter from './newRouter';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
...enLocale,
|
enLocale,
|
||||||
map,
|
map,
|
||||||
global,
|
global,
|
||||||
router,
|
router,
|
||||||
|
@ -38,6 +38,12 @@ export default {
|
|||||||
permissionManage: 'Permission',
|
permissionManage: 'Permission',
|
||||||
authorityTransferManage: 'Privilege distribution management',
|
authorityTransferManage: 'Privilege distribution management',
|
||||||
userRulesManage: 'User Rights Statistics',
|
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',
|
fileManage: 'File Manage',
|
||||||
frontResourceManage: 'Front-End Resource Management',
|
frontResourceManage: 'Front-End Resource Management',
|
||||||
iscsPrerecordManage: 'ISCS Advance record management',
|
iscsPrerecordManage: 'ISCS Advance record management',
|
||||||
|
@ -107,4 +107,6 @@ export default {
|
|||||||
iscsResourcesManage: 'ISCS Resources Manage',
|
iscsResourcesManage: 'ISCS Resources Manage',
|
||||||
projectManage: 'Project Manage',
|
projectManage: 'Project Manage',
|
||||||
frontProjectConfigManage: 'Front Project Config Manage',
|
frontProjectConfigManage: 'Front Project Config Manage',
|
||||||
}
|
training: 'Training',
|
||||||
|
theory: 'Theory'
|
||||||
|
};
|
||||||
|
@ -51,7 +51,7 @@ export default {
|
|||||||
menuSignal: {
|
menuSignal: {
|
||||||
routeSelect: '进路选排',
|
routeSelect: '进路选排',
|
||||||
routeCancel: '进路取消',
|
routeCancel: '进路取消',
|
||||||
signalBlock: '信号封闭',
|
signalBlock: '信号封锁',
|
||||||
signalDeblock: '信号解封',
|
signalDeblock: '信号解封',
|
||||||
signalReopen: '信号重开',
|
signalReopen: '信号重开',
|
||||||
guideRouteHandle: '引导进路办理',
|
guideRouteHandle: '引导进路办理',
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
export default {
|
export default {
|
||||||
simulation: 'Simulation',
|
simulation: '仿真',
|
||||||
multiplayerSimulation: '多人仿真',
|
multiplayerSimulation: '多人仿真',
|
||||||
regulationSimulation: 'Regulation of the simulation',
|
regulationSimulation: '监管仿真',
|
||||||
teachingManagement: '教学管理',
|
teachingManagement: '教学管理',
|
||||||
classroom: '班级管理',
|
classroom: '班级管理',
|
||||||
student: '学生管理',
|
student: '学生管理',
|
||||||
@ -38,6 +38,12 @@ export default {
|
|||||||
permissionManage: '权限管理',
|
permissionManage: '权限管理',
|
||||||
authorityTransferManage: '权限分发管理',
|
authorityTransferManage: '权限分发管理',
|
||||||
userRulesManage: '用户权限管理',
|
userRulesManage: '用户权限管理',
|
||||||
|
contestDataManage:'竞赛数据管理',
|
||||||
|
contestSubjectManage:'竞赛题目管理',
|
||||||
|
contestTaskManage:'竞赛任务管理',
|
||||||
|
contestSceneManage:'竞赛场景管理',
|
||||||
|
contestTaskScoreManage:'竞赛任务评分管理',
|
||||||
|
contestSeasonManage:'竞赛赛季管理',
|
||||||
fileManage: '文件管理',
|
fileManage: '文件管理',
|
||||||
frontResourceManage: '前端资源管理',
|
frontResourceManage: '前端资源管理',
|
||||||
iscsPrerecordManage: 'ISCS预录管理',
|
iscsPrerecordManage: 'ISCS预录管理',
|
||||||
|
@ -111,4 +111,6 @@ export default {
|
|||||||
iscsResourcesManage: 'ISCS资源管理',
|
iscsResourcesManage: 'ISCS资源管理',
|
||||||
projectManage: '项目管理',
|
projectManage: '项目管理',
|
||||||
frontProjectConfigManage: '前端项目配置管理',
|
frontProjectConfigManage: '前端项目配置管理',
|
||||||
}
|
training: '实训',
|
||||||
|
theory: '理论'
|
||||||
|
};
|
||||||
|
@ -9,7 +9,15 @@ const mapDeviceStyle = {
|
|||||||
'09': 'xian_02',
|
'09': 'xian_02',
|
||||||
'10': 'xian_01', // 西安一号线
|
'10': 'xian_01', // 西安一号线
|
||||||
'11': 'xian_01', // 西安三号线
|
'11': 'xian_01', // 西安三号线
|
||||||
'12': 'ningbo_03' // 宁波三号线
|
'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'
|
||||||
};
|
};
|
||||||
|
|
||||||
export function selectLineCode(code) {
|
export function selectLineCode(code) {
|
||||||
|
@ -396,7 +396,7 @@ export function JobPaneData() {
|
|||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name:"电力调度",
|
name:"工电调度",
|
||||||
value:"dldd",
|
value:"dldd",
|
||||||
text:"负责供电系统的正常运行。",
|
text:"负责供电系统的正常运行。",
|
||||||
picurl:"",
|
picurl:"",
|
||||||
|
@ -17,7 +17,8 @@ const mapDeviceStyle = {
|
|||||||
'16': 'datie_02', // 大铁线路二
|
'16': 'datie_02', // 大铁线路二
|
||||||
'17':'datie_tky', // 铁科院大铁线路
|
'17':'datie_tky', // 铁科院大铁线路
|
||||||
'18':'datie_jd1a',
|
'18':'datie_jd1a',
|
||||||
'19': 'datie_ksk' // 大铁 卡斯柯
|
'19': 'datie_ksk', // 大铁 卡斯柯
|
||||||
|
'20': 'ningbo_special'
|
||||||
};
|
};
|
||||||
|
|
||||||
export function selectLineCode(code) {
|
export function selectLineCode(code) {
|
||||||
|
@ -346,14 +346,15 @@ class SkinCode extends defaultStyle {
|
|||||||
|
|
||||||
this[deviceType.StationTurnBack] = { // 站后折返
|
this[deviceType.StationTurnBack] = { // 站后折返
|
||||||
lamp: {
|
lamp: {
|
||||||
fill: '#f1f1f1', // 填充色
|
fill: '#ccc', // 填充色
|
||||||
radiusR: 7 // 控制灯大小
|
radiusR: 6,
|
||||||
|
otherFill: '#0F0' // 控制灯大小
|
||||||
},
|
},
|
||||||
text: {
|
text: {
|
||||||
titleTextShow: false,
|
titleTextShow: false,
|
||||||
fontWeight: 580,
|
fontWeight: 580,
|
||||||
fontSize: 10,
|
fontSize: 10,
|
||||||
distance: 10
|
distance: 5
|
||||||
},
|
},
|
||||||
rect: {
|
rect: {
|
||||||
fill: 'rgba(0,0,0,0)',
|
fill: 'rgba(0,0,0,0)',
|
||||||
|
@ -415,24 +415,24 @@ class SkinCode extends defaultStyle {
|
|||||||
lineWidth: 1
|
lineWidth: 1
|
||||||
},
|
},
|
||||||
emergencyControl: { // 紧急站控
|
emergencyControl: { // 紧急站控
|
||||||
show: true,
|
show: false,
|
||||||
offset: { x: 10, y: 0 },
|
offset: { x: 0, y: 0 },
|
||||||
text: 'Emergency Ctrl',
|
text: '紧急站控',
|
||||||
arrowShow: false,
|
arrowShow: false,
|
||||||
grayColor: '#7F7F7F'
|
grayColor: '#7F7F7F'
|
||||||
},
|
},
|
||||||
centerControl: { // 中控
|
centerControl: { // 中控
|
||||||
show: true,
|
show: false,
|
||||||
offset: { x: -190, y: 0 },
|
offset: { x: 0, y: 0 },
|
||||||
text: 'Center Ctrl',
|
text: '中控',
|
||||||
buttonShow: false,
|
buttonShow: false,
|
||||||
arrowShow: false,
|
arrowShow: false,
|
||||||
grayColor: '#7F7F7F'
|
grayColor: '#7F7F7F'
|
||||||
},
|
},
|
||||||
substationControl: { // 站控按钮
|
substationControl: { // 站控按钮
|
||||||
show: true,
|
show: false,
|
||||||
offset: { x: -160, y: 0 },
|
offset: { x: 0, y: 0 },
|
||||||
text: 'Station Ctrl',
|
text: '站控',
|
||||||
arrowShow: false,
|
arrowShow: false,
|
||||||
grayColor: '#7F7F7F'
|
grayColor: '#7F7F7F'
|
||||||
},
|
},
|
||||||
@ -444,34 +444,34 @@ class SkinCode extends defaultStyle {
|
|||||||
grayColor: '#7F7F7F'
|
grayColor: '#7F7F7F'
|
||||||
},
|
},
|
||||||
veryControl: {
|
veryControl: {
|
||||||
show: false,
|
show: true,
|
||||||
offset: { x: 50, y: 0 },
|
offset: { x: 0, y: 0 },
|
||||||
lightColor: '#f00',
|
lightColor: '#f00',
|
||||||
defaultColor: '#7F7F7F',
|
defaultColor: '#7F7F7F',
|
||||||
text: 'Very station controlled'
|
text: '非常站控'
|
||||||
|
},
|
||||||
|
selfDiscipline: {
|
||||||
|
show: true,
|
||||||
|
offset: { x: 0, y: 0 },
|
||||||
|
text: '允许自律',
|
||||||
|
defaultColor: '#7F7F7F',
|
||||||
|
lightColor: '#ff0'
|
||||||
},
|
},
|
||||||
// selfDiscipline: {
|
|
||||||
// show: false,
|
|
||||||
// offset: { x: -140, y: 0 },
|
|
||||||
// text: 'Self-regulation allowed',
|
|
||||||
// defaultColor: '#7F7F7F',
|
|
||||||
// lightColor: '#ff0'
|
|
||||||
// },
|
|
||||||
selfDisciplineControl: {
|
selfDisciplineControl: {
|
||||||
show: false,
|
show: true,
|
||||||
offset: { x: -50, y: 0 },
|
offset: { x: 0, y: 0 },
|
||||||
lightColor: '#0f0',
|
lightColor: '#0f0',
|
||||||
defaultColor: '#7F7F7F',
|
defaultColor: '#7F7F7F',
|
||||||
text: 'Self-discipline control'
|
text: '自律控制'
|
||||||
|
},
|
||||||
|
veryControlButton: {
|
||||||
|
offset: { x: 0, y: 0 },
|
||||||
|
text: '非常站控',
|
||||||
|
lightColor: '#ff0',
|
||||||
|
border:true, // 有边框
|
||||||
|
borderLine:1,
|
||||||
|
defaultColor: '#ccc'
|
||||||
},
|
},
|
||||||
// veryControlButton: {
|
|
||||||
// offset: { x: 140, y: 0 },
|
|
||||||
// text: 'Very station controlled',
|
|
||||||
// lightColor: '#ff0',
|
|
||||||
// border:true, // 有边框
|
|
||||||
// borderLine:1,
|
|
||||||
// defaultColor: '#ccc'
|
|
||||||
// },
|
|
||||||
selfDisciplineThree: {
|
selfDisciplineThree: {
|
||||||
offset: { x: 0, y: 0 },
|
offset: { x: 0, y: 0 },
|
||||||
text: '分散自律',
|
text: '分散自律',
|
||||||
@ -487,41 +487,27 @@ class SkinCode extends defaultStyle {
|
|||||||
},
|
},
|
||||||
planControl: {
|
planControl: {
|
||||||
show: true,
|
show: true,
|
||||||
offset: { x: -20, y: 0 },
|
offset: { x: 0, y: 0 },
|
||||||
text: 'Plan Ctrl',
|
text: '计划控制',
|
||||||
lightColor: '#0f0',
|
lightColor: '#0f0',
|
||||||
defaultColor: '#7F7F7F'
|
defaultColor: '#7F7F7F'
|
||||||
},
|
},
|
||||||
centerCommunication: {
|
centerCommunication: {
|
||||||
show: true,
|
show: true,
|
||||||
offset: { x: 100, y: 0 },
|
offset: { x: 0, y: 30 },
|
||||||
text: 'COMM',
|
text: '中心通信',
|
||||||
lightColor: '#FF0000',
|
lightColor: '#FF0000',
|
||||||
defaultColor: '#0f0'
|
defaultColor: '#0f0'
|
||||||
},
|
},
|
||||||
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: {
|
selfDisciplineCommunication: {
|
||||||
show: false,
|
show: true,
|
||||||
offset: { x: 0, y: 30 },
|
offset: { x: 0, y: 30 },
|
||||||
text: '自律机通信',
|
text: '自律机通信',
|
||||||
lightColor: '#7F7F7F',
|
lightColor: '#7F7F7F',
|
||||||
defaultColor: '#0f0'
|
defaultColor: '#0f0'
|
||||||
},
|
},
|
||||||
allowedTurnBack: {
|
allowedTurnBack: {
|
||||||
show: false,
|
show: true,
|
||||||
offset: { x: 0, y: 30 },
|
offset: { x: 0, y: 30 },
|
||||||
text: '允许转回',
|
text: '允许转回',
|
||||||
lightColor: '#ff0',
|
lightColor: '#ff0',
|
||||||
@ -861,18 +847,16 @@ class SkinCode extends defaultStyle {
|
|||||||
trainBody: {
|
trainBody: {
|
||||||
fontFamily: 'consolas',
|
fontFamily: 'consolas',
|
||||||
trainBodyLineWidth: 1, // 车身line宽
|
trainBodyLineWidth: 1, // 车身line宽
|
||||||
changeTrainWidth: true, // 是否根据车身上车组号、服务号、车次号、目的地码显示情况改变列车长度
|
changeTrainWidth: false, // 是否根据车身上车组号、服务号、车次号、目的地码显示情况改变列车长度
|
||||||
specialTrainType: [
|
specialTrainType: [
|
||||||
{
|
{
|
||||||
type: '03',
|
type: '03',
|
||||||
serviceNumber: '---',
|
serviceNumber: '---',
|
||||||
// nameFormat: 'groupNumber:serviceNumber'
|
nameFormat: 'groupNumber:serviceNumber'
|
||||||
nameFormat:'groupNumber'
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: '03',
|
type: '03',
|
||||||
// nameFormat: 'serviceNumber:trainNumber'
|
nameFormat: 'serviceNumber:trainNumber'
|
||||||
nameFormat:'groupNumber'
|
|
||||||
}
|
}
|
||||||
], // 特殊列车类型需设置显示格式
|
], // 特殊列车类型需设置显示格式
|
||||||
lrPadding: 4, // 两边间隔
|
lrPadding: 4, // 两边间隔
|
||||||
@ -881,7 +865,7 @@ class SkinCode extends defaultStyle {
|
|||||||
trainSidelineColor: '#F00',
|
trainSidelineColor: '#F00',
|
||||||
trainSidelineStopColor: '#000',
|
trainSidelineStopColor: '#000',
|
||||||
// trainNameFormat: 'serviceNumber:targetCode'// 列车显示格式
|
// trainNameFormat: 'serviceNumber:targetCode'// 列车显示格式
|
||||||
trainNameFormat:'groupNumber'
|
trainNameFormat:'tripNumber'
|
||||||
},
|
},
|
||||||
directionArrow: {
|
directionArrow: {
|
||||||
},
|
},
|
||||||
@ -970,15 +954,15 @@ class SkinCode extends defaultStyle {
|
|||||||
directionType: [
|
directionType: [
|
||||||
{
|
{
|
||||||
type: 1,
|
type: 1,
|
||||||
lineLShow: false,
|
lineLShow: true,
|
||||||
lineRShow: false,
|
lineRShow: true,
|
||||||
arrowLShow: false,
|
arrowLShow: false,
|
||||||
arrowRShow: true
|
arrowRShow: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 0,
|
type: 0,
|
||||||
lineLShow: false,
|
lineLShow: true,
|
||||||
lineRShow: false,
|
lineRShow: true,
|
||||||
arrowLShow: true,
|
arrowLShow: true,
|
||||||
arrowRShow: false
|
arrowRShow: false
|
||||||
}
|
}
|
||||||
|
@ -189,6 +189,13 @@ class SkinCode extends defaultStyle {
|
|||||||
},
|
},
|
||||||
lowButton:{
|
lowButton:{
|
||||||
display: false // 现地 信号机按钮
|
display: false // 现地 信号机按钮
|
||||||
|
},
|
||||||
|
transmission: { // 传输信号机
|
||||||
|
fillColor: '#f00',
|
||||||
|
fillColorVirtual: '#f00',
|
||||||
|
sideLength: 20,
|
||||||
|
textColor: '#fff',
|
||||||
|
strokeColor: '#00FFFF'
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -441,7 +448,8 @@ class SkinCode extends defaultStyle {
|
|||||||
monolockLocationColor: '#ea282c', // 道岔单锁'定位'颜色
|
monolockLocationColor: '#ea282c', // 道岔单锁'定位'颜色
|
||||||
monolockInversionColor: '#ea282c', // 道岔单锁'反位'颜色
|
monolockInversionColor: '#ea282c', // 道岔单锁'反位'颜色
|
||||||
block: true, // 封锁名称
|
block: true, // 封锁名称
|
||||||
faultFlashing: true // 故障闪烁
|
faultFlashing: true, // 故障闪烁
|
||||||
|
lossRect: true // 道岔失表矩形
|
||||||
},
|
},
|
||||||
sectionAction: {
|
sectionAction: {
|
||||||
flag: false, // 道岔 关联区段显示
|
flag: false, // 道岔 关联区段显示
|
||||||
|
@ -192,6 +192,7 @@ class SkinCode extends defaultStyle {
|
|||||||
closeSignalVerColor: '#FF1F10', // 关闭信号 灯柱竖柱颜色 level 1
|
closeSignalVerColor: '#FF1F10', // 关闭信号 灯柱竖柱颜色 level 1
|
||||||
guideSignalVerColor: '#FFFF00', // 引导信号控制级 灯柱竖柱颜色 level 2
|
guideSignalVerColor: '#FFFF00', // 引导信号控制级 灯柱竖柱颜色 level 2
|
||||||
autoRouteVerColor: '#9DFF6E', // 联锁自动进路颜色
|
autoRouteVerColor: '#9DFF6E', // 联锁自动进路颜色
|
||||||
|
atpLevelColor: '#009600', // ATP级别灯柱颜色
|
||||||
standardVerticalShape: '8', // 灯柱 竖杆 8边型
|
standardVerticalShape: '8', // 灯柱 竖杆 8边型
|
||||||
standardLength: 12, // 高柱长度
|
standardLength: 12, // 高柱长度
|
||||||
standardHeight: 5, // 灯柱高度
|
standardHeight: 5, // 灯柱高度
|
||||||
@ -561,7 +562,7 @@ class SkinCode extends defaultStyle {
|
|||||||
|
|
||||||
this[deviceType.Switch] = {
|
this[deviceType.Switch] = {
|
||||||
shapeFlash: true, // 道岔转动失去表示 道岔遮罩删除
|
shapeFlash: true, // 道岔转动失去表示 道岔遮罩删除
|
||||||
faultNoHandle: true, // 南京二 道岔长闪 道岔无状态 道岔区段 bc 闪烁
|
faultNoHandle: false, // 南京二 道岔长闪 道岔无状态 道岔区段 bc 闪烁 (南京叶老师要求有短闪)
|
||||||
text: {
|
text: {
|
||||||
show: true, // 道岔名称显示
|
show: true, // 道岔名称显示
|
||||||
position: 0, // 区段名称位置 1 上面 -1 下面 0 对称
|
position: 0, // 区段名称位置 1 上面 -1 下面 0 对称
|
||||||
|
870
src/jmapNew/config/skinCode/ningbo_special.js
Normal file
870
src/jmapNew/config/skinCode/ningbo_special.js
Normal file
@ -0,0 +1,870 @@
|
|||||||
|
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,6 +233,13 @@ class SkinCode extends defaultStyle {
|
|||||||
fontSize: 12,
|
fontSize: 12,
|
||||||
distance: 20,
|
distance: 20,
|
||||||
defaultText: 'E'
|
defaultText: 'E'
|
||||||
|
},
|
||||||
|
transmission: { // 传输信号机
|
||||||
|
fillColor: '#f00',
|
||||||
|
fillColorVirtual: '#f00',
|
||||||
|
sideLength: 20,
|
||||||
|
textColor: '#fff',
|
||||||
|
strokeColor: '#00FFFF'
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -282,6 +289,7 @@ class SkinCode extends defaultStyle {
|
|||||||
position: -1, // 扣车标识在站台上显示方向
|
position: -1, // 扣车标识在站台上显示方向
|
||||||
text: 'H', // 扣车显示内容
|
text: 'H', // 扣车显示内容
|
||||||
offset: {x: 8, y: 0}, // 扣车偏移量
|
offset: {x: 8, y: 0}, // 扣车偏移量
|
||||||
|
ibpTrainColor: '#E4EF50', // ibp扣车颜色
|
||||||
centerTrainColor: '#E400E4', // 中心扣车颜色
|
centerTrainColor: '#E400E4', // 中心扣车颜色
|
||||||
andCenterTrainColor: 'red', // 车站+中心扣车颜色
|
andCenterTrainColor: 'red', // 车站+中心扣车颜色
|
||||||
detainTrainTextColor: '#E4EF50', // 车站扣除颜色
|
detainTrainTextColor: '#E4EF50', // 车站扣除颜色
|
||||||
@ -475,7 +483,10 @@ class SkinCode extends defaultStyle {
|
|||||||
spareColor: '#5b5b5b' // 区段显示颜色
|
spareColor: '#5b5b5b' // 区段显示颜色
|
||||||
},
|
},
|
||||||
core: {
|
core: {
|
||||||
length: 10 // 道岔单边长度
|
length: 10, // 道岔单边长度
|
||||||
|
graphShow: true, // 图形显示
|
||||||
|
graphInversionColor: '#FFFF00', // 反位颜色
|
||||||
|
graphLocalColor: '#00FF00' // 定位颜色
|
||||||
},
|
},
|
||||||
jointImg: { // 道岔 A B C D四元素属性配置
|
jointImg: { // 道岔 A B C D四元素属性配置
|
||||||
trapezoidLength: 8 // 直角梯形元素默认长度
|
trapezoidLength: 8 // 直角梯形元素默认长度
|
||||||
|
@ -440,7 +440,7 @@ class Jlmap {
|
|||||||
const trainList = [];
|
const trainList = [];
|
||||||
list.forEach(item => {
|
list.forEach(item => {
|
||||||
const device = this.mapDevice[item];
|
const device = this.mapDevice[item];
|
||||||
if (device && device._type !== deviceType.Switch && device._type !== deviceType.Train) {
|
if (device && device._type !== deviceType.Switch && device._type !== deviceType.Train && device._type !== deviceType.TrainWindow) {
|
||||||
const pictureDevice = store.getters['map/getPictureDeviceByCode'](item);
|
const pictureDevice = store.getters['map/getPictureDeviceByCode'](item);
|
||||||
device._pictureHide = pictureDevice ? pictureDevice.pictureHide : false;
|
device._pictureHide = pictureDevice ? pictureDevice.pictureHide : false;
|
||||||
this.$painter.updatePicture(device);
|
this.$painter.updatePicture(device);
|
||||||
@ -585,7 +585,6 @@ class Jlmap {
|
|||||||
if (elem.hasOwnProperty('applicantId')) {
|
if (elem.hasOwnProperty('applicantId')) {
|
||||||
controlTransferList.push(elem);
|
controlTransferList.push(elem);
|
||||||
}
|
}
|
||||||
if (!elem.applicantId) {
|
|
||||||
const oDevice = this.mapDevice[code] || deviceFactory(type, elem, this.showConfig);
|
const oDevice = this.mapDevice[code] || deviceFactory(type, elem, this.showConfig);
|
||||||
const guideLock = this.mapDevice[oDevice.guideLockCode];
|
const guideLock = this.mapDevice[oDevice.guideLockCode];
|
||||||
const guideLockStatus = {totalGuideLock: elem.totalGuideLock};
|
const guideLockStatus = {totalGuideLock: elem.totalGuideLock};
|
||||||
@ -597,7 +596,6 @@ class Jlmap {
|
|||||||
} else {
|
} else {
|
||||||
this.$painter.update(oDevice);
|
this.$painter.update(oDevice);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
store.commit('map/mapStationStateUpdate');
|
store.commit('map/mapStationStateUpdate');
|
||||||
} else if (elem.deviceType === 'STATION_DIRECTION') {
|
} else if (elem.deviceType === 'STATION_DIRECTION') {
|
||||||
const mapStationDirectionData = store.state.map.mapStationDirectionData;
|
const mapStationDirectionData = store.state.map.mapStationDirectionData;
|
||||||
|
@ -27,7 +27,11 @@ export function parser(data, skinCode, showConfig) {
|
|||||||
zrUtil.each(centralStationList, elem => {
|
zrUtil.each(centralStationList, elem => {
|
||||||
mapDevice[elem.code].stationCode = elem.code;
|
mapDevice[elem.code].stationCode = elem.code;
|
||||||
zrUtil.each(elem.chargeStationCodeList || [], item => {
|
zrUtil.each(elem.chargeStationCodeList || [], item => {
|
||||||
|
if (mapDevice[item]) {
|
||||||
mapDevice[item].stationCode = elem.code;
|
mapDevice[item].stationCode = elem.code;
|
||||||
|
} else {
|
||||||
|
console.error('未获取到设备' + item);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
zrUtil.each(data.sectionList || [], elem => {
|
zrUtil.each(data.sectionList || [], elem => {
|
||||||
|
@ -177,10 +177,7 @@ class ETextName extends Group {
|
|||||||
this.text && this.text.stopAnimation(false);
|
this.text && this.text.stopAnimation(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
setState(bool) {
|
setState() {
|
||||||
if (this.text) {
|
|
||||||
bool ? this.text.show() : this.text.hide();
|
|
||||||
}
|
|
||||||
// 区段名称类暂时不做状态处理
|
// 区段名称类暂时不做状态处理
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -483,6 +483,9 @@ export default class Section extends Group {
|
|||||||
// 哈尔滨线路 南京二 道岔相关区段设置 默认颜色
|
// 哈尔滨线路 南京二 道岔相关区段设置 默认颜色
|
||||||
if (this.style.Switch.sectionAction.flag && model.relSwitchCode && !flag) {
|
if (this.style.Switch.sectionAction.flag && model.relSwitchCode && !flag) {
|
||||||
const switchModel = this.mapDevice[model.relSwitchCode];
|
const switchModel = this.mapDevice[model.relSwitchCode];
|
||||||
|
if (!switchModel) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
const sectionB = switchModel.sectionBCode === model.code ? this.mapDevice[switchModel.sectionBCode] : null;
|
const sectionB = switchModel.sectionBCode === model.code ? this.mapDevice[switchModel.sectionBCode] : null;
|
||||||
const sectionC = switchModel.sectionCCode === model.code ? this.mapDevice[switchModel.sectionCCode] : null;
|
const sectionC = switchModel.sectionCCode === model.code ? this.mapDevice[switchModel.sectionCCode] : null;
|
||||||
const sectionA = this.mapDevice[switchModel.sectionACode];
|
const sectionA = this.mapDevice[switchModel.sectionACode];
|
||||||
@ -599,7 +602,6 @@ export default class Section extends Group {
|
|||||||
// 分路不良
|
// 分路不良
|
||||||
// model.shuntingTypeList.length > 0 &&
|
// model.shuntingTypeList.length > 0 &&
|
||||||
model.badShunt && this.badShuntStatus();
|
model.badShunt && this.badShuntStatus();
|
||||||
this.name.setState(model.nameShow);
|
|
||||||
// 停车倒计时
|
// 停车倒计时
|
||||||
if (this.remainTimeText) {
|
if (this.remainTimeText) {
|
||||||
if (model.stopCountDown) {
|
if (model.stopCountDown) {
|
||||||
|
@ -847,6 +847,15 @@ class Signal extends Group {
|
|||||||
case 'LIGHTING_UNIT_FAULT_HEAD':
|
case 'LIGHTING_UNIT_FAULT_HEAD':
|
||||||
this.lightingUnitFaultHead();
|
this.lightingUnitFaultHead();
|
||||||
break;
|
break;
|
||||||
|
case 'R_WIRE_FAULT':
|
||||||
|
this.lightingUnitFaultName();
|
||||||
|
break;
|
||||||
|
case 'G_WIRE_FAULT':
|
||||||
|
this.lightingUnitFaultName();
|
||||||
|
break;
|
||||||
|
case 'Y_WIRE_FAULT':
|
||||||
|
this.lightingUnitFaultName();
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -922,8 +931,8 @@ class Signal extends Group {
|
|||||||
// 隐藏自动信号和自动进路
|
// 隐藏自动信号和自动进路
|
||||||
setAutoClose() {
|
setAutoClose() {
|
||||||
if (this.style.Signal.auto.autoRouteType != 'text') {
|
if (this.style.Signal.auto.autoRouteType != 'text') {
|
||||||
this.sigAuto.hide();
|
this.sigAuto && this.sigAuto.hide();
|
||||||
this.sigAuto.setColor(this.style.backgroundColor);
|
this.sigAuto && this.sigAuto.setColor(this.style.backgroundColor);
|
||||||
} else {
|
} else {
|
||||||
this.sigName.setColor(this.style.Signal.text.defaultColor);
|
this.sigName.setColor(this.style.Signal.text.defaultColor);
|
||||||
}
|
}
|
||||||
@ -1188,8 +1197,8 @@ class Signal extends Group {
|
|||||||
this.sigPost.setVerColor(this.style.Signal.post.closeSignalVerColor);
|
this.sigPost.setVerColor(this.style.Signal.post.closeSignalVerColor);
|
||||||
} else if (model.level === 1 && this.style.Signal.post.guideSignalVerColor && !model.fleetMode) {
|
} else if (model.level === 1 && this.style.Signal.post.guideSignalVerColor && !model.fleetMode) {
|
||||||
this.sigPost.setVerColor(this.style.Signal.post.guideSignalVerColor);
|
this.sigPost.setVerColor(this.style.Signal.post.guideSignalVerColor);
|
||||||
} else if (model.level === 2 && this.style.Signal.post.autoRouteVerColor && !model.fleetMode) {
|
} else if (model.level === 2 && this.style.Signal.post.atpLevelColor && !model.fleetMode) {
|
||||||
this.sigPost.setVerColor(this.style.Signal.post.autoRouteVerColor);
|
this.sigPost.setVerColor(this.style.Signal.post.atpLevelColor);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.style.Signal.lamp.special) {
|
if (this.style.Signal.lamp.special) {
|
||||||
|
@ -186,68 +186,11 @@ export default class Station extends Group {
|
|||||||
this.createInterconnectedControl(); // 联锁控
|
this.createInterconnectedControl(); // 联锁控
|
||||||
this.createVeryControl();
|
this.createVeryControl();
|
||||||
this.createSelfDiscipline();
|
this.createSelfDiscipline();
|
||||||
this.createTaiguo();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.setState(model);
|
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() { // 大铁
|
createCtcControlMode() { // 大铁
|
||||||
// 非常站控
|
// 非常站控
|
||||||
// const model = this.model;
|
// const model = this.model;
|
||||||
@ -414,7 +357,7 @@ export default class Station extends Group {
|
|||||||
zlevel: this.zlevel,
|
zlevel: this.zlevel,
|
||||||
z: this.z,
|
z: this.z,
|
||||||
style: {
|
style: {
|
||||||
x: computedControlModePoint.x + this.style.Station.StationControl.text.offsetX,
|
x: computedControlModePoint.x,
|
||||||
y: computedControlModePoint.y + this.style.Station.StationControl.text.offsetY,
|
y: computedControlModePoint.y + this.style.Station.StationControl.text.offsetY,
|
||||||
fontWeight: this.style.Station.StationControl.text.fontWeight,
|
fontWeight: this.style.Station.StationControl.text.fontWeight,
|
||||||
fontSize: this.style.Station.StationControl.text.fontSize,
|
fontSize: this.style.Station.StationControl.text.fontSize,
|
||||||
@ -692,7 +635,7 @@ export default class Station extends Group {
|
|||||||
_subType: 'veryControlButtonText',
|
_subType: 'veryControlButtonText',
|
||||||
position: [0, 0],
|
position: [0, 0],
|
||||||
style: {
|
style: {
|
||||||
x: computedControlModePoint.x + this.style.Station.StationControl.lamp.distance * 3 / 2 + this.style.Station.StationControl.veryControlButton.offset.x,
|
x: computedControlModePoint.x + this.style.Station.StationControl.lamp.distance * 3 / 2 + this.style.Station.StationControl.veryControlButton.offset.y,
|
||||||
y: computedControlModePoint.y + this.style.Station.StationControl.veryControlButton.offset.y + this.style.Station.StationControl.lamp.radiusR + this.style.Station.StationControl.text.distance,
|
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,
|
fontWeight: this.style.Station.StationControl.text.fontWeight,
|
||||||
fontSize: this.style.Station.StationControl.text.fontSize,
|
fontSize: this.style.Station.StationControl.text.fontSize,
|
||||||
@ -934,7 +877,9 @@ export default class Station extends Group {
|
|||||||
if (this.graphRoad && model.routeSetMode == 'Manual_Set_Route') {
|
if (this.graphRoad && model.routeSetMode == 'Manual_Set_Route') {
|
||||||
this.graphRoad.setColor(this.style.Station.StationControl.graphRoad.lightColor);
|
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) {
|
// if (this.style.Station.StationControl.disPlayNone) {
|
||||||
// this.stationText && this.stationText.setStyle('textFill', '#fff');
|
// this.stationText && this.stationText.setStyle('textFill', '#fff');
|
||||||
// if (this.model.subheadDisplay) { // 副标题
|
// if (this.model.subheadDisplay) { // 副标题
|
||||||
@ -1009,6 +954,7 @@ export default class Station extends Group {
|
|||||||
this.substationArrowsControl && this.substationArrowsControl.setColor(this.style.Station.StationControl.lamp.grayColor);
|
this.substationArrowsControl && this.substationArrowsControl.setColor(this.style.Station.StationControl.lamp.grayColor);
|
||||||
this.emergencyArrowsControl && this.emergencyArrowsControl.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.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.veryControl && this.veryControl.setColor(this.style.Station.StationControl.veryControl.defaultColor);
|
||||||
this.selfDiscipline && this.selfDiscipline.setColor(this.style.Station.StationControl.selfDiscipline.defaultColor);
|
this.selfDiscipline && this.selfDiscipline.setColor(this.style.Station.StationControl.selfDiscipline.defaultColor);
|
||||||
this.selfDisciplineControl && this.selfDisciplineControl.setColor(this.style.Station.StationControl.selfDisciplineControl.defaultColor);
|
this.selfDisciplineControl && this.selfDisciplineControl.setColor(this.style.Station.StationControl.selfDisciplineControl.defaultColor);
|
||||||
@ -1017,7 +963,6 @@ export default class Station extends Group {
|
|||||||
this.graphRoad && this.graphRoad.setColor(this.style.Station.StationControl.graphRoad.defaultColor);
|
this.graphRoad && this.graphRoad.setColor(this.style.Station.StationControl.graphRoad.defaultColor);
|
||||||
this.planControl && this.planControl.setColor(this.style.Station.StationControl.planControl.defaultColor);
|
this.planControl && this.planControl.setColor(this.style.Station.StationControl.planControl.defaultColor);
|
||||||
this.trainControl && this.trainControl.setColor(this.style.Station.StationControl.trainControl.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.allowedTurnBack && this.allowedTurnBack.setColor(this.style.Station.StationControl.allowedTurnBack.defaultColor);
|
||||||
this.selfDisciplineCommunication && this.selfDisciplineCommunication.setColor(this.style.Station.StationControl.selfDisciplineCommunication.defaultColor);
|
this.selfDisciplineCommunication && this.selfDisciplineCommunication.setColor(this.style.Station.StationControl.selfDisciplineCommunication.defaultColor);
|
||||||
if (this.selfDisciplineThree) {
|
if (this.selfDisciplineThree) {
|
||||||
@ -1065,9 +1010,6 @@ export default class Station extends Group {
|
|||||||
model.controlApplicant && this.handleControlApplicant(model);
|
model.controlApplicant && this.handleControlApplicant(model);
|
||||||
model.allowAutonomy && this.handleAllowAutonomy(model);
|
model.allowAutonomy && this.handleAllowAutonomy(model);
|
||||||
// this.handlePowerUnlockShow(model);
|
// this.handlePowerUnlockShow(model);
|
||||||
if (this.planControl && model.planControl) {
|
|
||||||
this.planControl.setColor(this.style.Station.StationControl.planControl.lightColor);
|
|
||||||
}
|
|
||||||
this.handleGuideLock(model);
|
this.handleGuideLock(model);
|
||||||
if (this.style.Station.syncCentralizeStation && (model.controlMode || model.controller || model.emergencyController != undefined) && model.centralized) {
|
if (this.style.Station.syncCentralizeStation && (model.controlMode || model.controller || model.emergencyController != undefined) && model.centralized) {
|
||||||
model.chargeStationCodeList.forEach(item => {
|
model.chargeStationCodeList.forEach(item => {
|
||||||
@ -1106,7 +1048,25 @@ export default class Station extends Group {
|
|||||||
device && device.instance && device.instance.setCount(countNum);
|
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) {
|
handleGuideLock(model) {
|
||||||
|
@ -18,7 +18,19 @@ 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 x = computedPosition.x + (model.width / 2) * detainD + detainD * style.StationStand.detainCircle.offset.x + detainD * style.StationStand.detainCircle.circleWidth / 2;
|
||||||
const y = computedPosition.y;
|
const y = computedPosition.y;
|
||||||
const radius = style.StationStand.detainCircle.circleWidth / 2;
|
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({
|
this.detainCircle = new Circle({
|
||||||
zlevel: this.model.zlevel,
|
zlevel: this.model.zlevel,
|
||||||
z: this.model.z,
|
z: this.model.z,
|
||||||
@ -61,6 +73,7 @@ class EDetainCircle extends Group {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
this.add(this.detainCircle);
|
this.add(this.detainCircle);
|
||||||
|
this.add(this.ibpDetainCircle);
|
||||||
this.add(this.line1);
|
this.add(this.line1);
|
||||||
this.add(this.line2);
|
this.add(this.line2);
|
||||||
}
|
}
|
||||||
@ -74,6 +87,7 @@ class EDetainCircle extends Group {
|
|||||||
recover() {
|
recover() {
|
||||||
const style = this.model.style;
|
const style = this.model.style;
|
||||||
this.detainCircle && this.detainCircle.show();
|
this.detainCircle && this.detainCircle.show();
|
||||||
|
this.ibpDetainCircle && this.ibpDetainCircle.hide();
|
||||||
this.line1 && this.line1.show();
|
this.line1 && this.line1.show();
|
||||||
this.line2 && this.line2.show();
|
this.line2 && this.line2.show();
|
||||||
this.setColor(style.StationStand.detainCircle.defaultColor);
|
this.setColor(style.StationStand.detainCircle.defaultColor);
|
||||||
@ -88,6 +102,8 @@ class EDetainCircle extends Group {
|
|||||||
this.setColor(style.StationStand.detainCircle.centerTrainColor);
|
this.setColor(style.StationStand.detainCircle.centerTrainColor);
|
||||||
} else if (model.centerHoldTrain) {
|
} else if (model.centerHoldTrain) {
|
||||||
this.setColor(style.StationStand.detainCircle.centerTrainColor);
|
this.setColor(style.StationStand.detainCircle.centerTrainColor);
|
||||||
|
} else if (model.ibpHoldTrain) {
|
||||||
|
this.ibpDetainCircle && this.ibpDetainCircle.show();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -166,6 +166,11 @@ export default class StationTurnBack extends Group {
|
|||||||
this.control && this.control.highlightType3(this.style.ReturnModeGroup.highlightColor);
|
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() {
|
setAshShow() {
|
||||||
|
@ -326,9 +326,9 @@ export default class Switch extends Group {
|
|||||||
}
|
}
|
||||||
|
|
||||||
this.name.getTextRect().animateStyle(true)
|
this.name.getTextRect().animateStyle(true)
|
||||||
.when(0, { textFill: this.style.backgroundColor })
|
.when(0, { textFill: this.style.transparentColor })
|
||||||
.when(1000, { textFill: this.style.Switch.text.borderColor })
|
.when(1000, { textFill: this.style.Switch.text.borderColor })
|
||||||
.when(2000, { textFill: this.style.backgroundColor })
|
.when(2000, { textFill: this.style.transparentColor })
|
||||||
.start();
|
.start();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -354,7 +354,7 @@ export default class Switch extends Group {
|
|||||||
this.lockCircle && this.lockCircle.hide(); // 圆形包围框
|
this.lockCircle && this.lockCircle.hide(); // 圆形包围框
|
||||||
this.lockArc && this.lockArc.hide(); // 圆形单锁框
|
this.lockArc && this.lockArc.hide(); // 圆形单锁框
|
||||||
this.name.getNameText().stopAnimation(false);
|
this.name.getNameText().stopAnimation(false);
|
||||||
this.name.getTextRect().setStyle({ fill: this.style.backgroundColor });
|
this.name.getTextRect().setStyle({ fill: this.style.transparentColor });
|
||||||
this.shapeModelC && this.shapeModelC.hide(); // 形状 C
|
this.shapeModelC && this.shapeModelC.hide(); // 形状 C
|
||||||
this.shapeModelA && this.shapeModelA.hide(); // 形状 A
|
this.shapeModelA && this.shapeModelA.hide(); // 形状 A
|
||||||
this.shapeModelB && this.shapeModelB.hide(); // 形状 B
|
this.shapeModelB && this.shapeModelB.hide(); // 形状 B
|
||||||
@ -474,12 +474,6 @@ export default class Switch extends Group {
|
|||||||
this.specialCircle && this.specialCircle.animate();
|
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) {
|
if (this.style.Switch.jointImg.loseNameFlash) {
|
||||||
this.name.getNameText().animateStyle(true)
|
this.name.getNameText().animateStyle(true)
|
||||||
.when(0, { textFill: this.style.backgroundColor })
|
.when(0, { textFill: this.style.backgroundColor })
|
||||||
@ -509,6 +503,14 @@ 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
|
// stopAnimation
|
||||||
this.shapeModelB.stopAnimation(false);
|
this.shapeModelB.stopAnimation(false);
|
||||||
this.shapeModelC.stopAnimation(false);
|
this.shapeModelC.stopAnimation(false);
|
||||||
@ -624,7 +626,7 @@ export default class Switch extends Group {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (this.style.Switch.core.specialCircle) {
|
if (this.style.Switch.core.specialCircle) {
|
||||||
this.name.getTextRect().setStyle({ fill: this.style.backgroundColor });
|
this.name.getTextRect().setStyle({ fill: this.style.transparentColor });
|
||||||
this.setTextColor(this.style.Switch.text.guideMasterLockColor);
|
this.setTextColor(this.style.Switch.text.guideMasterLockColor);
|
||||||
} else {
|
} else {
|
||||||
this.setTextColor(this.style.Switch.text.monolockLocationColor);
|
this.setTextColor(this.style.Switch.text.monolockLocationColor);
|
||||||
@ -834,7 +836,6 @@ export default class Switch extends Group {
|
|||||||
// N-定位 R-反位 NO-无(失表) EX-挤叉
|
// N-定位 R-反位 NO-无(失表) EX-挤叉
|
||||||
|
|
||||||
// model.pos = 'EX';
|
// model.pos = 'EX';
|
||||||
|
|
||||||
if (model.pos == 'N') {
|
if (model.pos == 'N') {
|
||||||
this.switchPosition = 'normal';
|
this.switchPosition = 'normal';
|
||||||
this.setLocationAction(model); /** 定位*/
|
this.setLocationAction(model); /** 定位*/
|
||||||
@ -910,7 +911,7 @@ export default class Switch extends Group {
|
|||||||
this.setHasTextBorder(1, this.style.Switch.text.fpLockBorderColor);
|
this.setHasTextBorder(1, this.style.Switch.text.fpLockBorderColor);
|
||||||
}
|
}
|
||||||
if (this.style.Switch.core.specialCircle) {
|
if (this.style.Switch.core.specialCircle) {
|
||||||
this.name.getTextRect().setStyle({ fill: this.style.backgroundColor });
|
this.name.getTextRect().setStyle({ fill: this.style.transparentColor });
|
||||||
this.setTextColor(this.style.Switch.text.fpLockColor);
|
this.setTextColor(this.style.Switch.text.fpLockColor);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,7 @@ import Group from 'zrender/src/container/Group';
|
|||||||
import TrainBodyBox from './TrainBodyBox';
|
import TrainBodyBox from './TrainBodyBox';
|
||||||
// import '../StationStand/EDetain';
|
// import '../StationStand/EDetain';
|
||||||
import ETextName from '../element/ETextName'; // 名称文字 (共有)
|
import ETextName from '../element/ETextName'; // 名称文字 (共有)
|
||||||
// import EMouse from './EMouse';
|
import EMouse from './EMouse';
|
||||||
import store from '@/store/index';
|
import store from '@/store/index';
|
||||||
import Circle from 'zrender/src/graphic/shape/Circle';
|
import Circle from 'zrender/src/graphic/shape/Circle';
|
||||||
import BoundingRect from 'zrender/src/core/BoundingRect';
|
import BoundingRect from 'zrender/src/core/BoundingRect';
|
||||||
@ -21,26 +21,26 @@ export default class TrainBody extends Group {
|
|||||||
}
|
}
|
||||||
|
|
||||||
createMouse() {
|
createMouse() {
|
||||||
// this.mouseEvent = new EMouse(this);
|
this.mouseEvent = new EMouse(this);
|
||||||
// this.add(this.mouseEvent);
|
this.add(this.mouseEvent);
|
||||||
// if (this.deviceModel.__down) {
|
if (this.deviceModel.__down) {
|
||||||
// store.dispatch('map/setTrainDetails', this.deviceModel);
|
store.dispatch('map/setTrainDetails', this.deviceModel);
|
||||||
// this.mouseEvent.mouseover();
|
this.mouseEvent.mouseover();
|
||||||
// }
|
}
|
||||||
// if (this.deviceModel.__click) {
|
if (this.deviceModel.__click) {
|
||||||
// this.mouseEvent.mouseClick();
|
this.mouseEvent.mouseClick();
|
||||||
// }
|
}
|
||||||
// this.on('mouseover', () => {
|
this.on('mouseover', () => {
|
||||||
// store.dispatch('map/setTrainDetails', this.deviceModel);
|
store.dispatch('map/setTrainDetails', this.deviceModel);
|
||||||
// this.mouseEvent.mouseover();
|
this.mouseEvent.mouseover();
|
||||||
// });
|
});
|
||||||
// this.on('mouseout', () => {
|
this.on('mouseout', () => {
|
||||||
// store.dispatch('map/setTrainDetails', null);
|
store.dispatch('map/setTrainDetails', null);
|
||||||
// this.mouseEvent.mouseout();
|
this.mouseEvent.mouseout();
|
||||||
// });
|
});
|
||||||
// this.on('click', () => {
|
this.on('click', () => {
|
||||||
// this.mouseEvent.mouseClick();
|
this.mouseEvent.mouseClick();
|
||||||
// });
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
create() {
|
create() {
|
||||||
@ -261,12 +261,13 @@ export default class TrainBody extends Group {
|
|||||||
this.add(this.travelNum);
|
this.add(this.travelNum);
|
||||||
}
|
}
|
||||||
if (style.Train.common.hasDelayTime) {
|
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({
|
this.delayTime = new ETextName({
|
||||||
zlevel: model.zlevel,
|
zlevel: model.zlevel,
|
||||||
z: model.z + 1,
|
z: model.z + 1,
|
||||||
x: parseInt(model.point.x + style.Train.delayTime.trainDelayTimeOffset.x),
|
x: parseInt(model.point.x + style.Train.delayTime.trainDelayTimeOffset.x),
|
||||||
y: parseInt(model.point.y + style.Train.delayTime.trainDelayTimeOffset.y),
|
y: parseInt(model.point.y + style.Train.delayTime.trainDelayTimeOffset.y),
|
||||||
text: model.dt > 0 ? '+' + model.dt : model.dt,
|
text: time,
|
||||||
textFill: '#DADA00',
|
textFill: '#DADA00',
|
||||||
textStroke: style.trainTextColor,
|
textStroke: style.trainTextColor,
|
||||||
textStrokeWidth: 0,
|
textStrokeWidth: 0,
|
||||||
@ -308,12 +309,12 @@ export default class TrainBody extends Group {
|
|||||||
setTrainBorderColor(color) {
|
setTrainBorderColor(color) {
|
||||||
this.trainBodyBox && this.trainBodyBox.setColor('stroke', color);
|
this.trainBodyBox && this.trainBodyBox.setColor('stroke', color);
|
||||||
}
|
}
|
||||||
setHShow(isShow) {
|
setHShow(isShow, parking) {
|
||||||
if (this.textH) {
|
if (this.textH) {
|
||||||
isShow ? this.textH.show() : this.textH.hide();
|
isShow ? this.textH.show() : this.textH.hide();
|
||||||
}
|
}
|
||||||
if (this.style.Train.common.HSDASpliceShow) {
|
if (this.style.Train.common.HSDASpliceShow && isShow) {
|
||||||
isShow ? this.trainBodyBox.buckleTrain() : this.trainBodyBox.release();
|
this.trainBodyBox.buckleTrain(parking);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
setSShow(isShow) {
|
setSShow(isShow) {
|
||||||
@ -550,9 +551,12 @@ export default class TrainBody extends Group {
|
|||||||
trainBodyFault() {
|
trainBodyFault() {
|
||||||
this.trainBodyBox && this.trainBodyBox.trainBodyFault();
|
this.trainBodyBox && this.trainBodyBox.trainBodyFault();
|
||||||
}
|
}
|
||||||
untrainBodyFault() {
|
recoverTrainBoxAnimation() {
|
||||||
this.trainBodyBox && this.trainBodyBox.untrainBodyFault();
|
this.trainBodyBox && this.trainBodyBox.recoverAnimation();
|
||||||
}
|
}
|
||||||
|
// untrainBodyFault() {
|
||||||
|
// this.trainBodyBox && this.trainBodyBox.untrainBodyFault();
|
||||||
|
// }
|
||||||
updateTextPosition(point) {
|
updateTextPosition(point) {
|
||||||
this.mouseEvent.updateTextPosition(point);
|
this.mouseEvent.updateTextPosition(point);
|
||||||
}
|
}
|
||||||
|
@ -38,10 +38,10 @@ export default class TrainBodyBox extends Group {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 列车扣车
|
// 列车扣车
|
||||||
buckleTrain() {
|
buckleTrain(parking) {
|
||||||
if (this.trainBodyBox) {
|
if (this.trainBodyBox) {
|
||||||
|
if (parking) { // 列车停稳状态下开始闪烁
|
||||||
this.trainBodyBox.setStyle('fill', 'yellow');
|
this.trainBodyBox.setStyle('fill', 'yellow');
|
||||||
if (!this.model.speed) { // 列车停稳状态下开始闪烁
|
|
||||||
this.trainBodyBox.animateStyle(true)
|
this.trainBodyBox.animateStyle(true)
|
||||||
.when(0, { fill: this.model.style.backgroundColor })
|
.when(0, { fill: this.model.style.backgroundColor })
|
||||||
.when(1000, { fill: 'yellow' })
|
.when(1000, { fill: 'yellow' })
|
||||||
@ -50,13 +50,13 @@ export default class TrainBodyBox extends Group {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 列车放行
|
// // 列车放行
|
||||||
release() {
|
// release() {
|
||||||
if (this.trainBodyBox) {
|
// if (this.trainBodyBox) {
|
||||||
this.trainBodyBox.setStyle('fill', this.model.style.Train.trainBody.trainBodyFillColor);
|
// this.trainBodyBox.setStyle('fill', this.model.style.Train.trainBody.trainBodyFillColor);
|
||||||
this.trainBodyBox.stopAnimation(false);
|
// this.trainBodyBox.stopAnimation(false);
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
// 西安二号线 列车停车状态 闪烁红色
|
// 西安二号线 列车停车状态 闪烁红色
|
||||||
trainBodyFault() {
|
trainBodyFault() {
|
||||||
if (this.trainBodyBox) {
|
if (this.trainBodyBox) {
|
||||||
@ -69,8 +69,14 @@ export default class TrainBodyBox extends Group {
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
// 西安二号线 列车取消停车状态
|
// // 西安二号线 列车取消停车状态
|
||||||
untrainBodyFault() {
|
// untrainBodyFault() {
|
||||||
|
// if (this.trainBodyBox) {
|
||||||
|
// this.trainBodyBox.setStyle('fill', this.model.style.Train.trainBody.trainBodyFillColor);
|
||||||
|
// this.trainBodyBox.stopAnimation(false);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
recoverAnimation() {
|
||||||
if (this.trainBodyBox) {
|
if (this.trainBodyBox) {
|
||||||
this.trainBodyBox.setStyle('fill', this.model.style.Train.trainBody.trainBodyFillColor);
|
this.trainBodyBox.setStyle('fill', this.model.style.Train.trainBody.trainBodyFillColor);
|
||||||
this.trainBodyBox.stopAnimation(false);
|
this.trainBodyBox.stopAnimation(false);
|
||||||
|
@ -221,7 +221,7 @@ export default class Train extends Group {
|
|||||||
|
|
||||||
// 恢复颜色状态
|
// 恢复颜色状态
|
||||||
recover() {
|
recover() {
|
||||||
this.trainB && this.trainB.setHShow(false);
|
this.trainB && this.trainB.setHShow(false, false);
|
||||||
this.trainB && this.trainB.setSShow(false);
|
this.trainB && this.trainB.setSShow(false);
|
||||||
this.trainB && this.trainB.setDShow(false);
|
this.trainB && this.trainB.setDShow(false);
|
||||||
this.trainB && this.trainB.setAShow(false);
|
this.trainB && this.trainB.setAShow(false);
|
||||||
@ -231,6 +231,7 @@ export default class Train extends Group {
|
|||||||
this.trainL && this.trainL.setArrowShow(false);
|
this.trainL && this.trainL.setArrowShow(false);
|
||||||
this.trainR && this.trainR.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.setTrainBorderColor(this.style.Train.trainBody.trainSidelineColor || this.style.trainSidelineColor);
|
||||||
|
this.trainB && this.trainB.recoverTrainBoxAnimation();
|
||||||
}
|
}
|
||||||
|
|
||||||
// 设置运行方向状态类型
|
// 设置运行方向状态类型
|
||||||
@ -327,11 +328,11 @@ export default class Train extends Group {
|
|||||||
this.trainB && this.trainB.setSoonerOrLater(dt);
|
this.trainB && this.trainB.setSoonerOrLater(dt);
|
||||||
}
|
}
|
||||||
// 设置扣车状态
|
// 设置扣车状态
|
||||||
setHoldStatus(status) {
|
setHoldStatus(status, parking) {
|
||||||
if (status) {
|
if (status) {
|
||||||
this.trainB && this.trainB.setHShow(true);
|
this.trainB && this.trainB.setHShow(true, parking);
|
||||||
} else {
|
} else {
|
||||||
this.trainB && this.trainB.setHShow(false);
|
this.trainB && this.trainB.setHShow(false, parking);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -408,7 +409,7 @@ export default class Train extends Group {
|
|||||||
}
|
}
|
||||||
this.setDoorStatus(model.doorCloseLock);
|
this.setDoorStatus(model.doorCloseLock);
|
||||||
this.setAlarmStatus(model.alarmStatus);
|
this.setAlarmStatus(model.alarmStatus);
|
||||||
this.setHoldStatus(model.hold);
|
this.setHoldStatus(model.hold, model.parking);
|
||||||
this.setJumpStatus(model.jump);
|
this.setJumpStatus(model.jump);
|
||||||
// this.setSoonerOrLater(model.dt);
|
// this.setSoonerOrLater(model.dt);
|
||||||
this.setTrainTypeColor(model.type);
|
this.setTrainTypeColor(model.type);
|
||||||
@ -421,9 +422,11 @@ export default class Train extends Group {
|
|||||||
if (store.state.map.picture == 'largePassengerView') {
|
if (store.state.map.picture == 'largePassengerView') {
|
||||||
this.handlePassagerColor(model.num);
|
this.handlePassagerColor(model.num);
|
||||||
}
|
}
|
||||||
if (style.Train.trainBody.trainBodyFaultFlashColor) {
|
|
||||||
// 西安二号线 列车停车状态 闪烁红色
|
// 西安二号线 列车停车状态 闪烁红色
|
||||||
this.updateTrainBodyFault(model.orderStop);
|
this.updateTrainBodyFault(model.orderStop);
|
||||||
|
if (!model.groundCommunicable) {
|
||||||
|
this.trainL && this.trainL.setColor('#f00');
|
||||||
|
this.trainR && this.trainR.setColor('#f00');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -438,17 +441,10 @@ export default class Train extends Group {
|
|||||||
}
|
}
|
||||||
|
|
||||||
updateTrainBodyFault(orderStop) {
|
updateTrainBodyFault(orderStop) {
|
||||||
if (orderStop) {
|
|
||||||
// 西安二号线 列车停车状态 闪烁红色
|
// 西安二号线 列车停车状态 闪烁红色
|
||||||
if (this.trainB) {
|
if (this.style.Train.trainBody.trainBodyFaultFlashColor && orderStop && this.trainB) {
|
||||||
this.trainB.trainBodyFault();
|
this.trainB.trainBodyFault();
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
// 西安二号线 列车取消停车状态
|
|
||||||
if (this.trainB) {
|
|
||||||
this.trainB.untrainBodyFault();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
handlePassagerColor(num) {
|
handlePassagerColor(num) {
|
||||||
|
@ -48,7 +48,8 @@ export default class EMouse extends Group {
|
|||||||
e.target._subType == 'Text') {
|
e.target._subType == 'Text') {
|
||||||
this.text.hide();
|
this.text.hide();
|
||||||
} else {
|
} else {
|
||||||
this.device.control.setControlColor(this.device.style.ZcControl.lamp.controlColor);
|
// this.device.control.setControlColor(this.device.style.ZcControl.lamp.controlColor);
|
||||||
|
this.device.setState(this.device.model)
|
||||||
this.device.control.setTextColor('#FFFFFF');
|
this.device.control.setTextColor('#FFFFFF');
|
||||||
this.device.control.setTextBorder(false);
|
this.device.control.setTextBorder(false);
|
||||||
this.device.control.setArcBorder(false);
|
this.device.control.setArcBorder(false);
|
||||||
|
@ -73,7 +73,6 @@ export default class ZcControl extends Group {
|
|||||||
// 设置状态
|
// 设置状态
|
||||||
setState(model) {
|
setState(model) {
|
||||||
this.recover();
|
this.recover();
|
||||||
|
|
||||||
// 只响应前端自定义类型的状态变化
|
// 只响应前端自定义类型的状态变化
|
||||||
if (model._free) {
|
if (model._free) {
|
||||||
this.setAshShow();
|
this.setAshShow();
|
||||||
|
373
src/jmapNew/theme/beijing_01/menus/atsWorkMenu.vue
Normal file
373
src/jmapNew/theme/beijing_01/menus/atsWorkMenu.vue
Normal file
@ -0,0 +1,373 @@
|
|||||||
|
<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>
|
435
src/jmapNew/theme/chengdu_01/menus/atsWorkMenu.vue
Normal file
435
src/jmapNew/theme/chengdu_01/menus/atsWorkMenu.vue
Normal file
@ -0,0 +1,435 @@
|
|||||||
|
<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,7 +52,8 @@ export default {
|
|||||||
cmdType: CMD.Signal.CMD_SIGNAL_SET_ROUTE,
|
cmdType: CMD.Signal.CMD_SIGNAL_SET_ROUTE,
|
||||||
isDisabled: (signal, work) => {
|
isDisabled: (signal, work) => {
|
||||||
return false;
|
return false;
|
||||||
}
|
},
|
||||||
|
isShow: (signal, work) => work !== 'atsWork'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: '取消进路',
|
label: '取消进路',
|
||||||
@ -60,7 +61,8 @@ export default {
|
|||||||
cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_ROUTE,
|
cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_ROUTE,
|
||||||
isDisabled: (signal, work) => {
|
isDisabled: (signal, work) => {
|
||||||
return false;
|
return false;
|
||||||
}
|
},
|
||||||
|
isShow: (signal, work) => work !== 'atsWork'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: '开放自动进路',
|
label: '开放自动进路',
|
||||||
@ -68,7 +70,8 @@ export default {
|
|||||||
cmdType: CMD.Signal.CMD_SIGNAL_SET_CI_AUTO,
|
cmdType: CMD.Signal.CMD_SIGNAL_SET_CI_AUTO,
|
||||||
isDisabled: (signal, work) => {
|
isDisabled: (signal, work) => {
|
||||||
return false;
|
return false;
|
||||||
}
|
},
|
||||||
|
isShow: (signal, work) => work !== 'atsWork'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: '关闭自动进路',
|
label: '关闭自动进路',
|
||||||
@ -76,7 +79,8 @@ export default {
|
|||||||
cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_CI_AUTO,
|
cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_CI_AUTO,
|
||||||
isDisabled: (signal, work) => {
|
isDisabled: (signal, work) => {
|
||||||
return false;
|
return false;
|
||||||
}
|
},
|
||||||
|
isShow: (signal, work) => work !== 'atsWork'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: '终端信号封锁',
|
label: '终端信号封锁',
|
||||||
@ -84,7 +88,8 @@ export default {
|
|||||||
cmdType: CMD.Signal.CMD_SIGNAL_BLOCK,
|
cmdType: CMD.Signal.CMD_SIGNAL_BLOCK,
|
||||||
isDisabled: (signal, work) => {
|
isDisabled: (signal, work) => {
|
||||||
return signal.blockade !== 0;
|
return signal.blockade !== 0;
|
||||||
}
|
},
|
||||||
|
isShow: (signal, work) => work !== 'atsWork'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: '终端信号解封',
|
label: '终端信号解封',
|
||||||
@ -92,7 +97,8 @@ export default {
|
|||||||
cmdType: CMD.Signal.CMD_SIGNAL_UNBLOCK,
|
cmdType: CMD.Signal.CMD_SIGNAL_UNBLOCK,
|
||||||
isDisabled: (signal, work) => {
|
isDisabled: (signal, work) => {
|
||||||
return signal.blockade === 0;
|
return signal.blockade === 0;
|
||||||
}
|
},
|
||||||
|
isShow: (signal, work) => work !== 'atsWork'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: '引导信号',
|
label: '引导信号',
|
||||||
@ -100,7 +106,8 @@ export default {
|
|||||||
cmdType: CMD.Signal.CMD_SIGNAL_ROUTE_GUIDE,
|
cmdType: CMD.Signal.CMD_SIGNAL_ROUTE_GUIDE,
|
||||||
isDisabled: (signal, work) => {
|
isDisabled: (signal, work) => {
|
||||||
return false;
|
return false;
|
||||||
}
|
},
|
||||||
|
isShow: (signal, work) => work !== 'atsWork'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: '设备标签',
|
label: '设备标签',
|
||||||
@ -113,7 +120,8 @@ export default {
|
|||||||
cmdType: '',
|
cmdType: '',
|
||||||
show: false
|
show: false
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
isShow: (signal, work) => work !== 'atsWork'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: '模拟',
|
label: '模拟',
|
||||||
|
@ -66,7 +66,8 @@ export default {
|
|||||||
} else {
|
} else {
|
||||||
return switchDevice.normalPosition === 1;
|
return switchDevice.normalPosition === 1;
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
isShow: (switchDevice, work) => work !== 'atsWork'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: '道岔反位',
|
label: '道岔反位',
|
||||||
@ -78,7 +79,8 @@ export default {
|
|||||||
} else {
|
} else {
|
||||||
return switchDevice.reversePosition === 1;
|
return switchDevice.reversePosition === 1;
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
isShow: (switchDevice, work) => work !== 'atsWork'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: '道岔单锁',
|
label: '道岔单锁',
|
||||||
@ -90,7 +92,8 @@ export default {
|
|||||||
} else {
|
} else {
|
||||||
return switchDevice.singleLock !== 0;
|
return switchDevice.singleLock !== 0;
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
isShow: (switchDevice, work) => work !== 'atsWork'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: '道岔单解',
|
label: '道岔单解',
|
||||||
@ -102,7 +105,8 @@ export default {
|
|||||||
} else {
|
} else {
|
||||||
return switchDevice.singleLock !== 1;
|
return switchDevice.singleLock !== 1;
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
isShow: (switchDevice, work) => work !== 'atsWork'
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
menuForce: [
|
menuForce: [
|
||||||
|
346
src/jmapNew/theme/chengdu_03/menus/atsWorkMenu.vue
Normal file
346
src/jmapNew/theme/chengdu_03/menus/atsWorkMenu.vue
Normal file
@ -0,0 +1,346 @@
|
|||||||
|
<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>
|
@ -0,0 +1,174 @@
|
|||||||
|
<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,6 +8,7 @@
|
|||||||
<menu-section ref="menuSection" :selected="selected" :work="'dispatchWork'" />
|
<menu-section ref="menuSection" :selected="selected" :work="'dispatchWork'" />
|
||||||
<menu-station ref="menuStation" :selected="selected" :work="'dispatchWork'" />
|
<menu-station ref="menuStation" :selected="selected" :work="'dispatchWork'" />
|
||||||
<menu-train ref="menuTrain" :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-alarm ref="passiveAlarm" />
|
||||||
<passive-contorl ref="passiveControl" pop-class="chengdou-03__systerm" />
|
<passive-contorl ref="passiveControl" pop-class="chengdou-03__systerm" />
|
||||||
@ -24,6 +25,7 @@ import MenuSwitch from './menuSwitch';
|
|||||||
import MenuSection from './menuSection';
|
import MenuSection from './menuSection';
|
||||||
import MenuStation from './menuStation';
|
import MenuStation from './menuStation';
|
||||||
import MenuTrain from './menuTrain';
|
import MenuTrain from './menuTrain';
|
||||||
|
import MenuStationTurnBack from './menuStationTurnBack.vue';
|
||||||
|
|
||||||
import PassiveAlarm from './passiveDialog/alarm';
|
import PassiveAlarm from './passiveDialog/alarm';
|
||||||
import PassiveContorl from '@/jmapNew/theme/components/menus/passiveDialog/control';
|
import PassiveContorl from '@/jmapNew/theme/components/menus/passiveDialog/control';
|
||||||
@ -40,7 +42,8 @@ export default {
|
|||||||
MenuTrain,
|
MenuTrain,
|
||||||
PassiveAlarm,
|
PassiveAlarm,
|
||||||
PassiveContorl,
|
PassiveContorl,
|
||||||
PassiveTimeout
|
PassiveTimeout,
|
||||||
|
MenuStationTurnBack
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
selected: {
|
selected: {
|
||||||
|
@ -2,7 +2,14 @@
|
|||||||
<div class="menus" :style="{width: width + 'px'}">
|
<div class="menus" :style="{width: width + 'px'}">
|
||||||
<menu-bar ref="menuBar" :selected="selected" />
|
<menu-bar ref="menuBar" :selected="selected" />
|
||||||
<menu-button ref="menuButton" />
|
<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'" />
|
<menu-train ref="menuTrain" :selected="selected" :work="'localWork'" />
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
@ -10,12 +17,22 @@ import { mapGetters } from 'vuex';
|
|||||||
import MenuTrain from './menuTrain';
|
import MenuTrain from './menuTrain';
|
||||||
import MenuButton from './menuButton';
|
import MenuButton from './menuButton';
|
||||||
import MenuBar from './localWorkMenuBar';
|
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 {
|
export default {
|
||||||
name: 'LocalWorkMenu',
|
name: 'LocalWorkMenu',
|
||||||
components: {
|
components: {
|
||||||
MenuTrain,
|
MenuTrain,
|
||||||
MenuButton,
|
MenuButton,
|
||||||
MenuBar
|
MenuBar,
|
||||||
|
MenuSignal,
|
||||||
|
MenuStationStand,
|
||||||
|
MenuSwitch,
|
||||||
|
MenuSection,
|
||||||
|
MenuStation
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
selected: {
|
selected: {
|
||||||
|
@ -350,7 +350,7 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 如果该信号机红灯亮 而且 所属区段左右两侧区段锁闭 执行信号重启操作
|
// 如果该信号机红灯亮 而且 所属区段左右两侧区段锁闭 执行信号重启操作
|
||||||
if (signal.aspect == 'R' && isArrangementRoute) { // 信号重启
|
if (signal.lockedRouteCode) { // 信号重启
|
||||||
operate.over = true;
|
operate.over = true;
|
||||||
operate.cmdType = CMD.Signal.CMD_SIGNAL_REOPEN_SIGNAL;
|
operate.cmdType = CMD.Signal.CMD_SIGNAL_REOPEN_SIGNAL;
|
||||||
operate.code = deviceList[0].code;
|
operate.code = deviceList[0].code;
|
||||||
@ -370,7 +370,8 @@ export default {
|
|||||||
this.routeList.forEach(item => {
|
this.routeList.forEach(item => {
|
||||||
// item.endButtonSignalCode
|
// item.endButtonSignalCode
|
||||||
// 起始信号机 和 结束信号机按钮 过滤进路
|
// 起始信号机 和 结束信号机按钮 过滤进路
|
||||||
if (item.startSignalCode === deviceList[0].code && item.endSignalCode === deviceList[1].code) {
|
const endSignalCode = item.endButtonSignalCode || item.endSignalCode;
|
||||||
|
if (item.startSignalCode === deviceList[0].code && endSignalCode === deviceList[1].code) {
|
||||||
operate.over = true;
|
operate.over = true;
|
||||||
operate.cmdType = CMD.Signal.CMD_SIGNAL_SET_ROUTE;
|
operate.cmdType = CMD.Signal.CMD_SIGNAL_SET_ROUTE;
|
||||||
operate.code = deviceList[1].code;
|
operate.code = deviceList[1].code;
|
||||||
@ -396,19 +397,28 @@ export default {
|
|||||||
operation: this.$store.state.menuOperation.buttonOperation,
|
operation: this.$store.state.menuOperation.buttonOperation,
|
||||||
param: {}
|
param: {}
|
||||||
};
|
};
|
||||||
if (model._type === 'StationStand' && subType === 'StopJumpLamp') {
|
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)) {
|
||||||
operate.cmdType = CMD.Stand.CMD_STAND_SET_JUMP_STOP;
|
operate.cmdType = CMD.Stand.CMD_STAND_SET_JUMP_STOP;
|
||||||
operate.param = {standCode: model.code, trainGroupNumber: ''};
|
operate.param = {standCode: model.code, trainGroupNumber: ''};
|
||||||
operate.code = model.code;
|
operate.code = model.code;
|
||||||
} else if (model._type === 'StationStand' && subType === 'CancelStopJumpLamp') {
|
} else if (model._type === 'StationStand' && subType === 'CancelStopJumpLamp' && list2.includes(controlMode)) {
|
||||||
operate.cmdType = CMD.Stand.CMD_STAND_CANCEL_JUMP_STOP;
|
operate.cmdType = CMD.Stand.CMD_STAND_CANCEL_JUMP_STOP;
|
||||||
operate.param = {standCode: model.code, trainGroupNumber: ''};
|
operate.param = {standCode: model.code, trainGroupNumber: ''};
|
||||||
operate.code = model.code;
|
operate.code = model.code;
|
||||||
} else if (model._type === 'AutoTurnBack' ) {
|
} else if (model._type === 'AutoTurnBack' && controlMode === 'Interlock') {
|
||||||
operate.cmdType = CMD.Signal.CMD_SIGNAL_SET_AUTO_TURN_BACK;
|
operate.cmdType = CMD.Signal.CMD_SIGNAL_SET_AUTO_TURN_BACK;
|
||||||
operate.param = {cycleCode: model.cycleCode};
|
operate.param = {cycleCode: model.cycleCode};
|
||||||
operate.code = model.code;
|
operate.code = model.code;
|
||||||
} else if (model._type === 'AutomaticRoute') {
|
} else if (model._type === 'AutomaticRoute' && controlMode === 'Interlock') {
|
||||||
const route = this.routeData[model.automaticRouteCode];
|
const route = this.routeData[model.automaticRouteCode];
|
||||||
operate.cmdType = CMD.Signal.CMD_SIGNAL_SET_CI_AUTO;
|
operate.cmdType = CMD.Signal.CMD_SIGNAL_SET_CI_AUTO;
|
||||||
operate.param = {signalCode: route.startSignalCode};
|
operate.param = {signalCode: route.startSignalCode};
|
||||||
@ -423,31 +433,34 @@ export default {
|
|||||||
break;
|
break;
|
||||||
case 'center':
|
case 'center':
|
||||||
operate.cmdType = CMD.ControlConvertMenu.CMD_CM_APPLY_FOR_CENTER_CONTROL;
|
operate.cmdType = CMD.ControlConvertMenu.CMD_CM_APPLY_FOR_CENTER_CONTROL;
|
||||||
// delete operate.over;
|
delete operate.over;
|
||||||
operate.subType = 'center';
|
operate.subType = 'center';
|
||||||
operate.param = {stationCodes: [model.code]};
|
operate.param = {stationCodes: [model.code]};
|
||||||
operate.code = model.code;
|
operate.code = model.code;
|
||||||
break;
|
break;
|
||||||
case 'emergency':
|
case 'emergency':
|
||||||
operate.cmdType = CMD.ControlConvertMenu.CMD_CM_EMERGENCY_STATION_CONTROL;
|
operate.cmdType = CMD.ControlConvertMenu.CMD_CM_EMERGENCY_STATION_CONTROL;
|
||||||
// delete operate.over;
|
delete operate.over;
|
||||||
operate.subType = 'emergency';
|
operate.subType = 'emergency';
|
||||||
operate.param = {stationCodes: [model.code]};
|
operate.param = {stationCodes: [model.code]};
|
||||||
operate.code = model.code;
|
operate.code = model.code;
|
||||||
break;
|
break;
|
||||||
case 'interconnected':
|
case 'interconnected':
|
||||||
operate.cmdType = CMD.ControlConvertMenu.CMD_CM_EMERGENCY_STATION_CONTROL;
|
operate.cmdType = CMD.ControlConvertMenu.CMD_CM_INTERLOCK_CONTROL;
|
||||||
// delete operate.over;
|
delete operate.over;
|
||||||
operate.subType = 'interconnected';
|
operate.subType = 'interconnected';
|
||||||
operate.param = {stationCodes: [model.code]};
|
operate.param = {stationCodes: [model.code]};
|
||||||
operate.code = model.code;
|
operate.code = model.code;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
this.$message.info('请检查操作设备或控制权');
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid, response }) => {
|
this.$store.dispatch('trainingNew/next', operate).then(({ valid, response }) => {
|
||||||
// 判断是否需要 弹窗密码框
|
// 判断是否需要 弹窗密码框
|
||||||
// const operate = Object.assign({}, operate);
|
// 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;
|
operate['operateNext'] = operate.operation = this.Command.close.password.operation;
|
||||||
if (subType == 'center') {
|
if (subType == 'center') {
|
||||||
operate['nextCmdType'] = CMD.ControlConvertMenu.CMD_CM_APPLY_FOR_CENTER_CONTROL;
|
operate['nextCmdType'] = CMD.ControlConvertMenu.CMD_CM_APPLY_FOR_CENTER_CONTROL;
|
||||||
@ -559,7 +572,8 @@ export default {
|
|||||||
};
|
};
|
||||||
let flag = false;
|
let flag = false;
|
||||||
this.routeList.forEach(item => {
|
this.routeList.forEach(item => {
|
||||||
if (item.startSignalCode === deviceList[0].code && item.endSignalCode === deviceList[1].code) {
|
const endSignalCode = item.endButtonSignalCode || item.endSignalCode;
|
||||||
|
if (item.startSignalCode === deviceList[0].code && endSignalCode === deviceList[1].code) {
|
||||||
operate.param = {routeCode: item.code, signalCode: deviceList[0].code};
|
operate.param = {routeCode: item.code, signalCode: deviceList[0].code};
|
||||||
this.deviceList = [];
|
this.deviceList = [];
|
||||||
flag = true;
|
flag = true;
|
||||||
@ -705,37 +719,36 @@ export default {
|
|||||||
this.handelFunctionButton(model, subType);
|
this.handelFunctionButton(model, subType);
|
||||||
} else {
|
} else {
|
||||||
const station = this.$store.getters['map/getDeviceByCode'](model.stationCode);
|
const station = this.$store.getters['map/getDeviceByCode'](model.stationCode);
|
||||||
|
const list1 = ['Local', 'Emergency', 'Interlock'];
|
||||||
|
const list2 = ['Local', 'Emergency'];
|
||||||
if (station) {
|
if (station) {
|
||||||
if (station.controlMode == 'Local' || station.controlMode == 'Emergency') {
|
|
||||||
if (buttonOperation && this.commandTypeList.includes(model._type)) {
|
if (buttonOperation && this.commandTypeList.includes(model._type)) {
|
||||||
this.deviceList.push(model);
|
this.deviceList.push(model);
|
||||||
if (buttonOperation === this.Signal.arrangementRoute.button.operation) {
|
if (buttonOperation === this.Signal.arrangementRoute.button.operation && list1.includes(station.controlMode)) {
|
||||||
this.arrangementRouteOperation(this.deviceList);
|
this.arrangementRouteOperation(this.deviceList);
|
||||||
} else if (buttonOperation === this.MixinCommand.totalCancel.button.operation) {
|
} else if (buttonOperation === this.MixinCommand.totalCancel.button.operation) {
|
||||||
this.handelTotalCancel(model, subType);
|
this.handelTotalCancel(model, subType);
|
||||||
} else if (buttonOperation === this.Signal.humanTrainRoute.button.operation) {
|
} else if (buttonOperation === this.Signal.humanTrainRoute.button.operation && list1.includes(station.controlMode)) {
|
||||||
this.handleTotalHumanSolution(model);
|
this.handleTotalHumanSolution(model);
|
||||||
} else if (buttonOperation === this.Signal.guide.button.operation) {
|
} else if (buttonOperation === this.Signal.guide.button.operation && list1.includes(station.controlMode)) {
|
||||||
this.handleGuideRoute(this.deviceList);
|
this.handleGuideRoute(this.deviceList);
|
||||||
} else if (buttonOperation === this.Signal.atsAutoControl.button.operation || buttonOperation === this.Signal.humanControl.button.operation) {
|
} else if ((buttonOperation === this.Signal.atsAutoControl.button.operation || buttonOperation === this.Signal.humanControl.button.operation) && list2.includes(station.controlMode)) {
|
||||||
this.handelControlRoute(model);
|
this.handelControlRoute(model);
|
||||||
} else if (switchOperation.includes(buttonOperation)) {
|
} else if (switchOperation.includes(buttonOperation) && list1.includes(station.controlMode)) {
|
||||||
this.handelSwitchOperate(model);
|
this.handelSwitchOperate(model);
|
||||||
} else if (buttonOperation === this.MixinCommand.block.button.operation || buttonOperation === this.MixinCommand.unblock.button.operation) {
|
} else if ((buttonOperation === this.MixinCommand.block.button.operation || buttonOperation === this.MixinCommand.unblock.button.operation) && list1.includes(station.controlMode)) {
|
||||||
this.handelBlockOrUnblock(model);
|
this.handelBlockOrUnblock(model);
|
||||||
} else if (buttonOperation === this.Station.guideLock.button.operation) {
|
} else if (buttonOperation === this.Station.guideLock.button.operation && station.controlMode === 'Interlock') {
|
||||||
this.handelGuideLock(model);
|
this.handelGuideLock(model);
|
||||||
} else if (buttonOperation === this.Section.fault.button.operation) {
|
} else if (buttonOperation === this.Section.fault.button.operation && list1.includes(station.controlMode)) {
|
||||||
this.handelFaultSection(model);
|
this.handelFaultSection(model);
|
||||||
} else {
|
} else {
|
||||||
this.clearOperate();
|
this.clearOperate();
|
||||||
|
this.operatemode != OperateMode.FAULT && this.$message.info('请检查操作设备或控制权');
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
this.clearOperate();
|
this.clearOperate();
|
||||||
}
|
this.operatemode != OperateMode.FAULT && this.$message.info('请检查操作设备或控制权');
|
||||||
} else {
|
|
||||||
this.clearOperate();
|
|
||||||
this.operatemode != OperateMode.FAULT && this.$message.info('请先切换到站控或紧急站控');
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
105
src/jmapNew/theme/chengdu_03/menus/menuStationTurnBack.vue
Normal file
105
src/jmapNew/theme/chengdu_03/menus/menuStationTurnBack.vue
Normal file
@ -0,0 +1,105 @@
|
|||||||
|
<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="main">
|
||||||
<div class="left">
|
<div class="left">
|
||||||
<div class="left-type">Station</div>
|
<div class="left-type">车站</div>
|
||||||
<div class="type-content">
|
<div class="type-content">
|
||||||
<div class="content-item">
|
<div class="content-item">
|
||||||
<img :src="shouxinImg" style="width: 58px; height: 58px">
|
<img :src="shouxinImg" style="width: 58px; height: 58px">
|
||||||
<div>Receive order box</div>
|
<div>收令箱</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="content-box">
|
<div class="content-box">
|
||||||
<div class="box-top">
|
<div class="box-top">
|
||||||
<div class="top-title">Receive order box</div>
|
<div class="top-title">收令箱</div>
|
||||||
<div class="top-table">
|
<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 :data="cmdTableData" border style="width: 100%" height="160" highlight-current-row :row-class-name="tableRowClassName" @current-change="handleCurrentChange">
|
||||||
<el-table-column prop="title" label="Title" show-overflow-tooltip />
|
<el-table-column prop="title" label="标题" show-overflow-tooltip />
|
||||||
<el-table-column prop="cmdCode" label="Number" width="80" />
|
<el-table-column prop="cmdCode" label="号码" width="80" />
|
||||||
<el-table-column label="Order type" width="100">
|
<el-table-column label="命令类型" width="100">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span style="margin-left: 10px">{{ typeObj[scope.row.type] || '' }}</span>
|
<span style="margin-left: 10px">{{ typeObj[scope.row.type] || '' }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="Date of receipt" width="160">
|
<el-table-column label="收令日期" width="160">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span style="margin-left: 10px">{{ getStateInfo(scope.row.rcvCompanies).time || '' }}</span>
|
<span style="margin-left: 10px">{{ getStateInfo(scope.row.rcvCompanies).time || '' }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="Issuing unit" show-overflow-tooltip>
|
<el-table-column label="发令单位" show-overflow-tooltip>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span style="margin-left: 10px">{{ scope.row.sendCompany ? scope.row.sendCompany.name : '' }}</span>
|
<span style="margin-left: 10px">{{ scope.row.sendCompany ? scope.row.sendCompany.name : '' }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="sender" label="Initiator" show-overflow-tooltip/>
|
<el-table-column prop="sender" label="发令人" show-overflow-tooltip />
|
||||||
<el-table-column label="Signed or not">
|
<el-table-column label="签否">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span style="margin-left: 10px">{{ getSignedStatus(getStateInfo(scope.row.rcvCompanies)) }}</span>
|
<span style="margin-left: 10px">{{ getSignedStatus(getStateInfo(scope.row.rcvCompanies)) }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="Signatory" show-overflow-tooltip>
|
<el-table-column label="签收人" show-overflow-tooltip>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span style="margin-left: 10px">{{ getSignedBy(scope.row.rcvCompanies) || '' }}</span>
|
<span style="margin-left: 10px">{{ getSignedBy(scope.row.rcvCompanies) || '' }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="Receipt time" width="160">
|
<el-table-column label="签收时间" width="160">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span style="margin-left: 10px">{{ getStateInfo(scope.row.rcvCompanies).time || '' }}</span>
|
<span style="margin-left: 10px">{{ getStateInfo(scope.row.rcvCompanies).time || '' }}</span>
|
||||||
</template>
|
</template>
|
||||||
@ -64,26 +64,26 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="box-middle">
|
<div class="box-middle">
|
||||||
<div class="middle-left">
|
<div class="middle-left">
|
||||||
<el-input v-model="currentInfo.content" readonly type="textarea" rows="19" resize="none" placeholder="Please enter the content" />
|
<el-input v-model="currentInfo.content" readonly type="textarea" rows="19" resize="none" placeholder="请输入内容" />
|
||||||
</div>
|
</div>
|
||||||
<div class="middle-right">
|
<div class="middle-right">
|
||||||
<div class="middle-right-top">
|
<div class="middle-right-top">
|
||||||
<el-table :data="getTableData" border style="width: 100%" height="190">
|
<el-table :data="getTableData" border style="width: 100%" height="190">
|
||||||
<el-table-column type="index" label="Index" width="53" />
|
<el-table-column type="index" label="序" width="50" />
|
||||||
<el-table-column prop="name" label="Ordered unit" width="105" />
|
<el-table-column prop="name" label="受令单位" />
|
||||||
<el-table-column prop="copyers" label="Place of receipt" />
|
<el-table-column prop="copyers" label="抄知处所" />
|
||||||
</el-table>
|
</el-table>
|
||||||
</div>
|
</div>
|
||||||
<div class="middle-right-middle">
|
<div class="middle-right-middle">
|
||||||
<span>Read information</span>
|
<span>阅读信息</span>
|
||||||
<el-checkbox v-model="needRead">To be read</el-checkbox>
|
<el-checkbox v-model="needRead">需阅读</el-checkbox>
|
||||||
<el-checkbox v-model="stopRead">Stop reading</el-checkbox>
|
<el-checkbox v-model="stopRead">停止阅读</el-checkbox>
|
||||||
</div>
|
</div>
|
||||||
<div class="middle-right-bottom">
|
<div class="middle-right-bottom">
|
||||||
<el-table :data="readList" border style="width: 100%" height="200">
|
<el-table :data="readList" border style="width: 100%" height="200">
|
||||||
<el-table-column type="index" label="Index" width="53" />
|
<el-table-column type="index" label="序" width="50" />
|
||||||
<el-table-column prop="reader" label="Read by" />
|
<el-table-column prop="reader" label="阅读人" />
|
||||||
<el-table-column prop="readTime" label="Reading time" />
|
<el-table-column prop="readTime" label="阅读时间" />
|
||||||
</el-table>
|
</el-table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -91,9 +91,9 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="bottom-btn">
|
<div class="bottom-btn">
|
||||||
<el-button :id="getDomObj('signCmdFalse').domId" :disabled="!commandId || currentHasSigned" @click="signCmd(false)">Refusal</el-button>
|
<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)">Sign</el-button>
|
<el-button :id="getDomObj('signCmdTrue').domId" :disabled="!commandId || currentHasSigned" @click="signCmd(true)">签收</el-button>
|
||||||
<el-button @click="doClose">Close</el-button>
|
<el-button @click="doClose">关闭</el-button>
|
||||||
</div>
|
</div>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</template>
|
</template>
|
||||||
@ -115,21 +115,21 @@ export default {
|
|||||||
currentInfo: {},
|
currentInfo: {},
|
||||||
queryResData: {},
|
queryResData: {},
|
||||||
typeObj: {
|
typeObj: {
|
||||||
Normal: 'General scheduling command',
|
Normal: '普通调度命令',
|
||||||
Construct: 'Construction scheduling command',
|
Construct: '施工调度命令',
|
||||||
Forward: 'Forward scheduling command',
|
Forward: '转发调度命令',
|
||||||
Request: 'Request scheduling command',
|
Request: '请求调度命令',
|
||||||
LongTerm: 'Long-acting scheduling command',
|
LongTerm: '长效调度命令',
|
||||||
ShiftScheduling: 'Shift scheduling command',
|
ShiftScheduling: '班计划调度命令',
|
||||||
Other: 'Other'
|
Other: '其他调度命令'
|
||||||
},
|
},
|
||||||
signedStatusObj: {
|
signedStatusObj: {
|
||||||
Cache: 'Cache',
|
Cache: '缓存',
|
||||||
Sent: 'Send',
|
Sent: '已发送',
|
||||||
SrmReceived: 'Self-regulating machine received',
|
SrmReceived: '自律机接收',
|
||||||
Received: 'Received',
|
Received: '已接收',
|
||||||
Signed: 'Signed',
|
Signed: '已签收',
|
||||||
Reject: 'Reject'
|
Reject: '已拒签'
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
@ -147,7 +147,7 @@ export default {
|
|||||||
return this.$route.query.group;
|
return this.$route.query.group;
|
||||||
},
|
},
|
||||||
title() {
|
title() {
|
||||||
return 'Scheduling command management';
|
return '调度命令管理';
|
||||||
},
|
},
|
||||||
commandId() {
|
commandId() {
|
||||||
return this.currentInfo.cmdId || '';
|
return this.currentInfo.cmdId || '';
|
||||||
|
@ -33,6 +33,16 @@
|
|||||||
</el-select>
|
</el-select>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</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-row justify="center" class="button-group">
|
||||||
<el-col :span="10">
|
<el-col :span="10">
|
||||||
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
|
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
|
||||||
@ -71,10 +81,18 @@ export default {
|
|||||||
addModel: {
|
addModel: {
|
||||||
groupNumber: '',
|
groupNumber: '',
|
||||||
right: '',
|
right: '',
|
||||||
sectionCode: ''
|
sectionCode: '',
|
||||||
|
preselectionMode: 'RM'
|
||||||
},
|
},
|
||||||
dialogShow: false,
|
dialogShow: false,
|
||||||
loading: 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模式' }
|
||||||
|
]
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
@ -119,7 +137,8 @@ export default {
|
|||||||
this.addModel = {
|
this.addModel = {
|
||||||
groupNumber: '',
|
groupNumber: '',
|
||||||
right: '',
|
right: '',
|
||||||
sectionCode: ''
|
sectionCode: '',
|
||||||
|
preselectionMode: 'RM'
|
||||||
};
|
};
|
||||||
this.$store.dispatch('training/emitTipFresh');
|
this.$store.dispatch('training/emitTipFresh');
|
||||||
this.$store.dispatch('map/setTrainWindowShow', false);
|
this.$store.dispatch('map/setTrainWindowShow', false);
|
||||||
@ -133,7 +152,8 @@ export default {
|
|||||||
const params = {
|
const params = {
|
||||||
groupNumber: this.addModel.groupNumber,
|
groupNumber: this.addModel.groupNumber,
|
||||||
sectionCode: this.addModel.sectionCode,
|
sectionCode: this.addModel.sectionCode,
|
||||||
right: this.addModel.right
|
right: this.addModel.right,
|
||||||
|
preselectionMode: this.addModel.preselectionMode
|
||||||
};
|
};
|
||||||
this.messageTip1 = '';
|
this.messageTip1 = '';
|
||||||
this.loading = true;
|
this.loading = true;
|
||||||
|
@ -16,24 +16,23 @@
|
|||||||
<el-row>
|
<el-row>
|
||||||
<el-form ref="form" :model="formModel" :rules="rules">
|
<el-form ref="form" :model="formModel" :rules="rules">
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item prop="speedLimit" label="Speed limit:">
|
<el-form-item prop="speedLimit" label="限速:">
|
||||||
<el-input v-model="formModel.speedLimit" style="width: 115px;margin-right: 10px;" size="small" />
|
<el-input v-model="formModel.speedLimit" style="width: 115px;margin-right: 10px;" size="small" />
|
||||||
<span>km/h</span>
|
<span>km/h</span>
|
||||||
<el-tooltip style="margin-left: 10px;" effect="dark" content="Value between 5 and 65, leave blank to cancel speed limit" placement="top-start">
|
<el-tooltip style="margin-left: 10px;" effect="dark" content="值为5-65之间,不填为取消限速" placement="top-start">
|
||||||
<i class="el-icon-warning" />
|
<i class="el-icon-warning" />
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item prop="through" label="Mode:">
|
<el-form-item prop="through" label="方式:">
|
||||||
<el-radio-group v-model="formModel.through">
|
<el-radio-group v-model="formModel.through" style="text-align: left;">
|
||||||
<el-radio :label="1">Drive through red lights</el-radio><br>
|
<el-radio :label="1">越红灯行驶</el-radio><br>
|
||||||
<el-radio style="margin-top: 10px" :label="2">Oversteer</el-radio><br>
|
<el-radio style="margin-top: 10px" :label="2">越引导行驶</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="3">运行至前方车站</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">进路闭塞法行车</el-radio>
|
||||||
<el-radio style="margin-top: 10px" :label="0">No</el-radio>
|
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item prop="targetDeviceCode" label="Destination:">
|
<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="Please select">
|
<el-select ref="faultSelect1" v-model="formModel.targetDeviceCode" filterable clearable size="small" style="height: 32px;line-height: 32px;" placeholder="请选择">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in selectedList"
|
v-for="item in selectedList"
|
||||||
:key="item.code"
|
:key="item.code"
|
||||||
@ -41,7 +40,7 @@
|
|||||||
:value="item.code"
|
:value="item.code"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
<el-tooltip style="margin-left: 10px;" effect="dark" content="Point-and-click on the station map" placement="top-start">
|
<el-tooltip style="margin-left: 10px;" effect="dark" content="可在站场图上进行点选" placement="top-start">
|
||||||
<i class="el-icon-warning" />
|
<i class="el-icon-warning" />
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
<!--<el-button-->
|
<!--<el-button-->
|
||||||
@ -56,8 +55,8 @@
|
|||||||
</template>
|
</template>
|
||||||
<template v-else>
|
<template v-else>
|
||||||
<el-row class="header">
|
<el-row class="header">
|
||||||
<el-col :span="11"><span>Equipment:</span></el-col>
|
<el-col :span="11"><span>设备:</span></el-col>
|
||||||
<el-col :span="11" :offset="2"><span>Fault type:</span></el-col>
|
<el-col :span="11" :offset="2"><span>故障类型:</span></el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-form ref="form" :model="form" :rules="rules">
|
<el-form ref="form" :model="form" :rules="rules">
|
||||||
@ -68,7 +67,7 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="11" :offset="2">
|
<el-col :span="11" :offset="2">
|
||||||
<el-form-item prop="faultType">
|
<el-form-item prop="faultType">
|
||||||
<el-select ref="faultSelect2" v-model="form.faultType" size="small" style="height: 32px;line-height: 32px;" placeholder="Please select">
|
<el-select ref="faultSelect2" v-model="form.faultType" size="small" style="height: 32px;line-height: 32px;" placeholder="请选择">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in faultList"
|
v-for="item in faultList"
|
||||||
:key="item.value"
|
:key="item.value"
|
||||||
@ -83,10 +82,10 @@
|
|||||||
</template>
|
</template>
|
||||||
<el-row justify="center" class="button-group">
|
<el-row justify="center" class="button-group">
|
||||||
<el-col :span="10" :offset="2">
|
<el-col :span="10" :offset="2">
|
||||||
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">Confirm</el-button>
|
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8" :offset="4">
|
<el-col :span="8" :offset="4">
|
||||||
<el-button :id="domIdCancel" @click="cancel">Cancel</el-button>
|
<el-button :id="domIdCancel" @click="cancel">取消</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
</div>
|
</div>
|
||||||
@ -135,7 +134,7 @@ export default {
|
|||||||
selected: null,
|
selected: null,
|
||||||
rules: {
|
rules: {
|
||||||
faultType: [
|
faultType: [
|
||||||
{ required: true, message: 'Please select fault type', trigger: 'change'}
|
{ required: true, message: '请选择故障类型', trigger: 'change'}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -161,11 +160,11 @@ export default {
|
|||||||
},
|
},
|
||||||
title() {
|
title() {
|
||||||
if (this.operation == OperationEvent.MixinCommand.stoppage.menu.operation) {
|
if (this.operation == OperationEvent.MixinCommand.stoppage.menu.operation) {
|
||||||
return 'Set faults';
|
return '设置故障';
|
||||||
} else if (this.operation == OperationEvent.MixinCommand.cancelStoppage.menu.operation) {
|
} else if (this.operation == OperationEvent.MixinCommand.cancelStoppage.menu.operation) {
|
||||||
return 'Cancel faults';
|
return '取消故障';
|
||||||
} else if (this.operation == OperationEvent.MixinCommand.collocation.menu.operation) {
|
} else if (this.operation == OperationEvent.MixinCommand.collocation.menu.operation) {
|
||||||
return 'Driving';
|
return '驾驶';
|
||||||
}
|
}
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
@ -204,7 +203,7 @@ export default {
|
|||||||
if (name) {
|
if (name) {
|
||||||
this.deviceName = deviceType[selected._type] + '-' + name;
|
this.deviceName = deviceType[selected._type] + '-' + name;
|
||||||
} else if (selected._type == 'Server') {
|
} else if (selected._type == 'Server') {
|
||||||
this.deviceName = 'Server';
|
this.deviceName = '服务器';
|
||||||
} else {
|
} else {
|
||||||
this.deviceName = deviceType[selected._type];
|
this.deviceName = deviceType[selected._type];
|
||||||
}
|
}
|
||||||
@ -217,38 +216,70 @@ export default {
|
|||||||
// }
|
// }
|
||||||
if (selected._type === 'Section' && this.popClass === 'haerbin-01__systerm') {
|
if (selected._type === 'Section' && this.popClass === 'haerbin-01__systerm') {
|
||||||
this.faultList = [
|
this.faultList = [
|
||||||
{label: 'Gauge shaft fault', value: 'FAULT'},
|
{label: '计轴故障', value: 'FAULT'},
|
||||||
{label: 'Communication train occupancy', value: 'CBTC_OCCUPIED_FAULT'}
|
{label: '通信车占用', value: 'CBTC_OCCUPIED_FAULT'}
|
||||||
];
|
];
|
||||||
} else if (selected._type === 'Section' && this.popClass === 'datie-02__systerm') {
|
} else if (selected._type === 'Section' && this.popClass === 'datie-02__systerm') {
|
||||||
this.faultList = [
|
this.faultList = [
|
||||||
{label: 'Circuit failure', value: 'FAULT'},
|
{label: '电路故障', value: 'FAULT'},
|
||||||
{label: 'Fault lockout', value: 'FAULT_LOCK'}
|
{label: '故障锁闭', value: 'FAULT_LOCK'}
|
||||||
// {label: '通信车占用', value: 'CBTC_OCCUPIED_FAULT'}
|
// {label: '通信车占用', value: 'CBTC_OCCUPIED_FAULT'}
|
||||||
];
|
];
|
||||||
// } else if (selected._type === 'Switch' && this.popClass === 'haerbin-01__systerm') {
|
} else if (selected._type === 'Switch' && this.popClass === 'haerbin-01__systerm') {
|
||||||
// this.faultList = [
|
this.faultList = [
|
||||||
// {label: 'Split', value: 'SPLIT'},
|
{label: '失表', value: 'SPLIT'},
|
||||||
// {label: 'Normal split', value: 'NORMAL_SPLIT'},
|
{label: '定位失表', value: 'NORMAL_SPLIT'},
|
||||||
// {label: 'Reverse split', value: 'REVERSE_SPLIT'},
|
{label: '反位失表', value: 'REVERSE_SPLIT'},
|
||||||
// {label: 'Squeeze', value: 'SQUEEZE'},
|
{label: '挤岔', value: 'SQUEEZE'},
|
||||||
// {label: 'Communication train occupancy', value: 'CBTC_OCCUPIED_FAULT'},
|
{label: '通信车占用', value: 'CBTC_OCCUPIED_FAULT'},
|
||||||
// {label: 'Axle fault', value: 'AXLE_FAULT'}
|
{label: '计轴故障', value: 'AXLE_FAULT'}
|
||||||
// ];
|
];
|
||||||
} else if (selected._type === 'Switch' && this.popClass === 'datie-02__systerm') {
|
} else if (selected._type === 'Switch' && this.popClass === 'datie-02__systerm') {
|
||||||
this.faultList = [
|
this.faultList = [
|
||||||
{label: 'Out of position', value: 'SPLIT'},
|
{label: '失表', value: 'SPLIT'},
|
||||||
{label: 'Normal Out of position', value: 'NORMAL_SPLIT'},
|
{label: '定位失表', value: 'NORMAL_SPLIT'},
|
||||||
{label: 'Reverse Out of position', value: 'REVERSE_SPLIT'},
|
{label: '反位失表', value: 'REVERSE_SPLIT'},
|
||||||
{label: 'Squeeze off', value: 'SQUEEZE'},
|
{label: '挤岔', value: 'SQUEEZE'},
|
||||||
// {label: '通信车占用', value: 'CBTC_OCCUPIED_FAULT'},
|
// {label: '通信车占用', value: 'CBTC_OCCUPIED_FAULT'},
|
||||||
{label: 'Circuit failure', value: 'AXLE_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' }
|
||||||
];
|
];
|
||||||
} else if (selected._type === 'Signal' && this.popClass === 'nanjing-02__systerm') {
|
} else if (selected._type === 'Signal' && this.popClass === 'nanjing-02__systerm') {
|
||||||
this.faultList = [
|
this.faultList = [
|
||||||
{label: '无法开放(非CTC)', value: 'NO_OPEN'},
|
{label: '红灯断丝', value: 'R_WIRE_FAULT'},
|
||||||
{label: '编号闪', value: 'LIGHTING_UNIT_FAULT_NAME'},
|
{label: '绿灯断丝', value: 'G_WIRE_FAULT'},
|
||||||
{label: '机头闪', value: 'LIGHTING_UNIT_FAULT_HEAD'}
|
{label: '黄灯断丝', value: 'Y_WIRE_FAULT'}
|
||||||
];
|
];
|
||||||
} else if (selected._type === 'Section' && this.popClass === 'nanjing-02__systerm') {
|
} else if (selected._type === 'Section' && this.popClass === 'nanjing-02__systerm') {
|
||||||
this.faultList = [
|
this.faultList = [
|
||||||
@ -377,12 +408,12 @@ export default {
|
|||||||
this.doClose();
|
this.doClose();
|
||||||
} else {
|
} else {
|
||||||
this.doClose();
|
this.doClose();
|
||||||
this.$messageBox('Failed to set or cancel the fault!');
|
this.$messageBox('设置或取消故障操作失败!');
|
||||||
}
|
}
|
||||||
}).catch((error) => {
|
}).catch((error) => {
|
||||||
this.loading = false;
|
this.loading = false;
|
||||||
this.doClose();
|
this.doClose();
|
||||||
this.$messageBox(error.message || 'Failed to set or cancel the fault!');
|
this.$messageBox(error.message || '设置或取消故障操作失败!');
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -11,8 +11,8 @@
|
|||||||
:close-on-click-modal="false"
|
:close-on-click-modal="false"
|
||||||
>
|
>
|
||||||
<el-row class="header">
|
<el-row class="header">
|
||||||
<el-col :span="11"><span>Station name</span></el-col>
|
<el-col :span="11"><span>车站名称</span></el-col>
|
||||||
<el-col :span="11" :offset="2"><span>Switch</span></el-col>
|
<el-col :span="11" :offset="2"><span>道岔</span></el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="11">
|
<el-col :span="11">
|
||||||
@ -23,20 +23,20 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<div style="padding: 10px 15px; border: 1px double lightgray;height: 60px;margin-top: 15px;">
|
<div style="padding: 10px 15px; border: 1px double lightgray;height: 60px;margin-top: 15px;">
|
||||||
<span class="base-label" style="left:-10px;background:#f0f0f0;">Hook lock position</span>
|
<span class="base-label" style="left:-10px;background:#f0f0f0;">钩锁位置</span>
|
||||||
<div style=" position: relative; top:-10px;">
|
<div style=" position: relative; top:10px;">
|
||||||
<el-radio-group v-model="normal">
|
<el-radio-group v-model="normal">
|
||||||
<el-radio :label="true">Normal</el-radio>
|
<el-radio :label="true">定位</el-radio>
|
||||||
<el-radio :label="false">Reverse</el-radio>
|
<el-radio :label="false">反位</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<el-row justify="center" class="button-group">
|
<el-row justify="center" class="button-group">
|
||||||
<el-col :span="10" :offset="2">
|
<el-col :span="10" :offset="2">
|
||||||
<el-button type="primary" :loading="loading" @click="commit">Confirm</el-button>
|
<el-button type="primary" :loading="loading" @click="commit">确定</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8" :offset="4">
|
<el-col :span="8" :offset="4">
|
||||||
<el-button @click="doClose">Cancel</el-button>
|
<el-button @click="doClose">取 消</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<notice-info ref="noticeInfo" :pop-class="popClass" />
|
<notice-info ref="noticeInfo" :pop-class="popClass" />
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<el-dialog
|
<el-dialog
|
||||||
v-dialogDrag
|
v-dialogDrag
|
||||||
title="Train Control"
|
title="列车操作"
|
||||||
:visible.sync="dialogVisible"
|
:visible.sync="dialogVisible"
|
||||||
width="30%"
|
width="30%"
|
||||||
:modal="false"
|
:modal="false"
|
||||||
@ -20,7 +20,7 @@
|
|||||||
/>
|
/>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="3" :offset="2">
|
<el-col :span="3" :offset="2">
|
||||||
<el-button size="mini" type="danger" style="margin-top: 15px;" @click="brakeTrain">brake</el-button>
|
<el-button size="mini" type="danger" style="margin-top: 15px;" @click="brakeTrain">刹车</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row style="margin-top: 40px">
|
<el-row style="margin-top: 40px">
|
||||||
@ -35,7 +35,7 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row style="text-align: center;margin-top: 15px;">
|
<el-row style="text-align: center;margin-top: 15px;">
|
||||||
<el-button type="primary" size="mini" @click="handleRun">Run</el-button>
|
<el-button type="primary" size="mini" @click="handleRun">自动运行</el-button>
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</template>
|
</template>
|
||||||
@ -44,7 +44,7 @@
|
|||||||
import LeftTrain from '@/assets/left_train.png';
|
import LeftTrain from '@/assets/left_train.png';
|
||||||
import RightTrain from '@/assets/right_train.png';
|
import RightTrain from '@/assets/right_train.png';
|
||||||
import { sandTableTrainControl } from '@/api/simulation';
|
import { sandTableTrainControl } from '@/api/simulation';
|
||||||
import { menuOperate } from '@/jmapNew/theme/components/utils/menuOperate';
|
import {menuOperate} from '@/jmapNew/theme/components/utils/menuOperate';
|
||||||
export default {
|
export default {
|
||||||
name: 'TrainOperation',
|
name: 'TrainOperation',
|
||||||
data() {
|
data() {
|
||||||
@ -117,7 +117,7 @@ export default {
|
|||||||
adjustDirection() {
|
adjustDirection() {
|
||||||
sandTableTrainControl(this.$route.query.group, { groupNumber: this.groupNumber, right: !this.right, speed: this.speed }).then(resp => {
|
sandTableTrainControl(this.$route.query.group, { groupNumber: this.groupNumber, right: !this.right, speed: this.speed }).then(resp => {
|
||||||
this.right = !this.right;
|
this.right = !this.right;
|
||||||
}).catch(err => { this.$message.error(err.message); });
|
}).catch(err => { this.$message.error(err.message); }).finally(() => { this.changeSpeedFlag = false; });
|
||||||
},
|
},
|
||||||
brakeTrain() {
|
brakeTrain() {
|
||||||
sandTableTrainControl(this.$route.query.group, { groupNumber: this.groupNumber, right: this.right, speed: 0 }).then(resp => {
|
sandTableTrainControl(this.$route.query.group, { groupNumber: this.groupNumber, right: this.right, speed: 0 }).then(resp => {
|
||||||
@ -146,7 +146,7 @@ export default {
|
|||||||
}
|
}
|
||||||
}).catch((error) => {
|
}).catch((error) => {
|
||||||
this.$messageBox(error.message || 'Failed to set or cancel the fault!');
|
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>
|
<el-form ref="form" size="small" label-width="80px" :model="addModel" @submit.native.prevent>
|
||||||
<div style="width: 96%;">
|
<div style="width: 96%;">
|
||||||
<el-form-item label="is or isn't EB:" label-width="95px" prop="speedLimit">
|
<el-form-item label="是否EB:" label-width="95px" prop="speedLimit">
|
||||||
<div style="display: flex;align-items: center;">
|
<div style="display: flex;align-items: center;">
|
||||||
<el-checkbox v-model="addModel.eb" />
|
<el-checkbox v-model="addModel.eb" />
|
||||||
</div>
|
</div>
|
||||||
@ -22,10 +22,10 @@
|
|||||||
</el-form>
|
</el-form>
|
||||||
<el-row justify="center" class="button-group">
|
<el-row justify="center" class="button-group">
|
||||||
<el-col :span="10" :offset="2">
|
<el-col :span="10" :offset="2">
|
||||||
<el-button type="primary" :loading="loading" @click="commit">Confirm</el-button>
|
<el-button type="primary" :loading="loading" @click="commit">确定</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8" :offset="4">
|
<el-col :span="8" :offset="4">
|
||||||
<el-button @click="doClose">Cancel</el-button>
|
<el-button @click="doClose">取 消</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<notice-info ref="noticeInfo" :pop-class="popClass" />
|
<notice-info ref="noticeInfo" :pop-class="popClass" />
|
||||||
@ -67,7 +67,7 @@ export default {
|
|||||||
return this.dialogShow && !this.$store.state.menuOperation.break;
|
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||||
},
|
},
|
||||||
title() {
|
title() {
|
||||||
return 'Input speed limit';
|
return '输入限速值';
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
watch:{
|
watch:{
|
||||||
|
@ -13,6 +13,7 @@ import SetTrainOperation from '@/jmapNew/theme/components/menus/dialog/setTrainO
|
|||||||
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
|
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
|
||||||
import SetFault from '@/jmapNew/theme/components/menus/dialog/setFault';
|
import SetFault from '@/jmapNew/theme/components/menus/dialog/setFault';
|
||||||
import { DeviceMenu } from '@/scripts/ConstDic';
|
import { DeviceMenu } from '@/scripts/ConstDic';
|
||||||
|
import CMD from '@/scripts/cmdPlugin/CommandEnum';
|
||||||
export default {
|
export default {
|
||||||
name: 'MenuTrain',
|
name: 'MenuTrain',
|
||||||
components: {
|
components: {
|
||||||
@ -87,6 +88,31 @@ export default {
|
|||||||
{
|
{
|
||||||
label: '回库',
|
label: '回库',
|
||||||
handler: this.setInbound
|
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
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
};
|
};
|
||||||
@ -211,6 +237,34 @@ export default {
|
|||||||
this.$refs.popMenu.close();
|
this.$refs.popMenu.close();
|
||||||
// this.$store.dispatch('map/setTrainWindowShow', false);
|
// 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
|
<el-dialog
|
||||||
v-dialogDrag
|
v-dialogDrag
|
||||||
:class="popClass+' passive-control'"
|
:class="popClass+' passive-control'"
|
||||||
title="Request Control Mode"
|
title="控制模式请求"
|
||||||
:visible.sync="show"
|
:visible.sync="show"
|
||||||
width="700px"
|
width="700px"
|
||||||
:before-close="doClose"
|
:before-close="doClose"
|
||||||
@ -11,7 +11,7 @@
|
|||||||
:modal="false"
|
:modal="false"
|
||||||
:close-on-click-modal="false"
|
:close-on-click-modal="false"
|
||||||
>
|
>
|
||||||
<span class="control-label">{{ `${requestInfo} request control mode for the following areas` }}</span>
|
<span class="control-label">{{ `${requestInfo}请求如下区域的控制模式` }}</span>
|
||||||
<el-table
|
<el-table
|
||||||
ref="multipleTable"
|
ref="multipleTable"
|
||||||
:data="tableData"
|
:data="tableData"
|
||||||
@ -23,35 +23,35 @@
|
|||||||
size="mini"
|
size="mini"
|
||||||
highlight-current-row
|
highlight-current-row
|
||||||
>
|
>
|
||||||
<el-table-column prop="operate" label="Operating area">
|
<el-table-column prop="operate" label="操作区域">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span :style="{color: scope.row.disabled ? '#CBCBCB':'unset'}">{{ scope.row.operate }}</span>
|
<span :style="{color: scope.row.disabled ? '#CBCBCB':'unset'}">{{ scope.row.operate }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="control" label="Current control mode" width="120">
|
<el-table-column prop="control" label="当前控制模式" width="120">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span :style="{color: scope.row.disabled ? '#CBCBCB':'unset'}">{{ scope.row.control.name }}</span>
|
<span :style="{color: scope.row.disabled ? '#CBCBCB':'unset'}">{{ scope.row.control.name }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="target" label="Request control mode" width="120">
|
<el-table-column prop="target" label="请求控制模式" width="120">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span :style="{color: scope.row.disabled ? '#CBCBCB':'unset'}">{{ scope.row.target.name }}</span>
|
<span :style="{color: scope.row.disabled ? '#CBCBCB':'unset'}">{{ scope.row.target.name }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="agree" label="Agree" width="140">
|
<el-table-column prop="agree" label="是否同意" width="140">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-checkbox ref="agree" v-model="scope.row.agree" :disabled="scope.row.disabled" />
|
<el-checkbox ref="agree" v-model="scope.row.agree" :disabled="scope.row.disabled" />
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
<span class="control-label">Two {{ count }} to speak. Respond.</span>
|
<span class="control-label">距离对话还有{{ count }}秒,请应答。</span>
|
||||||
<el-row class="button-group">
|
<el-row class="button-group">
|
||||||
<el-col :span="10" :offset="3">
|
<el-col :span="10" :offset="3">
|
||||||
<el-button :id="domAgree" :disabled="disabledAgree" @click="agree">Agree
|
<el-button :id="domAgree" :disabled="disabledAgree" @click="agree">同意
|
||||||
</el-button>
|
</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6" :offset="4">
|
<el-col :span="6" :offset="4">
|
||||||
<el-button :id="domIdRefuse" :disabled="disabledRefuse" @click="refuse">Refuse</el-button>
|
<el-button :id="domIdRefuse" :disabled="disabledRefuse" @click="refuse">拒绝</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<!-- ningbo-01__systerm -->
|
<!-- ningbo-01__systerm -->
|
||||||
@ -83,11 +83,11 @@ export default {
|
|||||||
dialogShow: false,
|
dialogShow: false,
|
||||||
disabledAgree: false,
|
disabledAgree: false,
|
||||||
disabledRefuse: false,
|
disabledRefuse: false,
|
||||||
requestInfo: 'Dispatcher 1 workstation',
|
requestInfo: '调度员1工作站',
|
||||||
controlProps: {
|
controlProps: {
|
||||||
'Center': 'Center',
|
'Center': this.$t('menu.passiveDialog.inTheControl'),
|
||||||
'Local': 'Local',
|
'Local': this.$t('menu.passiveDialog.stationControl'),
|
||||||
'Emergency':'Emergency'
|
'Emergency':this.$t('menu.passiveDialog.emergencyControl')
|
||||||
},
|
},
|
||||||
selection: [],
|
selection: [],
|
||||||
tableData: [],
|
tableData: [],
|
||||||
@ -206,10 +206,8 @@ export default {
|
|||||||
let info = SimulationType[member.type];
|
let info = SimulationType[member.type];
|
||||||
if (member.deviceCode) {
|
if (member.deviceCode) {
|
||||||
const device = this.$store.getters['map/getDeviceByCode'](member.deviceCode);
|
const device = this.$store.getters['map/getDeviceByCode'](member.deviceCode);
|
||||||
if (device) {
|
|
||||||
info = info + `(${device.name})`;
|
info = info + `(${device.name})`;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
if (member.userId) {
|
if (member.userId) {
|
||||||
simulationUserList.forEach(item => {
|
simulationUserList.forEach(item => {
|
||||||
if (item.userId === member.userId) {
|
if (item.userId === member.userId) {
|
||||||
@ -271,7 +269,7 @@ export default {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else if (!selection) {
|
} else if (!selection) {
|
||||||
this.$messageBox('Please select a piece of data');
|
this.$messageBox('请选择一条数据');
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
agree() {
|
agree() {
|
||||||
|
@ -1,19 +1,34 @@
|
|||||||
import store from '@/store/index';
|
import store from "@/store/index";
|
||||||
/**
|
/**
|
||||||
* 判断菜单行值控制全
|
* 判断菜单行值控制全
|
||||||
* @param {String} stationCode 所属车站code
|
* @param {String} stationCode 所属车站code
|
||||||
* @param {String} centralStationCode 所属集中站code
|
* @param {String} centralStationCode 所属集中站code
|
||||||
* @param {String} work 当前客户端
|
* @param {String} work 当前客户端
|
||||||
* */
|
* */
|
||||||
export function judgeStationControl(stationCode, centralStationCode, work) {
|
export function judgeStationControl(
|
||||||
const centralStation = store.getters['map/getDeviceByCode'](centralStationCode);
|
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') {
|
if (work === "localWork") {
|
||||||
const flag1 = store.state.training.roleDeviceCode === stationCode || store.state.training.roleDeviceCode === centralStationCode;
|
const isBelongingStation =
|
||||||
const flag2 = centralStation.controlMode === 'Local' || centralStation.controlMode === 'Emergency';
|
store.state.training.roleDeviceCode === stationCode ||
|
||||||
return flag1 && flag2;
|
store.state.training.roleDeviceCode === centralStationCode;
|
||||||
} else if ( work === 'dispatchWork' ) {
|
return (
|
||||||
return centralStation.controlMode === 'Center';
|
((isCenterMode && isAvailableInOtherControlMode) || isLocalMode) &&
|
||||||
|
isBelongingStation
|
||||||
|
);
|
||||||
|
} else if (work === "dispatchWork") {
|
||||||
|
return isCenterMode || (isLocalMode && isAvailableInOtherControlMode);
|
||||||
} else {
|
} else {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -388,6 +388,14 @@ export const menuOperate = {
|
|||||||
// 非常站控 大铁线路
|
// 非常站控 大铁线路
|
||||||
operation: OperationEvent.StationControl.requestVeryControl.menu.operation,
|
operation: OperationEvent.StationControl.requestVeryControl.menu.operation,
|
||||||
cmdType:CMD.ControlConvertMenu.CMD_CM_SPECIAL_STATION_CONTROL
|
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: {
|
TrainWindow: {
|
||||||
@ -631,6 +639,10 @@ export const menuOperate = {
|
|||||||
takeOver: {
|
takeOver: {
|
||||||
operation: OperationEvent.Driver.takeOver.menu.operation,
|
operation: OperationEvent.Driver.takeOver.menu.operation,
|
||||||
cmdType: CMD.Driver.CMD_DRIVER_TAKEOVER
|
cmdType: CMD.Driver.CMD_DRIVER_TAKEOVER
|
||||||
|
},
|
||||||
|
specialPantographUpDown: {
|
||||||
|
operation: OperationEvent.Driver.pantograph.menu.operation,
|
||||||
|
cmdType: CMD.Driver.CMD_SPECIAL_PANTOGRAPH_UP_DOWN
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
CTC: {
|
CTC: {
|
||||||
|
@ -0,0 +1,141 @@
|
|||||||
|
<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>
|
@ -0,0 +1,156 @@
|
|||||||
|
<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>
|
@ -0,0 +1,74 @@
|
|||||||
|
<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>
|
@ -0,0 +1,173 @@
|
|||||||
|
<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>
|
@ -0,0 +1,194 @@
|
|||||||
|
<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>
|
@ -0,0 +1,94 @@
|
|||||||
|
<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>
|
163
src/jmapNew/theme/datie_01/menus/dialog/drawSelect.vue
Normal file
163
src/jmapNew/theme/datie_01/menus/dialog/drawSelect.vue
Normal file
@ -0,0 +1,163 @@
|
|||||||
|
<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>
|
196
src/jmapNew/theme/datie_01/menus/dialog/routeDetail.vue
Normal file
196
src/jmapNew/theme/datie_01/menus/dialog/routeDetail.vue
Normal file
@ -0,0 +1,196 @@
|
|||||||
|
<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>
|
278
src/jmapNew/theme/datie_01/menus/dialog/routeGuide.vue
Normal file
278
src/jmapNew/theme/datie_01/menus/dialog/routeGuide.vue
Normal file
@ -0,0 +1,278 @@
|
|||||||
|
<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>
|
268
src/jmapNew/theme/datie_01/menus/dialog/routeHandControl.vue
Normal file
268
src/jmapNew/theme/datie_01/menus/dialog/routeHandControl.vue
Normal file
@ -0,0 +1,268 @@
|
|||||||
|
<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>
|
325
src/jmapNew/theme/datie_01/menus/dialog/routeSelection.vue
Normal file
325
src/jmapNew/theme/datie_01/menus/dialog/routeSelection.vue
Normal file
@ -0,0 +1,325 @@
|
|||||||
|
<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>
|
114
src/jmapNew/theme/datie_01/menus/dialog/sectionDetail.vue
Normal file
114
src/jmapNew/theme/datie_01/menus/dialog/sectionDetail.vue
Normal file
@ -0,0 +1,114 @@
|
|||||||
|
<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>
|
603
src/jmapNew/theme/datie_01/menus/dialog/standControl.vue
Normal file
603
src/jmapNew/theme/datie_01/menus/dialog/standControl.vue
Normal file
@ -0,0 +1,603 @@
|
|||||||
|
<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>
|
217
src/jmapNew/theme/datie_01/menus/dialog/standDetail.vue
Normal file
217
src/jmapNew/theme/datie_01/menus/dialog/standDetail.vue
Normal file
@ -0,0 +1,217 @@
|
|||||||
|
<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>
|
332
src/jmapNew/theme/datie_01/menus/dialog/trainControl.vue
Normal file
332
src/jmapNew/theme/datie_01/menus/dialog/trainControl.vue
Normal file
@ -0,0 +1,332 @@
|
|||||||
|
<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>
|
133
src/jmapNew/theme/datie_01/menus/dialog/trainCreate.vue
Normal file
133
src/jmapNew/theme/datie_01/menus/dialog/trainCreate.vue
Normal file
@ -0,0 +1,133 @@
|
|||||||
|
<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>
|
181
src/jmapNew/theme/datie_01/menus/dialog/trainCreateNumber.vue
Normal file
181
src/jmapNew/theme/datie_01/menus/dialog/trainCreateNumber.vue
Normal file
@ -0,0 +1,181 @@
|
|||||||
|
<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>
|
150
src/jmapNew/theme/datie_01/menus/dialog/trainDelete.vue
Normal file
150
src/jmapNew/theme/datie_01/menus/dialog/trainDelete.vue
Normal file
@ -0,0 +1,150 @@
|
|||||||
|
<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>
|
176
src/jmapNew/theme/datie_01/menus/dialog/trainDeleteNumber.vue
Normal file
176
src/jmapNew/theme/datie_01/menus/dialog/trainDeleteNumber.vue
Normal file
@ -0,0 +1,176 @@
|
|||||||
|
<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>
|
378
src/jmapNew/theme/datie_01/menus/dialog/trainDetailInfo.vue
Normal file
378
src/jmapNew/theme/datie_01/menus/dialog/trainDetailInfo.vue
Normal file
@ -0,0 +1,378 @@
|
|||||||
|
<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>
|
174
src/jmapNew/theme/datie_01/menus/dialog/trainEditNumber.vue
Normal file
174
src/jmapNew/theme/datie_01/menus/dialog/trainEditNumber.vue
Normal file
@ -0,0 +1,174 @@
|
|||||||
|
<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>
|
200
src/jmapNew/theme/datie_01/menus/dialog/trainMove.vue
Normal file
200
src/jmapNew/theme/datie_01/menus/dialog/trainMove.vue
Normal file
@ -0,0 +1,200 @@
|
|||||||
|
<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>
|
193
src/jmapNew/theme/datie_01/menus/dialog/trainMoveNumber.vue
Normal file
193
src/jmapNew/theme/datie_01/menus/dialog/trainMoveNumber.vue
Normal file
@ -0,0 +1,193 @@
|
|||||||
|
<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>
|
209
src/jmapNew/theme/datie_01/menus/dialog/trainSwitch.vue
Normal file
209
src/jmapNew/theme/datie_01/menus/dialog/trainSwitch.vue
Normal file
@ -0,0 +1,209 @@
|
|||||||
|
<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>
|
364
src/jmapNew/theme/datie_01/menus/index.vue
Normal file
364
src/jmapNew/theme/datie_01/menus/index.vue
Normal file
@ -0,0 +1,364 @@
|
|||||||
|
<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>
|
685
src/jmapNew/theme/datie_01/menus/menuBar.vue
Normal file
685
src/jmapNew/theme/datie_01/menus/menuBar.vue
Normal file
@ -0,0 +1,685 @@
|
|||||||
|
<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>
|
@ -0,0 +1,133 @@
|
|||||||
|
<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>
|
@ -0,0 +1,157 @@
|
|||||||
|
<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>
|
@ -0,0 +1,129 @@
|
|||||||
|
<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>
|
@ -0,0 +1,173 @@
|
|||||||
|
<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>
|
138
src/jmapNew/theme/datie_01/menus/menuDialog/limitSpeed.vue
Normal file
138
src/jmapNew/theme/datie_01/menus/menuDialog/limitSpeed.vue
Normal file
@ -0,0 +1,138 @@
|
|||||||
|
<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>
|
285
src/jmapNew/theme/datie_01/menus/menuDialog/manageUser.vue
Normal file
285
src/jmapNew/theme/datie_01/menus/menuDialog/manageUser.vue
Normal file
@ -0,0 +1,285 @@
|
|||||||
|
<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>
|
221
src/jmapNew/theme/datie_01/menus/menuDialog/passwordBox.vue
Normal file
221
src/jmapNew/theme/datie_01/menus/menuDialog/passwordBox.vue
Normal file
@ -0,0 +1,221 @@
|
|||||||
|
<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>
|
286
src/jmapNew/theme/datie_01/menus/menuDialog/setLimitSpeed.vue
Normal file
286
src/jmapNew/theme/datie_01/menus/menuDialog/setLimitSpeed.vue
Normal file
@ -0,0 +1,286 @@
|
|||||||
|
<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>
|
@ -2,7 +2,7 @@
|
|||||||
<el-dialog
|
<el-dialog
|
||||||
v-dialogDrag
|
v-dialogDrag
|
||||||
class="chengdou-03__systerm station-control-convert"
|
class="chengdou-03__systerm station-control-convert"
|
||||||
title="Control Mode Conversion"
|
title="控制模式转换"
|
||||||
:visible.sync="show"
|
:visible.sync="show"
|
||||||
width="700px"
|
width="700px"
|
||||||
:before-close="doClose"
|
:before-close="doClose"
|
||||||
@ -22,41 +22,42 @@
|
|||||||
size="mini"
|
size="mini"
|
||||||
highlight-current-row
|
highlight-current-row
|
||||||
>
|
>
|
||||||
<el-table-column :id="domIdChoose" prop="check" label="Select" width="60" style="margin-left:30px">
|
<el-table-column :id="domIdChoose" prop="check" label="选择" width="60" style="margin-left:30px">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-checkbox ref="check" v-model="scope.row.check" :disabled="scope.row.disabled" />
|
<el-checkbox ref="check" v-model="scope.row.check" :disabled="scope.row.disabled" />
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="operate" label="Operating Area" width="140">
|
<el-table-column prop="operate" label="操作区域" width="140">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span :style="{color: scope.row.disabled ? '#CBCBCB':'unset'}">{{ scope.row.operate }}</span>
|
<span :style="{color: scope.row.disabled ? '#CBCBCB':'unset'}">{{ scope.row.operate }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="control" label="Control Mode" width="80">
|
<el-table-column prop="control" label="控制模式" width="80">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span :style="{color: scope.row.disabled ? '#CBCBCB':'unset'}">{{ scope.row.control }}</span>
|
<span :style="{color: scope.row.disabled ? '#CBCBCB':'unset'}">{{ scope.row.control }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="status" label="Center Station Communication Status" width="140">
|
<el-table-column prop="status" label="中心-车站通信状态" width="140">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span :style="{color: scope.row.disabled ? '#CBCBCB':'unset'}">{{ scope.row.status }}</span>
|
<span :style="{color: scope.row.disabled ? '#CBCBCB':'unset'}">{{ scope.row.status }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="result" label="Transfer Execution Status">
|
<el-table-column prop="result" label="转换执行状态">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span :style="{color: scope.row.disabled ? '#CBCBCB':'unset'}">{{ scope.row.result }}</span>
|
<span :style="{color: scope.row.disabled ? '#CBCBCB':'unset'}">{{ scope.row.result }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
<el-row class="button-group">
|
<el-row class="button-group">
|
||||||
<el-col :span="10" :offset="3" class="control_button">
|
<el-col :span="10" :offset="3">
|
||||||
<el-button style="width: 200px" v-if="isFork" :id="domIdFork" :disabled="disabledCommit" @click="forkCommit">Emergency Station Control</el-button>
|
<el-button v-if="isFork" :id="domIdFork" :disabled="disabledCommit" @click="forkCommit">强制站控</el-button>
|
||||||
<el-button style="width: 150px" v-if="isRequest" :id="domIdRequest" :disabled="disabledCommit" @click="requestCommit">To Station Control</el-button>
|
<el-button v-if="isRequest" :id="domIdRequest" :disabled="disabledCommit" @click="requestCommit">请求站控
|
||||||
<el-button style="width: 150px" v-if="isConter" :id="domIdConter" :disabled="disabledCommit" @click="conterCommit">To Center Control</el-button>
|
</el-button>
|
||||||
|
<el-button v-if="isConter" :id="domIdConter" :disabled="disabledCommit" @click="conterCommit">请求中控
|
||||||
|
</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6" :offset="4">
|
<el-col :span="6" :offset="4">
|
||||||
<el-button :id="domIdCancel" :disabled="disabledClose" @click="cancel">Close
|
<el-button :id="domIdCancel" :disabled="disabledClose" @click="cancel">关闭</el-button>
|
||||||
</el-button>
|
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<two-confirmation ref="twoConfirmation" @setOperate="getOperate" />
|
<two-confirmation ref="twoConfirmation" @setOperate="getOperate" />
|
||||||
@ -74,14 +75,6 @@ export default {
|
|||||||
components: {
|
components: {
|
||||||
TwoConfirmation
|
TwoConfirmation
|
||||||
},
|
},
|
||||||
props: {
|
|
||||||
work: {
|
|
||||||
type: String,
|
|
||||||
default() {
|
|
||||||
return '';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
operate: null,
|
operate: null,
|
||||||
@ -91,13 +84,15 @@ export default {
|
|||||||
disabledClose: false,
|
disabledClose: false,
|
||||||
operation: '',
|
operation: '',
|
||||||
controlProps: {
|
controlProps: {
|
||||||
'Center': 'Center',
|
'01': '中控',
|
||||||
'Local': 'Local'
|
'02': '站控'
|
||||||
},
|
},
|
||||||
selection: [],
|
selection: [],
|
||||||
tableData: [],
|
tableData: [],
|
||||||
timer: null,
|
timer: null,
|
||||||
count: 0
|
count: 0,
|
||||||
|
backOperate: '',
|
||||||
|
timeout: 61
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
@ -118,19 +113,19 @@ export default {
|
|||||||
if (this.dialogShow) {
|
if (this.dialogShow) {
|
||||||
return OperationHandler.checkOperationIsCurrentOperate(this.operation, OperationEvent.StationControl.forcedStationControl);
|
return OperationHandler.checkOperationIsCurrentOperate(this.operation, OperationEvent.StationControl.forcedStationControl);
|
||||||
}
|
}
|
||||||
return false;
|
return '';
|
||||||
},
|
},
|
||||||
isRequest() {
|
isRequest() {
|
||||||
if (this.dialogShow) {
|
if (this.dialogShow) {
|
||||||
return OperationHandler.checkOperationIsCurrentOperate(this.operation, OperationEvent.StationControl.requestStationControl);
|
return OperationHandler.checkOperationIsCurrentOperate(this.operation, OperationEvent.StationControl.requestStationControl);
|
||||||
}
|
}
|
||||||
return false;
|
return '';
|
||||||
},
|
},
|
||||||
isConter() {
|
isConter() {
|
||||||
if (this.dialogShow) {
|
if (this.dialogShow) {
|
||||||
return OperationHandler.checkOperationIsCurrentOperate(this.operation, OperationEvent.StationControl.requestCentralControl);
|
return OperationHandler.checkOperationIsCurrentOperate(this.operation, OperationEvent.StationControl.requestCentralControl);
|
||||||
}
|
}
|
||||||
return false;
|
return '';
|
||||||
},
|
},
|
||||||
domIdChoose() {
|
domIdChoose() {
|
||||||
if (this.dialogShow) {
|
if (this.dialogShow) {
|
||||||
@ -142,7 +137,7 @@ export default {
|
|||||||
return OperationEvent.StationControl.requestCentralControl.choose.domId;
|
return OperationEvent.StationControl.requestCentralControl.choose.domId;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return '';
|
||||||
},
|
},
|
||||||
domIdConter() {
|
domIdConter() {
|
||||||
return this.dialogShow ? OperationEvent.StationControl.requestCentralControl.menu.domId : '';
|
return this.dialogShow ? OperationEvent.StationControl.requestCentralControl.menu.domId : '';
|
||||||
@ -158,10 +153,31 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
'$store.state.map.controlTransfer':function (controlTransferList) {
|
'$store.state.socket.msgHead': function (elem) {
|
||||||
controlTransferList.forEach(controlTransfer=>{
|
if (elem) {
|
||||||
this.updateTableValue(controlTransfer);
|
if (elem.hasOwnProperty('timeout')) {
|
||||||
|
this.updateTableValue(elem.stationControlCode, { result: `接受转换应答超时` }, false);
|
||||||
|
} else if (elem.hasOwnProperty('success')) {
|
||||||
|
if (elem.success) {
|
||||||
|
this.updateTableValue(elem.stationControlCode, { result: '控制模式转换成功' }, true);
|
||||||
|
} else {
|
||||||
|
this.updateTableValue(elem.stationControlCode, { result: `控制模式转换失败` }, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
backOperate: function (operate) {
|
||||||
|
if (this.dialogShow && operate) {
|
||||||
|
if (operate.selection && operate.selection.length) {
|
||||||
|
operate.selection.forEach(elem => {
|
||||||
|
if (operate.commit) {
|
||||||
|
this.updateTableValue(elem.code, { result: `已发送转换请求,${this.timeout}秒后超时.` }, false);
|
||||||
|
} else if (operate.cancel) {
|
||||||
|
this.updateTableValue(elem.code, { result: '' }, false);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
// 深度数据状态
|
// 深度数据状态
|
||||||
tableData: {
|
tableData: {
|
||||||
@ -172,31 +188,23 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
// this.loadTableData();
|
this.loadTableData();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
updateTableValue(controlTransfer) {
|
updateTableValue(code, result, success) {
|
||||||
this.tableData.forEach((row, index) => {
|
this.tableData.forEach((row, index) => {
|
||||||
if (row.code == controlTransfer.code) {
|
if (row.code == code) {
|
||||||
if (controlTransfer.applicantId) {
|
for (const prop in result) {
|
||||||
row.result = 'A transfer request has been sent and timed out after,' + controlTransfer.validDuration + 'seconds.';
|
row[prop] = result[prop];
|
||||||
row.disabled = true;
|
|
||||||
row.check = false;
|
|
||||||
} else {
|
|
||||||
if (row.control != this.controlProps[controlTransfer.controlMode]) {
|
|
||||||
row.result = 'Control mode transfer success';
|
|
||||||
row.control = this.controlProps[controlTransfer.controlMode];
|
|
||||||
this.removeSelection(controlTransfer.code);
|
|
||||||
row.disabled = true;
|
|
||||||
row.check = false;
|
|
||||||
} else {
|
|
||||||
row.result = 'Control mode transfer failed';
|
|
||||||
this.removeSelection(controlTransfer.code);
|
|
||||||
row.disabled = false;
|
|
||||||
row.check = false;
|
|
||||||
}
|
}
|
||||||
this.disabledClose = false;
|
if (success) {
|
||||||
this.disabledSure = false;
|
if (OperationHandler.checkOperationIsCurrentOperate(this.operation, OperationEvent.StationControl.forcedStationControl) || OperationHandler.checkOperationIsCurrentOperate(this.operation, OperationEvent.StationControl.requestStationControl)) {
|
||||||
|
row.control = this.controlProps['02']; // 01:中控, 02:站控
|
||||||
|
} else if (OperationHandler.checkOperationIsCurrentOperate(this.operation, OperationEvent.StationControl.requestCentralControl)) {
|
||||||
|
row.control = this.controlProps['01']; // 01:中控, 02:站控
|
||||||
|
}
|
||||||
|
row.disabled = true;
|
||||||
|
row.check = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -218,13 +226,13 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
checkBoxDisabled(row) {
|
checkBoxDisabled(row) {
|
||||||
const control = (this.$store.getters['map/getDeviceByCode'](row.code) || {});
|
const control = (this.$store.getters('map/getDeviceByCode')(row.code) || {});
|
||||||
if (OperationHandler.checkOperationIsCurrentOperate(this.operation, OperationEvent.StationControl.forcedStationControl) || OperationHandler.checkOperationIsCurrentOperate(this.operation, OperationEvent.StationControl.requestStationControl)) {
|
if (OperationHandler.checkOperationIsCurrentOperate(this.operation, OperationEvent.StationControl.forcedStationControl) || OperationHandler.checkOperationIsCurrentOperate(this.operation, OperationEvent.StationControl.requestStationControl)) {
|
||||||
if (control && control.controlMode == 'Local') { // Center:中控, Local:站控
|
if (control && control.status == '02') { // 01:中控, 02:站控
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
} else if (OperationHandler.checkOperationIsCurrentOperate(this.operation, OperationEvent.StationControl.requestCentralControl)) {
|
} else if (OperationHandler.checkOperationIsCurrentOperate(this.operation, OperationEvent.StationControl.requestCentralControl)) {
|
||||||
if (control && control.controlMode == 'Center') { // Center:中控, Local:站控
|
if (control && control.status == '01') { // 01:中控, 02:站控
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -232,55 +240,29 @@ export default {
|
|||||||
},
|
},
|
||||||
loadTableData() {
|
loadTableData() {
|
||||||
this.tableData = [];
|
this.tableData = [];
|
||||||
if (this.stationList) {
|
|
||||||
this.stationList.forEach(station => {
|
this.stationList.forEach(station => {
|
||||||
if (station.createControlMode) {
|
// const station = this.$store.getters['map/getDeviceByCode'](control.stationCode);
|
||||||
this.tableData.push({
|
this.tableData.push({
|
||||||
code: station.code,
|
code: station.code,
|
||||||
operate: station.name || '',
|
operate: station.name || '',
|
||||||
control: '',
|
control: '',
|
||||||
check: false,
|
check: false,
|
||||||
disabled: false,
|
disabled: false,
|
||||||
status: 'normal',
|
status: '正常',
|
||||||
result: ''
|
result: ''
|
||||||
});
|
});
|
||||||
}
|
|
||||||
});
|
});
|
||||||
}
|
|
||||||
},
|
},
|
||||||
initTableDataStatus() {
|
initTableDataStatus() {
|
||||||
this.tableData = [];
|
this.tableData.forEach(row => {
|
||||||
if (this.work === 'dispatchWork') {
|
row.disabled = this.checkBoxDisabled(row);
|
||||||
this.stationList && this.stationList.forEach(station => {
|
row.check = false;
|
||||||
if (station.createControlMode) {
|
row.result = '';
|
||||||
const control = this.$store.getters['map/getDeviceByCode'](station.code);
|
const control = (this.$store.getters('map/getDeviceByCode')(row.code) || {}).state;
|
||||||
this.tableData.push({
|
if (control) {
|
||||||
code: station.code,
|
row.control = this.controlProps[control.status];
|
||||||
operate: station.name || '',
|
|
||||||
control: control ? this.controlProps[control.controlMode] : '',
|
|
||||||
check: false,
|
|
||||||
disabled: this.checkBoxDisabled(station),
|
|
||||||
status: 'normal',
|
|
||||||
result: ''
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else if (this.work === 'localWork') {
|
|
||||||
const stationCodeList = this.$store.state.map.stationControlMap[this.$store.state.training.roleDeviceCode] || [];
|
|
||||||
const list = [...new Set(stationCodeList)]; // 去重
|
|
||||||
list && list.forEach(stationCode => {
|
|
||||||
const station = this.$store.getters['map/getDeviceByCode'](stationCode);
|
|
||||||
this.tableData.push({
|
|
||||||
code: station.code,
|
|
||||||
operate: station.name || '',
|
|
||||||
control: station ? this.controlProps[station.controlMode] : '',
|
|
||||||
check: false,
|
|
||||||
disabled: this.checkBoxDisabled(station),
|
|
||||||
status: 'normal',
|
|
||||||
result: ''
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
doShow(operate) {
|
doShow(operate) {
|
||||||
if (!this.dialogShow) {
|
if (!this.dialogShow) {
|
||||||
@ -295,9 +277,11 @@ export default {
|
|||||||
doClose() {
|
doClose() {
|
||||||
this.dialogShow = false;
|
this.dialogShow = false;
|
||||||
this.$store.dispatch('training/emitTipFresh');
|
this.$store.dispatch('training/emitTipFresh');
|
||||||
|
this.$refs.multipleTable.setCurrentRow();
|
||||||
},
|
},
|
||||||
cancel() {
|
cancel() {
|
||||||
const operate = {
|
const operate = {
|
||||||
|
type: 'bar',
|
||||||
operation: OperationEvent.Command.cancel.menu.operation
|
operation: OperationEvent.Command.cancel.menu.operation
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -307,24 +291,29 @@ export default {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
removeSelection(code) {
|
clearTimer() {
|
||||||
let selectionIndex = -1;
|
this.count = 0;
|
||||||
this.selection.forEach((item, index) => {
|
if (this.timer) {
|
||||||
if (item.code === code) {
|
clearInterval(this.timer);
|
||||||
selectionIndex = index;
|
this.timer = null;
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
serializeCodeListWithSeparator(sep) {
|
||||||
|
const codeList = [];
|
||||||
|
if (this.selection && this.selection.length) {
|
||||||
|
this.selection.forEach(elem => {
|
||||||
|
codeList.push(elem.code);
|
||||||
});
|
});
|
||||||
if (selectionIndex > -1) {
|
|
||||||
this.selection.splice(selectionIndex, 1);
|
|
||||||
}
|
}
|
||||||
|
return codeList.join(sep);
|
||||||
},
|
},
|
||||||
handleChooseChange(selection) {
|
handleChooseChange(selection) {
|
||||||
this.selection = selection;
|
this.selection = selection;
|
||||||
const stationCodeList = selection.map(elem => { return elem.code; });
|
|
||||||
if (selection && selection.length) {
|
if (selection && selection.length) {
|
||||||
const operate = {
|
const operate = {
|
||||||
|
|
||||||
operation: '',
|
operation: '',
|
||||||
val: stationCodeList.join('::'),
|
val: this.serializeCodeListWithSeparator('::'),
|
||||||
selection: selection
|
selection: selection
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -339,31 +328,29 @@ export default {
|
|||||||
this.disabledSure = true;
|
this.disabledSure = true;
|
||||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
|
this.disabledSure = false;
|
||||||
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||||
}
|
}
|
||||||
this.disabledSure = false;
|
|
||||||
});
|
});
|
||||||
} else if (!selection) {
|
} else if (!selection) {
|
||||||
this.$messageBox('Please select a piece of data');
|
this.$messageBox('请选择一条数据');
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
requestCommit() {
|
requestCommit() {
|
||||||
const stationCodeList = this.selection.map(elem => { return elem.code; });
|
|
||||||
const operate = {
|
const operate = {
|
||||||
messages: ['Confirm that the control mode of the following operation area is changed from central control to station control:'],
|
|
||||||
|
messages: ['确认将如下操作区域的控制模式由中控转为站控:'],
|
||||||
operation: OperationEvent.StationControl.requestStationControl.menu.operation,
|
operation: OperationEvent.StationControl.requestStationControl.menu.operation,
|
||||||
val: stationCodeList.join('::'),
|
val: this.serializeCodeListWithSeparator('::'),
|
||||||
selection: this.selection,
|
selection: this.selection
|
||||||
param: {
|
|
||||||
stationCodes: stationCodeList
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
this.selection.forEach((elem, index) => {
|
this.selection.forEach((elem, index) => {
|
||||||
operate.messages.push(`Operating Area ${index + 1}:${elem.operate}`);
|
operate.messages.push(`操作区域${index + 1}:${elem.operate}`);
|
||||||
});
|
});
|
||||||
|
|
||||||
this.disabledSure = true;
|
this.disabledSure = true;
|
||||||
|
this.disabledClose = true;
|
||||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||||
@ -373,25 +360,24 @@ export default {
|
|||||||
}
|
}
|
||||||
}).catch(() => {
|
}).catch(() => {
|
||||||
this.disabledSure = false;
|
this.disabledSure = false;
|
||||||
|
this.disabledClose = false;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
forkCommit() {
|
forkCommit() {
|
||||||
const stationCodeList = this.selection.map(elem => { return elem.code; });
|
|
||||||
const operate = {
|
const operate = {
|
||||||
messages: ['Confirm that the control mode of the following operation area is changed from station control to central control:'],
|
|
||||||
|
messages: ['确认将如下操作区域的控制模式由中控转为站控:'],
|
||||||
operation: OperationEvent.StationControl.forcedStationControl.menu.operation,
|
operation: OperationEvent.StationControl.forcedStationControl.menu.operation,
|
||||||
val: stationCodeList.join('::'),
|
val: this.serializeCodeListWithSeparator('::'),
|
||||||
selection: this.selection,
|
selection: this.selection
|
||||||
param: {
|
|
||||||
stationCodes: stationCodeList
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
this.selection.forEach((elem, index) => {
|
this.selection.forEach((elem, index) => {
|
||||||
operate.messages.push(`Operating Area ${index + 1}:${elem.operate}`);
|
operate.messages.push(`操作区域${index + 1}:${elem.operate}`);
|
||||||
});
|
});
|
||||||
|
|
||||||
this.disabledSure = true;
|
this.disabledSure = true;
|
||||||
|
this.disabledClose = true;
|
||||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||||
@ -401,25 +387,24 @@ export default {
|
|||||||
}
|
}
|
||||||
}).catch(() => {
|
}).catch(() => {
|
||||||
this.disabledSure = false;
|
this.disabledSure = false;
|
||||||
|
this.disabledClose = false;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
conterCommit() {
|
conterCommit() { // 请求中控
|
||||||
const stationCodeList = this.selection.map(elem => { return elem.code; });
|
|
||||||
const operate = {
|
const operate = {
|
||||||
messages: ['Confirm that the control mode of the following operation area is changed from station control to central control:'],
|
|
||||||
|
messages: ['确认将如下操作区域的控制模式由站控转为中控:'],
|
||||||
operation: OperationEvent.StationControl.requestCentralControl.menu.operation,
|
operation: OperationEvent.StationControl.requestCentralControl.menu.operation,
|
||||||
val: stationCodeList.join('::'),
|
val: this.serializeCodeListWithSeparator('::'),
|
||||||
selection: this.selection,
|
selection: this.selection
|
||||||
param: {
|
|
||||||
stationCodes: stationCodeList
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
this.selection.forEach((elem, index) => {
|
this.selection.forEach((elem, index) => {
|
||||||
operate.messages.push(`Operating Area ${index + 1}:${elem.operate}`);
|
operate.messages.push(`操作区域${index + 1}:${elem.operate}`);
|
||||||
});
|
});
|
||||||
|
|
||||||
this.disabledSure = true;
|
this.disabledSure = true;
|
||||||
|
this.disabledClose = true;
|
||||||
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
this.$store.dispatch('trainingNew/next', operate).then(({ valid }) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
||||||
@ -429,27 +414,20 @@ export default {
|
|||||||
}
|
}
|
||||||
}).catch(() => {
|
}).catch(() => {
|
||||||
this.disabledSure = false;
|
this.disabledSure = false;
|
||||||
|
this.disabledClose = false;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
getOperate(operate) {
|
getOperate(operate) {
|
||||||
|
this.backOperate = operate;
|
||||||
if (operate.cancel) {
|
if (operate.cancel) {
|
||||||
this.disabledSure = this.disabledSend = false;
|
|
||||||
this.disabledClose = false;
|
this.disabledClose = false;
|
||||||
|
this.disabledSure = this.disabledSend = false;
|
||||||
}
|
}
|
||||||
if (operate.commit || operate.timeout) {
|
if (operate.commit || operate.timeout) {
|
||||||
this.disabledSend = this.disabledSure = true;
|
this.disabledSend = this.disabledSure = true;
|
||||||
this.disabledClose = true;
|
this.disabledClose = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss" scoped>
|
|
||||||
.xian-01__systerm .el-dialog .control_button button{
|
|
||||||
max-width:180px;
|
|
||||||
width:auto ;
|
|
||||||
padding-left: 5px ;
|
|
||||||
padding-right: 5px ;
|
|
||||||
min-width: 80px;
|
|
||||||
}
|
|
||||||
</style>
|
|
168
src/jmapNew/theme/datie_01/menus/menuDialog/trainAdd.vue
Normal file
168
src/jmapNew/theme/datie_01/menus/menuDialog/trainAdd.vue
Normal file
@ -0,0 +1,168 @@
|
|||||||
|
<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>
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user