Compare commits
1712 Commits
zhengxiong
...
master
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 | ||
|
228b4aadc3 | ||
|
0df4ffdcf6 | ||
|
b1c0ef11a8 | ||
|
3855087abd | ||
|
928b380811 | ||
|
06ec5fe8e1 | ||
|
0f22d3c818 | ||
|
4471a3000c | ||
|
50cf3a826d | ||
|
61915cd583 | ||
|
252d3d69e4 | ||
|
5ad0421991 | ||
|
228044b4c9 | ||
|
ca329a4db7 | ||
|
f13252ff27 | ||
|
b863211cca | ||
|
06c6cb26c6 | ||
|
ad105021fd | ||
|
b85f8a5011 | ||
|
88d09f2645 | ||
|
62e2c3978f | ||
|
d4f919b54a | ||
|
268febaf7f | ||
|
57f65d45e3 | ||
|
8449d731bd | ||
|
ac3457efbd | ||
|
b2ce52612f | ||
|
177bb78883 | ||
|
9d193dcd66 | ||
|
80007a7521 | ||
|
a5849d9dd1 | ||
|
a54a4d0d3c | ||
|
77f644fc28 | ||
|
ef3c56b696 | ||
|
a519447c62 | ||
|
94fa725cc7 | ||
|
e32d8f9b6b | ||
|
7ebc8dbf1e | ||
|
23975cd271 | ||
|
adf75ebc1a | ||
|
f4e27a6e31 | ||
|
3d63abcdbd | ||
|
4424137da9 | ||
|
18b5780415 | ||
|
ac82fad041 | ||
|
edcdd8989f | ||
|
688c7c3315 | ||
|
501dd0b181 | ||
|
6fd27205fa | ||
|
2bd6088bd3 | ||
|
6d18d374a4 | ||
|
94c8f30305 | ||
|
8151a465ab | ||
|
13b63988dd | ||
fd5af534af | |||
|
9426ece04f | ||
|
8256758a7a | ||
|
dd4f2a2fe6 | ||
|
9cde1a5487 | ||
|
82359d5a4c | ||
c90da32501 | |||
f85fba0b5d | |||
|
5874e8d81f | ||
|
82b4d671b2 | ||
|
79b8d24c6a | ||
|
e29700534a | ||
|
1c31517588 | ||
|
aa1e6ca4c7 | ||
|
4e2a36bcb8 | ||
|
01471bba12 | ||
|
fa6883fe8f | ||
|
bab7cd6c40 | ||
|
43db0d138f | ||
|
404d028585 | ||
|
248f2a767a | ||
|
6c8ae4f763 | ||
|
341e0ff829 | ||
|
ca4c184e14 | ||
|
f1a7f09cc7 | ||
|
ac1ef8e5a8 | ||
|
88b9ac889c | ||
|
9acd8a8eba | ||
|
fa906225a7 | ||
|
642a09f80c | ||
|
21774b94a3 | ||
|
94a3693337 | ||
|
228c06e61d | ||
|
1501a75ad3 | ||
|
fb351cd75d | ||
|
4449a25c5b | ||
|
1ee0cad514 | ||
|
0a2cdb3257 | ||
|
83ee31034b | ||
|
ae3c2ea269 | ||
|
fe6a835873 | ||
|
ae4e6b652c | ||
|
e30494d404 | ||
|
545440b7e7 | ||
|
06e4bb93c7 | ||
|
8a966ac5ae | ||
|
5eb2a3f80c | ||
|
e1bf3dbcea | ||
|
67ea7ef5ae | ||
|
77a80c2b2d | ||
|
2635ea8c57 | ||
|
e6b1d2777a | ||
|
144fecf31a | ||
|
240f779afb | ||
|
c23bf6ba72 | ||
|
5e55daf3a4 | ||
|
3fc6f13c6a | ||
|
bc6ad0226b | ||
|
dea3207c22 | ||
|
6bc46647d7 | ||
|
f5a2ca8eaf | ||
|
27a88795f7 | ||
|
516a3a4041 | ||
|
2d1558b011 | ||
|
d5e515fbfa | ||
|
ce62a19aa0 | ||
|
d09e415720 | ||
|
47f55642e3 | ||
|
1bdc04fb8e | ||
|
25acb80335 | ||
|
87aeb03cb0 | ||
|
ee04af801a | ||
|
89ab468d6b | ||
|
ac9f364e39 | ||
|
4b3114c9b5 | ||
|
7aa44293f2 | ||
|
0d323cac5f | ||
|
38ee6fc4c6 | ||
|
47d4af94ed | ||
|
c142102de1 | ||
|
9e8917ccc1 | ||
|
80067ca6aa | ||
|
503c4c4ed3 | ||
|
86eff63658 | ||
|
d13dc9696e | ||
|
a4525be99e | ||
|
564ca5a845 | ||
|
9b07bfacea | ||
|
2cddeac881 | ||
|
4f7b04fde5 | ||
|
5887fada7a | ||
|
0ce2ed98bd | ||
|
4cae954cd8 | ||
|
c065542c22 | ||
|
38e492bde7 | ||
|
0f15e2d41f | ||
|
7f63638c0e | ||
|
623f8968b7 | ||
|
7ff9a044b8 | ||
|
e66295f016 | ||
|
cda47e5b64 | ||
|
06cab3d7fe | ||
|
1afb68818f | ||
fff07141b6 | |||
80178a80f6 | |||
1d824c135e | |||
|
1318ecb97a | ||
|
e3857a75d0 | ||
|
f3ae97f7f8 | ||
|
b472601fbc | ||
|
2e51c9ee4c | ||
|
d0a6b8e951 | ||
|
dd45877e1c | ||
|
1bca2be560 | ||
|
b6edc4913b | ||
|
5c72107b90 | ||
|
c4028ee8c6 | ||
|
a7b0609389 | ||
|
204aef1583 | ||
|
c563fe8efa | ||
|
1b1ddad29e | ||
|
7fa5b1d62e | ||
|
073e8bfc63 | ||
|
00b4b533a8 | ||
|
7d0abef1e9 | ||
|
9776419202 | ||
|
9618acaa9d | ||
|
e353289594 | ||
|
eb579ee0a4 | ||
|
e68bf8b9f8 | ||
|
91b1e8f5b3 | ||
|
bbf9e9ba0e | ||
|
1c51094308 | ||
|
0395d6d470 | ||
|
be9d27d7a2 | ||
|
8ae41273d6 | ||
|
6f8d198f4c | ||
|
027f00da77 | ||
|
ce522b6570 | ||
|
e3e07dec1b | ||
|
00dbc6d288 | ||
|
f5e1c370cc | ||
|
eb4cd6ab4a | ||
|
fefed61486 | ||
|
210a7d0fdd | ||
|
a373d21deb | ||
|
fb6c187c21 | ||
|
fc64ef5f19 | ||
|
964ca665a4 | ||
|
d73dea42ec | ||
|
071bfa90f7 | ||
|
20de76047b | ||
|
cc3003dbb0 | ||
|
a79668095c | ||
|
7c46ad5c62 | ||
|
2d15eee9f8 | ||
|
0805383fde | ||
|
034199ec23 | ||
|
1faf4fadc5 | ||
|
fcae8539d9 | ||
|
a188121aac | ||
|
7e8fb7cbd1 | ||
|
79fbb8d071 | ||
|
6d848115b3 | ||
|
5181b1e98a | ||
|
68d0d9c83b | ||
|
e326a18d80 | ||
|
775603368d | ||
|
933ef9ed82 | ||
|
18f67436aa | ||
|
42ef83d302 | ||
|
0cdaa7a6ed | ||
|
f2039927db | ||
|
d082dc2fbc | ||
c52925960c | |||
a3bc0de08a | |||
|
c020d69150 | ||
|
1f5d891c55 | ||
|
f27fd63e29 | ||
|
0d50ac586b | ||
|
857472ba72 | ||
|
73c9c0777e | ||
|
1aca150711 | ||
|
dff6b0f545 | ||
|
4285249458 | ||
|
d3dd38b883 | ||
|
8593174685 | ||
|
0e1dcbb5fd | ||
|
f5ffa562ce | ||
|
0438f6b183 | ||
|
482d8ba2bf | ||
|
47bae5b02c | ||
|
0626d81356 | ||
|
9ea5bef12a | ||
|
3ecf5e4da3 | ||
|
2bb8c6df92 | ||
|
30763300ac | ||
|
cde33feb22 | ||
|
34a94e2c6d | ||
|
52af1d994b | ||
|
54fb5eb47a | ||
|
6187b449c1 | ||
|
95b6d019dd | ||
|
074453ece7 | ||
|
2b6fa6a9f7 | ||
|
ed1c4c0e53 | ||
|
770de3c73c | ||
|
a67a736ec3 | ||
|
449800f360 | ||
|
6fd16fcc95 | ||
|
5af47f6ac4 | ||
|
4150f64f36 | ||
|
4ffdc6a90d | ||
|
191542d0d4 | ||
|
8ec88a84a2 | ||
|
4aa0474586 | ||
|
aa4ab3ce91 | ||
|
e5046f3fa8 | ||
|
b42c8ea6b5 | ||
|
0339b04966 | ||
|
5c0c9c7702 | ||
|
71502ba211 | ||
|
8a89c93603 | ||
|
8e7b653bd3 | ||
|
8c5f4b3cdf | ||
|
a7f55fd52c | ||
|
d1133c947c | ||
|
d9b6b3fb2c | ||
|
2aadaaf100 | ||
|
87a603e52d | ||
|
f24c36dbed | ||
|
be047fff67 | ||
|
014c743a10 | ||
|
f5b0fcb452 | ||
|
fea4cf4fe2 | ||
|
224105fb16 | ||
|
5c43facb36 | ||
|
582cc02722 | ||
|
e0649fd4c8 | ||
|
80bb63a4a2 | ||
|
abfda9a3e7 | ||
|
275e39b42b | ||
|
9a04a38ac4 | ||
|
7590552db2 | ||
|
a7616055dc | ||
|
cf5e633187 | ||
|
710dd576d4 | ||
|
dd0fd19720 | ||
|
640b609831 | ||
|
de7623b475 | ||
|
3e3d3622dc | ||
|
35cd45786f | ||
|
85ca94a66a | ||
|
960e16dfa2 | ||
|
9697bf81f8 | ||
|
8b38960f14 | ||
|
d4ce77e8bc | ||
|
b07d540134 | ||
|
6ae073a557 | ||
|
4005b3783d | ||
|
fd87f62c25 | ||
|
39f2019251 | ||
|
25fcd0d671 | ||
|
fcb9ce5e08 | ||
|
2c41be9df5 | ||
|
7cfa33ecc0 | ||
|
73514ebc1f | ||
|
abdfcaef41 | ||
|
f38fb8891a | ||
|
0c6ef6e834 | ||
|
fc36b56ef7 | ||
|
90c74ee23c | ||
|
3dc5c22bf0 | ||
|
9e066023e7 | ||
|
cdd5b07d9b | ||
|
be3ca9fbf4 | ||
|
2d8d1d3c11 | ||
|
00a1137a9a | ||
|
57bb7acc60 | ||
|
97c5ebfcaf | ||
|
baa1df1bbb | ||
|
1d428805f3 | ||
|
ab6c05b03e | ||
|
9dc9be66f7 | ||
|
f6040af47b | ||
|
90e0084247 | ||
|
c44983c4a5 | ||
|
b02267b9c7 | ||
|
01aebf47f3 | ||
|
bcec47c0c6 | ||
|
7c0508048a | ||
|
b483d739cb | ||
|
bd3352cd8b | ||
|
7fd32ec138 | ||
|
ffbc056569 | ||
|
bd43b7c511 | ||
|
a91188d655 | ||
|
5c53092511 | ||
|
176068f6c8 | ||
|
e76dd0777a | ||
|
e7c7e23602 | ||
|
f4180c579c | ||
|
5452d49b05 | ||
|
8a8e47e1eb | ||
|
ab2a68865d | ||
|
8d6b60ba5d | ||
57d5bb0674 | |||
|
27a99a7013 | ||
|
595dcf0374 | ||
|
296594bc8e | ||
|
09f27b7bfa | ||
|
f1cbec026e | ||
|
66f51b024f | ||
|
707702d231 | ||
|
60d1868850 | ||
|
be8154db27 | ||
|
c071b6a98d | ||
|
7a04b580b8 | ||
|
36b4d0382a | ||
|
80687fd3f0 | ||
|
4323ed274e | ||
|
7e7bb8ded9 | ||
|
bfd75b723b | ||
|
fded75dd85 | ||
|
ac8ab5a6cc | ||
|
22e9d81183 | ||
|
ef55fb847d | ||
|
ba0007807b | ||
|
85bc2e7fd1 | ||
|
51b85082dd | ||
|
9ef0780377 | ||
|
7fc9e0fab4 | ||
|
ac05654672 | ||
|
eb17b90d82 | ||
|
eb8bc61b90 | ||
|
06214aa258 | ||
|
2cf1412706 | ||
|
c448e8c9f3 | ||
|
150ede0cb9 | ||
|
0583f03479 | ||
|
362caf8ef1 | ||
|
52970e9e9a | ||
|
cdd3ee9cc4 | ||
|
ce95ce4868 | ||
|
70277b3f24 | ||
|
967c3e8a01 | ||
|
b94a5d4842 | ||
|
87c157a885 | ||
|
5a6106e8a1 | ||
|
18ebca3ee6 | ||
|
3569a90a9a | ||
|
5fbf197be4 | ||
|
f579d37e79 | ||
|
96eb526713 | ||
|
d1611f900f | ||
|
de7ee599f5 | ||
|
c81190b284 | ||
|
31f0b61e68 | ||
|
06c2d12354 | ||
|
9361a11268 | ||
|
ed1ca1287b | ||
|
6fa8220235 | ||
|
31c09eea8e | ||
|
d42612d6fa | ||
|
527298f2cf | ||
|
d162b96472 | ||
|
41d2c9d4d7 | ||
|
33554fd4fb | ||
|
7d765854e3 | ||
|
745c3cfec9 | ||
|
be2bf8065d | ||
|
9fd5ff89a4 | ||
|
5fc1b0c1e4 | ||
|
639607e72a | ||
|
68feb49b9e | ||
|
bbbcf633b9 | ||
|
8023359880 | ||
|
6f50c20d19 | ||
|
a9717d7eff | ||
|
376e08eab9 | ||
|
e4a614f917 | ||
|
0222c60b1f | ||
|
c127e36b07 | ||
|
0b9b2a14e1 | ||
|
2aae79d71e | ||
|
9759cb7cc1 | ||
|
9639e870d0 | ||
|
9968af2ecd | ||
|
7ed113aebb | ||
|
47b5d939e3 | ||
|
0f83df0dfc | ||
|
6da9d76334 | ||
|
7f7fb6c8a7 | ||
|
9020db03a1 | ||
|
5f92af684f | ||
|
728d4a1500 | ||
|
215e0a9ec6 | ||
|
9e4b499399 | ||
|
4fbc4900e3 | ||
|
b225ee5c4c | ||
|
55d6c6de91 | ||
|
5d560ad800 | ||
|
bab270626d | ||
|
d2b5080b6c | ||
|
06e2e32150 | ||
|
3be9bc566c | ||
|
53031c3d11 | ||
|
52b9a47ef9 | ||
|
9c9ccdbfc7 | ||
|
3c7c4c3dfa | ||
|
b27783f7f6 | ||
|
6e68fde534 | ||
|
61d9307195 | ||
|
1127412fbb | ||
|
1751a9a4db | ||
|
2102d820f0 | ||
|
0343792daf | ||
|
e46442cb56 | ||
|
83505d9a73 | ||
|
ad518bd988 | ||
|
401f3b5668 | ||
|
f61f80d5c2 | ||
|
d921acf107 | ||
|
6d9ae082ec | ||
|
c488486e6c | ||
|
d5312a7f2e | ||
|
83b1a5427b | ||
|
22257e8578 | ||
|
fcadfcca38 | ||
|
0a8e08dc65 | ||
|
5b56dfe579 | ||
|
725373a564 | ||
|
ad0ac9b277 | ||
|
93a7c42748 | ||
|
de8ea66ebd | ||
|
58c1526633 | ||
|
4cb891b22c | ||
|
ca6e14eadc | ||
|
250d678df7 | ||
|
77e05da3f6 | ||
|
4ae18d502c | ||
|
a08bce7316 | ||
|
413ac96e01 | ||
|
916688b47c | ||
|
2bec6887f6 | ||
|
94620bbe41 | ||
|
fdc546ef95 | ||
|
1c2912285b | ||
|
d671daa67d | ||
|
9edb17f44c | ||
|
47e87c0457 | ||
|
9fe37f4c64 | ||
|
126b37c205 | ||
|
88c85f4e49 | ||
|
7fae657468 | ||
|
807220e7b5 | ||
|
a67d2abf65 | ||
|
35fce14a31 | ||
|
74db54e2de | ||
|
910e0c5712 | ||
|
00866bde38 | ||
|
1ae99e90d6 | ||
|
c22c93bba4 | ||
|
da4020e8c6 | ||
|
9700682a26 | ||
|
da4e5911fd | ||
|
bf1d744b34 | ||
|
aee86e8024 | ||
|
ab55f2b1ad | ||
|
0c7f55c911 | ||
|
2af7b5cc16 | ||
|
c9dd8752c1 | ||
|
36adbaeda1 | ||
|
b0d80ac49e | ||
|
9c3cdd31d5 | ||
|
dca3d00d50 | ||
|
22064af280 | ||
|
e28b1f3337 | ||
|
d9a06f3f1e | ||
|
3054160b14 | ||
|
816c0d01f5 | ||
|
4778a3c909 | ||
|
c3c29d6724 | ||
|
2c68be07a3 | ||
|
2da7b23638 | ||
|
211ea96d07 | ||
|
164d34ad09 | ||
|
8eff828381 | ||
|
50b0358541 | ||
|
48cdf34b32 | ||
|
3e6d8941c1 | ||
|
759154757b | ||
|
49fb5e5643 | ||
|
873af94199 | ||
|
97c7f73c3c | ||
|
a03b16e60a | ||
|
c3db4d4c22 | ||
|
62adae7f00 | ||
|
fed3a0430e | ||
|
f22fac82a0 | ||
|
eb9829234d | ||
|
03afd57f78 | ||
|
bf1f420423 | ||
|
082bf8cd65 | ||
|
f06a5c09ea | ||
|
b1fadb3671 | ||
|
6897cb6c0b | ||
|
58bcd7223d | ||
|
de3d60a21e | ||
|
849a0be87c | ||
|
49b7cc1eb3 | ||
|
140a058f90 | ||
|
91bdf79bef | ||
|
52cfa3ff14 | ||
|
0fd4c16d7a | ||
|
e6c29ce60b | ||
|
69771dd4b3 | ||
|
a2e4f3df9c | ||
|
d7be2f8fa2 | ||
|
d91fb2d8ac | ||
|
bdb89c21b3 | ||
|
b1948fff62 | ||
|
40ce6a6a24 | ||
|
0ed70c290e | ||
|
32e6d19a75 | ||
|
f9fa1c2dbe | ||
|
f33262ab22 | ||
|
5174ba4792 | ||
|
e951b099b4 | ||
|
8baff2936b | ||
|
1e020fdc3d | ||
|
df7ee34fe3 | ||
|
3c06d0421c | ||
|
205dda94fb | ||
|
aaafb5beec | ||
|
31d588bf13 | ||
|
d3eed2d956 | ||
|
1997b0df06 | ||
|
973732c80d | ||
|
b604bc55be | ||
|
3cdc7106f3 | ||
|
47f2e2994a | ||
|
067fdb3ca6 | ||
|
2237484367 | ||
|
3d137b7b54 | ||
|
6ce41fe243 | ||
|
dff2ebe121 | ||
|
21b8f3705d | ||
|
a080fdd0c0 | ||
|
621b67b65a | ||
|
e89d160b1c | ||
|
bc61d5a658 | ||
|
45f8430214 | ||
|
d16bf5d046 | ||
|
4415cdb33f | ||
|
b1cec0839d | ||
|
8084698cd8 | ||
|
4d75a42afa | ||
|
66fe08074e | ||
|
5094610c4c | ||
|
e3dafeac27 | ||
|
720bce52a3 | ||
|
5449bd0e29 | ||
|
18da9bb9ea | ||
|
79e21f84cc | ||
|
07ee176f35 | ||
|
3024c3d0e0 | ||
|
416590008e | ||
|
897c44a6a8 | ||
|
9653852c54 | ||
|
fe080d704f | ||
|
845ffc335e | ||
|
4d78ccf211 | ||
|
b44775fd45 | ||
|
74e2a0daba | ||
|
e73f5c375e | ||
|
d8a6e50601 | ||
|
fdb244d802 | ||
|
f7c9341303 | ||
|
9571b24b7b | ||
|
ccb52a8efd | ||
|
ac68e3251b | ||
|
6c120aa529 | ||
|
9306d7b8ae | ||
|
fa0f25690f | ||
|
bd0e1f1a9a | ||
|
b97a155b24 | ||
|
d4b05c8ed6 | ||
|
4510d06b28 | ||
|
9e3066cc5c | ||
|
36dabd5735 | ||
|
f7d25d6d76 | ||
|
3871440d0a | ||
|
cf6e90f172 | ||
|
a4ccf0c678 | ||
|
61fdf8eb31 | ||
|
0bb6ab6629 | ||
|
7b0a043243 | ||
|
52b61ab92a | ||
|
2144a4c31d | ||
|
80d1de6bd3 | ||
|
deaba53417 | ||
|
058838c39f | ||
|
5e71eeb265 | ||
|
0261ec50f2 | ||
|
8085677cb7 | ||
|
1f432892fc | ||
|
270311eadf | ||
|
3c9a30a3a2 | ||
|
e28fc6665e | ||
|
e508b60cc2 | ||
|
19b16deee5 | ||
|
17398ffb03 | ||
|
e92d1664da | ||
|
df53224447 | ||
|
edadc872ed | ||
|
56bfd76ba6 | ||
|
36fddc3a12 | ||
|
7e5ad3b9cd | ||
|
fb6bf39fde | ||
|
af21e5cb35 | ||
|
39e82e52dd | ||
|
9bf43b5b45 | ||
|
43eb3c4a39 | ||
|
a026db9984 | ||
|
ef534aff5b | ||
|
707393bcc2 | ||
|
8bbf5f5cff | ||
|
6f9f27974c | ||
|
871076d7b3 | ||
|
e96fb0f355 | ||
|
02f7176783 | ||
|
9b6e1d1208 | ||
|
f6fc5ba90b | ||
|
cb5799d14c | ||
|
63a09a7abc | ||
|
1d5846b6f4 | ||
|
7f6e0daa9c | ||
|
1f556824f8 | ||
|
960eabe6cf | ||
|
94ebd81292 | ||
|
9353c2b2c0 | ||
|
50b1f562c2 | ||
|
75a5440922 | ||
|
d4ccd57d76 | ||
|
2973f32f37 | ||
|
2031f30666 | ||
|
8fa00227ff | ||
|
70fe1b27cb | ||
|
f799a1e59c | ||
|
6513dac16e | ||
|
d4f0306e18 | ||
|
50db10c43f | ||
|
b98efabc7f | ||
|
0a89376967 | ||
|
38e91e8202 | ||
|
2c66d6aadf | ||
|
75d2ea8aed | ||
|
e2bdc4d5ed | ||
|
cbcd66a9ab | ||
|
81811cb0db | ||
|
687ffa563a | ||
|
18ecffd06a | ||
|
750e0c8a7c | ||
|
66153cc09d | ||
|
39a2e0cdc3 | ||
|
0f2a40b6cb | ||
|
c4d21c6e24 | ||
|
43120ef0a9 | ||
|
e8a8f12db1 | ||
|
c2b9c3c2aa | ||
|
c0f9ce0572 | ||
|
2339cbc8c7 | ||
|
261b1296bb | ||
|
294e9d61fe | ||
|
7e2ce3c8b0 | ||
|
3fd4aa63f4 | ||
|
0cf34a6aeb | ||
|
4985423186 | ||
|
6a89850696 | ||
|
7c1691d774 | ||
|
4ec18c3731 | ||
|
684199abd1 | ||
|
83d1342110 | ||
|
81152cb252 | ||
|
8e498c45f6 | ||
|
ef8fab3f7b | ||
|
8233ea0568 | ||
|
2f0b44fb06 | ||
|
15226a3406 | ||
|
8fbe18c9a4 | ||
|
d1e41fe25c | ||
|
03ef312683 | ||
|
c1128f992b | ||
|
fe4b04fb70 | ||
|
8850460a0f | ||
|
5aaf79eeb7 | ||
|
8c8772c3d9 | ||
|
b0453fda2d | ||
|
4fbc45780c | ||
|
3ab928d7df | ||
|
611e3902e5 | ||
|
f6cdf07b06 | ||
|
1fbd8b5824 | ||
|
c814592f73 | ||
|
a3791a0cbf | ||
|
19c6087141 | ||
|
132de532a9 | ||
|
addecd294f | ||
|
9c9ac662c8 | ||
|
37f149446d | ||
|
f06ba54b56 | ||
|
8db9f95ade | ||
|
7a3a3db7b4 | ||
|
abf2aef82d | ||
|
1b7ecb0aad | ||
|
e0bee230d9 | ||
|
835ff2219f | ||
|
7dbf9e5374 | ||
|
3235f801a8 | ||
|
c359db3ac3 | ||
|
cb236000e1 | ||
|
2589141b4b | ||
|
5f0816c2d6 | ||
|
5eeb655b39 | ||
|
ce983bc448 | ||
|
1832e71264 | ||
|
2e0105c390 | ||
|
9370621c62 | ||
|
1f5a6bce26 | ||
|
0fce737944 | ||
|
071506619b | ||
|
ec2d7e7d5c | ||
|
0f8643591c | ||
|
bae7270755 | ||
|
68dd872c41 | ||
|
388803eed5 | ||
|
8ca90b1003 | ||
|
99e6065ba7 | ||
|
1555c0ccd5 | ||
|
3f4da53695 | ||
|
9cbfd0068b | ||
|
f6145d9ad8 | ||
|
bd5b154883 | ||
|
801d2186cc | ||
|
a4b77f0e86 | ||
|
c44053ec54 | ||
|
65af81491c | ||
|
bbcf5b3fec | ||
|
e621200bca | ||
|
e9f4d286d1 | ||
|
ea6ebc0bc3 | ||
|
63f5bac82a | ||
|
c222cf19a8 | ||
|
f96368b2ec | ||
|
d06d0eec15 | ||
|
cf693b6d59 | ||
|
a1fd19f78f | ||
|
47ee96f339 | ||
|
013ecae2e3 | ||
|
f45b1b9b05 | ||
|
0346f672bf | ||
|
7029394ea8 | ||
|
1018592080 | ||
|
88c2ab5047 | ||
|
865a770141 | ||
|
6e986d51bb | ||
|
05e7798454 | ||
|
14f0113b3b | ||
|
361d6d9c43 | ||
|
76096647fb | ||
|
2a593facb1 | ||
|
9b1dac9b2b | ||
|
825d1a1e15 | ||
|
cd282093b6 | ||
|
27c3dd3517 | ||
|
2b52da78bf | ||
|
80af34fee0 | ||
|
ffb47289e7 | ||
|
60cf75f3c0 | ||
|
d7962674cd | ||
|
e5869a3ce0 | ||
|
cf02840100 | ||
|
16ee7692b2 | ||
|
57b4eedfe6 | ||
|
45fd0327b8 | ||
|
941dd2d24a | ||
|
72b191a660 | ||
|
f8387fd3fa | ||
|
2ef24a51e2 | ||
|
d4642b76e8 | ||
|
75e70ef63f | ||
|
8856586404 | ||
|
c6b6b4ca24 | ||
|
2df2af557f | ||
|
c80efac6b1 | ||
|
48b02ae784 | ||
|
e6f62a87d8 | ||
|
d2453394c8 | ||
|
e7b6014974 | ||
|
f7679a4cb1 | ||
|
08daa72298 | ||
|
1b549ce480 | ||
|
6d7ef0d42b | ||
|
e056455e5e | ||
|
d73bc4d577 | ||
|
e727a1c338 | ||
|
9c1a7e129f | ||
|
8b1365561e | ||
|
2edf28636f | ||
|
cb2168abd6 | ||
|
09c583ee79 | ||
|
68f730da24 | ||
|
a10ef8fa1b | ||
|
1776eae6d3 | ||
|
df453fd676 | ||
|
b0e8ac00fa | ||
|
39b4b0b49a | ||
|
a19c95516d | ||
|
fd61b8e038 | ||
|
3a7babb483 | ||
|
6195d4659e | ||
|
2f5444e27f | ||
|
4dff079c60 | ||
|
c66d3e6d5f | ||
|
42d8e9fe60 | ||
|
6bd2857e0b | ||
|
31f5db5592 | ||
|
79514913bd | ||
|
9f205b7766 | ||
|
fe5ce61325 | ||
|
055f39b070 | ||
|
2d9117d11d | ||
|
d6e672270c | ||
|
1e241b3460 | ||
|
0612de521f | ||
|
f02e7e1160 | ||
|
a0fb408690 | ||
|
49881dcbb0 | ||
|
0ffb424484 | ||
|
8d45eae494 | ||
|
c4ee6b0350 | ||
|
7a84b23cdc | ||
|
c2e0182d53 | ||
|
3acaf45b5d | ||
|
b15806dca7 | ||
|
50da21af0c | ||
|
a52872de5c | ||
|
fc67b87883 | ||
|
797afc7258 | ||
|
692b8b97c6 | ||
|
0fd74b6172 | ||
|
fbf796b151 | ||
|
ece72fb110 | ||
|
d6de03836c | ||
|
ad1ba2efd4 | ||
|
e166f6b732 | ||
|
75a4d03ae9 | ||
|
af094314d4 | ||
|
725708fe34 | ||
|
db8793365f | ||
|
8aa8c27803 | ||
|
72e9a4535f | ||
|
8a559b4296 | ||
|
a274f4ef3b | ||
|
a1e852fed3 | ||
|
2e195abb8f | ||
|
b71e2d959b | ||
|
bd9c837d29 | ||
|
611d5a4e59 | ||
|
f4fb2d7cbf | ||
|
4f7476c540 | ||
|
9ffd70de63 | ||
|
fd99287e10 | ||
|
e7db5f7173 | ||
|
6a1bf40183 | ||
|
98e1a75705 | ||
|
98ed313a1d | ||
|
dc9e7972e2 | ||
|
19b90ab854 | ||
|
a69ef7590e | ||
|
15dafc301d | ||
|
751ff10406 | ||
|
e8b8147aee | ||
|
ace5268922 | ||
|
60d16a2c33 | ||
|
92e26e06f1 | ||
|
602184feaf | ||
|
d1bfbe0aad | ||
|
7a66fd7416 | ||
|
aaf5912a2e | ||
|
fbf5ab2e33 | ||
|
e5ff37427d | ||
|
879719ed4b | ||
|
08dbe1c7b4 | ||
|
20d4c147f6 | ||
|
4c5e694c9a | ||
|
206dbd1219 | ||
|
32d97e6648 | ||
|
2825615114 | ||
|
00e2b3231a | ||
|
d0d77bd350 | ||
|
fbeef9c6b5 | ||
|
1ea7343267 | ||
|
2b0ec10e81 | ||
|
e2d6307efc | ||
|
6601bdac1b | ||
|
00c2dfc377 | ||
|
082c075290 | ||
|
2d92bfb4d4 | ||
|
3a35705576 | ||
|
3e4d2c5c35 | ||
|
47c2dffec9 | ||
|
e0dd6ae248 | ||
|
d3be671ad9 | ||
|
50dbd0bdae | ||
|
9edb55d72c | ||
|
4dc10f4377 | ||
|
b3d62115ec | ||
|
c1f0bd6fa7 | ||
|
92a3e85f93 | ||
|
64c58f511b | ||
|
42592522bb | ||
|
ecd1fe83d7 | ||
|
4438debc22 | ||
|
8b45548a55 | ||
|
fe68d15acf | ||
|
2caebf5d20 | ||
|
19bb41b0d8 | ||
|
deeaba2690 | ||
|
9b3562b861 | ||
|
6a03ce8a11 | ||
|
078b07f863 | ||
|
2a9e230ff9 | ||
|
15effd12f4 | ||
|
cb5da8a7b2 | ||
|
1443d7d2fa | ||
|
0d6f548e6e | ||
|
32ea838b58 | ||
|
c363127e9a | ||
|
551ebe9fc7 | ||
|
f86a8f20c5 | ||
|
29dd0c4c8b | ||
|
74dbc5cff3 | ||
|
8794db68f2 | ||
|
c92c66f17c | ||
|
de0be8d66e | ||
|
d79c8986bd | ||
|
c64d2f95a6 | ||
|
b623a0734e | ||
|
34a4e92073 | ||
|
f7418db43c | ||
|
6c02aba151 | ||
|
215fb23f20 | ||
|
42112659c5 | ||
|
a91f0063d0 | ||
|
45243e1968 | ||
|
b08def49ee | ||
|
a9b47a5a4a | ||
|
ad0f92a0e6 | ||
|
295e1246ab | ||
|
6fb8812039 | ||
|
ae09b3b073 | ||
|
49d15b50a1 | ||
|
8c924507bc | ||
|
e67179c3c6 | ||
|
002a2fddd2 | ||
|
88aec8f6dd | ||
|
071143992e | ||
|
fe500964e3 | ||
|
64dd376229 | ||
|
56b2885fba | ||
|
88cec5d2b0 | ||
|
e9fc041b03 | ||
|
e67d26ddf9 | ||
|
ce6781e1d9 | ||
|
863448fb4a | ||
|
93cfeffbc5 | ||
|
a8e2683693 | ||
|
838b43e54d | ||
|
2156ac1880 | ||
|
5496469a37 | ||
|
6ccfbdd70f | ||
|
697a744190 | ||
|
5cc2dbde12 | ||
|
e1f9d6e0c8 | ||
|
774cf2b2d9 | ||
|
c57b4f6814 | ||
|
8b47049f69 | ||
|
d09e1042c0 | ||
|
6c1903a6a0 | ||
|
201456a1d0 | ||
|
313c587314 | ||
|
320fa691d5 | ||
|
f8257cddfe | ||
|
b6830c2cfd | ||
|
599bf4f722 | ||
|
401e09cdee | ||
|
6b37a216cb | ||
|
a2c685d6bb | ||
|
b35ca66983 | ||
|
8272afcb13 | ||
|
44e4673945 | ||
|
706ba10aca | ||
|
ff7bf2311b | ||
|
1cca675506 | ||
|
386cd20086 | ||
|
640f36842f | ||
|
26370a4c46 | ||
|
45922ea9d3 | ||
|
5e0146f8da | ||
|
6ca7474eb1 | ||
|
b63159ff08 | ||
|
d2050dacd8 | ||
|
4a6fe5bc87 | ||
|
18c07ff9a2 | ||
|
1381bd8a9c | ||
|
75f7165750 | ||
|
a163ba51db | ||
|
48fe57cde1 | ||
|
df9e1f4132 | ||
|
0936e40deb | ||
|
157e1ed45b | ||
|
491b28125b | ||
|
9e4576d30c | ||
|
c8d71db508 | ||
|
7dee28ea8e | ||
|
e308f3acb8 | ||
|
21b526bce0 | ||
|
f4a53f6404 | ||
|
205fce9512 | ||
|
6d20dcb132 | ||
|
1475848fea | ||
|
d4538b441d | ||
|
90a1c03bd4 | ||
|
67492c4e90 | ||
|
20354a0389 | ||
|
cb61f11753 | ||
|
18f1c6231b | ||
|
1d565398e9 | ||
|
63c362635a | ||
|
4e0635b7ad | ||
|
8976cfd474 | ||
|
a11c8d8829 | ||
|
9cd804e2b7 | ||
|
0fe83a4f31 | ||
|
44fcdee7cf | ||
|
b1b00fd57b | ||
|
2e492ad27f | ||
|
32409d4baf | ||
|
bcca6e1db0 | ||
|
fb0d06a491 | ||
|
bc48d4c82e | ||
|
16beaf8f94 | ||
|
42dc17d87e | ||
|
afa5a9aeab | ||
|
354192e953 | ||
|
363cd1fda9 | ||
|
baf089d889 | ||
|
a97d34d3f3 | ||
|
583830d573 | ||
|
b0431f00f8 | ||
|
34ff82d6e9 | ||
|
f2ac931350 | ||
|
1b90935de6 | ||
|
2601028c19 | ||
|
812ef04cbd | ||
|
c8c9ec4b43 | ||
|
090b07bb41 | ||
|
85e0abea4a | ||
|
77d0488450 | ||
|
f1ab35ce4b | ||
|
d0eed68a4b | ||
|
63e86119ef | ||
|
66b6a7fbf9 | ||
|
8dbc06409e | ||
|
abfde166ba | ||
|
b06248a366 | ||
|
42b17a0217 | ||
|
2754e14bff | ||
|
eb3a39aee9 | ||
|
0d6f6dda1c | ||
|
5d810116c7 | ||
|
daa05eb67b | ||
|
ae5f211154 | ||
|
a1035a4e1f | ||
|
19db91123c | ||
|
c170f8fa74 | ||
|
159ff15ace | ||
|
0cbf642586 | ||
|
a7e21bbfae | ||
|
cd11ff9988 | ||
|
74c1005a8a | ||
|
357635d085 | ||
|
acde5489ca | ||
|
bf098fc8e1 | ||
|
e049334401 | ||
|
353dff98ae | ||
|
013009e3f8 | ||
|
2c7796baf3 | ||
|
37fcac449f | ||
|
e7239d35fc | ||
|
a21049966c | ||
|
918752ecf7 | ||
|
481b726989 | ||
|
ac9668f246 | ||
|
2a6300ce69 | ||
|
6a97b173c3 | ||
|
01f9a2abaa | ||
|
248661e0d7 | ||
|
b14c682049 | ||
|
e1d935cb5f | ||
|
eaf1ccaff4 | ||
|
c7f1984f92 | ||
|
1764b10908 | ||
|
14293f28f1 | ||
|
8b6349ce26 | ||
|
78b4022062 | ||
|
379510017e | ||
|
574dc69a3c | ||
|
aa3bd6770f | ||
|
fb0b52aa60 | ||
|
ad5c4b78d4 | ||
|
470260e03d | ||
|
3c0f9ab3d2 | ||
|
1a0653c93a | ||
|
9da1a54f93 | ||
|
e6ae8750da | ||
|
5e634f08f8 | ||
|
0b080e2466 | ||
|
fe9bf9b495 | ||
|
99792cd58f | ||
|
88096221b6 | ||
|
cb19a6b423 | ||
|
d7c5ce2c6e | ||
|
c8ed557fa3 | ||
|
908da1f4a9 | ||
|
8f8a9461af | ||
|
74d1249887 | ||
|
0ed2bf8193 | ||
|
0062a6d1f6 | ||
|
7260d592ea | ||
|
170be716d3 | ||
|
88024ce606 | ||
|
4434420415 | ||
|
887afa3ee0 | ||
|
0f09744cc4 | ||
|
fd82c05d03 | ||
|
f6ee224404 | ||
|
22205736f9 | ||
|
791999b8c3 | ||
|
3554c6c3c5 | ||
|
8ceca6ba90 | ||
|
9a5ba71218 | ||
|
322a227fc8 | ||
|
cb65f43baf | ||
|
8fbaa08bbf | ||
|
bbb546fa42 | ||
|
b5fd00fdcb | ||
|
ffe67ab78e | ||
|
bd8d61da61 | ||
|
229e622d44 | ||
|
704e598e5f | ||
|
c1ceebed5e | ||
|
a6a806c218 | ||
|
d8c5fb79da | ||
|
b15c91bfbc | ||
|
fc170e3c5f | ||
|
0113110060 | ||
|
f03da32e21 | ||
|
b4085c609d | ||
|
fae2e31fbc | ||
|
e55a0de42f | ||
|
b4452102e9 | ||
|
a3e908d1c2 | ||
|
29216e6fbb | ||
|
c9727f7726 | ||
|
706a73fafa | ||
|
a6bd34e8bb | ||
|
8461e49e59 | ||
|
cf69f61494 | ||
|
75ee144894 | ||
|
5210a97e2d | ||
|
18b49d772e | ||
|
8d08985bb5 | ||
|
3bac0ad446 | ||
|
c6af3c8027 | ||
|
92fed92191 | ||
|
a00e7ebc03 | ||
|
d00133aa55 | ||
|
f20a7f9b66 | ||
|
c76aeb3826 | ||
|
98dfd1574c | ||
|
b8ab34b766 | ||
|
a5ca2501da | ||
|
390450cb46 | ||
|
334a28c5ef | ||
|
8a29cb6288 | ||
|
fe212c8cb6 | ||
|
43ce203058 | ||
|
a50049648c | ||
|
60d2457087 | ||
|
9c4d615b0c | ||
|
b42faa34e4 | ||
|
c083f0f3e8 | ||
|
a51d2348a4 | ||
|
d37b5a45dd | ||
|
1a2aa33168 | ||
|
22203d5b60 | ||
|
efc2c1447b | ||
|
25b4a4fa45 | ||
|
b7d413bbd1 | ||
|
ecc7f73d5b | ||
|
18c08018c6 | ||
|
2bf3ce2e2a | ||
|
bc56e72414 | ||
|
24d64b91ac | ||
|
802f4abbc0 | ||
|
6704c4ef4d | ||
|
a6917c1d17 | ||
|
623b42332e | ||
|
062a5f2d73 | ||
|
3c1bc4e700 | ||
|
5ec62c7e18 | ||
|
2d772bed22 | ||
|
63962a1f7e | ||
|
ba3e306211 | ||
|
89e5543aae | ||
|
5da594ec55 | ||
|
6db5926156 | ||
|
87b50ba37c | ||
|
3ae2b5acd5 | ||
|
2dab07eb44 | ||
|
b2acf8dc27 | ||
|
97670ddb63 | ||
|
c73cb667ca | ||
|
79e27bf5dc | ||
|
f9fe3ab615 | ||
|
bc5b837d22 | ||
|
63674aba5b | ||
|
ace0f3d0ae | ||
|
91c804b2ff | ||
|
d8686ec6af | ||
|
26062f736c | ||
|
1fa85333ad | ||
|
dcfbe22510 | ||
|
c2c746406e | ||
|
e29fdb0cb3 | ||
|
3ed2c52a73 | ||
|
eafd1634f5 | ||
|
25697b67c9 | ||
|
5587a3e312 | ||
|
ae3c42ab29 | ||
|
0967f30d1a | ||
|
a9fbdec815 | ||
|
178c9f63a4 | ||
|
307a6e66d0 | ||
|
0cc9eded9f | ||
|
47bdeed516 | ||
|
4238abdeb5 | ||
|
78b5d5fd76 | ||
|
bea349a439 | ||
|
d6a3be6bc1 | ||
|
6b6ea5d741 | ||
|
55570dbc03 | ||
|
a4a009b808 | ||
|
e9256df83b | ||
|
d68008ad83 | ||
|
77cbbea8e2 | ||
|
c7001e1946 | ||
|
a15c916719 | ||
|
d184687860 | ||
|
b82a1c535a | ||
|
198c8fb170 | ||
|
5c948ea596 | ||
|
91c04e97b1 | ||
|
62d864d996 | ||
|
b79202c70e | ||
|
9657620d15 | ||
|
bf4b376d04 | ||
|
b72736813a | ||
|
67bc0ba2db | ||
|
bab3449b9a | ||
|
cd9db0aa12 | ||
|
90554bd2be | ||
|
d9a51cbcec | ||
|
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 |
9
.env.sai
Normal file
@ -0,0 +1,9 @@
|
||||
# just a flag
|
||||
NODE_ENV = 'production'
|
||||
VUE_APP_PRO = 'common'
|
||||
|
||||
# base api
|
||||
# VUE_APP_BASE_API = 'http://160.20.60.15:9000'
|
||||
# VUE_APP_VOICE_API = 'http://160.20.60.15/oss/joylink'
|
||||
# VUE_APP_UPLOAD_API = 'http://160.20.60.15'
|
||||
# VUE_APP_BASE_SITE='http://160.20.60.15'
|
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
@ -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
@ -4,7 +4,6 @@ dist/
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
package-lock.json
|
||||
tests/**/coverage/
|
||||
src/utils/baseUrl.js*
|
||||
|
||||
|
@ -4,3 +4,6 @@ English | [简体中文](./README-zh.md)
|
||||
|
||||
|
||||
Copyright (c) 2018-present Joylink
|
||||
### 项目环境
|
||||
- "node": "<=14.21.3";
|
||||
- "webpack": ">=4 < 4.29";
|
@ -6,7 +6,7 @@
|
||||
"license": "MIT",
|
||||
"scripts": {
|
||||
"start": "vue-cli-service serve --open",
|
||||
"dev": "node --max_old_space_size=4096 node_modules/@vue/cli-service/bin/vue-cli-service.js serve",
|
||||
"dev": "node --max_old_space_size=4096 node_modules/@vue/cli-service/bin/vue-cli-service.js serve --open",
|
||||
"build": "vue-cli-service build --mode production",
|
||||
"test": "vue-cli-service build --mode staging",
|
||||
"local": "vue-cli-service build --mode",
|
||||
@ -18,6 +18,9 @@
|
||||
"svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml"
|
||||
},
|
||||
"dependencies": {
|
||||
"@stomp/stompjs": "^5.4.4",
|
||||
"@wangeditor/editor": "^5.1.23",
|
||||
"@wangeditor/editor-for-vue": "^1.0.2",
|
||||
"axios": "^0.18.0",
|
||||
"dayjs": "^1.11.5",
|
||||
"echarts": "^4.7.0",
|
||||
@ -43,9 +46,11 @@
|
||||
"vue-i18n": "^8.12.0",
|
||||
"vue-quill-editor": "^3.0.6",
|
||||
"vue-router": "^3.1.6",
|
||||
"vue-video-player": "^5.0.1",
|
||||
"vuedraggable": "^2.24.3",
|
||||
"vuex": "^3.1.0",
|
||||
"wangeditor": "^4.6.17",
|
||||
"ws": "^8.13.0",
|
||||
"xlsx": "^0.14.2",
|
||||
"zrender": "^4.0.4"
|
||||
},
|
||||
|
113
src/App.vue
@ -1,10 +1,14 @@
|
||||
<template>
|
||||
<div id="app">
|
||||
<router-view />
|
||||
<deomon-topic ref="deomonTopic" />
|
||||
<img v-show="loading" :src="loadingImg" class="AppAll">
|
||||
<router-view v-if="loadingComponent" />
|
||||
<deomon-list ref="deomonList" @enterQcode="qcodeEntry" />
|
||||
<qcode ref="qcode" />
|
||||
<div v-show="loading" class="AppAll">
|
||||
<img v-if="project === 'login' || project === 'design'" :src="jlFavicon" class="CompanyIcon">
|
||||
<img :src="loadingImg" style="width: 100%; height: 100%;">
|
||||
</div>
|
||||
<div
|
||||
v-if="!$store.state.user.baseUrl"
|
||||
v-if="!$store.state.user.baseUrl && needLoading"
|
||||
v-loading="!$store.state.user.baseUrl"
|
||||
element-loading-text="拼命加载中"
|
||||
element-loading-background="rgba(0, 0, 0, 0)"
|
||||
@ -18,18 +22,23 @@
|
||||
|
||||
<script>
|
||||
import { getToken, getUserIdKey } from '@/utils/auth';
|
||||
import { getSessionStorage } from '@/utils/auth';
|
||||
import { loginInfo, ProjectIcon } from '@/scripts/ProjectConfig';
|
||||
import DeomonTopic from '@/views/demonstration/deomonTopic';
|
||||
import { getSessionStorage, setSessionStorage } from '@/utils/auth';
|
||||
import WindowResizeHandler from '@/mixin/WindowResizeHandler';
|
||||
import LoadingImg from '@/assets/loading.gif';
|
||||
import AppLoading from '@/assets/appLoading.png';
|
||||
import { openIndexedDB } from '@/utils/indexedDb';
|
||||
import Favicon from '@/assets/icon/favicon.png';
|
||||
import DeomonList from '@/views/demonstration/deomonList/index';
|
||||
import Qcode from '@/layout/components/Qcode.vue';
|
||||
import {removeToken} from './utils/auth';
|
||||
import { getFrontProjectConfigByLogin} from '@/api/projectConfig';
|
||||
import { handlerUrl } from '@/utils/baseUrl';
|
||||
|
||||
export default {
|
||||
name: 'App',
|
||||
components: {
|
||||
DeomonTopic
|
||||
DeomonList,
|
||||
Qcode
|
||||
},
|
||||
mixins: [
|
||||
WindowResizeHandler
|
||||
@ -38,28 +47,27 @@ export default {
|
||||
return {
|
||||
loadingImg: LoadingImg,
|
||||
appLoading: AppLoading,
|
||||
loading: false
|
||||
loading: false,
|
||||
jlFavicon: Favicon,
|
||||
project: '',
|
||||
loadingComponent: false
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
needLoading() {
|
||||
return this.$route.path !== '/authorization';
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
'$store.state.socket.simulationInvite': function (val) {
|
||||
if (val.creator) {
|
||||
this.subscribeMessage(val);
|
||||
}
|
||||
},
|
||||
'$store.state.socket.roomInvite': function (val) {
|
||||
if (val.creator) {
|
||||
this.subscribeMessage(val);
|
||||
}
|
||||
},
|
||||
'$store.state.socket.beLogoutCount': async function(val) {
|
||||
if (this.$store.state.socket.loggedOutMsg.token === getToken()) {
|
||||
this.$store.dispatch('disconnect').then(()=>{
|
||||
this.$alert(this.$t('tip.logoutTips'), this.$t('tip.hint'), {
|
||||
confirmButtonText: this.$t('tip.confirm'),
|
||||
callback: action => {
|
||||
removeToken();
|
||||
this.$store.dispatch('exit').then(resp => {
|
||||
this.$router.push({path: loginInfo[getSessionStorage('project')].loginPath});
|
||||
this.$router.push({path: `/login?project=${this.$store.state.projectConfig.markKey}`});
|
||||
});
|
||||
}
|
||||
});
|
||||
@ -72,17 +80,25 @@ export default {
|
||||
},
|
||||
'$store.state.app.animationsCloseCount': function(val) {
|
||||
this.loading = false;
|
||||
}
|
||||
},
|
||||
created() {
|
||||
const project = getSessionStorage('project');
|
||||
if (project) {
|
||||
document.querySelector("link[rel*='icon']").href = loginInfo[project].linkIcon || ProjectIcon[project];
|
||||
},
|
||||
'$route': function(val) {
|
||||
if (val.path == '/display/demon' && val.query.client == 'diagramEdit') { // 运行图编制
|
||||
this.loading = false;
|
||||
}
|
||||
if (this.$route.query.project || this.$route.path === '/login' || this.$route.path === '/') {
|
||||
setSessionStorage('project', this.$route.query.project || 'login');
|
||||
}
|
||||
this.project = getSessionStorage('project');
|
||||
if (this.project !== this.$store.state.projectConfig.markKey) {
|
||||
this.initFrontProjectConfig();
|
||||
}
|
||||
},
|
||||
'$store.state.projectConfig.markKey': function(val) {
|
||||
if (val) { this.loadingComponent = true; }
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.prohibitSystemContextMenu();
|
||||
|
||||
window.addEventListener('beforeunload', async e => {
|
||||
if (!this.$route.query.noPreLogout) {
|
||||
await this.$store.dispatch('preLogout');
|
||||
@ -92,7 +108,7 @@ export default {
|
||||
if (this.$route.path.includes('trainingDesign') || this.$route.path.includes('trainingPreview')) {
|
||||
if (e.key == getUserIdKey('nextNew')) {
|
||||
const operate = JSON.parse(e.newValue);
|
||||
this.$store.dispatch('training/nextNew', operate);
|
||||
this.$store.dispatch('trainingNew/next', operate);
|
||||
}
|
||||
}
|
||||
|
||||
@ -105,6 +121,28 @@ export default {
|
||||
this.$store.dispatch('subscribe_un', {});
|
||||
},
|
||||
methods: {
|
||||
initFrontProjectConfig() {
|
||||
getFrontProjectConfigByLogin(this.project).then(resp => {
|
||||
const urlData = handlerUrl();
|
||||
const { baseApiUrl, baseSite, ossUrl, loginProLogo, browserTitle} = resp.data.viewSetting;
|
||||
this.$store.dispatch('setBaseUrl', baseApiUrl || urlData.BASE_API);
|
||||
this.$store.dispatch('setBaseSite', baseSite || urlData.BASE_SITE);
|
||||
this.$store.dispatch('setOssUrl', ossUrl || urlData.OSS_URL);
|
||||
this.$store.dispatch('projectConfig/setMarkKey', resp.data.markKey);
|
||||
this.$store.dispatch('projectConfig/setProjectCode', resp.data.project);
|
||||
this.$store.dispatch('projectConfig/setViewSetting', resp.data.viewSetting);
|
||||
document.title = browserTitle;
|
||||
if (loginProLogo) {
|
||||
document.querySelector("link[rel*='icon']").href = (ossUrl || urlData.OSS_URL) + '/logo/' + loginProLogo;
|
||||
}
|
||||
}).catch(e => this.$message.error('获取配置数据失败!'));
|
||||
},
|
||||
quickEntry() {
|
||||
this.$refs.deomonList.doShow();
|
||||
},
|
||||
qcodeEntry() {
|
||||
this.$refs.qcode.doShow();
|
||||
},
|
||||
resizeHandler() {
|
||||
this.$store.dispatch('app/resize', { width: this._clientWidth, height: this._clientHeight });
|
||||
},
|
||||
@ -112,22 +150,13 @@ export default {
|
||||
window.document.oncontextmenu = function () {
|
||||
return false;
|
||||
};
|
||||
},
|
||||
subscribeMessage(res) {
|
||||
if (this.$refs.deomonTopic && !window.location.href.includes('trainroom')) {
|
||||
if (!(getSessionStorage('project').includes('design'))) {
|
||||
this.$refs.deomonTopic.doShow(res);
|
||||
}
|
||||
this.$store.dispatch('socket/setSimulationInvite');
|
||||
this.$store.dispatch('socket/setRoomInvite');
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.AppAll{position: absolute;top: 0;left: 0;width: 100%;height: 100%;z-index: 2003}
|
||||
.AppAll{position: absolute;top: 0;left: 0;width: 100%;height: 100%;z-index: 3003}
|
||||
.centerImg {
|
||||
position: absolute;
|
||||
left:50%;
|
||||
@ -137,4 +166,12 @@ export default {
|
||||
margin-left: -240px;
|
||||
margin-top: -228px;
|
||||
}
|
||||
.CompanyIcon{
|
||||
position: absolute;
|
||||
z-index: 3000;
|
||||
left: 50%;
|
||||
margin-left: -60px;
|
||||
width: 120px;
|
||||
top: 30px;
|
||||
}
|
||||
</style>
|
||||
|
53
src/api/authorityTransfer.js
Normal file
@ -0,0 +1,53 @@
|
||||
|
||||
import request from '@/utils/request';
|
||||
|
||||
/** 创建权限分发*/
|
||||
export function createDistribute(data) {
|
||||
return request({
|
||||
url: `/api/v3/permission/distribute/create`,
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
/** 分页获取权限分发列表*/
|
||||
export function getDistributeList(data) {
|
||||
return request({
|
||||
url: `/api/v3/permission/distribute/paging`,
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
// /** 设置权限分发立即失效*/
|
||||
// export function setDistributeInvalidate(pdId) {
|
||||
// return request({
|
||||
// url: `/api/v2/permission/distribute/${pdId}/invalidate`,
|
||||
// method: 'put'
|
||||
// });
|
||||
// }
|
||||
|
||||
/** 获取权限分发明细*/
|
||||
export function getDistributeDetail(disId) {
|
||||
return request({
|
||||
url: `/api/v3/permission/distribute/list/distribute/${disId}`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
||||
/** 从权限分发,直接分发给指定主体*/
|
||||
export function setDistributeToSubject(pdId, subjectType, subjectId) {
|
||||
return request({
|
||||
url: `/api/v3/permission/distribute/${pdId}/to/${subjectType}/${subjectId}`,
|
||||
method: 'post'
|
||||
});
|
||||
}
|
||||
|
||||
/** 生成分发二维码*/
|
||||
export function getDistributeQrCode(pdId) {
|
||||
return request({
|
||||
url: `/api/v3/permission/distribute/${pdId}/qrCode`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
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'
|
||||
});
|
||||
}
|
@ -23,3 +23,18 @@ export function deleteDisStation(mapId, code) {
|
||||
method: 'delete'
|
||||
});
|
||||
}
|
||||
// 获取调度台逻辑数据
|
||||
export function getDisStationListPaged(mapId, data) {
|
||||
return request({
|
||||
url: `/api/draftMap/${mapId}/disStation/page`,
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
/** 查询调度台列表 */
|
||||
export function getDisStationList(mapId) {
|
||||
return request({
|
||||
url: `api/draftMap/${mapId}/disStation/list`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
26
src/api/functionManage.js
Normal file
@ -0,0 +1,26 @@
|
||||
import request from '@/utils/request';
|
||||
|
||||
// 分页查询权限功能的基本信息
|
||||
export function getAbilityPage(data) {
|
||||
return request({
|
||||
url: `/api/v2/permission/system/ability/page`,
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
// 自动生成
|
||||
export function autoCreate() {
|
||||
return request({
|
||||
url: `/api/v2/permission/system/ability/autoCreate`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
||||
// 获取所有功能
|
||||
export function getAllAbility() {
|
||||
return request({
|
||||
url: `/api/v2/permission/system/ability/list`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
@ -4,10 +4,8 @@ const publicPath = process.env.VUE_APP_PRO == 'local' ? '' : '/cbtc';
|
||||
|
||||
export const JL3D_LOCAL_STATIC = publicPath+"/static";
|
||||
const BASE_UPLOAD_API = store.state.user.uploadUrl;
|
||||
export const BASE_ASSET_API = store.state.user.resourcesUrl;
|
||||
// console.log(JL3D_LOCAL_STATIC);
|
||||
// console.log(BASE_UPLOAD_API);
|
||||
// console.log(BASE_ASSET_API);
|
||||
// export const BASE_ASSET_API = store.state.user.resourcesUrl;
|
||||
export const BASE_ASSET_API = store.state.user.ossUrl;
|
||||
|
||||
export function getUploadModelUrl() {
|
||||
return (BASE_UPLOAD_API+"/api/upload/MODEL?appId=00001&appSecret=joylink00001");
|
||||
|
@ -2,85 +2,85 @@ import request from '@/utils/request';
|
||||
|
||||
/** 根据皮肤获取地图版本信息*/
|
||||
export function getPublishMapVersion(id) {
|
||||
return request({
|
||||
url: `/api/map/${id}/version`,
|
||||
method: 'get'
|
||||
});
|
||||
return request({
|
||||
url: `/api/map/${id}/version`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
||||
/** 根据皮肤获取发布地图详细内容*/
|
||||
export function getPublishMapDetail(id) {
|
||||
const datad = request({
|
||||
url: `/api/map/${id}/graphData`,
|
||||
method: 'get'
|
||||
});
|
||||
return datad.then();
|
||||
const datad = request({
|
||||
url: `/api/map/${id}/graphData`,
|
||||
method: 'get'
|
||||
});
|
||||
return datad.then();
|
||||
}
|
||||
|
||||
/** 根据地图id获取地图信息*/
|
||||
export function getPublishMapInfo(mapId) {
|
||||
return request({
|
||||
url: `/api/map/${mapId}`,
|
||||
method: 'get'
|
||||
});
|
||||
return request({
|
||||
url: `/api/map/${mapId}`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
||||
/** 获取草稿地图详细内容*/
|
||||
export function getMapDetail(id) {
|
||||
return request({
|
||||
url: `/api/mapBuild/${id}/mapDataDetail`,
|
||||
method: 'get'
|
||||
});
|
||||
return request({
|
||||
url: `/api/mapBuild/${id}/mapDataDetail`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
||||
/** 创建地图3d数据*/
|
||||
export function set3dMapData(data) {
|
||||
return request({
|
||||
url: `/api/mapBuild/3dMapData`,
|
||||
method: 'post',
|
||||
data: data
|
||||
});
|
||||
return request({
|
||||
url: `/api/mapBuild/3dMapData`,
|
||||
method: 'post',
|
||||
data: data
|
||||
});
|
||||
}
|
||||
|
||||
/** 通过地图id获取地图3d数据*/
|
||||
export function get3dMapData(mapId) {
|
||||
return request({
|
||||
url: `/api/mapBuild/3dMapData/${mapId}`,
|
||||
method: 'get'
|
||||
});
|
||||
return request({
|
||||
url: `/api/mapBuild/3dMapData/${mapId}`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
||||
/** 更新地图3d数据*/
|
||||
export function update3dMapData(data) {
|
||||
return request({
|
||||
url: `/api/mapBuild/3dMapData/${data.id}`,
|
||||
method: 'put',
|
||||
data: data
|
||||
});
|
||||
return request({
|
||||
url: `/api/mapBuild/3dMapData/${data.id}`,
|
||||
method: 'put',
|
||||
data: data
|
||||
});
|
||||
}
|
||||
|
||||
/** 获取模型资源列表*/
|
||||
export function loadmap3dModel() {
|
||||
return request({
|
||||
url: `/api/map3dModel/all`,
|
||||
method: 'get'
|
||||
});
|
||||
return request({
|
||||
url: `/api/map3dModel/all`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
export function getPublish3dMapDetail(id) {
|
||||
const datad = request({
|
||||
url: `/api/map/${id}/3dMapData`,
|
||||
method: 'get'
|
||||
});
|
||||
return datad.then();
|
||||
const datad = request({
|
||||
url: `/api/map/${id}/3dMapData`,
|
||||
method: 'get'
|
||||
});
|
||||
return datad.then();
|
||||
}
|
||||
|
||||
/** 录制托管*/
|
||||
export function tuoguan3ddrive(group,data) {
|
||||
return request({
|
||||
url: `/api/scriptSimulation/${group}/trust`,
|
||||
method: 'put',
|
||||
data: data
|
||||
});
|
||||
export function tuoguan3ddrive(group, data) {
|
||||
return request({
|
||||
url: `/api/scriptSimulation/${group}/trust`,
|
||||
method: 'put',
|
||||
data: data
|
||||
});
|
||||
}
|
||||
|
||||
/** 三维设备故障钩锁操作*/
|
||||
@ -101,33 +101,33 @@ export function saveStationManagerData(data) {
|
||||
});
|
||||
}
|
||||
// 更新数据
|
||||
export function updateStationManagerData(id,data) {
|
||||
return request({
|
||||
url: `/api/pfp/${id}`,
|
||||
method: 'put',
|
||||
data: data
|
||||
});
|
||||
export function updateStationManagerData(id, data) {
|
||||
return request({
|
||||
url: `/api/pfp/${id}`,
|
||||
method: 'put',
|
||||
data: data
|
||||
});
|
||||
}
|
||||
// 查询数据列表
|
||||
export function getStationManagerDataList() {
|
||||
const datad = request({
|
||||
url: `/api/pfp/list`,
|
||||
method: 'get'
|
||||
});
|
||||
return datad.then();
|
||||
const datad = request({
|
||||
url: `/api/pfp/list`,
|
||||
method: 'get'
|
||||
});
|
||||
return datad.then();
|
||||
}
|
||||
// 查询数据
|
||||
export function getStationManagerData(id) {
|
||||
const datad = request({
|
||||
url: `/api/pfp/${id}`,
|
||||
method: 'get'
|
||||
});
|
||||
return datad.then();
|
||||
const datad = request({
|
||||
url: `/api/pfp/${id}`,
|
||||
method: 'get'
|
||||
});
|
||||
return datad.then();
|
||||
}
|
||||
// 删除数据
|
||||
export function deleteStationManagerData(id) {
|
||||
return request({
|
||||
url: `/api/pfp/${id}`,
|
||||
method: 'delete',
|
||||
});
|
||||
return request({
|
||||
url: `/api/pfp/${id}`,
|
||||
method: 'delete'
|
||||
});
|
||||
}
|
||||
|
@ -285,3 +285,47 @@ export function allSimulationCheck() {
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
/** 根据地图查询仿真成员 */
|
||||
export function querySimulationMemberByMapId(id) {
|
||||
return request({
|
||||
url: `/api/map/${id}/memberMap`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
||||
/** 根据地图查询车站(含车辆段停车场) */
|
||||
export function querySimulationStationsByMapId(id) {
|
||||
return request({
|
||||
url: `/api/map/${id}/stations`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
/** 根据用户查询地图列表 */
|
||||
export function queryMapListByUser() {
|
||||
return request({
|
||||
url: `/api/map/list/online/ofUser`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
/** 根据mapId获取客户端信息数据 */
|
||||
export function getClientDataById(mapId) {
|
||||
return request({
|
||||
url: `/api/map/${mapId}/mapClientMap`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
/** 发布地图根据id生成实训 */
|
||||
export function generateTrainingData(data) {
|
||||
return request({
|
||||
url: `/api/v2/training/rule/generate/mapId`,
|
||||
method: 'post',
|
||||
data: data
|
||||
});
|
||||
}
|
||||
/** 根据mapId获取列车信息 */
|
||||
export function getTrainListByMapId(mapId) {
|
||||
return request({
|
||||
url: `/api/map/${mapId}/trains`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
@ -190,18 +190,28 @@ export function publishTrainingDelete(data) {
|
||||
data
|
||||
});
|
||||
}
|
||||
/** 根据mapId查所有的已发布单操实训的基础信息 */
|
||||
export function getPublishSingleList(mapId) {
|
||||
/** 查全部组织已发布实训的基础信息 */
|
||||
export function getAllPublishTrainingList(params) {
|
||||
return request({
|
||||
url: `/api/v2/training/published/${mapId}/singles`,
|
||||
method: 'get'
|
||||
url: `/api/v2/training/published/list`,
|
||||
method: 'get',
|
||||
params
|
||||
});
|
||||
}
|
||||
/** 根据mapId查所有的已发布场景实训的基础信息 */
|
||||
export function getPublishScenesList(mapId) {
|
||||
/** 查询组织已发布实训的基础信息 */
|
||||
export function getPublishTrainingListInOrg(data) {
|
||||
return request({
|
||||
url: `/api/v2/training/published/${mapId}/scenes`,
|
||||
method: 'get'
|
||||
url: `/api/v2/training/published/infos`,
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
/** 查询组织已发布的实训列表 */
|
||||
export function getManageTrainingListInOrg(data) {
|
||||
return request({
|
||||
url: `/api/v2/training/published/manage/infos`,
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
/** 根据实训id查该已发布实训的所有信息 */
|
||||
@ -234,10 +244,11 @@ export function startTraining(group, params) {
|
||||
});
|
||||
}
|
||||
/** 结束实训 */
|
||||
export function endTraining(group) {
|
||||
export function endTraining(group, data) {
|
||||
return request({
|
||||
url: `/api/training2Simulation/${group}/finish`,
|
||||
method: 'put'
|
||||
method: 'put',
|
||||
data
|
||||
});
|
||||
}
|
||||
/** 实训完成步骤 */
|
||||
@ -254,3 +265,11 @@ export function loadTrainingBg(group, trainingId) {
|
||||
method: 'post'
|
||||
});
|
||||
}
|
||||
/** 预备开始场景 */
|
||||
export function prepareScene(group, params) {
|
||||
return request({
|
||||
url:`/api/training2Simulation/${group}/prepare/start`,
|
||||
method: 'post',
|
||||
params
|
||||
});
|
||||
}
|
||||
|
@ -93,3 +93,33 @@ export function getLoginInfo(token) {
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取用户所属组织列表
|
||||
*/
|
||||
export function getOrgList() {
|
||||
return request({
|
||||
url: '/api/orgProject/list',
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 登入组织
|
||||
*/
|
||||
export function selectOrgnization(orgId) {
|
||||
return request({
|
||||
url: `/api/orgProject/signIn/${orgId}`,
|
||||
method: 'put'
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取用户已经加入的仿真
|
||||
*/
|
||||
export function getSimulationJoined() {
|
||||
return request({
|
||||
url: '/simulation/joined/by/me',
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
@ -95,7 +95,7 @@ export function updateExamRule(data) {
|
||||
return request({
|
||||
url: `/api/exam/update/rules`,
|
||||
method: 'put',
|
||||
data:data
|
||||
data: data
|
||||
});
|
||||
}
|
||||
/** 检查并更新【规则数据异常】状态 */
|
||||
@ -106,9 +106,251 @@ export function checkAndUpdateAbnormal(mapId) {
|
||||
});
|
||||
}
|
||||
/** 重新生成考试规则 */
|
||||
export function regenerateRule (mapId) {
|
||||
export function regenerateRule(mapId) {
|
||||
return request({
|
||||
url: `/api/exam/regenerateRules/${mapId}`,
|
||||
method: 'put'
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* ============================================================================
|
||||
* ============================================================================
|
||||
* ============================= 以下为新版试卷的接口 ============================
|
||||
* ============================================================================
|
||||
* ============================================================================
|
||||
*/
|
||||
|
||||
/**
|
||||
* LIST -
|
||||
* 根据试卷蓝图名称简介分页查找某个组织的试卷蓝图
|
||||
* @param {Object} data
|
||||
* @param {Number} data.orgId 组织ID
|
||||
* @param {String} data.name 试卷蓝图名称
|
||||
* @param {String} data.profile 试卷蓝图简介
|
||||
* @param {Number} data.findState 状态: (All(1)-所有,Editing(2)-正在编辑的,CanUse(3)-可以用于生成试卷的,Locked(4)-封存,Used(5)-已经被使用过)
|
||||
* @param {Number} data.orderBy 排序依据: (1--创建时间 2--更新时间 3--名称;默认值为1)
|
||||
*/
|
||||
export function getPapaerListOfOrg({ orgId, ...data }) {
|
||||
return request({
|
||||
url: `/api/v2/paper/composition/find/page/for/${orgId}`,
|
||||
method: 'POST',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
export function getAllPapaerListOfOrg({ ...data }) {
|
||||
// 全部组织
|
||||
return request({
|
||||
url: `/api/v2/paper/composition/manage/paging`,
|
||||
method: 'POST',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建试卷蓝图
|
||||
* @param {Object} data
|
||||
* @param {Number} data.orgId 组织ID
|
||||
* @param {String} data.name 试卷蓝图名称
|
||||
* @param {String} data.profile 简介
|
||||
* @param {String} data.startTime 启用起始时间
|
||||
* @param {String} data.endTime 启用截止时间
|
||||
* @param {Number} data.validDuration 考试时长
|
||||
* @param {String} data.passScore 及格分
|
||||
* @param {String} data.fullScore 满分
|
||||
* @param {Object} data.ruleList 规则列表
|
||||
* @param {Object} data.ruleList.id 规则id
|
||||
* @param {Object} data.ruleList.pcId 试卷蓝图ID
|
||||
* @param {Object} data.ruleList.type 试题类型
|
||||
* @param {Object} data.ruleList.subtype 规则类型
|
||||
* @param {Object} data.ruleList.tags 标签
|
||||
* @param {Object} data.ruleList.amount 数量
|
||||
* @param {Object} data.ruleList.score 每题分值
|
||||
*/
|
||||
export function createPaper(data) {
|
||||
return request({
|
||||
url: `/api/v2/paper/composition/${data.orgId}`,
|
||||
method: 'POST',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
/** 修改试卷蓝图基本信息
|
||||
* @param {Object} data
|
||||
* @param {Number} data.id 试卷蓝图ID
|
||||
* @param {Number} data.orgId 组织ID
|
||||
* @param {String} data.name 试卷蓝图名称
|
||||
* @param {String} data.profile 简介
|
||||
* @param {String} data.startTime 启用起始时间
|
||||
* @param {String} data.endTime 启用截止时间
|
||||
* @param {Number} data.validDuration 考试时长
|
||||
* @param {String} data.passScore 及格分
|
||||
* @param {String} data.fullScore 满分
|
||||
* @param {Object} data.ruleList 规则列表
|
||||
* @param {Object} data.ruleList.id 规则id
|
||||
* @param {Object} data.ruleList.pcId 试卷蓝图ID
|
||||
* @param {Object} data.ruleList.type 试题类型
|
||||
* @param {Object} data.ruleList.subtype 规则类型
|
||||
* @param {Object} data.ruleList.tags 标签
|
||||
* @param {Object} data.ruleList.amount 数量
|
||||
* @param {Object} data.ruleList.score 每题分值
|
||||
*/
|
||||
export function editPaper(data) {
|
||||
return request({
|
||||
url: `/api/v2/paper/composition`,
|
||||
method: 'PUT',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
/** 获取试卷完整的蓝图,包括规则
|
||||
* @param {Number} pcId 试卷蓝图ID
|
||||
*/
|
||||
export function getPaperDetail(pcId) {
|
||||
return request({
|
||||
url: `/api/v2/paper/composition/${pcId}`,
|
||||
method: 'GET'
|
||||
});
|
||||
}
|
||||
|
||||
/** 查询组织下各类型题的数量
|
||||
* @param {Object} data
|
||||
* @param {Number} data.orgId
|
||||
* @param {Number} data.subtype
|
||||
* @param {Array<String>} data.tags
|
||||
*/
|
||||
export function getQuestionAmount(data) {
|
||||
return request({
|
||||
url: `/api/v2/paper/question/count`,
|
||||
method: 'POST',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
/** 试卷蓝图封存
|
||||
* @param {Number} pcId 试卷蓝图Id
|
||||
*/
|
||||
export function lockPaper(pcId) {
|
||||
return request({
|
||||
url: `/api/v2/paper/composition/${pcId}/lock`,
|
||||
method: 'PUT'
|
||||
});
|
||||
}
|
||||
|
||||
/** 试卷蓝图
|
||||
* @param {Number} pcId 试卷蓝图Id
|
||||
*/
|
||||
export function invalidPaper(pcId) {
|
||||
return request({
|
||||
url: `/api/v2/paper/composition/${pcId}/invalid`,
|
||||
method: 'PUT'
|
||||
});
|
||||
}
|
||||
|
||||
/** 试卷蓝图删除
|
||||
* @param {Number} pcId 试卷蓝图Id
|
||||
*/
|
||||
export function deletePaper(pcId) {
|
||||
return request({
|
||||
url: `/api/v2/paper/composition/${pcId}`,
|
||||
method: 'DELETE'
|
||||
});
|
||||
}
|
||||
|
||||
/** 根据试卷蓝图生成用户的试卷
|
||||
* @param {Number} pcId 试卷蓝图Id
|
||||
*/
|
||||
export function generateExam(pcId) {
|
||||
return request({
|
||||
url: `/api/v2/paper/${pcId}`,
|
||||
method: 'POST'
|
||||
});
|
||||
}
|
||||
|
||||
/** 删除用户试卷 */
|
||||
// export function deleteUserExam(param) {
|
||||
// return request({
|
||||
// url: `/api/v2/paper/user/${puId}`,
|
||||
// method: 'DELETE'
|
||||
// });
|
||||
// }
|
||||
|
||||
/** 获取用户试卷完整信息
|
||||
* @param {Number} puId 用户试卷Id
|
||||
*/
|
||||
export function getUserExamInfo(puId) {
|
||||
return request({
|
||||
url: `/api/v2/paper/user/${puId}`,
|
||||
method: 'GET'
|
||||
});
|
||||
}
|
||||
|
||||
/** 加载用户试卷试题 */
|
||||
export function loadQuestion({ type, questionId, puId }) {
|
||||
return request({
|
||||
url: `/api/v2/paper/user/question/${type}/${questionId}/${puId}`,
|
||||
method: 'GET'
|
||||
});
|
||||
}
|
||||
|
||||
/** 提交答案
|
||||
* @param {Object} data
|
||||
* @param {Number} data.puId 用户试卷id
|
||||
* @param {Number} data.pqId 用户试卷试题id
|
||||
* @param {Number} data.type 试题类型
|
||||
* @param {Number} data.subType 试题子类型
|
||||
* @param {Number} data.answer 答案(理论题)
|
||||
* @param {Boolean} data.trainingSuccess 是否完成(实训题)
|
||||
*/
|
||||
export function submitAnswer(data) {
|
||||
return request({
|
||||
url: `/api/v2/paper/user/question/answer`,
|
||||
method: 'POST',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
/** 交卷
|
||||
* @param {Number} puId 用户试卷id
|
||||
*/
|
||||
export function submitPaper(puId) {
|
||||
return request({
|
||||
url: `/api/v2/paper/user/${puId}/submit`,
|
||||
method: 'POST'
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据mapId查询蓝图的基本信息
|
||||
*/
|
||||
export function queryPaperList(data) {
|
||||
return request({
|
||||
url: `/api/v2/paper/composition/find/list`,
|
||||
method: 'POST',
|
||||
data
|
||||
});
|
||||
}
|
||||
/**
|
||||
* 获取标签分类
|
||||
* @param {Number} ordId 组织id
|
||||
* @param {Number} groupType 1-理论题 2-实训题
|
||||
* @param {Number} subType 1-选择题 2-多选题 3-判断题 4-单操 5-场景
|
||||
*/
|
||||
export function queryTagList(data) {
|
||||
return request({
|
||||
url: `/api/v2/paper/question/label`,
|
||||
method: 'POST',
|
||||
data
|
||||
});
|
||||
}
|
||||
/**
|
||||
* 获取试卷创建者list
|
||||
*/
|
||||
export function queryPaperCreatorList(data) {
|
||||
return request({
|
||||
url: `/api/v2/paper/composition/list/creatorInfo`,
|
||||
method: 'POST',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
45
src/api/management/fileManage.js
Normal file
@ -0,0 +1,45 @@
|
||||
import request from '@/utils/request.js'
|
||||
|
||||
/** 获取文件列表 */
|
||||
export function getFileList(params) {
|
||||
return request({
|
||||
url: `/api/minio/file/list`,
|
||||
method: 'get',
|
||||
params,
|
||||
})
|
||||
}
|
||||
|
||||
/** 检查资源是否已存在 */
|
||||
export function checkIsExist(params) {
|
||||
return request({
|
||||
url: `/api/minio/checkIsExist`,
|
||||
method: 'get',
|
||||
params,
|
||||
})
|
||||
}
|
||||
|
||||
/** 保存文件 */
|
||||
export function saveFileInfo(data) {
|
||||
return request({
|
||||
url: `/api/minio/file/save`,
|
||||
method: 'post',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
/** 更新文件标题 */
|
||||
export function updateFileTitle(data) {
|
||||
return request({
|
||||
url: `/api/minio/file/update`,
|
||||
method: 'put',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
/** 删除文件 */
|
||||
export function deleteFile(id) {
|
||||
return request({
|
||||
url: `api/minio/file/del/${id}`,
|
||||
method: 'delete',
|
||||
})
|
||||
}
|
@ -17,6 +17,32 @@ export function getUserList(params) {
|
||||
});
|
||||
}
|
||||
|
||||
/** 查询所有用户列表*/
|
||||
export function getManageUserList(params) {
|
||||
return request({
|
||||
url: `/api/manage/user/list`,
|
||||
method: 'get',
|
||||
params: params
|
||||
});
|
||||
}
|
||||
|
||||
/** 根据用户查询用户角色列表*/
|
||||
export function getUserRolesList(uid) {
|
||||
return request({
|
||||
url: `/api/manage/${uid}/roles`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
||||
/** 绑定用户角色*/
|
||||
export function getBindUserRoles(data) {
|
||||
return request({
|
||||
url: `/api/manage/bind/org`,
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
/** 模糊查询用户 昵称、名称、手机号*/
|
||||
export function getDimUserList(params) {
|
||||
return request({
|
||||
@ -269,3 +295,39 @@ export function sendEmailVfcode(params) {
|
||||
params
|
||||
});
|
||||
}
|
||||
|
||||
/** 新注册接口 */
|
||||
export function registerUserNew(data) {
|
||||
return request({
|
||||
url: `/api/userinfo/register2`,
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
// 手机号是否已经注册
|
||||
export function isExistMobile(params) {
|
||||
return request({
|
||||
url: `/api/userinfo/isExist/mobile`,
|
||||
method: 'get',
|
||||
params
|
||||
});
|
||||
}
|
||||
|
||||
// 手机号是否已经注册
|
||||
export function isExistEmail(params) {
|
||||
return request({
|
||||
url: `/api/userinfo/isExist/email`,
|
||||
method: 'get',
|
||||
params
|
||||
});
|
||||
}
|
||||
|
||||
// 成工院第三方登录
|
||||
export function cgyThirdLogin(data) {
|
||||
return request({
|
||||
url: '/api/login/cgy/third',
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
@ -1,19 +1,19 @@
|
||||
import request from '@/utils/request';
|
||||
import request from '@/utils/request'
|
||||
|
||||
/** 获取用户试题列表*/
|
||||
export function generateExamList(examId) {
|
||||
return request({
|
||||
url: `/api/userExam/${examId}/generate`,
|
||||
method: 'get'
|
||||
});
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
|
||||
/** 刷新考题列表*/
|
||||
export function refreshExamList(userExamId) {
|
||||
return request({
|
||||
url: `/api/userExam/${userExamId}`,
|
||||
method: 'get'
|
||||
});
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
|
||||
/** 提交一个考题*/
|
||||
@ -21,17 +21,16 @@ export function finishOneExamQuestion(data) {
|
||||
return request({
|
||||
url: '/api/userExam/finish',
|
||||
method: 'put',
|
||||
data: data
|
||||
});
|
||||
data: data,
|
||||
})
|
||||
}
|
||||
|
||||
/** 考试完成提交*/
|
||||
export function submitExam(examId) {
|
||||
return request({
|
||||
url: `/api/userExam/${examId}/submit`,
|
||||
method: 'put'
|
||||
});
|
||||
|
||||
method: 'put',
|
||||
})
|
||||
}
|
||||
|
||||
/** 获取用户考试列表*/
|
||||
@ -39,40 +38,41 @@ export function getPublishExam(data) {
|
||||
return request({
|
||||
url: `/api/userExam/list`,
|
||||
method: 'get',
|
||||
params: data
|
||||
});
|
||||
params: data,
|
||||
})
|
||||
}
|
||||
|
||||
/** 删除用户考试*/
|
||||
export function delPublishExam(id) {
|
||||
return request({
|
||||
url: `/api/userExam/${id}`,
|
||||
method: 'delete'
|
||||
});
|
||||
method: 'delete',
|
||||
})
|
||||
}
|
||||
|
||||
export function updateExam(data) {
|
||||
return request({
|
||||
url: `/api/userExam/${data.id}`,
|
||||
method: 'put',
|
||||
data: data
|
||||
});
|
||||
data: data,
|
||||
})
|
||||
}
|
||||
/** 获取班级考试成绩列表 */
|
||||
export function getClassGradeList(examId, params) {
|
||||
export function getClassGradeList(params) {
|
||||
return request({
|
||||
url: `/api/userExam/paged/orgUser/${params.orgId}/${examId}`,
|
||||
url: `/api/v2/paper/user/page`,
|
||||
method: 'get',
|
||||
params
|
||||
});
|
||||
params,
|
||||
})
|
||||
}
|
||||
|
||||
/** 查询组织学生单次考试成绩曲线 */
|
||||
export function getClassGradeStatistic(orgId, examId) {
|
||||
return request({
|
||||
url: `/api/userExam/curve/${orgId}/${examId}`,
|
||||
method: 'get'
|
||||
});
|
||||
url: `/api/v2/paper/user/curve`,
|
||||
params: { pcId: examId, orgId },
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
|
||||
/** 查询组织学生单次考试成绩曲线 */
|
||||
@ -80,29 +80,29 @@ export function getStuGradeStatistic(userId) {
|
||||
return request({
|
||||
url: `/api/userExam/curve/${userId}`,
|
||||
method: 'get',
|
||||
});
|
||||
})
|
||||
}
|
||||
|
||||
/** 个人仿真数据统计 */
|
||||
export function getSimulationTimeChart(mapId) {
|
||||
return request({
|
||||
url: `/api/stats/simulation/${mapId}/stats`,
|
||||
method: 'get'
|
||||
});
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
|
||||
// 课程内实训数据统计
|
||||
export function getLessonTimeChart(id) {
|
||||
return request({
|
||||
url: `/api/stats/lesson/${id}/stats`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
// // 课程内实训数据统计
|
||||
// export function getLessonTimeChart(id) {
|
||||
// return request({
|
||||
// url: `/api/stats/lesson/${id}/stats`,
|
||||
// method: 'get',
|
||||
// })
|
||||
// }
|
||||
|
||||
// 课程列表
|
||||
export function getLessonList() {
|
||||
return request({
|
||||
url: '/api/stats/lesson/list',
|
||||
method: 'get'
|
||||
});
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
|
221
src/api/newChat.js
Normal file
@ -0,0 +1,221 @@
|
||||
|
||||
import request from '@/utils/request';
|
||||
|
||||
/**
|
||||
* 获取群列表
|
||||
* @param {String} groupId 房间号
|
||||
* @returns
|
||||
*/
|
||||
export function getGroupList(groupId) {
|
||||
return request({
|
||||
url: `/api/simulation/${groupId}/conversation/group/list`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建群
|
||||
* @param {String} groupId 房间号
|
||||
* @param {String} data
|
||||
* @param {String} data.name 群组名称
|
||||
* @param {String} data.imageUrl 群组头像
|
||||
* @param {Array} data.memberIds 角色id列表
|
||||
* @returns
|
||||
*/
|
||||
export function createGroup(groupId, data) {
|
||||
return request({
|
||||
url: `/simulation/${groupId}/operate/Conversation_Group_Create`,
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改群组名称
|
||||
* @param {String} groupId 房间号
|
||||
* @param {Object} data
|
||||
* @param {String} data.id 群组id
|
||||
* @param {String} data.name 群组名称
|
||||
* @returns
|
||||
*/
|
||||
export function updateGroupName(groupId, data) {
|
||||
return request({
|
||||
url: `/simulation/${groupId}/operate/Conversation_Group_Update_Name`,
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改群组群主
|
||||
* @param {String} groupId 房间号
|
||||
* @param {Object} data
|
||||
* @param {Number} data.id 群组id
|
||||
* @param {String} data.memberId 角色id
|
||||
* @returns
|
||||
*/
|
||||
export function updateGroupLeader(groupId, data) {
|
||||
return request({
|
||||
url: `/simulation/${groupId}/operate/Conversation_Group_Update_Leader`,
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 邀请人员入群
|
||||
* @param {String} groupId 房间号
|
||||
* @param {Object} data
|
||||
* @param {Number} data.id 群组id
|
||||
* @param {Array} data.memberIds 角色id列表
|
||||
* @returns
|
||||
*/
|
||||
export function inviteMemberToGroup(groupId, data) {
|
||||
return request({
|
||||
url: `/simulation/${groupId}/operate/Conversation_Group_Invite_Member`,
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 移除群内人员
|
||||
* @param {String} groupId 房间号
|
||||
* @param {Object} data
|
||||
* @param {Number} data.id 群组id
|
||||
* @param {Array} data.memberIds 角色id列表
|
||||
* @returns
|
||||
*/
|
||||
export function removeMemberFromGroup(groupId, data) {
|
||||
return request({
|
||||
url: `/simulation/${groupId}/operate/Conversation_Group_Remove_Member`,
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 退出群组
|
||||
* @param {String} groupId 房间号
|
||||
* @param {Object} data
|
||||
* @param {Number} data.id 群组id
|
||||
* @returns
|
||||
*/
|
||||
export function exitGroup(groupId, data) {
|
||||
return request({
|
||||
url: `/simulation/${groupId}/operate/Conversation_Group_Exit`,
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 解散群组
|
||||
* @param {String} groupId 房间号
|
||||
* @param {Object} data
|
||||
* @param {Number} data.id 群组id
|
||||
* @returns
|
||||
*/
|
||||
export function dissolveGroup(groupId, data) {
|
||||
return request({
|
||||
url: `/simulation/${groupId}/operate/Conversation_Group_Dissolve`,
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 发送语音信息
|
||||
* @param {String} groupId 房间号
|
||||
* @param {Object} data
|
||||
* @param {Number} data.id 群组id
|
||||
* @param {String} data.audioPath 文件地址
|
||||
* @param {String} data.content 语音内容
|
||||
* @returns
|
||||
*/
|
||||
export function sendAudio(groupId, data) {
|
||||
return request({
|
||||
url: `/simulation/${groupId}/operate/Conversation_Group_Audio_Chat`,
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 发送文字信息
|
||||
* @param {String} groupId 房间号
|
||||
* @param {Object} data
|
||||
* @param {Number} data.id 群组id
|
||||
* @param {String} data.content 文字内容
|
||||
* @returns
|
||||
*/
|
||||
export function sendText(groupId, data) {
|
||||
return request({
|
||||
url: `/simulation/${groupId}/operate/Conversation_Group_Text_Chat`,
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 发送BASE64信息
|
||||
* @param {String} groupId 房间号
|
||||
* @param {Object} data
|
||||
* @param {Number} data.id 群组id
|
||||
* @param {String} data.fileBase64Str 文件base64码
|
||||
* @returns
|
||||
*/
|
||||
export function sendBase64(groupId, data) {
|
||||
return request({
|
||||
url: `/simulation/${groupId}/operate/Conversation_Group_Audio_Base64`,
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置群消息已读
|
||||
* @param {String} groupId 房间号
|
||||
* @param {Object} data
|
||||
* @param {Number} data.id 群组id
|
||||
* @returns
|
||||
*/
|
||||
export function setGroupReadMessage(groupId, data) {
|
||||
return request({
|
||||
url: `/simulation/${groupId}/operate/Conversation_Group_Read_Message`,
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 发送私聊文字信息
|
||||
* @param {String} groupId 房间号
|
||||
* @param {Object} data
|
||||
* @param {Number} data.memberId 角色id
|
||||
* @param {String} data.content 文字内容
|
||||
* @returns
|
||||
*/
|
||||
export function sendPrivateText(groupId, data) {
|
||||
return request({
|
||||
url: `/simulation/${groupId}/operate/Conversation_Group_Private_Text_Chat`,
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 发送私聊BASE64信息
|
||||
* @param {String} groupId 房间号
|
||||
* @param {Object} data
|
||||
* @param {Number} data.memberId 角色id
|
||||
* @param {String} data.fileBase64Str 文件base64码
|
||||
* @returns
|
||||
*/
|
||||
export function sendPrivateBase64(groupId, data) {
|
||||
return request({
|
||||
url: `/simulation/${groupId}/operate/Conversation_Group_Private_Audio_Base64`,
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
28
src/api/permissionManage.js
Normal file
@ -0,0 +1,28 @@
|
||||
import request from '@/utils/request';
|
||||
|
||||
// 创建权限
|
||||
export function createPermission(data) {
|
||||
return request({
|
||||
url: `/api/v2/permission/create`,
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
// 权限修改
|
||||
export function updatePermission(data) {
|
||||
return request({
|
||||
url: `/api/v2/permission/update`,
|
||||
method: 'put',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
// 分页获取权限
|
||||
export function getPermissionPage(data) {
|
||||
return request({
|
||||
url: `/api/v2/permission/find/page`,
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
@ -61,10 +61,10 @@ export function setLwConfig(id, data) {
|
||||
data: data
|
||||
});
|
||||
}
|
||||
/** 查询所有的某类型设备 */
|
||||
export function getDevicesByType(type) {
|
||||
/** 查询某个项目下的所有的某类型设备 */
|
||||
export function getDevicesByType(project, type) {
|
||||
return request({
|
||||
url: `/api/device/${type}/all`,
|
||||
url: `/api/device/${project}/${type}/all`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
@ -144,3 +144,10 @@ export function setDeviceConfig(data) {
|
||||
data: data
|
||||
});
|
||||
}
|
||||
/** 获取所有项目 */
|
||||
export function getAllProject() {
|
||||
return request({
|
||||
url: `/api/project/all `,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
187
src/api/projectConfig.js
Normal file
@ -0,0 +1,187 @@
|
||||
import request from '@/utils/request';
|
||||
|
||||
/** 后端项目配置分页 */
|
||||
export function getBackProjectConfigByPage(params) {
|
||||
return request({
|
||||
url: `/api/project/page`,
|
||||
method: 'get',
|
||||
params
|
||||
});
|
||||
}
|
||||
|
||||
/** 全量后端项目配置 */
|
||||
export function getAllBackProjectConfig() {
|
||||
return request({
|
||||
url: `/api/project/all`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
||||
/** 主键获取后端项目配置 */
|
||||
export function getBackProjectConfigById(id) {
|
||||
return request({
|
||||
url: `/api/project/${id}`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
||||
/** 通过code获取后端项目配置 */
|
||||
export function getBackProjectConfigByCode(code) {
|
||||
return request({
|
||||
url: `/api/project/code/${code}`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
||||
/** 删除后端项目配置 */
|
||||
export function deleteBackProjectConfig(id) {
|
||||
return request({
|
||||
url: `/api/project/del/${id}`,
|
||||
method: 'delete'
|
||||
});
|
||||
}
|
||||
|
||||
/** 更新后端项目配置 */
|
||||
export function updateBackProjectConfig(data) {
|
||||
return request({
|
||||
url: `/api/project/update`,
|
||||
method: 'put',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
/** 保存后端项目配置 */
|
||||
export function saveBackProjectConfig(data) {
|
||||
return request({
|
||||
url: `/api/project/save`,
|
||||
method: 'POST',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
/** 获取后端项目列表,关联时使用 */
|
||||
export function getBackProjectConfigList(id) {
|
||||
return request({
|
||||
url: `/api/project/simple`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
||||
/** 前端项目配置分页 */
|
||||
export function getFrontProjectConfigByPage(params) {
|
||||
return request({
|
||||
url: `/api/project/viewSetting/page`,
|
||||
method: 'get',
|
||||
params
|
||||
});
|
||||
}
|
||||
|
||||
/** 全量前端项目配置 */
|
||||
export function getAllFrontProjectConfig() {
|
||||
return request({
|
||||
url: `/api/project/viewSetting/all`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
||||
/** 获取前端项目配置 */
|
||||
export function getFrontProjectConfigById(id) {
|
||||
return request({
|
||||
url: `/api/project/viewSetting/${id}`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
||||
/** 删除前端项目配置 */
|
||||
export function deleteFrontProjectConfig(id) {
|
||||
return request({
|
||||
url: `/api/project/viewSetting/del/${id}`,
|
||||
method: 'delete'
|
||||
});
|
||||
}
|
||||
|
||||
/** 更新前端项目配置 */
|
||||
export function updateFrontProjectConfig(data) {
|
||||
return request({
|
||||
url: `/api/project/viewSetting/update`,
|
||||
method: 'put',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
/** 保存前端项目配置 */
|
||||
export function saveFrontProjectConfig(data) {
|
||||
return request({
|
||||
url: `/api/project/viewSetting/save`,
|
||||
method: 'POST',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
/** 登录时根据前端标识获取配置 */
|
||||
export function getFrontProjectConfigByLogin(markKey) {
|
||||
return request({
|
||||
url: `/api/project/viewSetting/project/${markKey}`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
||||
/** 登录时获取全量前端配置 */
|
||||
export function getAllFrontProjectConfigByLogin(markKey) {
|
||||
return request({
|
||||
url: `/api/project/viewSetting/simple/all`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
||||
/** 检查项目code */
|
||||
export function checkBackProjectExist(params) {
|
||||
return request({
|
||||
url: `/api/project/check/code`,
|
||||
method: 'get',
|
||||
params
|
||||
});
|
||||
}
|
||||
|
||||
/** 检查项目markKey */
|
||||
export function checkFrontProjectExist(params) {
|
||||
return request({
|
||||
url: `/api/project/check/markKey`,
|
||||
method: 'get',
|
||||
params
|
||||
});
|
||||
}
|
||||
//
|
||||
export function getUploadUrl(params) {
|
||||
return request({
|
||||
url: `/api/minio/preSignedUrl`,
|
||||
method: 'get',
|
||||
params
|
||||
});
|
||||
}
|
||||
|
||||
/** 设置默认组织 */
|
||||
export function setDefaultOrg(data) {
|
||||
return request({
|
||||
url: `/api/project/setDefaultOrg`,
|
||||
method: 'put',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
/** 创建默认组织 */
|
||||
export function createDefaultOrg(id, data) {
|
||||
return request({
|
||||
url: `/api/project/${id}/createDefaultOrg`,
|
||||
method: 'POST',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
/** 登录项目组织列表 */
|
||||
export function getOrgList(id) {
|
||||
return request({
|
||||
url: `/api/project/${id}/orgList`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
@ -1,18 +1,45 @@
|
||||
import request from '@/utils/request';
|
||||
|
||||
// 查询理论试题(全部组织)
|
||||
export function listAllQuestionPage(params) {
|
||||
return request({
|
||||
url: `/api/question/paging`,
|
||||
method: 'get',
|
||||
params
|
||||
});
|
||||
}
|
||||
|
||||
// 分页查询理论试题
|
||||
export function listQuestionPage(params) {
|
||||
return request({
|
||||
url: `/api/questionBank/questions/paging`,
|
||||
// url: `/api/questionBank/questions/paging`,
|
||||
url: `/api/question/org/paging`,
|
||||
method: 'get',
|
||||
params
|
||||
});
|
||||
}
|
||||
|
||||
// 查询所有理论试题
|
||||
export function listQuestionAll() {
|
||||
return request({
|
||||
url: `/api/question/org`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
||||
// 标签列表
|
||||
export function getLabelList() {
|
||||
return request({
|
||||
url: `/api/question/org/label`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
||||
// 创建题目
|
||||
export function createQuestion(data) {
|
||||
return request({
|
||||
url: `/api/questionBank/questions`,
|
||||
// url: `/api/questionBank/questions`,
|
||||
url: `/api/question/org`,
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
@ -21,25 +48,55 @@ export function createQuestion(data) {
|
||||
// 删除题目
|
||||
export function deleteQuestion(questionId) {
|
||||
return request({
|
||||
url: `/api/questionBank/questions/${questionId}`,
|
||||
method: 'delete'
|
||||
// url: `/api/questionBank/questions/${questionId}`,
|
||||
url: `/api/question/org`,
|
||||
method: 'delete',
|
||||
data: [questionId]
|
||||
});
|
||||
}
|
||||
|
||||
// 更新题目
|
||||
export function updateOption(data) {
|
||||
return request({
|
||||
url: `/api/questionBank/questions/${data.id}`,
|
||||
// url: `/api/questionBank/questions/${data.id}`,
|
||||
url: `/api/question/org/${data.id}`,
|
||||
method: 'put',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
// 获取题目信息
|
||||
export function getQuestionInfo(questionId) {
|
||||
export function getQuestionInfo(questionId, params) {
|
||||
return request({
|
||||
url: `/api/questionBank/questions/${questionId}`,
|
||||
method: 'get'
|
||||
// url: `/api/questionBank/questions/${questionId}`,
|
||||
url: `/api/question/org/${questionId}`,
|
||||
method: 'get',
|
||||
params
|
||||
});
|
||||
}
|
||||
|
||||
// 题库批量导入
|
||||
export function importQuestion(data) {
|
||||
return request({
|
||||
url: `/api/question/org/import`,
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
// 预览答题
|
||||
export function testAnswer(questionId, data) {
|
||||
return request({
|
||||
url: `/api/question/org/test/answer/${questionId}`,
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
// 清空题库
|
||||
export function clearBank() {
|
||||
return request({
|
||||
url: `/api/question/org/clear`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
@ -15,3 +15,20 @@ export function selectQuestionTypeNum(companyId) {
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
||||
/** 加载场景 */
|
||||
export function loadRace(simulationId, sceneId) {
|
||||
return request({
|
||||
url: `/api/race/${simulationId}/load/${sceneId}`,
|
||||
method: 'put'
|
||||
});
|
||||
|
||||
}
|
||||
/** 完成任务 */
|
||||
export function overTask(taskId, data) {
|
||||
return request({
|
||||
url: `/api/race/${taskId}/finish`,
|
||||
method: 'put',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
10
src/api/record.js
Normal file
@ -0,0 +1,10 @@
|
||||
import request from '@/utils/request';
|
||||
|
||||
/** 查询用户使用记录统计 */
|
||||
export function queryUserSimulationRecord(params, userId) {
|
||||
return request({
|
||||
url: `/api/record/stats/list/criteria/${userId}`,
|
||||
method: 'get',
|
||||
params
|
||||
});
|
||||
}
|
@ -6,29 +6,15 @@ export function createSimulation(data) {
|
||||
method: 'post'
|
||||
});
|
||||
}
|
||||
/** 根据仿真group获取仿真基础信息 */
|
||||
/** 根据仿真group获取仿真基础信息 废弃 */
|
||||
export function getSimulationInfoByGroup(groupId) {
|
||||
return request({
|
||||
url: `/common/simulation/${groupId}`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
/** 根据仿真group获取仿真地图数据 */
|
||||
export function getMapDataByGroup(groupId) {
|
||||
return request({
|
||||
url: `/rtSimulation/${groupId}/mapData`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
/** 仿真发送指令 */
|
||||
export function sendSimulationCommand(group, memberId, type, data) {
|
||||
return request({
|
||||
url: `/common/simulation/${group}/member/${memberId}/operate/${type}`,
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
/** 获取仿真成员列表 */
|
||||
|
||||
/** 获取仿真成员列表 废弃 */
|
||||
export function getMemberListCommon(group, role) {
|
||||
|
||||
if (!role) {
|
||||
@ -39,14 +25,14 @@ export function getMemberListCommon(group, role) {
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
/** 获取仿真用户列表 */
|
||||
/** 获取仿真用户列表 废弃 */
|
||||
export function getUserListCommon(group) {
|
||||
return request({
|
||||
url: `/common/simulation/${group}/users`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
/** 销毁仿真 */
|
||||
/** 销毁仿真 废弃 */
|
||||
export function destroySimulation(group) {
|
||||
return request({
|
||||
url: `/common/simulation/${group}/destroy`,
|
||||
@ -56,11 +42,11 @@ export function destroySimulation(group) {
|
||||
/** 初始化仿真 */
|
||||
export function initSimulation(group) {
|
||||
return request({
|
||||
url: `/common/simulation/${group}/init`,
|
||||
url: `/simulation/new/${group}/reset`,
|
||||
method: 'put'
|
||||
});
|
||||
}
|
||||
/** 设置故障 */
|
||||
/** 设置故障 废弃 */
|
||||
export function setSimulationFault(group, data) {
|
||||
return request({
|
||||
url: `/common/simulation/${group}/fault`,
|
||||
@ -68,7 +54,7 @@ export function setSimulationFault(group, data) {
|
||||
data
|
||||
});
|
||||
}
|
||||
/** 取消故障 */
|
||||
/** 取消故障 废弃 */
|
||||
export function cancelSimulationFault(group, deviceId, faultType) {
|
||||
return request({
|
||||
url: `/common/simulation/${group}/device/${deviceId}/fault/${faultType}`,
|
||||
@ -78,28 +64,28 @@ export function cancelSimulationFault(group, deviceId, faultType) {
|
||||
/** 仿真运行倍速 */
|
||||
export function timesSpeedPlayback(group, speed) {
|
||||
return request({
|
||||
url: `/common/simulation/${group}/updateSpeed/${speed}`,
|
||||
url: `/simulation/${group}/updateSpeed/${speed}`,
|
||||
method: 'put'
|
||||
});
|
||||
}
|
||||
/** 仿真暂停 */
|
||||
export function simulationPause(group) {
|
||||
return request({
|
||||
url: `/common/simulation/${group}/pause`,
|
||||
url: `/simulation/${group}/pause`,
|
||||
method: 'put'
|
||||
});
|
||||
}
|
||||
/** 仿真开始 */
|
||||
export function simulationStart(group) {
|
||||
return request({
|
||||
url: `/common/simulation/${group}/start`,
|
||||
url: `/simulation/${group}/start`,
|
||||
method: 'put'
|
||||
});
|
||||
}
|
||||
/** 获取存在的仿真列表 */
|
||||
export function getExistSimulationList(params) {
|
||||
return request({
|
||||
url: `/common/simulation/list`,
|
||||
url: `/simulation/list`,
|
||||
method: 'get',
|
||||
params
|
||||
});
|
||||
@ -107,7 +93,15 @@ export function getExistSimulationList(params) {
|
||||
/** 获取仿真用户信息 */
|
||||
export function getSimulationUserInfo(id) {
|
||||
return request({
|
||||
url: `/common/simulation/${id}/users`,
|
||||
url: `/simulation/${id}/users`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
/** 监管仿真 */
|
||||
export function getSuperviseSimulation(params) {
|
||||
return request({
|
||||
url: `/simulation/supervise`,
|
||||
method: 'get',
|
||||
params
|
||||
});
|
||||
}
|
||||
|
@ -47,39 +47,39 @@ export function examNotifyNew({ examId }) {
|
||||
});
|
||||
}
|
||||
/** 获取用户实训列表*/
|
||||
export function getSimulationList(data) {
|
||||
return request({
|
||||
url: `/api/stats/simulation`,
|
||||
method: 'get',
|
||||
params: data
|
||||
});
|
||||
}
|
||||
// export function getSimulationList(data) {
|
||||
// return request({
|
||||
// url: `/api/stats/simulation`,
|
||||
// method: 'get',
|
||||
// params: data
|
||||
// });
|
||||
// }
|
||||
|
||||
/** 添加用户仿真数据*/
|
||||
export function postSimulationStats(data) {
|
||||
return request({
|
||||
url: `/api/stats/simulation`,
|
||||
method: 'post',
|
||||
data: data
|
||||
});
|
||||
}
|
||||
// /** 添加用户仿真数据*/
|
||||
// export function postSimulationStats(data) {
|
||||
// return request({
|
||||
// url: `/api/stats/simulation`,
|
||||
// method: 'post',
|
||||
// data: data
|
||||
// });
|
||||
// }
|
||||
|
||||
/** 更新用户仿真数据*/
|
||||
export function putSimulationStats(data) {
|
||||
return request({
|
||||
url: `/api/stats/${data.id}`,
|
||||
method: 'put',
|
||||
data: data
|
||||
});
|
||||
}
|
||||
// /** 更新用户仿真数据*/
|
||||
// export function putSimulationStats(data) {
|
||||
// return request({
|
||||
// url: `/api/stats/${data.id}`,
|
||||
// method: 'put',
|
||||
// data: data
|
||||
// });
|
||||
// }
|
||||
|
||||
/** 删除用户仿真数据*/
|
||||
export function deleteSimulationStats(statsId) {
|
||||
return request({
|
||||
url: `/api/stats/${statsId}`,
|
||||
method: 'delete'
|
||||
});
|
||||
}
|
||||
// export function deleteSimulationStats(statsId) {
|
||||
// return request({
|
||||
// url: `/api/stats/${statsId}`,
|
||||
// method: 'delete'
|
||||
// });
|
||||
// }
|
||||
|
||||
/** 录制脚本仿真(新版)*/
|
||||
export function scriptRecordNotifyNew(scriptId) {
|
||||
@ -228,22 +228,22 @@ export function handlerIbpEvent(group, button, stationCode, buttonCode) {
|
||||
});
|
||||
}
|
||||
|
||||
/** 处理ibp盘事件(按下) */
|
||||
|
||||
export function handleIbpPress(group, stationCode, buttonCode) {
|
||||
return request({
|
||||
url: `/simulation/${group}/ibp/press/${stationCode}/${buttonCode}`,
|
||||
method: 'put'
|
||||
});
|
||||
}
|
||||
/** 处理ibp盘事件(松开) */
|
||||
|
||||
export function handleIbpRelease(group, stationCode, buttonCode) {
|
||||
return request({
|
||||
url: `/simulation/${group}/ibp/release/${stationCode}/${buttonCode}`,
|
||||
method: 'put'
|
||||
});
|
||||
}
|
||||
// /** 处理ibp盘事件(按下) */
|
||||
//
|
||||
// export function handleIbpPress(group, stationCode, buttonCode) {
|
||||
// return request({
|
||||
// url: `/simulation/${group}/ibp/press/${stationCode}/${buttonCode}`,
|
||||
// method: 'put'
|
||||
// });
|
||||
// }
|
||||
// /** 处理ibp盘事件(松开) */
|
||||
//
|
||||
// export function handleIbpRelease(group, stationCode, buttonCode) {
|
||||
// return request({
|
||||
// url: `/simulation/${group}/ibp/release/${stationCode}/${buttonCode}`,
|
||||
// method: 'put'
|
||||
// });
|
||||
// }
|
||||
|
||||
/** 预览脚本仿真(新版)*/
|
||||
export function scriptDraftRecordNotifyNew(scriptId) {
|
||||
@ -296,7 +296,7 @@ export function modifySystemTime(data, group) {
|
||||
/** 新版地图按计划行车 */
|
||||
export function ranAsPlan(data, group) {
|
||||
return request({
|
||||
url: `/simulation/${group}/ranAsPlan`,
|
||||
url: `/simulation/new/${group}/runAsPlan`,
|
||||
method: 'post',
|
||||
data: data
|
||||
});
|
||||
@ -349,6 +349,15 @@ export function simulationLoadRunPlan(group, templateId) {
|
||||
method: 'put'
|
||||
});
|
||||
}
|
||||
|
||||
/** 仿真里加载草稿运行图 */
|
||||
export function simulationLoadDraftRunPlan(group, draftRunPlanId) {
|
||||
return request({
|
||||
url:`/simulation/${group}/load/draftRunPlan/${draftRunPlanId} `,
|
||||
method: 'put'
|
||||
});
|
||||
}
|
||||
|
||||
/** 根据车次号获取列车信息 */
|
||||
export function getTrainDetailBytripNumber(group, params) {
|
||||
return request({
|
||||
@ -506,10 +515,10 @@ export function getStandListByRunLineOrTrainCode(group, params) {
|
||||
params
|
||||
});
|
||||
}
|
||||
/** 上饶列车控制 */
|
||||
export function srTrainControl(group, params) {
|
||||
/** 沙盘列车控制 */
|
||||
export function sandTableTrainControl(group, params) {
|
||||
return request({
|
||||
url: `/api/sr/${group}/control`,
|
||||
url: `/api/sandTable/${group}/control`,
|
||||
method: 'put',
|
||||
params
|
||||
});
|
||||
@ -537,3 +546,64 @@ export function queryPaTimedList(group, params) {
|
||||
params
|
||||
});
|
||||
}
|
||||
/** 创建仿真 */
|
||||
export function createSimulation(id) {
|
||||
return request({
|
||||
url: `/simulation/new/mapFunction/${id}`,
|
||||
method: 'post'
|
||||
});
|
||||
}
|
||||
|
||||
/** 根据地图ID和功能ID获取仿真GroupId */
|
||||
export function getGroupByMapAndFunction(mapId, functionId) {
|
||||
return request({
|
||||
url: `/simulation/new/map/${mapId}/function/${functionId}`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
/** 由系统管理员和教员销毁仿真 */
|
||||
export function destroySimulationByAdmin(group) {
|
||||
return request({
|
||||
url: `/simulation/${group}/destroy`,
|
||||
method: 'delete'
|
||||
});
|
||||
}
|
||||
|
||||
/** 非仿真创建者退出仿真 */
|
||||
export function exitSimulation(group) {
|
||||
return request({
|
||||
url: `/simulation/${group}/exit`,
|
||||
method: 'put'
|
||||
});
|
||||
}
|
||||
/** 仿真监管那里进入仿真 */
|
||||
export function enterSimulationByTeacher(group) {
|
||||
return request({
|
||||
url: `/simulation/${group}/monitor`,
|
||||
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
|
||||
});
|
||||
}
|
||||
|
27
src/api/thirdAccountConfig.js
Normal file
@ -0,0 +1,27 @@
|
||||
import request from '@/utils/request';
|
||||
|
||||
/** 删除第三方配置 */
|
||||
export function deleteThirdAccountConfig(id) {
|
||||
return request({
|
||||
url: `/api/thirdAccountConfig/${id}`,
|
||||
method: 'delete'
|
||||
});
|
||||
}
|
||||
|
||||
/** 分页查询所有配置 */
|
||||
export function queryThirdAccountConfig(params) {
|
||||
return request({
|
||||
url: `/api/thirdAccountConfig/paged`,
|
||||
method: 'get',
|
||||
params
|
||||
});
|
||||
}
|
||||
|
||||
/** 新增或更新第三方配置 */
|
||||
export function updateThirdAccountConfig(data) {
|
||||
return request({
|
||||
url: `/api/thirdAccountConfig`,
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
@ -32,6 +32,21 @@ export function updateTraining(data) {
|
||||
data
|
||||
});
|
||||
}
|
||||
/** 更新发布实训信息(标签, 描述, 标题) */
|
||||
export function updateTrainingInfo(data) {
|
||||
return request({
|
||||
url: `/api/v2/training/published/update`,
|
||||
method: 'put',
|
||||
data
|
||||
});
|
||||
}
|
||||
/** 已发布实训转为草稿 */
|
||||
export function saveAsTrainingDraft(trainingId) {
|
||||
return request({
|
||||
url: `/api/v2/training/published/${trainingId}/saveAsDraft`,
|
||||
method: 'post'
|
||||
});
|
||||
}
|
||||
/** 查询步骤列表 */
|
||||
export function getTrainingStepList(trainingId) {
|
||||
return request({
|
||||
@ -41,7 +56,6 @@ export function getTrainingStepList(trainingId) {
|
||||
}
|
||||
/** 修改实训所有步骤 */
|
||||
export function updateTrainingStep(group, trainingId, data) {
|
||||
console.log(group, trainingId, '*******');
|
||||
return request({
|
||||
url: `/api/v2/draft/training/${group}/${trainingId}/step/update`,
|
||||
method: 'put',
|
||||
@ -152,10 +166,33 @@ export function getTrainingGradeRules(trainingId) {
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
/** 清空步骤 */
|
||||
export function clearTrainingStep(trainingId) {
|
||||
/** 清空重置实训 */
|
||||
export function clearDesignTraining(trainingId, group) {
|
||||
return request({
|
||||
url: `/api/v2/draft/training/${trainingId}/step/clear`,
|
||||
url: `/api/v2/draft/training/${group}/reset/${trainingId}`,
|
||||
method: 'delete'
|
||||
});
|
||||
}
|
||||
/** 导出实训数据 */
|
||||
export function exportTrainingData(data) {
|
||||
return request({
|
||||
url: `/api/v2/training/published/export`,
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
/** 导入实训数据 */
|
||||
export function importTrainingData(data) {
|
||||
return request({
|
||||
url: `/api/v2/training/published/import`,
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
/** 实训跳转到当前步骤*/
|
||||
export function jumpToTraining(group, stepId) {
|
||||
return request({
|
||||
url: `/api/training2Simulation/${group}/jumpTo/${stepId}`,
|
||||
method: 'put'
|
||||
});
|
||||
}
|
||||
|
@ -75,4 +75,129 @@ export function getSubSystemByProjectCode() {
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
/** 创建地图系统 */
|
||||
export function createMapFunction(data) {
|
||||
return request({
|
||||
url: `/api/mapFunction`,
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
/** 列表查询地图系统 */
|
||||
export function queryMapFunctionList(params) {
|
||||
return request({
|
||||
url: `/api/mapFunction/list`,
|
||||
method: 'get',
|
||||
params
|
||||
});
|
||||
}
|
||||
/** 更新地图系统 */
|
||||
export function updateMapFunction(data) {
|
||||
return request({
|
||||
url: `/api/mapFunction/${data.id}`,
|
||||
method: 'put',
|
||||
data
|
||||
});
|
||||
}
|
||||
/** 删除地图系统 */
|
||||
export function deleteMapFunction(id) {
|
||||
return request({
|
||||
url: `/api/mapFunction/${id}`,
|
||||
method: 'delete'
|
||||
});
|
||||
}
|
||||
/** 分页查询地图系统 */
|
||||
export function queryMapFunctionPaged(params) {
|
||||
return request({
|
||||
url: `/api/mapFunction/paged`,
|
||||
method: 'get',
|
||||
params
|
||||
});
|
||||
}
|
||||
/** 生成地图子系统 */
|
||||
export function generateMapFunctionNew(mapId, data) {
|
||||
return request({
|
||||
url: `/api/mapFunction/${mapId}/generate`,
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
/** 根据id查询地图系统 */
|
||||
export function getMapFunctioById(id) {
|
||||
return request({
|
||||
url: `/api/mapFunction/${id}`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
||||
/** 一键删除地图下所有线路功能 */
|
||||
export function deleteAllMapFunction(mapId) {
|
||||
return request({
|
||||
url: `/api/mapFunction/batch/${mapId}`,
|
||||
method: 'delete'
|
||||
});
|
||||
}
|
||||
/** 新增分组 */
|
||||
export function updateMapFunctionSubset(data) {
|
||||
return request({
|
||||
url: `/api/mapFunction/group`,
|
||||
method: 'put',
|
||||
data
|
||||
});
|
||||
}
|
||||
/** 根据模板生成地图功能 */
|
||||
export function generateMapFunctionByTemplate(data) {
|
||||
return request({
|
||||
url: `/api/mapFunction/generate/from/template`,
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
/** 创建模板线路功能 */
|
||||
export function createTemplateMapFunction(data) {
|
||||
return request({
|
||||
url: `/api/mapFunction/template`,
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
/** 修改模板线路功能 */
|
||||
export function updateTemplateMapFunction(data) {
|
||||
return request({
|
||||
url: `/api/mapFunction/template/${data.id}`,
|
||||
method: 'put',
|
||||
data
|
||||
});
|
||||
}
|
||||
/** 删除模板线路功能 */
|
||||
export function deleteTemplateMapFunction(id) {
|
||||
return request({
|
||||
url: `/api/mapFunction/template/${id}`,
|
||||
method: 'delete'
|
||||
});
|
||||
}
|
||||
/** 查询模板线路功能列表 */
|
||||
export function queryTemplateMapFunctionList(params) {
|
||||
return request({
|
||||
url: `/api/mapFunction/template/list`,
|
||||
method: 'get',
|
||||
params
|
||||
});
|
||||
}
|
||||
/** 分页查询模板线路功能列表 */
|
||||
export function queryTemplateMapFunPaged(params) {
|
||||
return request({
|
||||
url: `/api/mapFunction/template/paged`,
|
||||
method: 'get',
|
||||
params
|
||||
});
|
||||
}
|
||||
/** 线路功能覆盖生成(主要用于客户端重新生成后线路功能里客户端重新匹配) */
|
||||
export function generateMapFun(data) {
|
||||
return request({
|
||||
url: `/api/mapFunction/generate/mapIds`,
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
35
src/api/userRulesManage.js
Normal file
@ -0,0 +1,35 @@
|
||||
|
||||
import request from '@/utils/request';
|
||||
|
||||
/** 设置权限失效或有效*/
|
||||
export function setPermissonInValid(subjectId) {
|
||||
return request({
|
||||
url: `/api/v2/permission/subject/inValid/${subjectId}`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
||||
/** 用户权限列表*/
|
||||
export function listPermision(params) {
|
||||
return request({
|
||||
url: `/api/v2/permission/subject/page`,
|
||||
method: 'get',
|
||||
params: params
|
||||
});
|
||||
}
|
||||
|
||||
/** 查看用户分发的下级所有用户权限*/
|
||||
export function getPermissonInDistribute(subjectId) {
|
||||
return request({
|
||||
url: `/api/v2/permission/subject/distribute/${subjectId}`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
||||
/** 查看当前mapId 下用户的所有权限及功能*/
|
||||
export function getMapIdPermisson(mapId) {
|
||||
return request({
|
||||
url: `/api/v2/permission/subject/permission/${mapId}`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
BIN
src/assets/bg_pis.png
Normal file
After Width: | Height: | Size: 37 KiB |
BIN
src/assets/bg_tms.png
Normal file
After Width: | Height: | Size: 130 KiB |
BIN
src/assets/icon/favicon_jjjlm.png
Normal file
After Width: | Height: | Size: 154 KiB |
BIN
src/assets/icon/favicon_yjddzh.png
Normal file
After Width: | Height: | Size: 98 KiB |
BIN
src/assets/icon/icon_zonghe.png
Normal file
After Width: | Height: | Size: 6.3 KiB |
Before Width: | Height: | Size: 1.3 MiB After Width: | Height: | Size: 1.5 MiB |
BIN
src/assets/reset.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
src/assets/sim_id.jpg
Normal file
After Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 709 B |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 1.7 KiB |
@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div class="container">
|
||||
<li v-if="option.children && option.children.length" class="menu-item" :class="popClass" @mouseenter="enter($vnode.key)" @mouseleave="leave">
|
||||
<li v-if="option.children && option.children.length && checkVisible(option)" class="menu-item" :class="popClass" @mouseenter="enter($vnode.key)" @mouseleave="leave">
|
||||
<div ref="flexBox" class="flex-box">
|
||||
<el-button type="text" class="item" :disabled="checkDisabled(option)">
|
||||
<el-link v-if="option.tipsType" :type="option.tipsType" :underline="false">{{ option.label }}</el-link>
|
||||
@ -11,7 +11,7 @@
|
||||
<ul v-if="isPopup" ref="popup" class="menu" :style="{display: isShow? 'block': 'table', marginLeft: marginLeft+'px'}">
|
||||
<div class="menu-pop pop-menu">
|
||||
<div v-show="isShow" class="arrow el-icon-arrow-down" />
|
||||
<pop-menu-item v-for="(el, i) in option.children" :key="i" :option="el" :pop-class="popClass" :allowedColor="allowedColor" :disabledColor="disabledColor" @close="close" />
|
||||
<pop-menu-item v-for="(el, i) in option.children" :key="i" :option="el" :pop-class="popClass" :allowed-color="allowedColor" :disabled-color="disabledColor" @close="close" />
|
||||
<div v-show="isShow" class="arrow el-icon-arrow-up" />
|
||||
</div>
|
||||
</ul>
|
||||
@ -52,14 +52,14 @@ export default {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
disabledColor: {
|
||||
type: String,
|
||||
default: '#000',
|
||||
},
|
||||
allowedColor: {
|
||||
type: String,
|
||||
default: '#ccc'
|
||||
}
|
||||
disabledColor: {
|
||||
type: String,
|
||||
default: '#000'
|
||||
},
|
||||
allowedColor: {
|
||||
type: String,
|
||||
default: '#ccc'
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
|
@ -303,7 +303,9 @@ export default {
|
||||
methods: {
|
||||
// 获取默认查询参数
|
||||
initQueryModel() {
|
||||
this.formModel = localStore.get(this.$route.path) || this.formModel;
|
||||
if (!this.queryForm.notRecord) {
|
||||
this.formModel = localStore.get(this.$route.path) || this.formModel;
|
||||
}
|
||||
this.buildForm();
|
||||
if (typeof this.queryForm.initLoadCallback === 'function') {
|
||||
this.queryForm.initLoadCallback(this.formModel);
|
||||
@ -350,7 +352,6 @@ export default {
|
||||
// 构建查询表单对象、显示的查询对象
|
||||
const queryObject = {};
|
||||
const model = {};
|
||||
// debugger;
|
||||
for (const item in this.queryForm.queryObject) {
|
||||
if (this.queryForm.queryObject.show === false) {
|
||||
continue;
|
||||
|
@ -93,7 +93,7 @@
|
||||
:sort-by="column.sortBy"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<div v-html="scope.row[column.prop]" />
|
||||
<div style="white-space: pre-wrap;" v-html="scope.row[column.prop]" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
@ -332,7 +332,6 @@ export default {
|
||||
methods: {
|
||||
handleEdit(row, column, index) {
|
||||
this.$set(row, 'isEdit', true);
|
||||
// console.log(this.$refs);
|
||||
// if (this.$refs.customerInput.length) {
|
||||
// this.$refs.customerInput[index].$el.querySelector('input').focus();
|
||||
// }
|
||||
|
@ -77,7 +77,7 @@ export default {
|
||||
size: 3,
|
||||
action: `${this.$store.state.user.uploadUrl}/api/upload/PICTURE?appId=00001&appSecret=joylink00001`,
|
||||
response: (res) => {
|
||||
return `${this.$store.state.user.resourcesUrl}${res.data}`;
|
||||
return `${this.$store.state.user.ossUrl}${res.data}`;
|
||||
},
|
||||
error: () => { that.$message.error('图片上传失败,请检查网络状态'); },
|
||||
sizeError: () => { that.$message.error('图片上传失败,图片大小限制3MB'); } // 图片超过大小的回调
|
||||
|
835
src/components/VCode/index.vue
Normal file
@ -0,0 +1,835 @@
|
||||
<template>
|
||||
<!-- 本体部分 -->
|
||||
<div
|
||||
:class="['vue-puzzle-vcode', { show_: show }]"
|
||||
@mousedown="onCloseMouseDown"
|
||||
@mouseup="onCloseMouseUp"
|
||||
@touchstart="onCloseMouseDown"
|
||||
@touchend="onCloseMouseUp"
|
||||
>
|
||||
<div
|
||||
class="vue-auth-box_"
|
||||
@mousedown.stop
|
||||
@touchstart.stop
|
||||
>
|
||||
<div
|
||||
class="auth-body_"
|
||||
:style="`height: ${canvasHeight}px`"
|
||||
>
|
||||
<!-- 主图,有缺口 -->
|
||||
<canvas
|
||||
ref="canvas1"
|
||||
:width="canvasWidth"
|
||||
:height="canvasHeight"
|
||||
:style="`width:${canvasWidth}px;height:${canvasHeight}px`"
|
||||
/>
|
||||
<!-- 成功后显示的完整图 -->
|
||||
<canvas
|
||||
ref="canvas3"
|
||||
:class="['auth-canvas3_', { show: isSuccess }]"
|
||||
:width="canvasWidth"
|
||||
:height="canvasHeight"
|
||||
:style="`width:${canvasWidth}px;height:${canvasHeight}px`"
|
||||
/>
|
||||
<!-- 小图 -->
|
||||
<canvas
|
||||
ref="canvas2"
|
||||
:width="puzzleBaseSize"
|
||||
class="auth-canvas2_"
|
||||
:height="canvasHeight"
|
||||
:style="
|
||||
`width:${puzzleBaseSize}px;height:${canvasHeight}px;transform:translateX(${styleWidth -
|
||||
sliderBaseSize -
|
||||
(puzzleBaseSize - sliderBaseSize) *
|
||||
((styleWidth - sliderBaseSize) /
|
||||
(canvasWidth - sliderBaseSize))}px)`
|
||||
"
|
||||
/>
|
||||
<div :class="['loading-box_', { hide_: !loading }]">
|
||||
<div class="loading-gif_">
|
||||
<span />
|
||||
<span />
|
||||
<span />
|
||||
<span />
|
||||
<span />
|
||||
</div>
|
||||
</div>
|
||||
<div :class="['info-box_', { show: infoBoxShow }, { fail: infoBoxFail }]">
|
||||
{{ infoText }}
|
||||
</div>
|
||||
<div
|
||||
:class="['flash_', { show: isSuccess }]"
|
||||
:style="
|
||||
`transform: translateX(${
|
||||
isSuccess
|
||||
? `${canvasWidth + canvasHeight * 0.578}px`
|
||||
: `-${canvasHeight * 0.578}px`
|
||||
}) skew(-30deg, 0);`
|
||||
"
|
||||
/>
|
||||
<img
|
||||
class="reset_"
|
||||
:src="resetSvg"
|
||||
@click="reset"
|
||||
>
|
||||
</div>
|
||||
<div class="auth-control_">
|
||||
<div
|
||||
class="range-box"
|
||||
:style="`height:${sliderBaseSize}px`"
|
||||
>
|
||||
<div class="range-text">{{ sliderText }}</div>
|
||||
<div
|
||||
ref="range-slider"
|
||||
class="range-slider"
|
||||
:style="`width:${styleWidth}px`"
|
||||
>
|
||||
<div
|
||||
:class="['range-btn', { isDown: mouseDown }]"
|
||||
:style="`width:${sliderBaseSize}px`"
|
||||
@mousedown="onRangeMouseDown($event)"
|
||||
@touchstart="onRangeMouseDown($event)"
|
||||
>
|
||||
<div />
|
||||
<div />
|
||||
<div />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import resetSvg from '@/assets/reset.png';
|
||||
export default {
|
||||
props: {
|
||||
canvasWidth: { type: Number, default: 310 }, // 主canvas的宽
|
||||
canvasHeight: { type: Number, default: 160 }, // 主canvas的高
|
||||
// 是否出现,由父级控制
|
||||
show: { type: Boolean, default: false },
|
||||
puzzleScale: { type: Number, default: 1 }, // 拼图块的大小缩放比例
|
||||
sliderSize: { type: Number, default: 50 }, // 滑块的大小
|
||||
range: { type: Number, default: 10 }, // 允许的偏差值
|
||||
// 所有的背景图片
|
||||
imgs: {
|
||||
type: Array,
|
||||
default() {
|
||||
return [];
|
||||
}
|
||||
},
|
||||
successText: {
|
||||
type: String,
|
||||
default: '验证通过!'
|
||||
},
|
||||
failText: {
|
||||
type: String,
|
||||
default: '验证失败,请重试'
|
||||
},
|
||||
sliderText: {
|
||||
type: String,
|
||||
default: '拖动滑块完成拼图'
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
mouseDown: false, // 鼠标是否在按钮上按下
|
||||
startWidth: 50, // 鼠标点下去时父级的width
|
||||
startX: 0, // 鼠标按下时的X
|
||||
newX: 0, // 鼠标当前的偏移X
|
||||
pinX: 0, // 拼图的起始X
|
||||
pinY: 0, // 拼图的起始Y
|
||||
loading: false, // 是否正在加在中,主要是等图片onload
|
||||
isCanSlide: false, // 是否可以拉动滑动条
|
||||
error: false, // 图片加在失败会出现这个,提示用户手动刷新
|
||||
infoBoxShow: false, // 提示信息是否出现
|
||||
infoText: '', // 提示等信息
|
||||
infoBoxFail: false, // 是否验证失败
|
||||
timer1: null, // setTimout1
|
||||
closeDown: false, // 为了解决Mac上的click BUG
|
||||
isSuccess: false, // 验证成功
|
||||
imgIndex: -1, // 用于自定义图片时不会随机到重复的图片
|
||||
isSubmting: false, // 是否正在判定,主要用于判定中不能点击重置按钮
|
||||
resetSvg
|
||||
};
|
||||
},
|
||||
/** 计算属性 **/
|
||||
computed: {
|
||||
// styleWidth是底部用户操作的滑块的父级,就是轨道在鼠标的作用下应该具有的宽度
|
||||
styleWidth() {
|
||||
const w = this.startWidth + this.newX - this.startX;
|
||||
return w < this.sliderBaseSize
|
||||
? this.sliderBaseSize
|
||||
: w > this.canvasWidth
|
||||
? this.canvasWidth
|
||||
: w;
|
||||
},
|
||||
// 图中拼图块的60 * 用户设定的缩放比例计算之后的值 0.2~2
|
||||
puzzleBaseSize() {
|
||||
return Math.round(
|
||||
Math.max(Math.min(this.puzzleScale, 2), 0.2) * 52.5 + 6
|
||||
);
|
||||
},
|
||||
// 处理一下sliderSize,弄成整数,以免计算有偏差
|
||||
sliderBaseSize() {
|
||||
return Math.max(
|
||||
Math.min(
|
||||
Math.round(this.sliderSize),
|
||||
Math.round(this.canvasWidth * 0.5)
|
||||
),
|
||||
10
|
||||
);
|
||||
}
|
||||
},
|
||||
/** 监听 **/
|
||||
watch: {
|
||||
show(newV) {
|
||||
// 每次出现都应该重新初始化
|
||||
if (newV) {
|
||||
// document.body.classList.add('vue-puzzle-overflow');
|
||||
this.reset();
|
||||
} else {
|
||||
this.isSubmting = false;
|
||||
this.isSuccess = false;
|
||||
this.infoBoxShow = false;
|
||||
// document.body.classList.remove('vue-puzzle-overflow');
|
||||
}
|
||||
}
|
||||
},
|
||||
/** 生命周期 **/
|
||||
mounted() {
|
||||
// document.body.appendChild(this.$el);
|
||||
document.addEventListener('mousemove', this.onRangeMouseMove, false);
|
||||
document.addEventListener('mouseup', this.onRangeMouseUp, false);
|
||||
document.addEventListener('touchmove', this.onRangeMouseMove, {
|
||||
passive: false
|
||||
});
|
||||
document.addEventListener('touchend', this.onRangeMouseUp, false);
|
||||
if (this.show) {
|
||||
document.body.classList.add('vue-puzzle-overflow');
|
||||
this.reset();
|
||||
}
|
||||
},
|
||||
beforeDestroy() {
|
||||
clearTimeout(this.timer1);
|
||||
// document.body.removeChild(this.$el);
|
||||
document.removeEventListener('mousemove', this.onRangeMouseMove, false);
|
||||
document.removeEventListener('mouseup', this.onRangeMouseUp, false);
|
||||
document.removeEventListener('touchmove', this.onRangeMouseMove, {
|
||||
passive: false
|
||||
});
|
||||
document.removeEventListener('touchend', this.onRangeMouseUp, false);
|
||||
},
|
||||
/** 方法 **/
|
||||
methods: {
|
||||
// 关闭
|
||||
onClose() {
|
||||
if (!this.mouseDown && !this.isSubmting) {
|
||||
clearTimeout(this.timer1);
|
||||
this.$emit('close');
|
||||
}
|
||||
},
|
||||
onCloseMouseDown() {
|
||||
this.closeDown = true;
|
||||
},
|
||||
onCloseMouseUp() {
|
||||
if (this.closeDown) {
|
||||
this.onClose();
|
||||
}
|
||||
this.closeDown = false;
|
||||
},
|
||||
// 鼠标按下准备拖动
|
||||
onRangeMouseDown(e) {
|
||||
if (this.isCanSlide) {
|
||||
this.mouseDown = true;
|
||||
this.startWidth = this.$refs['range-slider'].clientWidth;
|
||||
this.newX = e.clientX || e.changedTouches[0].clientX;
|
||||
this.startX = e.clientX || e.changedTouches[0].clientX;
|
||||
}
|
||||
},
|
||||
// 鼠标移动
|
||||
onRangeMouseMove(e) {
|
||||
if (this.mouseDown) {
|
||||
e.preventDefault();
|
||||
this.newX = e.clientX || e.changedTouches[0].clientX;
|
||||
}
|
||||
},
|
||||
// 鼠标抬起
|
||||
onRangeMouseUp() {
|
||||
if (this.mouseDown) {
|
||||
this.mouseDown = false;
|
||||
this.submit();
|
||||
}
|
||||
},
|
||||
/**
|
||||
* 开始进行
|
||||
* @param withCanvas 是否强制使用canvas随机作图
|
||||
*/
|
||||
init(withCanvas) {
|
||||
// 防止重复加载导致的渲染错误
|
||||
if (this.loading && !withCanvas) {
|
||||
return;
|
||||
}
|
||||
this.loading = true;
|
||||
this.isCanSlide = false;
|
||||
const c = this.$refs.canvas1;
|
||||
const c2 = this.$refs.canvas2;
|
||||
const c3 = this.$refs.canvas3;
|
||||
const ctx = c.getContext('2d');
|
||||
const ctx2 = c2.getContext('2d');
|
||||
const ctx3 = c3.getContext('2d');
|
||||
const isFirefox = navigator.userAgent.indexOf('Firefox') >= 0 && navigator.userAgent.indexOf('Windows') >= 0; // 是windows版火狐
|
||||
const img = document.createElement('img');
|
||||
ctx.fillStyle = 'rgba(255,255,255,1)';
|
||||
ctx3.fillStyle = 'rgba(255,255,255,1)';
|
||||
ctx.clearRect(0, 0, this.canvasWidth, this.canvasHeight);
|
||||
ctx2.clearRect(0, 0, this.canvasWidth, this.canvasHeight);
|
||||
// 取一个随机坐标,作为拼图块的位置
|
||||
this.pinX = this.getRandom(this.puzzleBaseSize, this.canvasWidth - this.puzzleBaseSize - 20); // 留20的边距
|
||||
this.pinY = this.getRandom(20, this.canvasHeight - this.puzzleBaseSize - 20); // 主图高度 - 拼图块自身高度 - 20边距
|
||||
img.crossOrigin = 'anonymous'; // 匿名,想要获取跨域的图片
|
||||
img.onload = () => {
|
||||
const [x, y, w, h] = this.makeImgSize(img);
|
||||
ctx.save();
|
||||
// 先画小图
|
||||
this.paintBrick(ctx);
|
||||
ctx.closePath();
|
||||
if (!isFirefox) {
|
||||
ctx.shadowOffsetX = 0;
|
||||
ctx.shadowOffsetY = 0;
|
||||
ctx.shadowColor = '#000';
|
||||
ctx.shadowBlur = 3;
|
||||
ctx.fill();
|
||||
ctx.clip();
|
||||
} else {
|
||||
ctx.clip();
|
||||
ctx.save();
|
||||
ctx.shadowOffsetX = 0;
|
||||
ctx.shadowOffsetY = 0;
|
||||
ctx.shadowColor = '#000';
|
||||
ctx.shadowBlur = 3;
|
||||
ctx.fill();
|
||||
ctx.restore();
|
||||
}
|
||||
ctx.drawImage(img, x, y, w, h);
|
||||
ctx3.fillRect(0, 0, this.canvasWidth, this.canvasHeight);
|
||||
ctx3.drawImage(img, x, y, w, h);
|
||||
// 设置小图的内阴影
|
||||
ctx.globalCompositeOperation = 'source-atop';
|
||||
this.paintBrick(ctx);
|
||||
ctx.arc(
|
||||
this.pinX + Math.ceil(this.puzzleBaseSize / 2),
|
||||
this.pinY + Math.ceil(this.puzzleBaseSize / 2),
|
||||
this.puzzleBaseSize * 1.2,
|
||||
0,
|
||||
Math.PI * 2,
|
||||
true
|
||||
);
|
||||
ctx.closePath();
|
||||
ctx.shadowColor = 'rgba(255, 255, 255, .8)';
|
||||
ctx.shadowOffsetX = -1;
|
||||
ctx.shadowOffsetY = -1;
|
||||
ctx.shadowBlur = Math.min(Math.ceil(8 * this.puzzleScale), 12);
|
||||
ctx.fillStyle = '#ffffaa';
|
||||
ctx.fill();
|
||||
// 将小图赋值给ctx2
|
||||
const imgData = ctx.getImageData(
|
||||
this.pinX - 3, // 为了阴影 是从-3px开始截取,判定的时候要+3px
|
||||
this.pinY - 20,
|
||||
this.pinX + this.puzzleBaseSize + 5,
|
||||
this.pinY + this.puzzleBaseSize + 5
|
||||
);
|
||||
ctx2.putImageData(imgData, 0, this.pinY - 20);
|
||||
|
||||
// ctx2.drawImage(c, this.pinX - 3,this.pinY - 20,this.pinX + this.puzzleBaseSize + 5,this.pinY + this.puzzleBaseSize + 5,
|
||||
// 0, this.pinY - 20, this.pinX + this.puzzleBaseSize + 5, this.pinY + this.puzzleBaseSize + 5);
|
||||
// 清理
|
||||
ctx.restore();
|
||||
ctx.clearRect(0, 0, this.canvasWidth, this.canvasHeight);
|
||||
// 画缺口
|
||||
ctx.save();
|
||||
this.paintBrick(ctx);
|
||||
ctx.globalAlpha = 0.8;
|
||||
ctx.fillStyle = '#ffffff';
|
||||
ctx.fill();
|
||||
ctx.restore();
|
||||
// 画缺口的内阴影
|
||||
ctx.save();
|
||||
ctx.globalCompositeOperation = 'source-atop';
|
||||
this.paintBrick(ctx);
|
||||
ctx.arc(
|
||||
this.pinX + Math.ceil(this.puzzleBaseSize / 2),
|
||||
this.pinY + Math.ceil(this.puzzleBaseSize / 2),
|
||||
this.puzzleBaseSize * 1.2,
|
||||
0,
|
||||
Math.PI * 2,
|
||||
true
|
||||
);
|
||||
ctx.shadowColor = '#000';
|
||||
ctx.shadowOffsetX = 2;
|
||||
ctx.shadowOffsetY = 2;
|
||||
ctx.shadowBlur = 16;
|
||||
ctx.fill();
|
||||
ctx.restore();
|
||||
// 画整体背景图
|
||||
ctx.save();
|
||||
ctx.globalCompositeOperation = 'destination-over';
|
||||
ctx.drawImage(img, x, y, w, h);
|
||||
ctx.restore();
|
||||
this.loading = false;
|
||||
this.isCanSlide = true;
|
||||
};
|
||||
img.onerror = () => {
|
||||
this.init(true); // 如果图片加载错误就重新来,并强制用canvas随机作图
|
||||
};
|
||||
if (!withCanvas && this.imgs && this.imgs.length) {
|
||||
let randomNum = this.getRandom(0, this.imgs.length - 1);
|
||||
if (randomNum === this.imgIndex) {
|
||||
if (randomNum === this.imgs.length - 1) {
|
||||
randomNum = 0;
|
||||
} else {
|
||||
randomNum++;
|
||||
}
|
||||
}
|
||||
this.imgIndex = randomNum;
|
||||
img.src = this.imgs[randomNum];
|
||||
} else {
|
||||
img.src = this.makeImgWithCanvas();
|
||||
}
|
||||
},
|
||||
// 工具 - 范围随机数
|
||||
getRandom(min, max) {
|
||||
return Math.ceil(Math.random() * (max - min) + min);
|
||||
},
|
||||
// 工具 - 设置图片尺寸cover方式贴合canvas尺寸 w/h
|
||||
makeImgSize(img) {
|
||||
const imgScale = img.width / img.height;
|
||||
const canvasScale = this.canvasWidth / this.canvasHeight;
|
||||
let x = 0;
|
||||
let y = 0;
|
||||
let w = 0;
|
||||
let h = 0;
|
||||
if (imgScale > canvasScale) {
|
||||
h = this.canvasHeight;
|
||||
w = imgScale * h;
|
||||
y = 0;
|
||||
x = (this.canvasWidth - w) / 2;
|
||||
} else {
|
||||
w = this.canvasWidth;
|
||||
h = w / imgScale;
|
||||
x = 0;
|
||||
y = (this.canvasHeight - h) / 2;
|
||||
}
|
||||
return [x, y, w, h];
|
||||
},
|
||||
// 绘制拼图块的路径
|
||||
paintBrick(ctx) {
|
||||
const moveL = Math.ceil(15 * this.puzzleScale); // 直线移动的基础距离
|
||||
ctx.beginPath();
|
||||
ctx.moveTo(this.pinX, this.pinY);
|
||||
ctx.lineTo(this.pinX + moveL, this.pinY);
|
||||
ctx.arcTo(
|
||||
this.pinX + moveL,
|
||||
this.pinY - moveL / 2,
|
||||
this.pinX + moveL + moveL / 2,
|
||||
this.pinY - moveL / 2,
|
||||
moveL / 2
|
||||
);
|
||||
ctx.arcTo(
|
||||
this.pinX + moveL + moveL,
|
||||
this.pinY - moveL / 2,
|
||||
this.pinX + moveL + moveL,
|
||||
this.pinY,
|
||||
moveL / 2
|
||||
);
|
||||
ctx.lineTo(this.pinX + moveL + moveL + moveL, this.pinY);
|
||||
ctx.lineTo(this.pinX + moveL + moveL + moveL, this.pinY + moveL);
|
||||
ctx.arcTo(
|
||||
this.pinX + moveL + moveL + moveL + moveL / 2,
|
||||
this.pinY + moveL,
|
||||
this.pinX + moveL + moveL + moveL + moveL / 2,
|
||||
this.pinY + moveL + moveL / 2,
|
||||
moveL / 2
|
||||
);
|
||||
ctx.arcTo(
|
||||
this.pinX + moveL + moveL + moveL + moveL / 2,
|
||||
this.pinY + moveL + moveL,
|
||||
this.pinX + moveL + moveL + moveL,
|
||||
this.pinY + moveL + moveL,
|
||||
moveL / 2
|
||||
);
|
||||
ctx.lineTo(
|
||||
this.pinX + moveL + moveL + moveL,
|
||||
this.pinY + moveL + moveL + moveL
|
||||
);
|
||||
ctx.lineTo(this.pinX, this.pinY + moveL + moveL + moveL);
|
||||
ctx.lineTo(this.pinX, this.pinY + moveL + moveL);
|
||||
ctx.arcTo(
|
||||
this.pinX + moveL / 2,
|
||||
this.pinY + moveL + moveL,
|
||||
this.pinX + moveL / 2,
|
||||
this.pinY + moveL + moveL / 2,
|
||||
moveL / 2
|
||||
);
|
||||
ctx.arcTo(
|
||||
this.pinX + moveL / 2,
|
||||
this.pinY + moveL,
|
||||
this.pinX,
|
||||
this.pinY + moveL,
|
||||
moveL / 2
|
||||
);
|
||||
ctx.lineTo(this.pinX, this.pinY);
|
||||
},
|
||||
// 用canvas随机生成图片
|
||||
makeImgWithCanvas() {
|
||||
const canvas = document.createElement('canvas');
|
||||
const ctx = canvas.getContext('2d');
|
||||
canvas.width = this.canvasWidth;
|
||||
canvas.height = this.canvasHeight;
|
||||
ctx.fillStyle = `rgb(${this.getRandom(100, 255)},${this.getRandom(
|
||||
100,
|
||||
255
|
||||
)},${this.getRandom(100, 255)})`;
|
||||
ctx.fillRect(0, 0, this.canvasWidth, this.canvasHeight);
|
||||
// 随机画10个图形
|
||||
for (let i = 0; i < 12; i++) {
|
||||
ctx.fillStyle = `rgb(${this.getRandom(100, 255)},${this.getRandom(
|
||||
100,
|
||||
255
|
||||
)},${this.getRandom(100, 255)})`;
|
||||
ctx.strokeStyle = `rgb(${this.getRandom(100, 255)},${this.getRandom(
|
||||
100,
|
||||
255
|
||||
)},${this.getRandom(100, 255)})`;
|
||||
if (this.getRandom(0, 2) > 1) {
|
||||
// 矩形
|
||||
ctx.save();
|
||||
ctx.rotate((this.getRandom(-90, 90) * Math.PI) / 180);
|
||||
ctx.fillRect(
|
||||
this.getRandom(-20, canvas.width - 20),
|
||||
this.getRandom(-20, canvas.height - 20),
|
||||
this.getRandom(10, canvas.width / 2 + 10),
|
||||
this.getRandom(10, canvas.height / 2 + 10)
|
||||
);
|
||||
ctx.restore();
|
||||
} else {
|
||||
// 圆
|
||||
ctx.beginPath();
|
||||
const ran = this.getRandom(-Math.PI, Math.PI);
|
||||
ctx.arc(
|
||||
this.getRandom(0, canvas.width),
|
||||
this.getRandom(0, canvas.height),
|
||||
this.getRandom(10, canvas.height / 2 + 10),
|
||||
ran,
|
||||
ran + Math.PI * 1.5
|
||||
);
|
||||
ctx.closePath();
|
||||
ctx.fill();
|
||||
}
|
||||
}
|
||||
return canvas.toDataURL('image/png');
|
||||
},
|
||||
// 开始判定
|
||||
submit() {
|
||||
this.isSubmting = true;
|
||||
// 偏差 x = puzzle的起始X - (用户真滑动的距离) + (puzzle的宽度 - 滑块的宽度) * (用户真滑动的距离/canvas总宽度)
|
||||
// 最后+ 的是补上slider和滑块宽度不一致造成的缝隙
|
||||
const x = Math.abs(
|
||||
this.pinX -
|
||||
(this.styleWidth - this.sliderBaseSize) +
|
||||
(this.puzzleBaseSize - this.sliderBaseSize) *
|
||||
((this.styleWidth - this.sliderBaseSize) /
|
||||
(this.canvasWidth - this.sliderBaseSize)) -
|
||||
3
|
||||
);
|
||||
if (x < this.range) {
|
||||
// 成功
|
||||
this.infoText = this.successText;
|
||||
this.infoBoxFail = false;
|
||||
this.infoBoxShow = true;
|
||||
this.isCanSlide = false;
|
||||
this.isSuccess = true;
|
||||
// 成功后准备关闭
|
||||
clearTimeout(this.timer1);
|
||||
this.timer1 = setTimeout(() => {
|
||||
// 成功的回调
|
||||
this.isSubmting = false;
|
||||
this.$emit('success', x);
|
||||
}, 800);
|
||||
} else {
|
||||
// 失败
|
||||
this.infoText = this.failText;
|
||||
this.infoBoxFail = true;
|
||||
this.infoBoxShow = true;
|
||||
this.isCanSlide = false;
|
||||
// 失败的回调
|
||||
this.$emit('fail', x);
|
||||
// 800ms后重置
|
||||
clearTimeout(this.timer1);
|
||||
this.timer1 = setTimeout(() => {
|
||||
this.isSubmting = false;
|
||||
this.reset();
|
||||
}, 800);
|
||||
}
|
||||
},
|
||||
// 重置 - 重新设置初始状态
|
||||
resetState() {
|
||||
this.infoBoxFail = false;
|
||||
this.infoBoxShow = false;
|
||||
this.isCanSlide = false;
|
||||
this.isSuccess = false;
|
||||
this.startWidth = this.sliderBaseSize; // 鼠标点下去时父级的width
|
||||
this.startX = 0; // 鼠标按下时的X
|
||||
this.newX = 0; // 鼠标当前的偏移X
|
||||
},
|
||||
// 重置
|
||||
reset() {
|
||||
if (this.isSubmting) {
|
||||
return;
|
||||
}
|
||||
this.resetState();
|
||||
this.init();
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style lang="scss">
|
||||
.vue-puzzle-vcode {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
background-color: rgba(0, 0, 0, 0.3);
|
||||
z-index: 999;
|
||||
opacity: 0;
|
||||
pointer-events: none;
|
||||
transition: opacity 200ms;
|
||||
&.show_ {
|
||||
opacity: 1;
|
||||
pointer-events: auto;
|
||||
}
|
||||
}
|
||||
.vue-auth-box_ {
|
||||
position: absolute;
|
||||
top: 47%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
padding: 20px;
|
||||
background: #fff;
|
||||
user-select: none;
|
||||
border-radius: 3px;
|
||||
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
|
||||
.auth-body_ {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
border-radius: 3px;
|
||||
.loading-box_ {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
background-color: rgba(0, 0, 0, 0.8);
|
||||
z-index: 20;
|
||||
opacity: 1;
|
||||
transition: opacity 200ms;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
&.hide_ {
|
||||
opacity: 0;
|
||||
pointer-events: none;
|
||||
.loading-gif_ {
|
||||
span {
|
||||
animation-play-state: paused;
|
||||
}
|
||||
}
|
||||
}
|
||||
.loading-gif_ {
|
||||
flex: none;
|
||||
height: 5px;
|
||||
line-height: 0;
|
||||
@keyframes load {
|
||||
0% {
|
||||
opacity: 1;
|
||||
transform: scale(1.3);
|
||||
}
|
||||
100% {
|
||||
opacity: 0.2;
|
||||
transform: scale(0.3);
|
||||
}
|
||||
}
|
||||
span {
|
||||
display: inline-block;
|
||||
width: 5px;
|
||||
height: 100%;
|
||||
margin-left: 2px;
|
||||
border-radius: 50%;
|
||||
background-color: #888;
|
||||
animation: load 1.04s ease infinite;
|
||||
&:nth-child(1) {
|
||||
margin-left: 0;
|
||||
}
|
||||
&:nth-child(2) {
|
||||
animation-delay: 0.13s;
|
||||
}
|
||||
&:nth-child(3) {
|
||||
animation-delay: 0.26s;
|
||||
}
|
||||
&:nth-child(4) {
|
||||
animation-delay: 0.39s;
|
||||
}
|
||||
&:nth-child(5) {
|
||||
animation-delay: 0.52s;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.info-box_ {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 24px;
|
||||
line-height: 24px;
|
||||
text-align: center;
|
||||
overflow: hidden;
|
||||
font-size: 13px;
|
||||
background-color: #83ce3f;
|
||||
opacity: 0;
|
||||
transform: translateY(24px);
|
||||
transition: all 200ms;
|
||||
color: #fff;
|
||||
z-index: 10;
|
||||
&.show {
|
||||
opacity: 0.95;
|
||||
transform: translateY(0);
|
||||
}
|
||||
&.fail {
|
||||
background-color: #ce594b;
|
||||
}
|
||||
}
|
||||
.auth-canvas2_ {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 60px;
|
||||
height: 100%;
|
||||
z-index: 2;
|
||||
}
|
||||
.auth-canvas3_ {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
opacity: 0;
|
||||
transition: opacity 600ms;
|
||||
z-index: 3;
|
||||
&.show {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
.flash_ {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 30px;
|
||||
height: 100%;
|
||||
background-color: rgba(255, 255, 255, 0.1);
|
||||
z-index: 3;
|
||||
&.show {
|
||||
transition: transform 600ms;
|
||||
}
|
||||
}
|
||||
.reset_ {
|
||||
position: absolute;
|
||||
top: 2px;
|
||||
right: 2px;
|
||||
width: 35px;
|
||||
height: auto;
|
||||
z-index: 12;
|
||||
cursor: pointer;
|
||||
transition: transform 200ms;
|
||||
transform: rotate(0deg);
|
||||
&:hover {
|
||||
transform: rotate(-90deg);
|
||||
}
|
||||
}
|
||||
}
|
||||
.auth-control_ {
|
||||
.range-box {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
background-color: #eef1f8;
|
||||
margin-top: 20px;
|
||||
border-radius: 3px;
|
||||
box-shadow: 0 0 8px rgba(240, 240, 240, 0.6) inset;
|
||||
.range-text {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
font-size: 14px;
|
||||
color: #b7bcd1;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
text-align: center;
|
||||
width: 100%;
|
||||
}
|
||||
.range-slider {
|
||||
position: absolute;
|
||||
height: 100%;
|
||||
width: 50px;
|
||||
background-color: rgba(106, 160, 255, 0.8);
|
||||
border-radius: 3px;
|
||||
.range-btn {
|
||||
position: absolute;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
right: 0;
|
||||
width: 50px;
|
||||
height: 100%;
|
||||
background-color: #fff;
|
||||
border-radius: 3px;
|
||||
box-shadow: 0 0 4px #ccc;
|
||||
cursor: pointer;
|
||||
& > div {
|
||||
width: 0;
|
||||
height: 40%;
|
||||
transition: all 200ms;
|
||||
&:nth-child(2) {
|
||||
margin: 0 4px;
|
||||
}
|
||||
border: solid 1px #6aa0ff;
|
||||
}
|
||||
&:hover,
|
||||
&.isDown {
|
||||
& > div:first-child {
|
||||
border: solid 4px transparent;
|
||||
height: 0;
|
||||
border-right-color: #6aa0ff;
|
||||
}
|
||||
& > div:nth-child(2) {
|
||||
border-width: 3px;
|
||||
height: 0;
|
||||
border-radius: 3px;
|
||||
margin: 0 6px;
|
||||
border-right-color: #6aa0ff;
|
||||
}
|
||||
& > div:nth-child(3) {
|
||||
border: solid 4px transparent;
|
||||
height: 0;
|
||||
border-left-color: #6aa0ff;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.vue-puzzle-overflow {
|
||||
overflow: hidden !important;
|
||||
}
|
||||
</style>
|
8
src/directive/verticalDrag/index.js
Normal file
@ -0,0 +1,8 @@
|
||||
import Vue from 'vue';
|
||||
import install from './verticalDrag';
|
||||
|
||||
const verticalDrag = function(Vue) {
|
||||
Vue.directive('verticalDrag', install);
|
||||
};
|
||||
|
||||
Vue.use(verticalDrag);
|
101
src/directive/verticalDrag/verticalDrag.js
Normal file
@ -0,0 +1,101 @@
|
||||
/* 垂直拖拽 */
|
||||
export default {
|
||||
bind(el) {
|
||||
const dialogHeaderEl = el.querySelector('.verticalDrag__header');
|
||||
const dialogFooterEl = el.querySelector('.verticalDrag__footer');
|
||||
const dragDom = el;
|
||||
dialogHeaderEl.style.cursor = 'move';
|
||||
dialogFooterEl.style.cursor = 'move';
|
||||
const vD = 5;
|
||||
|
||||
/** 获取原有属性 ie dom元素.currentStyle 火狐谷歌 window.getComputedStyle(dom元素, null);*/
|
||||
const sty = dragDom.currentStyle || window.getComputedStyle(dragDom, null);
|
||||
|
||||
dialogHeaderEl.onmousedown = (e) => {
|
||||
e.stopPropagation();
|
||||
/** 鼠标按下,计算当前元素距离可视区的距离*/
|
||||
const disY = e.clientY;
|
||||
const oY = dialogHeaderEl.offsetHeight;
|
||||
const bY = dragDom.offsetHeight;
|
||||
|
||||
/** 获取到的值带px 正则匹配替换*/
|
||||
let styT;
|
||||
|
||||
/** 注意在ie中 第一次获取到的值为组件自带50% 移动之后赋值为px*/
|
||||
if (sty.top.includes('%')) {
|
||||
styT = +document.body.clientHeight * (+sty.top.replace(/\%/g, '') / 100);
|
||||
} else {
|
||||
styT = +sty.top.replace(/\px/g, '');
|
||||
}
|
||||
|
||||
document.onmousemove = function (e) {
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
let cY = e.clientY;
|
||||
if (cY < oY + vD) {
|
||||
cY = oY + vD;
|
||||
}
|
||||
if (cY > document.body.clientHeight - bY - vD) {
|
||||
cY = document.body.clientHeight - bY - vD;
|
||||
}
|
||||
/** 通过事件委托,计算移动的距离*/
|
||||
const t = cY - disY;
|
||||
|
||||
/** 移动当前元素*/
|
||||
dragDom.style.top = `${t + styT}px`;
|
||||
|
||||
/** 将此时的位置传出去*/
|
||||
// binding.value({ x: e.pageX, y: e.pageY });
|
||||
};
|
||||
|
||||
document.onmouseup = function () {
|
||||
e.stopPropagation();
|
||||
document.onmousemove = null;
|
||||
document.onmouseup = null;
|
||||
};
|
||||
};
|
||||
dialogFooterEl.onmousedown = (e) => {
|
||||
e.stopPropagation();
|
||||
/** 鼠标按下,计算当前元素距离可视区的距离*/
|
||||
const disY = e.clientY;
|
||||
const oY = dialogFooterEl.offsetHeight;
|
||||
const bY = dragDom.offsetHeight;
|
||||
|
||||
/** 获取到的值带px 正则匹配替换*/
|
||||
let styT;
|
||||
|
||||
/** 注意在ie中 第一次获取到的值为组件自带50% 移动之后赋值为px*/
|
||||
if (sty.top.includes('%')) {
|
||||
styT = +document.body.clientHeight * (+sty.top.replace(/\%/g, '') / 100);
|
||||
} else {
|
||||
styT = +sty.top.replace(/\px/g, '');
|
||||
}
|
||||
|
||||
document.onmousemove = function (e) {
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
let cY = e.clientY;
|
||||
if (cY < bY + vD) {
|
||||
cY = bY + vD;
|
||||
}
|
||||
if (cY > document.body.clientHeight - oY - vD) {
|
||||
cY = document.body.clientHeight - oY - vD;
|
||||
}
|
||||
/** 通过事件委托,计算移动的距离*/
|
||||
const t = cY - disY;
|
||||
|
||||
/** 移动当前元素*/
|
||||
dragDom.style.top = `${t + styT}px`;
|
||||
|
||||
/** 将此时的位置传出去*/
|
||||
// binding.value({ x: e.pageX, y: e.pageY });
|
||||
};
|
||||
|
||||
document.onmouseup = function () {
|
||||
e.stopPropagation();
|
||||
document.onmousemove = null;
|
||||
document.onmouseup = null;
|
||||
};
|
||||
};
|
||||
}
|
||||
};
|
@ -29,6 +29,7 @@ import systemGenerate from './systemGenerate';
|
||||
import login from './login';
|
||||
import designPlatform from './designPlatform';
|
||||
import trainingManage from './trainingManage';
|
||||
import newRouter from './newRouter';
|
||||
|
||||
export default {
|
||||
enLocale,
|
||||
@ -61,5 +62,6 @@ export default {
|
||||
systemGenerate,
|
||||
login,
|
||||
designPlatform,
|
||||
trainingManage
|
||||
trainingManage,
|
||||
newRouter
|
||||
};
|
||||
|
@ -18,5 +18,7 @@ export default {
|
||||
getLoginQrCode: 'Failed to get login qr code, please refresh and try again',
|
||||
language: 'Language',
|
||||
clickSwitchLanguage: 'Click switch language',
|
||||
accountName: 'Account name'
|
||||
accountName: 'Account name',
|
||||
registerAccount: 'Register account',
|
||||
forgetPassword: 'Forget password?'
|
||||
};
|
||||
|
54
src/i18n/langs/en/newRouter.js
Normal file
@ -0,0 +1,54 @@
|
||||
export default {
|
||||
simulation: 'simulation',
|
||||
multiplayerSimulation: 'Many simulation',
|
||||
regulationSimulation: 'Regulation of the simulation',
|
||||
teachingManagement: 'teaching management',
|
||||
classroom: 'classroom management',
|
||||
student: 'student management',
|
||||
theory: 'The theory of management',
|
||||
training: 'Practical teaching management',
|
||||
exam: 'examination management',
|
||||
lineDesign: 'track design',
|
||||
case: 'case',
|
||||
SystemManagement: 'System management',
|
||||
SystemDataManagement: 'System data management',
|
||||
dataDictionary: 'Data dictionary',
|
||||
SystemAccountManagement: 'System Account Management',
|
||||
ThirdPartyAccounts: 'Configuring Third-Party Accounts',
|
||||
OnlineInformationManagement: 'Online information management',
|
||||
loginUser: 'Online users',
|
||||
cacheDataManage: 'Cache data management',
|
||||
simulationManage: 'simulation management',
|
||||
companyUserManage: 'Organization User Management',
|
||||
companyManage: 'Company manage',
|
||||
lineDataManage: 'Line data management',
|
||||
lineTypeManage: 'Line type management',
|
||||
linePacketManage: 'Line packet management',
|
||||
teachingDataManage: 'Teaching data management',
|
||||
theoryData: 'Theoretical topic data management',
|
||||
trainingDataManage: 'Training data management',
|
||||
examData: 'Examination data management',
|
||||
userTrainingDataManage: 'User training data management',
|
||||
userExamData: 'User test data management',
|
||||
projectDataManage: 'Project data management',
|
||||
projectManage: 'Project Manage',
|
||||
projectConfig: 'Project client configuration',
|
||||
projectDeviceManage: 'Project equipment management',
|
||||
permissionDataManage: 'Permission Data Management',
|
||||
permissionManage: 'Permission',
|
||||
authorityTransferManage: 'Privilege distribution management',
|
||||
userRulesManage: 'User Rights Statistics',
|
||||
contestDataManage:'Contest data management',
|
||||
contestSubjectManage:'contest subject management',
|
||||
contestTaskManage:'contest task management',
|
||||
contestSceneManage:'contest scene management',
|
||||
contestTaskScoreManage:'contest task score management',
|
||||
contestSeasonManage:'contest season management',
|
||||
fileManage: 'File Manage',
|
||||
frontResourceManage: 'Front-End Resource Management',
|
||||
iscsPrerecordManage: 'ISCS Advance record management',
|
||||
XRVTI: 'Xi\'an Railway Vocational & Technical Institute',
|
||||
GEMVC: 'Guizhou Equipment Manufacturing Vocational College',
|
||||
JVCOEAI: 'Jiangsu Vocational College Of Electronics And Information',
|
||||
functionManage: 'function management'
|
||||
};
|
@ -117,5 +117,8 @@ export default {
|
||||
distributionAttribution: 'Distribution attribution',
|
||||
goodsAmount:'Goods Amount',
|
||||
operate:'operate',
|
||||
orderNotPay:'order not pay'
|
||||
orderNotPay:'order not pay',
|
||||
updateTime: 'update time',
|
||||
oneClickSync: 'one click sync',
|
||||
ability: 'ability'
|
||||
};
|
||||
|
@ -11,7 +11,7 @@ export default {
|
||||
newDesignEditorList: 'Editor List',
|
||||
newDesignDraftEditorList: 'Draft Editor List',
|
||||
uploadPdf: 'Upload Pdf',
|
||||
fileManage:'File Manage',
|
||||
fileManage: 'File Manage',
|
||||
|
||||
designhomePage: 'Public map',
|
||||
designUserPage: 'Personal map',
|
||||
@ -63,7 +63,7 @@ export default {
|
||||
dataDictionary: 'Data dictionary',
|
||||
dataDictionaryDetails: 'Data dictionary details',
|
||||
userManage: 'user management',
|
||||
loginUserManage:'login user Manage',
|
||||
loginUserManage: 'login user Manage',
|
||||
cacheManage: 'cache management',
|
||||
userTrainingManage: 'User training management',
|
||||
userExamManage: 'User examination management',
|
||||
@ -86,23 +86,27 @@ export default {
|
||||
studentManage: 'Student manage',
|
||||
examDetail: 'Exam detail',
|
||||
raceManage: 'Race manage',
|
||||
practiceManage:'Practice manage',
|
||||
practiceManage: 'Practice manage',
|
||||
bankManage: 'Bank manage',
|
||||
sceneManage:'Scene manage',
|
||||
sceneManage: 'Scene manage',
|
||||
companyManage: 'Company manage',
|
||||
authorApply: 'Grant application',
|
||||
AuthorList: 'Authorization code list',
|
||||
questionsRuleManage: 'Question rule manage',
|
||||
questionsRuleManage: 'Question rule manage',
|
||||
preTheoryData: 'Pre Theory Data',
|
||||
boardManage: 'Message Board Manage',
|
||||
publishIBPManage:'publish IBP Manage',
|
||||
publishISCSManage:'publish ISCS Manage',
|
||||
publishIBPManage: 'publish IBP Manage',
|
||||
publishISCSManage: 'publish ISCS Manage',
|
||||
publishTrainingManage: 'publish Training Manage',
|
||||
voiceTraining: 'Voice Training',
|
||||
mapGroup: 'Map Group',
|
||||
drawingMange:'Drawing Mange',
|
||||
drawingMange: 'Drawing Mange',
|
||||
projectServer: 'Project Server',
|
||||
audioResourcesManage: 'Audio Resources Manage',
|
||||
iscsDeviceManage: 'ISCS Device Manage',
|
||||
iscsResourcesManage: 'ISCS Resources Manage'
|
||||
iscsResourcesManage: 'ISCS Resources Manage',
|
||||
projectManage: 'Project Manage',
|
||||
frontProjectConfigManage: 'Front Project Config Manage',
|
||||
training: 'Training',
|
||||
theory: 'Theory'
|
||||
};
|
||||
|
@ -29,6 +29,7 @@ import systemGenerate from './systemGenerate';
|
||||
import login from './login';
|
||||
import designPlatform from './designPlatform';
|
||||
import trainingManage from './trainingManage';
|
||||
import newRouter from './newRouter';
|
||||
|
||||
export default {
|
||||
cnLocale,
|
||||
@ -61,5 +62,6 @@ export default {
|
||||
systemGenerate,
|
||||
login,
|
||||
designPlatform,
|
||||
trainingManage
|
||||
trainingManage,
|
||||
newRouter
|
||||
};
|
||||
|
@ -18,5 +18,7 @@ export default {
|
||||
getLoginQrCode: '获取登录二维码失败,请刷新重试',
|
||||
language: '语言',
|
||||
clickSwitchLanguage: '点击切换语言',
|
||||
accountName: '账户名'
|
||||
accountName: '账户名',
|
||||
registerAccount: '注册账号',
|
||||
forgetPassword: '忘记密码?'
|
||||
};
|
||||
|
@ -51,7 +51,7 @@ export default {
|
||||
menuSignal: {
|
||||
routeSelect: '进路选排',
|
||||
routeCancel: '进路取消',
|
||||
signalBlock: '信号封闭',
|
||||
signalBlock: '信号封锁',
|
||||
signalDeblock: '信号解封',
|
||||
signalReopen: '信号重开',
|
||||
guideRouteHandle: '引导进路办理',
|
||||
@ -129,7 +129,7 @@ export default {
|
||||
confirmRunToFrontStation: '确认运行至前方站'
|
||||
},
|
||||
passiveDialog: {
|
||||
alarmDetailInformation: '级告警详细信息',
|
||||
alarmDetailInformation: '级报警详细信息',
|
||||
lineName: '线路名称',
|
||||
unitName: '单位名称',
|
||||
moduleName: '模块名称',
|
||||
|
54
src/i18n/langs/zh/newRouter.js
Normal file
@ -0,0 +1,54 @@
|
||||
export default {
|
||||
simulation: '仿真',
|
||||
multiplayerSimulation: '多人仿真',
|
||||
regulationSimulation: '监管仿真',
|
||||
teachingManagement: '教学管理',
|
||||
classroom: '班级管理',
|
||||
student: '学生管理',
|
||||
theory: '理论题目管理',
|
||||
training: '实训教学管理',
|
||||
exam: '考试管理',
|
||||
lineDesign: '线路设计',
|
||||
case: '案例管理',
|
||||
SystemManagement: '系统管理',
|
||||
SystemDataManagement: '系统数据管理',
|
||||
dataDictionary: '数据字典',
|
||||
SystemAccountManagement: '系统账户管理',
|
||||
ThirdPartyAccounts: '第三方账户配置',
|
||||
OnlineInformationManagement: '在线信息管理',
|
||||
loginUser: '在线用户',
|
||||
cacheDataManage: '缓存数据管理',
|
||||
simulationManage: '仿真管理',
|
||||
companyUserManage: '组织用户管理',
|
||||
companyManage: '组织管理',
|
||||
lineDataManage: '线路数据管理',
|
||||
lineTypeManage: '线路类型管理',
|
||||
linePacketManage: '线路分组管理',
|
||||
teachingDataManage: '教学数据管理',
|
||||
theoryData: '理论题数据管理',
|
||||
trainingDataManage: '实训数据管理',
|
||||
examData: '考试数据管理',
|
||||
userTrainingDataManage: '用户实训数据管理',
|
||||
userExamData: '用户考试数据管理',
|
||||
projectDataManage: '项目数据管理',
|
||||
projectManage: '项目管理',
|
||||
projectConfig: '项目客户端配置',
|
||||
projectDeviceManage: '项目设备管理',
|
||||
permissionDataManage: '权限数据管理',
|
||||
permissionManage: '权限管理',
|
||||
authorityTransferManage: '权限分发管理',
|
||||
userRulesManage: '用户权限管理',
|
||||
contestDataManage:'竞赛数据管理',
|
||||
contestSubjectManage:'竞赛题目管理',
|
||||
contestTaskManage:'竞赛任务管理',
|
||||
contestSceneManage:'竞赛场景管理',
|
||||
contestTaskScoreManage:'竞赛任务评分管理',
|
||||
contestSeasonManage:'竞赛赛季管理',
|
||||
fileManage: '文件管理',
|
||||
frontResourceManage: '前端资源管理',
|
||||
iscsPrerecordManage: 'ISCS预录管理',
|
||||
XRVTI: '西安铁路职业技术学院',
|
||||
GEMVC: '贵州装备制造职业学院',
|
||||
JVCOEAI: '江苏电子信息职业学院',
|
||||
functionManage: '功能管理'
|
||||
};
|
@ -116,5 +116,8 @@ export default {
|
||||
distributionAttribution: '分发归属',
|
||||
goodsAmount:'商品个数',
|
||||
operate:'操作',
|
||||
orderNotPay:'该订单未支付'
|
||||
orderNotPay:'该订单未支付',
|
||||
updateTime: '更新时间',
|
||||
oneClickSync: '一键同步',
|
||||
ability: '功能'
|
||||
};
|
||||
|
@ -105,7 +105,7 @@ export default {
|
||||
selectScope: '请选择范围',
|
||||
questionNumbers: '题数',
|
||||
allNumberTipOne: '此类型有',
|
||||
allNumberTipTwo: '道题',
|
||||
allNumberTipTwo: '题',
|
||||
scorePerQuestion: '每题分值',
|
||||
inputQuestionNumber: '请输入题数',
|
||||
inputQuestionNumberError: '输入的题数大于0',
|
||||
|
@ -8,7 +8,7 @@ export default {
|
||||
newDesignEditorList: '图文列表',
|
||||
newDesignDraftEditorList: '文章草稿',
|
||||
uploadPdf: 'PDF上传',
|
||||
fileManage:'文件管理',
|
||||
fileManage: '文件管理',
|
||||
|
||||
mapManage: '地图管理',
|
||||
skinManage: '皮肤管理',
|
||||
@ -62,7 +62,7 @@ export default {
|
||||
dataDictionary: '数据字典',
|
||||
dataDictionaryDetails: '数据字典明细',
|
||||
userManage: '用户管理',
|
||||
loginUserManage:'在线用户管理',
|
||||
loginUserManage: '在线用户管理',
|
||||
cacheManage: '缓存管理',
|
||||
userTrainingManage: '用户实训统计',
|
||||
userExamManage: '用户考试统计',
|
||||
@ -91,22 +91,26 @@ export default {
|
||||
raceManage: '竞赛管理',
|
||||
recaList: '报名列表',
|
||||
bankManage: '题库列表',
|
||||
practiceManage:'实操列表',
|
||||
sceneManage:'场景列表',
|
||||
practiceManage: '实操列表',
|
||||
sceneManage: '场景列表',
|
||||
companyManage: '组织管理',
|
||||
authorApply: '授权申请',
|
||||
AuthorList: '授权列表',
|
||||
questionsRuleManage: '出题规则管理',
|
||||
preTheoryData: '理论导入预处理',
|
||||
boardManage: '留言板管理',
|
||||
publishIBPManage:'发布IBP盘管理',
|
||||
publishISCSManage:'发布ISCS管理',
|
||||
publishIBPManage: '发布IBP盘管理',
|
||||
publishISCSManage: '发布ISCS管理',
|
||||
publishTrainingManage: '发布实训管理',
|
||||
voiceTraining: '语音训练',
|
||||
mapGroup: '地图分组',
|
||||
drawingMange:'图纸管理',
|
||||
drawingMange: '图纸管理',
|
||||
projectServer: '项目域名',
|
||||
audioResourcesManage: '音频资源管理',
|
||||
iscsDeviceManage: 'ISCS设备管理',
|
||||
iscsResourcesManage: 'ISCS资源管理'
|
||||
iscsResourcesManage: 'ISCS资源管理',
|
||||
projectManage: '项目管理',
|
||||
frontProjectConfigManage: '前端项目配置管理',
|
||||
training: '实训',
|
||||
theory: '理论'
|
||||
};
|
||||
|
@ -9,7 +9,15 @@ const mapDeviceStyle = {
|
||||
'09': 'xian_02',
|
||||
'10': '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) {
|
||||
|
@ -5,7 +5,6 @@ export function SetScene(project) {
|
||||
// var cubeTextureLoader = new THREE.CubeTextureLoader();
|
||||
|
||||
var bgTexture;
|
||||
// console.log(project);
|
||||
if(project == "login" || project == undefined){
|
||||
bgTexture = new THREE.TextureLoader().load(JL3D_LOCAL_STATIC+"/background/other.jpg");
|
||||
}else if(project == "heb"){
|
||||
|
@ -48,7 +48,6 @@ export function Pathaction(){
|
||||
|
||||
document.onmousedown = function(event){
|
||||
jlmap3dedit.selectswitch = false;
|
||||
console.log(event.button);
|
||||
|
||||
//辅助线段
|
||||
|
||||
@ -60,7 +59,6 @@ export function Pathaction(){
|
||||
|
||||
lineswitch = null;
|
||||
|
||||
console.log(linenew);
|
||||
|
||||
if(linenew){
|
||||
|
||||
@ -74,7 +72,6 @@ export function Pathaction(){
|
||||
|
||||
point1 = mouserray(event,jlmap3dedit);
|
||||
|
||||
console.log("new");
|
||||
if(point1){
|
||||
linenew = addline(point1,1,jlmap3dedit.splineHelperObjects,jlmap3dedit.scene);
|
||||
jlmap3dedit.mapdata.path.push(linenew);
|
||||
@ -104,7 +101,6 @@ export function Pathaction(){
|
||||
jlmap3dedit.mapdata.sectionlist.sections.datalist[i].rail.push(linenew.geometry.vertices[n]);
|
||||
}
|
||||
jlmap3dedit.mapdata.sectionlist.sections.datalist[i].railline = linenew;
|
||||
console.log(jlmap3dedit.mapdata.sectionlist.sections.datalist[i].rail);
|
||||
i = jlmap3dedit.mapdata.sectionlist.sections.modellist.length;
|
||||
}
|
||||
}
|
||||
@ -177,7 +173,6 @@ export function Pathaction(){
|
||||
|
||||
document.onmousedown = function(event){
|
||||
|
||||
console.log(event.button);
|
||||
|
||||
//辅助线段
|
||||
|
||||
@ -189,7 +184,6 @@ export function Pathaction(){
|
||||
|
||||
lineswitch = null;
|
||||
|
||||
console.log(linenew);
|
||||
|
||||
if(linenew){
|
||||
|
||||
@ -233,8 +227,6 @@ export function Pathaction(){
|
||||
for(let n=0;n<linenew.geometry.vertices.length;n++){
|
||||
jlmap3dedit.mapdata.sectionlist.sections.datalist[i].rail.push(linenew.geometry.vertices[n]);
|
||||
}
|
||||
console.log(jlmap3dedit.mapdata.sectionlist.sections.datalist[i]);
|
||||
console.log(jlmap3dedit.mapdata.sectionlist.sections.datalist[i].rail);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -289,7 +281,6 @@ export function Pathaction(){
|
||||
}
|
||||
//点击事件
|
||||
this.raycaster = function(data){
|
||||
console.log();
|
||||
if(scope.on == true){
|
||||
|
||||
//定义光线
|
||||
@ -300,13 +291,11 @@ export function Pathaction(){
|
||||
mouse.y = -(event.clientY / window.innerHeight) * 2 + 1;
|
||||
|
||||
raycaster.setFromCamera( mouse, data.camera );
|
||||
console.log(data.splineHelperObjects);
|
||||
let intersects1;
|
||||
|
||||
intersects1 = raycaster.intersectObjects( data.splineHelperObjects);
|
||||
|
||||
if(intersects1[0]){
|
||||
console.log(intersects1[0]);
|
||||
return intersects1[0].object;
|
||||
}
|
||||
|
||||
@ -329,9 +318,7 @@ export function Pathaction(){
|
||||
mouse.y = -(mousep.clientY / window.innerHeight) * 2 + 1;
|
||||
|
||||
raycaster.setFromCamera( mouse, jlmap3dedit.camera );
|
||||
console.log(jlmap3dedit.assetloader.modellist[3].mesh);
|
||||
var intersects = raycaster.intersectObjects(jlmap3dedit.assetloader.modellist[3].mesh.children);
|
||||
console.log(intersects);
|
||||
if(intersects[0]){
|
||||
resultpoint = intersects[0].point;
|
||||
return resultpoint;
|
||||
|
@ -79,13 +79,9 @@ export function Sectionaction(){
|
||||
|
||||
raycaster.setFromCamera( mouse, data.camera );
|
||||
let intersects1;
|
||||
// console.log(modellist);
|
||||
for(let i=0;i<modellist.length;i++){
|
||||
intersects1 = raycaster.intersectObject(modellist[i],true);
|
||||
// console.log(intersects1);
|
||||
if(intersects1[0]){
|
||||
// console.log(intersects1[0].object.code);
|
||||
// console.log(modellist[i].code);
|
||||
if(intersects1[0].object.code == modellist[i].code){
|
||||
|
||||
return modellist[i];
|
||||
@ -97,20 +93,17 @@ export function Sectionaction(){
|
||||
}
|
||||
|
||||
this.changemodel = function(jlmap3dedit,changedata){
|
||||
console.log(changedata);
|
||||
let scene = jlmap3dedit.scene;
|
||||
let assetloader = jlmap3dedit.assetloader;
|
||||
let isnewmodel = true;
|
||||
//判断是否是未加载模型
|
||||
for(let i=0;i<assetloader.modellist.length;i++){
|
||||
console.log(assetloader.modellist[i].assetUrl);
|
||||
|
||||
if(changedata.assetUrl == assetloader.modellist[i].assetUrl){
|
||||
isnewmodel = false;
|
||||
i = assetloader.modellist.length;
|
||||
}
|
||||
}
|
||||
console.log(isnewmodel);
|
||||
|
||||
jlmap3dedit.assetloader.loadnewsection(changedata,jlmap3dedit);
|
||||
|
||||
@ -118,25 +111,19 @@ export function Sectionaction(){
|
||||
|
||||
// for(let i=0;i<jlmap3dedit.mapdata.signallist.list.length;i++){
|
||||
// if(jlmap3dedit.selectmodel.code == jlmap3dedit.mapdata.signallist.list[i].mesh.code){
|
||||
// console.log("change");
|
||||
// let num = i;
|
||||
//
|
||||
// //判断是否修改模型
|
||||
// console.log(changedata.id );
|
||||
// console.log(jlmap3dedit.mapdata.signallist.list[i].mesh.name);
|
||||
// if(changedata.id != jlmap3dedit.mapdata.signallist.list[i].mesh.name){
|
||||
//
|
||||
// if(isnewmodel == true){
|
||||
// console.log("new");
|
||||
// return jlmap3dedit.assetloader.loadnewasset(jlmap3dedit,changedata,num);
|
||||
//
|
||||
// }else{
|
||||
// console.log("old");
|
||||
// return jlmap3dedit.assetloader.loadoldasset(jlmap3dedit,changedata,num);
|
||||
//
|
||||
// }
|
||||
// }else{
|
||||
// console.log("same");
|
||||
// return jlmap3dedit.selectmodel;
|
||||
// }
|
||||
//
|
||||
|
@ -50,7 +50,6 @@ export function Signalaction(){
|
||||
for(let i=0;i<data.mapdata.signallist.list.length;i++){
|
||||
intersects1 = raycaster.intersectObjects( data.mapdata.signallist.list[i].mesh.children);
|
||||
if(intersects1[0]){
|
||||
console.log(intersects1[0].object);
|
||||
if(intersects1[0].object.parent.code == data.mapdata.signallist.list[i].mesh.code){
|
||||
return data.mapdata.signallist.list[i].mesh;
|
||||
}
|
||||
@ -62,11 +61,9 @@ export function Signalaction(){
|
||||
}
|
||||
|
||||
this.changemodel = function(jlmap3dedit,changedata){
|
||||
console.log(changedata);
|
||||
let isnewmodel = true;
|
||||
//判断是否是未加载模型
|
||||
for(let i=0;i<jlmap3dedit.assetloader.modellist.length;i++){
|
||||
console.log(jlmap3dedit.assetloader.modellist[i].assetUrl);
|
||||
|
||||
if(changedata.assetUrl == jlmap3dedit.assetloader.modellist[i].assetUrl){
|
||||
isnewmodel = false;
|
||||
@ -77,25 +74,19 @@ export function Signalaction(){
|
||||
let scene = jlmap3dedit.scene;
|
||||
for(let i=0;i<jlmap3dedit.mapdata.signallist.list.length;i++){
|
||||
if(jlmap3dedit.selectmodel.code == jlmap3dedit.mapdata.signallist.list[i].mesh.code){
|
||||
console.log("change");
|
||||
let num = i;
|
||||
|
||||
//判断是否修改模型
|
||||
console.log(changedata.id );
|
||||
console.log(jlmap3dedit.mapdata.signallist.list[i].mesh.name);
|
||||
if(changedata.id != jlmap3dedit.mapdata.signallist.list[i].mesh.name){
|
||||
|
||||
if(isnewmodel == true){
|
||||
console.log("new");
|
||||
return jlmap3dedit.assetloader.loadnewasset(jlmap3dedit,changedata,num);
|
||||
|
||||
}else{
|
||||
console.log("old");
|
||||
return jlmap3dedit.assetloader.loadoldasset(jlmap3dedit,changedata,num);
|
||||
|
||||
}
|
||||
}else{
|
||||
console.log("same");
|
||||
return jlmap3dedit.selectmodel;
|
||||
}
|
||||
|
||||
|
@ -48,15 +48,11 @@ export function Stationaction(){
|
||||
|
||||
raycaster.setFromCamera( mouse, data.camera );
|
||||
let intersects1;
|
||||
console.log( data.mapdata.stationstandlist);
|
||||
for(let i=0;i<data.mapdata.stationstandlist.group.children.length;i++){
|
||||
|
||||
intersects1 = raycaster.intersectObjects( data.mapdata.stationstandlist.group.children[i].children);
|
||||
|
||||
if(intersects1[0]){
|
||||
console.log(data.mapdata.stationstandlist.group);
|
||||
console.log(intersects1[0]);
|
||||
console.log(data.mapdata.stationstandlist.group.children[i]);
|
||||
if(intersects1[0].object.parent.code == data.mapdata.stationstandlist.group.children[i].code){
|
||||
return data.mapdata.stationstandlist.group.children[i];
|
||||
}
|
||||
|
@ -55,7 +55,6 @@ export function Switchaction(){
|
||||
if(intersects1[0]){
|
||||
|
||||
if(intersects1[0].object.code == data.mapdata.sectionlist.switchs.modellist[i].code){
|
||||
//console.log(intersects1[0].object.name);
|
||||
return data.mapdata.sectionlist.switchs.modellist[i];
|
||||
}
|
||||
}
|
||||
|
@ -55,8 +55,6 @@ export function Trainaction(){
|
||||
if(intersects1[0]){
|
||||
|
||||
if(intersects1[0].object.name == data.mapdata.trainlisttest.list[i].name){
|
||||
//console.log(intersects1[0].object.name);
|
||||
console.log(data.mapdata.trainlisttest.list[i]);
|
||||
return data.mapdata.trainlisttest.list[i];
|
||||
}
|
||||
}
|
||||
|
@ -1,7 +1,6 @@
|
||||
//import request from '@/utils/request';
|
||||
|
||||
export function initDataSave(data) {
|
||||
console.log(data);
|
||||
let postmap = {
|
||||
id:data.mapdata.id,
|
||||
mapId:data.mapdata.mapId,
|
||||
@ -24,7 +23,6 @@ export function initDataSave(data) {
|
||||
}else{
|
||||
|
||||
let models = data.assetManager;
|
||||
console.log(data.assetManager);
|
||||
postmap.assets = JSON.stringify(models);
|
||||
|
||||
|
||||
@ -113,7 +111,6 @@ export function initDataSave(data) {
|
||||
postmap.signals = JSON.stringify(signals);
|
||||
//车站
|
||||
let stands = [];
|
||||
console.log(data.mapdata.stationstandlist);
|
||||
if(data.mapdata.stationstandlist){
|
||||
for(let i=0;i<data.mapdata.stationstandlist.list.length;i++){
|
||||
let station = {
|
||||
|
@ -1,6 +1,5 @@
|
||||
//import request from '@/utils/request';
|
||||
export function specilDataSave(data) {
|
||||
console.log(data);
|
||||
let postmap = {
|
||||
id:data.mapdata.id,
|
||||
mapId:data.mapdata.mapId,
|
||||
@ -55,7 +54,6 @@ export function specilDataSave(data) {
|
||||
|
||||
|
||||
let models = data.assetManager;
|
||||
console.log(data.assetManager);
|
||||
postmap.assets = JSON.stringify(models);
|
||||
|
||||
|
||||
|
@ -23,13 +23,11 @@ export function testgetmodels(data) {
|
||||
}else{
|
||||
|
||||
let models = data.assetManager;
|
||||
console.log(data.assetManager);
|
||||
postmap.assets = JSON.stringify(models);
|
||||
|
||||
|
||||
//section隧道
|
||||
let sections = [];
|
||||
// console.log(data.mapdata.sectionlist.sections.datalist);
|
||||
for(let i in data.mapdata.sectionlist.sections.datalist){
|
||||
let section = {
|
||||
// uuid:data.mapdata.sectionlist.sections.modellist[i].uuid,
|
||||
@ -47,7 +45,6 @@ export function testgetmodels(data) {
|
||||
}
|
||||
let nowmesh = data.mapdata.sectionlist.sectiongroup.getObjectByProperty("code",section.code);
|
||||
section.railpoint = nowmesh.railpoint;
|
||||
// console.log(nowmesh.railpoint);
|
||||
// if(data.mapdata.sectionlist.sections.datalist[i].rsection){
|
||||
// section.rsection = data.mapdata.sectionlist.sections.datalist[i].rsection;
|
||||
// }
|
||||
|
@ -27,7 +27,6 @@ export function jl3dEditorLoader(mapid,scope){
|
||||
get3dMapData(editmapid).then(data => {
|
||||
|
||||
if(data.data ){
|
||||
console.log(data);
|
||||
if(data.data.assets){
|
||||
// initData(editmapid,data.data.id);
|
||||
loadData(editmapid,data.data);
|
||||
@ -40,26 +39,22 @@ export function jl3dEditorLoader(mapid,scope){
|
||||
|
||||
set3dMapData(params).then(data => {
|
||||
if(data.code == "200"){
|
||||
//console.log("创建三维数据成功");
|
||||
// console.log(data);
|
||||
initData(editmapid,data.data.id);
|
||||
|
||||
}
|
||||
}).catch(error => {
|
||||
console.log(error);
|
||||
console.error(error);
|
||||
});
|
||||
}
|
||||
|
||||
}).catch(error => {
|
||||
console.log(error);
|
||||
console.error(error);
|
||||
});
|
||||
|
||||
function initData(mapid,data3did){
|
||||
|
||||
getMapDetail(mapid).then(data => {
|
||||
console.log(data);
|
||||
let mapdata = data.data;
|
||||
//console.log(data3did);
|
||||
jlmap3ddata.id = data3did;
|
||||
jlmap3ddata.mapId = mapid;
|
||||
|
||||
@ -71,11 +66,9 @@ export function jl3dEditorLoader(mapid,scope){
|
||||
jlmap3ddata.switchlist = new rSwitchList();
|
||||
assetloader.assetinit(scene)
|
||||
.then(function(data){
|
||||
//console.log(data);
|
||||
return jlmap3ddata.sectionlist.initpromise(jlmap3ddata,assetloader,mapdata.sectionList,mapdata.switchList,scene);
|
||||
})
|
||||
.then(function(data){
|
||||
//console.log(data);
|
||||
return jlmap3ddata.signallist.initpromise(jlmap3ddata,mapdata.signalList,scene,assetloader);
|
||||
})
|
||||
.then(function(data){
|
||||
@ -83,7 +76,6 @@ export function jl3dEditorLoader(mapid,scope){
|
||||
})
|
||||
|
||||
.then(function(data){
|
||||
//console.log(data);
|
||||
loadingInstance.close();
|
||||
});
|
||||
}else{
|
||||
@ -100,15 +92,12 @@ export function jl3dEditorLoader(mapid,scope){
|
||||
jlmap3ddata.raillist.setrail();
|
||||
assetloader.assetinit(scene)
|
||||
.then(function(data){
|
||||
//console.log(data);
|
||||
return jlmap3ddata.stationstandlist.initpromise(jlmap3ddata,mapdata.stationList,mapdata.stationStandList,scene,assetloader);
|
||||
})
|
||||
.then(function(data){
|
||||
//console.log(data);
|
||||
return jlmap3ddata.sectionlist.initpromise(jlmap3ddata,assetloader,mapdata.sectionList,mapdata.switchList,scene);
|
||||
})
|
||||
.then(function(data){
|
||||
//console.log(data);
|
||||
return jlmap3ddata.signallist.initpromise(jlmap3ddata,mapdata.signalList,scene,assetloader);
|
||||
})
|
||||
.then(function(data){
|
||||
@ -116,7 +105,6 @@ export function jl3dEditorLoader(mapid,scope){
|
||||
})
|
||||
|
||||
.then(function(data){
|
||||
//console.log(data);
|
||||
loadingInstance.close();
|
||||
});
|
||||
}
|
||||
@ -151,12 +139,10 @@ export function jl3dEditorLoader(mapid,scope){
|
||||
assetloader.setModelListOver(jlmap3dasset.sceneAssetList,5,jlmap3dasset.others);
|
||||
assetloader.assetPromiseOver(scene)
|
||||
.then(function(data){
|
||||
//console.log(data);
|
||||
// return jlmap3ddata.sectionlist.initpromise(jlmap3ddata,assetloader,mapdata.sectionList,mapdata.switchList,scene);
|
||||
return jlmap3ddata.sectionlist.loadpromise(jlmap3ddata,assetloader,sectiondata.section,mapdata.sectionList,mapdata.switchList,scene);
|
||||
})
|
||||
.then(function(data){
|
||||
//console.log(data);
|
||||
// return jlmap3ddata.signallist.initpromise(jlmap3ddata,mapdata.signalList,scene,assetloader);
|
||||
return jlmap3ddata.signallist.loadpromise(signaldata,scene,assetloader,mapdata.signalList);
|
||||
})
|
||||
@ -165,7 +151,6 @@ export function jl3dEditorLoader(mapid,scope){
|
||||
return jlmap3ddata.switchlist.loadpromise(jlmap3ddata,switchdata,scene,assetloader);
|
||||
})
|
||||
.then(function(data){
|
||||
//console.log(data);
|
||||
loadingInstance.close();
|
||||
});
|
||||
}else{
|
||||
@ -179,7 +164,6 @@ export function jl3dEditorLoader(mapid,scope){
|
||||
jlmap3ddata.switchlist = new SwitchList();
|
||||
|
||||
jlmap3ddata.raillist = new RailList();
|
||||
console.log(netdata);
|
||||
let sectiondata = JSON.parse(netdata.sections);
|
||||
let switchdata = JSON.parse(netdata.switchs);
|
||||
let signaldata = JSON.parse(netdata.signals);
|
||||
@ -196,12 +180,10 @@ export function jl3dEditorLoader(mapid,scope){
|
||||
return jlmap3ddata.stationstandlist.loadpromise(jlmap3ddata,standsdata,mapdata.stationStandList,scene,assetloader);
|
||||
})
|
||||
.then(function(data){
|
||||
//console.log(data);
|
||||
// return jlmap3ddata.sectionlist.initpromise(jlmap3ddata,assetloader,mapdata.sectionList,mapdata.switchList,scene);
|
||||
return jlmap3ddata.sectionlist.loadpromise(jlmap3ddata,assetloader,sectiondata.section,scene);
|
||||
})
|
||||
.then(function(data){
|
||||
//console.log(data);
|
||||
// return jlmap3ddata.signallist.initpromise(jlmap3ddata,mapdata.signalList,scene,assetloader);
|
||||
return jlmap3ddata.signallist.loadpromise(signaldata,scene,assetloader,mapdata.signalList);
|
||||
})
|
||||
@ -210,7 +192,6 @@ export function jl3dEditorLoader(mapid,scope){
|
||||
return jlmap3ddata.switchlist.loadpromise(jlmap3ddata,switchdata,scene,assetloader);
|
||||
})
|
||||
.then(function(data){
|
||||
//console.log(data);
|
||||
loadingInstance.close();
|
||||
});
|
||||
}else{
|
||||
@ -222,12 +203,10 @@ export function jl3dEditorLoader(mapid,scope){
|
||||
return jlmap3ddata.stationstandlist.loadpromise(jlmap3ddata,standsdata,mapdata,scene,assetloader,jlmap3dasset.others);
|
||||
})
|
||||
.then(function(data){
|
||||
//console.log(data);
|
||||
// return jlmap3ddata.sectionlist.initpromise(jlmap3ddata,assetloader,mapdata.sectionList,mapdata.switchList,scene);
|
||||
return jlmap3ddata.sectionlist.loadpromise(jlmap3ddata,assetloader,sectiondata.section,mapdata.sectionList,mapdata.switchList,scene);
|
||||
})
|
||||
.then(function(data){
|
||||
//console.log(data);
|
||||
// return jlmap3ddata.signallist.initpromise(jlmap3ddata,mapdata.signalList,scene,assetloader);
|
||||
return jlmap3ddata.signallist.loadpromise(signaldata,scene,assetloader,mapdata.signalList);
|
||||
})
|
||||
@ -236,7 +215,6 @@ export function jl3dEditorLoader(mapid,scope){
|
||||
return jlmap3ddata.switchlist.loadpromise(jlmap3ddata,switchdata,scene,assetloader);
|
||||
})
|
||||
.then(function(data){
|
||||
//console.log(data);
|
||||
loadingInstance.close();
|
||||
});
|
||||
}
|
||||
|
@ -29,7 +29,6 @@ import { jl3dEditorLoader } from '@/jlmap3d/edit/jl3dEditorLoader';
|
||||
import { Actionmanage } from '@/jlmap3d/edit/actionmanage';
|
||||
|
||||
export function JLmap3dEdit(dom, data, mapid) {
|
||||
console.log(data);
|
||||
|
||||
var scope = this;
|
||||
|
||||
@ -144,7 +143,6 @@ export function JLmap3dEdit(dom, data, mapid) {
|
||||
};
|
||||
|
||||
this.eventon = function(){
|
||||
//console.log("on");
|
||||
//raycaster交互模型点击事件
|
||||
document.getElementById("testdraw").addEventListener( "mousedown", onselect, false );
|
||||
//窗口自适应
|
||||
@ -154,7 +152,6 @@ export function JLmap3dEdit(dom, data, mapid) {
|
||||
};
|
||||
|
||||
this.eventoff = function(){
|
||||
//console.log("off");
|
||||
//raycaster交互模型点击事件
|
||||
document.getElementById("testdraw").removeEventListener( "mousedown", onselect, false );
|
||||
//窗口自适应
|
||||
@ -163,7 +160,6 @@ export function JLmap3dEdit(dom, data, mapid) {
|
||||
|
||||
this.exportsection = function(){
|
||||
let exporter = new THREE.OBJExporter();
|
||||
console.log(scope.mapdata);
|
||||
// let exportmodels = scope.mapdata.stationstandlist.group;
|
||||
let exportmodels = scope.mapdata.sectionlist.sectiongroup;
|
||||
// let exportmodels = scope.mapdata.stationstandlist.group;
|
||||
@ -184,7 +180,6 @@ export function JLmap3dEdit(dom, data, mapid) {
|
||||
|
||||
this.exportsection = function(){
|
||||
let exporter = new THREE.OBJExporter();
|
||||
console.log(scope.mapdata);
|
||||
// let exportmodels = scope.mapdata.stationstandlist.group;
|
||||
let exportSectionModel = scope.mapdata.sectionlist.sectiongroup;
|
||||
objDownload("section",exporter.parse( exportSectionModel ));
|
||||
@ -226,10 +221,6 @@ export function JLmap3dEdit(dom, data, mapid) {
|
||||
}
|
||||
|
||||
this.actiommode = function(changedata){
|
||||
console.log(changedata);
|
||||
console.log(scope.editmode);
|
||||
// console.log(scope.actionmode);
|
||||
// console.log(changedata);
|
||||
if(changedata == "trackreplace"){
|
||||
scope.editmode = "trackedit";
|
||||
scope.eventon();
|
||||
@ -274,7 +265,6 @@ export function JLmap3dEdit(dom, data, mapid) {
|
||||
// if(scope.editmode == "pathedit"){
|
||||
//
|
||||
// if(scope.actionmode == "drawrail"){
|
||||
// //console.log("drawrail");
|
||||
// scope.selectmodel = scope.action.pathaction.drawline(scope);
|
||||
// }
|
||||
//
|
||||
@ -305,27 +295,14 @@ export function JLmap3dEdit(dom, data, mapid) {
|
||||
for(let i=0,leni=scope.mapdata.stationstandlist.list.length;i<leni;i++){
|
||||
if(changeStation.code == scope.mapdata.stationstandlist.list[i].code){
|
||||
let changeData = scope.mapdata.stationstandlist.list[i];
|
||||
console.log(changeData);
|
||||
let topStandTrack = scope.mapdata.sectionlist.sections.datalist[changeData.stands[0].section];
|
||||
let downStandTrack = scope.mapdata.sectionlist.sections.datalist[changeData.stands[changeData.stands.length-1].section];
|
||||
|
||||
console.log(scope.mapdata.sectionlist.sections);
|
||||
console.log(topStandTrack.mesh.railpoint[0].x);
|
||||
console.log(topStandTrack.mesh.railpoint[2].x);
|
||||
console.log(downStandTrack.mesh.railpoint[0].x);
|
||||
console.log(downStandTrack.mesh.railpoint[2].x);
|
||||
|
||||
let rightpos = topStandTrack.leftStopPercent*(topStandTrack.mesh.railpoint[2].x -topStandTrack.mesh.railpoint[0].x)+topStandTrack.mesh.railpoint[0].x;
|
||||
let leftpos = downStandTrack.rightStopPercent*(downStandTrack.mesh.railpoint[2].x -downStandTrack.mesh.railpoint[0].x)+downStandTrack.mesh.railpoint[0].x;
|
||||
|
||||
let rightX = changeData.mesh.position.x-63.4 - rightpos;
|
||||
let leftX = changeData.mesh.position.x+63.4 - leftpos;
|
||||
console.log("----------------------------");
|
||||
console.log(rightpos);
|
||||
console.log(leftpos);
|
||||
console.log("----------------------------");
|
||||
console.log(rightX);
|
||||
console.log(leftX);
|
||||
topStandTrack.mesh.position.x = topStandTrack.mesh.position.z + rightX;
|
||||
downStandTrack.mesh.position.x = downStandTrack.mesh.position.x + leftX;
|
||||
//
|
||||
@ -367,9 +344,6 @@ export function JLmap3dEdit(dom, data, mapid) {
|
||||
plane2.rotation.y = Math.PI/2;
|
||||
let leftpos = scope.mapdata.sectionlist.sections.datalist[k].leftStopPercent*(scope.mapdata.sectionlist.sections.datalist[k].railpoint[2].x -scope.mapdata.sectionlist.sections.datalist[k].railpoint[0].x)+scope.mapdata.sectionlist.sections.datalist[k].railpoint[0].x;
|
||||
let rightpos = scope.mapdata.sectionlist.sections.datalist[k].rightStopPercent*(scope.mapdata.sectionlist.sections.datalist[k].railpoint[2].x -scope.mapdata.sectionlist.sections.datalist[k].railpoint[0].x)+scope.mapdata.sectionlist.sections.datalist[k].railpoint[0].x;
|
||||
// console.log("==========");
|
||||
// console.log(scope.mapdata.sectionlist.sections.datalist[k].leftStopPercent);
|
||||
// console.log(scope.mapdata.sectionlist.sections.datalist[k].rightStopPercent);
|
||||
plane1.position.set(leftpos,scope.mapdata.sectionlist.sections.datalist[k].railpoint[1].y,scope.mapdata.sectionlist.sections.datalist[k].railpoint[1].z);
|
||||
plane2.position.set(rightpos,scope.mapdata.sectionlist.sections.datalist[k].railpoint[1].y,scope.mapdata.sectionlist.sections.datalist[k].railpoint[1].z);
|
||||
stationStopGroup.add(plane1);
|
||||
@ -393,8 +367,6 @@ export function JLmap3dEdit(dom, data, mapid) {
|
||||
|
||||
//自动匹配轨道信号灯道岔
|
||||
this.autoss = function(){
|
||||
console.log("autoss");
|
||||
// console.log(scope.mapdata);
|
||||
scope.mapdata.signallist.resetsignal(scope.mapdata);
|
||||
scope.mapdata.switchlist.resetswitch(scope.mapdata);
|
||||
//old
|
||||
@ -494,8 +466,6 @@ export function JLmap3dEdit(dom, data, mapid) {
|
||||
newpointlist.push(new THREE.Vector3(alignmentModel.railpoint[1].x,alignmentModel.railpoint[0].y,alignmentModel.railpoint[0].z+0.001));
|
||||
newpointlist.push(new THREE.Vector3(alignmentModel.railpoint[2].x,alignmentModel.railpoint[0].y,alignmentModel.railpoint[0].z));
|
||||
|
||||
// console.log(oldobject);
|
||||
|
||||
let newSection = reCreatSection(newpointlist,oldobject);
|
||||
newSection.meshtype = "section";
|
||||
scope.mapdata.sectionlist.sections.datalist[alignmentCode].mesh = newSection;
|
||||
@ -569,8 +539,6 @@ export function JLmap3dEdit(dom, data, mapid) {
|
||||
|
||||
//三维交互点击事件函数
|
||||
function onselect(event) {
|
||||
//console.log("select");
|
||||
//console.log("select");
|
||||
if(scope.selectswitch == true){
|
||||
|
||||
scope.transcontrol.detach();
|
||||
@ -593,7 +561,6 @@ export function JLmap3dEdit(dom, data, mapid) {
|
||||
}
|
||||
|
||||
if(scope.editmode == "stationedit"){
|
||||
console.log("stat!!!!!!!!!!!!");
|
||||
scope.selectmodel = scope.action.stationaction.raycaster(scope);
|
||||
}
|
||||
|
||||
@ -607,11 +574,9 @@ export function JLmap3dEdit(dom, data, mapid) {
|
||||
|
||||
if(scope.editmode == "pathedit"){
|
||||
scope.selectmodel = scope.action.pathaction.raycaster(scope);
|
||||
//console.log(scope.selectmodel);
|
||||
}
|
||||
|
||||
if(scope.selectmodel != null){
|
||||
//console.log(scope.selectmodel.rotation);
|
||||
if(scalControls.scalon){
|
||||
|
||||
}else{
|
||||
|
@ -36,7 +36,6 @@ export function rSectionList() {
|
||||
if(sectiondata[i].type == "01" || sectiondata[i].type == "03"){
|
||||
//初始化区段对象数据
|
||||
let newsection = new SectionModel(sectiondata[i]);
|
||||
// console.log(sectiondata[i]);
|
||||
newsection.name = sectiondata[i].name;
|
||||
newsection.code = sectiondata[i].code;
|
||||
newsection.index = i;
|
||||
@ -49,7 +48,6 @@ export function rSectionList() {
|
||||
newsection.points = sectiondata[i].points;
|
||||
newsection.pointslength = sectiondata[i].points.length-1;
|
||||
newsection.railpoint = [];
|
||||
// console.log(sectiondata[i].points.length);
|
||||
newsection.standTrack = sectiondata[i].standTrack;
|
||||
|
||||
newsection.endbuild = false;
|
||||
@ -74,7 +72,6 @@ export function rSectionList() {
|
||||
let acode = switchdata[i].sectionACode;
|
||||
let bcode = switchdata[i].sectionBCode;
|
||||
let ccode = switchdata[i].sectionCCode;
|
||||
// console.log(switchdata[i]);
|
||||
|
||||
|
||||
let aposx = (scope.sections.datalist[acode].points[0].x + scope.sections.datalist[acode].points[scope.sections.datalist[acode].pointslength].x)/2;
|
||||
@ -83,7 +80,6 @@ export function rSectionList() {
|
||||
let aposy = (scope.sections.datalist[acode].points[0].y + scope.sections.datalist[acode].points[scope.sections.datalist[acode].pointslength].y)/2;
|
||||
let cposy = (scope.sections.datalist[ccode].points[0].y + scope.sections.datalist[ccode].points[scope.sections.datalist[ccode].pointslength].y)/2;
|
||||
|
||||
// console.log("----------------");
|
||||
if(aposx > cposx){
|
||||
if(aposy < cposy){
|
||||
// ——A
|
||||
@ -157,8 +153,6 @@ export function rSectionList() {
|
||||
y:0,
|
||||
z:0
|
||||
});
|
||||
console.log(scope.sections.datalist);
|
||||
console.log("START BUILD !!!!!!!!!!!!!!!!!");
|
||||
buildsectionall(scope.sections.datalist["T1"]);
|
||||
resolve("loadersection");
|
||||
});
|
||||
@ -246,12 +240,7 @@ export function rSectionList() {
|
||||
y:0,
|
||||
z:position.z
|
||||
};
|
||||
// console.log(origin+"******************************");
|
||||
// console.log(start);
|
||||
// console.log(origin);
|
||||
if(scope.sections.datalist[start].standTrack == true && start != origin){
|
||||
// console.log(start+"到达");
|
||||
// console.log("++++++++++++++++++++++++");
|
||||
return ;
|
||||
}else if(scope.sections.datalist[start].rsection == undefined){
|
||||
return ;
|
||||
@ -420,11 +409,7 @@ export function rSectionList() {
|
||||
];
|
||||
}
|
||||
|
||||
// console.log(data.ctype);
|
||||
if(type == "cross"){
|
||||
// console.log(data.ctype);
|
||||
// console.log(scope.sections.datalist[data.code].points.length);
|
||||
// console.log(scope.sections.datalist[data.code]);
|
||||
if(data.ctype == "1"||data.ctype == "2" ){
|
||||
|
||||
|
||||
@ -769,16 +754,13 @@ export function rSectionList() {
|
||||
let acode = switch2d[i].sectionACode;
|
||||
let bcode = switch2d[i].sectionBCode;
|
||||
let ccode = switch2d[i].sectionCCode;
|
||||
// console.log(switchdata[i]);
|
||||
|
||||
// console.log(scope.sections.datalist[acode]);
|
||||
let aposx = (scope.sections.datalist[acode].points[0].x + scope.sections.datalist[acode].points[scope.sections.datalist[acode].pointslength].x)/2;
|
||||
let cposx = (scope.sections.datalist[ccode].points[0].x + scope.sections.datalist[ccode].points[scope.sections.datalist[ccode].pointslength].x)/2;
|
||||
|
||||
let aposy = (scope.sections.datalist[acode].points[0].y + scope.sections.datalist[acode].points[scope.sections.datalist[acode].pointslength].y)/2;
|
||||
let cposy = (scope.sections.datalist[ccode].points[0].y + scope.sections.datalist[ccode].points[scope.sections.datalist[ccode].pointslength].y)/2;
|
||||
|
||||
// console.log("----------------");
|
||||
if(aposx > cposx){
|
||||
if(aposy < cposy){
|
||||
// ——A
|
||||
|
@ -13,7 +13,6 @@ export function rSignalList() {
|
||||
this.initpromise = function(jlmap3ddata,data,scene,assetloader,netdata){
|
||||
return new Promise(function(resolve, reject){
|
||||
scope.group.name = "signal";
|
||||
// console.log(data);
|
||||
//遍历信号数据
|
||||
let netsignal = null;
|
||||
let haddata = false;
|
||||
@ -32,7 +31,6 @@ export function rSignalList() {
|
||||
if(data[i].virtual == false){
|
||||
let newsignal = new SignalModel(data[i]);
|
||||
if(haddata == false){
|
||||
// console.log(data[i])
|
||||
let newmesh = assetloader.modellist[num].mesh.clone(true);
|
||||
|
||||
newmesh.name = data[i].name;
|
||||
@ -154,7 +152,6 @@ export function rSignalList() {
|
||||
if(data[n].virtual == false){
|
||||
let newsignal = new SignalModel(signaldata[i]);
|
||||
|
||||
// console.log(signaldata[i]);
|
||||
let newmesh = assetloader.modellist[num].mesh.clone(true);
|
||||
newmesh.sectionCode = data[n].sectionCode;
|
||||
newmesh.sectionOffset = data[n].sectionOffset;
|
||||
@ -191,7 +188,6 @@ export function rSignalList() {
|
||||
});
|
||||
};
|
||||
this.resetsignal = function(jlmap3ddata){
|
||||
// console.log(jlmap3ddata.linksgroup);
|
||||
let sectiondata = jlmap3ddata.sectionlist.sectiongroup.children;
|
||||
for(let i=0;i<scope.group.children.length;i++){
|
||||
let signaldata = scope.group.children[i];
|
||||
@ -200,7 +196,6 @@ export function rSignalList() {
|
||||
if(sectiondata[j].code == signaldata.sectionCode){
|
||||
let section = sectiondata[j];
|
||||
let posx = null;
|
||||
// console.log(section);
|
||||
|
||||
posx = section.railpoint[0].x + signaldata.sectionOffset;
|
||||
|
||||
|
@ -14,11 +14,9 @@ export function rSwitchList() {
|
||||
};
|
||||
|
||||
this.initpromise = function(jlmap3ddata,data,scene,assetloader,netdata){
|
||||
// console.log(jlmap3ddata);
|
||||
return new Promise(function(resolve, reject){
|
||||
scene.add( scope.switchgroup );
|
||||
let sectiondata = jlmap3ddata.sectionlist.sections.datalist;
|
||||
// console.log(sectiondata);
|
||||
let num;
|
||||
for(let j=0;j<assetloader.modellist.length;j++){
|
||||
if(assetloader.modellist[j].deviceType == "autoswitch"){
|
||||
@ -58,7 +56,6 @@ export function rSwitchList() {
|
||||
return new Promise(function(resolve, reject){
|
||||
scene.add( scope.switchgroup );
|
||||
// let sectiondata = jlmap3ddata.sectionlist.sections.datalist;
|
||||
// console.log(sectiondata);
|
||||
let num;
|
||||
for(let j=0;j<assetloader.modellist.length;j++){
|
||||
if(assetloader.modellist[j].type == "switch"){
|
||||
@ -70,7 +67,6 @@ export function rSwitchList() {
|
||||
}
|
||||
};
|
||||
for(let i=0,leni = switchdata.length;i<leni;i++){
|
||||
// console.log(switchdata[i]);
|
||||
let newswitch = {
|
||||
code:switchdata[i].code,
|
||||
name:switchdata[i].name,
|
||||
@ -79,7 +75,6 @@ export function rSwitchList() {
|
||||
pc:switchdata[i].pc
|
||||
};
|
||||
|
||||
// console.log(newswitch.pa);
|
||||
let autoswitch = assetloader.modellist[num].mesh.clone(true);
|
||||
autoswitch.code = switchdata[i].code;
|
||||
for(let j=0;j<autoswitch.children.length;j++){
|
||||
@ -101,7 +96,6 @@ export function rSwitchList() {
|
||||
}
|
||||
|
||||
this.resetswitch = function(data){
|
||||
// console.log("reset");
|
||||
let sectiondata = data.sectionlist.sectiongroup;
|
||||
for(let i=0;i<scope.switchs.datalist.length;i++){
|
||||
|
||||
|
@ -61,12 +61,7 @@ export function RailList(){
|
||||
x:circle1.position.x,
|
||||
z:circle1.position.z
|
||||
}];
|
||||
// console.log(i);
|
||||
// console.log(section[i].mesh);
|
||||
// console.log(mapdata.sectionlist.sections.datalist[i].rail);
|
||||
// console.log("=======================");
|
||||
}
|
||||
// console.log(n);
|
||||
// for(let i=0;i<mapdata.switchlist.switchgroup.children.length;i++){
|
||||
// var geometry = new THREE.CircleBufferGeometry( 1, 16 );
|
||||
// var material = new THREE.MeshBasicMaterial( { color: 0xff00ff } );
|
||||
|
@ -36,7 +36,6 @@ export function SectionList() {
|
||||
if(sectiondata[i].type == "01" || sectiondata[i].type == "03"){
|
||||
//初始化区段对象数据
|
||||
let newsection = new SectionModel(sectiondata[i]);
|
||||
// console.log(sectiondata[i]);
|
||||
newsection.name = sectiondata[i].name;
|
||||
newsection.code = sectiondata[i].code;
|
||||
newsection.index = i;
|
||||
@ -49,7 +48,6 @@ export function SectionList() {
|
||||
newsection.points = sectiondata[i].points;
|
||||
newsection.pointslength = sectiondata[i].points.length-1;
|
||||
newsection.railpoint = [];
|
||||
// console.log(sectiondata[i].points.length);
|
||||
newsection.standTrack = sectiondata[i].standTrack;
|
||||
|
||||
newsection.endbuild = false;
|
||||
@ -97,7 +95,6 @@ export function SectionList() {
|
||||
let acode = switchdata[i].sectionACode;
|
||||
let bcode = switchdata[i].sectionBCode;
|
||||
let ccode = switchdata[i].sectionCCode;
|
||||
// console.log(switchdata[i]);
|
||||
|
||||
|
||||
let aposx = (scope.sections.datalist[acode].points[0].x + scope.sections.datalist[acode].points[scope.sections.datalist[acode].pointslength].x)/2;
|
||||
@ -106,7 +103,6 @@ export function SectionList() {
|
||||
let aposy = (scope.sections.datalist[acode].points[0].y + scope.sections.datalist[acode].points[scope.sections.datalist[acode].pointslength].y)/2;
|
||||
let cposy = (scope.sections.datalist[ccode].points[0].y + scope.sections.datalist[ccode].points[scope.sections.datalist[ccode].pointslength].y)/2;
|
||||
|
||||
// console.log("----------------");
|
||||
if(aposx > cposx){
|
||||
if(aposy < cposy){
|
||||
// ——A
|
||||
@ -175,7 +171,6 @@ export function SectionList() {
|
||||
reals:[],
|
||||
posx:null,
|
||||
};
|
||||
// console.log(stationlist[i]);
|
||||
|
||||
// realstopsection.stands.push();
|
||||
for(let n=0,lenn = stationlist[i].stands.length;n<lenn;n++){
|
||||
@ -384,7 +379,6 @@ export function SectionList() {
|
||||
}
|
||||
//根据站台区段创建站台位置 120停车点距离
|
||||
for(let j=0,lenj=stations.length;j<lenj;j++){
|
||||
// console.log(j);
|
||||
let direction1 = scope.sections.datalist[stations[j].stands[0].section];
|
||||
let direction2 = scope.sections.datalist[stations[j].stands[1].section];
|
||||
|
||||
@ -404,7 +398,6 @@ export function SectionList() {
|
||||
}
|
||||
|
||||
// scope.sections.datalist[stations[0].stands[0].section].endbuild = true;
|
||||
console.log("START BUILD !!!!!!!!!!!!!!!!!");
|
||||
buildsectionall(scope.sections.datalist[stations[0].stands[0].section]);
|
||||
resolve("loadersection");
|
||||
});
|
||||
@ -492,12 +485,7 @@ export function SectionList() {
|
||||
y:0,
|
||||
z:position.z
|
||||
};
|
||||
// console.log(origin+"******************************");
|
||||
// console.log(start);
|
||||
// console.log(origin);
|
||||
if(scope.sections.datalist[start].standTrack == true && start != origin){
|
||||
// console.log(start+"到达");
|
||||
// console.log("++++++++++++++++++++++++");
|
||||
return ;
|
||||
}else if(scope.sections.datalist[start].rsection == undefined){
|
||||
return ;
|
||||
@ -666,11 +654,7 @@ export function SectionList() {
|
||||
];
|
||||
}
|
||||
|
||||
// console.log(data.ctype);
|
||||
if(type == "cross"){
|
||||
// console.log(data.ctype);
|
||||
// console.log(scope.sections.datalist[data.code].points.length);
|
||||
// console.log(scope.sections.datalist[data.code]);
|
||||
if(data.ctype == "1"||data.ctype == "2" ){
|
||||
|
||||
|
||||
@ -1015,16 +999,13 @@ export function SectionList() {
|
||||
let acode = switch2d[i].sectionACode;
|
||||
let bcode = switch2d[i].sectionBCode;
|
||||
let ccode = switch2d[i].sectionCCode;
|
||||
// console.log(switchdata[i]);
|
||||
|
||||
// console.log(scope.sections.datalist[acode]);
|
||||
let aposx = (scope.sections.datalist[acode].points[0].x + scope.sections.datalist[acode].points[scope.sections.datalist[acode].pointslength].x)/2;
|
||||
let cposx = (scope.sections.datalist[ccode].points[0].x + scope.sections.datalist[ccode].points[scope.sections.datalist[ccode].pointslength].x)/2;
|
||||
|
||||
let aposy = (scope.sections.datalist[acode].points[0].y + scope.sections.datalist[acode].points[scope.sections.datalist[acode].pointslength].y)/2;
|
||||
let cposy = (scope.sections.datalist[ccode].points[0].y + scope.sections.datalist[ccode].points[scope.sections.datalist[ccode].pointslength].y)/2;
|
||||
|
||||
// console.log("----------------");
|
||||
if(aposx > cposx){
|
||||
if(aposy < cposy){
|
||||
// ——A
|
||||
|
@ -13,7 +13,6 @@ export function SignalList() {
|
||||
this.initpromise = function(jlmap3ddata,data,scene,assetloader,netdata){
|
||||
return new Promise(function(resolve, reject){
|
||||
scope.group.name = "signal";
|
||||
// console.log(data);
|
||||
//遍历信号数据
|
||||
let netsignal = null;
|
||||
let haddata = false;
|
||||
@ -32,7 +31,6 @@ export function SignalList() {
|
||||
if(data[i].virtual == false){
|
||||
let newsignal = new SignalModel(data[i]);
|
||||
if(haddata == false){
|
||||
// console.log(data[i])
|
||||
let newmesh = assetloader.modellist[num].mesh.clone(true);
|
||||
|
||||
newmesh.name = data[i].name;
|
||||
@ -154,7 +152,6 @@ export function SignalList() {
|
||||
if(data[n].virtual == false){
|
||||
let newsignal = new SignalModel(signaldata[i]);
|
||||
|
||||
// console.log(signaldata[i]);
|
||||
let newmesh = assetloader.modellist[num].mesh.clone(true);
|
||||
newmesh.sectionCode = data[n].sectionCode;
|
||||
newmesh.sectionOffset = data[n].sectionOffset;
|
||||
@ -191,7 +188,6 @@ export function SignalList() {
|
||||
});
|
||||
};
|
||||
this.resetsignal = function(jlmap3ddata){
|
||||
// console.log(jlmap3ddata.linksgroup);
|
||||
let sectiondata = jlmap3ddata.sectionlist.sectiongroup.children;
|
||||
for(let i=0;i<scope.group.children.length;i++){
|
||||
let signaldata = scope.group.children[i];
|
||||
@ -200,7 +196,6 @@ export function SignalList() {
|
||||
if(sectiondata[j].code == signaldata.sectionCode){
|
||||
let section = sectiondata[j];
|
||||
let posx = null;
|
||||
// console.log(section);
|
||||
|
||||
posx = section.railpoint[0].x + signaldata.sectionOffset;
|
||||
|
||||
|
@ -83,18 +83,14 @@ export function StationStandList() {
|
||||
}
|
||||
|
||||
}
|
||||
console.log(scope.list);
|
||||
resolve("loadedstation");
|
||||
});
|
||||
}
|
||||
this.loadpromise = function(jlmap3ddata,standsdata,jlmapdata,scene,assetloader,otherStation){
|
||||
return new Promise(function(resolve, reject){
|
||||
// console.log(jlmap3ddata);
|
||||
let jlmapstationdata = jlmapdata.stationList;
|
||||
let jlmapstanddata = jlmapdata.stationStandList;
|
||||
// jlmapstationdata.splice(0,1);
|
||||
console.log(standsdata);
|
||||
console.log(jlmapstationdata);
|
||||
// for(let i=0;i<jlmapstationdata.length;i++){// || jlmapstationdata[i].subheadDisplay == false
|
||||
// if(jlmapstationdata[i].visible == false){
|
||||
// jlmapstationdata.splice(i,1);
|
||||
@ -103,30 +99,19 @@ export function StationStandList() {
|
||||
// standsdata[i].code = jlmapstationdata[i].code;
|
||||
// standsdata[i].name = jlmapstationdata[i].name;
|
||||
// }
|
||||
// // console.log(jlmapstationdata[i].subheadDisplay);
|
||||
// }
|
||||
|
||||
// console.log(jlmapstationdata);
|
||||
console.log(standsdata);
|
||||
//
|
||||
// console.log(jlmapstationdata);
|
||||
//
|
||||
// console.log(standsdata);
|
||||
// console.log(jlmapstationdata);
|
||||
for(let i=0;i<jlmapstationdata.length;i++){
|
||||
if(jlmapstationdata[i].visible == false || jlmapstationdata[i].depot == true){
|
||||
jlmapstationdata.splice(i,1);
|
||||
i--;
|
||||
}else{
|
||||
// console.log(jlmapstationdata[i]);
|
||||
// console.log(standsdata[i]);
|
||||
standsdata[i].code = jlmapstationdata[i].code;
|
||||
standsdata[i].name = jlmapstationdata[i].name;
|
||||
}
|
||||
}
|
||||
// console.log(otherStation);
|
||||
// console.log(standsdata);
|
||||
// console.log(assetloader.modellist);
|
||||
let stations = jlmap3ddata.stationstandlist.list;
|
||||
let num;
|
||||
let num2;
|
||||
@ -154,9 +139,6 @@ export function StationStandList() {
|
||||
num3 = j;
|
||||
}
|
||||
}
|
||||
// console.log("+++++++++++++");
|
||||
// console.log(jlmapstanddata);
|
||||
// console.log(standsdata);
|
||||
for(let i=0;i<standsdata.length;i++){
|
||||
let newstationstand = new StationStandModel(standsdata[i]);
|
||||
let newstationmesh;
|
||||
@ -186,7 +168,6 @@ export function StationStandList() {
|
||||
newstationstand.name = standsdata[i].name;
|
||||
newstationstand.inside = standsdata[i].inside;
|
||||
|
||||
// console.log(standsdata[i]);
|
||||
newstationmesh.code = standsdata[i].code;
|
||||
newstationmesh.name = standsdata[i].name;
|
||||
newstationmesh.meshtype = "station";
|
||||
@ -211,13 +192,11 @@ export function StationStandList() {
|
||||
}else{
|
||||
newstationmesh = assetloader.modellist[num2].mesh.clone(true);
|
||||
}
|
||||
// console.log(jlmapstanddata[j]);
|
||||
|
||||
newstationstand.code = standsdata[i].code;
|
||||
newstationstand.name = standsdata[i].name;
|
||||
newstationstand.inside = standsdata[i].inside;
|
||||
|
||||
// console.log(standsdata[i]);
|
||||
newstationmesh.code = standsdata[i].code;
|
||||
newstationmesh.name = standsdata[i].name;
|
||||
newstationmesh.meshtype = "station";
|
||||
@ -232,11 +211,9 @@ export function StationStandList() {
|
||||
scope.list.push(newstationstand);
|
||||
}else{
|
||||
newstationmesh = assetloader.modellist[num3].mesh.clone(true);
|
||||
// console.log(jlmapstanddata[j]);
|
||||
newstationstand.code = standsdata[i].code;
|
||||
newstationstand.name = standsdata[i].name;
|
||||
newstationstand.inside = standsdata[i].inside;
|
||||
// console.log(standsdata[i]);
|
||||
newstationmesh.code = standsdata[i].code;
|
||||
newstationmesh.name = standsdata[i].name;
|
||||
newstationmesh.position.x = standsdata[i].position.x;
|
||||
|
@ -14,11 +14,9 @@ export function SwitchList() {
|
||||
};
|
||||
|
||||
this.initpromise = function(jlmap3ddata,data,scene,assetloader,netdata){
|
||||
// console.log(jlmap3ddata);
|
||||
return new Promise(function(resolve, reject){
|
||||
scene.add( scope.switchgroup );
|
||||
let sectiondata = jlmap3ddata.sectionlist.sections.datalist;
|
||||
// console.log(sectiondata);
|
||||
let num;
|
||||
for(let j=0;j<assetloader.modellist.length;j++){
|
||||
if(assetloader.modellist[j].deviceType == "autoswitch"){
|
||||
@ -58,7 +56,6 @@ export function SwitchList() {
|
||||
return new Promise(function(resolve, reject){
|
||||
scene.add( scope.switchgroup );
|
||||
// let sectiondata = jlmap3ddata.sectionlist.sections.datalist;
|
||||
// console.log(sectiondata);
|
||||
let num;
|
||||
for(let j=0;j<assetloader.modellist.length;j++){
|
||||
if(assetloader.modellist[j].type == "switch"){
|
||||
@ -70,7 +67,6 @@ export function SwitchList() {
|
||||
}
|
||||
};
|
||||
for(let i=0,leni = switchdata.length;i<leni;i++){
|
||||
// console.log(switchdata[i]);
|
||||
let newswitch = {
|
||||
code:switchdata[i].code,
|
||||
name:switchdata[i].name,
|
||||
@ -79,7 +75,6 @@ export function SwitchList() {
|
||||
pc:switchdata[i].pc
|
||||
};
|
||||
|
||||
// console.log(newswitch.pa);
|
||||
let autoswitch = assetloader.modellist[num].mesh.clone(true);
|
||||
autoswitch.code = switchdata[i].code;
|
||||
for(let j=0;j<autoswitch.children.length;j++){
|
||||
@ -101,7 +96,6 @@ export function SwitchList() {
|
||||
}
|
||||
|
||||
this.resetswitch = function(data){
|
||||
// console.log("reset");
|
||||
let sectiondata = data.sectionlist.sectiongroup;
|
||||
for(let i=0;i<scope.switchs.datalist.length;i++){
|
||||
|
||||
|
@ -76,7 +76,6 @@ let onProgress = function ( xhr ) {
|
||||
if ( xhr.lengthComputable ) {
|
||||
|
||||
let percentComplete = xhr.loaded / xhr.total * 100;
|
||||
//console.log( Math.round( percentComplete, 2 ) + '% downloaded' );
|
||||
|
||||
}
|
||||
|
||||
|
@ -46,7 +46,6 @@ export function SetObj(data,scope) {
|
||||
if(data.sectionList[i].type == "01"){
|
||||
|
||||
if(data.sectionList[i].points.length>=3){
|
||||
console.log(data.sectionList[i]);
|
||||
|
||||
for(let j=1;j<data.sectionList[i].points.length;j++){
|
||||
point1 = data.sectionList[i].points[j-1];
|
||||
@ -203,7 +202,5 @@ export function SetObj(data,scope) {
|
||||
group.add(object);
|
||||
}
|
||||
|
||||
console.log("setobj");
|
||||
scope.exportmodel = group;
|
||||
console.log(group);
|
||||
}
|
||||
|
@ -15,17 +15,12 @@
|
||||
|
||||
var intersects4 = raycaster4.intersectObjects( helppoints[i] );
|
||||
|
||||
//// //console.log(raycaster1);
|
||||
if(intersects1[0] != undefined){
|
||||
// // //console.log("intersects1");
|
||||
// // //console.log(intersects1[0]);
|
||||
intersects1[0].name = "1";
|
||||
mindistance = intersects1[0].distance;
|
||||
result = intersects1[0];
|
||||
}
|
||||
if(intersects2[0] != undefined){
|
||||
// // //console.log("intersects2");
|
||||
// // //console.log(mindistance);
|
||||
intersects2[0].name = "2";
|
||||
if(mindistance == undefined){
|
||||
mindistance = intersects2[0].distance;
|
||||
@ -38,8 +33,6 @@
|
||||
|
||||
}
|
||||
if(intersects3[0] != undefined){
|
||||
// // //console.log("intersects3");
|
||||
// // //console.log(mindistance);
|
||||
intersects3[0].name = "3";
|
||||
if(mindistance == undefined){
|
||||
mindistance = intersects3[0].distance;
|
||||
@ -50,8 +43,6 @@
|
||||
}
|
||||
}
|
||||
if(intersects4[0] != undefined){
|
||||
// // //console.log("intersects4");
|
||||
// // //console.log(mindistance);
|
||||
intersects4[0].name = "4";
|
||||
if(mindistance == undefined){
|
||||
mindistance = intersects4[0].distance;
|
||||
|
@ -485,7 +485,6 @@ export function Moveanimate(main){
|
||||
}
|
||||
|
||||
}else{
|
||||
// console.log(scope.animatelist[k].connectmodel);
|
||||
if(scope.nowmodelname != scope.playlist[scope.playorder][i].connectmodel.name){
|
||||
scope.nowmodelname = scope.playlist[scope.playorder][i].connectmodel.name;
|
||||
main.animationmsgshowon(scope.playlist[scope.playorder][i].connectmodel);
|
||||
|
@ -10,7 +10,6 @@ export function Textconfig(){
|
||||
if(scope.devicelist.length>0){
|
||||
scope.devicelist = [];
|
||||
}
|
||||
console.log(selectmodel.deviceType);
|
||||
if(selectmodel.deviceType == "DeviceSwitch"){
|
||||
initSwitchText(selectmodel);
|
||||
}
|
||||
@ -92,9 +91,6 @@ export function Textconfig(){
|
||||
}
|
||||
|
||||
|
||||
// if(part.text == null){
|
||||
// console.log(selectmodel.children[i].name);
|
||||
// }
|
||||
if(part.text){
|
||||
scope.devicelist.push(part);
|
||||
}
|
||||
@ -192,9 +188,6 @@ export function Textconfig(){
|
||||
part.msg = "用于机内外电缆连接,方便更换转辙机。";
|
||||
selectmodel.children[i].text = "二十位插接件";
|
||||
}
|
||||
// if(part.text == null){
|
||||
// console.log(selectmodel.children[i].name);
|
||||
// }
|
||||
if(part.text){
|
||||
scope.devicelist.push(part);
|
||||
}
|
||||
|
@ -143,11 +143,8 @@ export function Jl3ddeviceNew(dom,group,token,skinCode) {
|
||||
stationList.push(mapnetdata.stationList[i]);
|
||||
}
|
||||
}
|
||||
// console.log(mapnetdata.stationList);
|
||||
for(let k in psdVoiceStationList){
|
||||
for(let i=0,leni=stationList.length;i<leni;i++){
|
||||
// console.log("---------------");
|
||||
// console.log("---------------");
|
||||
if(psdVoiceStationList[k].stationCode == stationList[i].code){
|
||||
psdVoiceStationList[k].nowStationName = stationList[i].name;
|
||||
|
||||
@ -294,7 +291,6 @@ export function Jl3ddeviceNew(dom,group,token,skinCode) {
|
||||
for (let i = 0; i < scope.mixers.length; i++) {
|
||||
if (scope.mixers[i]) {
|
||||
if( scope.mixers[i].staticType){
|
||||
// console.log(scope.mixers[i].time);
|
||||
if(scope.mixers[i]._actions[0].time<stopTime){
|
||||
scope.mixers[i].update(delta);
|
||||
}else{
|
||||
@ -343,11 +339,7 @@ export function Jl3ddeviceNew(dom,group,token,skinCode) {
|
||||
scope.raycasterstatus = false;
|
||||
scope.nowobject = null;
|
||||
updatemenulist();
|
||||
if(data._type == "Station"){
|
||||
|
||||
console.log(data);
|
||||
}
|
||||
|
||||
if (data._type == "Switch") {
|
||||
// scope.modelmanager.switchmodel.locateType = data.body.locateType;
|
||||
scope.modelmanager.switchmodel.code = data.code;
|
||||
@ -493,8 +485,6 @@ export function Jl3ddeviceNew(dom,group,token,skinCode) {
|
||||
this.changeAnimate = function(type){
|
||||
//
|
||||
|
||||
console.log(type);
|
||||
// console.log(scope.modelmanager.staticswitchmodel);
|
||||
|
||||
// scope.modelmanager.staticswitchmodel.action["2kai"].reset();
|
||||
// scope.modelmanager.staticswitchmodel.action["5jiasuo"].reset();
|
||||
@ -520,7 +510,6 @@ export function Jl3ddeviceNew(dom,group,token,skinCode) {
|
||||
stopTime = 3.33;
|
||||
scope.modelmanager.staticswitchmodel.action.play();
|
||||
|
||||
console.log(scope.mixers);
|
||||
}
|
||||
if(type == "action2"){
|
||||
scope.camera.position.x = -7.23;
|
||||
@ -584,8 +573,6 @@ export function Jl3ddeviceNew(dom,group,token,skinCode) {
|
||||
scope.camera.position.y = 22.56;
|
||||
scope.camera.position.z = -1.348;
|
||||
scope.controls.target = new THREE.Vector3(-2.15,10,-1.348);
|
||||
// console.log(scope.camera.position);
|
||||
// console.log(scope.controls.target);
|
||||
scope.modelmanager.staticswitchmodel.action.reset();
|
||||
scope.modelmanager.staticswitchmodel.action.time = 23.36;
|
||||
stopTime = 26.66;
|
||||
|
@ -93,7 +93,6 @@ export function ModelManager(){
|
||||
Promise.all(initlist).then((result) => {
|
||||
resolve("success"); //['成功了', 'success']
|
||||
}).catch((error) => {
|
||||
//console.log(error);
|
||||
});
|
||||
|
||||
});
|
||||
|
@ -156,7 +156,6 @@ export function JLmapDriving(dom,data,mapId,storemod,translation,routegroup,proj
|
||||
getPublishMapDetail(mapId).then(data => {
|
||||
let mapnetdata = data.data;
|
||||
getPublish3dMapDetail(mapId).then(netdata => {
|
||||
// console.log(netdata);
|
||||
let assetsdata = JSON.parse(netdata.data.sections);
|
||||
|
||||
scope.datatype = "new";
|
||||
@ -271,7 +270,6 @@ export function JLmapDriving(dom,data,mapId,storemod,translation,routegroup,proj
|
||||
};
|
||||
|
||||
updatemmi.updatedrivingcode = function(code) {
|
||||
// console.log(trainlisttest);
|
||||
drivingcode = code;
|
||||
trainlisttest.group.children[0].children[0].add(controls3.getObject());
|
||||
controls3.getObject().position.x = 10;
|
||||
@ -313,7 +311,6 @@ export function JLmapDriving(dom,data,mapId,storemod,translation,routegroup,proj
|
||||
if(driverWebWorker){
|
||||
driverWebWorker.terminate();
|
||||
}
|
||||
// console.log(scope);
|
||||
// scope = null;
|
||||
};
|
||||
|
||||
@ -386,7 +383,6 @@ export function JLmapDriving(dom,data,mapId,storemod,translation,routegroup,proj
|
||||
realsectionlist = loadrealsectionlist;
|
||||
rails = loadrails;
|
||||
|
||||
console.log(trainlisttest);
|
||||
trainlisttest.group.children[0].getObjectByName("C6").add(cameracctv);
|
||||
}
|
||||
|
||||
@ -401,7 +397,6 @@ export function JLmapDriving(dom,data,mapId,storemod,translation,routegroup,proj
|
||||
};
|
||||
|
||||
this.eventoff = function() {
|
||||
// console.log("off");
|
||||
// raycaster交互模型点击事件
|
||||
document.getElementById('jlsimulation').removeEventListener( 'mousedown', onselect, false );
|
||||
// 窗口自适应
|
||||
@ -420,7 +415,6 @@ export function JLmapDriving(dom,data,mapId,storemod,translation,routegroup,proj
|
||||
camera.position.z = mesh.children[0].position.z;
|
||||
// controls.target = new THREE.Vector3(mesh.position.x,0,mesh.children[0].position.z);
|
||||
}
|
||||
// console.log(mesh);
|
||||
if (type == 'station') {
|
||||
camera.position.x = mesh.position.x;
|
||||
camera.position.y = mesh.position.y+800;
|
||||
@ -493,7 +487,6 @@ export function JLmapDriving(dom,data,mapId,storemod,translation,routegroup,proj
|
||||
}
|
||||
|
||||
if (scope.raycasterswitch == 'section') {
|
||||
// console.log(sectionlist.sections.modellist);
|
||||
let intersects = raycaster.intersectObjects( sectionlist.sections.modellist, true);
|
||||
if (intersects[0]) {
|
||||
|
||||
|
@ -81,7 +81,6 @@ export function Jl3dDrivingNew(mixers,updatemmi,sound,translation,routegroup,dri
|
||||
}
|
||||
|
||||
if(data.type == "DeviceCtrl_3D"){
|
||||
// console.log(data);
|
||||
if (data.body.type== 'SIGNAL' && signallist) {
|
||||
signalupdate(data.body);
|
||||
return;
|
||||
@ -201,8 +200,6 @@ export function Jl3dDrivingNew(mixers,updatemmi,sound,translation,routegroup,dri
|
||||
|
||||
}
|
||||
this.updatamap = function(newsectionlist,newlinklist,newsignallist,newstationstandlist,newtrainlisttest,newrealsectionlist,newrails,newtdt, materiallist, nowaction, scene) {
|
||||
// console.log(mapdata);
|
||||
// console.log(newtrainlisttest);
|
||||
trainmodel = newtrainlisttest.group.children[0];
|
||||
trainlisttest = newtrainlisttest;
|
||||
sectionlist = newsectionlist;
|
||||
@ -222,7 +219,6 @@ export function Jl3dDrivingNew(mixers,updatemmi,sound,translation,routegroup,dri
|
||||
|
||||
this.socketon = function(topic) {
|
||||
try {
|
||||
// console.log("teststomp");
|
||||
// scope.teststomp.subscribe(topic, callback, header);
|
||||
} catch (error) {
|
||||
console.error('websocket订阅失败');
|
||||
@ -255,13 +251,11 @@ export function Jl3dDrivingNew(mixers,updatemmi,sound,translation,routegroup,dri
|
||||
|
||||
// 仿真socket接口回调函数
|
||||
function callback(Response) {
|
||||
// console.log(Response);
|
||||
// 对象化数据
|
||||
|
||||
let data = JSON.parse(Response.body);
|
||||
// stats.update();
|
||||
// 遍历后台数据
|
||||
// console.log(data);
|
||||
|
||||
if(data.type == "Train_Position"){
|
||||
nowTrainRun(data.body);
|
||||
@ -306,7 +300,6 @@ export function Jl3dDrivingNew(mixers,updatemmi,sound,translation,routegroup,dri
|
||||
}
|
||||
|
||||
function DeviceDestroy(data){
|
||||
// console.log(data);
|
||||
for(let i=0,leni=data.length;i<leni;i++){
|
||||
|
||||
if(data[i].type == "SIGNAL"){
|
||||
@ -359,10 +352,6 @@ export function Jl3dDrivingNew(mixers,updatemmi,sound,translation,routegroup,dri
|
||||
}
|
||||
|
||||
function otherTrainUpdate(data,updateTrainModel){
|
||||
// console.log(data);
|
||||
// if(data.code = "336"){
|
||||
// console.log(data);
|
||||
// }
|
||||
if(rails.sectionrail[data.section]){
|
||||
if(data.section != updateTrainModel.nowsection){
|
||||
updateTrainModel.nowsection = data.section;
|
||||
@ -418,7 +407,6 @@ export function Jl3dDrivingNew(mixers,updatemmi,sound,translation,routegroup,dri
|
||||
// if(updateTrainModel.children[1].rotalist.length > 0 || updateTrainModel.children[2].rotalist.length > 0 || updateTrainModel.children[3].rotalist.length > 0 || updateTrainModel.children[4].rotalist.length > 0|| updateTrainModel.children[5].rotalist.length > 0){
|
||||
|
||||
for(let rs = 1;rs<updateTrainModel.children.length;rs++){
|
||||
//console.log(rs);
|
||||
if(updateTrainModel.children[rs].rotalist[0]){
|
||||
|
||||
let offsetz = parseFloat(updateTrainModel.children[rs].rotalist[0].posr.z) + parseFloat(updateTrainModel.children[rs].position.z);
|
||||
@ -441,13 +429,11 @@ export function Jl3dDrivingNew(mixers,updatemmi,sound,translation,routegroup,dri
|
||||
xh = updateTrainModel.children[rs].rotalist.length;
|
||||
}
|
||||
}
|
||||
//console.log(trainmodel.children[rs].rotalist.length);
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
// console.log(trainmodel.rotalist);
|
||||
// }
|
||||
|
||||
}else{
|
||||
@ -493,7 +479,6 @@ export function Jl3dDrivingNew(mixers,updatemmi,sound,translation,routegroup,dri
|
||||
|
||||
// if(updateTrainModel.children[1].rotalist.length > 0 || updateTrainModel.children[2].rotalist.length > 0 || updateTrainModel.children[3].rotalist.length > 0 || updateTrainModel.children[4].rotalist.length > 0|| updateTrainModel.children[5].rotalist.length > 0){
|
||||
for(let rs = 1;rs<updateTrainModel.children.length;rs++){
|
||||
//console.log(rs);
|
||||
if(updateTrainModel.children[rs].rotalist[0]){
|
||||
let offsetz = parseFloat(updateTrainModel.children[rs].rotalist[0].posr.z) - parseFloat(updateTrainModel.children[rs].matrixWorld.elements[14]);
|
||||
|
||||
@ -658,7 +643,6 @@ export function Jl3dDrivingNew(mixers,updatemmi,sound,translation,routegroup,dri
|
||||
if(trainmodel.children[1].rotalist.length > 0 || trainmodel.children[2].rotalist.length > 0 || trainmodel.children[3].rotalist.length > 0 || trainmodel.children[4].rotalist.length > 0|| trainmodel.children[5].rotalist.length > 0){
|
||||
|
||||
for(let rs = 1;rs<trainmodel.children.length;rs++){
|
||||
//console.log(rs);
|
||||
if(trainmodel.children[rs].rotalist[0]){
|
||||
|
||||
let offsetz = parseFloat(trainmodel.children[rs].rotalist[0].posr.z) + parseFloat(trainmodel.children[rs].position.z);
|
||||
@ -685,13 +669,10 @@ export function Jl3dDrivingNew(mixers,updatemmi,sound,translation,routegroup,dri
|
||||
xh = trainmodel.children[rs].rotalist.length;
|
||||
}
|
||||
}
|
||||
//console.log(trainmodel.children[rs].rotalist.length);
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
// console.log(trainmodel.rotalist);
|
||||
}
|
||||
|
||||
}else{
|
||||
@ -768,7 +749,6 @@ export function Jl3dDrivingNew(mixers,updatemmi,sound,translation,routegroup,dri
|
||||
|
||||
if(trainmodel.children[1].rotalist.length > 0 || trainmodel.children[2].rotalist.length > 0 || trainmodel.children[3].rotalist.length > 0 || trainmodel.children[4].rotalist.length > 0|| trainmodel.children[5].rotalist.length > 0){
|
||||
for(let rs = 1;rs<trainmodel.children.length;rs++){
|
||||
//console.log(rs);
|
||||
if(trainmodel.children[rs].rotalist[0]){
|
||||
let offsetz = parseFloat(trainmodel.children[rs].rotalist[0].posr.z) - parseFloat(trainmodel.children[rs].matrixWorld.elements[14]);
|
||||
trainmodel.children[rs].position.z += offsetz;
|
||||
@ -794,7 +774,6 @@ export function Jl3dDrivingNew(mixers,updatemmi,sound,translation,routegroup,dri
|
||||
xh = trainmodel.children[rs].rotalist.length;
|
||||
}
|
||||
}
|
||||
//console.log(trainmodel.children[rs].rotalist.length);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -817,10 +796,6 @@ export function Jl3dDrivingNew(mixers,updatemmi,sound,translation,routegroup,dri
|
||||
|
||||
|
||||
function traindoorupdate(data){
|
||||
// console.log(data);
|
||||
// console.log("direct:"+trainmodel.right);
|
||||
// console.log(trainmodel.openleft);
|
||||
// console.log(trainmodel.openright);
|
||||
if(trainmodel.code == data.trainCode){
|
||||
if(trainmodel.right == "0"){
|
||||
if(data.code == "2"){
|
||||
|
@ -4,11 +4,9 @@ export function UpdateTrain(camera,traindata,control){
|
||||
if(traindata != undefined && traindata.group.children[0]){//traindata.group.children[0].dispose == false
|
||||
|
||||
if(traindata.group.children[0].progress != null){
|
||||
// console.log(traindata.group);
|
||||
let trainmodel = traindata.group.children[0];
|
||||
if(trainmodel.speeds > 0 && trainmodel.speeds){
|
||||
let speed = null;
|
||||
// console.log(traindata.group.children[0].progress);
|
||||
if(traindata.group.children[0].progress >=0&&traindata.group.children[0].progress<=1){
|
||||
|
||||
let movecurve = trainmodel.curve;
|
||||
@ -44,7 +42,6 @@ export function UpdateTrain(camera,traindata,control){
|
||||
|
||||
if(trainmodel.children[1].rotalist.length > 0 || trainmodel.children[2].rotalist.length > 0 || trainmodel.children[3].rotalist.length > 0 || trainmodel.children[4].rotalist.length > 0|| trainmodel.children[5].rotalist.length > 0){
|
||||
for(let rs = 1;rs<6;rs++){
|
||||
//console.log(rs);
|
||||
if(trainmodel.children[rs].rotalist[0]){
|
||||
let offsetz = parseFloat(trainmodel.children[rs].matrixWorld.elements[14]) - parseFloat(trainmodel.children[rs].rotalist[0].posr.z);
|
||||
|
||||
@ -66,7 +63,6 @@ export function UpdateTrain(camera,traindata,control){
|
||||
xh = trainmodel.children[rs].rotalist.length;
|
||||
}
|
||||
}
|
||||
//console.log(trainmodel.children[rs].rotalist.length);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -103,7 +99,6 @@ export function UpdateTrain(camera,traindata,control){
|
||||
if(trainmodel.children[1].rotalist.length > 0 || trainmodel.children[2].rotalist.length > 0 || trainmodel.children[3].rotalist.length > 0 || trainmodel.children[4].rotalist.length > 0|| trainmodel.children[5].rotalist.length > 0){
|
||||
|
||||
for(let rs = 1;rs<6;rs++){
|
||||
//console.log(rs);
|
||||
if(trainmodel.children[rs].rotalist[0]){
|
||||
|
||||
let offsetz = parseFloat(trainmodel.children[rs].rotalist[0].posr.z) - parseFloat(trainmodel.children[rs].matrixWorld.elements[14]);
|
||||
@ -126,13 +121,10 @@ export function UpdateTrain(camera,traindata,control){
|
||||
xh = trainmodel.children[rs].rotalist.length;
|
||||
}
|
||||
}
|
||||
//console.log(trainmodel.children[rs].rotalist.length);
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
// console.log(trainmodel.rotalist);
|
||||
}
|
||||
trainmodel.progress += trainmodel.speeds;
|
||||
}
|
||||
@ -152,9 +144,6 @@ export function UpdateTrain(camera,traindata,control){
|
||||
trainmodel.nextcode = null;
|
||||
}
|
||||
|
||||
// console.log(trainmodel.name);
|
||||
// console.log(trainmodel.progress);
|
||||
// console.log(trainmodel.nextcurve);
|
||||
// if(trainmodel.status == "02"){
|
||||
// trainmodel.progress = 0;
|
||||
// }else if(trainmodel.status == "03"){
|
||||
@ -197,7 +186,6 @@ export function UpdateTrain(camera,traindata,control){
|
||||
|
||||
if(trainmodel.children[1].rotalist.length > 0 || trainmodel.children[2].rotalist.length > 0 || trainmodel.children[3].rotalist.length > 0 || trainmodel.children[4].rotalist.length > 0|| trainmodel.children[5].rotalist.length > 0){
|
||||
for(let rs = 1;rs<6;rs++){
|
||||
//console.log(rs);
|
||||
if(trainmodel.children[rs].rotalist[0]){
|
||||
let offsetz = parseFloat(trainmodel.children[rs].matrixWorld.elements[14]) - parseFloat(trainmodel.children[rs].rotalist[0].posr.z);
|
||||
|
||||
@ -219,7 +207,6 @@ export function UpdateTrain(camera,traindata,control){
|
||||
xh = trainmodel.children[rs].rotalist.length;
|
||||
}
|
||||
}
|
||||
//console.log(trainmodel.children[rs].rotalist.length);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -256,7 +243,6 @@ export function UpdateTrain(camera,traindata,control){
|
||||
if(trainmodel.children[1].rotalist.length > 0 || trainmodel.children[2].rotalist.length > 0 || trainmodel.children[3].rotalist.length > 0 || trainmodel.children[4].rotalist.length > 0|| trainmodel.children[5].rotalist.length > 0){
|
||||
|
||||
for(let rs = 1;rs<6;rs++){
|
||||
//console.log(rs);
|
||||
if(trainmodel.children[rs].rotalist[0]){
|
||||
|
||||
let offsetz = parseFloat(trainmodel.children[rs].rotalist[0].posr.z) - parseFloat(trainmodel.children[rs].matrixWorld.elements[14]);
|
||||
@ -279,16 +265,12 @@ export function UpdateTrain(camera,traindata,control){
|
||||
xh = trainmodel.children[rs].rotalist.length;
|
||||
}
|
||||
}
|
||||
//console.log(trainmodel.children[rs].rotalist.length);
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
// console.log(trainmodel.rotalist);
|
||||
}
|
||||
|
||||
// console.log(trainmodel.nextcurve);
|
||||
if(trainmodel.progress > -(trainmodel.speeds)){
|
||||
trainmodel.progress += trainmodel.speeds;
|
||||
}
|
||||
|
@ -106,7 +106,6 @@ export function Jl3dfaultdevice(dom,group,token,skinCode) {
|
||||
let topic = '/user/queue/simulation/'+ group +'/jl3d';
|
||||
let header = {'X-Token': token};
|
||||
try {
|
||||
// console.log("teststomp");
|
||||
teststomp.subscribe(topic, callback, header);
|
||||
} catch (error) {
|
||||
console.error('websocket订阅失败');
|
||||
@ -120,7 +119,6 @@ export function Jl3dfaultdevice(dom,group,token,skinCode) {
|
||||
// scope.selectmodel(data);
|
||||
// }else{
|
||||
if(data.type == "DeviceCtrl_3D"){
|
||||
// console.log(data.body);
|
||||
if(data.body.code == scope.nowcode){
|
||||
scope.updateaction(data.body);
|
||||
}
|
||||
@ -143,7 +141,6 @@ export function Jl3dfaultdevice(dom,group,token,skinCode) {
|
||||
this.anime = null;
|
||||
|
||||
this.modelmanager = new ModelManager();
|
||||
console.log(skinCode);
|
||||
getPublish3dMapDetail(skinCode).then(netdata => {
|
||||
let netDataAssets = JSON.parse(netdata.data.assets);
|
||||
setpsdstationmap(JSON.parse(netdata.data.stands));
|
||||
@ -206,7 +203,6 @@ export function Jl3dfaultdevice(dom,group,token,skinCode) {
|
||||
}
|
||||
|
||||
this.selectmodel = function (data) {
|
||||
console.log(data);
|
||||
if (scope.showmodel) {
|
||||
|
||||
if (scope.showmodel.code != data.code) {
|
||||
@ -250,7 +246,6 @@ export function Jl3dfaultdevice(dom,group,token,skinCode) {
|
||||
}
|
||||
|
||||
if (data.type == "STAND") {
|
||||
// console.log(data);
|
||||
scope.modelmanager.standmodel.code = data.code;
|
||||
scope.showmodel = scope.modelmanager.standmodel.mesh;
|
||||
scope.scene.add(scope.showmodel);
|
||||
@ -267,7 +262,6 @@ export function Jl3dfaultdevice(dom,group,token,skinCode) {
|
||||
|
||||
}
|
||||
if (data.type == "SECTION") {
|
||||
// console.log(data);
|
||||
scope.modelmanager.sectionmodel.code = data.code;
|
||||
scope.showmodel = scope.modelmanager.sectionmodel.mesh;
|
||||
scope.scene.add(scope.showmodel);
|
||||
@ -285,7 +279,6 @@ export function Jl3dfaultdevice(dom,group,token,skinCode) {
|
||||
} else {
|
||||
scope.nowcode = data.code;
|
||||
if (data.type == "room") {
|
||||
// console.log(scope.modelmanager.roommodel.mesh);
|
||||
scope.showmodel = scope.modelmanager.roommodel.mesh;
|
||||
scope.scene.add(scope.showmodel);
|
||||
scope.camera.position.set(5, 7, -9);
|
||||
@ -409,7 +402,6 @@ export function Jl3dfaultdevice(dom,group,token,skinCode) {
|
||||
}
|
||||
|
||||
settext(scope.animationmodel,scope.animationmodel.position);
|
||||
// console.log(scope.animationmodel);
|
||||
helpbox = new THREE.BoxHelper( scope.animationmodel, 0xff0000 );
|
||||
moveanima.updatehelpbox(helpbox,textplane);
|
||||
// settext(intersects[0].object,intersects[0].point);
|
||||
@ -548,13 +540,11 @@ export function Jl3dfaultdevice(dom,group,token,skinCode) {
|
||||
scope.modelmanager.standmodel.action.play();
|
||||
}
|
||||
this.updateselect = function(updata){
|
||||
// console.log(updata);
|
||||
if(helpbox){
|
||||
scope.scene.remove( helpbox );
|
||||
helpbox = null;
|
||||
}
|
||||
helpbox = new THREE.BoxHelper( updata.mesh, 0xff0000 );
|
||||
// console.log(updata.mesh);
|
||||
let point = {
|
||||
x:updata.mesh.matrixWorld.elements[12],
|
||||
y:updata.mesh.matrixWorld.elements[13],
|
||||
@ -566,7 +556,6 @@ export function Jl3dfaultdevice(dom,group,token,skinCode) {
|
||||
}
|
||||
|
||||
function getdevicemsg(selectname){
|
||||
// console.log(selectname);
|
||||
for(let i=0,leni=scope.devicetext.devicelist.length;i<leni;i++){
|
||||
|
||||
if(selectname == scope.devicetext.devicelist[i].name){
|
||||
@ -730,7 +719,6 @@ export function Jl3dfaultdevice(dom,group,token,skinCode) {
|
||||
textplane.position.x = point.x;
|
||||
textplane.position.y = point.y+6;
|
||||
textplane.position.z = point.z;
|
||||
// console.log(textplane.position);
|
||||
// textplane.tcode = data[i].code;
|
||||
textplane.rotation.y = -Math.PI/2;
|
||||
textplane.lookAt(scope.camera.position);
|
||||
@ -764,7 +752,6 @@ export function Jl3dfaultdevice(dom,group,token,skinCode) {
|
||||
ctx.textAlign = 'center';
|
||||
ctx.textBaseline = 'middle';
|
||||
ctx.clearRect(0,0,256,128);
|
||||
//console.log(text.groupNumber);
|
||||
ctx.drawImage(beauty,0,0,256, 128);
|
||||
ctx.fillText("设备部件:"+text, 90,30);
|
||||
// ctx.fillText("车组人员:XXX", 40,20);
|
||||
|
@ -700,7 +700,6 @@ export function jl3dFaultDeviceVr(dom,group,skinCode) {
|
||||
function onSelectStart( event ) {
|
||||
|
||||
var controller = event.target;
|
||||
// console.log(event);
|
||||
let clickGui = getGuiButton(controller);
|
||||
if(clickGui.length > 0){
|
||||
if(positionStatus == "dm"){
|
||||
@ -853,9 +852,7 @@ export function jl3dFaultDeviceVr(dom,group,skinCode) {
|
||||
|
||||
}else{
|
||||
var intersections = getIntersections( controller );
|
||||
// console.log(intersections);
|
||||
if ( intersections) {
|
||||
// console.log(intersections);
|
||||
var intersection = intersections[ 0 ];
|
||||
if(intersection.distance <3.5){
|
||||
if(positionStatus != intersection.object.name){
|
||||
@ -886,14 +883,12 @@ export function jl3dFaultDeviceVr(dom,group,skinCode) {
|
||||
let posx = intersection.point.x - trainControl.toptrain.position.x;
|
||||
let posz = intersection.point.z - trainControl.toptrain.position.z;
|
||||
human.position.set( posx, intersection.point.y+0.6, posz);
|
||||
// console.log(human.position);
|
||||
}
|
||||
if(positionStatus == "downfloor"){
|
||||
let posx = trainControl.downtrain.position.x - intersection.point.x;
|
||||
let posz = trainControl.downtrain.position.z - intersection.point.z;
|
||||
|
||||
human.position.set( posx, intersection.point.y+0.6, posz);
|
||||
// console.log(human.position);
|
||||
}
|
||||
let postData = {
|
||||
type:"syn",
|
||||
@ -929,9 +924,7 @@ export function jl3dFaultDeviceVr(dom,group,skinCode) {
|
||||
// if ( intersections.length > 0 ) {
|
||||
//
|
||||
// // for(){}
|
||||
// // console.log(intersections);
|
||||
// var intersection = intersections[ 0 ];
|
||||
// // console.log(intersection);
|
||||
// // tempMatrix.getInverse( controller.matrixWorld );
|
||||
// //
|
||||
// // var object = intersection.object;
|
||||
@ -957,7 +950,6 @@ export function jl3dFaultDeviceVr(dom,group,skinCode) {
|
||||
}
|
||||
|
||||
function squeezeStart(){
|
||||
console.log("squeeze");
|
||||
scope.modelmanager.otherDevice.action.play();
|
||||
if(positionStatus == "dm"){
|
||||
if(vrPlaneStatus){
|
||||
@ -986,7 +978,6 @@ export function jl3dFaultDeviceVr(dom,group,skinCode) {
|
||||
// }
|
||||
|
||||
// settext(scope.animationmodel,scope.animationmodel.position);
|
||||
// console.log(scope.animationmodel);
|
||||
// helpbox = new THREE.BoxHelper( scope.animationmodel, 0xff0000 );
|
||||
// moveanima.updatehelpbox(helpbox,textplane);
|
||||
// settext(intersects[0].object,intersects[0].point);
|
||||
@ -1022,7 +1013,6 @@ export function jl3dFaultDeviceVr(dom,group,skinCode) {
|
||||
raycastervr.ray.direction.set( 0, 0, - 1 ).applyMatrix4( tempMatrix );
|
||||
for(let i=0;i<3;i++){
|
||||
let rayObject = raycastervr.intersectObject( floors[i]);
|
||||
// console.log(rayObject);
|
||||
if(rayObject.length>0){
|
||||
return rayObject;
|
||||
}
|
||||
@ -1073,7 +1063,6 @@ export function jl3dFaultDeviceVr(dom,group,skinCode) {
|
||||
if ( intersections) {
|
||||
|
||||
var intersection = intersections[ 0 ];
|
||||
// console.log(intersection);
|
||||
if(intersection.distance <3.5){
|
||||
var object = intersection.object;
|
||||
circle.position.set( intersection.point.x, intersection.point.y+0.05, intersection.point.z );
|
||||
@ -1131,7 +1120,6 @@ export function jl3dFaultDeviceVr(dom,group,skinCode) {
|
||||
}
|
||||
|
||||
function getdevicemsg(selectname){
|
||||
// console.log(selectname);
|
||||
for(let i=0,leni=scope.devicetext.devicelist.length;i<leni;i++){
|
||||
|
||||
if(selectname == scope.devicetext.devicelist[i].name){
|
||||
@ -1205,7 +1193,6 @@ export function jl3dFaultDeviceVr(dom,group,skinCode) {
|
||||
|
||||
|
||||
}
|
||||
// console.log(scope.nowstation);
|
||||
}
|
||||
|
||||
function initstationanimation(object){
|
||||
|
@ -299,7 +299,6 @@ export function MoveanimateVr(main){
|
||||
}
|
||||
//动画播放器
|
||||
this.animateupdate = function(){
|
||||
// console.log(scope.animatelist);
|
||||
|
||||
if(scope.enable){
|
||||
if(scope.playlist){
|
||||
@ -335,7 +334,6 @@ export function MoveanimateVr(main){
|
||||
|
||||
|
||||
}else{
|
||||
// console.log(scope.animatelist[k].connectmodel);
|
||||
if(scope.nowmodelname != scope.playlist[scope.playorder][i].connectmodel.name){
|
||||
scope.nowmodelname = scope.playlist[scope.playorder][i].connectmodel.name;
|
||||
main.animationmsgshowon(scope.playlist[scope.playorder][i].connectmodel);
|
||||
|
@ -18,7 +18,6 @@ function setTextVr(intersects,plane){
|
||||
textplane.position.x = 0;
|
||||
textplane.position.y = 1.55;
|
||||
textplane.position.z = 0.01;
|
||||
// console.log(textplane.position);
|
||||
// textplane.tcode = data[i].code;
|
||||
// textplane.rotation.y = -Math.PI/2;
|
||||
// scope.textlist.push(textplane);
|
||||
@ -51,7 +50,6 @@ function getTextCanvas(text){
|
||||
ctx.textAlign = 'center';
|
||||
ctx.textBaseline = 'middle';
|
||||
ctx.clearRect(0,0,256,128);
|
||||
//console.log(text.groupNumber);
|
||||
ctx.drawImage(beauty,0,0,256, 128);
|
||||
ctx.fillText("新的设备故障", 110,30);
|
||||
ctx.fillText(text.name, 110,65);
|
||||
|
@ -277,8 +277,6 @@ export function VrGui(){
|
||||
//
|
||||
// let nowGroupComponent = scope.homeGroup;
|
||||
this.setStationPlane = function(stations){
|
||||
// console.log(stations);
|
||||
// console.log(textures);
|
||||
let posX,posY;
|
||||
for(let i=0,leni = stations.length;i<leni;i++){
|
||||
|
||||
@ -368,7 +366,6 @@ export function VrGui(){
|
||||
}
|
||||
|
||||
this.updataDeviceFaultMsg = function(faultData){
|
||||
console.log(faultData);
|
||||
let textt = new THREE.CanvasTexture(getTextCanvas(faultData,"faultMsg"));
|
||||
scope.deviceGroup.getObjectByName("deviceText").material.map = textt;
|
||||
scope.deviceGroup.getObjectByName("deviceText").material.map.needsUpdate = true;
|
||||
@ -474,7 +471,6 @@ export function VrGui(){
|
||||
ctx.textAlign = 'center';
|
||||
ctx.textBaseline = 'middle';
|
||||
ctx.clearRect(0,0,128,64);
|
||||
//console.log(text.groupNumber);
|
||||
ctx.drawImage(beauty,0,0,128, 64);
|
||||
ctx.fillText(text.name, 64,32);
|
||||
//ctx.fillText(text.trainModel.name, width/2,height*3/4);
|
||||
@ -493,7 +489,6 @@ export function VrGui(){
|
||||
ctx.textAlign = 'center';
|
||||
ctx.textBaseline = 'middle';
|
||||
ctx.clearRect(0,0,128,64);
|
||||
//console.log(text.groupNumber);
|
||||
ctx.drawImage(beauty,0,0,128, 64);
|
||||
ctx.fillText("故障设备编号:", 64,16);
|
||||
ctx.fillText(text.name, 64,48);
|
||||
@ -513,7 +508,6 @@ export function VrGui(){
|
||||
ctx.textAlign = 'center';
|
||||
ctx.textBaseline = 'middle';
|
||||
ctx.clearRect(0,0,256,256);
|
||||
//console.log(text.groupNumber);
|
||||
ctx.drawImage(beauty,0,0,256, 256);
|
||||
ctx.fillText("当前车站信息", 128,32);
|
||||
ctx.fillText("车站名:"+text.name, 128,64);
|
||||
@ -540,7 +534,6 @@ export function VrGui(){
|
||||
ctx.textAlign = 'center';
|
||||
ctx.textBaseline = 'middle';
|
||||
ctx.clearRect(0,0,256,256);
|
||||
//console.log(text.groupNumber);
|
||||
ctx.drawImage(beauty,0,0,256, 256);
|
||||
ctx.fillText("当前故障信息", 128,32);
|
||||
ctx.fillText("故障设备:"+text.code, 128,64);
|
||||
|