Compare commits
842 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
97d1f08bbe | ||
|
|
7d0053eb71 | ||
|
|
666fb22c49 | ||
|
|
b319a89501 | ||
|
|
8e0b3be438 | ||
|
|
b0d92de738 | ||
|
|
92b3e25989 | ||
|
|
43c75c96a7 | ||
|
|
da0aa0cd0f | ||
|
|
b0c88b9df2 | ||
|
|
7c0ec5844a | ||
|
|
a4a64ef0f9 | ||
|
|
58bb25500e | ||
|
|
3d73c34343 | ||
|
|
f74fedc213 | ||
|
|
8ea49f9609 | ||
|
|
9ee71d29d4 | ||
|
|
039a67c35a | ||
|
|
e17749d47e | ||
|
|
21c859c8f1 | ||
|
|
4fe239c86f | ||
| ab62e56bbb | |||
| 5730b9c5cf | |||
|
|
d4992db198 | ||
|
|
5ccd1709a5 | ||
|
|
b48c1e0d78 | ||
|
|
fcdbbce7a9 | ||
|
|
d08194bfd8 | ||
|
|
55f579ef64 | ||
|
|
783e1c080b | ||
|
|
44cdb3273c | ||
|
|
dbc21cdbfa | ||
|
|
24d83cfd39 | ||
|
|
b213b721bb | ||
|
|
4ae42408c3 | ||
|
|
a9156f0954 | ||
|
|
3e7509cd44 | ||
|
|
24becb82e1 | ||
|
|
6608587edd | ||
|
|
5ad8cdecba | ||
|
|
6b4cca1ef7 | ||
|
|
dea0844829 | ||
|
|
bbd438d23f | ||
|
|
c88128b63b | ||
|
|
95c68942ed | ||
|
|
5db685baca | ||
|
|
fa710efea4 | ||
|
|
d0c3e1d9bd | ||
|
|
589ddd38f3 | ||
|
|
47d1500296 | ||
|
|
4a8f8bff6a | ||
|
|
2b9b87a3db | ||
|
|
b241128105 | ||
|
|
226e3271ee | ||
|
|
1c253fd713 | ||
|
|
ed81d3d398 | ||
|
|
09b54a29ab | ||
|
|
b27615baaf | ||
|
|
c735e7a5bb | ||
|
|
c78f591baf | ||
|
|
cfd8b072dd | ||
|
|
d18e34d2c9 | ||
|
|
53813795db | ||
|
|
8c3098e19a | ||
|
|
780a446aed | ||
|
|
375f01a6ab | ||
|
|
48aab7c1e9 | ||
|
|
d7cfe665e2 | ||
|
|
237c23bb70 | ||
|
|
4cd6302ee0 | ||
|
|
6a75709774 | ||
|
|
629dff1256 | ||
|
|
6d6d03c03c | ||
|
|
6122f53c8e | ||
|
|
5a7eea1052 | ||
|
|
25f3570c18 | ||
|
|
74e015bd12 | ||
|
|
da6a72807b | ||
|
|
bb7ebaea45 | ||
|
|
ae51b590af | ||
|
|
2ec3102eff | ||
|
|
f5f7d259a9 | ||
|
|
4364f88526 | ||
|
|
0f5e21a06c | ||
|
|
ddbaf5651a | ||
|
|
a847419ab5 | ||
|
|
d5fb41cbab | ||
|
|
25e7b754b7 | ||
|
|
a32ca3c849 | ||
|
|
6e979c5dcb | ||
|
|
8b578d4d8b | ||
|
|
52fcdbfe1e | ||
|
|
4559a7b5e2 | ||
|
|
567201563d | ||
|
|
772707ac42 | ||
|
|
4a6db824ba | ||
|
|
8b4c22e959 | ||
|
|
d7f1224df4 | ||
|
|
ac4e0e2077 | ||
|
|
56a6f199c0 | ||
|
|
0abb765b32 | ||
|
|
4f8fdb83d1 | ||
|
|
300b220de2 | ||
|
|
825d2cc46a | ||
|
|
95b602e6d4 | ||
|
|
a7b5bbf0bf | ||
|
|
dfbba11aae | ||
|
|
5cf39e8aa8 | ||
|
|
a19a20ddd8 | ||
|
|
0985cc5d7c | ||
|
|
2be0be681e | ||
|
|
dd9ca8f956 | ||
|
|
5cd60d9a32 | ||
|
|
959ae1dee9 | ||
|
|
d2d1490e9b | ||
|
|
7bcd88c3a7 | ||
|
|
8e3368bd29 | ||
|
|
bc03ba88f0 | ||
|
|
2aee4b281d | ||
|
|
26647222e2 | ||
|
|
a2db45cace | ||
|
|
d761c0449b | ||
|
|
dc6a346fd4 | ||
|
|
e938c6b3d9 | ||
|
|
c9fef2a9d7 | ||
|
|
9319dd06c5 | ||
|
|
7b96ce84fc | ||
|
|
b105ff890c | ||
|
|
61b87304e6 | ||
|
|
83c8dc5f19 | ||
|
|
b1ddf540ca | ||
|
|
0025895696 | ||
|
|
1ec8cce63e | ||
|
|
865d52c135 | ||
|
|
ce8607af36 | ||
|
|
4e8a6300dd | ||
| 919e81da8b | |||
|
|
18cb6dbde8 | ||
| 6d405d16ed | |||
|
|
77d2176812 | ||
| c85eac3888 | |||
|
|
27d2d82fcd | ||
|
|
ecbc3c30c8 | ||
|
|
0a65efd235 | ||
|
|
5cd8fea60c | ||
|
|
3d1b4eb7c6 | ||
| ec1330bdb8 | |||
|
|
e66bcdb293 | ||
|
|
88f1876ef0 | ||
|
|
fdc1fd6fbd | ||
|
|
022d80f30e | ||
| f59f287b63 | |||
| 6e573cc597 | |||
| d2f92ecde4 | |||
|
|
b2a6a1de4e | ||
|
|
f374df79a6 | ||
|
|
154eb9f79c | ||
|
|
d0724cb7f6 | ||
| d6d63523a3 | |||
|
|
83998f88ac | ||
|
|
9c5e54507b | ||
|
|
15689b5284 | ||
|
|
00893d2d1f | ||
|
|
0079f7415e | ||
| 327801d040 | |||
|
|
6e22c01dd8 | ||
|
|
bccb4b1f17 | ||
|
|
1f37cc567c | ||
|
|
f81503091d | ||
|
|
e29f25653e | ||
|
|
9e8e44b886 | ||
|
|
6e10b0c645 | ||
|
|
c8f3b4eddc | ||
|
|
cc848b1ffb | ||
|
|
d2f0382bd9 | ||
|
|
9fecf0ce3f | ||
|
|
290586d0ff | ||
|
|
ddc45af223 | ||
|
|
0e6f123306 | ||
|
|
7b93363b23 | ||
|
|
2fd0dcb8a3 | ||
|
|
86ee05f8af | ||
|
|
38814b9f44 | ||
|
|
fb5d13671d | ||
|
|
310a769092 | ||
|
|
8c63edabdc | ||
|
|
5363625a2f | ||
| efcd6e1cfe | |||
| acc4d0ca67 | |||
| 772f38feca | |||
|
|
1eb141e559 | ||
|
|
16b446bf20 | ||
|
|
bc0de34c15 | ||
|
|
15f2c1ee41 | ||
|
|
81a944062a | ||
|
|
3c19b05f4b | ||
|
|
c1f53cdc69 | ||
|
|
6ef2a6049b | ||
|
|
9989cc98cb | ||
|
|
e192158deb | ||
|
|
2e5d551e5d | ||
|
|
4622eb36d9 | ||
|
|
9c53b7c18e | ||
|
|
7b3805060f | ||
|
|
629600bc00 | ||
|
|
8b144b63fc | ||
|
|
098ab3a41d | ||
|
|
2a53f577aa | ||
|
|
f8b7c224b7 | ||
|
|
f0b3bdd37c | ||
|
|
bb35eb749b | ||
|
|
b3750d6a7f | ||
|
|
33ebb91ab6 | ||
|
|
3e00f2fee7 | ||
|
|
68e9856641 | ||
|
|
51b2e80493 | ||
|
|
cf77572f41 | ||
| fe6524404c | |||
|
|
ccda7218f4 | ||
|
|
ddd0e6a22b | ||
|
|
ed85453de1 | ||
|
|
04939606fc | ||
|
|
2df455b667 | ||
|
|
8fb214d7a7 | ||
|
|
4f2c8a8016 | ||
|
|
c2974dbe0d | ||
|
|
3891e5459a | ||
|
|
9ed47ac5bc | ||
|
|
114fcd140d | ||
|
|
19a30894f8 | ||
|
|
2134fea518 | ||
|
|
82f495ce3b | ||
|
|
f2ecff54a3 | ||
|
|
f56004ac15 | ||
|
|
5303c47248 | ||
| 37731592f7 | |||
|
|
c9e41e0c82 | ||
|
|
4a80a88e6e | ||
|
|
30b219e14d | ||
|
|
ecec9adeea | ||
|
|
1853152138 | ||
| 5619413f37 | |||
|
|
5b736bc475 | ||
|
|
2aa37c3fe3 | ||
|
|
4e0cb72f32 | ||
|
|
ce74ec4db7 | ||
|
|
9938306884 | ||
|
|
ef63fcf807 | ||
|
|
08cffa4256 | ||
|
|
e1a740f8bf | ||
|
|
56d035253b | ||
|
|
e7348107d0 | ||
|
|
ea38b4eb21 | ||
| 67ef976739 | |||
| 60145ec4f7 | |||
|
|
81600ddc69 | ||
|
|
e0941d628b | ||
|
|
760dcbf723 | ||
|
|
b75ecb8c66 | ||
|
|
39f4cfa670 | ||
|
|
862251b83c | ||
|
|
312490ce59 | ||
|
|
d7df999cf2 | ||
|
|
e0b1b5907b | ||
|
|
f06ca03881 | ||
|
|
a9b80ed33c | ||
|
|
834230b26a | ||
|
|
403ddbfb6e | ||
|
|
ffb44ea909 | ||
|
|
b729e4efa1 | ||
|
|
962c286fd5 | ||
|
|
c215f51554 | ||
| 859c85b427 | |||
|
|
5fe637e84f | ||
|
|
5f68071c77 | ||
|
|
1675a5af31 | ||
|
|
ec1d09dbd0 | ||
|
|
eda7b516f6 | ||
|
|
630eb48d28 | ||
|
|
0d2f8a7788 | ||
| 230c68f454 | |||
| 68934060e6 | |||
| 846e7514b7 | |||
| 410cfb0f7a | |||
|
|
c892410b07 | ||
|
|
7caa4a5303 | ||
|
|
c17efbf9f6 | ||
| c46abeecf5 | |||
|
|
0947097932 | ||
|
|
50fc02d4eb | ||
|
|
a122e9e1b3 | ||
|
|
d7cfcc7855 | ||
|
|
05948aebf5 | ||
|
|
cca214aaf7 | ||
|
|
0111954c5e | ||
|
|
ce31499964 | ||
|
|
059864d193 | ||
|
|
6d2fb4dde8 | ||
|
|
49059d9c59 | ||
|
|
d2f7041988 | ||
|
|
f94372d20b | ||
|
|
9af98b034f | ||
|
|
341b8df5a9 | ||
|
|
7470f697bd | ||
|
|
c058b99a0d | ||
|
|
d5eed13f38 | ||
|
|
c27ee88182 | ||
|
|
e2559ffa65 | ||
|
|
a0bd32453c | ||
|
|
54e7a91841 | ||
|
|
042f6eef51 | ||
| c9857326c6 | |||
| 9c4e0094f9 | |||
| 781b27af51 | |||
|
|
37e257afc8 | ||
| 4d4fdd6190 | |||
|
|
0fd2d8252d | ||
|
|
3cf5019880 | ||
|
|
258d3d692f | ||
|
|
667ed3bcc0 | ||
|
|
a882189022 | ||
|
|
686e009243 | ||
|
|
30d5f3390c | ||
|
|
3398b414ca | ||
|
|
b6a2c42feb | ||
|
|
cb5a9050f2 | ||
|
|
661b27abd0 | ||
|
|
59a24c9ea2 | ||
|
|
6cf5da5d48 | ||
|
|
537f5e2f4c | ||
|
|
70531a0729 | ||
|
|
ded15e5c8b | ||
|
|
3021f7e4d3 | ||
|
|
876d9cfa00 | ||
|
|
8f28825162 | ||
|
|
0e6612f6bd | ||
|
|
39183fde5d | ||
|
|
b967419cb1 | ||
|
|
0712698638 | ||
|
|
d3a74e830f | ||
|
|
f68da773ab | ||
|
|
8db814dba4 | ||
|
|
7dcff99de5 | ||
|
|
97100dfa63 | ||
|
|
d41707fcf9 | ||
|
|
2377916f29 | ||
|
|
be2f40715a | ||
|
|
489c0882ac | ||
|
|
492db88b45 | ||
|
|
3b198eb4ed | ||
|
|
5efc27d4b6 | ||
|
|
ec9f270d04 | ||
|
|
afd2d467f3 | ||
|
|
ff0798450d | ||
|
|
fbefc70368 | ||
|
|
faa0bc54a6 | ||
|
|
bf5f4eab77 | ||
| 188456c970 | |||
|
|
c06334e96f | ||
| 82e8bf2e0b | |||
| 30382fb34d | |||
| c7e5ee0862 | |||
|
|
d6ac63586b | ||
|
|
e0fd42199f | ||
|
|
d9e3168484 | ||
|
|
dc7e91ca66 | ||
|
|
692358d278 | ||
| 3750031d6b | |||
| 0bae200241 | |||
|
|
61bd1a0d6a | ||
|
|
37cf3dfdd7 | ||
|
|
8be96ca64e | ||
|
|
d225391248 | ||
|
|
f2fd0b078e | ||
|
|
f71963ea3b | ||
|
|
6a635246bb | ||
|
|
d338ca6b25 | ||
|
|
193c3b963c | ||
|
|
cad4965b1b | ||
|
|
79306d846f | ||
|
|
f4ea510c5d | ||
|
|
07cc26fa8d | ||
|
|
f87e268242 | ||
|
|
1aeceffe0b | ||
|
|
fc97087767 | ||
|
|
61be97b04b | ||
|
|
934162875c | ||
|
|
4b3991099a | ||
|
|
b14a961c1a | ||
|
|
cbe41d80ce | ||
|
|
28203f2621 | ||
|
|
b8492dfbe6 | ||
|
|
15faac8079 | ||
|
|
ad850ca4ee | ||
|
|
6c05c6e06e | ||
|
|
8b2cda80b1 | ||
|
|
3f7756b417 | ||
|
|
5004e319b6 | ||
|
|
19035f2dc9 | ||
|
|
9d8a5c76b2 | ||
|
|
6300eb2f43 | ||
|
|
da58ffb621 | ||
|
|
1500fafb92 | ||
|
|
df53eea432 | ||
|
|
cc1771c208 | ||
|
|
5e881c0804 | ||
|
|
5666e01ae0 | ||
|
|
4acec8a2d6 | ||
|
|
426a511099 | ||
|
|
89303b44ae | ||
|
|
ffb82066bb | ||
|
|
f46b8c0a56 | ||
|
|
280289af37 | ||
| a0c7f79302 | |||
| bd1eecc106 | |||
|
|
1a23bcb510 | ||
|
|
942c28d3bd | ||
| 034b31ba47 | |||
|
|
7a76c2da8a | ||
|
|
1a9d8e8606 | ||
| 14583d919d | |||
|
|
629fd174e4 | ||
|
|
9080fe06a4 | ||
|
|
0e183bb5c1 | ||
| 8caf856d2d | |||
|
|
d28669e6b0 | ||
| 700884d01a | |||
| c06bd9fa24 | |||
| ce92a1d645 | |||
|
|
4f622da52c | ||
| 7d3e86a5fc | |||
|
|
c66d181b98 | ||
| f860630bfb | |||
|
|
6db4d79839 | ||
| e2924d5e57 | |||
| 92b9a82f21 | |||
|
|
c3f89ca1f8 | ||
|
|
8c435c91dd | ||
|
|
6e6cfa5be0 | ||
|
|
ea203d0ccc | ||
|
|
370cd52774 | ||
|
|
942bae3045 | ||
|
|
356548c8fb | ||
| 5c012c2bc9 | |||
| 9c9b8015a0 | |||
| bba0ced7f9 | |||
|
|
e8de7b56d9 | ||
|
|
95022f62a8 | ||
|
|
1d918f3335 | ||
|
|
f992637ad2 | ||
|
|
40f18bbdf8 | ||
|
|
3bb9cec08a | ||
|
|
6842260f59 | ||
|
|
305c30d725 | ||
|
|
e799dd2f08 | ||
| 1e83172e9a | |||
|
|
475d236b7e | ||
|
|
ddeb84fcfe | ||
|
|
b3aeebb7c7 | ||
|
|
b11f4839f4 | ||
|
|
4adc28a055 | ||
|
|
e46e9e1d3a | ||
|
|
4fcb26bbde | ||
|
|
6bd0e891fa | ||
|
|
15f1308557 | ||
|
|
9689197db9 | ||
|
|
4ad490657f | ||
|
|
9f8f8244e3 | ||
|
|
9206be2562 | ||
|
|
6065fd1f67 | ||
|
|
c16560a0ca | ||
|
|
440cfe1ac5 | ||
|
|
1ad1a0198e | ||
|
|
b603ac9bdb | ||
|
|
68aa4c409b | ||
|
|
f22b4e7fb8 | ||
|
|
400328d5fa | ||
|
|
cce3e6861a | ||
|
|
55368ce9b8 | ||
|
|
c6ef54f7d3 | ||
| 6f97c48226 | |||
| 5f45bc98fb | |||
|
|
5738594be2 | ||
|
|
ce47831992 | ||
| 634c2d84fc | |||
| 70855c5a21 | |||
|
|
b1e5e70411 | ||
|
|
bf2e3219fc | ||
|
|
2f5aeb9ffc | ||
| 9e8ed310fc | |||
| 07a5e32579 | |||
|
|
fe1bb04922 | ||
| a75e964adc | |||
|
|
87d22032e6 | ||
|
|
55ae64b3e1 | ||
|
|
891c6d8e93 | ||
|
|
ba7747dfe9 | ||
| b148c04059 | |||
|
|
4e179d61b5 | ||
|
|
b23ee84543 | ||
|
|
d02f85cea5 | ||
| ab02f8f1b3 | |||
| 8fc1d1ffc9 | |||
|
|
44b1da94c1 | ||
|
|
c2b63a7a3f | ||
|
|
56619c9140 | ||
|
|
99bbb5434d | ||
| 40c9c5fdad | |||
|
|
3ea2c93e43 | ||
|
|
6369c8ee63 | ||
|
|
da4bbf1e2c | ||
|
|
14e5535fd8 | ||
|
|
4e53bb3b27 | ||
| e793fdbe42 | |||
| 0e41a5b9f1 | |||
|
|
ac9dfd1669 | ||
|
|
72eb3e189b | ||
| 0cace11975 | |||
| b8e502b168 | |||
|
|
15502d0107 | ||
| cb4e4646bd | |||
| 93ce1b4994 | |||
|
|
1c452b5574 | ||
|
|
876c06ef54 | ||
|
|
37d65a944d | ||
|
|
7bc9321c86 | ||
|
|
ee564dccb6 | ||
| cdbb386c7c | |||
| 325ade7cdc | |||
|
|
fcd8c1a0dd | ||
|
|
fa1cb02a51 | ||
|
|
40fe12cd96 | ||
|
|
d83c04dc8b | ||
|
|
23b2974597 | ||
|
|
f5e78316ef | ||
|
|
cc2020f3d6 | ||
|
|
26cda335c5 | ||
|
|
171533cef0 | ||
|
|
69de6dd7a3 | ||
|
|
9039ed4bdc | ||
|
|
131d3b7018 | ||
|
|
454aabdc97 | ||
|
|
089c97d859 | ||
|
|
9ff5423368 | ||
|
|
f29d6e8d88 | ||
|
|
5199ee2db0 | ||
|
|
6de9e22b4c | ||
|
|
52968d9aaa | ||
|
|
b584142f5e | ||
|
|
edea30a406 | ||
|
|
1f3024eb91 | ||
| 8b9abba74b | |||
|
|
4dec1392f7 | ||
|
|
e54cbfbc0a | ||
|
|
505cd93446 | ||
|
|
f3ee11ebab | ||
|
|
45295ef898 | ||
|
|
0635dda6a0 | ||
|
|
f58f7b97e5 | ||
|
|
7556f0e5bc | ||
|
|
17fe29cb1b | ||
|
|
4bb4eb80d9 | ||
| ae1507e775 | |||
|
|
85d8a57bf7 | ||
|
|
42cf23a516 | ||
|
|
858cf75b46 | ||
|
|
de8a392d2c | ||
|
|
b614767b2d | ||
|
|
5ebb8549bf | ||
|
|
ead1feb379 | ||
|
|
1474c15bd9 | ||
|
|
f24f87dcc8 | ||
|
|
d416f46b3a | ||
| 352df35205 | |||
|
|
e5f201515e | ||
|
|
40520a7d30 | ||
|
|
cffbfe1380 | ||
|
|
839777ea4d | ||
|
|
5be1d22115 | ||
|
|
80d1912fd5 | ||
|
|
b94e0323d9 | ||
|
|
90f4e53e9f | ||
|
|
7ebad7d6b9 | ||
|
|
34534a1dbf | ||
| 645fac0681 | |||
| 0a23700403 | |||
|
|
c00f8843c0 | ||
|
|
8869974471 | ||
|
|
8125d60105 | ||
|
|
5a32d5b7a8 | ||
|
|
a1d113562b | ||
|
|
4a7535e4f5 | ||
|
|
de5548bbbd | ||
|
|
87c46e8477 | ||
|
|
edda224847 | ||
|
|
5ac6bbf04b | ||
|
|
b0a5329937 | ||
|
|
7a0626413d | ||
| fe04ad1573 | |||
|
|
689cc39bbc | ||
|
|
ba0c577514 | ||
|
|
a629907196 | ||
|
|
bf60bcfe12 | ||
|
|
27eb9a7d93 | ||
|
|
336ee843cc | ||
|
|
9eac101794 | ||
|
|
085fcc62aa | ||
|
|
99e6abbcfd | ||
| a4b96066e0 | |||
|
|
c4e2da8d67 | ||
|
|
1be15ee849 | ||
|
|
99bc54349b | ||
|
|
bf823ddff0 | ||
|
|
23e72f38a6 | ||
|
|
2d993b2f73 | ||
| 9703d35a3a | |||
|
|
d10a7a4884 | ||
|
|
938b9054d3 | ||
|
|
8a5bcca901 | ||
|
|
410cd53e51 | ||
|
|
4031724fa9 | ||
|
|
e95552e6b9 | ||
|
|
012f7e3346 | ||
|
|
cbe6c4a98d | ||
|
|
aa52778e99 | ||
|
|
5e8dda0b75 | ||
|
|
081aeacff7 | ||
|
|
65e54ee2b5 | ||
|
|
0fd6ebf810 | ||
|
|
fa4b5d26e5 | ||
|
|
23f45b38cb | ||
|
|
d76b055730 | ||
|
|
c334c07b39 | ||
|
|
45a5dcb068 | ||
|
|
3d9ba8b1cb | ||
|
|
c6836cad06 | ||
|
|
e70d1cb3f2 | ||
|
|
af454e1a56 | ||
|
|
6ce58e86ad | ||
| 2e17531c52 | |||
|
|
6b76d89507 | ||
|
|
e4025e39cb | ||
|
|
af12dc8d0a | ||
|
|
f0edeaee85 | ||
|
|
5cbdadecc4 | ||
|
|
30c1f90513 | ||
| c241d8b819 | |||
| 24f12a3590 | |||
|
|
f17f5c9925 | ||
|
|
99877b1c98 | ||
|
|
fdf91965d9 | ||
|
|
fd21d32f4a | ||
|
|
0a4385f29b | ||
|
|
63c6693d04 | ||
|
|
ff7084a332 | ||
|
|
b63e8897f5 | ||
|
|
dc3976f525 | ||
|
|
9b8765f001 | ||
| bbe23e1b14 | |||
|
|
5f0b36b3bb | ||
|
|
f0b75eae2f | ||
|
|
45e62b2750 | ||
|
|
d11e4822ed | ||
|
|
93b67fe845 | ||
|
|
ebc2ac1a41 | ||
|
|
4fd2f10ec6 | ||
|
|
2715871017 | ||
|
|
4cfca89895 | ||
| 53ead0e62f | |||
|
|
b00967159a | ||
|
|
1b37684e3c | ||
|
|
48f393be25 | ||
|
|
645fb83bce | ||
|
|
fe8bc407d3 | ||
|
|
d20cab57be | ||
|
|
68df3d5e23 | ||
|
|
8984bc577e | ||
|
|
07d02307e2 | ||
|
|
a027dc75c3 | ||
|
|
5da07d8631 | ||
|
|
d061fc9b32 | ||
|
|
ae47d429ba | ||
|
|
396d6a7336 | ||
|
|
fdf826d5f8 | ||
|
|
0db5fa650f | ||
|
|
53b4616a87 | ||
|
|
b923b7c35d | ||
|
|
8bd5351d29 | ||
|
|
726f7841e8 | ||
|
|
47883ce426 | ||
|
|
2459fc1848 | ||
|
|
cbc11f636a | ||
|
|
5dbd6eb8be | ||
|
|
167716e61b | ||
|
|
6d7f045bce | ||
|
|
a73417ea02 | ||
|
|
9c3850db98 | ||
| 393ad5fa0b | |||
|
|
9e8fe2c91f | ||
|
|
b57a7edf28 | ||
|
|
85cc5ebb27 | ||
| 0cd32fbb5f | |||
|
|
2833e65f57 | ||
|
|
5a29403636 | ||
|
|
9c0b9a7c93 | ||
|
|
69a4cbbbc2 | ||
|
|
e2b2382cc4 | ||
|
|
f8a4d05f57 | ||
|
|
d996c43f9f | ||
|
|
c195a58eb4 | ||
| b1c9375873 | |||
|
|
6010cbf20a | ||
|
|
11c32ed360 | ||
|
|
0494822ff4 | ||
|
|
2611f43d1f | ||
| ea4edfadd0 | |||
|
|
8e2a22cf61 | ||
|
|
3a1cfe0f31 | ||
|
|
5bdc44b301 | ||
|
|
92a1736667 | ||
|
|
57f9238033 | ||
|
|
1b171d4b8d | ||
|
|
c5acb84d97 | ||
|
|
63a1e9ec56 | ||
|
|
f06a8d6b15 | ||
| 92df927453 | |||
|
|
2878dce69d | ||
|
|
7d5d128b54 | ||
|
|
6e9e3db358 | ||
|
|
a415ffa12a | ||
|
|
9e8cdaead6 | ||
|
|
e5d4aae846 | ||
|
|
d6af35828d | ||
|
|
aa86c5e662 | ||
|
|
f99aa94b8f | ||
|
|
f5c226ba28 | ||
|
|
741020fe79 | ||
|
|
33004e081d | ||
|
|
a91367a16e | ||
|
|
c086a4d161 | ||
|
|
45363987fd | ||
|
|
da78b9c98a | ||
|
|
13992ffa58 | ||
|
|
a249e5e185 | ||
|
|
9eaa94a523 | ||
|
|
b39c076879 | ||
|
|
6d34bcfde7 | ||
|
|
3c56eb2ba0 | ||
|
|
a1d3485ba7 | ||
|
|
428c74047b | ||
|
|
b77ad54309 | ||
|
|
6137ac18b7 | ||
|
|
44f8d43775 | ||
|
|
eedf3f00c1 | ||
|
|
e7f868d319 | ||
|
|
0d063e887c | ||
|
|
4de59336b2 | ||
|
|
b992b2653a | ||
|
|
d673fc8685 | ||
|
|
55383cf501 | ||
|
|
c46a55e9c4 | ||
|
|
f51fe8433b | ||
|
|
fdc7639887 | ||
|
|
efb6b2598a | ||
|
|
f6595f784a | ||
|
|
963c0f5713 | ||
|
|
543662a2ac | ||
|
|
17b68cbc95 | ||
|
|
dd527a4994 | ||
|
|
977a998767 | ||
|
|
a57ebbcc62 | ||
|
|
5cdbee88b4 | ||
|
|
a8eaccc53e | ||
|
|
413c14083b | ||
| a86e6d4009 | |||
|
|
d4b2ac1f01 | ||
|
|
43b67f2e1a | ||
|
|
563285eb77 | ||
|
|
815d34f817 | ||
|
|
36b03efd0a | ||
|
|
fddbb8c9dc | ||
|
|
4f6c6cf943 | ||
|
|
5fd97ebe72 | ||
| 91eea8cc8a | |||
|
|
534cc0ab76 | ||
|
|
7efaa253a2 | ||
|
|
a3051c0ea4 | ||
| 7033c3cdc6 | |||
|
|
1ee1b05fca | ||
|
|
702d1bb699 | ||
|
|
87fe66da3e | ||
| 12201e065f | |||
| 95f54fb674 | |||
|
|
8f89252d8b | ||
|
|
65cb7826d3 | ||
|
|
39cbe0ff35 | ||
| fc248a5ed2 | |||
|
|
abc6db7f18 | ||
|
|
86e7705985 | ||
| 21441a64ad | |||
|
|
328696eb55 | ||
|
|
6a5c783419 | ||
|
|
44e7598b68 | ||
|
|
4b5498ad49 | ||
|
|
0797ea046f | ||
|
|
bf8c6a1d00 | ||
|
|
f05369556c | ||
|
|
3526432052 | ||
|
|
74c03a2358 | ||
|
|
50bebf451d | ||
|
|
6a1fa6458e | ||
| 760eb7c993 | |||
| ecb8404383 | |||
| f20cc42583 | |||
|
|
b28bcaaab7 | ||
|
|
9804baf8a3 | ||
|
|
4695a82b38 | ||
|
|
9929ea74b4 | ||
|
|
f72b5300be | ||
|
|
e4b1f05037 | ||
|
|
4b32e1f215 | ||
|
|
53d616ee49 | ||
|
|
17c9330f32 | ||
|
|
88e3ffe33b | ||
|
|
0ca2baa44a | ||
|
|
f08f45fb9c | ||
|
|
1ec486a42d | ||
|
|
4fc0781e05 | ||
|
|
9de2c874f0 | ||
| dc7e9d40e7 | |||
|
|
07ccde9f59 | ||
|
|
6abac988c7 | ||
|
|
ea254245c7 | ||
| d7518e41e4 | |||
|
|
51f408ce7a | ||
|
|
29bc14d3e1 | ||
|
|
c4c10ab9b4 | ||
|
|
1f22234b45 | ||
| 64ae879aee | |||
|
|
7f8aeebb1e | ||
|
|
c0fcba6a25 | ||
|
|
9a9807230d |
14
.vscode/settings.json
vendored
@@ -1,16 +1,28 @@
|
||||
{
|
||||
"cSpell.words": [
|
||||
"Analyse",
|
||||
"CHNFACTOR",
|
||||
"CHNPACTOR",
|
||||
"Chns",
|
||||
"Combox",
|
||||
"Datasource",
|
||||
"daterange",
|
||||
"devicedata",
|
||||
"errordata",
|
||||
"errordetail",
|
||||
"Interharmonic",
|
||||
"IRMS",
|
||||
"logdata",
|
||||
"MSQI",
|
||||
"Pids",
|
||||
"plandata",
|
||||
"PQDIF",
|
||||
"Preinvestment",
|
||||
"resourcedata",
|
||||
"resourcename",
|
||||
"rmark",
|
||||
"showtest"
|
||||
"showtest",
|
||||
"UNBAN",
|
||||
"VRMS"
|
||||
]
|
||||
}
|
||||
@@ -25,10 +25,10 @@ module.exports = (appInfo) => {
|
||||
*/
|
||||
config.windowsOption = {
|
||||
title: '自动检测平台',
|
||||
width: 1280,
|
||||
height: 850,
|
||||
minWidth: 1280,
|
||||
minHeight: 850,
|
||||
width: 1920 /1.5,
|
||||
height: 1080 /1.2,
|
||||
minWidth: 1920 /1.5,
|
||||
minHeight: 1080 /1.2,
|
||||
webPreferences: {
|
||||
//webSecurity: false,
|
||||
contextIsolation: false, // false -> 可在渲染进程中使用electron的api,true->需要bridge.js(contextBridge)
|
||||
|
||||
@@ -9,7 +9,7 @@ module.exports = (appInfo) => {
|
||||
/**
|
||||
* 开发者工具
|
||||
*/
|
||||
config.openDevTools = true;
|
||||
config.openDevTools = false;
|
||||
|
||||
/**
|
||||
* 应用程序顶部菜单
|
||||
|
||||
@@ -19,7 +19,7 @@ VITE_API_URL=/api
|
||||
|
||||
# 开发环境跨域代理,支持配置多个
|
||||
|
||||
# VITE_PROXY=[["/api","http://192.168.1.122:18092/"]]
|
||||
VITE_PROXY=[["/api","http://192.168.1.125:18092/"]]洪圣文
|
||||
#VITE_PROXY=[["/api","http://127.0.0.1:18092/"]]
|
||||
VITE_PROXY=[["/api","http://192.168.1.124:18092/"]]
|
||||
#VITE_PROXY=[["/api","http://192.168.1.125:18092/"]]
|
||||
# VITE_PROXY=[["/api","http://192.168.1.138:8080/"]]张文
|
||||
|
||||
|
||||
@@ -22,4 +22,5 @@ VITE_DROP_CONSOLE=true
|
||||
VITE_PWA=true
|
||||
|
||||
# 线上环境接口地址
|
||||
#VITE_API_URL="/api" # 打包时用
|
||||
VITE_API_URL="http://192.168.1.125:18092/"
|
||||
|
||||
11
frontend/.prettierrc
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"singleQuote": true,
|
||||
"trailingComma": "none",
|
||||
"tabWidth": 4,
|
||||
"printWidth": 120,
|
||||
"useTabs": false,
|
||||
"semi": false,
|
||||
"arrowParens": "avoid",
|
||||
"endOfLine": "lf",
|
||||
"htmlWhitespaceSensitivity": "ignore"
|
||||
}
|
||||
@@ -14,7 +14,10 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@element-plus/icons-vue": "^2.3.1",
|
||||
"@types/event-source-polyfill": "^1.0.5",
|
||||
"@vue-flow/core": "^1.45.0",
|
||||
"@vueuse/core": "^10.4.1",
|
||||
"autofit.js": "^3.2.8",
|
||||
"axios": "^1.7.3",
|
||||
"crypto-js": "^4.2.0",
|
||||
"dayjs": "^1.11.9",
|
||||
@@ -22,9 +25,12 @@
|
||||
"echarts": "^5.4.3",
|
||||
"echarts-liquidfill": "^3.1.0",
|
||||
"element-plus": "^2.7.8",
|
||||
"event-source-polyfill": "^1.0.31",
|
||||
"html2canvas": "^1.4.1",
|
||||
"md5": "^2.3.0",
|
||||
"mitt": "^3.0.1",
|
||||
"mkdirp": "^3.0.1",
|
||||
"node-forge": "^1.3.1",
|
||||
"nprogress": "^0.2.0",
|
||||
"pinia": "^2.2.1",
|
||||
"pinia-plugin-persistedstate": "^3.2.1",
|
||||
@@ -41,11 +47,14 @@
|
||||
"devDependencies": {
|
||||
"@rushstack/eslint-patch": "^1.8.0",
|
||||
"@tsconfig/node20": "^20.1.4",
|
||||
"@types/html2canvas": "^1.0.0",
|
||||
"@types/md5": "^2.3.2",
|
||||
"@types/node": "^20.14.14",
|
||||
"@types/node-forge": "^1.3.11",
|
||||
"@types/nprogress": "^0.2.0",
|
||||
"@types/qs": "^6.9.8",
|
||||
"@types/sortablejs": "^1.15.2",
|
||||
"@types/xlsx": "^0.0.36",
|
||||
"@typescript-eslint/eslint-plugin": "^6.7.0",
|
||||
"@typescript-eslint/parser": "^6.7.0",
|
||||
"@vitejs/plugin-vue": "^5.0.5",
|
||||
@@ -67,11 +76,11 @@
|
||||
"unplugin-auto-import": "^0.18.3",
|
||||
"unplugin-vue-components": "^0.27.4",
|
||||
"unplugin-vue-setup-extend-plus": "^1.0.0",
|
||||
"vite": "^5.3.1",
|
||||
"vite": "^5.4.19",
|
||||
"vite-plugin-compression": "^0.5.1",
|
||||
"vite-plugin-eslint": "^1.8.1",
|
||||
"vite-plugin-html": "^3.2.0",
|
||||
"vite-plugin-node-polyfills": "^0.22.0",
|
||||
"vite-plugin-node-polyfills": "^0.24.0",
|
||||
"vite-plugin-pwa": "^0.16.5",
|
||||
"vite-plugin-svg-icons": "^2.0.1",
|
||||
"vue-tsc": "^2.0.21"
|
||||
|
||||
@@ -1,27 +1,25 @@
|
||||
<template>
|
||||
<!--element-plus语言国际化,全局修改为中文-->
|
||||
<el-config-provider
|
||||
:locale='locale'
|
||||
:size='assemblySize'
|
||||
:button='buttonConfig'
|
||||
>
|
||||
<router-view :key='$route.fullPath' />
|
||||
</el-config-provider>
|
||||
<!--element-plus语言国际化,全局修改为中文-->
|
||||
<el-config-provider :locale="locale" :size="assemblySize" :button="buttonConfig">
|
||||
<router-view />
|
||||
</el-config-provider>
|
||||
</template>
|
||||
|
||||
<script lang='ts' setup>
|
||||
defineOptions({
|
||||
name: 'App',
|
||||
})
|
||||
<script lang="ts" setup>
|
||||
import autofit from 'autofit.js'
|
||||
import { useI18n } from 'vue-i18n'
|
||||
import { getBrowserLang } from '@/utils'
|
||||
import { useTheme } from '@/hooks/useTheme'
|
||||
import { ElConfigProvider } from 'element-plus'
|
||||
import { LanguageType } from './stores/interface'
|
||||
import { type LanguageType } from './stores/interface'
|
||||
import { useGlobalStore } from '@/stores/modules/global'
|
||||
import en from 'element-plus/es/locale/lang/en'
|
||||
import zhCn from 'element-plus/es/locale/lang/zh-cn'
|
||||
|
||||
defineOptions({
|
||||
name: 'App'
|
||||
})
|
||||
|
||||
const globalStore = useGlobalStore()
|
||||
|
||||
// init theme
|
||||
@@ -31,16 +29,26 @@ initTheme()
|
||||
// init language
|
||||
const i18n = useI18n()
|
||||
onMounted(() => {
|
||||
const language = globalStore.language ?? getBrowserLang()
|
||||
i18n.locale.value = language
|
||||
globalStore.setGlobalState('language', language as LanguageType)
|
||||
const language = globalStore.language ?? getBrowserLang()
|
||||
i18n.locale.value = language
|
||||
globalStore.setGlobalState('language', language as LanguageType)
|
||||
// 自动适配
|
||||
autofit.init({
|
||||
el: '#app',
|
||||
//dh: 720 * 1,
|
||||
//dw: 1280 * 1.2,
|
||||
dw: 1920 / 1.5,
|
||||
dh: 1080 / 1.2,
|
||||
resize: true,
|
||||
limit: 0.1
|
||||
})
|
||||
})
|
||||
|
||||
// element language
|
||||
const locale = computed(() => {
|
||||
if (globalStore.language == 'zh') return zhCn
|
||||
if (globalStore.language == 'en') return en
|
||||
return getBrowserLang() == 'zh' ? zhCn : en
|
||||
if (globalStore.language == 'zh') return zhCn
|
||||
if (globalStore.language == 'en') return en
|
||||
return getBrowserLang() == 'zh' ? zhCn : en
|
||||
})
|
||||
|
||||
// element assemblySize
|
||||
|
||||
240
frontend/src/api/check/interface/index.ts
Normal file
@@ -0,0 +1,240 @@
|
||||
export namespace CheckData {
|
||||
export interface DataCheck {
|
||||
scriptName: string
|
||||
errorSysId: string
|
||||
dataRule: string
|
||||
deviceName: string
|
||||
chnNum: string
|
||||
deviceId: string
|
||||
num?: string | number
|
||||
}
|
||||
|
||||
export interface PhaseCheckResult {
|
||||
// 检测源定值-标准值
|
||||
resultData: number
|
||||
// 装置原始数据-被检值
|
||||
data: number
|
||||
|
||||
// 误差值
|
||||
errorData: number
|
||||
// 第几次谐波
|
||||
num?: number
|
||||
//符合、不符合
|
||||
isData?: number
|
||||
//最大误差值
|
||||
radius?: string
|
||||
unit?: string
|
||||
}
|
||||
export interface DataItem {
|
||||
num: number
|
||||
isData: number
|
||||
data: number
|
||||
resultData: number
|
||||
radius: string
|
||||
errorData: number
|
||||
unit: string
|
||||
}
|
||||
|
||||
export interface TableRow {
|
||||
isData: number
|
||||
harmNum: number
|
||||
radius: string
|
||||
dataA: DataItem
|
||||
dataB: DataItem
|
||||
dataC: DataItem
|
||||
dataT: DataItem | null
|
||||
unit: string
|
||||
timeDev?: string
|
||||
uaDev?: string | number
|
||||
ubDev?: string | number
|
||||
ucDev?: string | number
|
||||
utDev?: string | number
|
||||
uaStdDev?: string | number
|
||||
ubStdDev?: string | number
|
||||
ucStdDev?: string | number
|
||||
utStdDev?: string | number
|
||||
}
|
||||
|
||||
/**
|
||||
* 用于定义 查看(设备)通道检测结果响应数据 类型
|
||||
*/
|
||||
export interface ResCheckResult {
|
||||
dataA?: PhaseCheckResult | null
|
||||
dataB?: PhaseCheckResult | null
|
||||
dataC?: PhaseCheckResult | null
|
||||
dataT?: PhaseCheckResult | null
|
||||
|
||||
// 第几次谐波
|
||||
//num: number | null,
|
||||
//符合、不符合
|
||||
isData?: number
|
||||
//最大误差值
|
||||
radius?: string
|
||||
//单位
|
||||
unit?: string
|
||||
}
|
||||
|
||||
/**
|
||||
* 用于定义 查看(设备)通道检测结果表格展示数据 类型
|
||||
*/
|
||||
export interface CheckResult {
|
||||
stdA?: string
|
||||
dataA?: string
|
||||
errorA?: string
|
||||
maxErrorA?: string
|
||||
isDataA?: number
|
||||
unitA?: string
|
||||
stdB?: string
|
||||
dataB?: string
|
||||
errorB?: string
|
||||
maxErrorB?: string
|
||||
isDataB?: number
|
||||
unitB?: string
|
||||
stdC?: string
|
||||
dataC?: string
|
||||
errorC?: string
|
||||
maxErrorC?: string
|
||||
isDataC?: number
|
||||
unitC?: string
|
||||
stdT?: string
|
||||
dataT?: string
|
||||
errorT?: string
|
||||
maxErrorT?: string
|
||||
isDataT?: number
|
||||
unitT?: string
|
||||
|
||||
//最大误差值
|
||||
maxError?: string
|
||||
unit?: string
|
||||
//符合、不符合
|
||||
result?: number
|
||||
}
|
||||
|
||||
/**
|
||||
* 用于定义 具体通道的原始数据类型
|
||||
*/
|
||||
export interface RawDataItem {
|
||||
time?: string
|
||||
harmNum?: number | null
|
||||
dataA?: string
|
||||
dataB?: string
|
||||
dataC?: string
|
||||
dataT?: string
|
||||
unit?: string | null
|
||||
}
|
||||
|
||||
export interface Device {
|
||||
deviceId: string //装置序号Id
|
||||
deviceName: string //设备名称
|
||||
chnNum: number //设备通道数
|
||||
|
||||
planId: string //计划Id
|
||||
devType: string //设备类型
|
||||
devVolt: number //设备电压
|
||||
devCurr: number //设备电流
|
||||
factorFlag: number //是否支持系数校准
|
||||
checkResult: number //检测结果
|
||||
chnNumList: string[] //连线存储数据
|
||||
}
|
||||
|
||||
// 用来描述检测脚本类型
|
||||
export interface ScriptItem {
|
||||
id: string
|
||||
code: string
|
||||
scriptName: string
|
||||
}
|
||||
|
||||
// 用来描述 检测数据-左侧树结构
|
||||
export interface TreeItem {
|
||||
id: string | null
|
||||
scriptTypeName: string | null
|
||||
sourceDesc: string | null
|
||||
harmNum: number | null
|
||||
index: number | null
|
||||
fly: number | null
|
||||
children: TreeItem[] | null
|
||||
}
|
||||
|
||||
// 用来描述 通道检测结果
|
||||
export enum ChnCheckResultEnum {
|
||||
UNKNOWN = -1,
|
||||
LOADING = 0,
|
||||
SUCCESS = 1,
|
||||
FAIL = 2,
|
||||
TIMEOUT = 3,
|
||||
ERRORDATA = 4,
|
||||
NOT_PART_IN_ERROR = 5
|
||||
}
|
||||
|
||||
export interface DeviceCheckResult {
|
||||
deviceId: string
|
||||
deviceName: string
|
||||
code?: string
|
||||
chnResult: ChnCheckResultEnum[] //通道检测结果
|
||||
}
|
||||
|
||||
//用来描述 某个脚本测试项对所有通道的检测结果
|
||||
export interface ScriptChnItem {
|
||||
scriptType: string
|
||||
scriptName?: string //可以不要该属性,有点多余
|
||||
code?: string
|
||||
// 设备
|
||||
devices: Array<DeviceCheckResult>
|
||||
}
|
||||
|
||||
export enum ButtonColorEnum {
|
||||
INFO = '#909399',
|
||||
LOADING = 'var(--el-color-primary)',
|
||||
SUCCESS = '#91cc75',
|
||||
WARNING = '#e6a23c',
|
||||
DANGER = '#f56c6c'
|
||||
}
|
||||
|
||||
/**
|
||||
* 用于描述 (设备)通道检测结果展示的按钮类型
|
||||
*/
|
||||
export interface ButtonResult {
|
||||
color: ButtonColorEnum
|
||||
icon: 'More' | 'Loading' | 'Close' | 'CircleCheckFilled' | 'Link' | 'WarnTriangleFilled' | 'Minus'
|
||||
}
|
||||
|
||||
/**
|
||||
* 用于描述 脚本检测结果展示的按钮类型
|
||||
*/
|
||||
export interface ScriptChnViewItem {
|
||||
scriptType: string
|
||||
scriptName?: string //脚本项名称,可以不要该属性,有点多余
|
||||
|
||||
// 设备
|
||||
devices: Array<{
|
||||
deviceId: string
|
||||
deviceName: string
|
||||
chnResult: ButtonResult[]
|
||||
}>
|
||||
}
|
||||
|
||||
/**
|
||||
* 定义检测日志类型
|
||||
*/
|
||||
export interface LogItem {
|
||||
type: 'info' | 'warning' | 'error'
|
||||
log: string
|
||||
}
|
||||
|
||||
/**
|
||||
* 定义手动检测时,勾选的测试项
|
||||
*/
|
||||
export interface SelectTestItem {
|
||||
preTest: boolean
|
||||
timeTest: boolean
|
||||
channelsTest: boolean
|
||||
test: boolean
|
||||
}
|
||||
|
||||
//描述比对式检测项描述
|
||||
export interface CompareTestItem {
|
||||
id: string
|
||||
code: string
|
||||
name: string
|
||||
}
|
||||
}
|
||||
143
frontend/src/api/check/test/index.ts
Normal file
@@ -0,0 +1,143 @@
|
||||
import { pa } from 'element-plus/es/locale/index.mjs';
|
||||
import http from '@/api'
|
||||
import {CheckData} from '@/api/check/interface'
|
||||
|
||||
export const getBigTestItem = (params: {
|
||||
reCheckType: number
|
||||
planId: string
|
||||
devIds: string[]
|
||||
patternId: string
|
||||
}) => {
|
||||
return http.post(`/adPlan/getBigTestItem`, params, {loading: false})
|
||||
}
|
||||
|
||||
export const getScriptList = (params: {
|
||||
devId:string,
|
||||
chnNum:number,
|
||||
num:number
|
||||
}) => {
|
||||
return http.post('/result/getCheckItem', params, {loading: false})
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取弹出框表单数据
|
||||
* @param params 当为scriptType为null时,表示查询所有脚本类型,否则只查询指定脚本类型。当为chnNum为-1时,表示查询所有通道,否则只查询指定通道。
|
||||
*/
|
||||
export const getFormData = (params: {
|
||||
planId: string
|
||||
deviceId: string
|
||||
chnNum: string
|
||||
scriptType: string | null
|
||||
}) => {
|
||||
return http.post('/result/formContent/', params, {loading: false})
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取树形结构数据
|
||||
* @param params
|
||||
*/
|
||||
export const getTreeData = (params: {
|
||||
scriptId?: string
|
||||
devId?: string
|
||||
devNum?: string
|
||||
scriptType?: string | null
|
||||
code?: string
|
||||
}) => {
|
||||
return http.post<CheckData.TreeItem[]>('/result/treeData/', params, {loading: false})
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取检查数据
|
||||
* @param params
|
||||
*/
|
||||
export const getTableData = (params: {
|
||||
scriptType: string | null
|
||||
scriptId: string
|
||||
devId: string
|
||||
devNum: string
|
||||
code: string
|
||||
index: number
|
||||
}) => {
|
||||
return http.post('/result/resultData/', params, {loading: false})
|
||||
}
|
||||
|
||||
export const exportRawData = (params: {
|
||||
scriptType: string | null
|
||||
scriptId: string
|
||||
devId: string
|
||||
devNum: string
|
||||
code: string
|
||||
index: number
|
||||
}) => {
|
||||
return http.download('/result/exportRawData', params, {loading: false})
|
||||
}
|
||||
|
||||
/**
|
||||
* 重新计算
|
||||
* @param params
|
||||
*/
|
||||
export const reCalculate = (params: {
|
||||
planId: string
|
||||
scriptId: string
|
||||
errorSysId: string
|
||||
deviceId: string
|
||||
code: string
|
||||
patternId: string
|
||||
|
||||
}) => {
|
||||
return http.post('/result/reCalculate', params, {loading: true})
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取数据获取基本信息
|
||||
* @param params
|
||||
*/
|
||||
export const getContrastFormContent = (params: {
|
||||
planId: string
|
||||
scriptType: string
|
||||
deviceId: string
|
||||
chnNum: string
|
||||
num: number | null
|
||||
patternId: string
|
||||
}) => {
|
||||
return http.post('/result/getContrastFormContent', params, {loading: false})
|
||||
}
|
||||
/**
|
||||
* 获取检测结果
|
||||
* @param params
|
||||
*/
|
||||
export const getContrastResult = (params: {
|
||||
planId: string
|
||||
scriptType: string
|
||||
deviceId: string
|
||||
chnNum: string | number
|
||||
num: number | string | null
|
||||
waveNum: number | null
|
||||
isWave: boolean
|
||||
patternId: string
|
||||
}) => {
|
||||
return http.post('/result/getContrastResult', params, {loading: true})
|
||||
}
|
||||
|
||||
/**
|
||||
* 更换误差体系
|
||||
* @param params
|
||||
*/
|
||||
export const changeErrorSystem = (params: {
|
||||
planId: string
|
||||
scriptId: string
|
||||
errorSysId: string
|
||||
deviceId: string
|
||||
code: string
|
||||
patternId: string
|
||||
}) => {
|
||||
return http.post('/result/changeErrorSystem', params, {loading: true})
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除(误差体系切换时产生的)临时表
|
||||
* @param code
|
||||
*/
|
||||
export const deleteTempTable = (code: string) => {
|
||||
return http.get(`/result/deleteTempTable?code=${code}`, null, {loading: false})
|
||||
}
|
||||
24
frontend/src/api/device/controlSource/index.ts
Normal file
@@ -0,0 +1,24 @@
|
||||
|
||||
import type { controlSource } from '@/api/device/interface/controlSource'
|
||||
import http from '@/api'
|
||||
|
||||
/**
|
||||
* @name 程控源管理模块
|
||||
*/
|
||||
|
||||
//通讯校验
|
||||
export const checkSimulate = (params: controlSource.ResControl) => {
|
||||
return http.post(`/prepare/ytxCheckSimulate`,params)
|
||||
}
|
||||
|
||||
//启动
|
||||
export const startSimulateTest = (params: controlSource.ResControl) => {
|
||||
return http.post(`prepare/startSimulateTest`,params,{loading:false})
|
||||
}
|
||||
|
||||
//停止
|
||||
export const closeSimulateTest = (params: controlSource.ResControl) => {
|
||||
return http.post(`/prepare/closeSimulateTest`,params,{loading:false})
|
||||
}
|
||||
|
||||
|
||||
29
frontend/src/api/device/devType/index.ts
Normal file
@@ -0,0 +1,29 @@
|
||||
import type { DevType } from '@/api/device/interface/devType'
|
||||
import http from '@/api'
|
||||
|
||||
/**
|
||||
* @name 设备类型管理模块
|
||||
*/
|
||||
|
||||
//获取设备类型
|
||||
export const getDevTypeList = (params: DevType.ReqPqDevTypeParams) => {
|
||||
return http.post(`/devType/list`, params)
|
||||
}
|
||||
|
||||
//添加设备类型
|
||||
export const addDevType = (params: DevType.ResPqDevType) => {
|
||||
return http.post(`/devType/add`, params)
|
||||
}
|
||||
|
||||
//编辑设备类型
|
||||
export const updateDevType = (params: DevType.ResPqDevType) => {
|
||||
return http.post(`/devType/update`, params)
|
||||
}
|
||||
|
||||
//删除设备类型
|
||||
export const deleteDevType = (params: string[]) => {
|
||||
return http.post(`/devType/delete`, params)
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
import { ResPage } from '@/api/interface'
|
||||
import { Device } from './interface'
|
||||
import { ADMIN as rePrefix } from '@/api/config/serviceName'
|
||||
import http from '@/api'
|
||||
|
||||
/**
|
||||
* @name 被检设备管理模块
|
||||
*/
|
||||
// 获取检测脚本列表
|
||||
export const getDeviceList = (params: Device.ReqDeviceParams) => {
|
||||
return http.post<ResPage<Device.ResDeviceList>>(`/RoleList_Post`, params)
|
||||
// return http.post<ResPage<Role.ResRoleList>>(`${rePrefix}/device/list`, params)
|
||||
}
|
||||
|
||||
export const getPlan_DeviceList = (params: Device.DeviceList) => {
|
||||
//return http.post<ResPage<Device.ResDeviceList>>(`/RoleList_Post`, params)
|
||||
// return http.post<ResPage<Role.ResRoleList>>(`${rePrefix}/device/list`, params)
|
||||
}
|
||||
269
frontend/src/api/device/device/deviceData.ts
Normal file
@@ -0,0 +1,269 @@
|
||||
const data = [
|
||||
{
|
||||
id: 'device1',
|
||||
deviceName:"模拟装置1",
|
||||
deviceType:"PQS882B4电能质量监测装置",
|
||||
deviceChannels:"4",
|
||||
planName: "沧州220kV留古等4座变电站电能质量检测",
|
||||
deviceUn: "57.74",
|
||||
deviceIn: "5",
|
||||
deviceCompany: "南京灿能电力自动化股份有限公司",
|
||||
deviceModel: "模拟式",
|
||||
},
|
||||
{
|
||||
id: 'device2',
|
||||
deviceName:"模拟装置2",
|
||||
deviceType:"PQS882A电能质量监测装置",
|
||||
deviceChannels:"1",
|
||||
planName: "邯郸220kV团城站等4座站电能质量检测",
|
||||
deviceUn: "57.74",
|
||||
deviceIn: "5",
|
||||
deviceCompany: "南京灿能电力自动化股份有限公司",
|
||||
deviceModel: "模拟式",
|
||||
},
|
||||
{
|
||||
id: 'device3',
|
||||
deviceName:"模拟装置3",
|
||||
deviceType:"PQS882A电能质量监测装置",
|
||||
deviceChannels:"1",
|
||||
planName: "衡水冀州光伏电站配套出口工程",
|
||||
deviceUn: "57.74",
|
||||
deviceIn: "1",
|
||||
deviceCompany: "南京灿能电力自动化股份有限公司",
|
||||
deviceModel: "模拟式",
|
||||
},
|
||||
{
|
||||
id: 'device4',
|
||||
deviceName:"模拟装置4",
|
||||
deviceType:"PMC-680M-22-22-00-115ANBC电能质量监测装置",
|
||||
deviceChannels:"4",
|
||||
planName: "深圳市中电软件有限公司委托送检",
|
||||
deviceUn: "57.74",
|
||||
deviceIn: "5",
|
||||
deviceCompany: "深圳中电电力技术股份有限公司",
|
||||
deviceModel: "模拟式",
|
||||
},
|
||||
]
|
||||
const plan_devicedata = [
|
||||
{
|
||||
id: '1', //装置序号ID
|
||||
name: '240001', //设备名称
|
||||
dev_Type: 'PQS-882B4',//设备类型
|
||||
dev_Chns: 4, //设备通道数
|
||||
check_Result: '未检', //检测结果
|
||||
report_State: '未生成', //报告状态
|
||||
document_State: '未归档', //归档状态
|
||||
check_State:'未检',//检测状态
|
||||
reCheck_Num: 0, //复检次数
|
||||
},
|
||||
{
|
||||
id: '2', //装置序号ID
|
||||
name: '240002', //设备名称
|
||||
dev_Type: 'PQS-882B4',//设备类型
|
||||
dev_Chns: 4, //设备通道数
|
||||
check_Result: '未检', //检测结果
|
||||
report_State: '未生成', //报告状态
|
||||
document_State: '未归档', //归档状态
|
||||
check_State:'未检',//检测状态
|
||||
reCheck_Num: 0, //复检次数
|
||||
},
|
||||
{
|
||||
id: '3', //装置序号ID
|
||||
name: '240003', //设备名称
|
||||
dev_Type: 'PQS-882B4',//设备类型
|
||||
dev_Chns: 4, //设备通道数
|
||||
check_Result: '未检', //检测结果
|
||||
report_State: '未生成', //报告状态
|
||||
document_State: '未归档', //归档状态
|
||||
check_State:'未检',//检测状态
|
||||
reCheck_Num: 0, //复检次数
|
||||
},
|
||||
{
|
||||
id: '4', //装置序号ID
|
||||
name: '240004', //设备名称
|
||||
dev_Type: 'PQS-882B4',//设备类型
|
||||
dev_Chns: 4, //设备通道数
|
||||
check_Result: '未检', //检测结果
|
||||
report_State: '未生成', //报告状态
|
||||
document_State: '未归档', //归档状态
|
||||
check_State:'未检',//检测状态
|
||||
reCheck_Num: 0, //复检次数
|
||||
},
|
||||
{
|
||||
id: '5', //装置序号ID
|
||||
name: '240005', //设备名称
|
||||
dev_Type: 'PQS-882A',//设备类型
|
||||
dev_Chns: 1, //设备通道数
|
||||
check_Result: '不符合', //检测结果
|
||||
report_State: '未生成', //报告状态
|
||||
document_State: '未归档', //归档状态
|
||||
check_State:'检测完成',//检测状态
|
||||
reCheck_Num: 1, //复检次数
|
||||
},
|
||||
{
|
||||
id: '6', //装置序号ID
|
||||
name: '240006', //设备名称
|
||||
dev_Type: 'PQS-882B4',//设备类型
|
||||
dev_Chns: 4, //设备通道数
|
||||
check_Result: '不符合', //检测结果
|
||||
report_State: '未生成', //报告状态
|
||||
document_State: '未归档', //归档状态
|
||||
check_State:'检测完成',//检测状态
|
||||
reCheck_Num: 1, //复检次数
|
||||
},
|
||||
{
|
||||
id: '7', //装置序号ID
|
||||
name: '240007', //设备名称
|
||||
dev_Type: 'PQS-882A',//设备类型
|
||||
dev_Chns: 1, //设备通道数
|
||||
check_Result: '符合', //检测结果
|
||||
report_State: '未生成', //报告状态
|
||||
document_State: '未归档', //归档状态
|
||||
check_State:'检测完成',//检测状态
|
||||
reCheck_Num: 1, //复检次数
|
||||
},
|
||||
{
|
||||
id: '8', //装置序号ID
|
||||
name: '240008', //设备名称
|
||||
dev_Type: 'PQS-882B4',//设备类型
|
||||
dev_Chns: 4, //设备通道数
|
||||
check_Result: '符合', //检测结果
|
||||
report_State: '未生成', //报告状态
|
||||
document_State: '未归档', //归档状态
|
||||
check_State:'检测完成',//检测状态
|
||||
reCheck_Num: 1, //复检次数
|
||||
},
|
||||
{
|
||||
id: '9', //装置序号ID
|
||||
name: '240009', //设备名称
|
||||
dev_Type: 'PQS-882B4',//设备类型
|
||||
dev_Chns: 4, //设备通道数
|
||||
check_Result: '不符合', //检测结果
|
||||
report_State: '已生成', //报告状态
|
||||
document_State: '未归档', //归档状态
|
||||
check_State:'检测完成',//检测状态
|
||||
reCheck_Num: 1, //复检次数
|
||||
},
|
||||
{
|
||||
id: '10', //装置序号ID
|
||||
name: '240010', //设备名称
|
||||
dev_Type: 'PQS-882A',//设备类型
|
||||
dev_Chns: 1, //设备通道数
|
||||
check_Result: '符合', //检测结果
|
||||
report_State: '已生成', //报告状态
|
||||
document_State: '未归档', //归档状态
|
||||
check_State:'检测完成',//检测状态
|
||||
reCheck_Num: 2, //复检次数
|
||||
},
|
||||
{
|
||||
id: '11', //装置序号ID
|
||||
name: '240011', //设备名称
|
||||
dev_Type: 'PQS-882A',//设备类型
|
||||
dev_Chns: 1, //设备通道数
|
||||
check_Result: '符合', //检测结果
|
||||
report_State: '已生成', //报告状态
|
||||
document_State: '已归档', //归档状态
|
||||
check_State:'检测完成',//检测状态
|
||||
reCheck_Num: 1, //复检次数
|
||||
},
|
||||
{
|
||||
id: '12', //装置序号ID
|
||||
name: '240012', //设备名称
|
||||
dev_Type: 'PQS-882B4',//设备类型
|
||||
dev_Chns: 4, //设备通道数
|
||||
check_Result: '符合', //检测结果
|
||||
report_State: '已生成', //报告状态
|
||||
document_State: '已归档', //归档状态
|
||||
check_State:'检测完成',//检测状态
|
||||
reCheck_Num: 2, //复检次数
|
||||
},
|
||||
{
|
||||
id: '13', //装置序号ID
|
||||
name: '240013', //设备名称
|
||||
dev_Type: 'PQS-882A',//设备类型
|
||||
dev_Chns: 1, //设备通道数
|
||||
check_Result: '未检', //检测结果
|
||||
report_State: '未生成', //报告状态
|
||||
document_State: '未归档', //归档状态
|
||||
check_State:'未检',//检测状态
|
||||
reCheck_Num: 0, //复检次数
|
||||
},
|
||||
{
|
||||
id: '14', //装置序号ID
|
||||
name: '240014', //设备名称
|
||||
dev_Type: 'PQS-882A',//设备类型
|
||||
dev_Chns: 1, //设备通道数
|
||||
check_Result: '未检', //检测结果
|
||||
report_State: '未生成', //报告状态
|
||||
document_State: '未归档', //归档状态
|
||||
check_State:'未检',//检测状态
|
||||
reCheck_Num: 0, //复检次数
|
||||
},
|
||||
{
|
||||
id: '15', //装置序号ID
|
||||
name: '240015', //设备名称
|
||||
dev_Type: 'PQS-882A',//设备类型
|
||||
dev_Chns: 1, //设备通道数
|
||||
check_Result: '未检', //检测结果
|
||||
report_State: '未生成', //报告状态
|
||||
document_State: '未归档', //归档状态
|
||||
check_State:'未检',//检测状态
|
||||
reCheck_Num: 0, //复检次数
|
||||
},
|
||||
{
|
||||
id: '16', //装置序号ID
|
||||
name: '240016', //设备名称
|
||||
dev_Type: 'PQS-882A',//设备类型
|
||||
dev_Chns: 1, //设备通道数
|
||||
check_Result: '未检', //检测结果
|
||||
report_State: '未生成', //报告状态
|
||||
document_State: '未归档', //归档状态
|
||||
check_State:'未检',//检测状态
|
||||
reCheck_Num: 0, //复检次数
|
||||
},
|
||||
{
|
||||
id: '17', //装置序号ID
|
||||
name: '240017', //设备名称
|
||||
dev_Type: 'PQS-882A',//设备类型
|
||||
dev_Chns: 1, //设备通道数
|
||||
check_Result: '未检', //检测结果
|
||||
report_State: '未生成', //报告状态
|
||||
document_State: '未归档', //归档状态
|
||||
check_State:'未检',//检测状态
|
||||
reCheck_Num: 0, //复检次数
|
||||
},
|
||||
{
|
||||
id: '18', //装置序号ID
|
||||
name: '240018', //设备名称
|
||||
dev_Type: 'PQS-882A',//设备类型
|
||||
dev_Chns: 1, //设备通道数
|
||||
check_Result: '未检', //检测结果
|
||||
report_State: '未生成', //报告状态
|
||||
document_State: '未归档', //归档状态
|
||||
check_State:'未检',//检测状态
|
||||
reCheck_Num: 0, //复检次数
|
||||
},
|
||||
{
|
||||
id: '19', //装置序号ID
|
||||
name: '240019', //设备名称
|
||||
dev_Type: 'PQS-882A',//设备类型
|
||||
dev_Chns: 1, //设备通道数
|
||||
check_Result: '未检', //检测结果
|
||||
report_State: '未生成', //报告状态
|
||||
document_State: '未归档', //归档状态
|
||||
check_State:'未检',//检测状态
|
||||
reCheck_Num: 0, //复检次数
|
||||
},
|
||||
{
|
||||
id: '20', //装置序号ID
|
||||
name: '240020', //设备名称
|
||||
dev_Type: 'PQS-882A',//设备类型
|
||||
dev_Chns: 1, //设备通道数
|
||||
check_Result: '未检', //检测结果
|
||||
report_State: '未生成', //报告状态
|
||||
document_State: '未归档', //归档状态
|
||||
check_State:'未检',//检测状态
|
||||
reCheck_Num: 0, //复检次数
|
||||
},
|
||||
]
|
||||
export default {data,plan_devicedata}
|
||||
74
frontend/src/api/device/device/index.ts
Normal file
@@ -0,0 +1,74 @@
|
||||
import { pa } from 'element-plus/es/locale/index.mjs';
|
||||
import type {Device} from '@/api/device/interface/device'
|
||||
import http from '@/api'
|
||||
|
||||
/**
|
||||
* @name 被检设备管理模块
|
||||
*/
|
||||
|
||||
//获取被检设备
|
||||
export const getPqDevList = (params: Device.ReqPqDevParams) => {
|
||||
return http.post(`/pqDev/list`, params)
|
||||
}
|
||||
|
||||
//添加被检设备
|
||||
export const addPqDev = (params: Device.ResPqDev) => {
|
||||
return http.post(`/pqDev/add`, params)
|
||||
}
|
||||
|
||||
//编辑被检设备
|
||||
export const updatePqDev = (params: Device.ResPqDev) => {
|
||||
return http.post(`/pqDev/update`, params)
|
||||
}
|
||||
|
||||
//删除被检设备
|
||||
export const deletePqDev = (params: string[]) => {
|
||||
return http.post(`/pqDev/delete`, params)
|
||||
}
|
||||
|
||||
//导出被检设备
|
||||
export const exportPqDev = (params: Device.ReqPqDevParams) => {
|
||||
return http.download(`/pqDev/export`, params)
|
||||
}
|
||||
// 下载导入文件模板
|
||||
export const downloadTemplate = (params: { pattern: string }) => {
|
||||
return http.download(`/pqDev/downloadTemplate`,params)
|
||||
}
|
||||
|
||||
//导入被检设备
|
||||
export const importPqDev = (params: Device.ReqPqDevParams) => {
|
||||
return http.uploadExcel(`/pqDev/import`, params)
|
||||
}
|
||||
|
||||
//导入比对式被检设备
|
||||
export const importContrastPqDev = (params: Device.ReqPqDevParams) => {
|
||||
return http.upload(`/pqDev/importContrast`, params)
|
||||
}
|
||||
|
||||
// //导出灿能二楼设备
|
||||
// export const exportCNDev = (params: Device.ReqPqDevParams) => {
|
||||
// return http.download(`/pqDev/exportCNDev`, params)
|
||||
// }
|
||||
//
|
||||
// // 下载灿能二楼设备导入文件模板
|
||||
// export const downloadCNDevTemplate = () => {
|
||||
// return http.download(`/pqDev/downloadCNDevTemplate`)
|
||||
// }
|
||||
//
|
||||
// //导入灿能二楼设备
|
||||
// export const importCNDev = (params: Device.ReqPqDevParams) => {
|
||||
// return http.uploadExcel(`/pqDev/importCNDev`, params)
|
||||
// }
|
||||
|
||||
export const getPqDevById = (params: Device.ReqPqDevParams) => {
|
||||
return http.get(`/pqDev/getById?id=${params.id}`)
|
||||
}
|
||||
|
||||
//根据设备类型决定(电源、icd、模板、通道数、额定电压、额定电流);
|
||||
export const getPqDev = () => {
|
||||
return http.get(`/devType/listAll`)
|
||||
}
|
||||
|
||||
export const getSelectOptions = (params:{ pattern: string }) => {
|
||||
return http.get(`/pqDev/getSelectOptions`, params)
|
||||
}
|
||||
@@ -1,95 +0,0 @@
|
||||
const data = [
|
||||
{
|
||||
id: 'device1',
|
||||
devicename:"模拟装置1",
|
||||
deviceType:"PQS882B4电能质量监测装置",
|
||||
deviceChannels:"4",
|
||||
Planname: "沧州220kV留古等4座变电站电能质量检测",
|
||||
deviceUn: "57.74",
|
||||
deviceIn: "5",
|
||||
deviceCompany: "南京灿能电力自动化股份有限公司",
|
||||
deviceModel: "模拟式",
|
||||
},
|
||||
{
|
||||
id: 'device2',
|
||||
devicename:"模拟装置2",
|
||||
deviceType:"PQS882A电能质量监测装置",
|
||||
deviceChannels:"1",
|
||||
Planname: "邯郸220kV团城站等4座站电能质量检测",
|
||||
deviceUn: "57.74",
|
||||
deviceIn: "5",
|
||||
deviceCompany: "南京灿能电力自动化股份有限公司",
|
||||
deviceModel: "模拟式",
|
||||
},
|
||||
{
|
||||
id: 'device3',
|
||||
devicename:"模拟装置3",
|
||||
deviceType:"PQS882A电能质量监测装置",
|
||||
deviceChannels:"1",
|
||||
Planname: "衡水冀州光伏电站配套出口工程",
|
||||
deviceUn: "57.74",
|
||||
deviceIn: "1",
|
||||
deviceCompany: "南京灿能电力自动化股份有限公司",
|
||||
deviceModel: "模拟式",
|
||||
},
|
||||
{
|
||||
id: 'device4',
|
||||
devicename:"模拟装置4",
|
||||
deviceType:"PMC-680M-22-22-00-115ANBC电能质量监测装置",
|
||||
deviceChannels:"4",
|
||||
Planname: "深圳市中电软件有限公司委托送检",
|
||||
deviceUn: "57.74",
|
||||
deviceIn: "5",
|
||||
deviceCompany: "深圳中电电力技术股份有限公司",
|
||||
deviceModel: "模拟式",
|
||||
},
|
||||
]
|
||||
|
||||
const plan_devicedata = [
|
||||
{
|
||||
id: '1', //装置序号ID
|
||||
name: '设备1', //设备名称
|
||||
dev_Type: 'PQS882A',//设备类型
|
||||
dev_Chns: 1, //设备通道数
|
||||
check_Result: '合格', //检测结果
|
||||
report_State: '已生成', //报告状态
|
||||
document_State: '归档', //归档状态
|
||||
check_State:'检测完成',//检测状态
|
||||
reCheck_Num: 0, //复检次数
|
||||
},
|
||||
{
|
||||
id: '2', //装置序号ID
|
||||
name: '设备2', //设备名称
|
||||
dev_Type: 'PQS882B4',//设备类型
|
||||
dev_Chns: 4, //设备通道数
|
||||
check_Result: '/', //检测结果
|
||||
report_State: '未生成', //报告状态
|
||||
document_State: '未归档', //归档状态
|
||||
check_State:'未检',//检测状态
|
||||
reCheck_Num: 0, //复检次数
|
||||
},
|
||||
{
|
||||
id: '3', //装置序号ID
|
||||
name: '设备3', //设备名称
|
||||
dev_Type: 'PQS882B4',//设备类型
|
||||
dev_Chns: 4, //设备通道数
|
||||
check_Result: '/', //检测结果
|
||||
report_State: '未生成', //报告状态
|
||||
document_State: '未归档', //归档状态
|
||||
check_State:'检测中',//检测状态
|
||||
reCheck_Num: 0, //复检次数
|
||||
},
|
||||
{
|
||||
id: '4', //装置序号ID
|
||||
name: '设备4', //设备名称
|
||||
dev_Type: 'PQS882B4',//设备类型
|
||||
dev_Chns: 4, //设备通道数
|
||||
check_Result: '不合格', //检测结果
|
||||
report_State: '未生成', //报告状态
|
||||
document_State: '未归档', //归档状态
|
||||
check_State:'检测完成',//检测状态
|
||||
reCheck_Num: 1, //复检次数
|
||||
},
|
||||
]
|
||||
|
||||
export default {data,plan_devicedata}
|
||||
423
frontend/src/api/device/error/errorData.ts
Normal file
@@ -0,0 +1,423 @@
|
||||
import type {ErrorSystem} from "@/api/device/interface/error"
|
||||
|
||||
const errordata = ref<ErrorSystem.ErrorSystemList[]>([
|
||||
{
|
||||
id: '1',
|
||||
name: 'Q/GDW 1650.2-2016-A',
|
||||
standard_Name:'Q/GDW 1650.2-2016',
|
||||
standard_Time:'2016',
|
||||
dev_Level:'A级',
|
||||
enable:1,
|
||||
state:1,
|
||||
},
|
||||
{
|
||||
id: '2',
|
||||
name: 'Q/GDW 1650.2-2021-A',
|
||||
standard_Name:'Q/GDW 1650.2-2021',
|
||||
standard_Time:'2021',
|
||||
dev_Level:'A级',
|
||||
enable:1,
|
||||
state:1,
|
||||
},
|
||||
{
|
||||
id: '3',
|
||||
name: 'GBT 19862-2016-A',
|
||||
standard_Name:'GBT 19862-2016',
|
||||
standard_Time:'2016',
|
||||
dev_Level:'A级',
|
||||
enable:1,
|
||||
state:1,
|
||||
},
|
||||
])
|
||||
|
||||
const errorADetail = ref<ErrorSystem.Error_detail[]>([
|
||||
{
|
||||
col1: '电压偏差',
|
||||
col2: '',
|
||||
deviceLevel: 'A',
|
||||
measurementType:'电压',
|
||||
condition: '10%~150%标称电压',
|
||||
maxErrorValue: '±0.1%Un'
|
||||
},
|
||||
{
|
||||
col1:'频率偏差',
|
||||
col2: '',
|
||||
deviceLevel: 'A',
|
||||
measurementType:'频率',
|
||||
condition: '42.5~57.5 Hz',
|
||||
maxErrorValue: '±0.01Hz'
|
||||
},
|
||||
{
|
||||
col1:'三相不平衡度',
|
||||
col2: '',
|
||||
deviceLevel: 'A',
|
||||
measurementType:'电压',
|
||||
condition: '0.5%~5%',
|
||||
maxErrorValue: '±0.15%'
|
||||
},
|
||||
{
|
||||
col1:'三相不平衡度',
|
||||
col2: '',
|
||||
deviceLevel: 'A',
|
||||
measurementType:'电压',
|
||||
condition: '5%(不包含)~ 40%',
|
||||
maxErrorValue: '±0.3%'
|
||||
},
|
||||
{
|
||||
col1:'三相不平衡度',
|
||||
col2: '',
|
||||
deviceLevel: 'A',
|
||||
measurementType:'电流',
|
||||
condition: '',
|
||||
maxErrorValue: '±1%'
|
||||
},
|
||||
{
|
||||
col1:'电压波动',
|
||||
col2: '电压幅值',
|
||||
deviceLevel: 'A',
|
||||
measurementType:'电压',
|
||||
condition: '',
|
||||
maxErrorValue: '±0.2%Un'
|
||||
},
|
||||
{
|
||||
col1:'电压波动',
|
||||
col2: '持续时间',
|
||||
deviceLevel: 'A',
|
||||
measurementType:'时间',
|
||||
condition: '',
|
||||
maxErrorValue: '±1周波'
|
||||
},
|
||||
{
|
||||
col1:'闪变',
|
||||
col2: '',
|
||||
deviceLevel: 'A',
|
||||
measurementType:'短时间闪变',
|
||||
condition: 'Pst:0.2~10',
|
||||
maxErrorValue: '±5%'
|
||||
},
|
||||
{
|
||||
col1:'谐波和间谐波',
|
||||
col2: '',
|
||||
deviceLevel: 'A',
|
||||
measurementType:'电压',
|
||||
condition: 'Uh≥1%Un',
|
||||
maxErrorValue: '±5%Uh'
|
||||
},
|
||||
{
|
||||
col1:'谐波和间谐波',
|
||||
col2: '',
|
||||
deviceLevel: 'A',
|
||||
measurementType:'电压',
|
||||
condition: 'Uh<1%Un',
|
||||
maxErrorValue: '±0.05%Un'
|
||||
},
|
||||
{
|
||||
col1:'谐波和间谐波',
|
||||
col2: '',
|
||||
deviceLevel: 'A',
|
||||
measurementType:'电流',
|
||||
condition: 'In≥3%In',
|
||||
maxErrorValue: '±5%Ih'
|
||||
},
|
||||
{
|
||||
col1:'谐波和间谐波',
|
||||
col2: '',
|
||||
deviceLevel: 'A',
|
||||
measurementType:'电流',
|
||||
condition: 'In<3%In',
|
||||
maxErrorValue: '±0.15%In'
|
||||
},
|
||||
{
|
||||
col1:'谐波和间谐波',
|
||||
col2: '',
|
||||
deviceLevel: 'A',
|
||||
measurementType:'相角',
|
||||
condition: '',
|
||||
maxErrorValue: 'h≤5,±1°*h'
|
||||
},
|
||||
{
|
||||
col1:'谐波和间谐波',
|
||||
col2: '',
|
||||
deviceLevel: 'A',
|
||||
measurementType:'相角',
|
||||
condition: '',
|
||||
maxErrorValue: 'h>5,±5°'
|
||||
},
|
||||
{
|
||||
col1:'谐波和间谐波',
|
||||
col2: '',
|
||||
deviceLevel: 'A',
|
||||
measurementType:'功率',
|
||||
condition: 'Ph≥150W',
|
||||
maxErrorValue: '±1%Ph'
|
||||
},
|
||||
{
|
||||
col1:'谐波和间谐波',
|
||||
col2: '',
|
||||
deviceLevel: 'A',
|
||||
measurementType:'功率',
|
||||
condition: 'Ph<150W',
|
||||
maxErrorValue: '±1.5W'
|
||||
},
|
||||
{
|
||||
col1:'高频次谐波',
|
||||
col2: '',
|
||||
deviceLevel: 'A',
|
||||
measurementType:'电压',
|
||||
condition: 'Uh≥1%Un',
|
||||
maxErrorValue: '±5%Uh'
|
||||
},
|
||||
{
|
||||
col1:'高频次谐波',
|
||||
col2: '',
|
||||
deviceLevel: 'A',
|
||||
measurementType:'电压',
|
||||
condition: 'Uh<1%Un',
|
||||
maxErrorValue: '±0.05%Un'
|
||||
},
|
||||
{
|
||||
col1:'高频次谐波',
|
||||
col2: '',
|
||||
deviceLevel: 'A',
|
||||
measurementType:'电流',
|
||||
condition: 'In≥3%In',
|
||||
maxErrorValue: '±5%Ih'
|
||||
},
|
||||
{
|
||||
col1:'高频次谐波',
|
||||
col2: '',
|
||||
deviceLevel: 'A',
|
||||
measurementType:'电流',
|
||||
condition: 'In<3%In',
|
||||
maxErrorValue: '±0.15%In'
|
||||
},
|
||||
{
|
||||
col1:'功率',
|
||||
col2: '',
|
||||
deviceLevel: 'A',
|
||||
measurementType:'功率',
|
||||
condition: '',
|
||||
maxErrorValue: '±0.5%'
|
||||
},
|
||||
{
|
||||
col1:'电流',
|
||||
col2: '',
|
||||
deviceLevel: 'A',
|
||||
measurementType:'电流',
|
||||
condition: 'I≥0.05In',
|
||||
maxErrorValue: '±0.5%'
|
||||
},
|
||||
{
|
||||
col1:'电流',
|
||||
col2: '',
|
||||
deviceLevel: 'A',
|
||||
measurementType:'电流',
|
||||
condition: '0.01In≤I<0.05In',
|
||||
maxErrorValue: '±1%'
|
||||
},
|
||||
{
|
||||
col1: '电压暂降、电压暂升和短时中断',
|
||||
col2: '电压幅值',
|
||||
deviceLevel: 'A',
|
||||
measurementType:'电压',
|
||||
condition: '',
|
||||
maxErrorValue: '±0.2%Un'
|
||||
},
|
||||
{
|
||||
col1: '电压暂降、电压暂升和短时中断',
|
||||
col2: '持续时间',
|
||||
deviceLevel: 'A',
|
||||
measurementType:'时间',
|
||||
condition: '',
|
||||
maxErrorValue: '±1周波'
|
||||
},
|
||||
])
|
||||
|
||||
const errorSDetail = ref<ErrorSystem.Error_detail[]>([
|
||||
{
|
||||
col1: '电压偏差',
|
||||
col2: '',
|
||||
deviceLevel: 'S',
|
||||
measurementType:'电压',
|
||||
condition: '20%~120%标称电压',
|
||||
maxErrorValue: '±0.5%'
|
||||
},
|
||||
{
|
||||
col1:'频率偏差',
|
||||
col2: '',
|
||||
deviceLevel: 'S',
|
||||
measurementType:'频率',
|
||||
condition: '42.5~57.5 Hz',
|
||||
maxErrorValue: '±0.05Hz'
|
||||
},
|
||||
{
|
||||
col1:'三相不平衡度',
|
||||
col2: '',
|
||||
deviceLevel: 'S',
|
||||
measurementType:'电压',
|
||||
condition: '1%~5%',
|
||||
maxErrorValue: '±0.2%'
|
||||
},
|
||||
{
|
||||
col1:'三相不平衡度',
|
||||
col2: '',
|
||||
deviceLevel: 'S',
|
||||
measurementType:'电压',
|
||||
condition: '5%(不包含)~ 40%',
|
||||
maxErrorValue: '±0.6%'
|
||||
},
|
||||
{
|
||||
col1:'三相不平衡度',
|
||||
col2: '',
|
||||
deviceLevel: 'S',
|
||||
measurementType:'电流',
|
||||
condition: '',
|
||||
maxErrorValue: '±1%'
|
||||
},
|
||||
{
|
||||
col1:'电压波动',
|
||||
col2: '电压幅值',
|
||||
deviceLevel: 'S',
|
||||
measurementType:'电压',
|
||||
condition: '',
|
||||
maxErrorValue: '±1.0%Un'
|
||||
},
|
||||
{
|
||||
col1:'电压波动',
|
||||
col2: '持续时间',
|
||||
deviceLevel: 'S',
|
||||
measurementType:'时间',
|
||||
condition: '使用半波刷新方均根值',
|
||||
maxErrorValue: '±1周波'
|
||||
},
|
||||
{
|
||||
col1:'电压波动',
|
||||
col2: '持续时间',
|
||||
deviceLevel: 'S',
|
||||
measurementType:'时间',
|
||||
condition: '使用全波刷新方均根值',
|
||||
maxErrorValue: '±2周波'
|
||||
},
|
||||
{
|
||||
col1:'闪变',
|
||||
col2: '',
|
||||
deviceLevel: 'S',
|
||||
measurementType:'短时间闪变',
|
||||
condition: 'Pst:0.4~4',
|
||||
maxErrorValue: '±10%'
|
||||
},
|
||||
{
|
||||
col1:'谐波和间谐波',
|
||||
col2: '',
|
||||
deviceLevel: 'S',
|
||||
measurementType:'电压',
|
||||
condition: 'Uh≥3%Un',
|
||||
maxErrorValue: '±5%Uh'
|
||||
},
|
||||
{
|
||||
col1:'谐波和间谐波',
|
||||
col2: '',
|
||||
deviceLevel: 'S',
|
||||
measurementType:'电压',
|
||||
condition: 'Uh<3%Un',
|
||||
maxErrorValue: '±0.15%Un'
|
||||
},
|
||||
{
|
||||
col1:'谐波和间谐波',
|
||||
col2: '',
|
||||
deviceLevel: 'S',
|
||||
measurementType:'电流',
|
||||
condition: 'In≥10%In',
|
||||
maxErrorValue: '±5%Ih'
|
||||
},
|
||||
{
|
||||
col1:'谐波和间谐波',
|
||||
col2: '',
|
||||
deviceLevel: 'S',
|
||||
measurementType:'电流',
|
||||
condition: 'In<10%In',
|
||||
maxErrorValue: '±0.5%In'
|
||||
},
|
||||
{
|
||||
col1:'高频次谐波',
|
||||
col2: '',
|
||||
deviceLevel: 'S',
|
||||
measurementType:'电压',
|
||||
condition: 'Uh≥3%Un',
|
||||
maxErrorValue: '±5%Uh'
|
||||
},
|
||||
{
|
||||
col1:'高频次谐波',
|
||||
col2: '',
|
||||
deviceLevel: 'S',
|
||||
measurementType:'电压',
|
||||
condition: 'Uh<3%Un',
|
||||
maxErrorValue: '±0.15%Un'
|
||||
},
|
||||
{
|
||||
col1:'高频次谐波',
|
||||
col2: '',
|
||||
deviceLevel: 'S',
|
||||
measurementType:'电流',
|
||||
condition: 'In≥10%In',
|
||||
maxErrorValue: '±5%Ih'
|
||||
},
|
||||
{
|
||||
col1:'高频次谐波',
|
||||
col2: '',
|
||||
deviceLevel: 'S',
|
||||
measurementType:'电流',
|
||||
condition: 'In<10%In',
|
||||
maxErrorValue: '±0.5%In'
|
||||
},
|
||||
{
|
||||
col1:'功率',
|
||||
col2: '',
|
||||
deviceLevel: 'S',
|
||||
measurementType:'功率',
|
||||
condition: '',
|
||||
maxErrorValue: '±0.5%'
|
||||
},
|
||||
{
|
||||
col1:'电流',
|
||||
col2: '',
|
||||
deviceLevel: 'S',
|
||||
measurementType:'电流',
|
||||
condition: 'I≥0.05In',
|
||||
maxErrorValue: '±0.5%'
|
||||
},
|
||||
{
|
||||
col1:'电流',
|
||||
col2: '',
|
||||
deviceLevel: 'S',
|
||||
measurementType:'电流',
|
||||
condition: '0.01In≤I<0.05In',
|
||||
maxErrorValue: '±1%'
|
||||
},
|
||||
{
|
||||
col1: '电压暂降、电压暂升和短时中断',
|
||||
col2: '电压幅值',
|
||||
deviceLevel: 'S',
|
||||
measurementType:'电压',
|
||||
condition: '',
|
||||
maxErrorValue: '±1.0%Un'
|
||||
},
|
||||
{
|
||||
col1: '电压暂降、电压暂升和短时中断',
|
||||
col2: '持续时间',
|
||||
deviceLevel: 'S',
|
||||
measurementType:'时间',
|
||||
condition: '使用半波刷新方均根值',
|
||||
maxErrorValue: '±1周波'
|
||||
},
|
||||
{
|
||||
col1: '电压暂降、电压暂升和短时中断',
|
||||
col2: '持续时间',
|
||||
deviceLevel: 'S',
|
||||
measurementType:'时间',
|
||||
condition: '使用全波刷新方均根值',
|
||||
maxErrorValue: '±2周波'
|
||||
},
|
||||
])
|
||||
|
||||
export default {errordata,errorADetail,errorSDetail}
|
||||
36
frontend/src/api/device/error/index.ts
Normal file
@@ -0,0 +1,36 @@
|
||||
import type { ErrorSystem } from '@/api/device/interface/error'
|
||||
import http from '@/api'
|
||||
|
||||
/**
|
||||
* @name 误差体系管理模块
|
||||
*/
|
||||
|
||||
//获取误差体系
|
||||
export const getPqErrSysList = (params: ErrorSystem.ErrorSystemList) => {
|
||||
return http.post(`/pqErrSys/list`, params)
|
||||
}
|
||||
|
||||
//根据id查询误差体系
|
||||
export const getPqErrSysListById = (params: ErrorSystem.ErrorSystemList) => {
|
||||
return http.get(`/pqErrSys/getById?id=${params.id}`)
|
||||
}
|
||||
|
||||
//添加误差体系
|
||||
export const addPqErrSys = (params: ErrorSystem.ErrorSystemList) => {
|
||||
return http.post(`/pqErrSys/add`, params)
|
||||
}
|
||||
|
||||
//编辑误差体系
|
||||
export const updatePqErrSys = (params: ErrorSystem.ErrorSystemList) => {
|
||||
return http.post(`/pqErrSys/update`, params)
|
||||
}
|
||||
|
||||
//删除误差体系
|
||||
export const deletePqErrSys = (params: string[]) => {
|
||||
return http.post(`/pqErrSys/delete`, params)
|
||||
}
|
||||
|
||||
//复制误差体系
|
||||
export const copyPqErrSys = (params: ErrorSystem.ErrorSystemList) => {
|
||||
return http.get(`/pqErrSys/copy?id=${params.id}`)
|
||||
}
|
||||
38
frontend/src/api/device/icd/index.ts
Normal file
@@ -0,0 +1,38 @@
|
||||
import type { ICD } from '@/api/device/interface/icd'
|
||||
import http from '@/api'
|
||||
import { pa } from 'element-plus/es/locale/index.mjs'
|
||||
|
||||
/**
|
||||
* @name ICD管理模块
|
||||
*/
|
||||
|
||||
|
||||
|
||||
//获取ICD分页
|
||||
export const getICDList = (params: ICD.ReqICDParams) => {
|
||||
return http.post(`/icd/list`,params)
|
||||
}
|
||||
|
||||
|
||||
//获取ICD
|
||||
export const getICDAllList = (params: ICD.ResICD) => {
|
||||
return http.get(`/icd/listAll`,params)
|
||||
}
|
||||
|
||||
//添加ICD
|
||||
export const addICD = (params: ICD.ResICD) => {
|
||||
return http.post(`/icd/add`, params)
|
||||
}
|
||||
|
||||
//编辑ICD
|
||||
export const updateICD = (params: ICD.ResICD) => {
|
||||
return http.post(`/icd/update`, params)
|
||||
}
|
||||
|
||||
//删除ICD
|
||||
export const deleteICD = (params: string[]) => {
|
||||
return http.post(`/icd/delete`, params)
|
||||
}
|
||||
|
||||
|
||||
|
||||
15
frontend/src/api/device/interface/controlSource.ts
Normal file
@@ -0,0 +1,15 @@
|
||||
import type { ReqPage,ResPage } from '@/api/interface'
|
||||
|
||||
// 被检设备模块
|
||||
export namespace controlSource {
|
||||
|
||||
/**
|
||||
* 被检设备新增、修改、根据id查询返回的对象
|
||||
*/
|
||||
export interface ResControl {
|
||||
userPageId: string;
|
||||
scriptId: string;
|
||||
scriptIndex: number;
|
||||
sourceId: string;
|
||||
}
|
||||
}
|
||||
41
frontend/src/api/device/interface/devType.ts
Normal file
@@ -0,0 +1,41 @@
|
||||
import type { ReqPage, ResPage } from '@/api/interface'
|
||||
|
||||
// 设备类型模块
|
||||
export namespace DevType {
|
||||
|
||||
/**
|
||||
* 设备类型数据表格分页查询参数
|
||||
*/
|
||||
export interface ReqPqDevTypeParams extends ReqPage {
|
||||
id: string; // 装置序号id 必填
|
||||
devType?: string; // 设备名称
|
||||
createTime?: string; //创建时间
|
||||
}
|
||||
|
||||
/**
|
||||
* 设备类型新增、修改、根据id查询返回的对象
|
||||
*/
|
||||
export interface ResPqDevType {
|
||||
id: string; //设备类型ID
|
||||
name: string;//设备类型名称
|
||||
icd: string| null;//设备关联的ICD
|
||||
power: string| null;//工作电源
|
||||
devVolt: number; //额定电压(V)
|
||||
devCurr: number; //额定电流(A)
|
||||
devChns: number; //设备通道数
|
||||
reportName: string| null;//报告模版名称
|
||||
state: number;
|
||||
waveCmd:string| null;//录波指令
|
||||
createBy?: string| null; //创建用户
|
||||
createTime?: string| null; //创建时间
|
||||
updateBy?: string| null; //更新用户
|
||||
updateTime?: string| null; //更新时间
|
||||
}
|
||||
|
||||
/**
|
||||
* 设备类型表格查询分页返回的对象;
|
||||
*/
|
||||
export interface ResPqDevTypePage extends ResPage<ResPqDevType> {
|
||||
|
||||
}
|
||||
}
|
||||
119
frontend/src/api/device/interface/device.ts
Normal file
@@ -0,0 +1,119 @@
|
||||
import type { ReqPage, ResPage } from '@/api/interface'
|
||||
import type { Monitor } from './monitor'
|
||||
|
||||
// 被检设备模块
|
||||
export namespace Device {
|
||||
/**
|
||||
* 被检设备表格分页查询参数
|
||||
*/
|
||||
export interface ReqPqDevParams extends ReqPage {
|
||||
id: string // 装置序号id 必填
|
||||
name: string //设备名称
|
||||
devType?: string // 设备名称
|
||||
createTime?: string //创建时间
|
||||
pattern: string
|
||||
}
|
||||
|
||||
/**
|
||||
* 被检设备表格分页查询参数
|
||||
*/
|
||||
export interface ReqDevReportParams extends ReqPage {
|
||||
planId?: string // 计划id
|
||||
devId?: string // 装置id
|
||||
scriptId?: string // 脚本id
|
||||
planCode?: string
|
||||
devIdList?: string[] // 装置id列表
|
||||
}
|
||||
|
||||
/**
|
||||
* 被检设备新增、修改、根据id查询返回的对象
|
||||
*/
|
||||
export interface ResPqDev {
|
||||
id: string //装置序号ID
|
||||
name: string //设备名称
|
||||
pattern: string //设备模式 模拟 数字 比对
|
||||
devType: string //设备类型
|
||||
manufacturer?: string | null //生产厂家
|
||||
createDate: string //生产日期
|
||||
createId: string //出厂编号
|
||||
hardwareVersion: string //固件版本
|
||||
softwareVersion: string //软件版本
|
||||
protocol: string //通讯协议
|
||||
ip: string //IP地址
|
||||
port: number //端口号
|
||||
encryptionFlag: number //装置是否为加密版本
|
||||
series?: string | null //装置识别码(3ds加密)
|
||||
devKey?: string | null //装置秘钥(3ds加密)
|
||||
sampleId?: string | null //样品编号
|
||||
arrivedDate?: string //送样日期
|
||||
cityName?: string | null //所属地市名称
|
||||
gdName?: string | null //所属供电公司名称
|
||||
subName?: string | null //所属电站名称
|
||||
reportPath?: string | null //报告路径
|
||||
planId?: string //检测计划Id
|
||||
factorFlag?: number //是否支持系数校准(0:不支持,1:支持)
|
||||
preinvestmentPlan: string | null //预投计划
|
||||
delegate: string | null //委托方
|
||||
inspectChannel?: string[] | string //被检通道
|
||||
inspectDate?: string | null //定检日期
|
||||
harmSysId?: string | null //谐波系统设备id
|
||||
importFlag?: number //是否为导入设备 0否 1是
|
||||
state: number //状态
|
||||
createBy?: string | null //创建用户
|
||||
createTime?: string | null //创建时间
|
||||
updateBy?: string | null //更新用户
|
||||
updateTime?: string | null //更新时间
|
||||
|
||||
devChns: number //设备通道数
|
||||
devVolt: number //额定电压(V)
|
||||
devCurr: number //额定电流(A)
|
||||
icdId: string | null
|
||||
power: string | null //工作电源
|
||||
|
||||
devId?: number
|
||||
checkState?: number | null //检测状态(0:未检,1:检测中,2:检测完成 3:归档)
|
||||
checkResult?: number | null //检测结果(0:不符合,1:符合,2:未检)
|
||||
reportState?: number | null //报告状态(0:未生成,1:已生成,2:未检)
|
||||
recheckNum: number //复检次数
|
||||
timeCheckResult?: number //守时检测结果(0:不符合1:符合)
|
||||
factorCheckResult?: number //系数校准结果(0:不合格,1:合格,2:未检)
|
||||
realtimeResult?: number //实时数据结论(0:不符合,1:符合,2:未检)
|
||||
statisticsResult?: number //统计数据结论(0:不符合,1:符合,2:未检)
|
||||
recordedResult?: number //录波数据结论(0:不符合,1:符合,2:未检)
|
||||
checkBy?: string | null //检测人
|
||||
checkTime?: string | null //检测时间
|
||||
preDetectTime?: number //预检测耗时
|
||||
coefficientTime?: number //系数校准耗时
|
||||
formalCheckTime?: number //正式检测耗时
|
||||
|
||||
boundPlanName?: string | null
|
||||
assign?: number ////是否分配给检测人员 0否 1是
|
||||
monitorList: Monitor.ResPqMon[]
|
||||
checked: boolean // 是否已选择
|
||||
disabled: boolean // 是否禁用
|
||||
}
|
||||
|
||||
export interface SelectOption {
|
||||
label: string
|
||||
value: string | number
|
||||
}
|
||||
|
||||
export interface ResDev {
|
||||
id: string
|
||||
name: string
|
||||
icd: string
|
||||
power: string
|
||||
devVolt: number
|
||||
devCurr: number
|
||||
devChns: number
|
||||
}
|
||||
|
||||
export interface ResTH {
|
||||
temperature: number | null //温度
|
||||
humidity: number | null //湿度
|
||||
}
|
||||
/**
|
||||
* 被检设备表格查询分页返回的对象;
|
||||
*/
|
||||
export interface ResPqDevPage extends ResPage<ResPqDev> {}
|
||||
}
|
||||
50
frontend/src/api/device/interface/error.ts
Normal file
@@ -0,0 +1,50 @@
|
||||
import type { ReqPage } from "@/api/interface";
|
||||
|
||||
// 误差体系模块
|
||||
export namespace ErrorSystem {
|
||||
|
||||
// 误差体系列表
|
||||
export interface ErrorSystemList {
|
||||
id: string;//误差体系表Id
|
||||
name: string;//误差体系名称
|
||||
standardName:string;//参照标准名称
|
||||
standardTime:string;//标准推行时间
|
||||
devLevel:string;//使用设备等级
|
||||
enable:number;//状态:0-不启用 1-启用
|
||||
state:number;//0-删除 1-正常
|
||||
createBy?:string;//创建用户
|
||||
createTime?:string;//创建时间
|
||||
updateBy?:string;//修改用户
|
||||
updateTime?:string;//修改时间
|
||||
pqErrSysDtlsList?: ErrorSystemDetail[];//误差体系子表列表
|
||||
}
|
||||
|
||||
|
||||
// 查看详细误差体系
|
||||
export interface ErrorSystemDetail {
|
||||
sort: number;
|
||||
id:string;//误差体系子表ID
|
||||
errorSysId:string;//所属误差体系ID
|
||||
errorType: string;//误差类型,树形字典表(没有树形表则需要拆分字段)
|
||||
scriptType: string;//脚本类型
|
||||
startValue?:number | null;//误差判断起始值(误差范围)
|
||||
startFlag?:number;//是否包含起始值
|
||||
endValue?:number | null;//;误差判断结束值(误差范围)
|
||||
endFlag?:number;//是否包含结束值
|
||||
conditionType?:string;//判断条件值类型(包括值类型,绝对值、相对值)
|
||||
maxErrorValue:number;//误差最大值
|
||||
errorValueType:any;//误差值类型(0标称值、1标准值、2值类型)
|
||||
valueType:number;//值类型(1绝对值、2相对值)
|
||||
errorUnit:string;//误差单位
|
||||
}
|
||||
|
||||
//查看详细误差体系
|
||||
export interface Error_detail {
|
||||
col1: string;
|
||||
col2: string;
|
||||
deviceLevel: string;
|
||||
measurementType:string;
|
||||
condition: string;
|
||||
maxErrorValue: string;
|
||||
}
|
||||
}
|
||||
37
frontend/src/api/device/interface/icd.ts
Normal file
@@ -0,0 +1,37 @@
|
||||
import type { ReqPage, ResPage } from '@/api/interface'
|
||||
|
||||
// ICD模块
|
||||
export namespace ICD {
|
||||
|
||||
/**
|
||||
* ICD表格分页查询参数
|
||||
*/
|
||||
export interface ReqICDParams extends ReqPage {
|
||||
id: string; // 装置序号id 必填
|
||||
devType?: string; // 设备名称
|
||||
createTime?: string; //创建时间
|
||||
}
|
||||
|
||||
/**
|
||||
* ICD新增、修改、根据id查询返回的对象
|
||||
*/
|
||||
export interface ResICD {
|
||||
id: string; //icdID
|
||||
name: string;//icd名称
|
||||
path: string;//icd存储地址
|
||||
state: number;
|
||||
createBy?: string| null; //创建用户
|
||||
createTime?: string| null; //创建时间
|
||||
updateBy?: string| null; //更新用户
|
||||
updateTime?: string| null; //更新时间
|
||||
angle: number; // 是否支持电压相角、电流相角指标
|
||||
usePhaseIndex: number; // 角型接线时是否使用相别的指标来进行检测
|
||||
}
|
||||
|
||||
/**
|
||||
* ICD表格查询分页返回的对象;
|
||||
*/
|
||||
export interface ResICDPage extends ResPage<ResICD> {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,68 +0,0 @@
|
||||
import type { ReqPage } from '@/api/interface'
|
||||
|
||||
// 被检设备模块
|
||||
export namespace Device {
|
||||
|
||||
// 被检设备列表
|
||||
export interface ResDeviceList {
|
||||
id: string; //被检设备ID
|
||||
deviceName: string; //检测设备名称
|
||||
deviceType: string; //检测设备类型
|
||||
deviceChannels: string;//设备通道数
|
||||
PlanName: string; //所属计划名称
|
||||
deviceUn: string; //设备额定电压
|
||||
deviceIn: string; //设备额定电流
|
||||
deviceCompany: string;//设备厂家
|
||||
deviceModel: string; //设备模式 模拟 数字 比对
|
||||
}
|
||||
|
||||
// 被检设备参数
|
||||
export interface ReqDeviceParams extends ReqPage {
|
||||
id: string; //被检设备ID
|
||||
deviceName: string; //检测设备名称
|
||||
deviceType: string; //检测设备类型
|
||||
deviceChannels: string;//设备通道数
|
||||
PlanName: string; //所属计划名称
|
||||
deviceUn: string; //设备额定电压
|
||||
deviceIn: string; //设备额定电流
|
||||
deviceCompany: string;//设备厂家
|
||||
deviceModel: string; //设备模式 模拟 数字 比对
|
||||
}
|
||||
|
||||
// 被检设备列表
|
||||
export interface DeviceList {
|
||||
id: string; //装置序号ID
|
||||
name: string; //设备名称
|
||||
pattern?: string; //设备模式 模拟 数字 比对
|
||||
dev_Type: string;//设备类型
|
||||
dev_Chns: number; //设备通道数
|
||||
dev_Volt?: number; //额定电压(V)
|
||||
dev_Curr?: number; //额定电流(A)
|
||||
manufacturer?: string;//生产厂家
|
||||
createDate?: string; //生产日期
|
||||
createId?: string; //出厂编号
|
||||
hardware_Version?: string; //固件版本
|
||||
software_Version?: string; //软件版本
|
||||
iP?: string; //IP地址
|
||||
port?: number; //端口号
|
||||
isEncryption?: string; //装置是否为加密版本
|
||||
series?: string; //装置识别码(3ds加密)
|
||||
dev_Key?: string; //装置秘钥(3ds加密)
|
||||
sampleID?: string; //样品编号
|
||||
arrived_Date?: string; //送样日期
|
||||
city_Name?: string; //所属地市名称
|
||||
gD_Name?: string; //所属供电公司名称
|
||||
sub_Name?: string; //所属电站名称
|
||||
check_State: string; //检测状态
|
||||
check_Result: string; //检测结果
|
||||
report_State: string; //报告状态
|
||||
document_State: string; //归档状态
|
||||
reCheck_Num: number; //复检次数
|
||||
state?: number; //状态
|
||||
create_By?: string; //创建用户
|
||||
create_Time?: string; //创建时间
|
||||
update_By?: string; //更新用户
|
||||
update_Time?: string; //更新时间
|
||||
|
||||
}
|
||||
}
|
||||
38
frontend/src/api/device/interface/monitor.ts
Normal file
@@ -0,0 +1,38 @@
|
||||
import type { ReqPage, ResPage } from '@/api/interface'
|
||||
|
||||
// 监测点模块
|
||||
export namespace Monitor {
|
||||
|
||||
/**
|
||||
* 监测点表格分页查询参数
|
||||
*/
|
||||
export interface ReqPqMonParams extends ReqPage {
|
||||
id: string; // 装置序号id 必填
|
||||
name?: string; // 设备名称
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 监测点新增、修改、根据id查询返回的对象
|
||||
*/
|
||||
export interface ResPqMon {
|
||||
id: string; //监测点ID
|
||||
devId: string; //所属设备ID
|
||||
busbar: string;//所属母线
|
||||
name: string; //监测点名称
|
||||
num: number; //线路号,监测点序号
|
||||
pt: string; //PT变比
|
||||
ct: string; //CT变比
|
||||
connection: string; //接线方式,字典表
|
||||
statInterval: number; //统计间隔
|
||||
harmSysId: string; //默认与谐波系统监测点ID相同
|
||||
checkFlag: number;//是否参与检测0否1是
|
||||
}
|
||||
|
||||
/**
|
||||
* 监测点表格查询分页返回的对象;
|
||||
*/
|
||||
export interface ResPqMonPage extends ResPage<ResPqMon> {
|
||||
|
||||
}
|
||||
}
|
||||
39
frontend/src/api/device/interface/report.ts
Normal file
@@ -0,0 +1,39 @@
|
||||
import type { ReqPage, ResPage } from '@/api/interface'
|
||||
import type { UploadFile } from 'element-plus';
|
||||
|
||||
// 报告模版接口
|
||||
export namespace PqReport {
|
||||
|
||||
/**
|
||||
* 报告模版表格分页查询参数
|
||||
*/
|
||||
export interface ReqReportParams extends ReqPage {
|
||||
id: string; // 装置序号id 必填
|
||||
name?: string; // 设备名称
|
||||
createTime?: string; //创建时间
|
||||
}
|
||||
|
||||
/**
|
||||
* 报告模版新增、修改、根据id查询返回的对象
|
||||
*/
|
||||
export interface ResReport {
|
||||
id: string; //报告模板id
|
||||
name: string;//报告模板名称
|
||||
version:string;//版本号
|
||||
baseFile?:string;//基础模板文件路径
|
||||
detailFile?:string;//检测项模版文件路径
|
||||
description:string;//描述信息
|
||||
state:number;//状态:8-删除 1-正常
|
||||
createBy?: string| null; //创建用户
|
||||
createTime?: string| null; //创建时间
|
||||
updateBy?: string| null; //更新用户
|
||||
updateTime?: string| null; //更新时间
|
||||
}
|
||||
|
||||
/**
|
||||
* 报告模版表格查询分页返回的对象;
|
||||
*/
|
||||
export interface ResReportPage extends ResPage<ResReport> {
|
||||
|
||||
}
|
||||
}
|
||||
47
frontend/src/api/device/interface/standardDevice.ts
Normal file
@@ -0,0 +1,47 @@
|
||||
import type { ReqPage, ResPage } from '@/api/interface'
|
||||
|
||||
// 标准设备模块
|
||||
export namespace StandardDevice {
|
||||
|
||||
/**
|
||||
* 标准设备表格分页查询参数
|
||||
*/
|
||||
export interface ReqPqStandardDeviceParams extends ReqPage {
|
||||
id: string; // 装置序号id 必填
|
||||
name: string; //设备名称
|
||||
devType?: string; // 设备名称
|
||||
createTime?: string; //创建时间
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 标准设备新增、修改、根据id查询返回的对象
|
||||
*/
|
||||
export interface ResPqStandardDevice {
|
||||
id: string; //装置序号ID
|
||||
name: string; //设备名称
|
||||
devType: string;//设备类型
|
||||
manufacturer?: string | null;//生产厂家
|
||||
protocol: string;//通讯协议
|
||||
ip: string; //IP地址
|
||||
port: number; //端口号
|
||||
inspectChannel:string[] |string;//可检通道数
|
||||
encryptionFlag: number; //装置是否为加密版本
|
||||
series?: string | null; //装置识别码(3ds加密)
|
||||
devKey?: string | null; //装置秘钥(3ds加密)
|
||||
state: number; //状态
|
||||
createBy?: string | null; //创建用户
|
||||
createTime?: string | null; //创建时间
|
||||
updateBy?: string | null; //更新用户
|
||||
updateTime?: string | null; //更新时间
|
||||
disabled?: boolean;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 标准设备表格查询分页返回的对象;
|
||||
*/
|
||||
export interface ResPqStandardDevicePage extends ResPage<ResPqStandardDevice> {
|
||||
|
||||
}
|
||||
}
|
||||
38
frontend/src/api/device/interface/testScript.ts
Normal file
@@ -0,0 +1,38 @@
|
||||
import type { ReqPage, ResPage } from '@/api/interface'
|
||||
|
||||
// 检测脚本模块
|
||||
export namespace TestScript {
|
||||
/**
|
||||
* 检测脚本表格分页查询参数
|
||||
*/
|
||||
export interface ReqTestScriptParams extends ReqPage {
|
||||
id: string // 装置序号id 必填
|
||||
name: string
|
||||
type: string
|
||||
pattern: string
|
||||
}
|
||||
|
||||
// 检测脚本接口
|
||||
export interface ResTestScript {
|
||||
id?: string //检测脚本ID
|
||||
name: string //检测脚本名称
|
||||
type: string //设定0为脚本,1为模板
|
||||
pattern: string //检测脚本模式(字典表Code字段,数字、模拟、比对)
|
||||
valueType?: string //脚本值类型(字典表Code字段,相对值脚本、绝对值脚本、无)
|
||||
standardName: string //参照标准名称
|
||||
standardTime: string //标准推行时间
|
||||
state?: number //
|
||||
createBy?: string
|
||||
createTime?: string
|
||||
updateBy?: string
|
||||
updateTime?: string
|
||||
selectedValue?: string
|
||||
ratedCurr?: number
|
||||
ratedVolt?: number
|
||||
}
|
||||
|
||||
/**
|
||||
* 检测脚本查询分页返回的对象;
|
||||
*/
|
||||
export interface ResTestScriptPage extends ResPage<ResTestScript> {}
|
||||
}
|
||||
44
frontend/src/api/device/interface/testSource.ts
Normal file
@@ -0,0 +1,44 @@
|
||||
import type { ReqPage, ResPage } from '@/api/interface'
|
||||
|
||||
// 检测源模块
|
||||
export namespace TestSource {
|
||||
|
||||
/**
|
||||
* 检测脚本表格分页查询参数
|
||||
*/
|
||||
export interface ReqTestSourceParams extends ReqPage{
|
||||
id: string; // 装置序号id 必填
|
||||
name: string;
|
||||
pattern: string;
|
||||
}
|
||||
|
||||
// 检测源接口
|
||||
export interface ResTestSource {
|
||||
id: string; //检测源ID
|
||||
name?: string; //检测源名称(检测源类型 + 设备类型 + 数字自动生成)
|
||||
pattern: string;//检测源模式(字典表Code字段,数字、模拟、比对)
|
||||
type: string; //检测源类型(字典表Code字段,标准源、高精度设备)
|
||||
devType: string;//检测源设备类型(字典表Code字段)
|
||||
parameter?: string;//源参数(JSON字符串)
|
||||
state:number;//
|
||||
createBy?: string;
|
||||
createTime?: string;
|
||||
updateBy?: string;
|
||||
updateTime?: string;
|
||||
}
|
||||
|
||||
/* 检测脚本查询分页返回的对象;
|
||||
*/
|
||||
export interface ResTestSourcePage extends ResPage<ResTestSource> {
|
||||
|
||||
}
|
||||
export interface ParameterType{
|
||||
id:string;
|
||||
type:string;
|
||||
desc:string;
|
||||
value:string|null;
|
||||
sort:number;
|
||||
pId:string;
|
||||
children?:ParameterType[];
|
||||
}
|
||||
}
|
||||
13
frontend/src/api/device/monitor/index.ts
Normal file
@@ -0,0 +1,13 @@
|
||||
import http from '@/api'
|
||||
|
||||
/**
|
||||
* @name 监测点管理模块
|
||||
*/
|
||||
|
||||
//获取监测点
|
||||
export const getPqMonList = (param:any) => {
|
||||
return http.post(`/pqMonitor/list`, param)
|
||||
}
|
||||
|
||||
|
||||
|
||||
51
frontend/src/api/device/report/index.ts
Normal file
@@ -0,0 +1,51 @@
|
||||
import type {PqReport} from '@/api/device/interface/report'
|
||||
import http from '@/api'
|
||||
|
||||
/**
|
||||
* @name 报告模版模块
|
||||
*/
|
||||
|
||||
//获取报告模版
|
||||
export const getPqReportList = (params: PqReport.ReqReportParams) => {
|
||||
return http.post(`/report/list`, params)
|
||||
}
|
||||
|
||||
//新增报告模版
|
||||
export const addPqReport = (params: PqReport.ResReport) => {
|
||||
return http.upload(`/report/add`, params)
|
||||
}
|
||||
|
||||
//删除报告模版
|
||||
export const deletePqReport = (params: string[]) => {
|
||||
return http.post(`/report/delete`, params)
|
||||
}
|
||||
|
||||
//查询报告模板详情
|
||||
export const getPqReportById = (params: PqReport.ResReport) => {
|
||||
return http.get(`/report/getById?id=${params.id}`)
|
||||
}
|
||||
|
||||
//修改报告模板
|
||||
export const updatePqReport = (params: PqReport.ResReport) => {
|
||||
return http.upload(`/report/update`, params)
|
||||
}
|
||||
|
||||
//查询所有报告模板名称
|
||||
export const getPqReportAllName = () => {
|
||||
return http.get(`/report/listAllName`)
|
||||
}
|
||||
|
||||
//根据名称查询指定报告模板的所有版本
|
||||
export const getPqReportAllVersion = (params:any) => {
|
||||
return http.get(`/report/listAllVersion?name=${params.name}`)
|
||||
}
|
||||
|
||||
//被检设备归档
|
||||
export const documentedPqDev = (ids: string[]) => {
|
||||
return http.post(`/report/documented`, ids)
|
||||
}
|
||||
|
||||
//上传报告到云端
|
||||
export const uploadReportToCloud = (deviceIds: string[]) => {
|
||||
return http.post(`/report/uploadReportToCloud`, deviceIds)
|
||||
}
|
||||
55
frontend/src/api/device/standardDevice/index.ts
Normal file
@@ -0,0 +1,55 @@
|
||||
import type { StandardDevice } from '@/api/device/interface/standardDevice'
|
||||
import http from '@/api'
|
||||
|
||||
/**
|
||||
* @name 标准设备管理模块
|
||||
*/
|
||||
|
||||
//获取标准设备
|
||||
export const getPqStandardDevList = (params: StandardDevice.ReqPqStandardDeviceParams) => {
|
||||
return http.post(`/pqStandardDev/list`, params)
|
||||
}
|
||||
|
||||
//根据id查询标准设备
|
||||
export const getPqStandardDevById = (params: StandardDevice.ReqPqStandardDeviceParams) => {
|
||||
return http.get(`/pqStandardDev/getById?id=${params.id}`)
|
||||
}
|
||||
|
||||
//添加标准设备
|
||||
export const addPqStandardDev = (params: StandardDevice.ResPqStandardDevice) => {
|
||||
return http.post(`/pqStandardDev/add`, params)
|
||||
}
|
||||
|
||||
//编辑标准设备
|
||||
export const updatePqStandardDev = (params: StandardDevice.ResPqStandardDevice) => {
|
||||
return http.post(`/pqStandardDev/update`, params)
|
||||
}
|
||||
|
||||
//删除标准设备
|
||||
export const deletePqStandardDev = (params: string[]) => {
|
||||
return http.post(`/pqStandardDev/delete`, params)
|
||||
}
|
||||
|
||||
//导出标准设备
|
||||
export const exportPqStandardDev = (params: StandardDevice.ReqPqStandardDeviceParams) => {
|
||||
return http.download(`/pqStandardDev/export`, params)
|
||||
}
|
||||
// 下载导入文件模板
|
||||
export const downloadTemplate = () => {
|
||||
return http.download(`/pqStandardDev/downloadTemplate`)
|
||||
}
|
||||
|
||||
//导入标准设备
|
||||
export const importPqStandardDev = (params: StandardDevice.ReqPqStandardDeviceParams) => {
|
||||
return http.uploadExcel(`/pqStandardDev/import`, params)
|
||||
}
|
||||
|
||||
//获取所有标准设备
|
||||
export const getAllPqStandardDev = () => {
|
||||
return http.get(`/pqStandardDev/getAll`)
|
||||
}
|
||||
|
||||
//获取可以绑定的标准设备
|
||||
export const canBindingList = () => {
|
||||
return http.get(`/pqStandardDev/canBindingList`)
|
||||
}
|
||||
53
frontend/src/api/device/testScript/index.ts
Normal file
@@ -0,0 +1,53 @@
|
||||
import type { TestScript } from '@/api/device/interface/testScript'
|
||||
import http from '@/api'
|
||||
import { Loading } from '@element-plus/icons-vue'
|
||||
|
||||
/**
|
||||
* @name 检测脚本管理模块
|
||||
*/
|
||||
// 新增脚本
|
||||
export const pqScriptAdd = (params: TestScript.ResTestScript) => {
|
||||
return http.post(`/pqScript/add`, params)
|
||||
}
|
||||
// 修改脚本
|
||||
export const pqScriptUpdate = (params: TestScript.ResTestScript) => {
|
||||
return http.post(`/pqScript/update`, params)
|
||||
}
|
||||
// 获取检测脚本列表
|
||||
export const getPqScriptList = (params: TestScript.ReqTestScriptParams) => {
|
||||
return http.post(`/pqScript/list`, params)
|
||||
}
|
||||
|
||||
//升级为模版
|
||||
export const updatePqScript = (params: TestScript.ResTestScript) => {
|
||||
return http.get(`/pqScript/upgradeToTemplate?id=${params.id}`)
|
||||
}
|
||||
|
||||
//删除检测脚本
|
||||
export const deletePqScript = (params: string[]) => {
|
||||
return http.post(`/pqScript/delete`, params)
|
||||
}
|
||||
//添加检测脚本
|
||||
export const addScriptDtls = (params: any) => {
|
||||
return http.post(`/pqScript/addScriptDtls`, params)
|
||||
}
|
||||
//根据脚本id查询检测脚本详情
|
||||
export const dlsDetails = (params: any) => {
|
||||
return http.post(`/pqScript/dlsDetails`, params)
|
||||
}
|
||||
// 删除脚本
|
||||
export const deleteDtls = (params: any) => {
|
||||
return http.post(`/pqScript/deleteDtls`, params)
|
||||
}
|
||||
// 启用关闭脚本
|
||||
export const updateDtls = (params: any) => {
|
||||
return http.post(`/pqScript/updateDtls`, params)
|
||||
}
|
||||
// 根据通讯参数生成装置下发原始数据公式
|
||||
export const scriptDtlsCheckDataList = (params: any) => {
|
||||
return http.post(`/pqScript/scriptDtlsCheckDataList`, params,{loading: false})
|
||||
}
|
||||
// 通讯脚本回显
|
||||
export const checkDataList = (params: any) => {
|
||||
return http.post(`/pqScript/checkDataList`, params, { loading: true })
|
||||
}
|
||||
31
frontend/src/api/device/testSource/index.ts
Normal file
@@ -0,0 +1,31 @@
|
||||
import type { ResPage } from '@/api/interface'
|
||||
import type { TestSource } from '@/api/device/interface/testSource'
|
||||
import http from '@/api'
|
||||
|
||||
/**
|
||||
* @name 检测源管理模块
|
||||
*/
|
||||
// 获取检测源列表
|
||||
export const getTestSourceList = (params: TestSource.ReqTestSourceParams) => {
|
||||
return http.post(`/pqSource/list`, params)
|
||||
}
|
||||
|
||||
//根据id查询检测源
|
||||
export const getTestSourceById = (params: TestSource.ResTestSource) => {
|
||||
return http.get(`/pqSource/getById?id=${params.id}`)
|
||||
}
|
||||
|
||||
//添加检测源
|
||||
export const addTestSource = (params: TestSource.ResTestSource) => {
|
||||
return http.post(`/pqSource/add`, params)
|
||||
}
|
||||
|
||||
//编辑检测源
|
||||
export const updateTestSource = (params: TestSource.ResTestSource) => {
|
||||
return http.post(`/pqSource/update`, params)
|
||||
}
|
||||
|
||||
//删除检测源
|
||||
export const deleteTestSource = (params: string[]) => {
|
||||
return http.post(`/pqSource/delete`, params)
|
||||
}
|
||||
@@ -1,212 +0,0 @@
|
||||
import type {ErrorSystem} from "./interface"
|
||||
|
||||
const errordata = ref<ErrorSystem.ErrorSystemList[]>([
|
||||
{
|
||||
id: '1',
|
||||
name: 'Q/GDW 1650.2-2016-A',
|
||||
standard_Name:'Q/GDW 1650.2-2016',
|
||||
standard_Time:'2016',
|
||||
dev_Level:'A级',
|
||||
enable:1,
|
||||
state:1,
|
||||
},
|
||||
{
|
||||
id: '2',
|
||||
name: 'Q/GDW 1650.2-2021-A',
|
||||
standard_Name:'Q/GDW 1650.2-2021',
|
||||
standard_Time:'2021',
|
||||
dev_Level:'A级',
|
||||
enable:1,
|
||||
state:1,
|
||||
},
|
||||
{
|
||||
id: '3',
|
||||
name: 'GBT 19862-2016-A',
|
||||
standard_Name:'GBT 19862-2016',
|
||||
standard_Time:'2016',
|
||||
dev_Level:'A级',
|
||||
enable:1,
|
||||
state:1,
|
||||
},
|
||||
])
|
||||
|
||||
const errordetail = ref<ErrorSystem.Error_detail[]>([
|
||||
{
|
||||
measured: '电压偏差',
|
||||
deviceLevel: 'A',
|
||||
measurementType:'电压',
|
||||
condition: '10%~150%标称电压',
|
||||
maxErrorValue: '±0.1%Un'
|
||||
},
|
||||
{
|
||||
measured: '频率偏差',
|
||||
deviceLevel: 'A',
|
||||
measurementType:'频率',
|
||||
condition: '42.5~57.5 Hz',
|
||||
maxErrorValue: '±0.01Hz'
|
||||
},
|
||||
{
|
||||
measured: '三相不平衡度',
|
||||
deviceLevel: 'A',
|
||||
measurementType:'电压',
|
||||
condition: '0.5%~5%',
|
||||
maxErrorValue: '±0.15%'
|
||||
},
|
||||
{
|
||||
measured: '三相不平衡度',
|
||||
deviceLevel: 'A',
|
||||
measurementType:'电压',
|
||||
condition: '5%(不包含)~ 40%',
|
||||
maxErrorValue: '±0.3%'
|
||||
},
|
||||
{
|
||||
measured: '三相不平衡度',
|
||||
deviceLevel: 'A',
|
||||
measurementType:'电流',
|
||||
condition: '',
|
||||
maxErrorValue: '±1%'
|
||||
},
|
||||
{
|
||||
measured: '电压波动幅值',
|
||||
deviceLevel: 'A',
|
||||
measurementType:'电压',
|
||||
condition: '',
|
||||
maxErrorValue: '±0.2%Un'
|
||||
},
|
||||
{
|
||||
measured: '电压波动持续时间',
|
||||
deviceLevel: 'A',
|
||||
measurementType:'时间',
|
||||
condition: '',
|
||||
maxErrorValue: '±1周波'
|
||||
},
|
||||
{
|
||||
measured: '闪变',
|
||||
deviceLevel: 'A',
|
||||
measurementType:'短时间闪变',
|
||||
condition: 'Pst:0.2~10',
|
||||
maxErrorValue: '±5%'
|
||||
},
|
||||
{
|
||||
measured: '谐波和间谐波',
|
||||
deviceLevel: 'A',
|
||||
measurementType:'电压',
|
||||
condition: 'Uh≥1%Un',
|
||||
maxErrorValue: '±5%Uh'
|
||||
},
|
||||
{
|
||||
measured: '谐波和间谐波',
|
||||
deviceLevel: 'A',
|
||||
measurementType:'电压',
|
||||
condition: 'Uh<1%Un',
|
||||
maxErrorValue: '±0.05%Un'
|
||||
},
|
||||
{
|
||||
measured: '谐波和间谐波',
|
||||
deviceLevel: 'A',
|
||||
measurementType:'电流',
|
||||
condition: 'In≥3%In',
|
||||
maxErrorValue: '±5%Ih'
|
||||
},
|
||||
{
|
||||
measured: '谐波和间谐波',
|
||||
deviceLevel: 'A',
|
||||
measurementType:'电流',
|
||||
condition: 'In<3%In',
|
||||
maxErrorValue: '±0.15%In'
|
||||
},
|
||||
{
|
||||
measured: '谐波和间谐波',
|
||||
deviceLevel: 'A',
|
||||
measurementType:'相角',
|
||||
condition: '',
|
||||
maxErrorValue: 'h≤5,±1°*h'
|
||||
},
|
||||
{
|
||||
measured: '谐波和间谐波',
|
||||
deviceLevel: 'A',
|
||||
measurementType:'相角',
|
||||
condition: '',
|
||||
maxErrorValue: 'h>5,±5°'
|
||||
},
|
||||
{
|
||||
measured: '谐波和间谐波',
|
||||
deviceLevel: 'A',
|
||||
measurementType:'功率',
|
||||
condition: 'Ph≥150W',
|
||||
maxErrorValue: '±1%Ph'
|
||||
},
|
||||
{
|
||||
measured: '谐波和间谐波',
|
||||
deviceLevel: 'A',
|
||||
measurementType:'功率',
|
||||
condition: 'Ph<150W',
|
||||
maxErrorValue: '±1.5W'
|
||||
},
|
||||
{
|
||||
measured: '高频次谐波',
|
||||
deviceLevel: 'A',
|
||||
measurementType:'电压',
|
||||
condition: 'Uh≥1%Un',
|
||||
maxErrorValue: '±5%Uh'
|
||||
},
|
||||
{
|
||||
measured: '高频次谐波',
|
||||
deviceLevel: 'A',
|
||||
measurementType:'电压',
|
||||
condition: 'Uh<1%Un',
|
||||
maxErrorValue: '±0.05%Un'
|
||||
},
|
||||
{
|
||||
measured: '高频次谐波',
|
||||
deviceLevel: 'A',
|
||||
measurementType:'电流',
|
||||
condition: 'In≥3%In',
|
||||
maxErrorValue: '±5%Ih'
|
||||
},
|
||||
{
|
||||
measured: '高频次谐波',
|
||||
deviceLevel: 'A',
|
||||
measurementType:'电流',
|
||||
condition: 'In<3%In',
|
||||
maxErrorValue: '±0.15%In'
|
||||
},
|
||||
{
|
||||
measured: '功率',
|
||||
deviceLevel: 'A',
|
||||
measurementType:'功率',
|
||||
condition: '',
|
||||
maxErrorValue: '±0.5%'
|
||||
},
|
||||
{
|
||||
measured: '电流',
|
||||
deviceLevel: 'A',
|
||||
measurementType:'电流',
|
||||
condition: 'I≥0.05In',
|
||||
maxErrorValue: '±0.5%'
|
||||
},
|
||||
{
|
||||
measured: '电流',
|
||||
deviceLevel: 'A',
|
||||
measurementType:'电流',
|
||||
condition: '0.01In≤I<0.05In',
|
||||
maxErrorValue: '±1%'
|
||||
},
|
||||
{
|
||||
measured: '暂态电压幅值',
|
||||
deviceLevel: 'A',
|
||||
measurementType:'电压',
|
||||
condition: '',
|
||||
maxErrorValue: '±0.2%Un'
|
||||
},
|
||||
{
|
||||
measured: '暂态持续时间',
|
||||
deviceLevel: 'A',
|
||||
measurementType:'时间',
|
||||
condition: '',
|
||||
maxErrorValue: '±1周波'
|
||||
},
|
||||
])
|
||||
|
||||
|
||||
export default {errordata,errordetail}
|
||||
@@ -1,41 +0,0 @@
|
||||
// 误差体系模块
|
||||
export namespace ErrorSystem {
|
||||
// 误差体系列表
|
||||
export interface ErrorSystemList {
|
||||
id: string;//误差体系表Id
|
||||
name: string;//误差体系名称
|
||||
standard_Name:string;//参照标准名称
|
||||
standard_Time:string;//标准推行时间
|
||||
dev_Level:string;//使用设备等级
|
||||
enable?:number;//状态:0-不启用 1-启用
|
||||
state:number;//0-删除 1-正常
|
||||
create_By?:string;//创建用户
|
||||
create_Time?:string;//创建时间
|
||||
update_By?:string;//修改用户
|
||||
update_Time?:string;//修改时间
|
||||
}
|
||||
|
||||
|
||||
// 查看详细误差体系
|
||||
export interface ErrorSystemDetail {
|
||||
id:string;//误差体系子表ID
|
||||
error_Sys_Id:string;//所属误差体系ID
|
||||
type: string;//检测脚本类型,树形字典表(没有树形表则需要拆分字段)
|
||||
JudgeConditionStart?:number;//误差判断起始值(误差范围)
|
||||
IsContainStart?:number;//是否包含起始值
|
||||
JudgeConditionEnd?:number;//误差判断结束值(误差范围)
|
||||
IsContainEnd?:number;//是否包含结束值
|
||||
JudgeConditionType?:string;//判断条件值类型(包括值类型,绝对值、相对值)
|
||||
MaxErrorValue:number;//误差最大值
|
||||
ErrorValueType:string;//误差值类型(包括值类型,绝对值、相对值1、相对值2)
|
||||
}
|
||||
|
||||
// 查看详细误差体系
|
||||
export interface Error_detail {
|
||||
measured: string;
|
||||
deviceLevel: string;
|
||||
measurementType:string;
|
||||
condition: string;
|
||||
maxErrorValue: string;
|
||||
}
|
||||
}
|
||||
@@ -1,265 +0,0 @@
|
||||
import type { Function } from "./interface"
|
||||
|
||||
export const functionList : Function.ResFunction[] = [
|
||||
{
|
||||
'id': '1',
|
||||
'pid':'0',
|
||||
'pids':'',
|
||||
'name': '检测计划',
|
||||
'code':'route',
|
||||
'path':'/plan/planList/index',
|
||||
'icon':'',
|
||||
'sort':100,
|
||||
'type':0,
|
||||
'remark': '检测计划描述',
|
||||
'state':1,
|
||||
},
|
||||
{
|
||||
id: '2',
|
||||
pid:'0',
|
||||
pids:'',
|
||||
name: '台账管理',
|
||||
code:'route',
|
||||
path:'/machine',
|
||||
icon:'',
|
||||
sort:100,
|
||||
type:0,
|
||||
remark: '台账管理描述',
|
||||
state:1,
|
||||
children:[{
|
||||
id: '21',
|
||||
pid:'11',
|
||||
pids:'',
|
||||
name: '检测脚本',
|
||||
code:'route',
|
||||
path:'/machine/testScript/index',
|
||||
icon:'',
|
||||
sort:100,
|
||||
type:1,
|
||||
remark: '检测脚本描述',
|
||||
state:1,
|
||||
},
|
||||
{
|
||||
id: '22',
|
||||
pid:'22',
|
||||
pids:'',
|
||||
name: '被检设备',
|
||||
code:'route',
|
||||
path:'/plan/planList/index',
|
||||
icon:'',
|
||||
sort:100,
|
||||
type:1,
|
||||
remark: '被检设备描述',
|
||||
state:1,
|
||||
},
|
||||
{
|
||||
id: '23',
|
||||
pid:'23',
|
||||
pids:'',
|
||||
name: '误差体系',
|
||||
code:'route',
|
||||
path:'/plan/planList/index',
|
||||
icon:'',
|
||||
sort:100,
|
||||
type:1,
|
||||
remark: '误差体系描述',
|
||||
state:1,
|
||||
},
|
||||
{
|
||||
id: '24',
|
||||
pid:'24',
|
||||
pids:'',
|
||||
name: '检测源',
|
||||
code:'route',
|
||||
path:'/plan/planList/index',
|
||||
icon:'',
|
||||
sort:100,
|
||||
type:1,
|
||||
remark: '检测源描述',
|
||||
state:1,
|
||||
}]
|
||||
},
|
||||
{
|
||||
id: '3',
|
||||
pid:'0',
|
||||
pids:'',
|
||||
name: '权限管理',
|
||||
code:'route',
|
||||
path:'/plan/planList/index',
|
||||
icon:'',
|
||||
sort:100,
|
||||
type:0,
|
||||
remark: '权限管理描述',
|
||||
state:1,
|
||||
children:[{
|
||||
id: '31',
|
||||
pid:'1',
|
||||
pids:'',
|
||||
name: '用户管理',
|
||||
code:'route',
|
||||
path:'/plan/planList/index',
|
||||
icon:'',
|
||||
sort:100,
|
||||
type:0,
|
||||
remark: '用户管理描述',
|
||||
state:1,
|
||||
},
|
||||
{
|
||||
id: '32',
|
||||
pid:'2',
|
||||
pids:'',
|
||||
name: '角色管理',
|
||||
code:'route',
|
||||
path:'/plan/planList/index',
|
||||
icon:'',
|
||||
sort:100,
|
||||
type:0,
|
||||
remark: '角色管理描述',
|
||||
state:1,
|
||||
},
|
||||
{
|
||||
id: '33',
|
||||
pid:'3',
|
||||
pids:'',
|
||||
name: '菜单管理',
|
||||
code:'route',
|
||||
path:'/plan/planList/index',
|
||||
icon:'',
|
||||
sort:100,
|
||||
type:0,
|
||||
remark: '菜单管理描述',
|
||||
state:1,
|
||||
}]
|
||||
},
|
||||
{
|
||||
id: '4',
|
||||
pid:'0',
|
||||
pids:'',
|
||||
name: '系统配置',
|
||||
code:'route',
|
||||
path:'/plan/planList/index',
|
||||
icon:'',
|
||||
sort:100,
|
||||
type:0,
|
||||
remark: '系统配置描述',
|
||||
state:1,
|
||||
children:[{
|
||||
id: '41',
|
||||
pid:'1',
|
||||
pids:'',
|
||||
name: '通用配置',
|
||||
code:'route',
|
||||
path:'/plan/planList/index',
|
||||
icon:'',
|
||||
sort:100,
|
||||
type:0,
|
||||
remark: '通用配置描述',
|
||||
state:1,
|
||||
},
|
||||
{
|
||||
id: '42',
|
||||
pid:'2',
|
||||
pids:'',
|
||||
name: '数据字典',
|
||||
code:'route',
|
||||
path:'/plan/planList/index',
|
||||
icon:'',
|
||||
sort:100,
|
||||
type:0,
|
||||
remark: '数据字典描述',
|
||||
state:1,
|
||||
},
|
||||
{
|
||||
id: '43',
|
||||
pid:'3',
|
||||
pids:'',
|
||||
name: '报告模版',
|
||||
code:'route',
|
||||
path:'/plan/planList/index',
|
||||
icon:'',
|
||||
sort:100,
|
||||
type:0,
|
||||
remark: '报告模版描述',
|
||||
state:1,
|
||||
},
|
||||
{
|
||||
id: '44',
|
||||
pid:'4',
|
||||
pids:'',
|
||||
name: '版本注册',
|
||||
code:'route',
|
||||
path:'/plan/planList/index',
|
||||
icon:'',
|
||||
sort:100,
|
||||
type:0,
|
||||
remark: '版本注册描述',
|
||||
state:1,
|
||||
},]
|
||||
},
|
||||
{
|
||||
id: '5',
|
||||
pid:'0',
|
||||
pids:'',
|
||||
name: '日志管理',
|
||||
code:'route',
|
||||
path:'/plan/planList/index',
|
||||
icon:'',
|
||||
sort:100,
|
||||
type:0,
|
||||
remark: '日志管理描述',
|
||||
state:1,
|
||||
},
|
||||
{
|
||||
id: '6',
|
||||
pid:'0',
|
||||
pids:'',
|
||||
name: '统计分析',
|
||||
code:'route',
|
||||
path:'/plan/planList/index',
|
||||
icon:'',
|
||||
sort:100,
|
||||
type:0,
|
||||
remark: '统计分析描述',
|
||||
state:1,
|
||||
},
|
||||
{
|
||||
id: '7',
|
||||
pid:'0',
|
||||
pids:'',
|
||||
name: '示例',
|
||||
code:'route',
|
||||
path:'/plan/planList/index',
|
||||
icon:'',
|
||||
sort:100,
|
||||
type:0,
|
||||
remark: '示例描述',
|
||||
state:0,
|
||||
children:[{
|
||||
id: '71',
|
||||
pid:'1',
|
||||
pids:'',
|
||||
name: '普通表格',
|
||||
code:'route',
|
||||
path:'/plan/planList/index',
|
||||
icon:'',
|
||||
sort:100,
|
||||
type:0,
|
||||
remark: '普通表格描述',
|
||||
state:0,
|
||||
},
|
||||
{
|
||||
id: '71',
|
||||
pid:'1',
|
||||
pids:'',
|
||||
name: '表格树',
|
||||
code:'route',
|
||||
path:'/plan/planList/index',
|
||||
icon:'',
|
||||
sort:100,
|
||||
type:0,
|
||||
remark: '表格树描述',
|
||||
state:0,
|
||||
}]
|
||||
},
|
||||
]
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
import http from "@/api";
|
||||
import { ADMIN as rePrefix } from "@/api/config/serviceName";
|
||||
import type { Function } from "@/api/function/interface";
|
||||
|
||||
//获取菜单列表
|
||||
export const getFunctionList = (params: Function.ReqFunctionParams) => {
|
||||
return http.post(`${rePrefix}/function/list`, params);
|
||||
};
|
||||
|
||||
//添加菜单列表
|
||||
export const addFunction = (params: Function.ReqFunctionParams) => {
|
||||
return http.post(`${rePrefix}/function/add`,params);
|
||||
};
|
||||
|
||||
//删除菜单列表
|
||||
export const deleteFunction = (params: { id: string[] }) => {
|
||||
return http.post(`${rePrefix}/function/delete`, { data: params });
|
||||
};
|
||||
|
||||
//编辑菜单列表
|
||||
export const updateFunction = (params: Function.ReqFunctionParams) => {
|
||||
return http.post(`${rePrefix}/function/update`, params);
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -10,9 +10,9 @@ export const checkStatus = (status: number) => {
|
||||
case 400:
|
||||
ElMessage.error("请求失败!请您稍后重试");
|
||||
break;
|
||||
case 401:
|
||||
ElMessage.error("登录失效!请您重新登录");
|
||||
break;
|
||||
// case 401:
|
||||
// ElMessage.error("登录失效!请您重新登录");
|
||||
// break;
|
||||
case 403:
|
||||
ElMessage.error("当前账号无权限访问!");
|
||||
break;
|
||||
|
||||
6
frontend/src/api/home/channelsTest/index.ts
Normal file
@@ -0,0 +1,6 @@
|
||||
import http from "@/api";
|
||||
|
||||
//系数校准发送基本信息
|
||||
export const getCoefficientCheck = (params: any) => {
|
||||
return http.post(`/prepare/coefficientCheck`, params,{loading: false})
|
||||
}
|
||||
31
frontend/src/api/home/interface/channelsTest.ts
Normal file
@@ -0,0 +1,31 @@
|
||||
// 系数校准模块
|
||||
export namespace ChannelsTest {
|
||||
|
||||
// 系数校准列表
|
||||
export interface CoefficientVO {
|
||||
devName?: string;//设备名称
|
||||
type?:string;//区分大小电压
|
||||
monitorNum: string;//监测点序号
|
||||
desc: string;//描述
|
||||
aVuData:string;//电压通道A数据
|
||||
aVuXi:string;//电压通道A系数
|
||||
bVuData:string;//电压通道B数据
|
||||
bVuXi:string;//电压通道B系数
|
||||
cVuData:string;//电压通道C数据
|
||||
cVuXi:string;//电压通道C系数
|
||||
aIeData:string;//电流通道A数据
|
||||
aIeXi:string;//电流通道A系数
|
||||
bIeData:string;//电流通道B数据
|
||||
bIeXi:string;//电流通道B系数
|
||||
cIeData:string;//电流通道C数据
|
||||
cIeXi:string;//电流通道C系数
|
||||
loading: boolean;
|
||||
aV:string;
|
||||
bV:string;
|
||||
cV:string;
|
||||
aI:string;
|
||||
bI:string;
|
||||
cI:string;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,112 +1,242 @@
|
||||
import axios, { AxiosInstance, AxiosError, AxiosRequestConfig, InternalAxiosRequestConfig, AxiosResponse } from "axios";
|
||||
import { showFullScreenLoading, tryHideFullScreenLoading } from "@/components/Loading/fullScreen";
|
||||
import { LOGIN_URL } from "@/config";
|
||||
import { ElMessage } from "element-plus";
|
||||
import { ResultData } from "@/api/interface";
|
||||
import { ResultEnum } from "@/enums/httpEnum";
|
||||
import { checkStatus } from "./helper/checkStatus";
|
||||
import { useUserStore } from "@/stores/modules/user";
|
||||
import router from "@/routers";
|
||||
import { ElMessage } from 'element-plus'
|
||||
import axios, {
|
||||
AxiosError,
|
||||
type AxiosInstance,
|
||||
type AxiosRequestConfig,
|
||||
type AxiosResponse,
|
||||
type InternalAxiosRequestConfig
|
||||
} from 'axios'
|
||||
import { showFullScreenLoading, tryHideFullScreenLoading } from '@/components/Loading/fullScreen'
|
||||
import { LOGIN_URL } from '@/config'
|
||||
import { type ResultData } from '@/api/interface'
|
||||
import { ResultEnum } from '@/enums/httpEnum'
|
||||
import { checkStatus } from './helper/checkStatus'
|
||||
import { useUserStore } from '@/stores/modules/user'
|
||||
import router from '@/routers'
|
||||
import { refreshToken } from '@/api/user/login'
|
||||
import { EventSourcePolyfill } from 'event-source-polyfill'
|
||||
|
||||
export interface CustomAxiosRequestConfig extends InternalAxiosRequestConfig {
|
||||
loading?: boolean;
|
||||
loading?: boolean
|
||||
}
|
||||
|
||||
const config = {
|
||||
// 默认地址请求地址,可在 .env.** 文件中修改
|
||||
baseURL: import.meta.env.VITE_API_URL as string,
|
||||
// 设置超时时间
|
||||
timeout: ResultEnum.TIMEOUT as number,
|
||||
// 跨域时候允许携带凭证
|
||||
withCredentials: true,
|
||||
// post请求指定数据类型以及编码
|
||||
headers: { 'Content-Type': 'application/json;charset=utf-8' }
|
||||
};
|
||||
|
||||
class RequestHttp {
|
||||
service: AxiosInstance;
|
||||
public constructor(config: AxiosRequestConfig) {
|
||||
// 创建实例
|
||||
this.service = axios.create(config);
|
||||
|
||||
/**
|
||||
* @description 请求拦截器
|
||||
* 客户端发送请求 -> [请求拦截器] -> 服务器
|
||||
* token校验(JWT) : 接受服务器返回的 token,存储到 vuex/pinia/本地储存当中
|
||||
*/
|
||||
this.service.interceptors.request.use(
|
||||
(config: CustomAxiosRequestConfig) => {
|
||||
const userStore = useUserStore();
|
||||
// 当前请求不需要显示 loading,在 api 服务中通过指定的第三个参数: { loading: false } 来控制
|
||||
config.loading ?? (config.loading = true);
|
||||
config.loading && showFullScreenLoading();
|
||||
if (config.headers && typeof config.headers.set === "function") {
|
||||
config.headers.set("x-access-token", userStore.token);
|
||||
}
|
||||
return config;
|
||||
},
|
||||
(error: AxiosError) => {
|
||||
return Promise.reject(error);
|
||||
}
|
||||
);
|
||||
|
||||
/**
|
||||
* @description 响应拦截器
|
||||
* 服务器换返回信息 -> [拦截统一处理] -> 客户端JS获取到信息
|
||||
*/
|
||||
this.service.interceptors.response.use(
|
||||
(response: AxiosResponse) => {
|
||||
const { data } = response;
|
||||
const userStore = useUserStore();
|
||||
tryHideFullScreenLoading();
|
||||
// 登陆失效
|
||||
if (data.code == ResultEnum.OVERDUE) {
|
||||
userStore.setToken("");
|
||||
router.replace(LOGIN_URL);
|
||||
ElMessage.error(data.message);
|
||||
return Promise.reject(data);
|
||||
}
|
||||
// 全局错误信息拦截(防止下载文件的时候返回数据流,没有 code 直接报错)
|
||||
if (data.code && data.code !== ResultEnum.SUCCESS) {
|
||||
ElMessage.error(data.message);
|
||||
return Promise.reject(data);
|
||||
}
|
||||
// 成功请求(在页面上除非特殊情况,否则不用处理失败逻辑)
|
||||
return data;
|
||||
},
|
||||
async (error: AxiosError) => {
|
||||
const { response } = error;
|
||||
tryHideFullScreenLoading();
|
||||
// 请求超时 && 网络错误单独判断,没有 response
|
||||
if (error.message.indexOf("timeout") !== -1) ElMessage.error("请求超时!请您稍后重试");
|
||||
if (error.message.indexOf("Network Error") !== -1) ElMessage.error("网络错误!请您稍后重试");
|
||||
// 根据服务器响应的错误状态码,做不同的处理
|
||||
if (response) checkStatus(response.status);
|
||||
// 服务器结果都没有返回(可能服务器错误可能客户端断网),断网处理:可以跳转到断网页面
|
||||
if (!window.navigator.onLine) router.replace("/500");
|
||||
return Promise.reject(error);
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 常用请求方法封装
|
||||
*/
|
||||
get<T>(url: string, params?: object, _object = {}): Promise<ResultData<T>> {
|
||||
return this.service.get(url, { params, ..._object });
|
||||
}
|
||||
post<T>(url: string, params?: object | string, _object = {}): Promise<ResultData<T>> {
|
||||
return this.service.post(url, params, _object);
|
||||
}
|
||||
put<T>(url: string, params?: object, _object = {}): Promise<ResultData<T>> {
|
||||
return this.service.put(url, params, _object);
|
||||
}
|
||||
delete<T>(url: string, params?: any, _object = {}): Promise<ResultData<T>> {
|
||||
return this.service.delete(url, { params, ..._object });
|
||||
}
|
||||
download(url: string, params?: object, _object = {}): Promise<BlobPart> {
|
||||
return this.service.post(url, params, { ..._object, responseType: "blob" });
|
||||
}
|
||||
// 默认地址请求地址,可在 .env.** 文件中修改
|
||||
baseURL: import.meta.env.VITE_API_URL as string,
|
||||
// 设置超时时间
|
||||
timeout: ResultEnum.TIMEOUT as number,
|
||||
// 跨域时候允许携带凭证
|
||||
withCredentials: true,
|
||||
// post请求指定数据类型以及编码
|
||||
headers: { 'Content-Type': 'application/json;charset=utf-8' }
|
||||
}
|
||||
|
||||
export default new RequestHttp(config);
|
||||
class RequestHttp {
|
||||
service: AxiosInstance
|
||||
|
||||
public constructor(config: AxiosRequestConfig) {
|
||||
// 创建实例
|
||||
this.service = axios.create(config)
|
||||
|
||||
/**
|
||||
* @description 请求拦截器
|
||||
* 客户端发送请求 -> [请求拦截器] -> 服务器
|
||||
* token校验(JWT) : 接受服务器返回的 token,存储到 vuex/pinia/本地储存当中
|
||||
*/
|
||||
this.service.interceptors.request.use(
|
||||
(config: CustomAxiosRequestConfig) => {
|
||||
isFirst = true
|
||||
const userStore = useUserStore()
|
||||
// 当前请求不需要显示 loading,在 api 服务中通过指定的第三个参数: { loading: false } 来控制
|
||||
config.loading ?? (config.loading = true)
|
||||
config.loading && showFullScreenLoading()
|
||||
if (config.headers && typeof config.headers.set === 'function') {
|
||||
config.headers.set('Authorization', 'Bearer ' + userStore.accessToken)
|
||||
config.headers.set('Is-Refresh-Token', userStore.isRefreshToken + '')
|
||||
}
|
||||
return config
|
||||
},
|
||||
(error: AxiosError) => {
|
||||
return Promise.reject(error)
|
||||
}
|
||||
)
|
||||
|
||||
let isFirst = true
|
||||
/**
|
||||
* @description 响应拦截器
|
||||
* 服务器换返回信息 -> [拦截统一处理] -> 客户端JS获取到信息
|
||||
*/
|
||||
this.service.interceptors.response.use(
|
||||
async (response: AxiosResponse) => {
|
||||
const { data } = response
|
||||
const userStore = useUserStore()
|
||||
tryHideFullScreenLoading()
|
||||
|
||||
if (data.code === ResultEnum.ACCESSTOKEN_EXPIRED) {
|
||||
// 用长token去换短token
|
||||
userStore.setAccessToken(userStore.refreshToken)
|
||||
userStore.setIsRefreshToken(true)
|
||||
const result = await refreshToken()
|
||||
if (result) {
|
||||
//获取新token成功的话
|
||||
// 有新的token后,重新请求
|
||||
userStore.setAccessToken(result.data.accessToken)
|
||||
userStore.setRefreshToken(result.data.refreshToken)
|
||||
userStore.setIsRefreshToken(false)
|
||||
userStore.setExp(1000 * 60 * 60 * 24 * 30)
|
||||
response.config.headers.Authorization = `Bearer ${result.data.accessToken}` //重新请求前需要将更新后的新token更换掉之前无效的token,不然会死循环
|
||||
const resp = await this.service.request(response.config)
|
||||
return resp
|
||||
} else {
|
||||
// 刷新失效,跳转登录页
|
||||
}
|
||||
}
|
||||
// 登陆失效
|
||||
if (data.code === ResultEnum.OVERDUE) {
|
||||
console.log('登陆失效')
|
||||
userStore.setAccessToken('')
|
||||
userStore.setRefreshToken('')
|
||||
userStore.setIsRefreshToken(false)
|
||||
userStore.setUserInfo({ id: '', name: '' })
|
||||
userStore.setExp(0)
|
||||
await router.replace(LOGIN_URL)
|
||||
if (isFirst) {
|
||||
//临时处理token失效弹窗多次
|
||||
ElMessage.error(data.message)
|
||||
isFirst = false
|
||||
}
|
||||
return Promise.reject(data)
|
||||
}
|
||||
// 全局错误信息拦截(防止下载文件的时候返回数据流,没有 code 直接报错)
|
||||
if (data.code && data.code !== ResultEnum.SUCCESS) {
|
||||
if (data.message.includes('&')) {
|
||||
let formattedMessage = data.message.split('&').join('<br>')
|
||||
if (data.message.includes(':')) {
|
||||
formattedMessage = formattedMessage.replace(':', '')
|
||||
}
|
||||
ElMessage.error({ message: formattedMessage, dangerouslyUseHTMLString: true })
|
||||
return Promise.reject(data)
|
||||
}
|
||||
|
||||
ElMessage.error(data.message)
|
||||
return Promise.reject(data)
|
||||
}
|
||||
// 成功请求(在页面上除非特殊情况,否则不用处理失败逻辑)
|
||||
|
||||
if (userStore.exp <= Date.now() && userStore.exp !== 0) {
|
||||
userStore.setAccessToken('')
|
||||
userStore.setRefreshToken('')
|
||||
userStore.setIsRefreshToken(false)
|
||||
userStore.setUserInfo({ id: '', name: '' })
|
||||
userStore.setExp(0)
|
||||
ElMessage.error('登录已过期,请重新登录!')
|
||||
await router.replace(LOGIN_URL)
|
||||
return Promise.reject(data)
|
||||
}
|
||||
// 对于blob类型的响应,返回完整的response对象以保留响应头
|
||||
if (response.config.responseType === 'blob') {
|
||||
return response
|
||||
}
|
||||
return data
|
||||
},
|
||||
async (error: AxiosError) => {
|
||||
const { response } = error
|
||||
tryHideFullScreenLoading()
|
||||
console.log('error', error.message)
|
||||
// 请求超时 && 网络错误单独判断,没有 response
|
||||
if (error.message.indexOf('timeout') !== -1) ElMessage.error('请求超时!请您稍后重试')
|
||||
if (error.message.indexOf('Network Error') !== -1) ElMessage.error('网络错误!请您稍后重试')
|
||||
// 根据服务器响应的错误状态码,做不同的处理
|
||||
if (response) checkStatus(response.status)
|
||||
// 服务器结果都没有返回(可能服务器错误可能客户端断网),断网处理:可以跳转到断网页面
|
||||
if (!window.navigator.onLine) router.replace('/500')
|
||||
return Promise.reject(error)
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 常用请求方法封装
|
||||
*/
|
||||
get<T>(url: string, params?: object, _object = {}): Promise<ResultData<T>> {
|
||||
return this.service.get(url, { params, ..._object })
|
||||
}
|
||||
|
||||
post<T>(url: string, params?: object | string, _object = {}): Promise<ResultData<T>> {
|
||||
return this.service.post(url, params, _object)
|
||||
}
|
||||
|
||||
put<T>(url: string, params?: object, _object = {}): Promise<ResultData<T>> {
|
||||
return this.service.put(url, params, _object)
|
||||
}
|
||||
|
||||
delete<T>(url: string, params?: any, _object = {}): Promise<ResultData<T>> {
|
||||
return this.service.delete(url, { params, ..._object })
|
||||
}
|
||||
|
||||
download(url: string, params?: object, _object = {}): Promise<BlobPart> {
|
||||
return this.service.post(url, params, { ..._object, responseType: 'blob' }).then(res => res.data)
|
||||
}
|
||||
|
||||
downloadWithHeaders(url: string, params?: object, _object = {}): Promise<AxiosResponse<Blob>> {
|
||||
return this.service.post(url, params, { ..._object, responseType: 'blob' })
|
||||
}
|
||||
|
||||
upload(url: string, params?: object, _object = {}): Promise<BlobPart> {
|
||||
return this.service.post(url, params, {
|
||||
..._object,
|
||||
headers: { 'Content-Type': 'multipart/form-data' }
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 针对excel的上传,默认返回的是blob类型,Excel没问题时返回json特殊处理
|
||||
*/
|
||||
uploadExcel(url: string, params?: object, _object = {}): Promise<BlobPart> {
|
||||
return this.service
|
||||
.post(url, params, {
|
||||
..._object,
|
||||
headers: { 'Content-Type': 'multipart/form-data' },
|
||||
responseType: 'blob'
|
||||
})
|
||||
.then(res => res.data)
|
||||
}
|
||||
|
||||
// 添加SSE连接方法
|
||||
sse(url: string, params?: any): EventSource {
|
||||
const userStore = useUserStore()
|
||||
// 构造带参数的URL
|
||||
let requestUrl = config.baseURL + url
|
||||
if (params) {
|
||||
const searchParams = new URLSearchParams()
|
||||
for (const key in params) {
|
||||
if (Object.prototype.hasOwnProperty.call(params, key)) {
|
||||
searchParams.append(key, String(params[key]))
|
||||
}
|
||||
}
|
||||
requestUrl += '?' + searchParams.toString()
|
||||
}
|
||||
|
||||
// 创建EventSource连接
|
||||
const eventSource = new EventSourcePolyfill(requestUrl, {
|
||||
headers: {
|
||||
Authorization: 'Bearer ' + userStore.accessToken
|
||||
},
|
||||
// 增加超时时间到1200秒
|
||||
heartbeatTimeout: 1200000
|
||||
})
|
||||
|
||||
// 设置默认的Authorization头部
|
||||
eventSource.addEventListener('open', function () {
|
||||
console.log('SSE连接已建立')
|
||||
})
|
||||
// 添加错误处理
|
||||
eventSource.addEventListener('error', function (err) {
|
||||
console.error('SSE连接错误:', err)
|
||||
})
|
||||
|
||||
return eventSource
|
||||
}
|
||||
}
|
||||
|
||||
export default new RequestHttp(config)
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import { storeToRefs } from 'pinia';
|
||||
/**
|
||||
* 该接口声明文件用来声明通用的接口定义,比如 请求参数Base、响应Base、分页等
|
||||
*/
|
||||
@@ -14,6 +15,7 @@ export interface Result {
|
||||
* 请求响应参数(包含data)
|
||||
*/
|
||||
export interface ResultData<T = any> extends Result {
|
||||
map(arg0: (item: any) => { label: any; value: any; }): { label: string; value: string; }[] | { label: string; value: string; }[];
|
||||
data: T;
|
||||
}
|
||||
|
||||
@@ -44,8 +46,11 @@ export interface ResPage<T> {
|
||||
*/
|
||||
export interface Dict {
|
||||
id: string;
|
||||
label: string;
|
||||
name: string;
|
||||
code: string;
|
||||
value?: string;
|
||||
sort?:number;
|
||||
algoDescribe?: string;
|
||||
children?: Dict[];
|
||||
}
|
||||
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
// 审计日志管理模块
|
||||
export namespace Sys_Log_Audit {
|
||||
// 日志列表
|
||||
export interface Audit_LogList {
|
||||
id: string;//日志表Id
|
||||
operate_Type:string;//日志类型
|
||||
ip:string;//操作IP
|
||||
result: string;//事件结果
|
||||
remark: string;//事件描述
|
||||
warn:number;//告警标志
|
||||
create_By:string;//创建用户
|
||||
create_Time:string;//创建时间
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,192 +1,194 @@
|
||||
{
|
||||
"code": "A0000",
|
||||
"data": [
|
||||
"code": "A0000",
|
||||
"data": [
|
||||
{
|
||||
"id": "1",
|
||||
"pid": "0",
|
||||
"name": "频率准确度检测",
|
||||
"children": [
|
||||
{
|
||||
"id": 0,
|
||||
"name": "频率准备度检测",
|
||||
"children": [
|
||||
{
|
||||
"pid": 0,
|
||||
"id": "0-1",
|
||||
"name": "额定工作条件下的检测",
|
||||
"children": [
|
||||
{
|
||||
"pid": "0-1",
|
||||
"id": "0-1-1",
|
||||
"name": "输入:频率 42.5Hz..."
|
||||
},
|
||||
{
|
||||
"pid": "0-1",
|
||||
"id": "0-1-2",
|
||||
"name": "输入:频率 50.0Hz..."
|
||||
},
|
||||
{
|
||||
"pid": "0-1",
|
||||
"id": "0-1-3",
|
||||
"name": "输入:频率 50.05Hz..."
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"pid": 0,
|
||||
"id": "0-2",
|
||||
"name": "电压对频率测量的影响",
|
||||
"children": [
|
||||
{
|
||||
"pid": "0-2",
|
||||
"id": "0-2-1",
|
||||
"name": "输入:频率 50.05Hz Ua =10%Un..."
|
||||
},
|
||||
{
|
||||
"pid": "0-2",
|
||||
"id": "0-2-1",
|
||||
"name": "输入:频率 51.05Hz Ua =10%Un..."
|
||||
},
|
||||
{
|
||||
"pid": "0-2",
|
||||
"id": "0-2-2",
|
||||
"name": "输入:频率 52.05Hz Ua =10%Un..."
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"pid": 0,
|
||||
"id": "0-3",
|
||||
"name": "谐波对频率测量的影响",
|
||||
"children": [
|
||||
{
|
||||
"pid": "0-3",
|
||||
"id": "0-3-1",
|
||||
"name": "输入:频率 50.05Hz Ua =100%Un..."
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
"id": "1-1",
|
||||
"pid": "1",
|
||||
"name": "额定工作条件下的检测",
|
||||
"children": [
|
||||
{
|
||||
"id": "1-1-1",
|
||||
"pid": "1-1",
|
||||
"name": "输入:频率 42.5Hz..."
|
||||
},
|
||||
{
|
||||
"id": "1-1-2",
|
||||
"pid": "1-1",
|
||||
"name": "输入:频率 50.0Hz..."
|
||||
},
|
||||
{
|
||||
"id": "1-1-3",
|
||||
"pid": "1-1",
|
||||
"name": "输入:频率 50.05Hz...."
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 1,
|
||||
"name": "电压准确度检测",
|
||||
"children": [
|
||||
{
|
||||
"pid": 1,
|
||||
"id": "1-1",
|
||||
"name": "额定工作条件下的检测",
|
||||
"children": [
|
||||
{
|
||||
"pid": "1-1",
|
||||
"id": "1-1-1",
|
||||
"name": "输入:频率 42.5Hz..."
|
||||
},
|
||||
{
|
||||
"pid": "1-1",
|
||||
"id": "1-1-2",
|
||||
"name": "输入:频率 50.0Hz..."
|
||||
},
|
||||
{
|
||||
"pid": "1-1",
|
||||
"id": "1-1-3",
|
||||
"name": "输入:频率 50.05Hz..."
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"pid": 0,
|
||||
"id": "1-2",
|
||||
"name": "电压对频率测量的影响",
|
||||
"children": [
|
||||
{
|
||||
"pid": "1-2",
|
||||
"id": "1-2-1",
|
||||
"name": "输入:频率 50.05Hz Ua =10%Un..."
|
||||
},
|
||||
{
|
||||
"pid": "1-2",
|
||||
"id": "1-2-1",
|
||||
"name": "输入:频率 51.05Hz Ua =10%Un..."
|
||||
},
|
||||
{
|
||||
"pid": "1-2",
|
||||
"id": "1-2-2",
|
||||
"name": "输入:频率 52.05Hz Ua =10%Un..."
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"pid": 0,
|
||||
"id": "0-3",
|
||||
"name": "谐波对频率测量的影响",
|
||||
"children": [
|
||||
{
|
||||
"pid": "0-3",
|
||||
"id": "0-3-1",
|
||||
"name": "输入:频率 50.05Hz Ua =100%Un..."
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
"id": "1-2",
|
||||
"pid": "1",
|
||||
"name": "电压对频率测量的影响",
|
||||
"children": [
|
||||
{
|
||||
"id": "1-2-1",
|
||||
"pid": "1-2",
|
||||
"name": "输入:频率 50.05Hz Ua =10%Un..."
|
||||
},
|
||||
{
|
||||
"id": "1-2-1",
|
||||
"pid": "1-2",
|
||||
"name": "输入:频率 51.05Hz Ua =10%Un..."
|
||||
},
|
||||
{
|
||||
"id": "1-2-2",
|
||||
"pid": "1-2",
|
||||
"name": "输入:频率 52.05Hz Ua =10%Un..."
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"id": 2,
|
||||
"name": "谐波准确度检测",
|
||||
"children": [
|
||||
{
|
||||
"pid": 2,
|
||||
"id": "2-1",
|
||||
"name": "额定工作条件下的检测",
|
||||
"children": [
|
||||
{
|
||||
"pid": "2-1",
|
||||
"id": "2-1-1",
|
||||
"name": "输入:频率 42.5Hz..."
|
||||
},
|
||||
{
|
||||
"pid": "2-1",
|
||||
"id": "2-1-2",
|
||||
"name": "输入:频率 50.0Hz..."
|
||||
},
|
||||
{
|
||||
"pid": "2-1",
|
||||
"id": "2-1-3",
|
||||
"name": "输入:频率 50.05Hz..."
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"pid": 2,
|
||||
"id": "2-2",
|
||||
"name": "电压对频率测量的影响",
|
||||
"children": [
|
||||
{
|
||||
"pid": "2-2",
|
||||
"id": "2-2-1",
|
||||
"name": "输入:频率 50.05Hz Ua =10%Un..."
|
||||
},
|
||||
{
|
||||
"pid": "2-2",
|
||||
"id": "2-2-1",
|
||||
"name": "输入:频率 51.05Hz Ua =10%Un..."
|
||||
},
|
||||
{
|
||||
"pid": "2-2",
|
||||
"id": "2-2-2",
|
||||
"name": "输入:频率 52.05Hz Ua =10%Un..."
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"pid": 2,
|
||||
"id": "2-3",
|
||||
"name": "谐波对频率测量的影响",
|
||||
"children": [
|
||||
{
|
||||
"pid": "2-3",
|
||||
"id": "2-3-1",
|
||||
"name": "输入:频率 50.05Hz Ua =100%Un..."
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
"id": "1-3",
|
||||
"pid": "1",
|
||||
"name": "谐波对频率测量的影响",
|
||||
"children": [
|
||||
{
|
||||
"id": "1-3-1",
|
||||
"pid": "1-3",
|
||||
"name": "输入:频率 50.05Hz Ua =100%Un..."
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "2",
|
||||
"pid": "0",
|
||||
"name": "电压准确度检测",
|
||||
"children": [
|
||||
{
|
||||
"pid": "2",
|
||||
"id": "2-1",
|
||||
"name": "额定工作条件下的检测",
|
||||
"children": [
|
||||
{
|
||||
"id": "2-1-1",
|
||||
"pid": "2-1",
|
||||
"name": "输入:频率 42.5Hz..."
|
||||
},
|
||||
{
|
||||
"id": "2-1-2",
|
||||
"pid": "2-1",
|
||||
"name": "输入:频率 50.0Hz..."
|
||||
},
|
||||
{
|
||||
"id": "2-1-3",
|
||||
"pid": "2-1",
|
||||
"name": "输入:频率 50.05Hz..."
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"pid": "2",
|
||||
"id": "2-2",
|
||||
"name": "电压对频率测量的影响",
|
||||
"children": [
|
||||
{
|
||||
"id": "2-2-1",
|
||||
"pid": "2-2",
|
||||
"name": "输入:频率 50.05Hz Ua =10%Un..."
|
||||
},
|
||||
{
|
||||
"id": "2-2-1",
|
||||
"pid": "2-2",
|
||||
"name": "输入:频率 51.05Hz Ua =10%Un..."
|
||||
},
|
||||
{
|
||||
"id": "2-2-2",
|
||||
"pid": "2-2",
|
||||
"name": "输入:频率 52.05Hz Ua =10%Un..."
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"pid": "2",
|
||||
"id": "2-3",
|
||||
"name": "谐波对频率测量的影响",
|
||||
"children": [
|
||||
{
|
||||
"id": "2-3-1",
|
||||
"pid": "2-3",
|
||||
"name": "输入:频率 50.05Hz Ua =100%Un..."
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "3",
|
||||
"pid": "0",
|
||||
"name": "谐波准确度检测",
|
||||
"children": [
|
||||
{
|
||||
"id": "3-1",
|
||||
"pid": "3",
|
||||
"name": "额定工作条件下的检测",
|
||||
"children": [
|
||||
{
|
||||
"id": "3-1-1",
|
||||
"pid": "3-1",
|
||||
"name": "输入:频率 42.5Hz..."
|
||||
},
|
||||
{
|
||||
"id": "3-1-2",
|
||||
"pid": "3-1",
|
||||
"name": "输入:频率 50.0Hz..."
|
||||
},
|
||||
{
|
||||
"id": "3-1-3",
|
||||
"pid": "3-1",
|
||||
"name": "输入:频率 50.05Hz..."
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "3-2",
|
||||
"pid": "3",
|
||||
"name": "电压对频率测量的影响",
|
||||
"children": [
|
||||
{
|
||||
"id": "3-2-1",
|
||||
"pid": "3-2",
|
||||
"name": "输入:频率 50.05Hz Ua =10%Un..."
|
||||
},
|
||||
{
|
||||
"id": "3-2-1",
|
||||
"pid": "3-2",
|
||||
"name": "输入:频率 51.05Hz Ua =10%Un..."
|
||||
},
|
||||
{
|
||||
"id": "3-2-2",
|
||||
"pid": "3-2",
|
||||
"name": "输入:频率 52.05Hz Ua =10%Un..."
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "3-3",
|
||||
"pid": "3",
|
||||
"name": "谐波对频率测量的影响",
|
||||
"children": [
|
||||
{
|
||||
"id": "3-3-1",
|
||||
"pid": "3-3",
|
||||
"name": "输入:频率 50.05Hz Ua =100%Un..."
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,44 +1,73 @@
|
||||
import type { ReqPage } from '@/api/interface'
|
||||
import type { DatetimeFormatProps } from 'vue-i18n';
|
||||
|
||||
// 检测计划模块
|
||||
export namespace Plan {
|
||||
|
||||
// 检测计划列表
|
||||
export interface PlanList {
|
||||
// 检测计划接口
|
||||
export interface ResPlan {
|
||||
id: string; //检测计划ID
|
||||
name: string; //检测计划名称
|
||||
pattern: string; //模式,字典表(数字、模拟、比对)
|
||||
father_Plan_Id: string; //父计划ID
|
||||
dataSource_Id: string; //数据源ID
|
||||
script_Id: string; //检测脚本ID
|
||||
error_Sys_Id: string;//误差体系ID
|
||||
test_State: string; //检测状态
|
||||
report_State: string; //报告生成状态
|
||||
result: string;//检测结果
|
||||
state: number; //状态
|
||||
create_By?: string; //创建用户
|
||||
create_Time?: string;//创建时间
|
||||
update_By?: string; //更新用户
|
||||
update_Time?: string; //更新时间
|
||||
pattern?: string; //模式,字典表(数字、模拟、比对)
|
||||
fatherPlanId?: string; //父计划ID
|
||||
dataSourceId: string; //数据源ID
|
||||
scriptId: string; //检测脚本ID
|
||||
errorSysId: string;//误差体系ID
|
||||
timeCheck:number;//守时检测:0否,1。是
|
||||
testState: number; //检测状态:0:未检、1:检测中、2:检测完成,默认为 0
|
||||
reportState: number; //报告生成状态:0:未生成、1:部分生成、2:全部生成,默认为 0
|
||||
result: number;//检测结果:0:不符合、1:符合、2:/,默认为 2
|
||||
code:number; //自动生成,用于生成数据表后缀
|
||||
state: number;//;状态:0-删除 1-正常
|
||||
createBy?:string; //创建用户
|
||||
createTime?:string; //创建时间
|
||||
updateBy?:string; //更新用户
|
||||
updateTime?:string; //更新时间
|
||||
|
||||
associateReport:number;//是否关联报告模板 0否 1是
|
||||
reportTemplateName:string;
|
||||
reportTemplateVersion:string;
|
||||
dataRule:string;//数据处理原则
|
||||
|
||||
standardDevIds:string[];
|
||||
standardDevMap:Map<string,number>;//标准设备
|
||||
testItems:string[];//测试项
|
||||
Check_By?:string;//计划检测人
|
||||
progress?: number; // 进度百分比,例如 75
|
||||
children?: ResPlan[];
|
||||
testConfig?: PlanTestConfig;
|
||||
importFlag?: number; // 导入标识,0-否,1-是
|
||||
leader?: string; // 负责人
|
||||
memberIds?: string | string[]; //成员
|
||||
members?: string; //成员字符串
|
||||
}
|
||||
|
||||
// 被检设备参数
|
||||
export interface ReqPlanParams extends ReqPage {
|
||||
id: string; //检测计划ID
|
||||
name: string; //检测计划名称
|
||||
pattern: string; //模式,字典表(数字、模拟、比对)
|
||||
father_Plan_Id: string; //父计划ID
|
||||
dataSource_Id: string; //数据源ID
|
||||
script_Id: string; //检测脚本ID
|
||||
error_Sys_Id: string;//误差体系ID
|
||||
test_State: string; //检测状态
|
||||
report_State: string; //报告生成状态
|
||||
result: string;//检测结果
|
||||
state: number; //状态
|
||||
create_By?: string; //创建用户
|
||||
create_Time?: string;//创建时间
|
||||
update_By?: string; //更新用户
|
||||
update_Time?: string; //更新时间
|
||||
// 检测计划 + 分页
|
||||
export interface ReqPlanParams extends ReqPage,ResPlan {
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
export interface ReqPlan extends ResPlan {
|
||||
datasourceIds:string | string[];
|
||||
sourceIds: string | null;
|
||||
planId:string;
|
||||
scriptName: string ;
|
||||
errorSysName: string;
|
||||
sourceName: string ;
|
||||
standardDevNameStr: string;
|
||||
testItemNameStr:string;
|
||||
devIds: string[];
|
||||
}
|
||||
|
||||
export interface PlanTestConfig {
|
||||
planId: string;
|
||||
waveRecord: number;
|
||||
realTime: number;
|
||||
statistics: number;
|
||||
flicker: number;
|
||||
maxTime: number;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
162
frontend/src/api/plan/plan.ts
Normal file
@@ -0,0 +1,162 @@
|
||||
import type { Plan } from './interface'
|
||||
import http from '@/api'
|
||||
import type { ErrorSystem } from '../device/interface/error'
|
||||
import type { Device } from '../device/interface/device'
|
||||
|
||||
/**
|
||||
* @name 检测计划管理模块
|
||||
*/
|
||||
// 获取检测计划列表
|
||||
export const getPlanList = (params: Plan.ReqPlanParams) => {
|
||||
return http.post(`/adPlan/list`, params)
|
||||
}
|
||||
|
||||
// 新增检测计划
|
||||
export const addPlan = (params: any) => {
|
||||
return http.post(`/adPlan/add`, params)
|
||||
}
|
||||
|
||||
// 编辑检测计划
|
||||
export const updatePlan = (params: any) => {
|
||||
return http.post(`/adPlan/update`, params)
|
||||
}
|
||||
|
||||
// 删除检测计划
|
||||
export const deletePlan = (params: { id: string[]; pattern: string }) => {
|
||||
return http.post(`/adPlan/delete?pattern=${params.pattern}`, params.id)
|
||||
}
|
||||
|
||||
// 获取指定模式下所有检测源
|
||||
export const getTestSourceList = (params: Plan.ReqPlan) => {
|
||||
return http.get(`/pqSource/getAll?patternId=${params.pattern}`)
|
||||
}
|
||||
|
||||
// 获取指定模式下所有检测脚本
|
||||
export const getPqScriptList = (params: Plan.ReqPlan) => {
|
||||
return http.get(`/pqScript/getAll?patternId=${params.pattern}`)
|
||||
}
|
||||
|
||||
//获取所有误差体系
|
||||
export const getPqErrSysList = () => {
|
||||
return http.get<ErrorSystem.ErrorSystemList>(`/pqErrSys/getAll`)
|
||||
}
|
||||
|
||||
//获取指定模式下所有未绑定的设备
|
||||
export const getUnboundPqDevList = (params: { pattern: string}) => {
|
||||
return http.get(`/pqDev/listUnbound?pattern=${params.pattern}`)
|
||||
}
|
||||
|
||||
//根据检测计划id查询出所有已绑定的设备
|
||||
export const getBoundPqDevList = (params: any) => {
|
||||
return http.post(`/adPlan/listByPlanId`, params)
|
||||
}
|
||||
|
||||
//检测计划绑定设备
|
||||
// export const BindPqDevList = (params: any) => {
|
||||
// return http.post(`/pqDev/bindDev`,params)
|
||||
// }
|
||||
|
||||
// 按照模式查询检测计划(用于首页展示)
|
||||
export const getPlanListByPattern = (params: Plan.ReqPlan) => {
|
||||
return http.get(`/adPlan/listByPattern?pattern=${params.pattern}`)
|
||||
}
|
||||
|
||||
// 导出检测计划
|
||||
export const exportPlan = (params: Device.ReqPqDevParams) => {
|
||||
return http.download(`/adPlan/export`, params)
|
||||
}
|
||||
|
||||
// 下载模板
|
||||
export const downloadTemplate = (params: { patternId: string }) => {
|
||||
return http.download(`/adPlan/downloadTemplate`, params)
|
||||
}
|
||||
// 导入检测计划
|
||||
export const importPlan = (params: Device.ReqPqDevParams) => {
|
||||
return http.uploadExcel(`/adPlan/import`, params)
|
||||
}
|
||||
|
||||
// 装置检测报告生成
|
||||
export const generateDevReport = (params: Device.ReqDevReportParams) => {
|
||||
return http.post(`/report/generateReport`, params)
|
||||
}
|
||||
|
||||
// 装置检测报告下载
|
||||
export const downloadDevData = (params: Device.ReqDevReportParams) => {
|
||||
return http.download(`/report/downloadReport`, params)
|
||||
}
|
||||
|
||||
// 装置检测报告下载(带响应头)
|
||||
export const downloadDevDataWithHeaders = (params: Device.ReqDevReportParams) => {
|
||||
return http.downloadWithHeaders(`/report/downloadReport`, params)
|
||||
}
|
||||
|
||||
export const staticsAnalyse = (params: { id: string[] }) => {
|
||||
return http.download('/adPlan/analyse', params)
|
||||
}
|
||||
|
||||
//根据计划id分页查询被检设
|
||||
export const getDevListByPlanId = (params: any) => {
|
||||
return http.post(`/adPlan/listDevByPlanId`, params)
|
||||
}
|
||||
|
||||
//修改子计划名称
|
||||
export const updateSubPlanName = (params: Plan.ReqPlan) => {
|
||||
return http.get(`/adPlan/updateSubPlanName?planId=${params.id}&name=${params.name}`)
|
||||
}
|
||||
|
||||
//子计划绑定/解绑标准设备
|
||||
export const subPlanBindStandardDevList = (params: Plan.ReqPlan) => {
|
||||
return http.post(`/adPlan/updateBindStandardDev`, params)
|
||||
}
|
||||
|
||||
//子计划绑定/解绑被检设备
|
||||
export const subPlanBindDev = (params: Plan.ReqPlan) => {
|
||||
return http.post(`/adPlan/updateBindDev`, params)
|
||||
}
|
||||
|
||||
//根据父计划ID获取未被子计划绑定的标准设备
|
||||
export const getUnboundStandardDevList = (params: Plan.ResPlan) => {
|
||||
return http.get(`/adPlan/getUnBoundStandardDev?fatherPlanId=${params.fatherPlanId}`)
|
||||
}
|
||||
|
||||
//根据计划ID获取已绑定的标准设备
|
||||
export const getBoundStandardDevList = (params: Plan.ResPlan) => {
|
||||
return http.get(`/adPlan/getBoundStandardDev?planId=${params.id}`)
|
||||
}
|
||||
|
||||
//根据计划ID获取已绑定的所有标准设备
|
||||
export const getBoundStandardDevAllList = (params: { id: string }) => {
|
||||
return http.get(`/adPlan/getBoundStandardDev?planId=${params.id}&all=1`)
|
||||
}
|
||||
|
||||
// 导出子计划
|
||||
export const exportSubPlan = (params: Plan.ResPlan) => {
|
||||
return http.download(`/adPlan/exportSubPlan?planId=${params.id}`)
|
||||
}
|
||||
|
||||
// 导入子检测计划
|
||||
export const importSubPlan = (params: Plan.ResPlan) => {
|
||||
return http.upload(`/adPlan/importSubPlan`, params)
|
||||
}
|
||||
|
||||
// 导出计划检测结果数据
|
||||
export const exportPlanCheckData = (params: any) => {
|
||||
return http.post(
|
||||
`/adPlan/exportPlanCheckData?planId=${params.id}&devIds=${params.devIds}&report=${params.report}`
|
||||
)
|
||||
}
|
||||
|
||||
//根据误差体系id获取测试项
|
||||
export const getPqErrSysTestItemList = (params: {errorSysId : string}) => {
|
||||
return http.get(`/pqErrSys/getTestItems?id=${params.errorSysId}`)
|
||||
}
|
||||
|
||||
// 获取计划项目成员
|
||||
export const getMemberList = (params: {id : string}) => {
|
||||
return http.get(`/adPlan/getMemberList?planId=${params.id}`)
|
||||
}
|
||||
|
||||
// 导入并合并子检测计划检测结果数据
|
||||
export const importAndMergePlanCheckData = (params: Plan.ResPlan) => {
|
||||
return http.upload(`/adPlan/importAndMergePlanCheckData`, params)
|
||||
}
|
||||
@@ -1,125 +1,489 @@
|
||||
import type {Plan} from "./interface"
|
||||
|
||||
const plandata = ref<Plan.PlanList[]>([
|
||||
{
|
||||
'id': '1',
|
||||
'name': '检测计划1',
|
||||
'pattern':'模拟式',
|
||||
'father_Plan_Id':'/',
|
||||
'dataSource_Id':'分钟统计数据最大值',
|
||||
'script_Id':'国网入网检测脚本(单影响量-模拟式)',
|
||||
'error_Sys_Id':'Q/GDW 1650.2- 2016',
|
||||
'test_State':'未检',
|
||||
'report_State':'未生成',
|
||||
'result':'符合',
|
||||
'state': 1,
|
||||
'create_By':'',
|
||||
'create_Time':'',
|
||||
'update_By':'',
|
||||
'update_Time':'',
|
||||
},
|
||||
{
|
||||
'id': '2',
|
||||
'name': '检测子计划1-1',
|
||||
'pattern':'模拟式',
|
||||
'father_Plan_Id':'检测计划1',
|
||||
'dataSource_Id':'分钟统计数据最大值',
|
||||
'script_Id':'国网入网检测脚本(单影响量-模拟式)',
|
||||
'error_Sys_Id':'Q/GDW 1650.2- 2016',
|
||||
'test_State':'未检',
|
||||
'report_State':'未生成',
|
||||
'result':'符合',
|
||||
'state': 1,
|
||||
'create_By':'',
|
||||
'create_Time':'',
|
||||
'update_By':'',
|
||||
'update_Time':'',
|
||||
},
|
||||
{
|
||||
'id': '3',
|
||||
'name': '检测子计划1-2',
|
||||
'pattern':'模拟式',
|
||||
'father_Plan_Id':'检测计划1',
|
||||
'dataSource_Id':'分钟统计数据最大值',
|
||||
'script_Id':'国网入网检测脚本(单影响量-模拟式)',
|
||||
'error_Sys_Id':'Q/GDW 1650.2- 2016',
|
||||
'test_State':'未检',
|
||||
'report_State':'未生成',
|
||||
'result':'符合',
|
||||
'state': 1,
|
||||
'create_By':'',
|
||||
'create_Time':'',
|
||||
'update_By':'',
|
||||
'update_Time':'',
|
||||
},
|
||||
{
|
||||
'id': '4',
|
||||
'name': '检测计划2',
|
||||
'pattern':'模拟式',
|
||||
'father_Plan_Id':'/',
|
||||
'dataSource_Id':'分钟统计数据最小值',
|
||||
'script_Id':'国网入网检测脚本(单影响量-模拟式)',
|
||||
'error_Sys_Id':'Q/GDW 10650.2 - 2021',
|
||||
'test_State':'检测完成',
|
||||
'report_State':'部分生成',
|
||||
'result':'不符合',
|
||||
'state': 1,
|
||||
'create_By':'',
|
||||
'create_Time':'',
|
||||
'update_By':'',
|
||||
'update_Time':'',
|
||||
},
|
||||
{
|
||||
'id': '5',
|
||||
'name': '检测计划3',
|
||||
'pattern':'模拟式',
|
||||
'father_Plan_Id':'/',
|
||||
'dataSource_Id':'分钟统计数据最大值',
|
||||
'script_Id':'/',
|
||||
'error_Sys_Id':'/',
|
||||
'test_State':'未检',
|
||||
'report_State':'未生成',
|
||||
'result':'符合',
|
||||
'state': 1,
|
||||
'create_By':'',
|
||||
'create_Time':'',
|
||||
'update_By':'',
|
||||
'update_Time':'',
|
||||
},
|
||||
{
|
||||
'id': '6',
|
||||
'name': '检测子计划4',
|
||||
'pattern':'模拟式',
|
||||
'father_Plan_Id':'/',
|
||||
'dataSource_Id':'分钟统计数据CP95值',
|
||||
'script_Id':'国网入网检测脚本(单影响量-模拟式)',
|
||||
'error_Sys_Id':'Q/GDW 1650.2- 2016',
|
||||
'test_State':'未检',
|
||||
'report_State':'未生成',
|
||||
'result':'符合',
|
||||
'state': 1,
|
||||
'create_By':'',
|
||||
'create_Time':'',
|
||||
'update_By':'',
|
||||
'update_Time':'',
|
||||
},
|
||||
{
|
||||
'id': '7',
|
||||
'name': '检测子计划4-1',
|
||||
'pattern':'模拟式',
|
||||
'father_Plan_Id':'检测计划4',
|
||||
'dataSource_Id':'分钟统计数据CP95值',
|
||||
'script_Id':'国网入网检测脚本(单影响量-模拟式)',
|
||||
'error_Sys_Id':'Q/GDW 1650.2- 2016',
|
||||
'test_State':'未检',
|
||||
'report_State':'未生成',
|
||||
'result':'符合',
|
||||
'state': 1,
|
||||
'create_By':'',
|
||||
'create_Time':'',
|
||||
'update_By':'',
|
||||
'update_Time':'',
|
||||
},
|
||||
])
|
||||
/**
|
||||
* Dict 字典属性
|
||||
* id: 唯一标识
|
||||
* label: 名称
|
||||
*/
|
||||
interface Dict {
|
||||
id: string;
|
||||
label: string;
|
||||
}
|
||||
|
||||
export default plandata
|
||||
const dictPattern: Dict[] = [
|
||||
{
|
||||
id: "0",
|
||||
label: '数字',
|
||||
},
|
||||
{
|
||||
id: "1",
|
||||
label: '模拟',
|
||||
},
|
||||
{
|
||||
id: "2",
|
||||
label: '比对',
|
||||
},
|
||||
]
|
||||
|
||||
const dictTestState: Dict[] = [
|
||||
{
|
||||
id: "0",
|
||||
label: '未检',
|
||||
},
|
||||
{
|
||||
id: "1",
|
||||
label: '检测中',
|
||||
},
|
||||
{
|
||||
id: "2",
|
||||
label: '检测完成',
|
||||
},
|
||||
]
|
||||
|
||||
const dictReportState: Dict[] = [
|
||||
{
|
||||
id: "0",
|
||||
label: '未生成',
|
||||
},
|
||||
{
|
||||
id: "1",
|
||||
label: '部分生成',
|
||||
},
|
||||
{
|
||||
id: "2",
|
||||
label: '全部生成',
|
||||
},
|
||||
]
|
||||
|
||||
const dictResult: Dict[] = [
|
||||
{
|
||||
id: "0",
|
||||
label: '不符合',
|
||||
},
|
||||
{
|
||||
id: "1",
|
||||
label: '符合',
|
||||
},
|
||||
{
|
||||
id: "2",
|
||||
label: '/',
|
||||
},
|
||||
]
|
||||
|
||||
//全部检测计划名称与ID
|
||||
const testPlanDataList: Dict[] = [
|
||||
{
|
||||
id: "1",
|
||||
label: '模拟检测计划1',
|
||||
},
|
||||
{
|
||||
id: "2",
|
||||
label: '模拟检测计划2',
|
||||
},
|
||||
{
|
||||
id: "3",
|
||||
label: '模拟检测计划3',
|
||||
},
|
||||
]
|
||||
|
||||
//全部数据源名称与ID
|
||||
const testSoureDataList: Dict[] = [
|
||||
{
|
||||
id: "1",
|
||||
label: '实时数据',
|
||||
},
|
||||
{
|
||||
id: "2",
|
||||
label: '分钟统计数据最大值',
|
||||
},
|
||||
{
|
||||
id: "3",
|
||||
label: '分钟统计数据最小值',
|
||||
},
|
||||
{
|
||||
id: "4",
|
||||
label: '分钟统计数据平均值',
|
||||
},
|
||||
{
|
||||
id: "5",
|
||||
label: '分钟统计数据CP95值',
|
||||
},
|
||||
{
|
||||
id: "6",
|
||||
label: '录波数据',
|
||||
},
|
||||
]
|
||||
|
||||
//全部检测脚本名称与ID
|
||||
const testScriptDataList: Dict[] = [
|
||||
{
|
||||
id: "1",
|
||||
label: '国网入网检测脚本(单影响量-模拟式)',
|
||||
},
|
||||
{
|
||||
id: "2",
|
||||
label: '国网入网检测脚本(Q/GDW 10650.4 - 2021) 模拟式',
|
||||
},
|
||||
{
|
||||
id: "3",
|
||||
label: '国网入网检测脚本(Q/GDW 1650.4 - 2016) 模拟式',
|
||||
},
|
||||
{
|
||||
id: "4",
|
||||
label: 'GBT 19862 - 2016 模拟式',
|
||||
},
|
||||
{
|
||||
id: "5",
|
||||
label: '北京比对检测脚本',
|
||||
},
|
||||
]
|
||||
|
||||
//全部误差体系名称与ID
|
||||
const testErrSystDataList: Dict[] = [
|
||||
{
|
||||
id: "1",
|
||||
label: 'Q/GDW 1650.2- 2016',
|
||||
},
|
||||
{
|
||||
id: "2",
|
||||
label: 'Q/GDW 10650.2 - 2021',
|
||||
},
|
||||
{
|
||||
id: "3",
|
||||
label: 'GBT 19862 - 2016',
|
||||
},
|
||||
]
|
||||
|
||||
//父计划ID及名称
|
||||
const testFatherPlanList: Dict[] = [
|
||||
{
|
||||
id: "1",
|
||||
label: '检测计划1',
|
||||
},
|
||||
{
|
||||
id: "2",
|
||||
label: '检测子计划2',
|
||||
},
|
||||
{
|
||||
id: "3",
|
||||
label: '检测子计划1-2',
|
||||
},
|
||||
]
|
||||
|
||||
//检测源ID及名称
|
||||
const sourceDataList: Dict[] = [
|
||||
{
|
||||
id: "1",
|
||||
label: '标准源-FLUKE.6100A电能功率标准源-1',
|
||||
},
|
||||
{
|
||||
id: "2",
|
||||
label: '标准源-ANGLI-FP2高性能数字信号源-1',
|
||||
},
|
||||
{
|
||||
id: "3",
|
||||
label: '标准源-DKLN-1电能质量测试分析仪智能检定装置-1',
|
||||
},
|
||||
{
|
||||
id: "4",
|
||||
label: '标准源-PQC600A高精度电能功率标准源-1',
|
||||
},
|
||||
{
|
||||
id: "5",
|
||||
label: '高精度设备-PQV-520便携式电能质量监测装置-1',
|
||||
},
|
||||
{
|
||||
id: "6",
|
||||
label: '高精度设备-PQV-520便携式电能质量监测装置-2',
|
||||
},
|
||||
{
|
||||
id: "7",
|
||||
label: '高精度设备-PQV-520便携式电能质量监测装置-3',
|
||||
},
|
||||
{
|
||||
id: "8",
|
||||
label: '高精度设备-PQV-520便携式电能质量监测装置-4',
|
||||
},
|
||||
]
|
||||
|
||||
//被检设备ID及名称
|
||||
const deviceDataList: Dict[] = [
|
||||
{
|
||||
id: "1",
|
||||
label: '240001',
|
||||
},
|
||||
{
|
||||
id: "2",
|
||||
label: '240002',
|
||||
},
|
||||
{
|
||||
id: "3",
|
||||
label: '240003',
|
||||
},
|
||||
{
|
||||
id: "4",
|
||||
label: '240004',
|
||||
},
|
||||
{
|
||||
id: "5",
|
||||
label: '240005',
|
||||
},
|
||||
{
|
||||
id: "6",
|
||||
label: '240006',
|
||||
},
|
||||
{
|
||||
id: "7",
|
||||
label: '240007',
|
||||
},
|
||||
{
|
||||
id: "8",
|
||||
label: '240008',
|
||||
},
|
||||
]
|
||||
// const deviceDataList: Dict[] = [
|
||||
// {
|
||||
// id: "1",
|
||||
// label: '模拟装置1',
|
||||
// },
|
||||
// {
|
||||
// id: "2",
|
||||
// label: '模拟装置2',
|
||||
// },
|
||||
// {
|
||||
// id: "3",
|
||||
// label: '模拟装置3',
|
||||
// },
|
||||
// {
|
||||
// id: "4",
|
||||
// label: '模拟装置4',
|
||||
// },
|
||||
// {
|
||||
// id: "5",
|
||||
// label: '中电送检装置',
|
||||
// },
|
||||
// {
|
||||
// id: "6",
|
||||
// label: '易司拓测试装置',
|
||||
// },
|
||||
// {
|
||||
// id: "7",
|
||||
// label: '山大电力测试装置1',
|
||||
// },
|
||||
// {
|
||||
// id: "8",
|
||||
// label: '山大电力测试装置2',
|
||||
// },
|
||||
|
||||
// ]
|
||||
|
||||
const planData = ref<Plan.PlanAndSourceBO[]>([
|
||||
{
|
||||
'id': '1',
|
||||
'name': '沧州110kV东光站装置送检',
|
||||
'pattern':'1',
|
||||
"source_Id" : ['1'],
|
||||
"testSourceName":'标准源-FLUKE.6100A电能功率标准源-1',
|
||||
'dataSource_Id':['1'],
|
||||
'dataSource_Ids':'实时数据',
|
||||
'script_Id':'1',
|
||||
'error_Sys_Id':'1',
|
||||
'test_State':'1',
|
||||
'report_State':'1',
|
||||
'result':'1',
|
||||
},
|
||||
{
|
||||
'id': '2',
|
||||
'name': '邯郸2台安徽振兴终端送检',
|
||||
'pattern':'1',
|
||||
"source_Id" : ['5','6','7','8'],
|
||||
"testSourceName":'高精度设备-PQV-520便携式电能质量监测装置-1',
|
||||
'father_Plan_Id':'1',
|
||||
'dataSource_Id':['1'],
|
||||
'dataSource_Ids':'实时数据',
|
||||
'script_Id':'2',
|
||||
'error_Sys_Id':'2',
|
||||
'test_State':'2',
|
||||
'report_State':'2',
|
||||
'result':'0',
|
||||
"testSourceList":[
|
||||
'高精度设备-PQV-520便携式电能质量监测装置-2','高精度设备-PQV-520便携式电能质量监测装置-3','高精度设备-PQV-520便携式电能质量监测装置-4'
|
||||
]
|
||||
},
|
||||
{
|
||||
'id': '3',
|
||||
'name': '浙江分布式光伏电能质量试点',
|
||||
'pattern':'1',
|
||||
"source_Id" : ['3'],
|
||||
"testSourceName":'标准源-DKLN-1电能质量测试分析仪智能检定装置-1',
|
||||
'father_Plan_Id':'1',
|
||||
'dataSource_Id':['1'],
|
||||
'dataSource_Ids':'实时数据',
|
||||
'script_Id':'4',
|
||||
'error_Sys_Id':'3',
|
||||
'test_State':'1',
|
||||
'report_State':'1',
|
||||
'result':'1',
|
||||
},
|
||||
])
|
||||
// const planData = ref<Plan.PlanBO[]>([
|
||||
// {
|
||||
// 'id': '1',
|
||||
// 'name': '检测计划1',
|
||||
// 'pattern':'1',
|
||||
// 'dataSource_Id':'1',
|
||||
// 'script_Id':'1',
|
||||
// 'error_Sys_Id':'1',
|
||||
// 'test_State':'1',
|
||||
// 'report_State':'1',
|
||||
// 'result':'1',
|
||||
// },
|
||||
// {
|
||||
// 'id': '2',
|
||||
// 'name': '检测子计划2',
|
||||
// 'pattern':'1',
|
||||
// 'father_Plan_Id':'1',
|
||||
// 'dataSource_Id':'2',
|
||||
// 'script_Id':'2',
|
||||
// 'error_Sys_Id':'2',
|
||||
// 'test_State':'2',
|
||||
// 'report_State':'2',
|
||||
// 'result':'0',
|
||||
// },
|
||||
// {
|
||||
// 'id': '3',
|
||||
// 'name': '检测子计划1-2',
|
||||
// 'pattern':'1',
|
||||
// 'father_Plan_Id':'1',
|
||||
// 'dataSource_Id':'3',
|
||||
// 'script_Id':'3',
|
||||
// 'error_Sys_Id':'3',
|
||||
// 'test_State':'1',
|
||||
// 'report_State':'1',
|
||||
// 'result':'1',
|
||||
// },
|
||||
// ])
|
||||
|
||||
// const plandata = ref<Plan.PlanList[]>([
|
||||
// {
|
||||
// 'id': '1',
|
||||
// 'name': '检测计划1',
|
||||
// 'pattern':'模拟式',
|
||||
// 'father_Plan_Id':'/',
|
||||
// 'dataSource_Id':'分钟统计数据最大值',
|
||||
// 'script_Id':'国网入网检测脚本(单影响量-模拟式)',
|
||||
// 'error_Sys_Id':'Q/GDW 1650.2- 2016',
|
||||
// 'test_State':'未检',
|
||||
// 'report_State':'未生成',
|
||||
// 'result':'符合',
|
||||
// 'state': 1,
|
||||
// 'create_By':'',
|
||||
// 'create_Time':'',
|
||||
// 'update_By':'',
|
||||
// 'update_Time':'',
|
||||
// },
|
||||
// {
|
||||
// 'id': '2',
|
||||
// 'name': '检测子计划1-1',
|
||||
// 'pattern':'模拟式',
|
||||
// 'father_Plan_Id':'检测计划1',
|
||||
// 'dataSource_Id':'分钟统计数据最大值',
|
||||
// 'script_Id':'国网入网检测脚本(单影响量-模拟式)',
|
||||
// 'error_Sys_Id':'Q/GDW 1650.2- 2016',
|
||||
// 'test_State':'未检',
|
||||
// 'report_State':'未生成',
|
||||
// 'result':'符合',
|
||||
// 'state': 1,
|
||||
// 'create_By':'',
|
||||
// 'create_Time':'',
|
||||
// 'update_By':'',
|
||||
// 'update_Time':'',
|
||||
// },
|
||||
// {
|
||||
// 'id': '3',
|
||||
// 'name': '检测子计划1-2',
|
||||
// 'pattern':'模拟式',
|
||||
// 'father_Plan_Id':'检测计划1',
|
||||
// 'dataSource_Id':'分钟统计数据最大值',
|
||||
// 'script_Id':'国网入网检测脚本(单影响量-模拟式)',
|
||||
// 'error_Sys_Id':'Q/GDW 1650.2- 2016',
|
||||
// 'test_State':'未检',
|
||||
// 'report_State':'未生成',
|
||||
// 'result':'符合',
|
||||
// 'state': 1,
|
||||
// 'create_By':'',
|
||||
// 'create_Time':'',
|
||||
// 'update_By':'',
|
||||
// 'update_Time':'',
|
||||
// },
|
||||
// {
|
||||
// 'id': '4',
|
||||
// 'name': '检测计划2',
|
||||
// 'pattern':'模拟式',
|
||||
// 'father_Plan_Id':'/',
|
||||
// 'dataSource_Id':'分钟统计数据最小值',
|
||||
// 'script_Id':'国网入网检测脚本(单影响量-模拟式)',
|
||||
// 'error_Sys_Id':'Q/GDW 10650.2 - 2021',
|
||||
// 'test_State':'检测完成',
|
||||
// 'report_State':'部分生成',
|
||||
// 'result':'不符合',
|
||||
// 'state': 1,
|
||||
// 'create_By':'',
|
||||
// 'create_Time':'',
|
||||
// 'update_By':'',
|
||||
// 'update_Time':'',
|
||||
// },
|
||||
// {
|
||||
// 'id': '5',
|
||||
// 'name': '检测计划3',
|
||||
// 'pattern':'模拟式',
|
||||
// 'father_Plan_Id':'/',
|
||||
// 'dataSource_Id':'分钟统计数据最大值',
|
||||
// 'script_Id':'/',
|
||||
// 'error_Sys_Id':'/',
|
||||
// 'test_State':'未检',
|
||||
// 'report_State':'未生成',
|
||||
// 'result':'符合',
|
||||
// 'state': 1,
|
||||
// 'create_By':'',
|
||||
// 'create_Time':'',
|
||||
// 'update_By':'',
|
||||
// 'update_Time':'',
|
||||
// },
|
||||
// {
|
||||
// 'id': '6',
|
||||
// 'name': '检测子计划4',
|
||||
// 'pattern':'模拟式',
|
||||
// 'father_Plan_Id':'/',
|
||||
// 'dataSource_Id':'分钟统计数据CP95值',
|
||||
// 'script_Id':'国网入网检测脚本(单影响量-模拟式)',
|
||||
// 'error_Sys_Id':'Q/GDW 1650.2- 2016',
|
||||
// 'test_State':'未检',
|
||||
// 'report_State':'未生成',
|
||||
// 'result':'符合',
|
||||
// 'state': 1,
|
||||
// 'create_By':'',
|
||||
// 'create_Time':'',
|
||||
// 'update_By':'',
|
||||
// 'update_Time':'',
|
||||
// },
|
||||
// {
|
||||
// 'id': '7',
|
||||
// 'name': '检测子计划4-1',
|
||||
// 'pattern':'模拟式',
|
||||
// 'father_Plan_Id':'检测计划4',
|
||||
// 'dataSource_Id':'分钟统计数据CP95值',
|
||||
// 'script_Id':'国网入网检测脚本(单影响量-模拟式)',
|
||||
// 'error_Sys_Id':'Q/GDW 1650.2- 2016',
|
||||
// 'test_State':'未检',
|
||||
// 'report_State':'未生成',
|
||||
// 'result':'符合',
|
||||
// 'state': 1,
|
||||
// 'create_By':'',
|
||||
// 'create_Time':'',
|
||||
// 'update_By':'',
|
||||
// 'update_Time':'',
|
||||
// },
|
||||
// ])
|
||||
|
||||
export {planData,dictPattern,dictTestState,dictReportState,dictResult,testPlanDataList,sourceDataList,deviceDataList,testSoureDataList,testScriptDataList,testErrSystDataList,testFatherPlanList}
|
||||
@@ -2,6 +2,7 @@ import http from "@/api";
|
||||
|
||||
//获取计划列表
|
||||
export const getPlanList = (data: any) => {
|
||||
return null;
|
||||
return http.post<Static.planData>(
|
||||
"http://192.168.1.123:4523/m1/2573730-0-default/plan/planList/list",
|
||||
data,
|
||||
|
||||
@@ -2,22 +2,22 @@
|
||||
"code": "200",
|
||||
"data": [
|
||||
{
|
||||
"name": "未检测",
|
||||
"name": "未检",
|
||||
"children": [
|
||||
{
|
||||
"id": 4,
|
||||
"pid": 1,
|
||||
"name": "检测计划1"
|
||||
"name": "邯郸220kV团城站电能质量检测"
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"pid": 1,
|
||||
"name": "检测计划2"
|
||||
"name": "衡水冀州光伏电站配套出口工程"
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"pid": 1,
|
||||
"name": "检测计划3"
|
||||
"name": "深圳市中电公司委托送检"
|
||||
}
|
||||
],
|
||||
"id": 1
|
||||
@@ -28,17 +28,17 @@
|
||||
{
|
||||
"id": 7,
|
||||
"pid": 2,
|
||||
"name": "检测计划4"
|
||||
"name": "沧州220kV留古站电能质量检测"
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"pid": 2,
|
||||
"name": "检测计划5"
|
||||
"name": "沧州110kV东光站装置送检"
|
||||
},
|
||||
{
|
||||
"id": 9,
|
||||
"pid": 2,
|
||||
"name": "检测计划6"
|
||||
"name": "浙江分布式光伏电能质量试点"
|
||||
}
|
||||
],
|
||||
"id": 2
|
||||
@@ -49,12 +49,12 @@
|
||||
{
|
||||
"id": 10,
|
||||
"pid": 3,
|
||||
"name": "检测计划7"
|
||||
"name": "邯郸2台安徽振兴终端送检"
|
||||
},
|
||||
{
|
||||
"id": 11,
|
||||
"pid": 3,
|
||||
"name": "检测计划8"
|
||||
"name": "深圳2台中电终端委托送检"
|
||||
}
|
||||
],
|
||||
"id": 3
|
||||
|
||||
51
frontend/src/api/result/interface/index.ts
Normal file
@@ -0,0 +1,51 @@
|
||||
|
||||
export interface MonitorResult {
|
||||
/**
|
||||
* 监测点id
|
||||
*/
|
||||
monitorId: string;
|
||||
|
||||
/**
|
||||
* 监测点序号
|
||||
*/
|
||||
monitorNum: number;
|
||||
|
||||
/**
|
||||
* 总检测次数
|
||||
*/
|
||||
totalNum: number;
|
||||
|
||||
/**
|
||||
* 合格检测次数
|
||||
*/
|
||||
qualifiedNum: number;
|
||||
|
||||
/**
|
||||
* 不合格检测次数
|
||||
*/
|
||||
unQualifiedNum: number;
|
||||
|
||||
/**
|
||||
* 误差体系名称
|
||||
*/
|
||||
errorSysName: string;
|
||||
|
||||
/**
|
||||
* 检测结果
|
||||
*/
|
||||
checkResult: number;
|
||||
|
||||
/**
|
||||
* 哪次
|
||||
*/
|
||||
whichTime: string;
|
||||
|
||||
/**
|
||||
* 结论来源
|
||||
*/
|
||||
resultOrigin: string;
|
||||
/**
|
||||
* 来源类型
|
||||
*/
|
||||
resultType: string;
|
||||
}
|
||||
7
frontend/src/api/result/result.ts
Normal file
@@ -0,0 +1,7 @@
|
||||
import http from '@/api'
|
||||
|
||||
export const getMonitorResult = (devId: string) => http.post(`/result/getMonitorResult?devId=${devId}`)
|
||||
export const getMonitorDataSourceResult = (monitorId: string) =>
|
||||
http.get(`/result/getMonitorDataSourceResult?monitorId=${monitorId}`)
|
||||
|
||||
export const updateMonitorResult = (data: any) => http.post('/result/updateMonitorResult', data)
|
||||
@@ -1,94 +0,0 @@
|
||||
import { ResPage } from '@/api/interface'
|
||||
import { Role } from './interface'
|
||||
import { ADMIN as rePrefix } from '@/api/config/serviceName'
|
||||
import http from '@/api'
|
||||
|
||||
/**
|
||||
* @name 角色管理模块
|
||||
*/
|
||||
// 获取角色列表
|
||||
export const getRoleList = (params: Role.ReqRoleParams) => {
|
||||
return http.post<ResPage<Role.RoleBO>>(`/role/list`, params)
|
||||
|
||||
// return http.post<ResPage<Role.ResRoleList>>(`/RoleList_Post`, params)
|
||||
// return http.post<ResPage<Role.ResRoleList>>(`${rePrefix}/role/list`, params)
|
||||
}
|
||||
|
||||
// 新增角色
|
||||
export const addRole = (params: Role.RoleBO) => {
|
||||
return http.post(`/role/add`, params)
|
||||
}
|
||||
|
||||
// 编辑角色
|
||||
export const editRole = (params: Role.RoleBO) => {
|
||||
return http.post(`/role/edit`, params)
|
||||
}
|
||||
|
||||
// 删除角色
|
||||
export const deleteRole = (params: { id: string[] }) => {
|
||||
return http.post(`/role/del`, params)
|
||||
}
|
||||
|
||||
|
||||
// 编辑角色资源
|
||||
export const editRoleAndPermission = (params: Role.ReqRoleAndPermission) => {
|
||||
return http.post(`/role/edit_RoleAndPermission`, params)
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// // 获取树形用户列表
|
||||
// export const getRoleTreeList = (params: Role.ReqRoleParams) => {
|
||||
// return http.post<ResPage<Role.ResRoleList>>(`${rePrefix}/role/tree/list`, params)
|
||||
// }
|
||||
|
||||
// export const addRole = (params: { id: string ; rolename: string;status: number; describe:string; }) => {
|
||||
// return http.post(`/RoleList_Add`, params)
|
||||
// }
|
||||
|
||||
// 批量添加角色
|
||||
// export const BatchAddRole = (params: FormData) => {
|
||||
// return http.post(`${rePrefix}/role/import`, params)
|
||||
// }
|
||||
|
||||
// // 切换角色状态
|
||||
// export const changeRoleStatus = (params: { id: string; status: number }) => {
|
||||
// return http.post(`${rePrefix}/role/change`, params)
|
||||
// }
|
||||
|
||||
// 重置用户密码
|
||||
// export const resetUserPassWord = (params: { id: string }) => {
|
||||
// return http.post(`${rePrefix}/role/rest_password`, params)
|
||||
// }
|
||||
|
||||
// 导出角色数据
|
||||
// export const exportRoleInfo = (params: Role.ReqRoleParams) => {
|
||||
// return http.download(`${rePrefix}/role/export`, params)
|
||||
// }
|
||||
|
||||
// 获取角色状态字典
|
||||
// export const getRoleStatus = () => {
|
||||
// return http.get<Role.ResStatus[]>(`${rePrefix}/role/status`)
|
||||
// }
|
||||
|
||||
// 获取用户性别字典
|
||||
// export const getUserGender = () => {
|
||||
// return http.get<User.ResGender[]>(`${rePrefix}/user/gender`)
|
||||
// }
|
||||
|
||||
// 获取角色权限列表
|
||||
// export const getRoleDepartment = () => {
|
||||
// return http.get<Role.ResPermissionList[]>(`${rePrefix}/role/permission`)
|
||||
// }
|
||||
|
||||
// 获取用户角色字典
|
||||
// export const getUserRole = () => {
|
||||
// return http.get<User.ResRole[]>(`${rePrefix}/user/role`)
|
||||
// }
|
||||
@@ -1,70 +0,0 @@
|
||||
const data = [
|
||||
{
|
||||
rolename:"操作员1",
|
||||
id: 'operator_role',
|
||||
status:1,
|
||||
describe:"可以对待检设备的台账进行操作并执行检测功能",
|
||||
permissionList: [
|
||||
{
|
||||
label: "台账管理",
|
||||
key: "dataManager",
|
||||
disable: false,
|
||||
},
|
||||
{
|
||||
label: "系统配置",
|
||||
key: "sysManager",
|
||||
disable: false,
|
||||
},
|
||||
{
|
||||
label: "设备检测",
|
||||
key: "devTest",
|
||||
disable: true,
|
||||
},
|
||||
]},
|
||||
{
|
||||
rolename:"管理员2",
|
||||
id: 'manager_role',
|
||||
status:1,
|
||||
describe:"可以设置检测脚本、误差体系、新增操作人员",
|
||||
permissionList: [
|
||||
{
|
||||
label: "台账管理",
|
||||
key: "dataManager",
|
||||
disable: true,
|
||||
},
|
||||
{
|
||||
label: "系统配置",
|
||||
key: "sysManager",
|
||||
disable: false,
|
||||
},
|
||||
{
|
||||
label: "设备检测",
|
||||
key: "devTest",
|
||||
disable: true,
|
||||
},
|
||||
]},
|
||||
{
|
||||
rolename:"超级管理员3",
|
||||
id: 'superManager_role',
|
||||
status:0,
|
||||
describe:"可以修改程序的底层配置,例如检测指标的具体类型",
|
||||
permissionList: [
|
||||
{
|
||||
label: "台账管理",
|
||||
key: "dataManager",
|
||||
disable: true,
|
||||
},
|
||||
{
|
||||
label: "系统配置",
|
||||
key: "sysManager",
|
||||
disable: true,
|
||||
},
|
||||
{
|
||||
label: "设备检测",
|
||||
key: "devTest",
|
||||
disable: true,
|
||||
},
|
||||
]},
|
||||
]
|
||||
|
||||
export default data
|
||||
46
frontend/src/api/socket/socket.ts
Normal file
@@ -0,0 +1,46 @@
|
||||
import http from '@/api'
|
||||
|
||||
|
||||
export const startPreTest = (params) => {
|
||||
return http.post(`/prepare/startPreTest`, params, {loading: false})
|
||||
}
|
||||
|
||||
export const closePreTest = (params) => {
|
||||
return http.post(`/prepare/closePreTest`, params,{ loading: false })
|
||||
}
|
||||
|
||||
/**
|
||||
* 开始正式检测
|
||||
* @param params
|
||||
*/
|
||||
// export const startTest = (params) => {
|
||||
// return http.post(`/prepare/startTest`, params, {loading: false})
|
||||
// }
|
||||
|
||||
/**
|
||||
* 暂停正式检测
|
||||
* @param params
|
||||
*/
|
||||
export const pauseTest = () => {
|
||||
return http.get(`/prepare/closePreTest`, {loading: false})
|
||||
}
|
||||
|
||||
/**
|
||||
* 继续正式检测
|
||||
* @param params
|
||||
*/
|
||||
export const resumeTest = (params) => {
|
||||
return http.post(`/prepare/restartTemTest/`, params, {loading: false})
|
||||
}
|
||||
|
||||
/**
|
||||
* 比对式通道配对
|
||||
* @param params
|
||||
*/
|
||||
export const contrastTest = (params: any) => {
|
||||
return http.post(`/prepare/startContrastTest`,params)
|
||||
}
|
||||
|
||||
export const exportAlignData= () => {
|
||||
return http.download(`/prepare/exportAlignData`)
|
||||
}
|
||||
22
frontend/src/api/system/base/index.ts
Normal file
@@ -0,0 +1,22 @@
|
||||
|
||||
import http from '@/api'
|
||||
import {type Base} from '@/api/system/base/interface'
|
||||
|
||||
//获取检测配置
|
||||
export const getTestConfig = () => {
|
||||
return http.get(`/sysTestConfig/getConfig`)
|
||||
}
|
||||
|
||||
|
||||
//编辑检测配置
|
||||
export const updateTestConfig = (params: Base.ResTestConfig) => {
|
||||
return http.post(`/sysTestConfig/update`, params)
|
||||
}
|
||||
|
||||
//场景切换
|
||||
export const updateScene = (params: any) => {
|
||||
return http.post(`/sysTestConfig/update`,params)
|
||||
}
|
||||
|
||||
|
||||
|
||||
19
frontend/src/api/system/base/interface/index.ts
Normal file
@@ -0,0 +1,19 @@
|
||||
// 检测配置表模块
|
||||
export namespace Base {
|
||||
|
||||
/**
|
||||
* 检测配置表查询返回的对象
|
||||
*/
|
||||
export interface ResTestConfig {
|
||||
id: string; //系统配置表Id
|
||||
autoGenerate:number;//检测报告是否自动生成0 否;1是
|
||||
maxTime:number;//最大复检次数,默认3次
|
||||
state: number; //状态
|
||||
scale:number;//小数位
|
||||
createBy?: string| null; //创建用户
|
||||
createTime?: string| null; //创建时间
|
||||
updateBy?: string| null; //更新用户
|
||||
updateTime?: string| null; //更新时间
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,11 @@
|
||||
|
||||
/**
|
||||
* 模拟字典静态数据,有后端接口后,需要删除 todo...
|
||||
*/
|
||||
import { Dict } from '@/api/interface'
|
||||
/**
|
||||
* 模拟字典静态数据,有后端接口后,需要删除 todo...
|
||||
*/
|
||||
import type { Dict } from '@/api/interface'
|
||||
|
||||
const dictData: Dict[] = [
|
||||
{
|
||||
@@ -212,7 +216,7 @@ const dictData: Dict[] = [
|
||||
children: [
|
||||
{
|
||||
id: "0",
|
||||
label: 'FLUKE6100A电能功率标准源',
|
||||
label: 'FLUKE.6100A电能功率标准源',
|
||||
code: 0,
|
||||
},
|
||||
{
|
||||
@@ -232,7 +236,7 @@ const dictData: Dict[] = [
|
||||
},
|
||||
{
|
||||
id: "4",
|
||||
label: 'PQV-520电能质量检测装置',
|
||||
label: 'PQV-520便携式电能质量监测装置',
|
||||
code: 4,
|
||||
},
|
||||
],
|
||||
@@ -1,6 +1,5 @@
|
||||
import http from '@/api'
|
||||
import {type Dict} from '@/api/system/dictionary/interface'
|
||||
import type {ResultData} from "@/api/interface";
|
||||
|
||||
//获取字典数据
|
||||
export const getDictDataListByTypeId = (params: Dict.ReqDictDataParams) => {
|
||||
@@ -26,4 +25,9 @@ export const getDicDataById = (params: string) => {
|
||||
return http.post('/dictData/getDicDataById', params)
|
||||
}
|
||||
|
||||
//导出字典数据
|
||||
export const exportDictData = (params: Dict.ReqDictDataParams) => {
|
||||
return http.download(`/dictData/export`, params)
|
||||
}
|
||||
|
||||
|
||||
|
||||
23
frontend/src/api/system/dictionary/dictPq/index.ts
Normal file
@@ -0,0 +1,23 @@
|
||||
import http from '@/api'
|
||||
import { type Dict } from '@/api/system/dictionary/interface'
|
||||
|
||||
//获取字典类型
|
||||
export const getDictPqList = (params: Dict.ReqDictPqParams) => {
|
||||
return http.post(`/dictPq/list`, params)
|
||||
}
|
||||
|
||||
//添加字典类型
|
||||
export const addDictPq = (params: Dict.ResDictPq) => {
|
||||
return http.post(`/dictPq/add`, params)
|
||||
}
|
||||
|
||||
//编辑字典类型
|
||||
export const updateDictPq = (params: Dict.ResDictPq) => {
|
||||
return http.post(`/dictPq/update`, params)
|
||||
}
|
||||
|
||||
//删除字典类型
|
||||
export const deleteDictPq = (params: string[]) => {
|
||||
return http.post(`/dictPq/delete`, params)
|
||||
}
|
||||
|
||||
29
frontend/src/api/system/dictionary/dictTree/index.ts
Normal file
@@ -0,0 +1,29 @@
|
||||
import http from '@/api'
|
||||
import { type Dict } from '@/api/system/dictionary/interface'
|
||||
import { c } from 'vite/dist/node/types.d-aGj9QkWt'
|
||||
|
||||
//获取字典类型
|
||||
export const getDictTreeByCode = (params: Dict.ResDictTree) => {
|
||||
const code = params.code || ''
|
||||
return http.get(`/dictTree/getTreeByCode?code=${code}`, { loading: true })
|
||||
}
|
||||
|
||||
export const getDictTreeByName = (params: Dict.ResDictTree) => {
|
||||
const name = params.name || ''
|
||||
return http.get(`/dictTree/getTreeByName?name=${name}`)
|
||||
}
|
||||
|
||||
//添加字典类型
|
||||
export const addDictTree = (params: Dict.ResDictTree) => {
|
||||
return http.post(`/dictTree/add`, params)
|
||||
}
|
||||
|
||||
//编辑字典类型
|
||||
export const updateDictTree = (params: Dict.ResDictTree) => {
|
||||
return http.post(`/dictTree/update`, params)
|
||||
}
|
||||
|
||||
//删除字典类型
|
||||
export const deleteDictTree = (params: Dict.ResDictTree) => {
|
||||
return http.post(`/dictTree/delete?id=${params.id}`)
|
||||
}
|
||||
@@ -21,4 +21,7 @@ export const deleteDictType = (params: string[]) => {
|
||||
return http.post(`/dictType/delete`, params)
|
||||
}
|
||||
|
||||
|
||||
//导出字典类型
|
||||
export const exportDictType=(params: Dict.ReqDictTypeParams)=>{
|
||||
return http.download(`/dictType/export`, params)
|
||||
}
|
||||
|
||||
@@ -62,6 +62,7 @@ export namespace Dict {
|
||||
name: string; // 名称
|
||||
code: string; // 编码
|
||||
sort: number; // 排序
|
||||
openValue?: number | null;
|
||||
level?: number | null; // 事件等级:0-普通;1-中等;2-严重 (默认为0)
|
||||
algoDescribe?: number | null; // 与高级算法内部Id描述对应
|
||||
value?: string | null; // 字典针对电压等级
|
||||
@@ -80,4 +81,89 @@ export namespace Dict {
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 电能质量指标字典数据表格分页查询参数
|
||||
*/
|
||||
export interface ReqDictPqParams extends ReqPage{
|
||||
id: string; // 类型id 必填
|
||||
name?: string; // 名称
|
||||
phase?: string;//相别
|
||||
dataType?: string;//数据模型(epd、pqd...)
|
||||
}
|
||||
|
||||
/**
|
||||
* 电能质量指标字典数据新增、修改、根据id查询返回的对象
|
||||
*/
|
||||
export interface ResDictPq {
|
||||
id: string;//指标字典表Id
|
||||
name: string;//指标名称
|
||||
phase: string;//相别
|
||||
dataType: string;//数据模型(epd、pqd...)
|
||||
otherName?: string ;//别名(默认与Name相同,主要是为了适配不同数据库里面字段)
|
||||
showName?:string | null;//显示名称
|
||||
sort:number;//排序
|
||||
type?: string | null;//指标数据类型(整型、浮点型、枚举型这些的)
|
||||
unit?: string | null;//单位
|
||||
harmStart?:number | null;//起始次数
|
||||
harmEnd?:number | null;//结束次数
|
||||
classId: string ;//数据表表名
|
||||
statMethod?:string;//数据统计类型(最大、最小、平均、CP95)
|
||||
systemType?:string | null;//系统类别(区分用能/电能)
|
||||
tranFlag?:number ;//数据是否上送(0:不上送 1:上送)
|
||||
tranRule?:string | null;//上送规则 变化:“change”周期 :“ period”
|
||||
eventType?:string | null;//evt的事件类别 "1"、"2";
|
||||
storeFlag?:string ;//sts、di的是否存储 1:存储 0:不存 储;
|
||||
curSts?:number | null;//sts、do的当前值;
|
||||
ctlSts?:number;//do的是否可远程控制 1:是 0:否;
|
||||
maxNum?:number | null;//设置最大值
|
||||
minNum?: number| null;//设置最小值
|
||||
setValue?:string | null;//参数为enum可设置的所有值序列
|
||||
strlen?:number | null;//参数string可设置字符串的长度上 限
|
||||
defaultValue?:string | null; //参数缺省值、告警code值
|
||||
resourcesId?:string ; //报表数据来源(统计表表名)
|
||||
limitName?:string | null; //限值字段名称
|
||||
limitTable?:string | null;//限值表名
|
||||
formula?:string ;//超标判断方式
|
||||
primaryFormula?:string | null;//二次值转一次值公式
|
||||
state:number;//状态:0-删除 1-正常
|
||||
createBy?:string | null;//创建用户
|
||||
createTime?:string | null;//创建时间
|
||||
updateBy?:string | null;//更新用户
|
||||
updateTime?:string | null;//更新时间
|
||||
}
|
||||
|
||||
/**
|
||||
* 电能质量指标字典数据表格查询分页返回的对象;
|
||||
*/
|
||||
export interface ResDictPqPage extends ResPage<ResDictPq> {
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 树形字典数据新增、修改、根据id查询返回的对象
|
||||
*/
|
||||
export interface ResDictTree {
|
||||
id: string;//指标字典表Id
|
||||
pid: string;//
|
||||
pids: string;//
|
||||
name:string;//
|
||||
code:string;//
|
||||
sort:number;//
|
||||
remark?:string;//
|
||||
state?:number;//'状态(字典 0正常 1停用 2删除)
|
||||
createBy?:string | null;//
|
||||
createTime?:string | null;//
|
||||
updateBy?:string | null;//
|
||||
updateTime?:string | null;//
|
||||
level?:number | null;//
|
||||
extend?:string | null;//对应type,不同类型可自定义配置
|
||||
type?:number | null;//用于区分多种类型的字典树 0.台账对象类型 1.自定义报表指标类型
|
||||
children?: ResDictTree[];
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
16
frontend/src/api/system/log/index.ts
Normal file
@@ -0,0 +1,16 @@
|
||||
import type {AuditLog } from '@/api/system/log/interface/log.ts'
|
||||
import http from '@/api'
|
||||
|
||||
/**
|
||||
* @name 审计日志管理模块
|
||||
*/
|
||||
|
||||
//获取审计日志
|
||||
export const getAuditLog = (params: AuditLog.ReqAuditLogParams) => {
|
||||
return http.post(`/sysLog/list`, params)
|
||||
}
|
||||
|
||||
|
||||
export const exportCsv = (params: AuditLog.ReqAuditLogParams) => {
|
||||
return http.download(`/sysLog/exportCSV`, params)
|
||||
}
|
||||
36
frontend/src/api/system/log/interface/log.ts
Normal file
@@ -0,0 +1,36 @@
|
||||
import type { ReqPage, ResPage } from '@/api/interface'
|
||||
|
||||
// 审计日志管理模块
|
||||
export namespace AuditLog {
|
||||
|
||||
/**
|
||||
* 设备类型数据表格分页查询参数
|
||||
*/
|
||||
export interface ReqAuditLogParams extends ReqPage {
|
||||
id: string; //审计日志Id 必填
|
||||
createTime?: string; //创建时间
|
||||
}
|
||||
|
||||
/**
|
||||
* 设备类型新增、修改、根据id查询返回的对象
|
||||
*/
|
||||
export interface ResAuditLog {
|
||||
id: string;//审计日志Id
|
||||
operate_Type:string;//操作类型
|
||||
ip:string;//操作IP
|
||||
result: string;//事件结果
|
||||
remark: string;//事件描述
|
||||
level:number;//告警等级
|
||||
warn:number;//告警标志
|
||||
create_By:string;//创建用户
|
||||
create_Time:string;//创建时间
|
||||
sort:number;//排序
|
||||
}
|
||||
|
||||
/**
|
||||
* 设备类型表格查询分页返回的对象;
|
||||
*/
|
||||
export interface ResAuditLogPage extends ResPage<ResAuditLog> {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
import type {Sys_Log_Audit} from "./interface"
|
||||
import type {Sys_Log_Audit} from "./interface/log"
|
||||
|
||||
const logdata = ref<Sys_Log_Audit.Audit_LogList[]>([
|
||||
{
|
||||
12
frontend/src/api/system/versionRegister/index.ts
Normal file
@@ -0,0 +1,12 @@
|
||||
import http from '@/api'
|
||||
import { type VersionRegister } from '@/api/system/versionRegister/interface'
|
||||
|
||||
//获取有效数据配置
|
||||
export const getRegRes = (params: { type: string }) => {
|
||||
return http.get(`/sysRegRes/getRegResByType?id=${params.type}`)
|
||||
}
|
||||
|
||||
//编辑有效数据配置
|
||||
export const updateRegRes = (params: VersionRegister.Sys_Reg_Res) => {
|
||||
return http.post(`/sysRegRes/update`, params)
|
||||
}
|
||||
31
frontend/src/api/system/versionRegister/interface/index.ts
Normal file
@@ -0,0 +1,31 @@
|
||||
// 检测配置表模块
|
||||
export namespace VersionRegister {
|
||||
|
||||
/**
|
||||
* 检测配置表查询返回的对象
|
||||
*/
|
||||
export interface ResSys_Reg_Res {
|
||||
id: string; //版本注册表Id
|
||||
type: string; //版本类型(模拟式、数字式、比对式)
|
||||
code: string; //注册码
|
||||
licenseKey: string; //密钥
|
||||
expireDate: string; //到期时间
|
||||
waveRecord?: number;
|
||||
realTime?: number;
|
||||
statistics?: number;
|
||||
flicker?: number;
|
||||
state: number; //状态
|
||||
createBy?: string| null; //创建用户
|
||||
createTime?: string| null; //创建时间
|
||||
updateBy?: string| null; //更新用户
|
||||
updateTime?: string| null; //更新时间
|
||||
}
|
||||
|
||||
export interface Sys_Reg_Res {
|
||||
id: string;
|
||||
waveRecord?: number;
|
||||
realTime?: number;
|
||||
statistics?: number;
|
||||
flicker?: number;
|
||||
}
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
import type { ReqPage } from '@/api/interface'
|
||||
|
||||
// 检测脚本模块
|
||||
export namespace TestScript {
|
||||
|
||||
// 检测脚本接口
|
||||
export interface TestScriptBO {
|
||||
id?: string; //检测脚本ID
|
||||
name: string; //检测脚本名称
|
||||
type: string; //检测脚本类型(字典表Code字段,脚本还是模板)
|
||||
pattern: string;//检测脚本模式(字典表Code字段,数字、模拟、比对)
|
||||
valueType: string;//脚本值类型(字典表Code字段,相对值脚本、绝对值脚本、无)
|
||||
standardName: string;//参照标准名称
|
||||
standardTime: string;//标准推行时间
|
||||
}
|
||||
|
||||
// 检测脚本+分页
|
||||
export interface ReqTestScriptParams extends ReqPage,TestScriptBO {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
import { ResPage } from '@/api/interface'
|
||||
import { TestScript } from './interface'
|
||||
import { ADMIN as rePrefix } from '@/api/config/serviceName'
|
||||
import http from '@/api'
|
||||
|
||||
/**
|
||||
* @name 检测脚本管理模块
|
||||
*/
|
||||
// 获取检测脚本列表
|
||||
export const getTestScriptList = (params: TestScript.ReqTestScriptParams) => {
|
||||
return http.post<ResPage<TestScript.TestScriptBO>>(`/testScript/list`, params)
|
||||
// return http.post<ResPage<Role.ResRoleList>>(`${rePrefix}/testScript/list`, params)
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
import type { ReqPage } from '@/api/interface'
|
||||
|
||||
// 检测源模块
|
||||
export namespace TestSource {
|
||||
|
||||
// 检测源接口
|
||||
export interface TestSourceBO {
|
||||
id?: string; //检测源ID
|
||||
name: string; //检测源名称
|
||||
pattern: string;//检测源模式(字典表Code字段,数字、模拟、比对)
|
||||
type: string; //检测源类型(字典表Code字段,标准源、高精度设备)
|
||||
devType: string;//检测源设备类型(字典表Code字段)
|
||||
parameters: string;//源参数(JSON字符串)
|
||||
}
|
||||
|
||||
// 检测源+分页
|
||||
export interface ReqTestSourceParams extends ReqPage,TestSourceBO {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
import { ResPage } from '@/api/interface'
|
||||
import { TestSource } from './interface'
|
||||
import { ADMIN as rePrefix } from '@/api/config/serviceName'
|
||||
import http from '@/api'
|
||||
|
||||
/**
|
||||
* @name 检测源管理模块
|
||||
*/
|
||||
// 获取检测脚本列表
|
||||
export const getTestSourceList = (params: TestSource.ReqTestSourceParams) => {
|
||||
return http.post<ResPage<TestSource.TestSourceBO>>(`/testSource/list`, params)
|
||||
// return http.post<ResPage<Role.ResRoleList>>(`${rePrefix}/testSource/list`, params)
|
||||
}
|
||||
35
frontend/src/api/user/function/index.ts
Normal file
@@ -0,0 +1,35 @@
|
||||
import http from "@/api";
|
||||
import type { Function } from "@/api/user/interface/function";
|
||||
|
||||
|
||||
|
||||
// 获取资源
|
||||
export const getFunctionList = (params:Function.ResFunction) => {
|
||||
const name = params.name || '';
|
||||
return http.get<Function.ResFunction>(`/sysFunction/getTree?keyword=${name}`)
|
||||
}
|
||||
|
||||
|
||||
// 获取资源不包括按钮
|
||||
export const getFunctionListNoButton = () => {
|
||||
return http.get<Function.ResFunction>(`/sysFunction/functionTreeNoButton`)
|
||||
}
|
||||
|
||||
|
||||
//添加菜单列表
|
||||
export const addFunction = (params: Function.ResFunction) => {
|
||||
return http.post(`/sysFunction/add`,params);
|
||||
};
|
||||
|
||||
//删除菜单列表
|
||||
export const deleteFunction = (params: Function.ResFunction) => {
|
||||
return http.post(`/sysFunction/delete?id=${params.id}`);
|
||||
};
|
||||
|
||||
//编辑菜单列表
|
||||
export const updateFunction = (params: Function.ResFunction) => {
|
||||
return http.post(`/sysFunction/update`, params);
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -21,10 +21,11 @@ export namespace Function {
|
||||
pids?:string | null;//节点上层所有节点
|
||||
name: string;//名称
|
||||
code:string;//资源标识
|
||||
path:string;//路径
|
||||
icon?:string | null;//图标
|
||||
path:string;//路由路径
|
||||
component:string ;//组件地址
|
||||
icon?:string;//图标
|
||||
sort:number;//排序
|
||||
type:number | null;//资源类型0-菜单、1-按钮、2-公共资源、3-服务间调用资源
|
||||
type:number;//资源类型0-菜单、1-按钮、2-公共资源、3-服务间调用资源
|
||||
remark?: string | null;//权限资源描述
|
||||
state:number;//权限资源状态
|
||||
create_By?:string | null;//创建人
|
||||
@@ -1,38 +0,0 @@
|
||||
// 登录模块
|
||||
import type { ReqPage } from '@/api/interface'
|
||||
|
||||
export namespace Login {
|
||||
export interface ReqLoginForm {
|
||||
username: string;
|
||||
password: string;
|
||||
}
|
||||
export interface ResLogin {
|
||||
accessToken: string;
|
||||
}
|
||||
export interface ResAuthButtons {
|
||||
[key: string]: string[];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 用户管理模块
|
||||
export namespace User {
|
||||
|
||||
// 用户接口
|
||||
export interface UserBO {
|
||||
id?: string; //用户ID,作为唯一标识
|
||||
name: string; //用户名(别名)
|
||||
loginName: string;//登录名
|
||||
password: string; //密码
|
||||
phone?: string; //手机号
|
||||
email?: string; //邮箱
|
||||
loginTime?: string;//最后一次登录时间
|
||||
loginErrorTimes: number;//登录错误次数
|
||||
lockTime?: string; //用户密码错误锁定时间
|
||||
}
|
||||
// 用户+分页
|
||||
export interface ReqUserParams extends ReqPage,UserBO {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,33 +1,44 @@
|
||||
import type { ReqPage } from '@/api/interface'
|
||||
import type { ReqPage, ResPage } from '@/api/interface'
|
||||
|
||||
// 角色管理模块
|
||||
export namespace Role {
|
||||
|
||||
//资源接口
|
||||
export interface Permission{
|
||||
id: string; //资源ID
|
||||
name: string; //资源名称
|
||||
code: string; //资源代码
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户数据表格分页查询参数
|
||||
*/
|
||||
export interface ReqRoleParams extends ReqPage{
|
||||
id: string; // 装置序号用户ID 必填
|
||||
name?: string; //用户名(别名)
|
||||
code?: string; //角色代码
|
||||
}
|
||||
//角色接口
|
||||
export interface RoleBO {
|
||||
id?: string; //角色类型ID
|
||||
id: string; //角色类型ID
|
||||
name: string; //角色类型名称
|
||||
code: string; //角色代码
|
||||
type: number; //角色类型
|
||||
remark:string; //角色描述
|
||||
remark?:string; //角色描述
|
||||
state:number;
|
||||
createBy?:string; //
|
||||
createTime?: string; // 创建时间
|
||||
updateBy?: string; //
|
||||
updateTime?: string; // 更新时间
|
||||
}
|
||||
|
||||
//角色+资源
|
||||
export interface ReqRoleAndPermission extends RoleBO{
|
||||
permissionList?:Permission[]; //角色权限列表
|
||||
}
|
||||
//角色接口
|
||||
export interface RoleFunctionId {
|
||||
id: string[]; //菜单id
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户表格查询分页返回的对象;
|
||||
*/
|
||||
export interface ResRolePage extends ResPage<RoleBO> {
|
||||
|
||||
}
|
||||
|
||||
// 角色+分页
|
||||
export interface ReqRoleParams extends ReqPage,RoleBO {
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
79
frontend/src/api/user/interface/user.ts
Normal file
@@ -0,0 +1,79 @@
|
||||
// 登录模块
|
||||
import type { ReqPage, ResPage } from '@/api/interface'
|
||||
|
||||
export namespace Login {
|
||||
export interface ReqLoginForm {
|
||||
username: string
|
||||
password: string
|
||||
checked: boolean
|
||||
}
|
||||
export interface ResLogin {
|
||||
accessToken: string
|
||||
refreshToken: string
|
||||
userInfo: {
|
||||
id: string
|
||||
name: string
|
||||
}
|
||||
}
|
||||
export interface ResAuthButtons {
|
||||
[key: string]: string[]
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 用户管理模块
|
||||
export namespace User {
|
||||
|
||||
/**
|
||||
* 用户数据表格分页查询参数
|
||||
*/
|
||||
export interface ReqUserParams extends ReqPage{
|
||||
id: string; // 装置序号用户ID 必填
|
||||
name?: string; //用户名(别名)
|
||||
loginTime?: string;//最后一次登录时间
|
||||
}
|
||||
|
||||
// 用户接口
|
||||
export interface ResUser {
|
||||
id: string; //用户ID,作为唯一标识
|
||||
name: string; //用户名(别名)
|
||||
loginName: string;//登录名
|
||||
deptId?: number;//部门ID
|
||||
password: string; //密码
|
||||
phone?: string; //手机号
|
||||
email?: string; //邮箱
|
||||
loginTime?: string;//最后一次登录时间
|
||||
loginErrorTimes: number;//登录错误次数
|
||||
lockTime?: string; //用户密码错误锁定时间
|
||||
state:number;//0-删除;1-正常;2-锁定;3-待审核;4-休眠;5-密码过期
|
||||
createBy?: string;//创建用户
|
||||
createTime?: string;//创建时间
|
||||
updateBy?: string;//更新用户
|
||||
updateTime?: string;//更新时间
|
||||
roleIds?: string[]; //
|
||||
roleNames?:string[]; //
|
||||
roleCodes?:string[]; //
|
||||
disabled?: boolean;
|
||||
}
|
||||
|
||||
// 用户接口
|
||||
export interface ResPassWordUser {
|
||||
id: string; //用户ID,作为唯一标识
|
||||
oldPassword: string; //密码
|
||||
newPassword: string; //新密码
|
||||
surePassword:string;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 用户表格查询分页返回的对象;
|
||||
*/
|
||||
export interface ResUserPage extends ResPage<ResUser> {
|
||||
|
||||
}
|
||||
// // 用户+分页
|
||||
// export interface ReqUserParams extends ReqPage,UserBO {
|
||||
|
||||
// }
|
||||
}
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
import { Login } from './interface'
|
||||
import { ADMIN as rePrefix } from '@/api/config/serviceName'
|
||||
import http from '@/api'
|
||||
/**
|
||||
* @name 登录模块
|
||||
*/
|
||||
// 用户登录
|
||||
export const loginApi = (params: Login.ReqLoginForm) => {
|
||||
return http.post<Login.ResLogin>(`${rePrefix}/login`, params, { loading: false })
|
||||
//return http.post<Login.ResLogin>(`/Register1`, params, { loading: false })
|
||||
}
|
||||
// 获取菜单列表
|
||||
export const getAuthMenuListApi = () => {
|
||||
return http.get<Menu.MenuOptions[]>(`${rePrefix}/menu/list`, {}, { loading: false })
|
||||
// return http.post<Menu.MenuOptions[]>(`/Register2`, {}, { loading: false })
|
||||
}
|
||||
// 获取按钮权限
|
||||
export const getAuthButtonListApi = () => {
|
||||
return http.get<Login.ResAuthButtons>(`${rePrefix}/auth/buttons`, {}, { loading: false })
|
||||
// return http.post<Login.ResAuthButtons>(`/Register3`, {}, { loading: false })
|
||||
}
|
||||
// 用户退出登录
|
||||
export const logoutApi = () => {
|
||||
return http.post(`${rePrefix}/logout`)
|
||||
}
|
||||
60
frontend/src/api/user/login/index.ts
Normal file
@@ -0,0 +1,60 @@
|
||||
import { pa } from 'element-plus/es/locale/index.mjs';
|
||||
import type {Login} from '@/api/user/interface/user'
|
||||
import {ADMIN as rePrefix} from '@/api/system/config/serviceName'
|
||||
import http from '@/api'
|
||||
import type {Dict} from '@/api/interface'
|
||||
|
||||
/**
|
||||
* @name 登录模块
|
||||
*/
|
||||
// 用户登录
|
||||
export const loginApi = (params: { username: string; password: string}) => {
|
||||
return http.post<Login.ResLogin>(`${rePrefix}/login`, params, {loading: false})
|
||||
// return http.post<Login.ResLogin>(`/Register1`, params, { loading: false })
|
||||
}
|
||||
// 获取菜单列表
|
||||
export const getAuthMenuListApi = () => {
|
||||
return http.get<Menu.MenuOptions[]>(`/sysFunction/getMenu`, {}, {loading: false})
|
||||
// return http.post<Menu.MenuOptions[]>(`/Register2`, {}, { loading: false })
|
||||
}
|
||||
// 获取按钮权限
|
||||
export const getAuthButtonListApi = () => {
|
||||
return http.get<Login.ResAuthButtons>(`/sysFunction/getButton`, {}, {loading: false})
|
||||
// return http.post<Login.ResAuthButtons>(`/Register3`, {}, { loading: false })
|
||||
}
|
||||
// 用户退出登录
|
||||
export const logoutApi = () => {
|
||||
return http.post(`${rePrefix}/logout`)
|
||||
}
|
||||
|
||||
//获取下拉框列表
|
||||
export const getDictList = () => {
|
||||
return http.get<Dict>('/dictData/dictDataCache')
|
||||
}
|
||||
|
||||
//token刷新
|
||||
export const refreshToken = () => {
|
||||
return http.get<Login.ResLogin>(`${rePrefix}/refreshToken`,
|
||||
{},
|
||||
{loading: false}
|
||||
)
|
||||
}
|
||||
|
||||
//获取场景
|
||||
export const getCurrentScene = () => {
|
||||
return http.get('/sysTestConfig/getCurrentScene', {}, {loading: false})
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取RSA公钥
|
||||
*/
|
||||
export const getPublicKey = (username: string) => {
|
||||
return http.get(`/admin/getPublicKey?username=${username}`, {}, {loading: false})
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取是否在检测中自动生成报告
|
||||
*/
|
||||
export const getAutoGenerate = () => {
|
||||
return http.get('/sysTestConfig/getAutoGenerate', {}, {loading: false})
|
||||
}
|
||||
46
frontend/src/api/user/role/index.ts
Normal file
@@ -0,0 +1,46 @@
|
||||
import type { Role } from '@/api/user/interface/role'
|
||||
import type { Function } from '@/api/user/interface/function'
|
||||
import http from '@/api'
|
||||
|
||||
/**
|
||||
* @name 角色管理模块
|
||||
*/
|
||||
// 获取角色列表
|
||||
export const getRoleList = (params: Role.ReqRoleParams) => {
|
||||
return http.post(`/sysRole/list`, params)
|
||||
|
||||
// return http.post<ResPage<Role.ResRoleList>>(`/RoleList_Post`, params)
|
||||
// return http.post<ResPage<Role.ResRoleList>>(`${rePrefix}/role/list`, params)
|
||||
}
|
||||
|
||||
// 新增角色
|
||||
export const addRole = (params: Role.RoleBO) => {
|
||||
return http.post(`/sysRole/add`, params)
|
||||
}
|
||||
|
||||
// 编辑角色
|
||||
export const editRole = (params: Role.RoleBO) => {
|
||||
return http.post(`/sysRole/update`, params)
|
||||
}
|
||||
|
||||
// 删除角色
|
||||
export const deleteRole = (params: { id: string[] }) => {
|
||||
return http.post(`/sysRole/delete`, params)
|
||||
}
|
||||
|
||||
|
||||
// 获取资源
|
||||
export const getFunctionList = () => {
|
||||
return http.get<Function.ResFunction>(`/sysFunction/getTree?keyword=`)
|
||||
}
|
||||
|
||||
|
||||
//获取角色id绑定的菜单
|
||||
export const getRoleFunction = (params:Role.RoleBO) => {
|
||||
return http.post(`/sysFunction/getFunctionsByRoleId?id=${params.id}`)
|
||||
}
|
||||
|
||||
//角色分配菜单
|
||||
export const assignFunction = (params:Role.RoleBO,param:Role.RoleFunctionId) => {
|
||||
return http.post(`/sysFunction/assignFunctionByRoleId`,{ roleId: params.id,functionIds:param.id })
|
||||
}
|
||||
@@ -1,57 +0,0 @@
|
||||
import { ResPage } from '@/api/interface'
|
||||
import { User } from './interface'
|
||||
import { ADMIN as rePrefix } from '@/api/config/serviceName'
|
||||
import http from '@/api'
|
||||
|
||||
/**
|
||||
* @name 用户管理模块
|
||||
*/
|
||||
// 获取用户列表
|
||||
export const getUserList = (params: User.ReqUserParams) => {
|
||||
return http.post<ResPage<User.UserBO>>(`/user/list`, params)
|
||||
}
|
||||
|
||||
// 获取树形用户列表
|
||||
// export const getUserTreeList = (params: User.ReqUserParams) => {
|
||||
// return http.post<ResPage<User.ResUserList>>(`${rePrefix}/user/tree/list`, params)
|
||||
// }
|
||||
|
||||
// 新增用户
|
||||
export const addUser = (params: User.UserBO) => {
|
||||
return http.post(`/user/add`, params)
|
||||
}
|
||||
|
||||
// 批量添加用户
|
||||
export const BatchAddUser = (params: FormData) => {
|
||||
return http.post(`${rePrefix}/user/import`, params)
|
||||
}
|
||||
|
||||
// 编辑用户
|
||||
export const editUser = (params: User.UserBO) => {
|
||||
return http.post(`/user/edit`, params)
|
||||
}
|
||||
|
||||
// 删除用户
|
||||
export const deleteUser = (params: { id: string[] }) => {
|
||||
return http.post(`/user/delete`, params)
|
||||
}
|
||||
|
||||
// 切换用户状态
|
||||
// export const changeUserStatus = (params: { id: string; status: number }) => {
|
||||
// return http.post(`${rePrefix}/user/change`, params)
|
||||
// }
|
||||
|
||||
// 重置用户密码
|
||||
// export const resetUserPassWord = (params: { id: string }) => {
|
||||
// return http.post(`${rePrefix}/user/rest_password`, params)
|
||||
// }
|
||||
|
||||
// 导出用户数据
|
||||
export const exportUserInfo = (params: User.ReqUserParams) => {
|
||||
return http.download(`${rePrefix}/user/export`, params)
|
||||
}
|
||||
|
||||
// 获取用户状态字典
|
||||
// export const getUserStatus = () => {
|
||||
// return http.get<User.ResStatus[]>(`${rePrefix}/user/status`)
|
||||
// }
|
||||
43
frontend/src/api/user/user/index.ts
Normal file
@@ -0,0 +1,43 @@
|
||||
import type { Role } from '@/api/user/interface/role'
|
||||
import type { User } from '@/api/user/interface/user'
|
||||
import http from '@/api'
|
||||
|
||||
/**
|
||||
* @name 用户管理模块
|
||||
*/
|
||||
// 获取用户列表
|
||||
export const getUserList = (params: User.ReqUserParams) => {
|
||||
return http.post(`/sysUser/list`, params)
|
||||
}
|
||||
|
||||
|
||||
// 新增用户
|
||||
export const addUser = (params: User.ResUser) => {
|
||||
return http.post(`/sysUser/add`, params)
|
||||
}
|
||||
|
||||
// 编辑用户
|
||||
export const updateUser = (params: User.ResUser) => {
|
||||
return http.post(`/sysUser/update`, params)
|
||||
}
|
||||
|
||||
// 删除用户
|
||||
export const deleteUser = (params: string[] ) => {
|
||||
return http.post(`/sysUser/delete`, params)
|
||||
}
|
||||
|
||||
|
||||
// 获取角色列表
|
||||
export const getRoleList = () => {
|
||||
return http.get<Role.RoleBO>(`/sysRole/simpleList`)
|
||||
}
|
||||
|
||||
//修改密码
|
||||
export const updatePassWord = (params: User.ResPassWordUser) => {
|
||||
return http.post(`/sysUser/updatePassword`,params)
|
||||
}
|
||||
|
||||
// 获取所有用户
|
||||
export const getAllUser= () => {
|
||||
return http.get(`/sysUser/getAll`)
|
||||
}
|
||||
@@ -1,133 +0,0 @@
|
||||
const data = [
|
||||
{
|
||||
'id': '623689732233728549',
|
||||
'username': 'admin_A',
|
||||
'password': '12345678',
|
||||
'realname': '薛霞',
|
||||
'status': 0,
|
||||
'rolename': '管理员',
|
||||
},
|
||||
{
|
||||
'id': '621003764863621316',
|
||||
'username': 'admin_B',
|
||||
'password': '12345678',
|
||||
'realname': '冯敏',
|
||||
'status': 1,
|
||||
'rolename': '管理员',
|
||||
},
|
||||
// {
|
||||
// 'id': '652286556713195552',
|
||||
// 'username': 'operator_A',
|
||||
// 'password': '12345678',
|
||||
// 'realname': '潘霞',
|
||||
// 'status': 1,
|
||||
// 'rolename': '操作员',
|
||||
// },
|
||||
// {
|
||||
// 'id': '373930342176416776',
|
||||
// 'username': 'operator_B',
|
||||
// 'password': '12345678',
|
||||
// 'realname': '郝秀英',
|
||||
// 'status': 0,
|
||||
// 'rolename': '操作员',
|
||||
// },
|
||||
// {
|
||||
// 'id': '429621442453555775',
|
||||
// 'username': 'operator_C',
|
||||
// 'password': '12345678',
|
||||
// 'realname': '吕洋',
|
||||
// 'status': 1,
|
||||
// 'rolename': '操作员',
|
||||
// },
|
||||
// {
|
||||
// 'id': '387231964476618937',
|
||||
// 'username': 'operator_D',
|
||||
// 'password': '12345678',
|
||||
// 'realname': '江磊',
|
||||
// 'status': 0,
|
||||
// 'rolename': '操作员',
|
||||
// },
|
||||
// {
|
||||
// 'id': '604013348875476647',
|
||||
// 'username': 'operator_E',
|
||||
// 'password': '12345678',
|
||||
// 'realname': '姚静',
|
||||
// 'status': 0,
|
||||
// 'rolename': '操作员',
|
||||
// },
|
||||
// {
|
||||
// 'id': '028222596330483467',
|
||||
// 'username': 'operator_F',
|
||||
// 'password': '12345678',
|
||||
// 'realname': '龙艳',
|
||||
// 'status': 1,
|
||||
// 'rolename': '操作员',
|
||||
// },
|
||||
// {
|
||||
// 'id': '739427478368274267',
|
||||
// 'username': 'operator_G',
|
||||
// 'password': '12345678',
|
||||
// 'realname': '武涛',
|
||||
// 'status': 1,
|
||||
// 'rolename': '操作员',
|
||||
// },
|
||||
// {
|
||||
// 'id': '448686878612127243',
|
||||
// 'username': 'operator_H',
|
||||
// 'password': '12345678',
|
||||
// 'realname': '孙芳',
|
||||
// 'status': 0,
|
||||
// 'rolename': '操作员',
|
||||
// },
|
||||
// {
|
||||
// 'id': '448686878612127244',
|
||||
// 'username': 'operator_I',
|
||||
// 'password': '12345678',
|
||||
// 'realname': '孙芳1',
|
||||
// 'status': 0,
|
||||
// 'rolename': '操作员',
|
||||
// },
|
||||
// {
|
||||
// 'id': '448686878612127245',
|
||||
// 'username': 'operator_J',
|
||||
// 'password': '12345678',
|
||||
// 'realname': '孙芳2',
|
||||
// 'status': 1,
|
||||
// 'rolename': '操作员',
|
||||
// },
|
||||
// {
|
||||
// 'id': '448686878612127245',
|
||||
// 'username': 'operator_J',
|
||||
// 'password': '12345678',
|
||||
// 'realname': '孙芳2',
|
||||
// 'status': 1,
|
||||
// 'rolename': '操作员',
|
||||
// },
|
||||
// {
|
||||
// 'id': '448686878612127245',
|
||||
// 'username': 'operator_J',
|
||||
// 'password': '12345678',
|
||||
// 'realname': '孙芳2',
|
||||
// 'status': 1,
|
||||
// 'rolename': '操作员',
|
||||
// },
|
||||
// {
|
||||
// 'id': '448686878612127245',
|
||||
// 'username': 'operator_J',
|
||||
// 'password': '12345678',
|
||||
// 'realname': '孙芳2',
|
||||
// 'status': 1,
|
||||
// 'rolename': '操作员',
|
||||
// },
|
||||
// {
|
||||
// 'id': '448686878612127245',
|
||||
// 'username': 'operator_J',
|
||||
// 'password': '12345678',
|
||||
// 'realname': '孙芳2',
|
||||
// 'status': 1,
|
||||
// 'rolename': '操作员',
|
||||
// }
|
||||
|
||||
]
|
||||
|
||||
export default data
|
||||
1
frontend/src/assets/icons/loading.svg
Normal file
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1731580516863" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1484" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M469.333333 85.333333m42.666667 0l0 0q42.666667 0 42.666667 42.666667l0 128q0 42.666667-42.666667 42.666667l0 0q-42.666667 0-42.666667-42.666667l0-128q0-42.666667 42.666667-42.666667Z" fill="#f38d0d" opacity=".8" p-id="1485"></path><path d="M469.333333 725.333333m42.666667 0l0 0q42.666667 0 42.666667 42.666667l0 128q0 42.666667-42.666667 42.666667l0 0q-42.666667 0-42.666667-42.666667l0-128q0-42.666667 42.666667-42.666667Z" fill="#f38d0d" opacity=".4" p-id="1486"></path><path d="M938.666667 469.333333m0 42.666667l0 0q0 42.666667-42.666667 42.666667l-128 0q-42.666667 0-42.666667-42.666667l0 0q0-42.666667 42.666667-42.666667l128 0q42.666667 0 42.666667 42.666667Z" fill="#f38d0d" opacity=".2" p-id="1487"></path><path d="M298.666667 469.333333m0 42.666667l0 0q0 42.666667-42.666667 42.666667l-128 0q-42.666667 0-42.666667-42.666667l0 0q0-42.666667 42.666667-42.666667l128 0q42.666667 0 42.666667 42.666667Z" fill="#f38d0d" opacity=".6" p-id="1488"></path><path d="M783.530667 180.138667m30.169889 30.169889l0 0q30.169889 30.169889 0 60.339779l-90.509668 90.509668q-30.169889 30.169889-60.339779 0l0 0q-30.169889-30.169889 0-60.339779l90.509668-90.509668q30.169889-30.169889 60.339779 0Z" fill="#f38d0d" opacity=".1" p-id="1489"></path><path d="M330.965333 632.661333m30.16989 30.16989l0 0q30.169889 30.169889 0 60.339778l-90.509668 90.509668q-30.169889 30.169889-60.339779 0l0 0q-30.169889-30.169889 0-60.339778l90.509668-90.509668q30.169889-30.169889 60.339779 0Z" fill="#f38d0d" opacity=".5" p-id="1490"></path><path d="M843.861333 783.530667m-30.169889 30.169889l0 0q-30.169889 30.169889-60.339779 0l-90.509668-90.509668q-30.169889-30.169889 0-60.339779l0 0q30.169889-30.169889 60.339779 0l90.509668 90.509668q30.169889 30.169889 0 60.339779Z" fill="#f38d0d" opacity=".3" p-id="1491"></path><path d="M391.338667 330.965333m-30.16989 30.16989l0 0q-30.169889 30.169889-60.339778 0l-90.509668-90.509668q-30.169889-30.169889 0-60.339779l0 0q30.169889-30.169889 60.339778 0l90.509668 90.509668q30.169889 30.169889 0 60.339779Z" fill="#f38d0d" opacity=".7" p-id="1492"></path></svg>
|
||||
|
After Width: | Height: | Size: 2.4 KiB |
1
frontend/src/assets/icons/preTest.svg
Normal file
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1732514869986" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="16631" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M365.631638 689.60904H222.155932c-18.512994 0-37.025989 18.512994-37.025988 37.025988s18.512994 37.025989 37.025988 37.025989h143.475706c13.884746 0 23.141243-4.628249 32.397741-18.512994s4.628249-23.141243 0-37.025989-23.141243-18.512994-32.397741-18.512994zM467.453107 527.620339c4.628249-9.256497 4.628249-23.141243 0-37.025989-4.628249-9.256497-18.512994-18.512994-32.39774-18.512994H217.527684c-13.884746 0-23.141243 4.628249-32.39774 18.512994-4.628249 9.256497-4.628249 23.141243 0 37.025989 4.628249 9.256497 18.512994 18.512994 32.39774 18.512994h217.527683c13.884746 0 27.769492-9.256497 32.39774-18.512994z" fill="#bfbfbf" p-id="16632"></path><path d="M620.185311 944.162712H171.245198c-27.769492 0-50.910734-9.256497-69.423729-27.769492-18.512994-18.512994-27.769492-41.654237-27.769492-69.423728V171.245198c0-27.769492 9.256497-50.910734 27.769492-69.423729s41.654237-27.769492 69.423729-27.769492h675.724294c27.769492 0 50.910734 9.256497 69.423728 27.769492 18.512994 18.512994 27.769492 41.654237 27.769492 69.423729v448.940113c0 18.512994 18.512994 37.025989 37.025989 37.025988s37.025989-13.884746 37.025988-37.025988V171.245198c0-46.282486-18.512994-87.936723-50.910734-120.334464C934.906215 18.512994 893.251977 0 846.969492 0H171.245198c-46.282486 0-87.936723 18.512994-120.334464 50.910734C18.512994 83.308475 0 124.962712 0 171.245198v675.724294c0 46.282486 18.512994 87.936723 50.910734 120.334463 32.39774 32.39774 74.051977 50.910734 120.334464 50.910734h448.940113c18.512994 0 37.025989-18.512994 37.025988-37.025988-4.628249-18.512994-18.512994-37.025989-37.025988-37.025989z" fill="#bfbfbf" p-id="16633"></path><path d="M837.712994 291.579661c0-18.512994-18.512994-37.025989-37.025988-37.025989H217.527684c-18.512994 0-37.025989 18.512994-37.025989 37.025989s18.512994 37.025989 37.025989 37.025989h583.159322c18.512994 0 37.025989-18.512994 37.025988-37.025989zM1008.958192 958.047458l-138.847458-138.847458c64.79548-92.564972 50.910734-222.155932-37.025988-291.579661-87.936723-74.051977-212.899435-69.423729-296.20791 13.884746-78.680226 78.680226-87.936723 208.271186-13.884746 296.207909 74.051977 87.936723 199.014689 101.821469 291.579661 37.025989l138.847458 138.847458c13.884746 13.884746 37.025989 13.884746 50.910735 0s18.512994-41.654237 4.628248-55.538983z m-212.899435-161.988701c-27.769492 27.769492-64.79548 41.654237-101.821469 41.654237-69.423729 0-129.59096-50.910734-143.475706-115.706214s23.141243-134.219209 87.936723-161.988701 138.847458-4.628249 175.873446 55.538983c37.025989 50.910734 27.769492 129.59096-18.512994 180.501695z" fill="#bfbfbf" p-id="16634"></path></svg>
|
||||
|
After Width: | Height: | Size: 2.9 KiB |
1
frontend/src/assets/icons/守时检测.svg
Normal file
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1732514910835" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="17830" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M960.24 688.95c-18.01-3.5-35.36 8.28-38.83 26.25-20.79 107.56-103.26 189.89-205.21 204.89-18.11 2.66-30.63 19.5-27.97 37.61 2.42 16.47 16.57 28.32 32.74 28.32 1.61 0 3.24-0.11 4.87-0.36 129.77-19.09 234.52-122.71 260.64-257.88 3.48-17.97-8.26-35.35-26.24-38.83z" fill="#666666" p-id="17831"></path><path d="M719.89 875.33c5.11 0 10.31-1.2 15.17-3.7 64.25-33.18 116-89.16 145.74-157.64 7.29-16.79-0.41-36.31-17.21-43.6-16.78-7.27-36.29 0.43-43.6 17.21-23.66 54.5-64.63 98.94-115.33 125.12-16.27 8.4-22.65 28.4-14.25 44.66 5.89 11.41 17.48 17.95 29.48 17.95zM312.62 540.45c-21.23-21.19-55.78-21.21-76.99 0.02L53.07 723.03c-10.29 10.29-15.97 23.96-15.97 38.52 0 14.54 5.66 28.22 15.96 38.51l104.58 104.58c10.61 10.62 24.55 15.91 38.5 15.91 13.94 0 27.88-5.3 38.51-15.91l182.57-182.57c21.23-21.23 21.23-55.77 0-77l-104.6-104.62zM196.13 849.39l-87.83-87.83 165.84-165.84 87.83 87.83-165.84 165.84zM643.92 418.3c10.29 10.29 23.97 15.97 38.53 15.97 14.54 0 28.22-5.68 38.5-15.96l182.57-182.56 0.02-0.01c21.2-21.23 21.2-55.78-0.02-76.99L798.93 54.16c-21.22-21.22-55.76-21.24-77 0L539.34 236.74c-21.2 21.23-21.2 55.78 0.02 76.99L643.92 418.3z m116.51-308.9l87.84 87.84-165.83 165.83-87.84-87.83L760.43 109.4zM596.09 714.69c-20.79-20.8-18.77-56.66 4.51-79.95l28.56-28.56c11.6-11.59 26.54-18.28 42.09-18.83 14.49-0.9 28.11 4.55 37.85 14.32 0.01 0.01 0.02 0.01 0.03 0.02l10.18 10.18c12.95 12.95 33.92 12.95 46.87 0 12.95-12.94 12.95-33.93 0-46.87L756 554.84c-0.01-0.01-0.01-0.02-0.02-0.03-0.02-0.02-0.04-0.03-0.06-0.05L623.06 421.89c-0.01-0.01-0.01-0.02-0.02-0.03-0.02-0.02-0.04-0.03-0.06-0.05l-85.92-85.92c-43.22-43.22-113.54-43.22-156.76 0l-49.99 49.99c-43.22 43.22-43.22 113.54 0 156.76l229.12 229.12a33.037 33.037 0 0 0 23.43 9.71c8.48 0 16.96-3.24 23.43-9.71 12.95-12.94 12.95-33.93 0-46.87l-10.2-10.2z m-13.8-155.39l-28.57 28.56c-15.36 15.36-25.55 33.65-31.65 52.8l-58.92-58.92c-20.79-20.8-18.77-56.66 4.51-79.95l28.56-28.56c11.6-11.59 26.54-18.28 42.09-18.83 14.33-0.82 28.09 4.55 37.85 14.32 0.01 0.01 0.02 0.01 0.03 0.02l58.83 58.83c-19.51 6.26-37.69 16.7-52.73 31.73z m-218.16-95.04c0-11.9 4.64-23.09 13.05-31.51l49.99-49.99c16.85-16.83 46.2-16.83 63.03 0l11.88 11.88c-19.51 6.25-37.69 16.69-52.72 31.73l-28.56 28.56c-15.36 15.36-25.56 33.64-31.66 52.79l-11.95-11.95c-8.43-8.41-13.06-19.61-13.06-31.51z" fill="#666666" p-id="17832"></path><path d="M723.12 632.91c-12.94-12.94-33.93-12.94-46.87 0l-49.11 49.11c-12.94 12.94-12.94 33.93 0 46.87 12.94 12.94 33.93 12.94 46.87 0l49.11-49.11c12.94-12.94 12.94-33.92 0-46.87z" fill="#666666" p-id="17833"></path></svg>
|
||||
|
After Width: | Height: | Size: 2.8 KiB |
1
frontend/src/assets/icons/完成.svg
Normal file
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1732514403639" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="13633" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M387.018497 210.626092c17.179264 0 31.099299-13.925151 31.099299-31.099299l0-10.366092 186.597839 0 0 10.366092c0 17.175171 13.920034 31.099299 31.099299 31.099299s31.099299-13.925151 31.099299-31.099299L666.914232 96.593965c0-17.175171-13.920034-31.099299-31.099299-31.099299s-31.099299 13.925151-31.099299 31.099299l0 10.366092L418.117796 106.960057l0-10.366092c0-17.175171-13.920034-31.099299-31.099299-31.099299s-31.099299 13.925151-31.099299 31.099299l0 82.932828C355.919199 196.700941 369.83821 210.626092 387.018497 210.626092z" fill="#999999" p-id="13634"></path><path d="M400.416646 314.944995c-17.179264 0-31.099299 13.925151-31.099299 31.099299l0 30.340005c0 17.175171 13.920034 31.099299 31.099299 31.099299s31.099299-13.925151 31.099299-31.099299L431.515944 346.044294C431.516967 328.869123 417.596933 314.944995 400.416646 314.944995z" fill="#999999" p-id="13635"></path><path d="M622.416785 314.944995c-17.179264 0-31.099299 13.925151-31.099299 31.099299l0 30.340005c0 17.175171 13.920034 31.099299 31.099299 31.099299s31.099299-13.925151 31.099299-31.099299L653.516084 346.044294C653.517107 328.869123 639.597073 314.944995 622.416785 314.944995z" fill="#999999" p-id="13636"></path><path d="M511.103584 546.380018c43.773969 0 74.783217-30.18344 86.212524-48.016597 9.182127-14.33038 5.021364-33.210379-9.202593-42.569538-14.213723-9.379625-33.428344-5.385661-42.974767 8.706289-0.132006 0.197498-13.555737 19.680225-34.035164 19.680225-19.903306 0-32.29452-18.039865-33.124422-19.290345-9.151427-14.349823-28.173666-18.72855-42.650379-9.718339-14.588253 9.06547-19.072381 28.245298-10.001795 42.832528C436.493306 515.968381 467.116767 546.380018 511.103584 546.380018z" fill="#999999" p-id="13637"></path><path d="M463.633433 898.665457 266.173199 898.665457c-41.648562 0-75.532277-34.713616-75.532277-77.374228l0-574.913888c0-42.665729 33.883715-77.374228 75.532277-77.374228 17.179264 0 31.099299-13.925151 31.099299-31.099299s-13.920034-31.099299-31.099299-31.099299c-75.946716 0-137.730874 62.61406-137.730874 139.573849l0 574.913888c0 76.959789 61.784158 139.573849 137.730874 139.573849L463.633433 960.866101c17.179264 0 31.099299-13.920034 31.099299-31.099299S480.81372 898.665457 463.633433 898.665457z" fill="#999999" p-id="13638"></path><path d="M756.661256 106.803491c-17.179264 0-31.099299 13.925151-31.099299 31.099299s13.920034 31.099299 31.099299 31.099299c41.648562 0 75.532277 34.7085 75.532277 77.374228L832.193533 551.401382c0 17.175171 13.920034 31.099299 31.099299 31.099299s31.099299-13.925151 31.099299-31.099299L894.39213 246.37734C894.39213 169.417551 832.607972 106.803491 756.661256 106.803491z" fill="#999999" p-id="13639"></path><path d="M840.980663 650.76953 613.392248 885.125069l-110.711498-114.006544c-11.975752-12.325723-31.655977-12.614296-43.976584-0.647753-12.320607 11.966543-12.614296 31.655977-0.647753 43.976584l133.023666 136.981814c0.10847 0.110517 0.23843 0.183172 0.347924 0.291642 0.11154 0.11154 0.186242 0.245593 0.299829 0.356111 0.771573 0.74906 1.644453 1.311879 2.470261 1.963725 0.704035 0.556679 1.363044 1.183965 2.101871 1.671059 1.031493 0.680499 2.131547 1.187035 3.219321 1.731434 0.730641 0.366344 1.426489 0.816598 2.178619 1.121544 1.25048 0.50756 2.548032 0.823761 3.841491 1.162476 0.642636 0.167822 1.26276 0.429789 1.912559 0.555655 1.961678 0.38067 3.949962 0.581238 5.939269 0.581238s3.977591-0.200568 5.939269-0.581238c0.650823-0.12689 1.269923-0.387833 1.912559-0.555655 1.293459-0.338714 2.591011-0.654916 3.841491-1.162476 0.75213-0.304945 1.447978-0.7552 2.178619-1.121544 1.087774-0.544399 2.187829-1.050935 3.219321-1.731434 0.738827-0.487094 1.397836-1.11438 2.101871-1.671059 0.825808-0.651846 1.698688-1.215688 2.470261-1.963725 0.113587-0.110517 0.188288-0.24457 0.299829-0.356111 0.109494-0.10847 0.239454-0.181125 0.347924-0.291642l249.900583-257.331833c11.966543-12.320607 11.672854-32.011064-0.647753-43.976584C872.637664 638.160351 852.956416 638.438691 840.980663 650.76953z" fill="#999999" p-id="13640"></path></svg>
|
||||
|
After Width: | Height: | Size: 4.3 KiB |
1
frontend/src/assets/icons/正式检测.svg
Normal file
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1732515039802" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="21450" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M512 1024C230.4 1024 0 793.6 0 512S230.4 0 512 0s512 230.4 512 512-230.4 512-512 512z m135.68-320H376.32c-12.8 0-20.48 17.92-20.48 17.92v20.48h314.88v-17.92c0-10.24-10.24-20.48-23.04-20.48zM709.12 281.6H314.88C281.6 281.6 256 307.2 256 335.36v258.56c0 28.16 25.6 53.76 58.88 53.76h135.68v17.92c0 7.68 7.68 17.92 20.48 17.92h76.8c12.8 0 20.48-7.68 20.48-17.92v-17.92h135.68c33.28 0 58.88-25.6 58.88-53.76V335.36C768 307.2 742.4 281.6 709.12 281.6zM314.88 576c-12.8 0-20.48-7.68-20.48-17.92v-222.72c0-7.68 7.68-17.92 20.48-17.92h391.68c12.8 0 20.48 7.68 20.48 17.92v222.72c0 7.68-7.68 17.92-20.48 17.92H314.88z m394.24 56.32c-7.68 0-12.8-5.12-17.92-7.68s-5.12-12.8 0-20.48c5.12-5.12 7.68-7.68 17.92-7.68 7.68 0 12.8 5.12 17.92 7.68 5.12 5.12 5.12 12.8 0 20.48-5.12 5.12-10.24 7.68-17.92 7.68z m-51.2-266.24L588.8 424.96 542.72 384c0-5.12-7.68-5.12-12.8-5.12s-12.8 5.12-12.8 7.68l-58.88 97.28-25.6-53.76c0-7.68-7.68-12.8-12.8-12.8-7.68 0-12.8 0-17.92 5.12l-58.88 53.76c-7.68 7.68-7.68 20.48 0 25.6 7.68 7.68 20.48 7.68 25.6 0l38.4-33.28 30.72 66.56c5.12 7.68 7.68 12.8 17.92 12.8 7.68 0 12.8-5.12 17.92-12.8l64-110.08 43.52 38.4c7.68 7.68 20.48 7.68 30.72 0l76.8-71.68c5.12-5.12 7.68-12.8 5.12-17.92 0-7.68-7.68-12.8-12.8-12.8-15.36-5.12-20.48 0-23.04 5.12z" p-id="21451" fill="#bfbfbf"></path></svg>
|
||||
|
After Width: | Height: | Size: 1.6 KiB |
1
frontend/src/assets/icons/系数校准.svg
Normal file
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1732515166779" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="27890" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M418.95 374.32c-38.78 0-63.02 41.98-43.63 75.57l154.61 267.79c12.5-3.1 23.99-10.99 31.32-23.68l184.57-319.68H418.95z" fill="#cdcdcd" p-id="27891"></path><path d="M803.55 299.32H348.43c-13.81 0-25-11.19-25-25s11.19-25 25-25h455.13c13.81 0 25 11.19 25 25s-11.2 25-25.01 25z" fill="#cdcdcd" p-id="27892"></path><path d="M231.68 274.32m-57.35 0a57.35 57.35 0 1 0 114.7 0 57.35 57.35 0 1 0-114.7 0Z" fill="#cdcdcd" p-id="27893"></path><path d="M231.68 332.17c-31.9 0-57.85-25.95-57.85-57.85s25.95-57.85 57.85-57.85c31.9 0 57.85 25.95 57.85 57.85s-25.95 57.85-57.85 57.85z m0-114.7c-31.35 0-56.85 25.5-56.85 56.85s25.5 56.85 56.85 56.85 56.85-25.5 56.85-56.85-25.5-56.85-56.85-56.85z" fill="#cdcdcd" p-id="27894"></path><path d="M196.5 410.67c-2.49 0-5.03-0.38-7.53-1.17-28.53-9.01-53.09-26.5-71.03-50.6-18.32-24.6-28-53.85-28-84.59 0-78.16 63.59-141.74 141.74-141.74s141.74 63.59 141.74 141.74c0 13.81-11.19 25-25 25s-25-11.19-25-25c0-50.59-41.16-91.74-91.74-91.74s-91.74 41.16-91.74 91.74c0 40.24 25.75 75.41 64.08 87.51 13.17 4.16 20.47 18.2 16.31 31.37-3.36 10.67-13.21 17.48-23.83 17.48z" fill="#cdcdcd" p-id="27895"></path><path d="M459.27 690.78c-8.64 0-17.04-4.48-21.67-12.5L210.03 284.12c-6.9-11.96-2.81-27.25 9.15-34.15 11.96-6.9 27.25-2.81 34.15 9.15L480.9 653.27c6.9 11.96 2.81 27.25-9.15 34.15a24.846 24.846 0 0 1-12.48 3.36z" fill="#cdcdcd" p-id="27896"></path><path d="M517.62 766.88m-57.35 0a57.35 57.35 0 1 0 114.7 0 57.35 57.35 0 1 0-114.7 0Z" fill="#cdcdcd" p-id="27897"></path><path d="M517.71 824.75c-5.03 0-10.08-0.66-15.07-2-14.93-4-27.4-13.57-35.13-26.96-7.73-13.38-9.78-28.97-5.78-43.9 4-14.93 13.57-27.4 26.96-35.13 27.63-15.95 63.08-6.45 79.03 21.18 15.95 27.63 6.45 63.08-21.17 79.03-8.92 5.15-18.81 7.78-28.84 7.78z m-0.19-114.71c-9.64 0-19.4 2.45-28.33 7.61-13.15 7.59-22.56 19.85-26.49 34.52-3.93 14.67-1.91 29.99 5.68 43.14s19.85 22.56 34.52 26.49c14.67 3.93 29.99 1.91 43.14-5.68 27.15-15.67 36.48-50.51 20.81-77.66-10.52-18.23-29.67-28.42-49.33-28.42z" fill="#cdcdcd" p-id="27898"></path><path d="M517.85 908.59c-49.03 0-96.77-25.42-122.99-70.84-39.08-67.69-15.8-154.55 51.88-193.63 11.96-6.9 27.25-2.81 34.15 9.15s2.81 27.25-9.15 34.15c-43.81 25.29-58.87 81.51-33.58 125.32 16.97 29.4 47.88 45.85 79.61 45.85 15.56 0 31.31-3.95 45.72-12.27 34.85-20.12 52.43-60 43.74-99.25-2.98-13.48 5.53-26.83 19.01-29.81 13.48-2.98 26.83 5.53 29.81 19.01 6.46 29.21 3.59 59.23-8.3 86.82-12.14 28.16-32.63 51.17-59.26 66.54-22.26 12.85-46.61 18.96-70.64 18.96z" fill="#cdcdcd" p-id="27899"></path><path d="M517.59 791.88c-4.24 0-8.54-1.08-12.48-3.35-11.96-6.9-16.05-22.19-9.15-34.15l227.56-394.15c6.9-11.96 22.19-16.05 34.15-9.15 11.96 6.9 16.05 22.19 9.15 34.15L539.27 779.38c-4.63 8.02-13.04 12.5-21.68 12.5z" fill="#cdcdcd" p-id="27900"></path><path d="M803.55 271.62m-57.35 0a57.35 57.35 0 1 0 114.7 0 57.35 57.35 0 1 0-114.7 0Z" fill="#cdcdcd" p-id="27901"></path><path d="M803.45 329.46a57.47 57.47 0 0 1-28.83-7.74c-27.63-15.95-37.12-51.4-21.17-79.03 15.95-27.62 51.4-37.13 79.03-21.18 13.38 7.73 22.96 20.2 26.96 35.13s1.95 30.52-5.78 43.9c-10.71 18.55-30.2 28.92-50.21 28.92z m0.2-114.68c-19.66 0-38.81 10.2-49.33 28.42-15.67 27.15-6.34 61.99 20.81 77.66 27.15 15.67 61.99 6.34 77.66-20.81 7.59-13.15 9.61-28.47 5.68-43.14s-13.34-26.93-26.49-34.52a56.46 56.46 0 0 0-28.33-7.61z" fill="#cdcdcd" p-id="27902"></path><path d="M803.31 413.34c-24.03 0-48.37-6.11-70.63-18.96-11.96-6.9-16.05-22.19-9.15-34.15 6.9-11.96 22.19-16.05 34.15-9.15 43.81 25.29 100.03 10.23 125.32-33.58 25.29-43.81 10.23-100.03-33.58-125.32-34.85-20.12-78.18-15.4-107.82 11.74-10.18 9.32-26 8.63-35.32-1.56-9.32-10.18-8.63-26 1.56-35.32 22.06-20.2 49.5-32.72 79.34-36.22 30.46-3.56 60.63 2.68 87.25 18.05 67.69 39.08 90.96 125.94 51.88 193.62-26.23 45.42-73.97 70.85-123 70.85z" fill="#cdcdcd" p-id="27903"></path></svg>
|
||||
|
After Width: | Height: | Size: 4.1 KiB |
BIN
frontend/src/assets/images/inspected1.jpg
Normal file
|
After Width: | Height: | Size: 3.4 MiB |
BIN
frontend/src/assets/images/inspected2.png
Normal file
|
After Width: | Height: | Size: 54 KiB |
BIN
frontend/src/assets/images/transient.png
Normal file
|
After Width: | Height: | Size: 62 KiB |
@@ -27,14 +27,13 @@ const dialogVisible = ref<Boolean>(false);
|
||||
const dialogTitle = ref<string>("");
|
||||
const openDialog = (title: string) => {
|
||||
dialogTitle.value = title;
|
||||
console.log(dialogVisible.value);
|
||||
dialogVisible.value = true;
|
||||
};
|
||||
defineExpose({
|
||||
openDialog,
|
||||
});
|
||||
onMounted(() => {
|
||||
console.log();
|
||||
|
||||
});
|
||||
</script>
|
||||
<style lang="scss" scoped></style>
|
||||
|
||||
@@ -1,19 +1,20 @@
|
||||
<template>
|
||||
<div class="not-container">
|
||||
<img src="@/assets/images/403.png" class="not-img" alt="403" />
|
||||
<div class="not-detail">
|
||||
<h2>403</h2>
|
||||
<h4>抱歉,您无权访问该页面~🙅♂️🙅♀️</h4>
|
||||
<el-button type="primary" @click="router.back"> 返回上一页 </el-button>
|
||||
<div class="not-container">
|
||||
<img src="@/assets/images/403.png" class="not-img" alt="403" />
|
||||
<div class="not-detail">
|
||||
<h2>403</h2>
|
||||
<h4>抱歉,您无权访问该页面~🙅♂️🙅♀️</h4>
|
||||
<el-button type="primary" @click="router.back">返回上一页</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts" name="403">
|
||||
import { useRouter } from "vue-router";
|
||||
const router = useRouter();
|
||||
import { useRouter } from 'vue-router'
|
||||
|
||||
const router = useRouter()
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
@import "./index.scss";
|
||||
@use './index.scss';
|
||||
</style>
|
||||
|
||||
@@ -1,19 +1,20 @@
|
||||
<template>
|
||||
<div class="not-container">
|
||||
<img src="@/assets/images/404.png" class="not-img" alt="404" />
|
||||
<div class="not-detail">
|
||||
<h2>404</h2>
|
||||
<h4>抱歉,您访问的页面不存在~🤷♂️🤷♀️</h4>
|
||||
<el-button type="primary" @click="router.back"> 返回上一页 </el-button>
|
||||
<div class="not-container">
|
||||
<img src="@/assets/images/404.png" class="not-img" alt="404" />
|
||||
<div class="not-detail">
|
||||
<h2>404</h2>
|
||||
<h4>抱歉,您访问的页面不存在~🤷♂️🤷♀️</h4>
|
||||
<el-button type="primary" @click="router.back">返回上一页</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts" name="404">
|
||||
import { useRouter } from "vue-router";
|
||||
const router = useRouter();
|
||||
import { useRouter } from 'vue-router'
|
||||
|
||||
const router = useRouter()
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
@import "./index.scss";
|
||||
@use './index.scss';
|
||||
</style>
|
||||
|
||||
@@ -1,19 +1,20 @@
|
||||
<template>
|
||||
<div class="not-container">
|
||||
<img src="@/assets/images/500.png" class="not-img" alt="500" />
|
||||
<div class="not-detail">
|
||||
<h2>500</h2>
|
||||
<h4>抱歉,您的网络不见了~🤦♂️🤦♀️</h4>
|
||||
<el-button type="primary" @click="router.back"> 返回上一页 </el-button>
|
||||
<div class="not-container">
|
||||
<img src="@/assets/images/500.png" class="not-img" alt="500" />
|
||||
<div class="not-detail">
|
||||
<h2>500</h2>
|
||||
<h4>抱歉,您的网络不见了~🤦♂️🤦♀️</h4>
|
||||
<el-button type="primary" @click="router.back">返回上一页</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts" name="500">
|
||||
import { useRouter } from "vue-router";
|
||||
const router = useRouter();
|
||||
import { useRouter } from 'vue-router'
|
||||
|
||||
const router = useRouter()
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
@import "./index.scss";
|
||||
@use './index.scss';
|
||||
</style>
|
||||
|
||||