Compare commits
504 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
419a2c8905 | ||
|
|
1f8df7f404 | ||
|
|
8dc6f03df2 | ||
|
|
3a28cb45cd | ||
|
|
ec4dbaf07d | ||
|
|
a391bd24b9 | ||
|
|
22fa0856fd | ||
|
|
fcca6142df | ||
|
|
a5690b82e7 | ||
|
|
a0609faaac | ||
|
|
bf4d273567 | ||
|
|
5e682f81d9 | ||
|
|
c86a7cfeae | ||
|
|
f8456e57a3 | ||
|
|
cfa742a95c | ||
|
|
e9357465c1 | ||
|
|
4ffb0cb42d | ||
|
|
871461cf4e | ||
|
|
71b0d5e053 | ||
|
|
eb493edc02 | ||
|
|
be2e2d7de7 | ||
|
|
1deef48b21 | ||
|
|
ace183c86a | ||
|
|
63132e682e | ||
|
|
6c7a5ec9be | ||
|
|
032be847b1 | ||
|
|
a1ca356610 | ||
|
|
06ef07ac0b | ||
|
|
b43473c505 | ||
|
|
08437a81f2 | ||
|
|
0cab29925f | ||
|
|
e62573391a | ||
|
|
e8483e8e91 | ||
|
|
26f573f60c | ||
|
|
a02e613923 | ||
|
|
593db921df | ||
|
|
ffec88289e | ||
|
|
0a13e99c43 | ||
|
|
a1267daa72 | ||
|
|
5b0e82a06b | ||
|
|
cd1edb1431 | ||
|
|
634caee9b3 | ||
|
|
e2fd1ffc5e | ||
|
|
e7f5cc20e9 | ||
|
|
0d10a06522 | ||
|
|
6b0bb332db | ||
|
|
aef7387f43 | ||
|
|
95dc00acec | ||
|
|
70c4ea44e6 | ||
|
|
fe0ffa0eae | ||
|
|
99e6a05a7e | ||
|
|
8584c94d1b | ||
|
|
3e4c4ae7a1 | ||
|
|
88777c12a2 | ||
|
|
70af2a10ba | ||
|
|
d7bd6e71fb | ||
|
|
878cbd066c | ||
|
|
2907f4485b | ||
|
|
d2a3ee8cf9 | ||
|
|
73f72b3116 | ||
|
|
58edf3f006 | ||
|
|
538c74ab19 | ||
|
|
03e30851c6 | ||
|
|
95d907cae7 | ||
|
|
2da2ac58fd | ||
|
|
cea7998fd9 | ||
|
|
757f1ef696 | ||
|
|
d8c72373e7 | ||
|
|
f5cb5c94a9 | ||
|
|
2c227c7685 | ||
|
|
795277a3dd | ||
|
|
109dfa14eb | ||
|
|
6a2764ade4 | ||
|
|
65487f47f6 | ||
|
|
dd154e6d85 | ||
|
|
97e895d5be | ||
|
|
c5104b3697 | ||
|
|
adf0b831fe | ||
|
|
1d12060e0e | ||
|
|
a9e73792e3 | ||
|
|
7037085ba1 | ||
|
|
72ed204f3a | ||
|
|
ef9b32d2b4 | ||
|
|
28e23111a5 | ||
|
|
df7cd7e289 | ||
|
|
9675a54455 | ||
|
|
bdfde8694b | ||
|
|
bb7b54e940 | ||
|
|
0f85a81af6 | ||
|
|
1e6692a992 | ||
|
|
0a4c2a5310 | ||
|
|
7a3ca077f0 | ||
|
|
ad1554c502 | ||
|
|
c664a301f8 | ||
|
|
b2c76aa2c7 | ||
|
|
8ea82d0e34 | ||
|
|
c41a247449 | ||
|
|
2c810e95c2 | ||
|
|
4ffd5b3f84 | ||
|
|
cd44a2722f | ||
|
|
70cc69be2c | ||
|
|
0b0501db4a | ||
|
|
f8db51ea6a | ||
|
|
c50e41e649 | ||
|
|
8c74be31bb | ||
|
|
b753e262fe | ||
|
|
1b64f3c544 | ||
|
|
0c6e3b5ad4 | ||
|
|
b08d4bc312 | ||
|
|
00f7e5ec61 | ||
|
|
5d5fe6cca6 | ||
|
|
77f3bd94d2 | ||
|
|
761cb528af | ||
|
|
ba2a5fe6d3 | ||
|
|
d64fd595c7 | ||
|
|
80713ff578 | ||
|
|
66a20edf6a | ||
|
|
c4fe2271e8 | ||
|
|
9848941464 | ||
|
|
891010c8b9 | ||
|
|
21b65344e0 | ||
|
|
5ba4c612b2 | ||
|
|
3ba67d4826 | ||
|
|
eeb03c5550 | ||
|
|
8b375f9169 | ||
|
|
a1a924b691 | ||
|
|
b6209fc71e | ||
|
|
93f7868292 | ||
|
|
a6511508ad | ||
|
|
a7beafe6c8 | ||
|
|
f20a968fc6 | ||
|
|
a8dd8bcd89 | ||
|
|
d8bcdf1f4f | ||
|
|
5a6b464aa9 | ||
|
|
4338961234 | ||
|
|
9242c3d3f0 | ||
|
|
e08a59d6cf | ||
|
|
47c0e65485 | ||
|
|
d9187f71d1 | ||
|
|
1d36b08517 | ||
|
|
b65fd919dc | ||
|
|
439e6751f4 | ||
|
|
3b6fd3fb54 | ||
|
|
a3c2fcb1d8 | ||
|
|
76e8fe9734 | ||
|
|
eadfd66556 | ||
|
|
940530cde4 | ||
|
|
7c93a47b7c | ||
|
|
67b67dd5c1 | ||
|
|
fe0ac008fa | ||
|
|
492a18dbac | ||
|
|
30eae2a24a | ||
|
|
600800340f | ||
|
|
78ee802446 | ||
|
|
2712614202 | ||
|
|
efd7ec3320 | ||
|
|
7a5a03bc58 | ||
|
|
601c0111eb | ||
|
|
66760a2a57 | ||
|
|
879256725b | ||
|
|
70ae7e9287 | ||
|
|
f6c2864573 | ||
|
|
5a1c20f84a | ||
|
|
95b2a089fb | ||
|
|
e18c07455c | ||
|
|
a1360076b9 | ||
|
|
a53cb310ae | ||
|
|
1faf418cc8 | ||
|
|
bc81631be3 | ||
|
|
d3f4cf8700 | ||
|
|
21b3cea26a | ||
|
|
c7214d3b89 | ||
|
|
0e0d6b1ed0 | ||
|
|
0d43e2141f | ||
|
|
a7b8b82479 | ||
|
|
1dd9152eff | ||
|
|
f01af02dd1 | ||
|
|
4dea59edfc | ||
|
|
10faa3aa7f | ||
|
|
37bd4d31fb | ||
|
|
fe2308405a | ||
|
|
6405b06907 | ||
|
|
4af4dc4260 | ||
|
|
d4ab1d19e6 | ||
|
|
e4549d3670 | ||
|
|
7523fee78b | ||
|
|
01d10de71e | ||
|
|
2ef441b605 | ||
|
|
1c39ea66ad | ||
|
|
43102c94c4 | ||
|
|
5433006ebd | ||
|
|
102f99e4f5 | ||
|
|
50296a6291 | ||
|
|
45d6475243 | ||
|
|
8da7dc5e58 | ||
|
|
8dd50b9c99 | ||
|
|
a8c8a8b6dc | ||
|
|
ef70c1ac23 | ||
|
|
9d210a0d07 | ||
|
|
ac045f26d4 | ||
|
|
61b1e8cd73 | ||
|
|
509b10e214 | ||
|
|
5f1e3fdfaa | ||
|
|
07c7889998 | ||
|
|
de024de843 | ||
|
|
3aa2c19dbd | ||
|
|
831b00fc78 | ||
|
|
5116d4f6d6 | ||
|
|
a9504cc6f1 | ||
|
|
14e3d6522a | ||
|
|
26b54baa33 | ||
|
|
5536ac9490 | ||
|
|
aae79853ab | ||
|
|
165fa71e8c | ||
|
|
b21b1d5815 | ||
|
|
835abdde10 | ||
|
|
f4a8ef68c0 | ||
|
|
b1e67452a5 | ||
|
|
c26b05259d | ||
|
|
1dee23435d | ||
|
|
64a6eac4a7 | ||
|
|
8f1adef30d | ||
|
|
2b66aecf44 | ||
|
|
1311e53b65 | ||
|
|
d9677e89f5 | ||
|
|
d89c20a75c | ||
|
|
476c49b08f | ||
|
|
32a04eec4c | ||
|
|
fb9034229e | ||
|
|
43c79b94f1 | ||
|
|
801858c07d | ||
|
|
85d9b3d738 | ||
|
|
ac28e52ca7 | ||
|
|
e2f9eb7f59 | ||
|
|
a9e5915113 | ||
|
|
fdb4ec5cf5 | ||
|
|
04062195e2 | ||
|
|
e29fc1244c | ||
|
|
3fc6a42d99 | ||
|
|
1c776f4119 | ||
|
|
e87deec34c | ||
|
|
5685e6b2c0 | ||
|
|
9fddf7914d | ||
|
|
a55ab9fb15 | ||
|
|
35b1f31601 | ||
|
|
8627cec919 | ||
|
|
ee14b471a8 | ||
|
|
5896931487 | ||
|
|
f87714fae2 | ||
|
|
def8851da0 | ||
|
|
8b3f43eb98 | ||
|
|
3d2623f8cf | ||
|
|
a9fe48933c | ||
|
|
1c2782e8e3 | ||
|
|
4462b5eaa3 | ||
|
|
46a0985f55 | ||
|
|
4d6c444b25 | ||
|
|
e009142e7d | ||
|
|
14a24b268a | ||
|
|
06de8e2bc9 | ||
|
|
d788657048 | ||
|
|
524be68781 | ||
|
|
0139a542da | ||
|
|
da607274d8 | ||
|
|
48426a3955 | ||
|
|
e95ca314a6 | ||
|
|
3d18a4b285 | ||
|
|
2b67cb4a0b | ||
|
|
eadb1e350d | ||
|
|
46a23d9464 | ||
|
|
a7e06c6ffa | ||
|
|
822e7bd9aa | ||
|
|
73952e6811 | ||
|
|
251e0a2018 | ||
|
|
d04bb5a87e | ||
|
|
f6a6ac82bd | ||
|
|
bca147a7db | ||
|
|
afab449f3a | ||
|
|
8bf7b85c2e | ||
|
|
ab146b5b15 | ||
|
|
230e897146 | ||
|
|
949a8e9d86 | ||
|
|
3604783570 | ||
|
|
f60a6bd778 | ||
|
|
5ece1b6c8e | ||
|
|
86c2c8364d | ||
|
|
1f130a6ac8 | ||
|
|
c8af5fd5a1 | ||
|
|
48b7493b2e | ||
|
|
98ba09b586 | ||
|
|
7d85d332df | ||
|
|
6ee5ea6f6e | ||
|
|
6756812c34 | ||
|
|
d2aa5c9b7a | ||
|
|
049d5f92b4 | ||
|
|
7ce190f3c7 | ||
|
|
e9edd9cf05 | ||
|
|
4655eed55f | ||
|
|
cf625c196e | ||
|
|
55fdd3f0e4 | ||
|
|
8aa96da577 | ||
|
|
22bf16a01d | ||
|
|
04e186e7d8 | ||
|
|
38006bd964 | ||
|
|
05677d5fb6 | ||
|
|
156979e79e | ||
|
|
0f2fcbe9e6 | ||
|
|
089887f05b | ||
|
|
c83f64706f | ||
|
|
c82d33fa39 | ||
|
|
eed1d398d8 | ||
|
|
a8643b8543 | ||
|
|
bd1eeec770 | ||
|
|
8cb3f00aa4 | ||
|
|
4fed5a9b8c | ||
|
|
d54054510b | ||
|
|
27bd8260d2 | ||
|
|
29916f8517 | ||
|
|
2bac72eb5d | ||
|
|
dfcc03f11a | ||
|
|
a608ac72f6 | ||
|
|
b5d897608c | ||
|
|
431821154e | ||
|
|
9f488adcb9 | ||
|
|
a31c408327 | ||
|
|
d84483c0dc | ||
|
|
4804748564 | ||
|
|
d02a95290b | ||
|
|
8c8e3b6af9 | ||
|
|
1ae748fd20 | ||
|
|
212c4b3eca | ||
|
|
dcb5ff97af | ||
|
|
bb2960897f | ||
|
|
71809f71c3 | ||
|
|
3ef34ff262 | ||
|
|
01e2591248 | ||
|
|
707f5f32e1 | ||
|
|
bca7a9f19b | ||
|
|
013f15fc4a | ||
|
|
ee67cd1005 | ||
|
|
94eaf2f36f | ||
|
|
93bc75f25a | ||
|
|
aadfcb7fb3 | ||
|
|
49fcb32c80 | ||
|
|
e08dbe5a21 | ||
|
|
2afc34e207 | ||
|
|
65179c1383 | ||
|
|
f4c01a474e | ||
|
|
5ab1dd2f51 | ||
|
|
5d03bcf9aa | ||
|
|
fe520cfbc3 | ||
|
|
8744e0d66e | ||
|
|
43f6fd1964 | ||
|
|
5714e3b97a | ||
|
|
823da09f69 | ||
|
|
72dfe261db | ||
|
|
12efa61b9b | ||
|
|
22827e5752 | ||
|
|
d2db6f6f24 | ||
|
|
d6d2ea50e3 | ||
|
|
5b442cba77 | ||
|
|
6ea84d3d98 | ||
|
|
59635530a6 | ||
|
|
2272b60e94 | ||
|
|
9a9a589c5c | ||
|
|
0e63df3b74 | ||
|
|
a24d874cd6 | ||
|
|
2232409db2 | ||
|
|
e5bbef7034 | ||
|
|
63eaa3c2d9 | ||
|
|
9c88eb5cbf | ||
|
|
eca783fb71 | ||
|
|
1b4a760238 | ||
|
|
220e8a602e | ||
|
|
33af252411 | ||
|
|
b9328c2eca | ||
|
|
4577684fe2 | ||
|
|
de8d11fd12 | ||
|
|
fe72d25834 | ||
|
|
df820295fe | ||
|
|
fadfe1612e | ||
|
|
7f79ec5727 | ||
|
|
195404cd50 | ||
|
|
fce1c27cf8 | ||
|
|
9862bf52a8 | ||
|
|
3e387162a5 | ||
|
|
156d472f10 | ||
|
|
b0e3b95be7 | ||
|
|
18ba81090b | ||
|
|
06fcdbaa35 | ||
|
|
abe65b85ba | ||
|
|
ed79a71af4 | ||
|
|
ad8b3de019 | ||
|
|
b57dc5b055 | ||
|
|
fc79feed00 | ||
|
|
be10a20dd6 | ||
|
|
c57f04589a | ||
|
|
b73d8083b0 | ||
|
|
86e23f0fe8 | ||
|
|
25dec6ac69 | ||
|
|
ddedb4194b | ||
|
|
1f941376ee | ||
|
|
5520772a91 | ||
|
|
4bba03d41d | ||
|
|
136d98649d | ||
|
|
8b096bb648 | ||
|
|
b10b8aee93 | ||
|
|
89d3cad005 | ||
|
|
1035a815d1 | ||
|
|
5c06ae6836 | ||
|
|
f5aeef0a1a | ||
|
|
c6a9adfc4f | ||
|
|
ddff5a25f5 | ||
|
|
2a1921fdbc | ||
|
|
4b70065abe | ||
|
|
4cfe651434 | ||
|
|
0ffe414725 | ||
|
|
1154ec3099 | ||
|
|
ed6e1f26fb | ||
|
|
aa1c16aba3 | ||
|
|
31187404f2 | ||
|
|
e026fb3cfd | ||
|
|
0f854556e5 | ||
|
|
3aaa0b9d99 | ||
|
|
abdcdeda08 | ||
|
|
ba22886a09 | ||
|
|
7ec4ab62ff | ||
|
|
a934fd2635 | ||
|
|
5818485f3f | ||
|
|
e3422757a2 | ||
|
|
0f600b44ac | ||
|
|
9b53efdaed | ||
|
|
49e08f723a | ||
|
|
9ce2d75797 | ||
|
|
7b811e3eb6 | ||
|
|
ad0c9850dc | ||
|
|
e89fc78aca | ||
|
|
2cf206de5a | ||
|
|
82bd184bdd | ||
|
|
4cc7891008 | ||
|
|
2b3e5ca360 | ||
|
|
8f045125ea | ||
|
|
aa06553b17 | ||
|
|
9e2aa20303 | ||
|
|
1e77c69460 | ||
|
|
d25912b2ce | ||
|
|
c7eacdd6f6 | ||
|
|
09edc8961c | ||
|
|
8e698f3b78 | ||
|
|
e2d6707249 | ||
|
|
a381f5a01b | ||
|
|
1ac910fc54 | ||
|
|
7d9829ae27 | ||
|
|
16a255be50 | ||
|
|
ae4ce44eff | ||
|
|
bf008fe944 | ||
|
|
2cae53e83a | ||
|
|
fa8ea9dce0 | ||
|
|
d5298347d8 | ||
|
|
248075cd81 | ||
|
|
c3ffd01363 | ||
|
|
69735e438f | ||
|
|
8e221414b8 | ||
|
|
8d461ef200 | ||
|
|
0f5bd8a7a7 | ||
|
|
ebf1228c68 | ||
|
|
cdd48102a5 | ||
|
|
6ba21507f7 | ||
|
|
90ee54c3ad | ||
|
|
5e03847a42 | ||
|
|
4c107704e7 | ||
|
|
4975f2425d | ||
|
|
2b34f8bc26 | ||
|
|
7c4b16d443 | ||
|
|
57b607fca5 | ||
|
|
c30f6e642a | ||
|
|
8416060fc4 | ||
|
|
45c318b391 | ||
|
|
3ec3873860 | ||
|
|
5a1f177ae1 | ||
|
|
820c86a3d3 | ||
|
|
b4b7edb18f | ||
|
|
0a3cf92ce9 | ||
|
|
5ecf096e40 | ||
|
|
aee521d5bc | ||
|
|
35fcbab852 | ||
|
|
9f6a98779b | ||
|
|
d44b406222 | ||
|
|
37ce944dc1 | ||
|
|
c322059c97 | ||
|
|
323ccae196 | ||
|
|
d1beba7782 | ||
|
|
0fb496c349 | ||
|
|
ef069e7fbc | ||
|
|
40e1e5da16 | ||
|
|
e996963635 | ||
|
|
aa6d5f1598 | ||
|
|
39edceb0dd | ||
|
|
e355eb31cd | ||
|
|
3e4cc199a6 | ||
|
|
faabc949c0 | ||
|
|
809a6b5562 | ||
|
|
21e0f94d19 | ||
|
|
ec98178d45 |
@@ -1,7 +1,8 @@
|
|||||||
module.exports = {
|
module.exports = {
|
||||||
env: {
|
env: {
|
||||||
browser: true,
|
browser: true,
|
||||||
es2021: true
|
es2021: true,
|
||||||
|
jest: true
|
||||||
},
|
},
|
||||||
extends: [
|
extends: [
|
||||||
'plugin:vue/vue3-essential',
|
'plugin:vue/vue3-essential',
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
stages:
|
stages:
|
||||||
- gen_git-log
|
- gen_git-log
|
||||||
- build_project
|
- build_project
|
||||||
|
- test
|
||||||
- build_image
|
- build_image
|
||||||
|
|
||||||
cache:
|
cache:
|
||||||
@@ -10,7 +11,7 @@ cache:
|
|||||||
- package.json
|
- package.json
|
||||||
paths:
|
paths:
|
||||||
- node_modules
|
- node_modules
|
||||||
- dist/
|
# - dist/
|
||||||
|
|
||||||
before_script:
|
before_script:
|
||||||
- export CNUI_TAG=$(date +%Y%m%d%H%M%S)
|
- export CNUI_TAG=$(date +%Y%m%d%H%M%S)
|
||||||
@@ -18,7 +19,7 @@ before_script:
|
|||||||
generate_git-log:
|
generate_git-log:
|
||||||
stage: gen_git-log
|
stage: gen_git-log
|
||||||
script:
|
script:
|
||||||
- if (( `grep git-log.html ./public/index.html | wc -l` == 0 )); then sed -i 's+</body>+<a style="position:fixed;top:0;left:0;z-index:999;font-size:12px;color:darkblue;text-decoration:none;" target="_blank" href="./git-log.html">R</a>\n</body>+g' ./public/index.html; echo "添加更新记录链接"; fi;
|
- if (( `grep git-log.html ./public/index.html | wc -l` == 0 )); then sed -i 's+</body>+<a style="position:fixed;top:0;left:0;z-index:999;font-size:12px;color:transparent;text-decoration:none;display:none;" target="_blank" href="./git-log.html">R</a>\n</body>+g' ./public/index.html; echo "添加更新记录链接"; fi;
|
||||||
- echo "最近的100个提交记录"
|
- echo "最近的100个提交记录"
|
||||||
- echo "<!DOCTYPE html><html><head><meta charset='utf-8'></head><body><pre>" > ./public/git-log.html
|
- echo "<!DOCTYPE html><html><head><meta charset='utf-8'></head><body><pre>" > ./public/git-log.html
|
||||||
- "git log -100 --pretty=format:'%ad : %s' >> ./public/git-log.html"
|
- "git log -100 --pretty=format:'%ad : %s' >> ./public/git-log.html"
|
||||||
@@ -41,21 +42,38 @@ build_project:
|
|||||||
- cnpm install --save-dev --unsafe-perm
|
- cnpm install --save-dev --unsafe-perm
|
||||||
- echo "npm run build"
|
- echo "npm run build"
|
||||||
- cnpm run build
|
- cnpm run build
|
||||||
|
artifacts:
|
||||||
|
name: "$CI_JOB_NAME-$CI_COMMIT_REF_NAME"
|
||||||
|
when: on_success
|
||||||
|
paths:
|
||||||
|
- dist/
|
||||||
only:
|
only:
|
||||||
- dev
|
- dev
|
||||||
- tags
|
- tags
|
||||||
tags:
|
tags:
|
||||||
- galaxy
|
- galaxy
|
||||||
|
|
||||||
|
test:
|
||||||
|
stage: test
|
||||||
|
script:
|
||||||
|
- cnpm run test
|
||||||
|
when: on_success
|
||||||
|
only:
|
||||||
|
- dev
|
||||||
|
tags:
|
||||||
|
- galaxy
|
||||||
|
|
||||||
build_image:
|
build_image:
|
||||||
|
dependencies:
|
||||||
|
- build_project
|
||||||
stage: build_image
|
stage: build_image
|
||||||
script:
|
script:
|
||||||
- echo "docker build"
|
- echo "docker build"
|
||||||
- sudo docker build -t cn-ui:$CNUI_TAG .
|
- sudo docker build --no-cache -t cn-ui-$CI_COMMIT_REF_NAME:$CNUI_TAG .
|
||||||
- echo "docker tag"
|
- echo "docker tag"
|
||||||
- sudo docker tag cn-ui:$CNUI_TAG 192.168.40.153:9080/cyber-narrator/cn-ui:$CNUI_TAG
|
- sudo docker tag cn-ui-$CI_COMMIT_REF_NAME:$CNUI_TAG 192.168.40.153:9080/cyber-narrator/cn-ui-$CI_COMMIT_REF_NAME:$CNUI_TAG
|
||||||
- echo "docker push"
|
- echo "docker push"
|
||||||
- sudo docker push 192.168.40.153:9080/cyber-narrator/cn-ui:$CNUI_TAG
|
- sudo docker push 192.168.40.153:9080/cyber-narrator/cn-ui-$CI_COMMIT_REF_NAME:$CNUI_TAG
|
||||||
when: on_success
|
when: on_success
|
||||||
only:
|
only:
|
||||||
- dev
|
- dev
|
||||||
@@ -64,6 +82,8 @@ build_image:
|
|||||||
|
|
||||||
|
|
||||||
build_release_image:
|
build_release_image:
|
||||||
|
dependencies:
|
||||||
|
- build_project
|
||||||
stage: build_image
|
stage: build_image
|
||||||
script:
|
script:
|
||||||
- echo 'tag名称是'
|
- echo 'tag名称是'
|
||||||
@@ -71,7 +91,7 @@ build_release_image:
|
|||||||
- echo '提交的版本是'
|
- echo '提交的版本是'
|
||||||
- echo $CI_COMMIT_REF_NAME
|
- echo $CI_COMMIT_REF_NAME
|
||||||
- echo "docker build"
|
- echo "docker build"
|
||||||
- sudo docker build -t cn-ui:$CI_COMMIT_TAG .
|
- sudo docker build --no-cache -t cn-ui:$CI_COMMIT_TAG .
|
||||||
- echo "docker tag"
|
- echo "docker tag"
|
||||||
- sudo docker tag cn-ui:$CI_COMMIT_TAG 192.168.40.153:9080/cyber-narrator/cn-ui:$CI_COMMIT_TAG
|
- sudo docker tag cn-ui:$CI_COMMIT_TAG 192.168.40.153:9080/cyber-narrator/cn-ui:$CI_COMMIT_TAG
|
||||||
- echo "docker push"
|
- echo "docker push"
|
||||||
|
|||||||
@@ -12,8 +12,9 @@ module.exports = {
|
|||||||
],
|
],
|
||||||
plugins: [
|
plugins: [
|
||||||
'@vue/babel-plugin-jsx',
|
'@vue/babel-plugin-jsx',
|
||||||
['@babel/proposal-class-properties', { loose: true }],
|
['@babel/plugin-proposal-class-properties', { loose: true }],
|
||||||
['@babel/plugin-proposal-private-methods', { loose: true }],
|
['@babel/plugin-proposal-private-methods', { loose: true }],
|
||||||
|
['@babel/plugin-proposal-private-property-in-object', { loose: true }],
|
||||||
'@babel/transform-runtime',
|
'@babel/transform-runtime',
|
||||||
'lodash'
|
'lodash'
|
||||||
],
|
],
|
||||||
|
|||||||
34
jest.config.js
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
module.exports = {
|
||||||
|
roots: [
|
||||||
|
'<rootDir>/test'
|
||||||
|
],
|
||||||
|
testMatch: [
|
||||||
|
'<rootDir>/test/**/__tests__/**/*.{vue,js,jsx,ts,tsx}',
|
||||||
|
'<rootDir>/test/**/*.{spec,test}.{vue,js,jsx,ts,tsx}'
|
||||||
|
],
|
||||||
|
setupFilesAfterEnv: ['<rootDir>/test/init.js'],
|
||||||
|
verbose: true,
|
||||||
|
testEnvironment: 'jsdom',
|
||||||
|
transform: {
|
||||||
|
'^.+\\.(vue)$': '<rootDir>/node_modules/vue-jest',
|
||||||
|
'^.+\\.(js|jsx|mjs|cjs|ts|tsx)$': '<rootDir>/node_modules/babel-jest'
|
||||||
|
},
|
||||||
|
transformIgnorePatterns: [
|
||||||
|
'<rootDir>/node_modules/',
|
||||||
|
'[/\\\\]node_modules[/\\\\].+\\.(js|jsx|mjs|cjs|ts|tsx)$',
|
||||||
|
'^.+\\.module\\.(css|sass|scss|less)$'
|
||||||
|
],
|
||||||
|
moduleFileExtensions: [
|
||||||
|
'vue',
|
||||||
|
'js',
|
||||||
|
'jsx',
|
||||||
|
'ts',
|
||||||
|
'tsx',
|
||||||
|
'json',
|
||||||
|
'node'
|
||||||
|
],
|
||||||
|
moduleNameMapper: {
|
||||||
|
'@/(.*)$': '<rootDir>/src/$1'
|
||||||
|
},
|
||||||
|
resetMocks: true
|
||||||
|
}
|
||||||
12
package.json
@@ -6,6 +6,7 @@
|
|||||||
"serve": "vue-cli-service serve",
|
"serve": "vue-cli-service serve",
|
||||||
"build": "cross-env NODE_ENV=production vue-cli-service build",
|
"build": "cross-env NODE_ENV=production vue-cli-service build",
|
||||||
"lint": "vue-cli-service lint",
|
"lint": "vue-cli-service lint",
|
||||||
|
"test": "jest",
|
||||||
"analyz": "cross-env NODE_ENV=production npm_config_report=true npm run build"
|
"analyz": "cross-env NODE_ENV=production npm_config_report=true npm run build"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@@ -48,17 +49,23 @@
|
|||||||
"@rollup/plugin-commonjs": "^15.1.0",
|
"@rollup/plugin-commonjs": "^15.1.0",
|
||||||
"@rollup/plugin-node-resolve": "^9.0.0",
|
"@rollup/plugin-node-resolve": "^9.0.0",
|
||||||
"@rollup/plugin-typescript": "^6.0.0",
|
"@rollup/plugin-typescript": "^6.0.0",
|
||||||
"@types/jest": "^26.0.10",
|
"@testing-library/jest-dom": "^5.16.5",
|
||||||
|
"@testing-library/user-event": "^14.4.3",
|
||||||
|
"@testing-library/vue": "^6.4.2",
|
||||||
|
"@types/jest": "^26.0.24",
|
||||||
"@types/lodash": "^4.14.161",
|
"@types/lodash": "^4.14.161",
|
||||||
"@typescript-eslint/eslint-plugin": "^3.10.1",
|
"@typescript-eslint/eslint-plugin": "^3.10.1",
|
||||||
"@typescript-eslint/parser": "^3.10.1",
|
"@typescript-eslint/parser": "^3.10.1",
|
||||||
"@vue/babel-plugin-jsx": "^1.0.0",
|
"@vue/babel-plugin-jsx": "^1.0.0",
|
||||||
|
"@vue/babel-preset-app": "^5.0.8",
|
||||||
"@vue/cli-plugin-babel": "~4.5.0",
|
"@vue/cli-plugin-babel": "~4.5.0",
|
||||||
"@vue/cli-plugin-eslint": "~4.5.0",
|
"@vue/cli-plugin-eslint": "~4.5.0",
|
||||||
"@vue/cli-service": "~4.5.0",
|
"@vue/cli-service": "~4.5.0",
|
||||||
"@vue/compiler-sfc": "^3.0.0",
|
"@vue/compiler-sfc": "^3.0.0",
|
||||||
"@vue/component-compiler-utils": "^3.2.0",
|
"@vue/component-compiler-utils": "^3.2.0",
|
||||||
|
"@vue/test-utils": "^2.2.7",
|
||||||
"babel-eslint": "^10.1.0",
|
"babel-eslint": "^10.1.0",
|
||||||
|
"babel-jest": "^26.0.0",
|
||||||
"compression-webpack-plugin": "^8.0.1",
|
"compression-webpack-plugin": "^8.0.1",
|
||||||
"cross-env": "^7.0.3",
|
"cross-env": "^7.0.3",
|
||||||
"eslint": "^7.22.0",
|
"eslint": "^7.22.0",
|
||||||
@@ -67,7 +74,10 @@
|
|||||||
"eslint-plugin-node": "^11.1.0",
|
"eslint-plugin-node": "^11.1.0",
|
||||||
"eslint-plugin-promise": "^4.3.1",
|
"eslint-plugin-promise": "^4.3.1",
|
||||||
"eslint-plugin-vue": "^7.7.0",
|
"eslint-plugin-vue": "^7.7.0",
|
||||||
|
"jest": "^26.0.0",
|
||||||
|
"ts-jest": "^26.4.4",
|
||||||
"uglifyjs-webpack-plugin": "^2.2.0",
|
"uglifyjs-webpack-plugin": "^2.2.0",
|
||||||
|
"vue-jest": "^5.0.0-alpha.10",
|
||||||
"vue3-ace-editor": "^2.0.2"
|
"vue3-ace-editor": "^2.0.2"
|
||||||
},
|
},
|
||||||
"browserslist": [
|
"browserslist": [
|
||||||
|
|||||||
BIN
public/assets/knowledgeBaseTemplate.zip
Normal file
@@ -1,4 +1,5 @@
|
|||||||
var BASE_CONFIG = {
|
const BASE_CONFIG = {
|
||||||
baseUrl: 'http://192.168.44.54:8090/',
|
baseUrl: 'http://192.168.44.54:8091/',
|
||||||
version: '2.0.2021.05.11.19.43'
|
version: '23.06',
|
||||||
|
apiVersion: 'v1'
|
||||||
}
|
}
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 1.5 MiB After Width: | Height: | Size: 1.6 MiB |
48
public/images/flag/011-china.svg
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||||
|
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||||
|
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||||
|
viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
|
||||||
|
<rect y="85.331" style="fill:#D80027;" width="512" height="341.337"/>
|
||||||
|
<g>
|
||||||
|
<polygon style="fill:#FFDA44;" points="178.923,189.567 193.579,234.674 241.008,234.674 202.637,262.552 217.294,307.661
|
||||||
|
178.923,279.782 140.552,307.661 155.208,262.552 116.837,234.674 164.266,234.674 "/>
|
||||||
|
<polygon style="fill:#FFDA44;" points="271.3,339.593 256.91,329.138 242.522,339.592 248.017,322.678 233.628,312.223
|
||||||
|
251.414,312.223 256.91,295.307 262.408,312.223 280.193,312.223 265.804,322.677 "/>
|
||||||
|
<polygon style="fill:#FFDA44;" points="308.837,287.927 291.052,287.927 285.556,304.841 280.06,287.928 262.273,287.927
|
||||||
|
276.664,277.472 271.166,260.557 285.556,271.01 299.945,260.557 294.449,277.472 "/>
|
||||||
|
<polygon style="fill:#FFDA44;" points="308.837,224.063 294.449,234.518 299.944,251.432 285.556,240.979 271.166,251.434
|
||||||
|
276.664,234.517 262.273,224.065 280.061,224.063 285.556,207.147 291.052,224.063 "/>
|
||||||
|
<polygon style="fill:#FFDA44;" points="271.3,172.397 265.805,189.313 280.193,199.766 262.408,199.767 256.91,216.684
|
||||||
|
251.414,199.766 233.629,199.768 248.018,189.312 242.522,172.396 256.91,182.851 "/>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.6 KiB |
75
public/images/flag/142-australia.svg
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||||
|
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||||
|
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||||
|
viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
|
||||||
|
<rect y="85.333" style="fill:#0052B4;" width="512" height="341.337"/>
|
||||||
|
<g>
|
||||||
|
<path style="fill:#F0F0F0;" d="M223.397,255.996c0.273-0.304,0.543-0.609,0.813-0.916c-0.27,0.308-0.546,0.61-0.82,0.916H223.397z"
|
||||||
|
/>
|
||||||
|
<polygon style="fill:#F0F0F0;" points="189.217,297.923 200.175,320.836 224.922,315.118 213.839,337.971 233.739,353.752
|
||||||
|
208.963,359.337 209.032,384.735 189.217,368.845 169.403,384.735 169.472,359.337 144.696,353.752 164.596,337.971
|
||||||
|
153.513,315.118 178.259,320.836 "/>
|
||||||
|
<polygon style="fill:#F0F0F0;" points="387.076,326.387 392.303,337.316 404.106,334.588 398.82,345.488 408.312,353.016
|
||||||
|
396.494,355.679 396.526,367.793 387.076,360.215 377.626,367.793 377.658,355.679 365.841,353.016 375.332,345.488
|
||||||
|
370.047,334.588 381.85,337.316 "/>
|
||||||
|
<polygon style="fill:#F0F0F0;" points="338.453,210.448 343.68,221.378 355.483,218.649 350.197,229.55 359.688,237.078
|
||||||
|
347.871,239.741 347.903,251.856 338.453,244.276 329.002,251.856 329.035,239.741 317.217,237.078 326.708,229.55
|
||||||
|
321.424,218.649 333.226,221.378 "/>
|
||||||
|
<polygon style="fill:#F0F0F0;" points="387.076,144.198 392.303,155.128 404.106,152.398 398.82,163.3 408.311,170.827
|
||||||
|
396.494,173.491 396.526,185.605 387.076,178.025 377.626,185.605 377.658,173.491 365.841,170.827 375.332,163.3 370.047,152.398
|
||||||
|
381.85,155.128 "/>
|
||||||
|
<polygon style="fill:#F0F0F0;" points="429.547,193.886 434.774,204.815 446.576,202.087 441.292,212.987 450.783,220.514
|
||||||
|
438.965,223.178 438.998,235.292 429.547,227.714 420.097,235.292 420.129,223.178 408.312,220.514 417.803,212.987
|
||||||
|
412.517,202.087 424.32,204.815 "/>
|
||||||
|
<polygon style="fill:#F0F0F0;" points="399.179,251.856 403.289,264.508 416.593,264.508 405.83,272.328 409.942,284.98
|
||||||
|
399.179,277.161 388.414,284.98 392.526,272.328 381.763,264.508 395.067,264.508 "/>
|
||||||
|
<polygon style="fill:#F0F0F0;" points="256,85.333 256,115.886 210.833,140.985 256,140.985 256,200.344 196.897,200.344
|
||||||
|
256,233.179 256,255.996 229.32,255.996 155.826,215.17 155.826,255.996 100.174,255.996 100.174,207.423 12.744,255.996
|
||||||
|
0,255.996 0,225.443 45.167,200.344 0,200.344 0,140.985 59.103,140.985 0,108.139 0,85.333 26.68,85.333 100.174,126.16
|
||||||
|
100.174,85.333 155.826,85.333 155.826,133.906 243.256,85.333 "/>
|
||||||
|
</g>
|
||||||
|
<polygon style="fill:#D80027;" points="144,85.33 112,85.33 112,154.662 0,154.662 0,186.662 112,186.662 112,255.996 144,255.996
|
||||||
|
144,186.662 256,186.662 256,154.662 144,154.662 "/>
|
||||||
|
<polygon style="fill:#0052B4;" points="155.826,200.344 256,255.996 256,240.259 184.153,200.344 "/>
|
||||||
|
<polygon style="fill:#F0F0F0;" points="155.826,200.344 256,255.996 256,240.259 184.153,200.344 "/>
|
||||||
|
<g>
|
||||||
|
<polygon style="fill:#D80027;" points="155.826,200.344 256,255.996 256,240.259 184.153,200.344 "/>
|
||||||
|
<polygon style="fill:#D80027;" points="71.846,200.344 0,240.259 0,255.996 0,255.996 100.174,200.344 "/>
|
||||||
|
</g>
|
||||||
|
<polygon style="fill:#0052B4;" points="100.174,140.982 0,85.33 0,101.067 71.847,140.982 "/>
|
||||||
|
<polygon style="fill:#F0F0F0;" points="100.174,140.982 0,85.33 0,101.067 71.847,140.982 "/>
|
||||||
|
<g>
|
||||||
|
<polygon style="fill:#D80027;" points="100.174,140.982 0,85.33 0,101.067 71.847,140.982 "/>
|
||||||
|
<polygon style="fill:#D80027;" points="184.154,140.982 256,101.067 256,85.33 256,85.33 155.826,140.982 "/>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 3.6 KiB |
69
public/images/flag/185-united states of america.svg
Normal file
@@ -0,0 +1,69 @@
|
|||||||
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||||
|
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||||
|
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||||
|
viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
|
||||||
|
<rect y="85.331" style="fill:#F0F0F0;" width="512" height="341.337"/>
|
||||||
|
<g>
|
||||||
|
<rect y="127.994" style="fill:#D80027;" width="512" height="42.663"/>
|
||||||
|
<rect y="213.331" style="fill:#D80027;" width="512" height="42.663"/>
|
||||||
|
<rect y="298.657" style="fill:#D80027;" width="512" height="42.663"/>
|
||||||
|
<rect y="383.994" style="fill:#D80027;" width="512" height="42.663"/>
|
||||||
|
</g>
|
||||||
|
<rect y="85.331" style="fill:#2E52B2;" width="256" height="183.797"/>
|
||||||
|
<g>
|
||||||
|
<polygon style="fill:#F0F0F0;" points="99.822,160.624 95.699,173.308 82.363,173.308 93.154,181.143 89.031,193.826
|
||||||
|
99.822,185.991 110.606,193.826 106.484,181.143 117.275,173.308 103.938,173.308 "/>
|
||||||
|
<polygon style="fill:#F0F0F0;" points="103.938,219.08 99.822,206.397 95.699,219.08 82.363,219.08 93.154,226.916 89.031,239.599
|
||||||
|
99.822,231.763 110.606,239.599 106.484,226.916 117.275,219.08 "/>
|
||||||
|
<polygon style="fill:#F0F0F0;" points="47.577,219.08 43.46,206.397 39.337,219.08 26.001,219.08 36.792,226.916 32.669,239.599
|
||||||
|
43.46,231.763 54.245,239.599 50.123,226.916 60.912,219.08 "/>
|
||||||
|
<polygon style="fill:#F0F0F0;" points="43.46,160.624 39.337,173.308 26.001,173.308 36.792,181.143 32.669,193.826 43.46,185.991
|
||||||
|
54.245,193.826 50.123,181.143 60.912,173.308 47.577,173.308 "/>
|
||||||
|
<polygon style="fill:#F0F0F0;" points="99.822,114.85 95.699,127.535 82.363,127.535 93.154,135.371 89.031,148.054
|
||||||
|
99.822,140.218 110.606,148.054 106.484,135.371 117.275,127.535 103.938,127.535 "/>
|
||||||
|
<polygon style="fill:#F0F0F0;" points="43.46,114.85 39.337,127.535 26.001,127.535 36.792,135.371 32.669,148.054 43.46,140.218
|
||||||
|
54.245,148.054 50.123,135.371 60.912,127.535 47.577,127.535 "/>
|
||||||
|
<polygon style="fill:#F0F0F0;" points="156.183,160.624 152.061,173.308 138.725,173.308 149.515,181.143 145.394,193.826
|
||||||
|
156.183,185.991 166.969,193.826 162.846,181.143 173.637,173.308 160.301,173.308 "/>
|
||||||
|
<polygon style="fill:#F0F0F0;" points="160.301,219.08 156.183,206.397 152.061,219.08 138.725,219.08 149.515,226.916
|
||||||
|
145.394,239.599 156.183,231.763 166.969,239.599 162.846,226.916 173.637,219.08 "/>
|
||||||
|
<polygon style="fill:#F0F0F0;" points="216.663,219.08 212.546,206.397 208.423,219.08 195.088,219.08 205.877,226.916
|
||||||
|
201.755,239.599 212.546,231.763 223.331,239.599 219.208,226.916 229.999,219.08 "/>
|
||||||
|
<polygon style="fill:#F0F0F0;" points="212.546,160.624 208.423,173.308 195.088,173.308 205.877,181.143 201.755,193.826
|
||||||
|
212.546,185.991 223.331,193.826 219.208,181.143 229.999,173.308 216.663,173.308 "/>
|
||||||
|
<polygon style="fill:#F0F0F0;" points="156.183,114.85 152.061,127.535 138.725,127.535 149.515,135.371 145.394,148.054
|
||||||
|
156.183,140.218 166.969,148.054 162.846,135.371 173.637,127.535 160.301,127.535 "/>
|
||||||
|
<polygon style="fill:#F0F0F0;" points="212.546,114.85 208.423,127.535 195.088,127.535 205.877,135.371 201.755,148.054
|
||||||
|
212.546,140.218 223.331,148.054 219.208,135.371 229.999,127.535 216.663,127.535 "/>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 3.3 KiB |
38
public/images/flag/207-germany.svg
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||||
|
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||||
|
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||||
|
viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
|
||||||
|
<rect y="85.331" style="fill:#D80027;" width="512" height="341.337"/>
|
||||||
|
<rect y="85.331" width="512" height="113.775"/>
|
||||||
|
<rect y="312.882" style="fill:#FFDA44;" width="512" height="113.775"/>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 684 B |
57
public/images/flag/218-south korea.svg
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||||
|
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||||
|
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||||
|
viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
|
||||||
|
<rect y="85.331" style="fill:#FFFFFF;" width="512" height="341.337"/>
|
||||||
|
<path style="fill:#D80027;" d="M318.33,255.994c0,15.583-27.906,54.539-62.33,54.539s-62.33-38.957-62.33-54.539
|
||||||
|
c0-34.424,27.906-62.33,62.33-62.33S318.33,221.57,318.33,255.994z"/>
|
||||||
|
<path style="fill:#0052B4;" d="M318.33,255.994c0,34.424-27.906,62.33-62.33,62.33s-62.33-27.906-62.33-62.33"/>
|
||||||
|
<rect x="324.205" y="300.55" transform="matrix(0.7071 -0.7071 0.7071 0.7071 -119.6501 327.8224)" width="23.374" height="15.582"/>
|
||||||
|
<rect x="296.657" y="328.085" transform="matrix(0.7071 -0.7071 0.7071 0.7071 -147.1889 316.408)" width="23.374" height="15.582"/>
|
||||||
|
<rect x="357.26" y="333.586" transform="matrix(0.7071 -0.7071 0.7071 0.7071 -133.3277 360.8719)" width="23.374" height="15.582"/>
|
||||||
|
<rect x="329.712" y="361.143" transform="matrix(0.7071 -0.7071 0.7071 0.7071 -160.8823 349.464)" width="23.374" height="15.582"/>
|
||||||
|
<rect x="340.732" y="317.068" transform="matrix(0.7071 -0.7071 0.7071 0.7071 -126.4889 344.3472)" width="23.374" height="15.582"/>
|
||||||
|
<rect x="313.185" y="344.614" transform="matrix(0.7071 -0.7071 0.7071 0.7071 -154.0356 332.936)" width="23.374" height="15.582"/>
|
||||||
|
<rect x="307.483" y="165.555" transform="matrix(-0.7071 -0.7071 0.7071 -0.7071 455.5344 535.3814)" width="62.33" height="15.582"/>
|
||||||
|
<rect x="296.656" y="168.315" transform="matrix(-0.7071 -0.7071 0.7071 -0.7071 401.8486 518.6624)" width="23.374" height="15.581"/>
|
||||||
|
<rect x="324.193" y="195.864" transform="matrix(-0.7071 -0.7071 0.7071 -0.7071 429.3763 585.1636)" width="23.374" height="15.581"/>
|
||||||
|
<rect x="329.693" y="135.257" transform="matrix(-0.7071 -0.7071 0.7071 -0.7071 481.6206 485.591)" width="23.374" height="15.582"/>
|
||||||
|
<rect x="357.252" y="162.807" transform="matrix(-0.7071 -0.7071 0.7071 -0.7071 509.1863 552.108)" width="23.374" height="15.582"/>
|
||||||
|
<rect x="125.671" y="347.369" transform="matrix(0.7071 0.7071 -0.7071 0.7071 297.0721 -6.8758)" width="62.33" height="15.582"/>
|
||||||
|
<rect x="175.435" y="344.62" transform="matrix(0.7071 0.7071 -0.7071 0.7071 303.9983 -29.0962)" width="23.374" height="15.581"/>
|
||||||
|
<rect x="147.898" y="317.072" transform="matrix(0.7071 0.7071 -0.7071 0.7071 276.4547 -17.6934)" width="23.374" height="15.582"/>
|
||||||
|
<rect x="158.724" y="314.322" transform="matrix(0.7071 0.7071 -0.7071 0.7071 283.386 -39.9269)" width="62.33" height="15.582"/>
|
||||||
|
<rect x="125.672" y="149.023" transform="matrix(-0.7071 0.7071 -0.7071 -0.7071 378.6212 156.7987)" width="62.33" height="15.582"/>
|
||||||
|
<rect x="142.182" y="165.56" transform="matrix(-0.7071 0.7071 -0.7071 -0.7071 418.4998 173.3536)" width="62.33" height="15.582"/>
|
||||||
|
<rect x="158.712" y="182.089" transform="matrix(-0.7071 0.7071 -0.7071 -0.7071 458.4043 189.8812)" width="62.33" height="15.581"/>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 3.1 KiB |
57
public/images/logo-title.svg
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg width="278px" height="134px" viewBox="0 0 278 134" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||||
|
<title>编组</title>
|
||||||
|
<defs>
|
||||||
|
<filter x="-17.8%" y="-24.0%" width="135.5%" height="147.9%" filterUnits="objectBoundingBox" id="filter-1">
|
||||||
|
<feOffset dx="0" dy="2" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
|
||||||
|
<feGaussianBlur stdDeviation="2.5" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
|
||||||
|
<feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.5 0" type="matrix" in="shadowBlurOuter1" result="shadowMatrixOuter1"></feColorMatrix>
|
||||||
|
<feMerge>
|
||||||
|
<feMergeNode in="shadowMatrixOuter1"></feMergeNode>
|
||||||
|
<feMergeNode in="SourceGraphic"></feMergeNode>
|
||||||
|
</feMerge>
|
||||||
|
</filter>
|
||||||
|
<filter x="-4.6%" y="-33.1%" width="109.2%" height="166.2%" filterUnits="objectBoundingBox" id="filter-2">
|
||||||
|
<feOffset dx="0" dy="2" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
|
||||||
|
<feGaussianBlur stdDeviation="2" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
|
||||||
|
<feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.5 0" type="matrix" in="shadowBlurOuter1" result="shadowMatrixOuter1"></feColorMatrix>
|
||||||
|
<feMerge>
|
||||||
|
<feMergeNode in="shadowMatrixOuter1"></feMergeNode>
|
||||||
|
<feMergeNode in="SourceGraphic"></feMergeNode>
|
||||||
|
</feMerge>
|
||||||
|
</filter>
|
||||||
|
</defs>
|
||||||
|
<g id="🪁login" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||||
|
<g id="登录定" transform="translate(-821.000000, -321.000000)">
|
||||||
|
<g id="编组-29备份-2" transform="translate(-92.000000, 0.483548)">
|
||||||
|
<g id="编组-3" transform="translate(845.000000, 261.000000)">
|
||||||
|
<g id="编组" transform="translate(77.000000, 70.000000)">
|
||||||
|
<g id="编组-2" filter="url(#filter-1)" transform="translate(92.000000, 0.000000)">
|
||||||
|
<g id="编组-6" transform="translate(35.050168, 0.000000)" fill="#07C8EA">
|
||||||
|
<path d="M27.0984325,0.0122014594 L31.8461546,0.0441807494 C33.4287159,0.0529564615 35.0111814,0.057058831 36.5933025,0.0481199837 C39.7135537,0.0288820298 40.9989786,1.482222 40.9483988,4.6197574 C40.8553785,10.3255597 40.893168,16.0325764 40.9093577,21.7387835 L40.9152603,25.1623944 L40.9214617,37.9840697 L40.9100279,44.3951016 C40.8908425,49.6015915 40.4443448,50.033571 35.0933494,50.052809 C30.3405147,50.0699729 25.5830136,50.1620025 20.8322952,50.0868551 L20.7215855,50.0942095 L20.7215855,50.0942095 L20.5477593,50.0992315 C18.9139006,50.0992315 17.5893964,48.7747273 17.5893964,47.1408687 C17.5893964,45.50701 18.9139006,44.1825058 20.5477593,44.1825058 L20.474,44.184 L20.4742959,44.1750333 C21.1471703,44.1739628 21.8199738,44.181749 22.4925791,44.1939776 L23.5363069,44.2159125 C27.0892892,44.2985782 30.6348941,44.4415229 34.1543247,43.9933811 L34.9660278,43.8791747 L34.9660278,6.26547692 C33.1063476,6.26547692 31.2448143,6.23793166 29.3832537,6.20623276 L26.5911206,6.15849312 C21.9382921,6.0834815 17.2909993,6.05560833 12.6777715,6.44036741 C8.6401071,6.77790605 5.98379485,10.2529801 5.89658827,14.448603 C5.6888441,24.353954 5.80079615,34.2622872 5.81918245,44.6967563 L0.447293679,44.6970037 L0.446704038,54.9559323 C0.117345075,53.9801448 0.113539117,52.6941057 0.104327596,51.8104584 C-0.0299705283,39.8654379 -0.0177616079,27.9186685 0.0467712572,15.9718991 C0.0973510704,7.02275274 6.25064696,0.487095115 15.2364124,0.139063039 C19.1868702,-0.0134803334 23.1421729,-0.0121848483 27.0984325,0.0122014594 Z" id="形状结合"></path>
|
||||||
|
</g>
|
||||||
|
<g id="编组-6" fill="#427497">
|
||||||
|
<path d="M25.7134192,0.139063039 C34.6991847,0.487095115 40.8524806,7.02275274 40.9030604,15.9718991 L40.904,16.078 L40.902,16.078 L40.9025818,16.0941369 C40.9025818,17.6439559 39.6910759,18.9108125 38.1634453,18.9993255 L37.9924532,19.0042656 C36.3852335,19.0042656 35.0823245,17.7013566 35.0823245,16.0941369 C35.0823245,16.0780245 35.0824554,16.0619426 35.0827163,16.0458923 L35.0846058,16.0783793 C35.0750677,15.535054 35.0646363,14.991824 35.0532433,14.448603 C34.9660368,10.2529801 32.3097245,6.77790605 28.2720601,6.44036741 C23.6588323,6.05560833 19.0115395,6.0834815 14.358711,6.15849312 L11.566578,6.20623276 C9.70501736,6.23793166 7.84348402,6.26547692 5.98380382,6.26547692 L5.98380382,43.8791747 C9.76950351,44.4638711 13.587236,44.3049371 17.4135248,44.2159125 L18.4572525,44.1939776 C24.024744,44.0927552 29.6058224,44.2959137 35.128241,47.3070283 C35.128241,46.4331109 35.1291226,45.5631201 35.1306492,44.6967563 C35.1675419,43.1280395 36.4488408,41.8672653 38.0246093,41.8672653 C39.6211734,41.8672653 40.9154443,43.1615363 40.9154443,44.7581003 C40.9154443,44.8307331 40.9127656,44.9027403 40.9075017,44.9740284 L40.9088955,44.6972456 C40.8930463,47.0683764 40.8721613,49.4394518 40.845504,51.8104584 C40.8298068,53.3162655 40.8298068,55.990576 39.2077646,56.3068929 C37.5857223,56.6232099 35.9043795,55.3887179 34.756741,54.3638596 C31.4359146,51.4029636 27.806377,49.8569316 23.2908206,50.0090864 C17.486351,50.2067126 11.6679283,50.0737959 5.85648222,50.052809 C0.505486811,50.033571 0.0589891496,49.6015915 0.0398037033,44.3951016 C0.0171299939,37.9836163 0.0345713088,31.5738798 0.0345713088,25.1623944 C0.0363154403,18.3154317 0.113057226,11.4667201 0.00143281049,4.6197574 C-0.0491470027,1.482222 1.2362779,0.0288820298 4.35652914,0.0481199837 C5.93865019,0.057058831 7.52111576,0.0529564615 9.10367704,0.0441807494 L13.8513991,0.0122014594 C17.8076588,-0.0121848483 21.7629614,-0.0134803334 25.7134192,0.139063039 Z" id="形状结合"></path>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g id="编组备份-3" filter="url(#filter-2)" transform="translate(0.000000, 78.000000)" fill="#FFFFFF">
|
||||||
|
<path d="M115.414634,3.4395964 C118.349928,2.7814294 120.475231,3.29905032 122.160731,5.90343768 C124.483413,9.49250456 127.148437,12.8399007 129.656213,16.2987054 C130.134509,16.9585864 130.56694,17.6544608 131.390854,18.88681 L131.390854,3.34275672 L136.97561,3.34275672 L136.97561,29.405484 C133.211489,30.4201581 132.565299,30.0088038 130.615261,26.8070956 C127.699624,22.0182451 124.570227,17.3716547 121.53174,12.6650751 C121.328628,12.749917 121.124697,12.8347588 120.921585,12.9196007 L120.921585,29.5546 L115.414634,29.5546 L115.414634,3.4395964 Z" id="Fill-3"></path>
|
||||||
|
<path d="M52.5622826,19.5533129 C52.5622826,20.896183 52.5088273,22.2433081 52.5906808,23.5802213 C52.6199142,24.0550766 52.8596279,24.7231077 53.2146047,24.9324524 C54.4716401,25.6745201 57.2421295,24.9758532 58.2268768,23.7963741 C59.7353193,21.9905626 60.0802732,17.5781534 58.8733522,15.5408713 C57.9153325,13.9248317 56.2523707,13.4984832 53.9153706,13.9903583 C51.9625807,14.4022399 52.6833924,15.8736103 52.5756465,17.0105397 C52.4954635,17.8504718 52.5597769,18.7048708 52.5622826,19.5533129 M52.5330493,0 L52.5330493,9.65368764 C53.208758,9.5405053 53.6698102,9.49284958 54.1166633,9.38477321 C59.6952278,8.0333931 63.9023291,10.7650872 65.0299024,16.4812208 C66.1015147,21.9071651 64.1203266,26.9127179 59.9833855,28.7985229 C55.9491788,30.6358212 51.8139081,29.8256739 47.7396098,28.8470296 C47.3829626,28.7610791 46.9837181,27.8930642 46.9812124,27.3867221 C46.934439,19.0265469 46.9645076,10.6663717 46.9268751,2.30619654 C46.9219104,1.14373732 47.3194844,0.630587319 48.4453872,0.535275875 C49.7375027,0.424646521 51.0204305,0.203387813 52.5330493,0" id="Fill-5"></path>
|
||||||
|
<path d="M19.5137739,23.4304503 C19.9932034,24.8985873 20.4620513,26.3353612 20.9268293,27.7602679 C14.4720316,31.407724 6.23789114,30.2659338 2.48710831,25.2529068 C-1.22541783,20.2898914 -0.709359604,11.0682613 3.55178365,6.23408942 C7.21547147,2.07888852 15.6189181,1.27107406 20.5540301,4.64219483 C20.064019,6.07049216 19.569938,7.51150431 19.047368,9.03558657 C14.6893621,7.55219171 10.4103114,6.14678104 7.12023675,10.7351332 C5.254613,13.3374317 5.32949842,19.2684681 7.28465909,21.8139737 C10.743226,26.3184081 15.1354187,24.6230997 19.5137739,23.4304503" id="Fill-7"></path>
|
||||||
|
<path d="M80.9573503,17.4186957 C80.6994597,14.8122308 79.7157449,13.6997668 77.8026508,13.6278585 C75.6024709,13.5441065 74.4971096,14.6464187 74.0851334,17.4186957 L80.9573503,17.4186957 Z M85.2271429,28.6702323 C81.6093756,29.9578141 78.1497488,30.3511949 74.691744,29.2725702 C70.8371715,28.0704323 68.9305652,25.1475708 68.5664366,21.0217254 C68.1731129,16.5684856 69.1925106,12.666825 73.0543819,10.2946966 C76.3404597,8.27534184 79.851989,8.46568738 82.955597,10.8132824 C86.3227725,13.3596828 86.3714311,17.194511 86.1832845,21.2679056 L74.1800176,21.2679056 C74.761488,24.9149262 77.0054606,25.5857885 84.4437394,24.4377934 C84.6910873,25.7719041 84.9400571,27.1178586 85.2271429,28.6702323 L85.2271429,28.6702323 Z" id="Fill-9"></path>
|
||||||
|
<path d="M25.3874943,30.8228052 C27.273054,31.3110201 28.457617,31.5073987 28.9411833,31.4119412 C30.9031674,31.0255922 31.8121184,29.009122 31.0620691,27.1434634 C28.7485252,21.3855088 26.4909674,15.603831 24.097561,9.54171142 L30.054319,9.54171142 C31.3765794,13.67717 34.2426251,22.3985378 34.3454245,22.3888832 C34.4546317,22.3786269 37.0270604,13.7593538 38.2422885,9.54425319 L43.7560976,9.54425319 C42.7483475,12.6968943 41.8846793,15.858008 40.7279074,18.901353 C39.1117199,23.1562747 37.3588605,27.3612083 35.512142,31.5153065 C33.6983565,35.5956933 30.1210084,37.5842041 24.3206821,35.2889865 C24.4266166,34.7659469 24.7822207,33.2772198 25.3874943,30.8228052 Z" id="Fill-11"></path>
|
||||||
|
<path d="M234.415104,8.91275606 C240.021771,8.71254074 243.950192,12.7288259 244.138705,18.8507945 C244.331212,25.1524435 240.866885,29.6752563 235.685171,29.8865947 C229.702277,30.1295911 225.972753,26.2467828 225.762672,19.5583931 C225.578153,13.6708647 229.297293,9.09500335 234.415104,8.91275606 Z M234.692852,13.9760256 C237.392359,13.8724659 239.283821,15.9498548 239.374586,19.1163903 C239.467275,22.3758639 237.799265,24.7152498 235.304366,24.8245628 C232.423713,24.9502506 230.628017,22.9419015 230.526867,19.4823895 C230.438024,16.4371162 232.228721,14.0702914 234.692852,13.9760256 Z" id="Fill-13"></path>
|
||||||
|
<path d="M200.239759,20.786111 C197.664552,20.8988821 196.292264,21.6284773 196.296349,23.2098363 C196.300526,24.7732545 197.562105,25.5643612 200.031561,25.6164751 C201.586435,25.6497938 202.385352,25.9804068 202.385352,23.3029579 C202.385352,21.2268237 202.1218,20.7040956 200.239759,20.786111 Z M195.974185,29.5438157 C192.681025,28.9030706 190.853512,26.6655885 190.878298,23.384119 C190.903083,20.2008971 192.687635,18.0659342 195.933702,17.440567 C197.008564,17.2338199 198.11069,17.1509501 199.203728,17.0885843 C200.211669,17.0304901 201.224567,17.0757694 202.23664,17.0757694 C201.947476,13.5226239 201.356756,13.3218571 193.403934,14.1138181 C193.270093,13.4534235 193.099073,12.7810682 193.005715,12.0967524 C192.91153,11.4090193 192.89418,10.7101799 192.829738,9.82851455 C196.569035,8.87423144 200.225714,8.3291709 203.912962,9.87806551 C205.883404,10.7050539 207.160681,12.3351096 207.250734,14.3684075 C207.461411,19.1663072 207.318481,23.9804391 207.318481,28.9141768 C203.589098,29.7411652 199.816754,30.2930604 195.974185,29.5438157 Z" id="Fill-17"></path>
|
||||||
|
<path d="M149.508052,20.786111 C146.932844,20.8988821 145.560557,21.6284773 145.564642,23.2098363 C145.568819,24.7732545 146.830398,25.5643612 149.299854,25.6164751 C150.854727,25.6497938 151.653645,25.9804068 151.653645,23.3029579 C151.653645,21.2268237 151.390093,20.7040956 149.508052,20.786111 Z M145.242477,29.5438157 C141.949318,28.9030706 140.121805,26.6655885 140.14659,23.384119 C140.171376,20.2008971 141.955928,18.0659342 145.201994,17.440567 C146.276856,17.2338199 147.378982,17.1509501 148.47202,17.0885843 C149.479962,17.0304901 150.49286,17.0757694 151.504932,17.0757694 C151.215769,13.5226239 150.625049,13.3218571 142.672227,14.1138181 C142.538385,13.4534235 142.367366,12.7810682 142.274007,12.0967524 C142.179823,11.4090193 142.162473,10.7101799 142.098031,9.82851455 C145.837328,8.87423144 149.494007,8.3291709 153.181254,9.87806551 C155.151697,10.7050539 156.428973,12.3351096 156.519027,14.3684075 C156.729703,19.1663072 156.586774,23.9804391 156.586774,28.9141768 C152.857391,29.7411652 149.085047,30.2930604 145.242477,29.5438157 Z" id="Fill-17备份"></path>
|
||||||
|
<path d="M214.368819,9.69369425 L221.009306,9.69369425 L221.009306,14.1842677 L214.659803,14.1842677 C214.659803,17.2278693 214.46217,20.0881822 214.726242,22.9064564 C214.912101,24.8906828 216.670619,25.2673495 218.414,25.1378703 C219.297043,25.07229 220.169154,24.8646188 221.178346,24.6998271 C221.447464,26.0938303 221.682942,27.3104301 221.95122,28.6918217 C218.65957,30.1530867 215.340167,30.4170898 212.263812,28.7515166 C210.96784,28.0503112 209.500306,26.2636666 209.442277,24.9133837 C209.153817,18.2393203 209.311082,11.5459192 209.311082,4.69193022 C210.769366,4.43885727 212.402576,4.157198 214.368819,3.81668457 L214.368819,9.69369425 Z" id="Fill-19"></path>
|
||||||
|
<path d="M247.317073,29.2612484 L247.317073,19.8647936 L247.317073,13.6517012 C247.317073,10.1104359 247.31206,10.0838292 250.648221,9.42209492 C253.724541,8.8118575 256.802532,8.55179851 260,9.73279246 C259.7176,11.2193343 259.458594,12.5882916 259.207944,13.908327 L252.803818,13.908327 L252.803818,29.2612484 L247.317073,29.2612484 Z" id="Fill-25"></path>
|
||||||
|
<path d="M175.02439,29.2612484 L175.02439,19.8647936 L175.02439,13.6517012 C175.02439,10.1104359 175.019377,10.0838292 178.355538,9.42209492 C181.431858,8.8118575 184.509849,8.55179851 187.707317,9.73279246 C187.424917,11.2193343 187.165912,12.5882916 186.915261,13.908327 L180.511135,13.908327 L180.511135,29.2612484 L175.02439,29.2612484 Z" id="Fill-25备份"></path>
|
||||||
|
<path d="M159.804878,29.2612484 L159.804878,19.8647936 L159.804878,13.6517012 C159.804878,10.1104359 159.799865,10.0838292 163.136026,9.42209492 C166.212346,8.8118575 169.290337,8.55179851 172.487805,9.73279246 C172.205405,11.2193343 171.946399,12.5882916 171.695749,13.908327 L165.291623,13.908327 L165.291623,29.2612484 L159.804878,29.2612484 Z" id="Fill-25备份-2"></path>
|
||||||
|
<path d="M89.4146341,29.2612484 L89.4146341,19.8647936 L89.4146341,13.6517012 C89.4146341,10.1104359 89.4096212,10.0838292 92.7457824,9.42209492 C95.8221023,8.8118575 98.9000932,8.55179851 102.097561,9.73279246 C101.815161,11.2193343 101.556155,12.5882916 101.305505,13.908327 L94.9013786,13.908327 L94.9013786,29.2612484 L89.4146341,29.2612484 Z" id="Fill-25备份-3"></path>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 15 KiB |
@@ -1,14 +1,31 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<svg width="36px" height="27px" viewBox="0 0 36 27" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
<svg width="96px" height="77px" viewBox="0 0 96 77" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||||
<title>编组 8</title>
|
<title>编组 2</title>
|
||||||
<g id="Dashboards-重构" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
<defs>
|
||||||
<g id="Network-Analytics_Network-Overview" transform="translate(-62.000000, -17.000000)">
|
<filter x="-17.8%" y="-24.0%" width="135.5%" height="147.9%" filterUnits="objectBoundingBox" id="filter-1">
|
||||||
<g id="编组-8" transform="translate(62.000000, 17.000000)">
|
<feOffset dx="0" dy="2" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
|
||||||
<g id="编组-6" transform="translate(16.714286, 0.000000)" fill="#38ACD2">
|
<feGaussianBlur stdDeviation="2.5" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
|
||||||
<path d="M17.2339653,0.0225148942 C18.7034774,0.013513634 19.3088605,0.693517934 19.2850395,2.16154166 C19.2324689,5.36517202 19.2686112,8.56962068 19.2694326,11.773251 C19.2694326,14.7731256 19.2776468,17.7721819 19.2669684,20.7720564 C19.2579328,23.2081248 19.0476504,23.410244 16.5275481,23.4192453 C14.3379832,23.4271009 12.1463155,23.468474 9.95759183,23.4373656 L9.81338222,23.4344346 C9.76856364,23.4387551 9.72312343,23.4409659 9.67716346,23.4409659 C8.90768211,23.4409659 8.28389423,22.8212427 8.28389423,22.0567754 C8.28389423,21.2923081 8.90768211,20.6725848 9.67716346,20.6725848 L9.642,20.674 L9.64253362,20.6690886 C11.7876709,20.6656961 13.9312779,20.8521924 16.054746,20.5879296 L16.4675847,20.530659 L16.4675847,2.93155856 C12.9642481,2.93155856 9.44694746,2.72534787 5.97071757,3.0133882 C4.06914096,3.1713194 2.81812533,4.79727433 2.77705456,6.76036737 C2.6828656,11.222083 2.72821584,15.6850917 2.7394565,20.3677855 L2.74,20.913 L0.21065723,20.9133136 L0.209644072,25.711202 C0.0552591026,25.2549048 0.0534654644,24.654429 0.0491340779,24.2416331 C-0.0141149065,18.6526688 -0.00836499885,13.0628862 0.0220273703,7.47310352 C0.0458484163,3.2858809 2.94380188,0.227907288 7.17573393,0.0650663065 C10.5246444,-0.0634062267 13.8809477,0.0413357112 17.2339653,0.0225148942 Z" id="形状结合"></path>
|
<feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.5 0" type="matrix" in="shadowBlurOuter1" result="shadowMatrixOuter1"></feColorMatrix>
|
||||||
|
<feMerge>
|
||||||
|
<feMergeNode in="shadowMatrixOuter1"></feMergeNode>
|
||||||
|
<feMergeNode in="SourceGraphic"></feMergeNode>
|
||||||
|
</feMerge>
|
||||||
|
</filter>
|
||||||
|
</defs>
|
||||||
|
<g id="🪁login" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||||
|
<g id="登录定" transform="translate(-912.000000, -321.000000)">
|
||||||
|
<g id="编组-29备份-2" transform="translate(-92.000000, 0.483548)">
|
||||||
|
<g id="编组-3" transform="translate(845.000000, 261.000000)">
|
||||||
|
<g id="logo" transform="translate(77.000000, 70.000000)">
|
||||||
|
<g id="编组-2" filter="url(#filter-1)" transform="translate(92.000000, 0.000000)">
|
||||||
|
<g id="编组-6" transform="translate(35.050168, 0.000000)" fill="#07C8EA">
|
||||||
|
<path d="M27.0984325,0.0122014594 L31.8461546,0.0441807494 C33.4287159,0.0529564615 35.0111814,0.057058831 36.5933025,0.0481199837 C39.7135537,0.0288820298 40.9989786,1.482222 40.9483988,4.6197574 C40.8553785,10.3255597 40.893168,16.0325764 40.9093577,21.7387835 L40.9152603,25.1623944 L40.9214617,37.9840697 L40.9100279,44.3951016 C40.8908425,49.6015915 40.4443448,50.033571 35.0933494,50.052809 C30.3405147,50.0699729 25.5830136,50.1620025 20.8322952,50.0868551 L20.7215855,50.0942095 L20.7215855,50.0942095 L20.5477593,50.0992315 C18.9139006,50.0992315 17.5893964,48.7747273 17.5893964,47.1408687 C17.5893964,45.50701 18.9139006,44.1825058 20.5477593,44.1825058 L20.474,44.184 L20.4742959,44.1750333 C21.1471703,44.1739628 21.8199738,44.181749 22.4925791,44.1939776 L23.5363069,44.2159125 C27.0892892,44.2985782 30.6348941,44.4415229 34.1543247,43.9933811 L34.9660278,43.8791747 L34.9660278,6.26547692 C33.1063476,6.26547692 31.2448143,6.23793166 29.3832537,6.20623276 L26.5911206,6.15849312 C21.9382921,6.0834815 17.2909993,6.05560833 12.6777715,6.44036741 C8.6401071,6.77790605 5.98379485,10.2529801 5.89658827,14.448603 C5.6888441,24.353954 5.80079615,34.2622872 5.81918245,44.6967563 L0.447293679,44.6970037 L0.446704038,54.9559323 C0.117345075,53.9801448 0.113539117,52.6941057 0.104327596,51.8104584 C-0.0299705283,39.8654379 -0.0177616079,27.9186685 0.0467712572,15.9718991 C0.0973510704,7.02275274 6.25064696,0.487095115 15.2364124,0.139063039 C19.1868702,-0.0134803334 23.1421729,-0.0121848483 27.0984325,0.0122014594 Z" id="形状结合"></path>
|
||||||
</g>
|
</g>
|
||||||
<g id="编组-6" fill="#427497">
|
<g id="编组-6" fill="#427497">
|
||||||
<path d="M19.2796515,7.71047301 C19.2796515,8.48046919 18.6655184,9.10467443 17.9079467,9.10467443 C17.1503751,9.10467443 16.536242,8.48046919 16.536242,7.71047301 C16.536242,7.70438876 16.5362803,7.69831361 16.5363568,7.6922478 L16.5373057,7.70225534 C16.532813,7.44217878 16.5278999,7.18214774 16.5225344,6.92212099 C16.4814291,4.91205752 15.2293621,3.24719877 13.3261873,3.08548879 C11.2386964,2.90852947 9.13640761,2.91375781 7.03121842,2.94625398 L4.92550309,2.98210165 C4.22356947,2.99325545 3.52175425,3.00170123 2.82049805,3.00170123 L2.82049805,21.021891 C4.19690236,21.2379613 5.58229019,21.2420622 6.97158301,21.2130673 L7.80558667,21.1931298 L8.53591703,21.1759185 C11.2145687,21.1207428 13.9006337,21.191491 16.557885,22.6641271 L16.559,21.413 C16.5761661,20.6622764 17.180207,20.0580137 17.9231037,20.0580137 C18.6756527,20.0580137 19.2857143,20.6780806 19.2857143,21.4429718 C19.2857143,21.4721841 19.2848245,21.5011851 19.2830709,21.5299484 L19.2826266,21.4139472 C19.2751561,22.549879 19.2653122,23.6857843 19.2527476,24.8216567 C19.2453486,25.5430675 19.2453486,26.8242918 18.4807903,26.9758347 C17.716232,27.1273777 16.923722,26.5359501 16.3827764,26.044955 C14.8174871,24.6264316 13.1066851,23.8857497 10.9782533,23.9586448 C8.24228541,24.0533248 5.49974066,23.9896462 2.76048433,23.9795917 C0.238263922,23.9703751 0.0278048523,23.7634198 0.0187616892,21.2690643 C0.00807431458,18.1974125 0.016295372,15.1265985 0.016295372,12.0549467 C0.0171174777,8.77466386 0.0532901303,5.49354316 0.000675362917,2.21326033 C-0.0231657035,0.710111565 0.582726227,0.0138369713 2.0534734,0.0230536025 C5.40930903,0.0423247405 8.76843308,-0.0649233317 12.1201582,0.0666231318 C16.355647,0.233360369 19.256036,3.36450135 19.2798771,7.65191061 Z" id="形状结合"></path>
|
<path d="M25.7134192,0.139063039 C34.6991847,0.487095115 40.8524806,7.02275274 40.9030604,15.9718991 L40.904,16.078 L40.902,16.078 L40.9025818,16.0941369 C40.9025818,17.6439559 39.6910759,18.9108125 38.1634453,18.9993255 L37.9924532,19.0042656 C36.3852335,19.0042656 35.0823245,17.7013566 35.0823245,16.0941369 C35.0823245,16.0780245 35.0824554,16.0619426 35.0827163,16.0458923 L35.0846058,16.0783793 C35.0750677,15.535054 35.0646363,14.991824 35.0532433,14.448603 C34.9660368,10.2529801 32.3097245,6.77790605 28.2720601,6.44036741 C23.6588323,6.05560833 19.0115395,6.0834815 14.358711,6.15849312 L11.566578,6.20623276 C9.70501736,6.23793166 7.84348402,6.26547692 5.98380382,6.26547692 L5.98380382,43.8791747 C9.76950351,44.4638711 13.587236,44.3049371 17.4135248,44.2159125 L18.4572525,44.1939776 C24.024744,44.0927552 29.6058224,44.2959137 35.128241,47.3070283 C35.128241,46.4331109 35.1291226,45.5631201 35.1306492,44.6967563 C35.1675419,43.1280395 36.4488408,41.8672653 38.0246093,41.8672653 C39.6211734,41.8672653 40.9154443,43.1615363 40.9154443,44.7581003 C40.9154443,44.8307331 40.9127656,44.9027403 40.9075017,44.9740284 L40.9088955,44.6972456 C40.8930463,47.0683764 40.8721613,49.4394518 40.845504,51.8104584 C40.8298068,53.3162655 40.8298068,55.990576 39.2077646,56.3068929 C37.5857223,56.6232099 35.9043795,55.3887179 34.756741,54.3638596 C31.4359146,51.4029636 27.806377,49.8569316 23.2908206,50.0090864 C17.486351,50.2067126 11.6679283,50.0737959 5.85648222,50.052809 C0.505486811,50.033571 0.0589891496,49.6015915 0.0398037033,44.3951016 C0.0171299939,37.9836163 0.0345713088,31.5738798 0.0345713088,25.1623944 C0.0363154403,18.3154317 0.113057226,11.4667201 0.00143281049,4.6197574 C-0.0491470027,1.482222 1.2362779,0.0288820298 4.35652914,0.0481199837 C5.93865019,0.057058831 7.52111576,0.0529564615 9.10367704,0.0441807494 L13.8513991,0.0122014594 C17.8076588,-0.0121848483 21.7629614,-0.0134803334 25.7134192,0.139063039 Z" id="形状结合"></path>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
</g>
|
</g>
|
||||||
</g>
|
</g>
|
||||||
</g>
|
</g>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 5.2 KiB |
35
src/App.vue
@@ -5,6 +5,9 @@
|
|||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { storageKey } from '@/utils/constants'
|
import { storageKey } from '@/utils/constants'
|
||||||
|
import router from '@/router'
|
||||||
|
import { post } from '@/utils/http'
|
||||||
|
import { api } from '@/utils/api'
|
||||||
const dayjs = require('dayjs')
|
const dayjs = require('dayjs')
|
||||||
const utc = require('dayjs/plugin/utc')
|
const utc = require('dayjs/plugin/utc')
|
||||||
const timezone = require('dayjs/plugin/timezone')
|
const timezone = require('dayjs/plugin/timezone')
|
||||||
@@ -26,7 +29,37 @@ export default {
|
|||||||
} else {
|
} else {
|
||||||
window.$dayJs.tz.setDefault()
|
window.$dayJs.tz.setDefault()
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
mounted () {
|
||||||
|
this.loginAlready()
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
/**
|
||||||
|
* 已经登录判断
|
||||||
|
* 如果已经登录,新打开页面按url打开,否则进入首页
|
||||||
|
*/
|
||||||
|
loginAlready () {
|
||||||
|
// 登录判断在router/index.js下操作更合适,但该文件内引入post等方法会导致路由报错,
|
||||||
|
// 目前不知道其原因,后续解决该问题后,将登录操作移入router
|
||||||
|
const url = window.location.href
|
||||||
|
const currentPath = url.match(/#(\S*)/)[1]
|
||||||
|
|
||||||
|
if (currentPath === '/' || currentPath === '/login') {
|
||||||
|
if (localStorage.getItem(storageKey.token) !== null) {
|
||||||
|
// 刚进入会请求失败,故采用延时,请求成功清除延时器,避免内存泄漏
|
||||||
|
const timer = setTimeout(() => {
|
||||||
|
post(api.permissions, { token: localStorage.getItem(storageKey.token) }).then(res => {
|
||||||
|
if (res.code === 200) {
|
||||||
|
router.push({
|
||||||
|
path: '/panel/networkOverview'
|
||||||
|
})
|
||||||
|
clearTimeout(timer)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}, 10)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
118
src/Login.vue
@@ -2,12 +2,12 @@
|
|||||||
<div class="logins">
|
<div class="logins">
|
||||||
<div class="inside">
|
<div class="inside">
|
||||||
<div class="title">
|
<div class="title">
|
||||||
<img src="../public/images/cion.png" />
|
<img src="../public/images/logo-title.svg" />
|
||||||
</div>
|
</div>
|
||||||
<el-form class="login__box">
|
<el-form class="login__box">
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-input
|
<el-input
|
||||||
prefix-icon="el-icon-user"
|
prefix-icon="cn-icon cn-icon-user2"
|
||||||
class="login--input login__input"
|
class="login--input login__input"
|
||||||
v-model="username"
|
v-model="username"
|
||||||
></el-input>
|
></el-input>
|
||||||
@@ -40,6 +40,7 @@
|
|||||||
<script>
|
<script>
|
||||||
import { mapActions } from 'vuex'
|
import { mapActions } from 'vuex'
|
||||||
import { post, get } from '@/utils/http'
|
import { post, get } from '@/utils/http'
|
||||||
|
import axios from 'axios'
|
||||||
import { useRouter } from 'vue-router'
|
import { useRouter } from 'vue-router'
|
||||||
import { storageKey } from '@/utils/constants'
|
import { storageKey } from '@/utils/constants'
|
||||||
import { api } from '@/utils/api'
|
import { api } from '@/utils/api'
|
||||||
@@ -69,21 +70,21 @@ export default {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
this.loading = true
|
this.loading = true
|
||||||
post(api.login, { username: this.username, pin: this.pin }).then(
|
axios.post(api.login, { username: this.username, pin: this.pin }).then(
|
||||||
res => {
|
res => {
|
||||||
if (res.code === 200) {
|
if (res.data.code === 200) {
|
||||||
if (!_.isEmpty(res.data.lang)) {
|
if (!_.isEmpty(res.data.data.lang)) {
|
||||||
localStorage.setItem(storageKey.language, res.data.lang)
|
localStorage.setItem(storageKey.language, res.data.data.lang)
|
||||||
}
|
}
|
||||||
if (!_.isEmpty(res.data.theme)) {
|
if (!_.isEmpty(res.data.data.theme)) {
|
||||||
localStorage.setItem(storageKey.theme, res.data.theme)
|
localStorage.setItem(storageKey.theme, res.data.data.theme)
|
||||||
}
|
}
|
||||||
res.loginSuccessPath = this.$route.query.redirect
|
res.loginSuccessPath = this.$route.query.redirect
|
||||||
this.loginSuccess(res)
|
this.loginSuccess(res)
|
||||||
localStorage.setItem(storageKey.username, this.username)
|
localStorage.setItem(storageKey.username, this.username)
|
||||||
localStorage.setItem(storageKey.userId, res.data.userId)
|
localStorage.setItem(storageKey.userId, res.data.data.userId)
|
||||||
localStorage.setItem(storageKey.token, res.data.token)
|
localStorage.setItem(storageKey.token, res.data.data.token)
|
||||||
} else if (res.code === 518005) {
|
} else if (res.data.code === 518005) {
|
||||||
this.$message.error(this.$t('Incorrect username or password'))
|
this.$message.error(this.$t('Incorrect username or password'))
|
||||||
this.loading = false
|
this.loading = false
|
||||||
this.blockOperation.query = false
|
this.blockOperation.query = false
|
||||||
@@ -97,7 +98,7 @@ export default {
|
|||||||
console.error(e)
|
console.error(e)
|
||||||
this.loading = false
|
this.loading = false
|
||||||
this.blockOperation.query = false
|
this.blockOperation.query = false
|
||||||
this.$message.error(this.$t('tip.unknownError'))
|
this.$message.error(this.errorMsgHandler(e))
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
queryAppearance () {
|
queryAppearance () {
|
||||||
@@ -119,7 +120,7 @@ export default {
|
|||||||
window.$dayJs.tz.setDefault(data.timezone)
|
window.$dayJs.tz.setDefault(data.timezone)
|
||||||
localStorage.setItem(storageKey.timezoneOffset, window.$dayJs.tz().utcOffset() / 60)
|
localStorage.setItem(storageKey.timezoneOffset, window.$dayJs.tz().utcOffset() / 60)
|
||||||
localStorage.setItem(storageKey.timezoneLocalOffset, dayjs().utcOffset() / 60)
|
localStorage.setItem(storageKey.timezoneLocalOffset, dayjs().utcOffset() / 60)
|
||||||
localStorage.setItem(storageKey.dateFormat, data.dateFormat)
|
localStorage.setItem(storageKey.dateFormat, data.date_format)
|
||||||
localStorage.setItem(storageKey.sysName, data.system_name)
|
localStorage.setItem(storageKey.sysName, data.system_name)
|
||||||
localStorage.setItem(storageKey.sysLogo, data.system_logo)
|
localStorage.setItem(storageKey.sysLogo, data.system_logo)
|
||||||
}
|
}
|
||||||
@@ -136,7 +137,7 @@ export default {
|
|||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style>
|
<style scoped>
|
||||||
.logins {
|
.logins {
|
||||||
background-color: #000C18;
|
background-color: #000C18;
|
||||||
background-size: auto;
|
background-size: auto;
|
||||||
@@ -146,48 +147,89 @@ export default {
|
|||||||
height: 100%;
|
height: 100%;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
margin: auto;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep .el-input__inner {
|
||||||
|
background-color: #0B325C !important;
|
||||||
|
border: none;
|
||||||
|
border-radius: 0px;
|
||||||
|
border-bottom: 1px solid #295688;
|
||||||
|
font-size: 14px;
|
||||||
|
line-height: 14px;
|
||||||
|
}
|
||||||
|
:deep .el-input__inner:hover {
|
||||||
|
border-color: #295688;
|
||||||
|
}
|
||||||
|
:deep .el-input__inner:focus {
|
||||||
|
border-color: #295688;
|
||||||
|
}
|
||||||
|
.el-button--primary:hover, .el-button--primary:focus, .el-button--primary:active {
|
||||||
|
background: #21B4ED;
|
||||||
|
border-color: #21B4ED;
|
||||||
|
color: #FFFFFF;
|
||||||
|
}
|
||||||
|
:deep .el-loading-mask {
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
:deep input {
|
||||||
|
-webkit-text-fill-color: rgba(231,234,237, .8) !important;
|
||||||
|
transition: background-color 500000000000000000s ease-in-out 0s !important;
|
||||||
|
caret-color: #fff ;
|
||||||
|
}
|
||||||
.inside {
|
.inside {
|
||||||
opacity: 0.78;
|
width: 414px;
|
||||||
background: #051a37;
|
height: 524px;
|
||||||
border-radius: 6px;
|
background: #0B325C;
|
||||||
width: 368px;
|
border: 1px solid rgba(103,179,245,0.65);
|
||||||
height: 400px;
|
box-shadow: 0 2px 4px 0 rgba(0,0,0,0.38);
|
||||||
/* margin-top:340px; */
|
border-radius: 4px;
|
||||||
|
}
|
||||||
|
.inside {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: space-between;
|
||||||
}
|
}
|
||||||
.inside > div {
|
.inside > div {
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
||||||
.title {
|
.title {
|
||||||
margin-top: 70px;
|
margin-top: 65px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
|
||||||
}
|
}
|
||||||
.title > img {
|
.title > img {
|
||||||
height: 43px;
|
height: 135px;
|
||||||
width: 248px;
|
|
||||||
}
|
|
||||||
.login--input{
|
|
||||||
width: 300px;
|
|
||||||
height: 40px;
|
|
||||||
}
|
|
||||||
.login__input:first-of-type{
|
|
||||||
margin-top: 45.57px;
|
|
||||||
}
|
}
|
||||||
.login__box {
|
.login__box {
|
||||||
width: 300px;
|
display: flex;
|
||||||
height: 250px;
|
justify-content: center;
|
||||||
margin: auto;
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
:deep .el-form-item {
|
||||||
|
width: 334px;
|
||||||
|
margin-bottom: 25px;
|
||||||
|
}
|
||||||
|
:deep .el-input__prefix {
|
||||||
|
color: #6DBBFF;
|
||||||
|
}
|
||||||
|
:deep .el-input__prefix i {
|
||||||
|
width: 17px;
|
||||||
|
font-size: 17px;
|
||||||
|
}
|
||||||
|
.login__box .el-form-item:nth-of-type(3) {
|
||||||
|
margin-top: 25px;
|
||||||
|
margin-bottom: 65px;
|
||||||
}
|
}
|
||||||
.login--button {
|
.login--button {
|
||||||
background: #0091ff;
|
background: #21B4ED;
|
||||||
color: #fff;
|
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
border: 0;
|
border: 0;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
text-align: center;
|
font-size: 16px;
|
||||||
|
color: #FFFFFF;
|
||||||
|
line-height: 22px;
|
||||||
|
width: 334px;
|
||||||
|
height: 52px;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
121
src/Test.vue
Normal file
@@ -0,0 +1,121 @@
|
|||||||
|
<template>
|
||||||
|
<span test-id="count">{{count}}</span>
|
||||||
|
<span test-id="id">{{obj.id}}</span>
|
||||||
|
<span test-id="title">{{obj.title}}</span>
|
||||||
|
<button test-id="button" @click="click">click</button>
|
||||||
|
<span test-id="tab">{{lineTab}}</span>
|
||||||
|
<el-table
|
||||||
|
:data="tableData"
|
||||||
|
class="test-table"
|
||||||
|
height="100%"
|
||||||
|
empty-text=" "
|
||||||
|
>
|
||||||
|
<template v-for="(item, index) in tableTitles" :key="index">
|
||||||
|
<el-table-column>
|
||||||
|
<template #default="scope" :column="item">
|
||||||
|
<span :test-id="`${item.prop}${scope.$index}`">{{scope.row[item.prop]}}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</template>
|
||||||
|
</el-table>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
/* vue-jest的测试示例 */
|
||||||
|
import { useRoute, useRouter } from 'vue-router'
|
||||||
|
import axios from 'axios'
|
||||||
|
import { ref } from 'vue'
|
||||||
|
import indexedDBUtils from '@/indexedDB'
|
||||||
|
export default {
|
||||||
|
name: 'Test',
|
||||||
|
data () {
|
||||||
|
return {
|
||||||
|
count: 0,
|
||||||
|
obj: { id: 1, title: 'title' },
|
||||||
|
differentParamData0: null,
|
||||||
|
differentParamData1: null,
|
||||||
|
indexedDBValue: null,
|
||||||
|
tableData: [
|
||||||
|
{
|
||||||
|
name: 'a',
|
||||||
|
age: 10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'b',
|
||||||
|
age: 11
|
||||||
|
}
|
||||||
|
],
|
||||||
|
tableTitles: [
|
||||||
|
{ label: 'Name', prop: 'name' },
|
||||||
|
{ label: 'Age', prop: 'age' }
|
||||||
|
],
|
||||||
|
mergeRequestData0: null,
|
||||||
|
mergeRequestData1: null,
|
||||||
|
mergeRequestChildData0: null,
|
||||||
|
mergeRequestChildData1: null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
click () {
|
||||||
|
this.count++
|
||||||
|
},
|
||||||
|
async getObj () {
|
||||||
|
axios.get('/api/getObjId').then(response => {
|
||||||
|
this.obj.id = response.data
|
||||||
|
})
|
||||||
|
axios.get('/api/getObjTitle').then(response => {
|
||||||
|
this.obj.title = response.data
|
||||||
|
})
|
||||||
|
},
|
||||||
|
async getCount () {
|
||||||
|
axios.get('/api/getCount').then(response => {
|
||||||
|
this.count = response.data
|
||||||
|
})
|
||||||
|
},
|
||||||
|
async differentRequestParam () {
|
||||||
|
axios.get('/api/differentParam', { params: { name: 0 } }).then(response => {
|
||||||
|
this.differentParamData0 = response.data
|
||||||
|
})
|
||||||
|
axios.get('/api/differentParam', { params: { name: 1 } }).then(response => {
|
||||||
|
this.differentParamData1 = response.data
|
||||||
|
})
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* 同一url,不同入参的axios请求内包含多个不同url请求的demo
|
||||||
|
* @returns {Promise<void>}
|
||||||
|
*/
|
||||||
|
async mergeRequest () {
|
||||||
|
axios.get('/api/differentParam', { params: { name: 0 } }).then(response => {
|
||||||
|
this.mergeRequestData0 = response.data
|
||||||
|
})
|
||||||
|
axios.get('/api/differentParam', { params: { name: 1 } }).then(response => {
|
||||||
|
this.mergeRequestData1 = response.data
|
||||||
|
axios.get('/api/getChildId').then(response1 => {
|
||||||
|
this.mergeRequestChildData0 = response1.data
|
||||||
|
})
|
||||||
|
axios.get('/api/getChildTitle').then(response2 => {
|
||||||
|
this.mergeRequestChildData1 = response2.data
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
async setIndexedDBValue () {
|
||||||
|
await indexedDBUtils.selectTable('test').put({ id: 1, name: 'test' })
|
||||||
|
},
|
||||||
|
async getIndexedDBValue () {
|
||||||
|
this.indexedDBValue = await indexedDBUtils.selectTable('test').get(1)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
setup () {
|
||||||
|
const { query } = useRoute()
|
||||||
|
const { currentRoute } = useRouter()
|
||||||
|
const localstorageValue = localStorage.getItem('key')
|
||||||
|
const lineTab = ref(query.lineTab || '')
|
||||||
|
const path = currentRoute.value.path
|
||||||
|
return {
|
||||||
|
lineTab,
|
||||||
|
path,
|
||||||
|
localstorageValue
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
@@ -4,7 +4,7 @@
|
|||||||
display: none !important;
|
display: none !important;
|
||||||
}
|
}
|
||||||
* {
|
* {
|
||||||
font-family: NotoSansSChineseRegular;
|
font-family: NotoSansSChineseRegular, serif;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
}
|
}
|
||||||
html, body, #app {
|
html, body, #app {
|
||||||
@@ -43,3 +43,29 @@ body {
|
|||||||
.el-form-item__error {
|
.el-form-item__error {
|
||||||
padding-top: 0 !important;
|
padding-top: 0 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* 请求报错样式关于popover的修改 */
|
||||||
|
.error-popover {
|
||||||
|
//min-width: 30px !important;
|
||||||
|
display: inline-block;
|
||||||
|
background: #FFE7E6 !important;
|
||||||
|
border: 1px solid rgba(226,97,84,0.42) !important;
|
||||||
|
padding: 6.6px 12px !important;
|
||||||
|
border-radius: 4px !important;
|
||||||
|
font-size: 14px !important;
|
||||||
|
color: #F53A19 !important;
|
||||||
|
font-weight: 400 !important;
|
||||||
|
line-height: 1.2 !important;
|
||||||
|
.el-popper__arrow {
|
||||||
|
display: none !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 表头单词换行不被拆开
|
||||||
|
.el-table th > .cell {
|
||||||
|
word-break: keep-all !important;
|
||||||
|
}
|
||||||
|
// 表格内容换行,不对中文生效,避免中文出现省略号
|
||||||
|
.el-table .cell {
|
||||||
|
word-break: break-word !important;
|
||||||
|
}
|
||||||
|
|||||||
@@ -14,9 +14,8 @@
|
|||||||
z-index: 0;
|
z-index: 0;
|
||||||
}
|
}
|
||||||
.main-container {
|
.main-container {
|
||||||
padding: 10px;
|
padding: 0;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
background-color: #f6f6f6;
|
|
||||||
&>div {
|
&>div {
|
||||||
background-color: white;
|
background-color: white;
|
||||||
}
|
}
|
||||||
@@ -36,7 +35,7 @@
|
|||||||
align-items : center;
|
align-items : center;
|
||||||
position: relative;
|
position: relative;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
padding: 14px 20px;
|
padding: 12px 20px;
|
||||||
|
|
||||||
&.top-tools--sub {
|
&.top-tools--sub {
|
||||||
align-items: center;
|
align-items: center;
|
||||||
@@ -50,6 +49,12 @@
|
|||||||
.top-tool-btn {
|
.top-tool-btn {
|
||||||
border-left: none;
|
border-left: none;
|
||||||
}
|
}
|
||||||
|
.top-tool-btn--search:hover {
|
||||||
|
border-left: none !important;
|
||||||
|
}
|
||||||
|
.top-tool-btn--search:focus {
|
||||||
|
border-left: none !important;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.top-tool-right {
|
.top-tool-right {
|
||||||
@@ -74,17 +79,28 @@
|
|||||||
}
|
}
|
||||||
.top-tool-btn {
|
.top-tool-btn {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
height: 33px;
|
height: 28px;
|
||||||
width: 36px;
|
width: 72px;
|
||||||
border: 1px solid $--border-color-primary;
|
border: 1px solid $--border-color-primary;
|
||||||
outline: none;
|
outline: none;
|
||||||
border-radius: $--button-border-radius;
|
border-radius: $--button-border-radius;
|
||||||
background-color: $--button-gray-background-color;
|
background-color: $--button-gray-background-color;
|
||||||
transition: background-color linear .1s;
|
transition: background-color linear .1s;
|
||||||
|
font-size:12px;
|
||||||
|
font-weight: 500;
|
||||||
|
font-family: NotoSansHans-Medium !important;
|
||||||
i {
|
i {
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
color: $--button-gray-color;
|
color: #575757;
|
||||||
|
margin-right:4px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.top-tool-btn:disabled {
|
||||||
|
cursor: not-allowed;
|
||||||
|
opacity: 0.66;
|
||||||
|
i {
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -94,13 +110,14 @@
|
|||||||
color: #666;
|
color: #666;
|
||||||
}
|
}
|
||||||
.top-tool-btn:hover:not(.cn-btn-disabled) {
|
.top-tool-btn:hover:not(.cn-btn-disabled) {
|
||||||
|
border: 1px solid $--border-color-primary;
|
||||||
background-color: $--button-gray-hover-background-color;
|
background-color: $--button-gray-hover-background-color;
|
||||||
}
|
}
|
||||||
.top-tool-btn:focus:not(.cn-btn-disabled), .top-tool-btn.is-focus {
|
.top-tool-btn:focus:not(.cn-btn-disabled), .top-tool-btn.is-focus {
|
||||||
background-color: $--button-gray-hover-background-color;
|
background-color: $--button-gray-active-background-color;
|
||||||
border: 1px solid $--color-primary !important;
|
border: 1px solid $--border-color-primary;
|
||||||
i {
|
i {
|
||||||
color: $--button-gray-active-color;
|
color: #575757;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.top-tool-btn--delete.top-tool-btn:focus:not(.cn-btn-disabled) {
|
.top-tool-btn--delete.top-tool-btn:focus:not(.cn-btn-disabled) {
|
||||||
@@ -111,6 +128,56 @@
|
|||||||
color: #F0745A;
|
color: #F0745A;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.top-tool-btn--create {
|
||||||
|
background-color: #38ACD2 !important;
|
||||||
|
border-color: #2E88A6 !important;
|
||||||
|
color:#FFFFFF;
|
||||||
|
i {
|
||||||
|
color: #FFFFFF;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.top-tool-btn--create:hover {
|
||||||
|
background-color: #57B8D9 !important;
|
||||||
|
border-color: #2E88A6 !important;
|
||||||
|
color:#FFFFFF;
|
||||||
|
i {
|
||||||
|
color: #FFFFFF;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.top-tool-btn--create:focus {
|
||||||
|
background-color: #31A5CD !important;
|
||||||
|
border-color: #2E88A6 !important;
|
||||||
|
color:#FFFFFF !important;
|
||||||
|
i {
|
||||||
|
color: #FFFFFF !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.top-tool-btn--create:disabled {
|
||||||
|
opacity: 0.66;
|
||||||
|
background-color: #38ACD2 !important;
|
||||||
|
border-color: #2E88A6 !important;
|
||||||
|
color:#FFFFFF;
|
||||||
|
i {
|
||||||
|
color: #FFFFFF;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-customize {
|
||||||
|
color:$blue;
|
||||||
|
font-size: 12px;
|
||||||
|
.icon-gear{
|
||||||
|
color:#2C72C6;
|
||||||
|
width:12px;
|
||||||
|
height:12px;
|
||||||
|
margin-right:2px;
|
||||||
|
font-size:12px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-customize:hover {
|
||||||
|
cursor:pointer;
|
||||||
|
}
|
||||||
|
|
||||||
.top-tool-btn--dropdown {
|
.top-tool-btn--dropdown {
|
||||||
position: relative;
|
position: relative;
|
||||||
width: auto;
|
width: auto;
|
||||||
@@ -130,6 +197,7 @@
|
|||||||
width: calc(100% - 40px);
|
width: calc(100% - 40px);
|
||||||
border: 1px solid $--right-box-border-color;
|
border: 1px solid $--right-box-border-color;
|
||||||
border-bottom: none;
|
border-bottom: none;
|
||||||
|
border-radius:4px;
|
||||||
|
|
||||||
.caret-wrapper {
|
.caret-wrapper {
|
||||||
height: 23px;
|
height: 23px;
|
||||||
@@ -152,7 +220,8 @@
|
|||||||
th {
|
th {
|
||||||
border-color: $--right-box-border-color;
|
border-color: $--right-box-border-color;
|
||||||
padding: 8px 0;
|
padding: 8px 0;
|
||||||
background: #F9F9F9;
|
background: #FFF;
|
||||||
|
border-right:0px;
|
||||||
}
|
}
|
||||||
.el-table__header th:first-of-type {
|
.el-table__header th:first-of-type {
|
||||||
border-left: none;
|
border-left: none;
|
||||||
@@ -244,7 +313,7 @@
|
|||||||
border-right: none !important;
|
border-right: none !important;
|
||||||
}
|
}
|
||||||
/* 最后一列用box-shadow模拟边框 */
|
/* 最后一列用box-shadow模拟边框 */
|
||||||
.el-table:not(.no-operation):not(.chart-table).el-table--border .el-table__body-wrapper td:nth-last-child(2) {
|
/*.el-table:not(.no-operation):not(.chart-table).el-table--border .el-table__body-wrapper td:nth-last-child(2) {
|
||||||
box-shadow: 1px 0 $--right-box-border-color;
|
box-shadow: 1px 0 $--right-box-border-color;
|
||||||
}
|
}
|
||||||
.el-table:not(.no-operation):not(.chart-table).el-table--border .el-table__header-wrapper th:nth-last-child(3) {
|
.el-table:not(.no-operation):not(.chart-table).el-table--border .el-table__header-wrapper th:nth-last-child(3) {
|
||||||
@@ -263,7 +332,7 @@
|
|||||||
th:last-of-type {
|
th:last-of-type {
|
||||||
border-right: none !important;
|
border-right: none !important;
|
||||||
}
|
}
|
||||||
}
|
}*/
|
||||||
.el-table--border:not(.chart-table)::after, .el-table--group:not(.chart-table)::after {
|
.el-table--border:not(.chart-table)::after, .el-table--group:not(.chart-table)::after {
|
||||||
width: 0;
|
width: 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -42,6 +42,10 @@
|
|||||||
color: #A6AAAE;
|
color: #A6AAAE;
|
||||||
font-size: 20px;
|
font-size: 20px;
|
||||||
}
|
}
|
||||||
|
.cn-icon-filter {
|
||||||
|
color: #A6AAAE;
|
||||||
|
font-size: 20px;
|
||||||
|
}
|
||||||
.el-icon-search {
|
.el-icon-search {
|
||||||
color: #3976CB;
|
color: #3976CB;
|
||||||
font-size: 32px;
|
font-size: 32px;
|
||||||
@@ -64,6 +68,10 @@
|
|||||||
color: #A6AAAE;
|
color: #A6AAAE;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
}
|
}
|
||||||
|
.cn-icon-filter {
|
||||||
|
color: #A6AAAE;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
.el-icon-search {
|
.el-icon-search {
|
||||||
color: white;
|
color: white;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
|
|||||||
@@ -10,9 +10,10 @@
|
|||||||
right: 10px;
|
right: 10px;
|
||||||
|
|
||||||
.search__suffix {
|
.search__suffix {
|
||||||
margin-left: 8px;
|
margin-left: 8px; // 新版实体列表改版,后续记得解开
|
||||||
|
|
||||||
.cn-icon-search-advance, .cn-icon-search-normal {
|
.cn-icon-search-advance, .cn-icon-search-normal {
|
||||||
|
//.cn-icon-search-advance, .cn-icon-search-normal, .cn-icon-filter {
|
||||||
color: #A6AAAE;
|
color: #A6AAAE;
|
||||||
font-size: 18px;
|
font-size: 18px;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
|
|
||||||
.CodeMirror {
|
.CodeMirror {
|
||||||
/* Set height, width, borders, and global font properties here */
|
/* Set height, width, borders, and global font properties here */
|
||||||
font-family: monospace;
|
|
||||||
height: 40px;
|
height: 40px;
|
||||||
color: black;
|
color: black;
|
||||||
direction: ltr;
|
direction: ltr;
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
.date-range-box {
|
.date-range-box {
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
border-radius: 2px;
|
border-radius: 2px;
|
||||||
margin-right: 10px;
|
//margin-right: 10px;
|
||||||
display: flex;
|
display: flex;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
|
||||||
@@ -199,4 +199,16 @@
|
|||||||
text-align: right;
|
text-align: right;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.el-input__inner {
|
||||||
|
visibility: hidden !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.my-date-picker {
|
||||||
|
.el-popper__arrow {
|
||||||
|
position: absolute;
|
||||||
|
top: 20px !important;
|
||||||
|
left: 642px !important; // element上样式设定是left,添加right不生效
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
80
src/assets/css/components/components/common/chart-error.scss
Normal file
@@ -0,0 +1,80 @@
|
|||||||
|
.error-component {
|
||||||
|
position: absolute;
|
||||||
|
//width: 100%;
|
||||||
|
//height: 100%;
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
}
|
||||||
|
.error-block {
|
||||||
|
display: inline-block;
|
||||||
|
//width: 100%;
|
||||||
|
//max-width: calc(100% - 24px);
|
||||||
|
//max-height: calc(100% - 24px);
|
||||||
|
//line-height: 24px;
|
||||||
|
background: #FFE7E6;
|
||||||
|
font-size: 14px;
|
||||||
|
color: #F53A19;
|
||||||
|
font-weight: 400;
|
||||||
|
padding: 7.6px 12px;
|
||||||
|
margin: 12px;
|
||||||
|
z-index: 3;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
//white-space: nowrap;
|
||||||
|
word-break: break-all;
|
||||||
|
border: 1px solid rgba(226,97,84,0.42);
|
||||||
|
border-radius: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.error-block-info {
|
||||||
|
position: absolute;
|
||||||
|
width: calc(100% - 20px);
|
||||||
|
height: calc(100% - 20px);
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
padding: 10px;
|
||||||
|
font-size: 14px;
|
||||||
|
color: #575757;
|
||||||
|
line-height: 24px;
|
||||||
|
font-weight: 400;
|
||||||
|
font-family: NotoSansSChineseRegular, serif;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
word-break: break-all;
|
||||||
|
}
|
||||||
|
|
||||||
|
.new-error-icon {
|
||||||
|
position: relative;
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.new-error-icon .error-content {
|
||||||
|
position: absolute;
|
||||||
|
z-index: 2;
|
||||||
|
top: -42px;
|
||||||
|
left: 0;
|
||||||
|
visibility: hidden;
|
||||||
|
max-width: 220px;
|
||||||
|
overflow: scroll;
|
||||||
|
height: auto;
|
||||||
|
background: #FFE7E6;
|
||||||
|
border: 1px solid rgba(226,97,84,0.42);
|
||||||
|
border-radius: 4px;
|
||||||
|
font-size: 14px;
|
||||||
|
color: #F53A19;
|
||||||
|
font-weight: 400;
|
||||||
|
padding: 5px 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.error-icon-default {
|
||||||
|
font-size: 16px;
|
||||||
|
margin-left: -2px;
|
||||||
|
margin-right: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.error-icon-tooltip {
|
||||||
|
font-size: 16px !important;
|
||||||
|
margin-bottom: -1px;
|
||||||
|
margin-left: 6px;
|
||||||
|
}
|
||||||
64
src/assets/css/components/components/common/chart-tab.scss
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
.chart-tabs {
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
.chart-tabs__active-bar {
|
||||||
|
position: absolute;
|
||||||
|
height: 3px;
|
||||||
|
top: 0;
|
||||||
|
background-color: #046EC9;
|
||||||
|
border-radius: 5px 5px 0 0;
|
||||||
|
transition: all linear .2s;
|
||||||
|
}
|
||||||
|
.el-tabs.el-tabs--border-card {
|
||||||
|
position: absolute;
|
||||||
|
top: 3px;
|
||||||
|
width: 100%;
|
||||||
|
border: none;
|
||||||
|
box-shadow: none;
|
||||||
|
|
||||||
|
&>.el-tabs__header {
|
||||||
|
background-color: white;
|
||||||
|
border-color: #E2E5EC;
|
||||||
|
|
||||||
|
.el-tabs__nav-wrap {
|
||||||
|
padding-left: 27px;
|
||||||
|
}
|
||||||
|
.el-tabs__item:first-child {
|
||||||
|
margin-left: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.el-tabs__content {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.el-tabs__nav {
|
||||||
|
z-index: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-tabs__item.is-top {
|
||||||
|
height: 35px;
|
||||||
|
line-height: 35px;
|
||||||
|
|
||||||
|
.chart-tabs__label {
|
||||||
|
color: #353636;
|
||||||
|
font-size: 14px;
|
||||||
|
font-weight: bold;
|
||||||
|
box-sizing: border-box;
|
||||||
|
|
||||||
|
i {
|
||||||
|
padding-right: 7px;
|
||||||
|
font-size: 16px;
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
&.is-active {
|
||||||
|
.chart-tabs__label {
|
||||||
|
color: #353636;
|
||||||
|
|
||||||
|
i {
|
||||||
|
color: #046EC9;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -144,7 +144,6 @@
|
|||||||
text-align: -webkit-match-parent;
|
text-align: -webkit-match-parent;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
font-family: Helvetica;
|
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
.pop-custom {
|
.pop-custom {
|
||||||
padding: 0 12px 12px 12px;
|
padding: 12px;
|
||||||
border: 1px solid #EBEEF5;
|
border: 1px solid #EBEEF5;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 55px;
|
top: 55px;
|
||||||
@@ -11,7 +11,9 @@
|
|||||||
z-index: 999999;
|
z-index: 999999;
|
||||||
box-shadow: 0 0 10px #CCC;
|
box-shadow: 0 0 10px #CCC;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
|
.pop-title {
|
||||||
|
margin: 10px 0;
|
||||||
|
}
|
||||||
.el-button--mini{
|
.el-button--mini{
|
||||||
padding: 5px 7px;
|
padding: 5px 7px;
|
||||||
}
|
}
|
||||||
@@ -23,7 +25,6 @@
|
|||||||
top: 33px;
|
top: 33px;
|
||||||
}
|
}
|
||||||
.custom-labels {
|
.custom-labels {
|
||||||
margin-top: 12px;
|
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 300px;
|
height: 300px;
|
||||||
}
|
}
|
||||||
@@ -41,8 +42,7 @@
|
|||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
}
|
}
|
||||||
.custom-label:hover{
|
.custom-label:hover{
|
||||||
color: #cccccc;
|
background-color: rgba(220, 223, 230, .5)
|
||||||
background-color: #DCDFE6;
|
|
||||||
}
|
}
|
||||||
.custom-title{
|
.custom-title{
|
||||||
padding: 2px 0 2px 2px;
|
padding: 2px 0 2px 2px;
|
||||||
@@ -57,6 +57,14 @@
|
|||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
.custom-bottom-btns-right {
|
||||||
|
.el-button:nth-of-type(1) {
|
||||||
|
margin-right: 3px;
|
||||||
|
}
|
||||||
|
.el-button .top-tool-btn-save {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.unshow {
|
.unshow {
|
||||||
display: none;
|
display: none;
|
||||||
@@ -70,12 +78,79 @@
|
|||||||
border-radius: 2px;
|
border-radius: 2px;
|
||||||
background-color: #F9F9F9;
|
background-color: #F9F9F9;
|
||||||
transition: background-color linear .1s;
|
transition: background-color linear .1s;
|
||||||
|
padding-left:10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.list-page .top-tools .top-tool-btn--search{
|
||||||
|
width:28px !important;
|
||||||
|
height:28px !important;
|
||||||
|
padding:unset !important;
|
||||||
|
i {
|
||||||
|
font-size: 14px;
|
||||||
|
color: #575757;
|
||||||
|
margin-right:unset !important;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.list-page {
|
.list-page {
|
||||||
|
.el-input--small{
|
||||||
|
width: 214px !important;
|
||||||
|
line-height: 27px;
|
||||||
|
}
|
||||||
.el-input--small .el-input__inner {
|
.el-input--small .el-input__inner {
|
||||||
height: 32.4px;
|
height: 28px;
|
||||||
line-height: 32px;
|
border-radius: 2px 0px 0px 2px;
|
||||||
border-radius: 0px;
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.list {
|
||||||
|
list-style: none;
|
||||||
|
padding-inline-start: 0 !important;
|
||||||
|
max-height: 358px !important;
|
||||||
|
overflow: auto;
|
||||||
|
margin: 0 0;
|
||||||
|
|
||||||
|
.drag-move {
|
||||||
|
transition: transform 0.3s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.list-item:last-child {
|
||||||
|
margin-bottom: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.list-item {
|
||||||
|
width: 100%;
|
||||||
|
color: #575757;
|
||||||
|
margin-bottom: 0;
|
||||||
|
height: 24px;
|
||||||
|
line-height: 24px;
|
||||||
|
text-align: left;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 12px;
|
||||||
|
|
||||||
|
.icon-drag {
|
||||||
|
cursor: move;
|
||||||
|
margin-left: 6px;
|
||||||
|
margin-right: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-checkbox__input.is-checked .el-checkbox__inner {
|
||||||
|
background-color: #38ACD2;
|
||||||
|
border-color: #38ACD2;
|
||||||
|
border-radius: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-checkbox__input .el-checkbox__inner {
|
||||||
|
background-color: #F2F7F9;
|
||||||
|
border: 1px solid rgba(0, 0, 0, 0.15);
|
||||||
|
border-radius: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-checkbox__input.is-checked + .el-checkbox__label, .el-checkbox__input + .el-checkbox__label {
|
||||||
|
font-size: 12px;
|
||||||
|
color: #575757;
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,9 +6,9 @@
|
|||||||
@import './components/common/pagination';
|
@import './components/common/pagination';
|
||||||
// @import './components/entities/entities';
|
// @import './components/entities/entities';
|
||||||
@import './components/layout/layout';
|
@import './components/layout/layout';
|
||||||
@import 'components/rightBox/settings/chart-box';
|
@import 'components/rightBox/administration/chart-box';
|
||||||
@import 'components/setting/galaxy-proxy-debug';
|
@import 'components/setting/galaxy-proxy-debug';
|
||||||
@import 'components/table/settings/galaxy-proxy-table';
|
@import 'components/table/administration/galaxy-proxy-table';
|
||||||
@import './components/table/common';
|
@import './components/table/common';
|
||||||
@import './views/charts/chart';
|
@import './views/charts/chart';
|
||||||
@import 'views/entityExplorer/entity-explorer';
|
@import 'views/entityExplorer/entity-explorer';
|
||||||
@@ -42,8 +42,8 @@
|
|||||||
@import './views/chartHeader';
|
@import './views/chartHeader';
|
||||||
@import './views/charts/chartMap';
|
@import './views/charts/chartMap';
|
||||||
@import 'views/charts/chartRelationShipList';
|
@import 'views/charts/chartRelationShipList';
|
||||||
@import './views/report/builtinReport';
|
@import 'views/report/report';
|
||||||
@import './components/rightBox/report/builtinReportBox';
|
@import 'components/rightBox/report/reportBox';
|
||||||
|
|
||||||
@import './views/charts2/panel';
|
@import './views/charts2/panel';
|
||||||
@import './views/charts2/networkOverviewLine';
|
@import './views/charts2/networkOverviewLine';
|
||||||
@@ -65,6 +65,8 @@
|
|||||||
@import './views/charts2/linkBlock';
|
@import './views/charts2/linkBlock';
|
||||||
@import './views/charts2/linkTrafficSankey';
|
@import './views/charts2/linkTrafficSankey';
|
||||||
@import './views/charts2/linkDirectionGrid';
|
@import './views/charts2/linkDirectionGrid';
|
||||||
|
@import './views/charts2/domainNameResolution.scss';
|
||||||
|
@import './views/charts2/informationAggregation.scss';
|
||||||
@import 'views/charts2/linkTrafficLine';
|
@import 'views/charts2/linkTrafficLine';
|
||||||
@import 'views/charts2/dnsTrafficLine';
|
@import 'views/charts2/dnsTrafficLine';
|
||||||
@import 'views/charts2/dnsRecentEvents';
|
@import 'views/charts2/dnsRecentEvents';
|
||||||
@@ -72,3 +74,14 @@
|
|||||||
@import 'views/charts2/dnsEventChart';
|
@import 'views/charts2/dnsEventChart';
|
||||||
@import './views/charts2/dnsEventChartByPie';
|
@import './views/charts2/dnsEventChartByPie';
|
||||||
//@import '../chart';
|
//@import '../chart';
|
||||||
|
@import './components/common/chart-error';
|
||||||
|
@import './components/common/chart-tab';
|
||||||
|
|
||||||
|
@import 'views/administration/AdministrationTabs';
|
||||||
|
@import 'views/administration/Appearance.scss';
|
||||||
|
|
||||||
|
@import 'views/setting/knowledgeBase';
|
||||||
|
@import 'views/charts2/entityDetailLine';
|
||||||
|
@import 'views/charts2/entityDetailTabs';
|
||||||
|
@import 'views/charts2/digitalCertificate';
|
||||||
|
@import 'views/charts2/entityDetailBasicInfo';
|
||||||
|
|||||||
@@ -0,0 +1,17 @@
|
|||||||
|
.administration {
|
||||||
|
.administration-tabs {
|
||||||
|
height: 18px;
|
||||||
|
}
|
||||||
|
.administration-container {
|
||||||
|
height: calc(100% - 26px);
|
||||||
|
flex-direction: column;
|
||||||
|
.list-page {
|
||||||
|
.main-container {
|
||||||
|
padding: 0px;
|
||||||
|
.cn-pagination {
|
||||||
|
height: 34px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,62 @@
|
|||||||
|
.appearance{
|
||||||
|
height: 100%;
|
||||||
|
display:flex;
|
||||||
|
flex-direction:column;
|
||||||
|
.appearance-form {
|
||||||
|
padding-top:40px;
|
||||||
|
padding-left:100px;
|
||||||
|
background-color: white;
|
||||||
|
position: relative;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
height: 100%;
|
||||||
|
.el-input {
|
||||||
|
width:600px;
|
||||||
|
}
|
||||||
|
.el-form .el-form-item .el-form-item__label {
|
||||||
|
padding-bottom: 6px;
|
||||||
|
font-size: 14px;
|
||||||
|
line-height: 16px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.edit-appearance-base__footer {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: flex-start;
|
||||||
|
height: 100px;
|
||||||
|
margin-top: 3px;
|
||||||
|
padding-left:200px;
|
||||||
|
|
||||||
|
.footer__btn {
|
||||||
|
margin: 0 10px;
|
||||||
|
height: 30px;
|
||||||
|
min-width: 74px;
|
||||||
|
padding: 0 15px;
|
||||||
|
color: white;
|
||||||
|
background-color: #38ACD2;
|
||||||
|
border: none;
|
||||||
|
border-radius: 4px;
|
||||||
|
outline: none;
|
||||||
|
font-size: 14px;
|
||||||
|
cursor: pointer;
|
||||||
|
transition: background-color linear .2s, color linear .1s;
|
||||||
|
}
|
||||||
|
.footer__btn:hover:not(.footer__btn--disabled) {
|
||||||
|
background-color: lighten(#38ACD2, 10%);
|
||||||
|
}
|
||||||
|
.footer__btn--light {
|
||||||
|
background-color: #F5F6F7;
|
||||||
|
border: 1px solid $--border-color-primary;
|
||||||
|
color: #333;
|
||||||
|
}
|
||||||
|
.footer__btn.footer__btn--light:hover:not(.footer__btn--disabled) {
|
||||||
|
background-color: white;
|
||||||
|
border-color: lighten(#38ACD2, 40%);
|
||||||
|
color: #38ACD2;
|
||||||
|
}
|
||||||
|
.footer__btn--disabled {
|
||||||
|
opacity: .6;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -68,7 +68,6 @@
|
|||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-around;
|
justify-content: space-around;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
font-family: Roboto-Regular;
|
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -50,7 +50,6 @@
|
|||||||
.text-box__title {
|
.text-box__title {
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
line-height: 19px;
|
line-height: 19px;
|
||||||
font-family: Roboto-Regular;
|
|
||||||
color: #333333;
|
color: #333333;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
div {
|
div {
|
||||||
@@ -86,7 +85,6 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.time-box__start-time {
|
.time-box__start-time {
|
||||||
font-family: PingFangSC-Regular;
|
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
color: #999999;
|
color: #999999;
|
||||||
line-height: 14px;
|
line-height: 14px;
|
||||||
@@ -109,7 +107,6 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.time-box__start-time {
|
.time-box__start-time {
|
||||||
font-family: PingFangSC-Regular;
|
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
color: #999999;
|
color: #999999;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
@@ -118,7 +115,6 @@
|
|||||||
|
|
||||||
.text__type {
|
.text__type {
|
||||||
width: auto;
|
width: auto;
|
||||||
font-family: Roboto-Regular;
|
|
||||||
line-height: 16px;
|
line-height: 16px;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
border: 1px solid;
|
border: 1px solid;
|
||||||
@@ -138,7 +134,6 @@
|
|||||||
width: 5px;
|
width: 5px;
|
||||||
height: 5px;
|
height: 5px;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
font-family: Roboto-Black;
|
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
color: #666666;
|
color: #666666;
|
||||||
line-height: 17px;
|
line-height: 17px;
|
||||||
|
|||||||
@@ -306,7 +306,6 @@
|
|||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
margin: 16px 0 27px 0;
|
margin: 16px 0 27px 0;
|
||||||
font-family: PingFangSC-Medium;
|
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
color: #333333;
|
color: #333333;
|
||||||
line-height: 22px;
|
line-height: 22px;
|
||||||
@@ -324,7 +323,6 @@
|
|||||||
|
|
||||||
.content__data__doh {
|
.content__data__doh {
|
||||||
.content__data__doh__count {
|
.content__data__doh__count {
|
||||||
font-family: Roboto-Medium;
|
|
||||||
font-size: 30px;
|
font-size: 30px;
|
||||||
color: #333333;
|
color: #333333;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
@@ -332,13 +330,11 @@
|
|||||||
|
|
||||||
.content__data__doh__percent {
|
.content__data__doh__percent {
|
||||||
margin-top: 10px;
|
margin-top: 10px;
|
||||||
font-family: Roboto-Black;
|
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
color: #666666;
|
color: #666666;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
|
|
||||||
span {
|
span {
|
||||||
font-family: Roboto-Medium;
|
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
color: #FC8157;
|
color: #FC8157;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
|
|||||||
@@ -0,0 +1,70 @@
|
|||||||
|
.digital-certificate {
|
||||||
|
$font-family: NotoSansSChineseRegular;
|
||||||
|
|
||||||
|
.digital-certificate-header {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
.digital-certificate-header__icon {
|
||||||
|
width: 4px;
|
||||||
|
height: 16px;
|
||||||
|
background: #38ACD2;
|
||||||
|
border-radius: 1px;
|
||||||
|
margin-right: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.digital-certificate-header-name {
|
||||||
|
font-family: PingFangSC-Semibold;
|
||||||
|
font-size: 14px;
|
||||||
|
color: #575757;
|
||||||
|
font-weight: 600;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.digital-certificate-body {
|
||||||
|
height: auto;
|
||||||
|
min-height: 262px;
|
||||||
|
padding: 20px;
|
||||||
|
background: rgba(113, 113, 113, 0.04);
|
||||||
|
border: 1px solid #E2E5ECFF;
|
||||||
|
border-radius: 4px;
|
||||||
|
|
||||||
|
.digital-certificate-body-tags {
|
||||||
|
display: flex;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.certificate-list-list {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.certificate-list-item {
|
||||||
|
width: 50%;
|
||||||
|
display: flex;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
|
||||||
|
.certificate-list-item__label {
|
||||||
|
width: 176px;
|
||||||
|
font-family: $font-family;
|
||||||
|
font-size: 14px;
|
||||||
|
color: #717171;
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
|
|
||||||
|
.certificate-list-item__value, .certificate-list-item__value1 {
|
||||||
|
width: calc(100% - 176px - 75px);
|
||||||
|
font-family: $font-family;
|
||||||
|
font-size: 14px;
|
||||||
|
color: #353636;
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
|
|
||||||
|
.certificate-list-item__value1 {
|
||||||
|
padding-bottom: 2px;
|
||||||
|
border-bottom: 1px #353636 solid;
|
||||||
|
word-break: break-word;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -7,7 +7,6 @@
|
|||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
|
|
||||||
.dns-mailcious-domain-title {
|
.dns-mailcious-domain-title {
|
||||||
font-family: NotoSansHans-Medium;
|
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
color: #353636;
|
color: #353636;
|
||||||
margin-bottom: 12px;
|
margin-bottom: 12px;
|
||||||
|
|||||||
@@ -0,0 +1,71 @@
|
|||||||
|
.type-data__column {
|
||||||
|
display:flex;
|
||||||
|
flex-direction: column;
|
||||||
|
margin-left:5px;
|
||||||
|
margin-right:0px;
|
||||||
|
margin-top:0px;
|
||||||
|
.type-data {
|
||||||
|
display:flex;
|
||||||
|
flex-flow:row wrap;
|
||||||
|
margin-top:0px;
|
||||||
|
.type-title {
|
||||||
|
display:flex;
|
||||||
|
flex-direction: row;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
margin-bottom:15px;
|
||||||
|
margin-right:10px;
|
||||||
|
font-family: PingFangSC-Semibold;
|
||||||
|
font-size: 14px;
|
||||||
|
color: #575757;
|
||||||
|
line-height: 20px;
|
||||||
|
font-weight: 600;
|
||||||
|
.title-mark {
|
||||||
|
width: 4px;
|
||||||
|
height: 16px;
|
||||||
|
margin-left:0px;
|
||||||
|
margin-right: 6px;
|
||||||
|
background: #38ACD2;
|
||||||
|
border-radius: 1px;
|
||||||
|
}
|
||||||
|
.type-title-word {
|
||||||
|
margin-right: 6px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.type-content {
|
||||||
|
margin-bottom:15px;
|
||||||
|
display:flex;
|
||||||
|
flex-flow: row wrap;
|
||||||
|
width:100%;
|
||||||
|
.data-item {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
background: rgba(119,131,145,0.06);
|
||||||
|
border: 1px solid rgba(119,131,145,0.36);
|
||||||
|
border-radius: 2px;
|
||||||
|
height:28px;
|
||||||
|
padding:8px 15px;
|
||||||
|
margin-right:10px;
|
||||||
|
margin-bottom:15px;
|
||||||
|
font-size: 12px;
|
||||||
|
color: #353636;
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.type-error-content {
|
||||||
|
width:100%;
|
||||||
|
height: 40px;
|
||||||
|
margin-bottom: 12px;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
.type-error-content__block {
|
||||||
|
position: absolute;
|
||||||
|
left: -12px;
|
||||||
|
top: -12px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,185 @@
|
|||||||
|
.el-popper.analysis-popper {
|
||||||
|
top: -5px !important;
|
||||||
|
padding: 0;
|
||||||
|
border: 1px solid #C5C5C5;
|
||||||
|
border-radius: 4px;
|
||||||
|
box-shadow: -1px 1px 10px -1px rgba(205,205,205,0.85);
|
||||||
|
|
||||||
|
.el-popper__arrow {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.analysis-entry {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
|
||||||
|
.analysis-entry__header {
|
||||||
|
height: 42px;
|
||||||
|
line-height: 42px;
|
||||||
|
background-color: #F7F7F7;
|
||||||
|
padding-left: 20px;
|
||||||
|
color: #353636;
|
||||||
|
border-radius: 4px 4px 0 0;
|
||||||
|
}
|
||||||
|
.analysis-entry__body {
|
||||||
|
display: flex;
|
||||||
|
height: 134px;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-around;
|
||||||
|
|
||||||
|
.analysis-entry-item {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
cursor: pointer;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
div i, span {
|
||||||
|
color: #046ECA;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
div {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
margin-bottom: 9px;
|
||||||
|
height: 46px;
|
||||||
|
width: 46px;
|
||||||
|
border-radius: 50%;
|
||||||
|
background-color: #F5F6F8;
|
||||||
|
|
||||||
|
i {
|
||||||
|
color: #353636;
|
||||||
|
font-size: 22px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
span {
|
||||||
|
font-size: 12px;
|
||||||
|
color: #353636;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.entity-detail-basic-info {
|
||||||
|
position: relative;
|
||||||
|
padding: 35px 30px 0 30px;
|
||||||
|
height: 100%;
|
||||||
|
border: 1px solid #E2E5EC;
|
||||||
|
border-radius: 4px;
|
||||||
|
|
||||||
|
.dividing-line {
|
||||||
|
height: 1px;
|
||||||
|
width: calc(100% - 60px);
|
||||||
|
margin-top: 21px;
|
||||||
|
background-color: #EFF2F5;
|
||||||
|
}
|
||||||
|
.entity-type {
|
||||||
|
color: #717171;
|
||||||
|
}
|
||||||
|
.entity-basic-info {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
|
||||||
|
.entity-basic-info__name {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
span {
|
||||||
|
padding-right: 12px;
|
||||||
|
font-family: Helvetica-Bold;
|
||||||
|
font-size: 32px;
|
||||||
|
color: #353636;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
div {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
height: 28px;
|
||||||
|
width: 28px;
|
||||||
|
border-radius: 50%;
|
||||||
|
background-color: #EFF1F4;
|
||||||
|
cursor: pointer;
|
||||||
|
|
||||||
|
i {
|
||||||
|
color: #717171;
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.analysis-btn {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
height: 24px;
|
||||||
|
padding: 0 10px;
|
||||||
|
font-size: 12px;
|
||||||
|
color: #046ECA;
|
||||||
|
cursor: pointer;
|
||||||
|
background-color: #FFF;
|
||||||
|
transition: background-color linear .2s;
|
||||||
|
|
||||||
|
&.analysis-btn--active {
|
||||||
|
background-color: #EBF7FA;
|
||||||
|
border-radius: 2px;
|
||||||
|
}
|
||||||
|
i {
|
||||||
|
padding-right: 4px;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.entity-tags {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
align-items: center;
|
||||||
|
margin-top: 16px;
|
||||||
|
margin-bottom: -10px;
|
||||||
|
|
||||||
|
.entity-tag {
|
||||||
|
margin-bottom: 10px;
|
||||||
|
margin-right: 10px;
|
||||||
|
|
||||||
|
&:last-of-type {
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.entity-detail-info {
|
||||||
|
display: flex;
|
||||||
|
flex-flow: row wrap;
|
||||||
|
align-content: space-around;
|
||||||
|
padding: 10px 0;
|
||||||
|
|
||||||
|
.detail-card {
|
||||||
|
display: flex;
|
||||||
|
padding: 0 12px;
|
||||||
|
width: 298px;
|
||||||
|
height: 83px;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
i {
|
||||||
|
font-size: 22px;
|
||||||
|
color: #353636;
|
||||||
|
margin-right: 14px;
|
||||||
|
}
|
||||||
|
.detail-card__text {
|
||||||
|
.detail-card__label {
|
||||||
|
margin-bottom: 6px;
|
||||||
|
font-size: 12px;
|
||||||
|
color: #717171;
|
||||||
|
}
|
||||||
|
.detail-card__value {
|
||||||
|
display: -webkit-box;
|
||||||
|
-webkit-box-orient: vertical;
|
||||||
|
-webkit-line-clamp: 3;
|
||||||
|
overflow: hidden;
|
||||||
|
color: #222;
|
||||||
|
line-height: 18px;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,68 @@
|
|||||||
|
.entity-detail-line {
|
||||||
|
height: 100%;
|
||||||
|
border-radius: 4px;
|
||||||
|
|
||||||
|
.line-header-right {
|
||||||
|
.panel__tools {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
& > .el-select {
|
||||||
|
width: 162px;
|
||||||
|
margin-right: 10px;
|
||||||
|
|
||||||
|
.select-prefix {
|
||||||
|
font-size: 14px;
|
||||||
|
color: #999;
|
||||||
|
padding: 0 6px 0 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-input__inner {
|
||||||
|
font-size: 14px;
|
||||||
|
color: #353636;
|
||||||
|
}
|
||||||
|
|
||||||
|
.common-select {
|
||||||
|
top: 32px !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.panel__time {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.line-select-metric {
|
||||||
|
margin-right: 20px;
|
||||||
|
|
||||||
|
.el-input__inner {
|
||||||
|
width: 127px;
|
||||||
|
height: 24px;
|
||||||
|
line-height: 24px;
|
||||||
|
padding-left: 4px;
|
||||||
|
font-size: 12px;
|
||||||
|
color: #2C72C6;
|
||||||
|
font-weight: 400;
|
||||||
|
border-radius: 2px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.line-select-reference-line {
|
||||||
|
margin-left: 0 !important;
|
||||||
|
line-height: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.line-margin-right {
|
||||||
|
margin-right: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.line-date-right {
|
||||||
|
margin-right: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entity-detail-date-time-range {
|
||||||
|
height: 24px;
|
||||||
|
line-height: 24px;
|
||||||
|
border: 1px solid #DCDFE6;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
102
src/assets/css/components/views/charts2/entityDetailTabs.scss
Normal file
@@ -0,0 +1,102 @@
|
|||||||
|
.entity-detail-tabs {
|
||||||
|
position: relative;
|
||||||
|
$tab-border-color: #E2E5EC;
|
||||||
|
$tab-border-radius: 4px;
|
||||||
|
height: 100%;
|
||||||
|
|
||||||
|
.entity-detail-tabs__active-bar {
|
||||||
|
position: absolute;
|
||||||
|
height: 3px;
|
||||||
|
top: 1px;
|
||||||
|
background-color: #046EC9;
|
||||||
|
border-radius: 4px 4px 0 0;
|
||||||
|
transition: all linear .2s;
|
||||||
|
z-index: 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cn-chart__tabs--border-card {
|
||||||
|
height: 100%;
|
||||||
|
border: none;
|
||||||
|
box-shadow: none;
|
||||||
|
|
||||||
|
& > .el-tabs__header {
|
||||||
|
background-color: #fff;
|
||||||
|
border-bottom: 1px solid $tab-border-color;
|
||||||
|
|
||||||
|
.el-tabs__item {
|
||||||
|
color: #353636;
|
||||||
|
user-select: none; // 避免鼠标框选文字
|
||||||
|
|
||||||
|
i {
|
||||||
|
margin-right: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-tabs__item:not(.is-disabled):not(.is-active):hover {
|
||||||
|
color: #353636;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-tabs__item.is-active {
|
||||||
|
color: #046ECA;
|
||||||
|
background-color: #FFFFFF;
|
||||||
|
border-right-color: $tab-border-color;
|
||||||
|
border-left-color: $tab-border-color;
|
||||||
|
border-radius: 4px 4px 0 0;
|
||||||
|
box-shadow: 0 1px $tab-border-color inset;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
color: #046ECA;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-tabs__item:first-of-type.is-active {
|
||||||
|
box-shadow: 1px 1px $tab-border-color inset;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-tabs__content {
|
||||||
|
height: calc(100% - 39px);
|
||||||
|
border: 1px solid $tab-border-color;
|
||||||
|
border-top: none;
|
||||||
|
padding: 30px 20px 20px 20px; // 根据原型调整上边距为30px,但20px更协调
|
||||||
|
}
|
||||||
|
|
||||||
|
.tab-pane--border-card {
|
||||||
|
position: relative;
|
||||||
|
height: 100%;
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
.tab-pane-warn--icon {
|
||||||
|
width: 16px;
|
||||||
|
color: #E48F3E;
|
||||||
|
margin-left: 10px;
|
||||||
|
margin-right: 0 !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.entity-detail-event-border {
|
||||||
|
border: 1px solid #E2E5EC;
|
||||||
|
border-radius: $tab-border-radius;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entity-detail-event-block {
|
||||||
|
width: calc(100% - 2px);
|
||||||
|
}
|
||||||
|
|
||||||
|
.entity-detail-event-error {
|
||||||
|
margin-top: 18px;
|
||||||
|
margin-left: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entity-detail-performance {
|
||||||
|
height: 46px;
|
||||||
|
border-radius: $tab-border-radius;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entity-detail-security {
|
||||||
|
height: 70px;
|
||||||
|
border-radius: $tab-border-radius;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,76 @@
|
|||||||
|
.information-aggregation__table {
|
||||||
|
.intelligence-content {
|
||||||
|
padding-top:10px !important;
|
||||||
|
padding-bottom:4px !important;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: flex-start;
|
||||||
|
.information-aggregation-tags {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: flex-start;
|
||||||
|
margin-bottom:6px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.information-aggregation__valid {
|
||||||
|
background: #eff3e9;
|
||||||
|
border-radius: 10px;
|
||||||
|
font-size: 12px;
|
||||||
|
color: #7E9F54;
|
||||||
|
font-weight: 500;
|
||||||
|
width:fit-content;
|
||||||
|
padding-left:10px;
|
||||||
|
padding-right:10px;
|
||||||
|
height: 20px;
|
||||||
|
line-height: 20px;
|
||||||
|
}
|
||||||
|
.information-aggregation__invalid {
|
||||||
|
background: #ededed;
|
||||||
|
border-radius: 10px;
|
||||||
|
font-size: 12px;
|
||||||
|
color: #717171;
|
||||||
|
font-weight: 500;
|
||||||
|
width:fit-content;
|
||||||
|
padding-left:10px;
|
||||||
|
padding-right:10px;
|
||||||
|
height: 20px;
|
||||||
|
line-height: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-table {
|
||||||
|
font-size: 12px;
|
||||||
|
color: #353636;
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
|
.el-table thead {
|
||||||
|
font-size: 12px;
|
||||||
|
line-height: 12px;
|
||||||
|
color: #353636;
|
||||||
|
font-weight: 500;
|
||||||
|
height:32px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-table th {
|
||||||
|
padding: 4px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-table--border th, .el-table--border td {
|
||||||
|
border-right: 0px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-table--border {
|
||||||
|
//border: 1px solid #E2E5EC;
|
||||||
|
border-radius: 4px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.margin-r-6{
|
||||||
|
margin-right: 6px;
|
||||||
|
}
|
||||||
|
.margin-b-6{
|
||||||
|
margin-bottom: 6px;
|
||||||
|
}
|
||||||
|
.padding-0{
|
||||||
|
padding:0px !important;
|
||||||
|
}
|
||||||
@@ -13,6 +13,12 @@
|
|||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
color: #046ECA;
|
color: #046ECA;
|
||||||
}
|
}
|
||||||
|
.link-block-error {
|
||||||
|
position: absolute;
|
||||||
|
width: calc(100% - 20px);
|
||||||
|
height: calc(100% - 60px);
|
||||||
|
margin-top: 50px;
|
||||||
|
}
|
||||||
.data-grid {
|
.data-grid {
|
||||||
height: 100px;
|
height: 100px;
|
||||||
.egress-row {
|
.egress-row {
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
.network-overview-apps-header {
|
.network-overview-apps-header {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
//justify-content: space-between;
|
||||||
|
|
||||||
.network-overview-apps-title {
|
.network-overview-apps-title {
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
@@ -256,7 +256,15 @@
|
|||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
.el-tabs__item.is-top {
|
.el-tabs__item.is-top {
|
||||||
height: 32px;
|
height: 50px;
|
||||||
|
line-height: 60px;
|
||||||
|
|
||||||
|
&.is-active {
|
||||||
|
color: #046eca;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.el-tabs__active-bar {
|
||||||
|
background-color: #306DC2;
|
||||||
}
|
}
|
||||||
.el-tabs__item.is-top:nth-child(2) {
|
.el-tabs__item.is-top:nth-child(2) {
|
||||||
padding: 0;
|
padding: 0;
|
||||||
@@ -264,7 +272,7 @@
|
|||||||
.body__searcher {
|
.body__searcher {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
right: 28px;
|
right: 28px;
|
||||||
top: 9px;
|
top: 11px;
|
||||||
width: 280px;
|
width: 280px;
|
||||||
.el-input.el-input--mini {
|
.el-input.el-input--mini {
|
||||||
.el-input__inner {
|
.el-input__inner {
|
||||||
@@ -282,9 +290,9 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.el-tabs__nav-wrap::after {
|
/*.el-tabs__nav-wrap::after {
|
||||||
height: 0;
|
height: 0;
|
||||||
}
|
}*/
|
||||||
.el-tabs__header {
|
.el-tabs__header {
|
||||||
padding-left: 20px;
|
padding-left: 20px;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,6 +39,9 @@
|
|||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
margin-bottom: 12px;
|
margin-bottom: 12px;
|
||||||
}
|
}
|
||||||
|
.ddos-detection-type-value-number.ddos-event {
|
||||||
|
color: #E48F3E;
|
||||||
|
}
|
||||||
.ddos-detection-type-value-number {
|
.ddos-detection-type-value-number {
|
||||||
font-size: 18px;
|
font-size: 18px;
|
||||||
color: #E26154;
|
color: #E26154;
|
||||||
|
|||||||
@@ -30,6 +30,7 @@
|
|||||||
.line-header {
|
.line-header {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
|
height: 73px;
|
||||||
.line-select.line-header-right {
|
.line-select.line-header-right {
|
||||||
display: flex;
|
display: flex;
|
||||||
//flex: 1;
|
//flex: 1;
|
||||||
@@ -98,11 +99,11 @@
|
|||||||
//top: 0;
|
//top: 0;
|
||||||
//left: 0;
|
//left: 0;
|
||||||
display: flex;
|
display: flex;
|
||||||
.line-value-mpackets.mousemove-cursor {
|
.line-value-tabs.mousemove-cursor {
|
||||||
border-top: 4px solid #D3D0D8;
|
border-top: 4px solid #D3D0D8;
|
||||||
z-index: 0;
|
z-index: 0;
|
||||||
}
|
}
|
||||||
.line-value-mpackets {
|
.line-value-tabs {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
padding: 16px 0 0 20px;
|
padding: 16px 0 0 20px;
|
||||||
border-top: 4px solid transparent;
|
border-top: 4px solid transparent;
|
||||||
@@ -122,10 +123,10 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.line-value-mpackets-name {
|
.line-value-tabs-name {
|
||||||
position: relative;
|
position: relative;
|
||||||
display: flex;
|
display: flex;
|
||||||
.mpackets-name {
|
.tabs-name {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
padding-left: 19px;
|
padding-left: 19px;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
height:calc(100% - 64px);
|
height:calc(100% - 64px);
|
||||||
font-size:12px;
|
font-size:12px;
|
||||||
.tab-hide{
|
.tab-hide{
|
||||||
margin-top:40px;
|
margin-top:42px;
|
||||||
}
|
}
|
||||||
.cn-chart__tabs {
|
.cn-chart__tabs {
|
||||||
height:100%;
|
height:100%;
|
||||||
@@ -32,13 +32,11 @@
|
|||||||
.div-yellow {
|
.div-yellow {
|
||||||
height: 12px;
|
height: 12px;
|
||||||
background: #e5a219;
|
background: #e5a219;
|
||||||
border: 1px solid #e5a219;
|
|
||||||
border-left: none;
|
border-left: none;
|
||||||
}
|
}
|
||||||
.div-green {
|
.div-green {
|
||||||
height: 12px;
|
height: 12px;
|
||||||
background: #749f4d;
|
background: #749f4d;
|
||||||
border: 1px solid #749f4d;
|
|
||||||
border-right: none;
|
border-right: none;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -115,6 +113,18 @@
|
|||||||
.el-table thead {
|
.el-table thead {
|
||||||
color: $grey;
|
color: $grey;
|
||||||
}
|
}
|
||||||
|
.el-table__empty-text{
|
||||||
|
line-height:20px !important;
|
||||||
|
}
|
||||||
|
.el-table__header th .cell {
|
||||||
|
display:flex;
|
||||||
|
flex-direction:row;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
.el-table__header tr th:nth-of-type(1) .cell {
|
||||||
|
justify-content: flex-start;
|
||||||
|
}
|
||||||
.score-cell {
|
.score-cell {
|
||||||
display: flex !important;
|
display: flex !important;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
|
|||||||
@@ -130,6 +130,10 @@
|
|||||||
.data-score.data-score-green {
|
.data-score.data-score-green {
|
||||||
background: #749F4D;
|
background: #749F4D;
|
||||||
}
|
}
|
||||||
|
.data-score-no-data {
|
||||||
|
width: 34px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.data-total-value {
|
.data-total-value {
|
||||||
display: flex;
|
display: flex;
|
||||||
@@ -179,3 +183,6 @@
|
|||||||
color: $grey;
|
color: $grey;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.npm-app-border {
|
||||||
|
border: 1px solid #E2E5EC;
|
||||||
|
}
|
||||||
|
|||||||
@@ -110,4 +110,10 @@
|
|||||||
.el-table--group::after,.el-table--border::after,.el-table::before {
|
.el-table--group::after,.el-table--border::after,.el-table::before {
|
||||||
height: 0px;
|
height: 0px;
|
||||||
}
|
}
|
||||||
|
.table-error {
|
||||||
|
position: absolute;
|
||||||
|
width: 100%;
|
||||||
|
left: 0;
|
||||||
|
top: 32px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
.npm-event-title {
|
.npm-event-title {
|
||||||
|
display: flex;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
color: #353636;
|
color: #353636;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
width: 100%;
|
width: 100%;
|
||||||
border: 1px solid #f0f0f0;
|
border: 1px solid #f0f0f0;
|
||||||
.npm-line-title {
|
.npm-line-title {
|
||||||
|
display: flex;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
color: #353636;
|
color: #353636;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
@@ -14,6 +15,7 @@
|
|||||||
margin: 20px 20px 0 20px;
|
margin: 20px 20px 0 20px;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
.npm-line-header-title {
|
.npm-line-header-title {
|
||||||
|
display: flex;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
color: #353636;
|
color: #353636;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
.cn-chart__map-title {
|
.cn-chart__map-title {
|
||||||
|
display: flex;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
color: #353636;
|
color: #353636;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
height: 100%;
|
height: 100%;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
.npm-recent-title {
|
.npm-recent-title {
|
||||||
|
display: flex;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
color: #353636;
|
color: #353636;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
@@ -85,6 +86,9 @@
|
|||||||
color: #046ECA;
|
color: #046ECA;
|
||||||
font-weight: 400
|
font-weight: 400
|
||||||
}
|
}
|
||||||
|
.click-active {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
.data-recent-table-eventType {
|
.data-recent-table-eventType {
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
color: #046ECA;
|
color: #046ECA;
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
height: 100%;
|
height: 100%;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
.npm-sessions-title {
|
.npm-sessions-title {
|
||||||
|
display: flex;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
color: #353636;
|
color: #353636;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
@@ -27,6 +28,14 @@
|
|||||||
border-bottom-left-radius: 4px;
|
border-bottom-left-radius: 4px;
|
||||||
border-right: none;
|
border-right: none;
|
||||||
}
|
}
|
||||||
|
.npm-sessions-div-gray {
|
||||||
|
height: 100%;
|
||||||
|
background: rgba(113,113,113,0.30);
|
||||||
|
border: 1px solid rgba(113,113,113,0.30);
|
||||||
|
border-top-left-radius: 4px;
|
||||||
|
border-bottom-left-radius: 4px;
|
||||||
|
border-right: none;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.npm-sessions-body {
|
.npm-sessions-body {
|
||||||
@@ -45,15 +54,10 @@
|
|||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
.npm-sessions-as-client-i18n {
|
.npm-sessions-as-client-i18n {
|
||||||
ont-size: 12px;
|
font-size: 12px;
|
||||||
color: #717171;
|
color: #717171;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
}
|
}
|
||||||
.npm-sessions-as-client-percent {
|
|
||||||
font-size: 18px;
|
|
||||||
color: #353636;
|
|
||||||
font-weight: 700;
|
|
||||||
}
|
|
||||||
.npm-sessions-as-client-green,.npm-sessions-as-client-red {
|
.npm-sessions-as-client-green,.npm-sessions-as-client-red {
|
||||||
width: 8px;
|
width: 8px;
|
||||||
height: 8px;
|
height: 8px;
|
||||||
@@ -66,6 +70,11 @@
|
|||||||
background: red;
|
background: red;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.npm-sessions-as-client-percent {
|
||||||
|
font-size: 18px;
|
||||||
|
color: #353636;
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.npm-sessions-body-right {
|
.npm-sessions-body-right {
|
||||||
|
|||||||
@@ -1,3 +1,14 @@
|
|||||||
|
.panel-box2.panel-box2--entity-detail {
|
||||||
|
height: 100%;
|
||||||
|
|
||||||
|
.chart-list {
|
||||||
|
height: 100%;
|
||||||
|
|
||||||
|
&>.vue-grid-layout {
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
.panel-box2 {
|
.panel-box2 {
|
||||||
height: calc(100% - 20px);
|
height: calc(100% - 20px);
|
||||||
.panel__header {
|
.panel__header {
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
align-items: center;
|
align-items: center;
|
||||||
padding-left: 10px;
|
padding-left: 10px;
|
||||||
color: #666;
|
color: #666;
|
||||||
background-color: #F3F7FA;
|
//background-color: #F3F7FA;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
|
||||||
span {
|
span {
|
||||||
@@ -33,7 +33,18 @@
|
|||||||
i.arrow-rotate {
|
i.arrow-rotate {
|
||||||
transform: rotate(90deg) translate(2px, 3px);
|
transform: rotate(90deg) translate(2px, 3px);
|
||||||
}
|
}
|
||||||
|
.new-detection-filter-header-title {
|
||||||
|
font-size: 14px;
|
||||||
|
color: #353636;
|
||||||
|
font-weight: 600;
|
||||||
}
|
}
|
||||||
|
.new-detection-filter-icon {
|
||||||
|
margin-left: 8px;
|
||||||
|
margin-bottom: 2px;
|
||||||
|
font-weight: bold !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.filter__body {
|
.filter__body {
|
||||||
padding: 5px 0 0 15px;
|
padding: 5px 0 0 15px;
|
||||||
|
|
||||||
@@ -69,4 +80,17 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.new-detection-filter-title {
|
||||||
|
display: flex;
|
||||||
|
flex: 0 0 32px;
|
||||||
|
align-items: center;
|
||||||
|
padding-left: 27px;
|
||||||
|
background-color: #EFF2F5;
|
||||||
|
cursor: pointer;
|
||||||
|
font-size: 14px;
|
||||||
|
color: #353636;
|
||||||
|
font-weight: 600;
|
||||||
|
margin: -10px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -40,7 +40,7 @@
|
|||||||
height: 100%;
|
height: 100%;
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
|
|
||||||
.cn-detection__shadow {
|
.cn-detection__shadow, .new-cn-detection__shadow {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
height: 100vh;
|
height: 100vh;
|
||||||
width:100vw;
|
width:100vw;
|
||||||
@@ -49,6 +49,10 @@
|
|||||||
z-index: 1;
|
z-index: 1;
|
||||||
background-color: rgba(0, 0, 0, .2);
|
background-color: rgba(0, 0, 0, .2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.new-cn-detection__shadow {
|
||||||
|
z-index: 4;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,13 +2,22 @@
|
|||||||
display: flex;
|
display: flex;
|
||||||
|
|
||||||
.cn-detection__collapse {
|
.cn-detection__collapse {
|
||||||
margin-bottom: 1px;
|
|
||||||
padding-top: 18px;
|
|
||||||
width: 24px;
|
width: 24px;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: flex-start;
|
align-items: flex-start;
|
||||||
background-color: #F3F7FA;
|
margin-bottom: 1px;
|
||||||
|
//padding-top: 18px;
|
||||||
|
background-color: #EFF2F5;
|
||||||
|
|
||||||
|
.cn-detection__collapse-block {
|
||||||
|
min-height: 66px;
|
||||||
|
height: 100%;
|
||||||
|
max-height: 88px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
span {
|
span {
|
||||||
transform: rotate(0);
|
transform: rotate(0);
|
||||||
@@ -98,6 +107,27 @@
|
|||||||
letter-spacing: 0;
|
letter-spacing: 0;
|
||||||
line-height: 14px;
|
line-height: 14px;
|
||||||
margin-left: 5px;
|
margin-left: 5px;
|
||||||
|
font-style: italic;
|
||||||
|
padding: 0 2px;
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
|
.detection-event-severity-color-block {
|
||||||
|
width: 5px;
|
||||||
|
height: 20px;
|
||||||
|
border-radius: 2.5px;
|
||||||
|
margin-left: -16px;
|
||||||
|
margin-right: 12px;
|
||||||
|
}
|
||||||
|
.detection-event-severity-block {
|
||||||
|
font-size: 12px;
|
||||||
|
color: #046EC9;
|
||||||
|
font-weight: 500;
|
||||||
|
padding: 2px 10px;
|
||||||
|
background: rgba(56,172,210,0.10);
|
||||||
|
border: 1px solid #ADC7DB;
|
||||||
|
box-shadow: 0 2px 4px 0 rgba(51,51,51,0.02);
|
||||||
|
border-radius: 3px;
|
||||||
|
margin-right: 10px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -116,12 +146,12 @@
|
|||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
|
|
||||||
.basic-info__item {
|
.basic-info__item {
|
||||||
padding-right: 40px;
|
padding-right: 30px;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
|
||||||
i {
|
i {
|
||||||
padding-right: 6px;
|
padding-right: 5px;
|
||||||
color: #8FA1BE;
|
color: #8FA1BE;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -62,7 +62,10 @@
|
|||||||
|
|
||||||
.row__content {
|
.row__content {
|
||||||
display: flex;
|
display: flex;
|
||||||
color: #3976CB;
|
//color: #3976CB;
|
||||||
|
color: #046ECA;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 14px;
|
||||||
|
|
||||||
&.row__content--link {
|
&.row__content--link {
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
@@ -77,6 +80,10 @@
|
|||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
span{
|
span{
|
||||||
|
font-style: italic;
|
||||||
|
color: #046ECA;
|
||||||
|
}
|
||||||
|
.row__content--span {
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
color: #1890FF;
|
color: #1890FF;
|
||||||
}
|
}
|
||||||
@@ -169,13 +176,16 @@
|
|||||||
span {
|
span {
|
||||||
padding-left: 5px;
|
padding-left: 5px;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
color: #3976CB;
|
//color: #3976CB;
|
||||||
|
color: #046ECA;
|
||||||
|
font-weight: 600 !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.timeline__security-type {
|
.timeline__security-type {
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
color: #3976CB;
|
color: #046ECA;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
|
font-weight: 500;
|
||||||
}
|
}
|
||||||
.timeline__start-time {
|
.timeline__start-time {
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
@@ -210,5 +220,5 @@
|
|||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
padding: 0 4px;
|
padding: 0 4px;
|
||||||
color: white;
|
//color: white;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
display: flex;
|
display: flex;
|
||||||
justify-content:space-between;
|
justify-content:space-between;
|
||||||
align-items:center;
|
align-items:center;
|
||||||
padding: 10px 20px 10px 0px;
|
padding: 10px 20px 10px 0;
|
||||||
flex: 0 0 40px;
|
flex: 0 0 40px;
|
||||||
|
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
@@ -37,7 +37,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.chart-content {
|
.chart-content {
|
||||||
height:calc(100% - 40px);
|
height: 147px;
|
||||||
}
|
}
|
||||||
.statistics__severity {
|
.statistics__severity {
|
||||||
width: 33%;
|
width: 33%;
|
||||||
|
|||||||
@@ -1,3 +1,67 @@
|
|||||||
|
.entity-detail {
|
||||||
|
.entity-tag {
|
||||||
|
display: flex;
|
||||||
|
height: 28px;
|
||||||
|
padding: 0 12px;
|
||||||
|
justify-content: center;
|
||||||
|
line-height: 28px;
|
||||||
|
font-size: 14px;
|
||||||
|
border: 1px solid;
|
||||||
|
border-radius: 2px;
|
||||||
|
|
||||||
|
&.entity-tag--small {
|
||||||
|
height: 20px;
|
||||||
|
line-height: 20px;
|
||||||
|
padding: 0 6px;
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
$normal-color: #778391;
|
||||||
|
$normal-light-color: #F7F8F9;
|
||||||
|
$negative-color: #E26154;
|
||||||
|
$negative-light-color: #FEF6F5;
|
||||||
|
$positive-color: #749F4D;
|
||||||
|
$positive-light-color: #F7FAF5;
|
||||||
|
&.entity-tag--level-one-normal {
|
||||||
|
border-color: $normal-color;
|
||||||
|
color: white;
|
||||||
|
background-color: $normal-color;
|
||||||
|
}
|
||||||
|
&.entity-tag--level-one-negative {
|
||||||
|
border-color: $negative-color;
|
||||||
|
color: white;
|
||||||
|
background-color: $negative-color;
|
||||||
|
}
|
||||||
|
&.entity-tag--level-one-positive {
|
||||||
|
border-color: $positive-color;
|
||||||
|
color: white;
|
||||||
|
background-color: $positive-color;
|
||||||
|
}
|
||||||
|
&.entity-tag--level-two-normal {
|
||||||
|
border-color: $normal-color;
|
||||||
|
color: $normal-color;
|
||||||
|
background-color: $normal-light-color;
|
||||||
|
}
|
||||||
|
&.entity-tag--level-two-negative {
|
||||||
|
border-color: $negative-color;
|
||||||
|
color: $negative-color;
|
||||||
|
background-color: $negative-light-color;
|
||||||
|
}
|
||||||
|
&.entity-tag--level-two-positive {
|
||||||
|
border-color: $positive-color;
|
||||||
|
color: $positive-color;
|
||||||
|
background-color: $positive-light-color;
|
||||||
|
}
|
||||||
|
&.entity-tag--level-two-negative-no-background {
|
||||||
|
border-color: $negative-color;
|
||||||
|
color: $negative-color;
|
||||||
|
}
|
||||||
|
&.entity-tag--level-two-positive-no-background {
|
||||||
|
border-color: $positive-color;
|
||||||
|
color: $positive-color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/*
|
||||||
.entity-detail.cn-home {
|
.entity-detail.cn-home {
|
||||||
.panel-chart {
|
.panel-chart {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
@@ -105,3 +169,4 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
justify-content: flex-start;
|
justify-content: flex-start;
|
||||||
}
|
}
|
||||||
|
|
||||||
.explorer-top-tools {
|
.explorer-top-tools, .explorer-detection-top-tools {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: flex-end;
|
justify-content: flex-end;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
@@ -37,7 +37,7 @@
|
|||||||
}
|
}
|
||||||
.el-button--mini{
|
.el-button--mini{
|
||||||
padding: 4px 6px !important;
|
padding: 4px 6px !important;
|
||||||
min-height: 26px !important;
|
min-height: 28px !important;
|
||||||
&.active i {
|
&.active i {
|
||||||
color: $--color-primary;
|
color: $--color-primary;
|
||||||
}
|
}
|
||||||
@@ -46,6 +46,48 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.explorer-detection-top-tools {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
}
|
||||||
|
.explorer-top-tools-new {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
}
|
||||||
|
.explorer-top-tools-title {
|
||||||
|
font-size: 24px;
|
||||||
|
line-height: 24px;
|
||||||
|
font-weight: 900;
|
||||||
|
color: #353636;
|
||||||
|
}
|
||||||
|
.explorer-top-tools-block {
|
||||||
|
height: 28px;
|
||||||
|
line-height: 28px;
|
||||||
|
background: #F5F8FA;
|
||||||
|
font-size: 14px;
|
||||||
|
color: #353636;
|
||||||
|
font-weight: 500;
|
||||||
|
padding: 0 10px;
|
||||||
|
margin-right: 20px;
|
||||||
|
border: 1px solid #E2E5EC;
|
||||||
|
border-radius: 2px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.detection-icon-setting {
|
||||||
|
margin-right: 10px;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
.detection-border {
|
||||||
|
border: 1px solid #E2E5EC;
|
||||||
|
border-radius: 4px;
|
||||||
|
}
|
||||||
|
.explorer-result {
|
||||||
|
margin-top: 10px;
|
||||||
|
margin-bottom: 18px;
|
||||||
|
font-size: 14px;
|
||||||
|
color: #353636;
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
.explorer-container {
|
.explorer-container {
|
||||||
display: flex;
|
display: flex;
|
||||||
overflow: visible; /*overflow: hidden;*/
|
overflow: visible; /*overflow: hidden;*/
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
background: #FFFFFF;
|
background: #FFFFFF;
|
||||||
border-radius: 2px;
|
border-radius: 2px;
|
||||||
transition: all .2s;
|
transition: all .2s;
|
||||||
|
//border: 1px solid #E2E5EC; 新版实体列表改版,后续记得解开
|
||||||
|
|
||||||
&:hover .cn-entity__header .header__content {
|
&:hover .cn-entity__header .header__content {
|
||||||
|
|
||||||
|
|||||||
@@ -87,7 +87,7 @@
|
|||||||
padding-right: 20px;
|
padding-right: 20px;
|
||||||
|
|
||||||
&.row__label--width130 {
|
&.row__label--width130 {
|
||||||
flex-basis: 130px;
|
flex-basis: 140px;
|
||||||
padding-right: unset;
|
padding-right: unset;
|
||||||
}
|
}
|
||||||
&.row__label--width160 {
|
&.row__label--width160 {
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
.cn-entity--list {
|
.cn-entity--list {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
//border: 1px #E2E5EC solid;
|
||||||
|
//margin-bottom: 10px;
|
||||||
|
//border-radius: 4px;
|
||||||
|
// 新版实体列表改版,后续记得解开
|
||||||
|
|
||||||
.cn-entity__collapse {
|
.cn-entity__collapse {
|
||||||
margin-bottom: 1px;
|
margin-bottom: 1px;
|
||||||
@@ -9,7 +13,8 @@
|
|||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: flex-start;
|
align-items: flex-start;
|
||||||
background-color: #F3F7FA;
|
background-color: #F3F7FA;
|
||||||
|
//border-radius: 4px 0 0 4px;
|
||||||
|
// 新版实体列表改版,后续记得解开
|
||||||
span {
|
span {
|
||||||
transform: rotate(0);
|
transform: rotate(0);
|
||||||
transition: all linear .2s;
|
transition: all linear .2s;
|
||||||
@@ -36,10 +41,12 @@
|
|||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
|
//align-content: center;
|
||||||
padding: 16px 0;
|
padding: 16px 0;
|
||||||
margin-bottom: 1px;
|
margin-bottom: 1px;
|
||||||
background-color: white;
|
background-color: white;
|
||||||
|
//border-radius: 0 4px 4px 0;
|
||||||
|
// 新版实体列表改版,后续记得解开
|
||||||
.cn-entity__icon {
|
.cn-entity__icon {
|
||||||
margin-left: 26px;
|
margin-left: 26px;
|
||||||
margin-right: 10px;
|
margin-right: 10px;
|
||||||
@@ -70,6 +77,13 @@
|
|||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
padding-bottom: 3px;
|
padding-bottom: 3px;
|
||||||
color: #333333;
|
color: #333333;
|
||||||
|
//.cn-entity__header-title {
|
||||||
|
// margin-right: 10px;
|
||||||
|
//}
|
||||||
|
//.cn-entity__header-tag {
|
||||||
|
//
|
||||||
|
//}
|
||||||
|
// 新版实体列表改版,后续记得解开
|
||||||
}
|
}
|
||||||
|
|
||||||
.cn-entity__body {
|
.cn-entity__body {
|
||||||
@@ -87,7 +101,7 @@
|
|||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
|
|
||||||
.basic-info__item {
|
.basic-info__item {
|
||||||
padding-right: 40px;
|
padding-right: 30px;
|
||||||
|
|
||||||
.item__box {
|
.item__box {
|
||||||
display: flex;
|
display: flex;
|
||||||
@@ -105,7 +119,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
i {
|
i {
|
||||||
padding-right: 6px;
|
padding-right: 5px;
|
||||||
color: #8FA1BE;
|
color: #8FA1BE;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
height: 13px;
|
height: 13px;
|
||||||
@@ -147,8 +161,6 @@
|
|||||||
span:last-of-type {
|
span:last-of-type {
|
||||||
color: #666;
|
color: #666;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -157,10 +169,19 @@
|
|||||||
padding: 0 30px;
|
padding: 0 30px;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
color: #3976CB;
|
color: #3976CB;
|
||||||
|
//color: #2C72C6;
|
||||||
|
//font-weight: 400;
|
||||||
|
//margin-top: -17px;
|
||||||
|
// 新版实体列表改版,后续记得解开
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//i {
|
||||||
|
// font-size: 12px;
|
||||||
|
// margin-right: 5px;
|
||||||
|
//}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,21 +1,22 @@
|
|||||||
.cn-builtin {
|
.cn-report {
|
||||||
background: #fff;
|
background: #fff;
|
||||||
margin: 10px;
|
margin: 10px;
|
||||||
height: calc(100% - 20px) !important;
|
height: calc(100% - 20px) !important;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
.cn-builtin-left {
|
.cn-report-left {
|
||||||
width: 288px;
|
width: 288px;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
border-right: 1px solid #E7EAED;
|
border-right: 1px solid #E7EAED;
|
||||||
position: relative;
|
position: relative;
|
||||||
.cn-builtin-left-title {
|
overflow: auto;
|
||||||
|
.cn-report-left-title {
|
||||||
padding: 28px 0 26px 13px;
|
padding: 28px 0 26px 13px;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
color: #333333;
|
color: #333333;
|
||||||
letter-spacing: 0;
|
letter-spacing: 0;
|
||||||
}
|
}
|
||||||
.cn-builtin-left-menu {
|
.cn-report-left-menu {
|
||||||
width: 250px;
|
width: 250px;
|
||||||
word-break: normal;
|
word-break: normal;
|
||||||
margin: auto;
|
margin: auto;
|
||||||
@@ -25,13 +26,13 @@
|
|||||||
padding: 14px;
|
padding: 14px;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
.cn-builtin-left-menu.cn-active {
|
.cn-report-left-menu.cn-active {
|
||||||
background: #F4FAFF;
|
background: #F4FAFF;
|
||||||
border-radius: 2px;
|
border-radius: 2px;
|
||||||
color: #0091FF;
|
color: #0091FF;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.cn-builtin-right {
|
.cn-report-right {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
.list-page .main-container {
|
.list-page .main-container {
|
||||||
padding: 0;
|
padding: 0;
|
||||||
@@ -73,7 +74,7 @@
|
|||||||
height: 100%;
|
height: 100%;
|
||||||
width: calc(100% - 32px);
|
width: calc(100% - 32px);
|
||||||
background: #fff; //盖住fixed产生的阴影
|
background: #fff; //盖住fixed产生的阴影
|
||||||
::v-deep .is-leaf {
|
:deep .is-leaf {
|
||||||
color: #1b2e3b;
|
color: #1b2e3b;
|
||||||
background: #ebeef5;
|
background: #ebeef5;
|
||||||
}
|
}
|
||||||
@@ -139,6 +140,12 @@
|
|||||||
color: #666666;
|
color: #666666;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
margin-bottom: 4px;
|
margin-bottom: 4px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
i {
|
||||||
|
padding: 2px 3px 0 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.expand-time {
|
.expand-time {
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
1165
src/assets/css/components/views/setting/knowledgeBase.scss
Normal file
@@ -1,8 +1,8 @@
|
|||||||
@font-face {
|
@font-face {
|
||||||
font-family: "cn-icon"; /* Project id 2614877 */
|
font-family: "cn-icon"; /* Project id 2614877 */
|
||||||
src: url('iconfont.woff2?t=1663570533591') format('woff2'),
|
src: url('iconfont.woff2?t=1687167070241') format('woff2'),
|
||||||
url('iconfont.woff?t=1663570533591') format('woff'),
|
url('iconfont.woff?t=1687167070241') format('woff'),
|
||||||
url('iconfont.ttf?t=1663570533591') format('truetype');
|
url('iconfont.ttf?t=1687167070241') format('truetype');
|
||||||
}
|
}
|
||||||
|
|
||||||
.cn-icon {
|
.cn-icon {
|
||||||
@@ -13,6 +13,242 @@
|
|||||||
-moz-osx-font-smoothing: grayscale;
|
-moz-osx-font-smoothing: grayscale;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.cn-icon-expand-relationship:before {
|
||||||
|
content: "\e7f8";
|
||||||
|
}
|
||||||
|
|
||||||
|
.cn-icon-resolve-ip:before {
|
||||||
|
content: "\e7f9";
|
||||||
|
}
|
||||||
|
|
||||||
|
.cn-icon-subdomain:before {
|
||||||
|
content: "\e7fa";
|
||||||
|
}
|
||||||
|
|
||||||
|
.cn-icon-graph:before {
|
||||||
|
content: "\e7f5";
|
||||||
|
}
|
||||||
|
|
||||||
|
.cn-icon-detail:before {
|
||||||
|
content: "\e7f6";
|
||||||
|
}
|
||||||
|
|
||||||
|
.cn-icon-tag:before {
|
||||||
|
content: "\e7f7";
|
||||||
|
}
|
||||||
|
|
||||||
|
.cn-icon-upload2:before {
|
||||||
|
content: "\e7f4";
|
||||||
|
}
|
||||||
|
|
||||||
|
.cn-icon-warn:before {
|
||||||
|
content: "\e7f3";
|
||||||
|
}
|
||||||
|
|
||||||
|
.cn-icon-providers:before {
|
||||||
|
content: "\e7f2";
|
||||||
|
}
|
||||||
|
|
||||||
|
.cn-icon-configure-policies:before {
|
||||||
|
content: "\e7f1";
|
||||||
|
}
|
||||||
|
|
||||||
|
.cn-icon-dns-insight:before {
|
||||||
|
content: "\e7ef";
|
||||||
|
}
|
||||||
|
|
||||||
|
.cn-icon-network-performance:before {
|
||||||
|
content: "\e7f0";
|
||||||
|
}
|
||||||
|
|
||||||
|
.cn-icon-copy:before {
|
||||||
|
content: "\e7ee";
|
||||||
|
}
|
||||||
|
|
||||||
|
.cn-icon-analysis:before {
|
||||||
|
content: "\e7ed";
|
||||||
|
}
|
||||||
|
|
||||||
|
.cn-icon-duration:before {
|
||||||
|
content: "\e7ec";
|
||||||
|
}
|
||||||
|
|
||||||
|
.cn-icon-select:before {
|
||||||
|
content: "\e7eb";
|
||||||
|
}
|
||||||
|
|
||||||
|
.cn-icon-expire-date:before {
|
||||||
|
content: "\e7d4";
|
||||||
|
}
|
||||||
|
|
||||||
|
.cn-icon-registry-email:before {
|
||||||
|
content: "\e7d5";
|
||||||
|
}
|
||||||
|
|
||||||
|
.cn-icon-geo-location:before {
|
||||||
|
content: "\e7d6";
|
||||||
|
}
|
||||||
|
|
||||||
|
.cn-icon-credit-rating:before {
|
||||||
|
content: "\e7d7";
|
||||||
|
}
|
||||||
|
|
||||||
|
.cn-icon-registration-date:before {
|
||||||
|
content: "\e7d8";
|
||||||
|
}
|
||||||
|
|
||||||
|
.cn-icon-app-full-name:before {
|
||||||
|
content: "\e7d9";
|
||||||
|
}
|
||||||
|
|
||||||
|
.cn-icon-description:before {
|
||||||
|
content: "\e7da";
|
||||||
|
}
|
||||||
|
|
||||||
|
.cn-icon-technology:before {
|
||||||
|
content: "\e7db";
|
||||||
|
}
|
||||||
|
|
||||||
|
.cn-icon-registrar:before {
|
||||||
|
content: "\e7dc";
|
||||||
|
}
|
||||||
|
|
||||||
|
.cn-icon-registry:before {
|
||||||
|
content: "\e7dd";
|
||||||
|
}
|
||||||
|
|
||||||
|
.cn-icon-operator:before {
|
||||||
|
content: "\e7de";
|
||||||
|
}
|
||||||
|
|
||||||
|
.cn-icon-sub-type:before {
|
||||||
|
content: "\e7df";
|
||||||
|
}
|
||||||
|
|
||||||
|
.cn-icon-app-name:before {
|
||||||
|
content: "\e7e0";
|
||||||
|
}
|
||||||
|
|
||||||
|
.cn-icon-registration-country:before {
|
||||||
|
content: "\e7e1";
|
||||||
|
}
|
||||||
|
|
||||||
|
.cn-icon-as:before {
|
||||||
|
content: "\e7e2";
|
||||||
|
}
|
||||||
|
|
||||||
|
.cn-icon-as-subnet:before {
|
||||||
|
content: "\e7e3";
|
||||||
|
}
|
||||||
|
|
||||||
|
.cn-icon-category2:before {
|
||||||
|
content: "\e7e4";
|
||||||
|
}
|
||||||
|
|
||||||
|
.cn-icon-domain-name-resolution:before {
|
||||||
|
content: "\e7e5";
|
||||||
|
}
|
||||||
|
|
||||||
|
.cn-icon-open-port:before {
|
||||||
|
content: "\e7e6";
|
||||||
|
}
|
||||||
|
|
||||||
|
.cn-icon-security-event:before {
|
||||||
|
content: "\e7e7";
|
||||||
|
}
|
||||||
|
|
||||||
|
.cn-icon-dns-ptr:before {
|
||||||
|
content: "\e7e8";
|
||||||
|
}
|
||||||
|
|
||||||
|
.cn-icon-information-aggregation:before {
|
||||||
|
content: "\e7e9";
|
||||||
|
}
|
||||||
|
|
||||||
|
.cn-icon-digital-certificate:before {
|
||||||
|
content: "\e7ea";
|
||||||
|
}
|
||||||
|
|
||||||
|
.cn-icon-save:before {
|
||||||
|
content: "\e7d1";
|
||||||
|
}
|
||||||
|
|
||||||
|
.cn-icon-edit1:before {
|
||||||
|
content: "\e7d2";
|
||||||
|
}
|
||||||
|
|
||||||
|
.cn-icon-revoke:before {
|
||||||
|
content: "\e7d3";
|
||||||
|
}
|
||||||
|
|
||||||
|
.cn-icon-administrations:before {
|
||||||
|
content: "\e7be";
|
||||||
|
}
|
||||||
|
|
||||||
|
.cn-icon-chart:before {
|
||||||
|
content: "\e7b8";
|
||||||
|
}
|
||||||
|
|
||||||
|
.cn-icon-user2:before {
|
||||||
|
content: "\e7b9";
|
||||||
|
}
|
||||||
|
|
||||||
|
.cn-icon-operation-log:before {
|
||||||
|
content: "\e7ba";
|
||||||
|
}
|
||||||
|
|
||||||
|
.cn-icon-role2:before {
|
||||||
|
content: "\e7bb";
|
||||||
|
}
|
||||||
|
|
||||||
|
.cn-icon-proxy:before {
|
||||||
|
content: "\e7bc";
|
||||||
|
}
|
||||||
|
|
||||||
|
.cn-icon-i18n:before {
|
||||||
|
content: "\e7bd";
|
||||||
|
}
|
||||||
|
|
||||||
|
.cn-icon-baocuo:before {
|
||||||
|
content: "\e7b7";
|
||||||
|
}
|
||||||
|
|
||||||
|
.cn-icon-a-SecurityEvent:before {
|
||||||
|
content: "\e7ae";
|
||||||
|
}
|
||||||
|
|
||||||
|
.cn-icon-bianji1:before {
|
||||||
|
content: "\e7af";
|
||||||
|
}
|
||||||
|
|
||||||
|
.cn-icon-a-PerformanceEvent:before {
|
||||||
|
content: "\e7b0";
|
||||||
|
}
|
||||||
|
|
||||||
|
.cn-icon-xinjian:before {
|
||||||
|
content: "\e7b1";
|
||||||
|
}
|
||||||
|
|
||||||
|
.cn-icon-a-RegulatoryRiskEvent:before {
|
||||||
|
content: "\e7b2";
|
||||||
|
}
|
||||||
|
|
||||||
|
.cn-icon-Delete1:before {
|
||||||
|
content: "\e7b3";
|
||||||
|
}
|
||||||
|
|
||||||
|
.cn-icon-a-EvaluatedTarget:before {
|
||||||
|
content: "\e7b4";
|
||||||
|
}
|
||||||
|
|
||||||
|
.cn-icon-a-GeneralSettings:before {
|
||||||
|
content: "\e7b5";
|
||||||
|
}
|
||||||
|
|
||||||
|
.cn-icon-Thresholds:before {
|
||||||
|
content: "\e7b6";
|
||||||
|
}
|
||||||
|
|
||||||
.cn-icon-good:before {
|
.cn-icon-good:before {
|
||||||
content: "\e7ad";
|
content: "\e7ad";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,12 +31,12 @@ $--button-primary-background-color: $--color-primary; // 普通按钮背景色
|
|||||||
$--button-hover-tint-percent: 20%; // 非灰色按钮在鼠标hover时背景色变浅的幅度
|
$--button-hover-tint-percent: 20%; // 非灰色按钮在鼠标hover时背景色变浅的幅度
|
||||||
$--button-active-shade-percent: 0; // 非灰色按钮在focus时背景色变深的幅度
|
$--button-active-shade-percent: 0; // 非灰色按钮在focus时背景色变深的幅度
|
||||||
|
|
||||||
$--button-gray-color: #666; // 灰色按钮字色
|
$--button-gray-color: #353636; // 灰色按钮字色
|
||||||
$--button-gray-hover-color: $--button-gray-color; // 灰色按钮hover字色
|
$--button-gray-hover-color: $--button-gray-color; // 灰色按钮hover字色
|
||||||
$--button-gray-active-color: $--color-primary; // 灰色按钮focus字色
|
$--button-gray-active-color: $--color-primary; // 灰色按钮focus字色
|
||||||
$--button-gray-background-color: #F9F9F9; // 灰色按钮背景色
|
$--button-gray-background-color: #F9F9F9; // 灰色按钮背景色
|
||||||
$--button-gray-hover-background-color: #FFF; // 灰色按钮hover背景色
|
$--button-gray-hover-background-color: #EBF1F4; // 灰色按钮hover背景色
|
||||||
$--button-gray-active-background-color: $--button-gray-hover-background-color; // 灰色按钮focus背景色
|
$--button-gray-active-background-color: #E0E7EA; // 灰色按钮focus背景色
|
||||||
$--button-gray-border-color: $--border-color-primary; // 灰色按钮边框色
|
$--button-gray-border-color: $--border-color-primary; // 灰色按钮边框色
|
||||||
$--button-gray-hover-border-color: $--button-gray-border-color; // 灰色按钮hover边框色
|
$--button-gray-hover-border-color: $--button-gray-border-color; // 灰色按钮hover边框色
|
||||||
$--button-gray-active-border-color-tint-percent: 30%; // 灰色按钮在focus时边框色相对于主题色变浅的幅度
|
$--button-gray-active-border-color-tint-percent: 30%; // 灰色按钮在focus时边框色相对于主题色变浅的幅度
|
||||||
|
|||||||
@@ -2,10 +2,10 @@
|
|||||||
|
|
||||||
/** 重写element-ui变量 **/
|
/** 重写element-ui变量 **/
|
||||||
|
|
||||||
$--color-primary: #0091ff; // 主题色
|
$--color-primary: #699DC9; // 主题色
|
||||||
$--color-primary-dark-10: darken(#0091ff, 10%); // 默认主题色 深10%
|
$--color-primary-dark-10: darken(#699DC9, 10%); // 默认主题色 深10%
|
||||||
$--color-primary-light-10: lighten(#0091ff, 10%); // 默认主题色 浅10%
|
$--color-primary-light-10: lighten(#699DC9, 10%); // 默认主题色 浅10%
|
||||||
$--color-primary-light-20: lighten(#0091ff, 20%); // 默认主题色 浅20%
|
$--color-primary-light-20: lighten(#699DC9, 20%); // 默认主题色 浅20%
|
||||||
|
|
||||||
/* menu相关 */
|
/* menu相关 */
|
||||||
$--menu-background-color: #00162B; // menu背景色
|
$--menu-background-color: #00162B; // menu背景色
|
||||||
@@ -31,12 +31,12 @@ $--button-primary-background-color: $--color-primary; // 普通按钮背景色
|
|||||||
$--button-hover-tint-percent: 20%; // 非灰色按钮在鼠标hover时背景色变浅的幅度
|
$--button-hover-tint-percent: 20%; // 非灰色按钮在鼠标hover时背景色变浅的幅度
|
||||||
$--button-active-shade-percent: 0; // 非灰色按钮在focus时背景色变深的幅度
|
$--button-active-shade-percent: 0; // 非灰色按钮在focus时背景色变深的幅度
|
||||||
|
|
||||||
$--button-gray-color: #666; // 灰色按钮字色
|
$--button-gray-color: #353636; // 灰色按钮字色
|
||||||
$--button-gray-hover-color: $--button-gray-color; // 灰色按钮hover字色
|
$--button-gray-hover-color: $--button-gray-color; // 灰色按钮hover字色
|
||||||
$--button-gray-active-color: $--color-primary; // 灰色按钮focus字色
|
$--button-gray-active-color: $--color-primary; // 灰色按钮focus字色
|
||||||
$--button-gray-background-color: #F9F9F9; // 灰色按钮背景色
|
$--button-gray-background-color: #F9F9F9; // 灰色按钮背景色
|
||||||
$--button-gray-hover-background-color: #FFF; // 灰色按钮hover背景色
|
$--button-gray-hover-background-color: #EBF1F4; // 灰色按钮hover背景色
|
||||||
$--button-gray-active-background-color: $--button-gray-hover-background-color; // 灰色按钮focus背景色
|
$--button-gray-active-background-color: #E0E7EA; // 灰色按钮focus背景色
|
||||||
$--button-gray-border-color: $--border-color-primary; // 灰色按钮边框色
|
$--button-gray-border-color: $--border-color-primary; // 灰色按钮边框色
|
||||||
$--button-gray-hover-border-color: $--button-gray-border-color; // 灰色按钮hover边框色
|
$--button-gray-hover-border-color: $--button-gray-border-color; // 灰色按钮hover边框色
|
||||||
$--button-gray-active-border-color-tint-percent: 30%; // 灰色按钮在focus时边框色相对于主题色变浅的幅度
|
$--button-gray-active-border-color-tint-percent: 30%; // 灰色按钮在focus时边框色相对于主题色变浅的幅度
|
||||||
|
|||||||
@@ -60,6 +60,7 @@ export default {
|
|||||||
// 连接符列表
|
// 连接符列表
|
||||||
connectionList: Array
|
connectionList: Array
|
||||||
},
|
},
|
||||||
|
emits: ['search'],
|
||||||
methods: {
|
methods: {
|
||||||
search (parseData) {
|
search (parseData) {
|
||||||
this.$emit('search', parseData)
|
this.$emit('search', parseData)
|
||||||
@@ -114,11 +115,11 @@ export default {
|
|||||||
},
|
},
|
||||||
setup (props) {
|
setup (props) {
|
||||||
// 默认为文本模式
|
// 默认为文本模式
|
||||||
let searchMode = ref('text')
|
const searchMode = ref('text')
|
||||||
if (props.defaultMode) {
|
if (props.defaultMode) {
|
||||||
switch (props.defaultMode) {
|
switch (props.defaultMode) {
|
||||||
case 'tag': {
|
case 'tag': {
|
||||||
searchMode = 'tag'
|
searchMode.value = 'tag'
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,6 +36,7 @@
|
|||||||
<!-- 值 -->
|
<!-- 值 -->
|
||||||
<div class="condition__value">
|
<div class="condition__value">
|
||||||
<div v-if="meta.value.isEditing">
|
<div v-if="meta.value.isEditing">
|
||||||
|
<!--避免blur事件和keyup.enter重复执行-->
|
||||||
<el-input v-model="meta.value.value" size="mini" @blur="valueBlur(meta)" ref="valueInput" @keyup.enter="valueBlur(meta)"></el-input>
|
<el-input v-model="meta.value.value" size="mini" @blur="valueBlur(meta)" ref="valueInput" @keyup.enter="valueBlur(meta)"></el-input>
|
||||||
</div>
|
</div>
|
||||||
<span v-else @click="valueClick(meta)">{{meta.value.label}}</span>
|
<span v-else @click="valueClick(meta)">{{meta.value.label}}</span>
|
||||||
@@ -75,9 +76,12 @@
|
|||||||
<div class="tag-search__add" @click="addCondition">{{$t('entities.advancedSearch.add')}}</div>
|
<div class="tag-search__add" @click="addCondition">{{$t('entities.advancedSearch.add')}}</div>
|
||||||
<div class="search__suffixes search__suffixes--tag-mode">
|
<div class="search__suffixes search__suffixes--tag-mode">
|
||||||
<div class="search__suffix" @click="changeMode">
|
<div class="search__suffix" @click="changeMode">
|
||||||
|
<!-- 新版实体列表改版,后续记得解开-->
|
||||||
|
<!-- <div class="search__suffix" style="margin-right: 12px" @click="changeMode">-->
|
||||||
<i class="cn-icon cn-icon-search-normal"></i>
|
<i class="cn-icon cn-icon-search-normal"></i>
|
||||||
</div>
|
</div>
|
||||||
<div class="search__suffix" @click="search">
|
<div class="search__suffix" @click="search">
|
||||||
|
<!-- <div class="search__suffix new-search__suffix" @click="search">-->
|
||||||
<i class="el-icon-search"></i>
|
<i class="el-icon-search"></i>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -89,6 +93,7 @@ import Meta, { connection, condition, columnType } from './meta/meta'
|
|||||||
import _ from 'lodash'
|
import _ from 'lodash'
|
||||||
import { handleErrorTip } from '@/components/advancedSearch/meta/error'
|
import { handleErrorTip } from '@/components/advancedSearch/meta/error'
|
||||||
import Parser, { stringInQuot } from '@/components/advancedSearch/meta/parser'
|
import Parser, { stringInQuot } from '@/components/advancedSearch/meta/parser'
|
||||||
|
import { overwriteUrl, urlParamsHandler } from '@/utils/tools'
|
||||||
export default {
|
export default {
|
||||||
name: 'TagMode',
|
name: 'TagMode',
|
||||||
props: {
|
props: {
|
||||||
@@ -104,6 +109,7 @@ export default {
|
|||||||
metaList: []
|
metaList: []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
emits: ['changeMode', 'search'],
|
||||||
methods: {
|
methods: {
|
||||||
// 新增条件
|
// 新增条件
|
||||||
addCondition (meta) {
|
addCondition (meta) {
|
||||||
@@ -130,7 +136,10 @@ export default {
|
|||||||
this.metaList.push(newCondition)
|
this.metaList.push(newCondition)
|
||||||
|
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
this.$refs.columnSelect.focus()
|
const selectList = this.$refs.columnSelect
|
||||||
|
if (selectList && selectList.length > 0) {
|
||||||
|
this.$refs.columnSelect[selectList.length - 1].focus() // 在for循环里生成的dom,所以是数组
|
||||||
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -180,7 +189,7 @@ export default {
|
|||||||
columnClick (meta) {
|
columnClick (meta) {
|
||||||
meta.column.isEditing = true
|
meta.column.isEditing = true
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
this.$refs.columnSelect.focus()
|
this.$refs.columnSelect[this.$refs.columnSelect.length - 1].focus()
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
columnBlur (meta, index) {
|
columnBlur (meta, index) {
|
||||||
@@ -219,7 +228,10 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
this.$refs.valueInput.focus()
|
const selectList = this.$refs.valueInput
|
||||||
|
if (selectList && selectList.length > 0) {
|
||||||
|
this.$refs.valueInput[selectList.length - 1].focus() // 在for循环里生成的dom,所以是数组
|
||||||
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
operatorClick (meta) {
|
operatorClick (meta) {
|
||||||
@@ -244,7 +256,8 @@ export default {
|
|||||||
str = str.substring(1, str.length)
|
str = str.substring(1, str.length)
|
||||||
str = str.substring(0, str.length - 1)
|
str = str.substring(0, str.length - 1)
|
||||||
}
|
}
|
||||||
if (str.indexOf("'") > -1) {
|
// 如果此时参数为xi'an,处理为xi''an,后一个条件避免若参数为xi''an,则不处理
|
||||||
|
if (str.indexOf("'") > -1 && str.indexOf("''") === -1) {
|
||||||
str = str.replace(/'/g, "''")
|
str = str.replace(/'/g, "''")
|
||||||
}
|
}
|
||||||
return str
|
return str
|
||||||
@@ -263,7 +276,8 @@ export default {
|
|||||||
str = str.substring(1, str.length)
|
str = str.substring(1, str.length)
|
||||||
str = str.substring(0, str.length - 1)
|
str = str.substring(0, str.length - 1)
|
||||||
}
|
}
|
||||||
if (str.indexOf("'") > -1) {
|
// 如果此时参数为xi'an,处理为xi''an,后一个条件避免若参数为xi''an,则不处理
|
||||||
|
if (str.indexOf("'") > -1 && str.indexOf("''") === -1) {
|
||||||
str = str.replace(/'/g, "''")
|
str = str.replace(/'/g, "''")
|
||||||
}
|
}
|
||||||
meta.value.value = str
|
meta.value.value = str
|
||||||
@@ -275,7 +289,7 @@ export default {
|
|||||||
valueClick (meta) {
|
valueClick (meta) {
|
||||||
meta.value.isEditing = true
|
meta.value.isEditing = true
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
this.$refs.valueInput.focus()
|
this.$refs.valueInput[0].focus()
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
// 判断是否是用户自己添加的内容,用于判断是否是全局搜索
|
// 判断是否是用户自己添加的内容,用于判断是否是全局搜索
|
||||||
@@ -307,13 +321,15 @@ export default {
|
|||||||
const parser = new Parser(this.columnList)
|
const parser = new Parser(this.columnList)
|
||||||
const errorList = parser.validateMeta(this.metaList)
|
const errorList = parser.validateMeta(this.metaList)
|
||||||
if (_.isEmpty(errorList)) {
|
if (_.isEmpty(errorList)) {
|
||||||
|
this.reloadUrl({ mode: 'text' })
|
||||||
this.$emit('changeMode', 'text', parser.parseMeta(this.metaList))
|
this.$emit('changeMode', 'text', parser.parseMeta(this.metaList))
|
||||||
} else {
|
} else {
|
||||||
|
this.reloadUrl({ mode: 'text' })
|
||||||
this.$emit('changeMode', 'text', { metaList: [], str: '' })
|
this.$emit('changeMode', 'text', { metaList: [], str: '' })
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 处理value,例如转换IN的值
|
// 处理value,例如转换IN的值
|
||||||
handleValue (value, column, operator) {
|
handleValue (value, column, operator, flag) {
|
||||||
const isArray = ['IN', 'NOT IN'].indexOf(operator) > -1
|
const isArray = ['IN', 'NOT IN'].indexOf(operator) > -1
|
||||||
if (isArray) {
|
if (isArray) {
|
||||||
if (_.isArray(value)) {
|
if (_.isArray(value)) {
|
||||||
@@ -323,7 +339,14 @@ export default {
|
|||||||
return value
|
return value
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
return column.type === columnType.string ? stringInQuot(value) : value
|
let newValue = column.type === columnType.string ? stringInQuot(value) : value
|
||||||
|
if (flag) {
|
||||||
|
newValue = newValue.slice(1)
|
||||||
|
newValue = newValue.slice(0, newValue.length - 1)
|
||||||
|
return newValue
|
||||||
|
} else {
|
||||||
|
return newValue
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
addParams (params) {
|
addParams (params) {
|
||||||
@@ -337,7 +360,7 @@ export default {
|
|||||||
meta.column.label = column ? column.label : param.column
|
meta.column.label = column ? column.label : param.column
|
||||||
meta.operator.value = '='
|
meta.operator.value = '='
|
||||||
meta.operator.show = true
|
meta.operator.show = true
|
||||||
meta.value.value = this.handleValue(param.value, column, column.operator)
|
meta.value.value = this.handleValue(param.value, column, column.operator, 'noQuotes')
|
||||||
meta.value.show = true
|
meta.value.show = true
|
||||||
meta.value.label = meta.value.value
|
meta.value.label = meta.value.value
|
||||||
this.addCondition(meta)
|
this.addCondition(meta)
|
||||||
@@ -377,10 +400,28 @@ export default {
|
|||||||
this.metaList.splice(metaIndex, 2)
|
this.metaList.splice(metaIndex, 2)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* 向地址栏添加/删除参数
|
||||||
|
*/
|
||||||
|
reloadUrl (newParam, clean) {
|
||||||
|
const { query } = this.$route
|
||||||
|
let newUrl = urlParamsHandler(window.location.href, query, newParam)
|
||||||
|
if (clean) {
|
||||||
|
newUrl = urlParamsHandler(window.location.href, query, newParam, clean)
|
||||||
|
}
|
||||||
|
overwriteUrl(newUrl)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted () {
|
mounted () {
|
||||||
const vm = this
|
const vm = this
|
||||||
|
// 如果地址栏包含参数q,则匹配出metaList到搜索栏回显使用
|
||||||
|
const { q } = this.$route.query
|
||||||
|
if (q) {
|
||||||
|
const parser = new Parser(this.columnList)
|
||||||
|
this.metaList = parser.parseStr(q).metaList
|
||||||
|
}
|
||||||
|
|
||||||
this.emitter.on('advanced-search', function () {
|
this.emitter.on('advanced-search', function () {
|
||||||
vm.search()
|
vm.search()
|
||||||
})
|
})
|
||||||
@@ -398,3 +439,21 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
<!--// 新版实体列表改版,后续记得解开-->
|
||||||
|
<!--<style lang="scss">-->
|
||||||
|
<!--.new-search__suffix {-->
|
||||||
|
<!-- width: 41px;-->
|
||||||
|
<!-- height: 41px;-->
|
||||||
|
<!-- line-height: 41px;-->
|
||||||
|
<!-- background: #38ACD2;-->
|
||||||
|
<!-- text-align: center;-->
|
||||||
|
<!-- margin-top: -10px;-->
|
||||||
|
<!-- margin-right: -10px;-->
|
||||||
|
|
||||||
|
<!-- .el-icon-search {-->
|
||||||
|
<!-- color: #fff !important;-->
|
||||||
|
<!-- margin-top: 9px !important;-->
|
||||||
|
<!-- }-->
|
||||||
|
<!--}-->
|
||||||
|
<!--</style>-->
|
||||||
|
|||||||
@@ -6,6 +6,10 @@
|
|||||||
<div class="search__suffix" @click="changeMode">
|
<div class="search__suffix" @click="changeMode">
|
||||||
<i class="cn-icon cn-icon-search-advance"></i>
|
<i class="cn-icon cn-icon-search-advance"></i>
|
||||||
</div>
|
</div>
|
||||||
|
<!-- <div class="search__suffix-close" @click="cleanParams">-->
|
||||||
|
<!-- <i class="el-icon-error"></i>-->
|
||||||
|
<!-- </div>-->
|
||||||
|
<!-- <div class="search__suffix new-search__suffix" @click="search">-->
|
||||||
<div class="search__suffix" @click="search">
|
<div class="search__suffix" @click="search">
|
||||||
<i class="el-icon-search"></i>
|
<i class="el-icon-search"></i>
|
||||||
</div>
|
</div>
|
||||||
@@ -23,7 +27,8 @@ import CodeMirror from 'codemirror'
|
|||||||
import { toRaw } from 'vue'
|
import { toRaw } from 'vue'
|
||||||
import _ from 'lodash'
|
import _ from 'lodash'
|
||||||
import { columnType } from '@/components/advancedSearch/meta/meta'
|
import { columnType } from '@/components/advancedSearch/meta/meta'
|
||||||
import {handleErrorTip} from "@/components/advancedSearch/meta/error";
|
import { handleErrorTip } from '@/components/advancedSearch/meta/error'
|
||||||
|
import { overwriteUrl, urlParamsHandler } from '@/utils/tools'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'TextMode',
|
name: 'TextMode',
|
||||||
@@ -36,7 +41,11 @@ export default {
|
|||||||
codeMirror: null
|
codeMirror: null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
emits: ['changeMode', 'search'],
|
||||||
methods: {
|
methods: {
|
||||||
|
// cleanParams () {
|
||||||
|
// toRaw(this.codeMirror).setValue('')
|
||||||
|
// },
|
||||||
initCodeMirror () {
|
initCodeMirror () {
|
||||||
this.codeMirror = CodeMirror.fromTextArea(this.$refs.textSearch, {
|
this.codeMirror = CodeMirror.fromTextArea(this.$refs.textSearch, {
|
||||||
mode: {
|
mode: {
|
||||||
@@ -73,11 +82,14 @@ export default {
|
|||||||
const errorList = parser.validateStr(str)
|
const errorList = parser.validateStr(str)
|
||||||
if (_.isEmpty(errorList)) {
|
if (_.isEmpty(errorList)) {
|
||||||
const metaList = parser.parseStr(str)
|
const metaList = parser.parseStr(str)
|
||||||
|
this.reloadUrl({ mode: 'tag' })
|
||||||
this.$emit('changeMode', 'tag', metaList)
|
this.$emit('changeMode', 'tag', metaList)
|
||||||
} else {
|
} else {
|
||||||
|
this.reloadUrl({ mode: 'tag' })
|
||||||
this.$emit('changeMode', 'tag', { metaList: [], str: '' })
|
this.$emit('changeMode', 'tag', { metaList: [], str: '' })
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
this.reloadUrl({ mode: 'tag' })
|
||||||
this.$emit('changeMode', 'tag', { str: '', metaList: [] })
|
this.$emit('changeMode', 'tag', { str: '', metaList: [] })
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -127,6 +139,17 @@ export default {
|
|||||||
current = current.replace(oldSqlPiece, newSqlPiece)
|
current = current.replace(oldSqlPiece, newSqlPiece)
|
||||||
})
|
})
|
||||||
toRaw(this.codeMirror).setValue(current.trim())
|
toRaw(this.codeMirror).setValue(current.trim())
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* 向地址栏添加/删除参数
|
||||||
|
*/
|
||||||
|
reloadUrl (newParam, clean) {
|
||||||
|
const { query } = this.$route
|
||||||
|
let newUrl = urlParamsHandler(window.location.href, query, newParam)
|
||||||
|
if (clean) {
|
||||||
|
newUrl = urlParamsHandler(window.location.href, query, newParam, clean)
|
||||||
|
}
|
||||||
|
overwriteUrl(newUrl)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
@@ -142,7 +165,13 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted () {
|
mounted () {
|
||||||
|
// 如果地址栏包含参数q,则将参数q回显到搜索栏内
|
||||||
|
const { q } = this.$route.query
|
||||||
this.initCodeMirror()
|
this.initCodeMirror()
|
||||||
|
if (q) {
|
||||||
|
toRaw(this.codeMirror).setValue(q)
|
||||||
|
}
|
||||||
|
|
||||||
const vm = this
|
const vm = this
|
||||||
this.emitter.on('advanced-search', function () {
|
this.emitter.on('advanced-search', function () {
|
||||||
vm.search()
|
vm.search()
|
||||||
@@ -150,3 +179,29 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
<!--<style lang="scss">-->
|
||||||
|
<!--.search__suffix-close {-->
|
||||||
|
<!-- .el-icon-error {-->
|
||||||
|
<!-- font-size: 17px;-->
|
||||||
|
<!-- color: #C4C4C4;-->
|
||||||
|
<!-- margin: 0 12px;-->
|
||||||
|
<!-- cursor: pointer;-->
|
||||||
|
<!-- }-->
|
||||||
|
<!--}-->
|
||||||
|
|
||||||
|
<!--.new-search__suffix {-->
|
||||||
|
<!-- width: 41px;-->
|
||||||
|
<!-- height: 41px;-->
|
||||||
|
<!-- line-height: 41px;-->
|
||||||
|
<!-- background: #38ACD2;-->
|
||||||
|
<!-- text-align: center;-->
|
||||||
|
<!-- margin-top: -10px;-->
|
||||||
|
<!-- margin-right: -10px;-->
|
||||||
|
|
||||||
|
<!-- .el-icon-search {-->
|
||||||
|
<!-- color: #fff !important;-->
|
||||||
|
<!-- margin-top: 9px !important;-->
|
||||||
|
<!-- }-->
|
||||||
|
<!--}-->
|
||||||
|
<!--</style>-->
|
||||||
|
|||||||
@@ -233,6 +233,7 @@ export default class Parser {
|
|||||||
break
|
break
|
||||||
}
|
}
|
||||||
} else if (s === ' ') {
|
} else if (s === ' ') {
|
||||||
|
// 预留
|
||||||
} else if (s === '(') {
|
} else if (s === '(') {
|
||||||
token = new Token(types.leftBracket, s)
|
token = new Token(types.leftBracket, s)
|
||||||
token.setStart(i)
|
token.setStart(i)
|
||||||
@@ -750,6 +751,10 @@ export default class Parser {
|
|||||||
|
|
||||||
// 使用单引号包裹
|
// 使用单引号包裹
|
||||||
export function stringInQuot (value) {
|
export function stringInQuot (value) {
|
||||||
|
if (value.indexOf("'") > -1) {
|
||||||
|
value = value.split("'").join("''") // 如xi'an,多添加一个单引号,处理为xi''an
|
||||||
|
}
|
||||||
|
|
||||||
const match = `${value}`.match(/^'.+?'$/)
|
const match = `${value}`.match(/^'.+?'$/)
|
||||||
return match ? value : `'${value}'`
|
return match ? value : `'${value}'`
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -250,6 +250,10 @@ function handleType (value) {
|
|||||||
|
|
||||||
// 使用单引号包裹
|
// 使用单引号包裹
|
||||||
export function stringInQuot (value) {
|
export function stringInQuot (value) {
|
||||||
|
if (value.indexOf("'") > -1) {
|
||||||
|
value = value.split("'").join("''") // 如xi'an,多添加一个单引号,处理为xi''an
|
||||||
|
}
|
||||||
|
|
||||||
const match = `${value}`.match(/^'.+?'$/)
|
const match = `${value}`.match(/^'.+?'$/)
|
||||||
return match ? value : `'${value}'`
|
return match ? value : `'${value}'`
|
||||||
}
|
}
|
||||||
|
|||||||
258
src/components/common/ChartTabs.vue
Normal file
@@ -0,0 +1,258 @@
|
|||||||
|
<template>
|
||||||
|
<div class="chart-tabs administration-tabs">
|
||||||
|
<div class="chart-tabs__active-bar" :style="{'background-color': color}"></div>
|
||||||
|
<el-tabs v-model="currentTab" ref="elTabs" type="border-card" @tab-click="handleClick">
|
||||||
|
<el-tab-pane
|
||||||
|
v-for="(tab,index) in tabsData"
|
||||||
|
:key="tab.i18n"
|
||||||
|
:name="JSON.stringify(index)"
|
||||||
|
:disabled="tab.disable">
|
||||||
|
<template #label>
|
||||||
|
<div class="chart-tabs__label">
|
||||||
|
<i :class="tab.icon"></i>
|
||||||
|
<span>{{ $t(tab.i18n || tab.name) }}</span>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</el-tab-pane>
|
||||||
|
</el-tabs>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<!-- start----------------调用方式----------------start -->
|
||||||
|
<!--
|
||||||
|
组件名:<chart-tabs></chart-tabs>
|
||||||
|
目前有两种形式,分别是default、router
|
||||||
|
默认default,非路由切换:<chart-tabs :data="tabsData" />
|
||||||
|
路由模式router,点击tab路由切换:<chart-tabs :data="tabsData" router />
|
||||||
|
数据格式:
|
||||||
|
tabsData: [
|
||||||
|
{
|
||||||
|
i18n: 'entities.securityEvents',
|
||||||
|
path: '/detection/securityEvent',
|
||||||
|
icon: 'cn-icon cn-icon-a-SecurityEvent'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
需要禁用,则对应对象里添加 disable: true
|
||||||
|
-->
|
||||||
|
<!--
|
||||||
|
active颜色:<chart-tabs :data="tabsData" color="red" />
|
||||||
|
-->
|
||||||
|
<!--
|
||||||
|
接收回调:@click
|
||||||
|
-->
|
||||||
|
<!-- end----------------调用方式----------------end -->
|
||||||
|
<script>
|
||||||
|
import { overwriteUrl, urlParamsHandler } from '@/utils/tools'
|
||||||
|
import { ref } from 'vue'
|
||||||
|
import { useRoute, useRouter } from 'vue-router'
|
||||||
|
import { useStore } from 'vuex'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'ChartTabs',
|
||||||
|
props: {
|
||||||
|
data: {
|
||||||
|
type: Array
|
||||||
|
},
|
||||||
|
router: {
|
||||||
|
type: String,
|
||||||
|
default: 'noRouter'
|
||||||
|
},
|
||||||
|
color: {
|
||||||
|
type: String
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data () {
|
||||||
|
return {
|
||||||
|
leftOffset: 27,
|
||||||
|
timer: null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
setup (props) {
|
||||||
|
const tabsData = ref([])
|
||||||
|
const router = useRouter()
|
||||||
|
const store = useStore()
|
||||||
|
const routerPath = router.currentRoute.value.path
|
||||||
|
const tabList = store.getters.getChartTabList
|
||||||
|
let currentTab = '0'
|
||||||
|
|
||||||
|
if (props.data) {
|
||||||
|
tabsData.value = [...props.data]
|
||||||
|
tabsData.value.forEach(item => {
|
||||||
|
if (!item.disable) {
|
||||||
|
item.disable = false
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
// 非路由跳转,获取tabIndex定位
|
||||||
|
// 路由跳转,根据路由名对比传入数据,获取index从而定位
|
||||||
|
// 路由模式为了切换有过渡,需要设置上次tab和当前tab
|
||||||
|
if (props.router === 'noRouter') {
|
||||||
|
const { query } = useRoute()
|
||||||
|
const tabIndexParam = query.tabIndex
|
||||||
|
currentTab = ref(tabIndexParam ? JSON.stringify(tabIndexParam) : '0')
|
||||||
|
} else if (!tabList) {
|
||||||
|
// 此处为刷新界面时,根据当前路由获取index
|
||||||
|
currentTab = tabsData.value.findIndex(item => {
|
||||||
|
return item.path === routerPath
|
||||||
|
})
|
||||||
|
currentTab = JSON.stringify(currentTab)
|
||||||
|
store.dispatch('dispatchChartTabList', [{ path: routerPath, index: currentTab }])
|
||||||
|
} else {
|
||||||
|
// 此处为切换界面,如果window里保存的路径和tabsData里的路径一致,选择window数据并使用
|
||||||
|
// 两个不一致的话,则默认选择tabsData里的第一条
|
||||||
|
let obj0 = null
|
||||||
|
let obj1 = null
|
||||||
|
obj0 = tabsData.value.find(item => { return item.path === tabList[0].path })
|
||||||
|
|
||||||
|
if (tabList[1]) {
|
||||||
|
obj1 = tabsData.value.find(item => { return item.path === tabList[1].path })
|
||||||
|
}
|
||||||
|
|
||||||
|
if (obj0 && obj1) {
|
||||||
|
currentTab = tabList[1].index
|
||||||
|
// 场景:从遮罩面板进入界面时,重置状态,默认选中第一个tab
|
||||||
|
if (routerPath === tabList[0].path) {
|
||||||
|
currentTab = tabList[0].index
|
||||||
|
store.dispatch('dispatchChartTabList', [{ path: tabsData.value[0].path, index: '0' }])
|
||||||
|
}
|
||||||
|
} else if (obj0) {
|
||||||
|
currentTab = tabList[0].index
|
||||||
|
} else {
|
||||||
|
store.dispatch('dispatchChartTabList', [{ path: tabsData.value[0].path, index: '0' }])
|
||||||
|
currentTab = '0'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
currentTab,
|
||||||
|
tabsData
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted () {
|
||||||
|
const time = this.router === 'noRouter' ? 900 : 0
|
||||||
|
this.timer = setTimeout(() => {
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.init()
|
||||||
|
})
|
||||||
|
}, time)
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
currentTab (n) {
|
||||||
|
if (this.router === 'noRouter') {
|
||||||
|
const { query } = this.$route
|
||||||
|
const newUrl = urlParamsHandler(window.location.href, query, {
|
||||||
|
tabIndex: n
|
||||||
|
})
|
||||||
|
overwriteUrl(newUrl)
|
||||||
|
}
|
||||||
|
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.handleActiveBar(n)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
init () {
|
||||||
|
// 添加禁用小手
|
||||||
|
this.tabsData.forEach((item, index) => {
|
||||||
|
if (item.disable) {
|
||||||
|
const tabEle = document.getElementById('tab-' + index)
|
||||||
|
if (tabEle) {
|
||||||
|
tabEle.style.cssText = 'cursor: not-allowed;'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
const tabList = this.$store.getters.getChartTabList
|
||||||
|
|
||||||
|
if (tabList && this.router !== 'noRouter') {
|
||||||
|
tabList.forEach((item) => {
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.handleActiveBar(parseFloat(item.index))
|
||||||
|
})
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.handleActiveBar(this.currentTab)
|
||||||
|
})
|
||||||
|
this.$store.dispatch('dispatchChartTabList', null)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
handleActiveBar (index) {
|
||||||
|
const activeDom = document.getElementsByClassName('el-tabs__item is-top is-active')
|
||||||
|
const tabDom = document.getElementById('tab-' + index)
|
||||||
|
|
||||||
|
if (tabDom && activeDom) {
|
||||||
|
this.$nextTick(() => {
|
||||||
|
const offsetLeft = tabDom.offsetLeft
|
||||||
|
const clientWidth = tabDom.clientWidth
|
||||||
|
const clientLeft = tabDom.clientLeft
|
||||||
|
const activeBar = document.querySelector('.chart-tabs .chart-tabs__active-bar')
|
||||||
|
|
||||||
|
if (this.router === 'noRouter') {
|
||||||
|
activeBar.style.cssText += `width: ${clientWidth + 2}px; left: ${offsetLeft + this.leftOffset + clientLeft - 1}px;`
|
||||||
|
} else {
|
||||||
|
// 数组长度为1,即代表刚刷新界面,获取active的dom添加样式,避免原模式错位问题
|
||||||
|
// 可添加css样式,也可添加class类名,两个操作选一即可
|
||||||
|
if (this.$store.getters.getChartTabList.length === 1) {
|
||||||
|
// 此处操作是因为初始化时给active加border,导致tab下移,故需要将整体往上移动对应高度
|
||||||
|
const topDom = document.getElementsByClassName('el-tabs__header is-top')
|
||||||
|
topDom[0].style.cssText += 'top: -3px'
|
||||||
|
activeDom[0].style.cssText += 'height: calc(100% - 1px);border-top: 4px #046EC9 solid;border-radius: 5px 5px 0 0;transition: all linear .2s;'
|
||||||
|
} else {
|
||||||
|
activeBar.style.cssText += `width: ${clientWidth + 2}px; left: ${offsetLeft + this.leftOffset + clientLeft - 1}px;`
|
||||||
|
activeDom[0].style.cssText += 'height:calc(100% + 1px)'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
handleClick (item) {
|
||||||
|
this.$emit('click', item)
|
||||||
|
const tabList = this.$store.getters.getChartTabList
|
||||||
|
|
||||||
|
if (this.router === 'noRouter') {
|
||||||
|
const { query } = this.$route
|
||||||
|
const newUrl = urlParamsHandler(window.location.href, query, {
|
||||||
|
t: +new Date(),
|
||||||
|
tabIndex: item.index
|
||||||
|
})
|
||||||
|
overwriteUrl(newUrl)
|
||||||
|
} else {
|
||||||
|
tabList.push({
|
||||||
|
path: this.tabsData[item.index].path,
|
||||||
|
index: item.index
|
||||||
|
})
|
||||||
|
|
||||||
|
if (tabList.length > 2) {
|
||||||
|
tabList.splice(0, 1)
|
||||||
|
}
|
||||||
|
this.$store.dispatch('dispatchChartTabList', tabList)
|
||||||
|
|
||||||
|
this.$router.push({
|
||||||
|
path: this.tabsData[item.index].path,
|
||||||
|
query: {
|
||||||
|
t: +new Date()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
beforeUnmount () {
|
||||||
|
clearTimeout(this.timer)
|
||||||
|
const path = this.$router.currentRoute.value.path
|
||||||
|
const list = this.$store.getters.getChartTabList
|
||||||
|
if (list && this.router !== 'noRouter') {
|
||||||
|
if (list[1]) {
|
||||||
|
// 去其他界面,清除状态
|
||||||
|
if (path !== list[0].path && path !== list[1].path) {
|
||||||
|
this.$store.dispatch('dispatchChartTabList', null)
|
||||||
|
}
|
||||||
|
} else if (path !== list[0].path) {
|
||||||
|
// 避免刷新页面之后又点击菜单栏进入该界面,还保留上次点击状态
|
||||||
|
this.$store.dispatch('dispatchChartTabList', null)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
155
src/components/common/Error.vue
Normal file
@@ -0,0 +1,155 @@
|
|||||||
|
<template>
|
||||||
|
<div v-if="showDefault" class="error-component" :style="style" :class="myClass">
|
||||||
|
<div class="error-block" :style="{'max-width': localMaxWidth, 'width': localWidth}">
|
||||||
|
<svg class="icon error-icon-default" aria-hidden="true">
|
||||||
|
<use xlink:href="#cn-icon-baocuo"></use>
|
||||||
|
</svg>
|
||||||
|
{{ content }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="error-com">
|
||||||
|
<div v-if="tooltip !== undefined">
|
||||||
|
<el-popover
|
||||||
|
:width="localPopoverWidth"
|
||||||
|
placement="top-start"
|
||||||
|
trigger="hover"
|
||||||
|
:visible-arrow="false"
|
||||||
|
popper-class="error-popover"
|
||||||
|
:content="content">
|
||||||
|
<template #reference>
|
||||||
|
<span>
|
||||||
|
<svg class="icon error-icon-tooltip" aria-hidden="true">
|
||||||
|
<use xlink:href="#cn-icon-baocuo"></use>
|
||||||
|
</svg>
|
||||||
|
<!-- 为后续自定义icon插槽做预备-->
|
||||||
|
<!-- <i v-if="icon" :class="`icon cn-icon-${icon}`"></i>-->
|
||||||
|
</span>
|
||||||
|
</template>
|
||||||
|
</el-popover>
|
||||||
|
<!-- 不使用popover实现hover,后续考虑替换为该方案-->
|
||||||
|
<!-- <span class="new-error-icon" @mouseenter="hoverError">-->
|
||||||
|
<!-- <svg class="icon item-popover-up" aria-hidden="true">-->
|
||||||
|
<!-- <use xlink:href="#cn-icon-baocuo"></use>-->
|
||||||
|
<!-- </svg>-->
|
||||||
|
<!-- <div id="error-content" class="error-content">-->
|
||||||
|
<!-- rview/appCompanyCyclrview/appCompanyCycleTrafficTotal?startTime=getSecond(this.timeFilter.startTime)&endTime=getSecond(this.timeFilter.endTime)&appCompanies=%27Tencent%27,%27Jingdong%27,%27Akamai%27,%27Bytedance%27,%27Baidu%27,%27Huawei%27,%27Beike%27,%27Aiqiyi%27,%27Ctrip%27,%27Meituan%27-->
|
||||||
|
<!-- </div>-->
|
||||||
|
<!-- </span>-->
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="error-block-info" v-if="info !== undefined">
|
||||||
|
<div>
|
||||||
|
<svg class="icon error-icon-default" aria-hidden="true">
|
||||||
|
<use xlink:href="#cn-icon-baocuo"></use>
|
||||||
|
</svg>
|
||||||
|
{{ content }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<!-- start----------------调用方式----------------start -->
|
||||||
|
<!--
|
||||||
|
组件在全局注册了,调用时: <chart-error :content="content"></chart-error>
|
||||||
|
-->
|
||||||
|
<!--
|
||||||
|
目前有三种形式,分别是default、tooltip、info
|
||||||
|
默认,即红框展示:<chart-error :content="content" />
|
||||||
|
在标题之后显示,需要鼠标移动到图标上显示弹窗:<chart-error tooltip :content="content" />
|
||||||
|
文字提示:<chart-error info :content="content" />
|
||||||
|
-->
|
||||||
|
<!--
|
||||||
|
自定义宽度:<chart-error width="300" :content="content" />
|
||||||
|
自定义弹窗宽度:<chart-error tooltip width="300" :content="content" />
|
||||||
|
注意:info模式不支持宽度设置
|
||||||
|
-->
|
||||||
|
<!--
|
||||||
|
自定义icon图标:<chart-error tooltip icon="baocuo" :content="content" />,此时icon全称为'cn-icon-baocuo'
|
||||||
|
-->
|
||||||
|
<!-- end----------------调用方式----------------end -->
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name: 'Error',
|
||||||
|
props: {
|
||||||
|
// 工具栏提示类型
|
||||||
|
tooltip: {
|
||||||
|
type: String
|
||||||
|
},
|
||||||
|
// 文字提示类型
|
||||||
|
info: {
|
||||||
|
type: String
|
||||||
|
},
|
||||||
|
// 报错信息内容,如果不传,默认为"Error"
|
||||||
|
content: {
|
||||||
|
type: String,
|
||||||
|
default: 'Error!'
|
||||||
|
},
|
||||||
|
// 报错信息模块宽度,如果类型选择tooltip,则为弹窗宽度,info模式没有宽度设置
|
||||||
|
width: {
|
||||||
|
type: String
|
||||||
|
},
|
||||||
|
// 报错信息模块最大宽度
|
||||||
|
maxWidth: {
|
||||||
|
type: String
|
||||||
|
// default: '350'
|
||||||
|
},
|
||||||
|
// 自定义icon图标
|
||||||
|
icon: {
|
||||||
|
type: String
|
||||||
|
},
|
||||||
|
// 自定义svg图标
|
||||||
|
svg: {
|
||||||
|
type: String
|
||||||
|
},
|
||||||
|
style: {
|
||||||
|
type: String
|
||||||
|
},
|
||||||
|
class: {
|
||||||
|
type: String
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data () {
|
||||||
|
return {
|
||||||
|
showDefault: false, // 是否显示default,分别是default、tooltip、info
|
||||||
|
showSmall: false, // 显示错误的类型,true为图表模块内显示报错,false为标题后显示报错
|
||||||
|
localWidth: '',
|
||||||
|
localMaxWidth: '',
|
||||||
|
localPopoverWidth: '',
|
||||||
|
myClass: this.class
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted () {
|
||||||
|
this.initData()
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
initData () {
|
||||||
|
if (this.tooltip !== undefined) {
|
||||||
|
this.showDefault = false
|
||||||
|
this.localPopoverWidth = this.width !== undefined
|
||||||
|
}
|
||||||
|
|
||||||
|
// 默认default模式
|
||||||
|
this.showDefault = this.tooltip === undefined && this.info === undefined
|
||||||
|
|
||||||
|
if (this.width) {
|
||||||
|
// 避免宽度出现负数的情况
|
||||||
|
this.localWidth = Math.abs(parseFloat(this.width)) + 'px'
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.maxWidth) {
|
||||||
|
// 避免宽度出现负数的情况
|
||||||
|
this.localMaxWidth = Math.abs(parseFloat(this.maxWidth)) + 'px'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* 鼠标移入事件,用于获取弹窗dom,修改距离父元素的top
|
||||||
|
*/
|
||||||
|
hoverError (e) {
|
||||||
|
// const dom = document.getElementById('error-content')
|
||||||
|
// if (dom) {
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
import DatePicker from './src/date-picker';
|
|
||||||
import type { SFCWithInstall } from 'element-plus/lib/utils/types';
|
|
||||||
declare const _DatePicker: SFCWithInstall<typeof DatePicker>;
|
|
||||||
export default _DatePicker;
|
|
||||||
@@ -1,61 +0,0 @@
|
|||||||
import { PropType } from 'vue';
|
|
||||||
import dayjs from 'dayjs';
|
|
||||||
declare const _default: import("vue").DefineComponent<{
|
|
||||||
date: {
|
|
||||||
type: PropType<dayjs.Dayjs>;
|
|
||||||
};
|
|
||||||
minDate: {
|
|
||||||
type: PropType<dayjs.Dayjs>;
|
|
||||||
};
|
|
||||||
maxDate: {
|
|
||||||
type: PropType<dayjs.Dayjs>;
|
|
||||||
};
|
|
||||||
parsedValue: {
|
|
||||||
type: PropType<dayjs.Dayjs | dayjs.Dayjs[]>;
|
|
||||||
};
|
|
||||||
selectionMode: {
|
|
||||||
type: StringConstructor;
|
|
||||||
default: string;
|
|
||||||
};
|
|
||||||
showWeekNumber: {
|
|
||||||
type: BooleanConstructor;
|
|
||||||
default: boolean;
|
|
||||||
};
|
|
||||||
disabledDate: {
|
|
||||||
type: FunctionConstructor;
|
|
||||||
};
|
|
||||||
cellClassName: {
|
|
||||||
type: FunctionConstructor;
|
|
||||||
};
|
|
||||||
rangeState: {
|
|
||||||
type: ObjectConstructor;
|
|
||||||
default: () => {
|
|
||||||
endDate: any;
|
|
||||||
selecting: boolean;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}, {
|
|
||||||
handleMouseMove: (event: any) => void;
|
|
||||||
t: (...args: any[]) => string;
|
|
||||||
rows: import("vue").ComputedRef<any[][]>;
|
|
||||||
isWeekActive: (cell: any) => any;
|
|
||||||
getCellClasses: (cell: any) => string;
|
|
||||||
WEEKS: import("vue").ComputedRef<any>;
|
|
||||||
handleClick: (event: any) => void;
|
|
||||||
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("changerange" | "pick" | "select")[], "changerange" | "pick" | "select", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{
|
|
||||||
selectionMode: unknown;
|
|
||||||
showWeekNumber: boolean;
|
|
||||||
rangeState: Record<string, any>;
|
|
||||||
} & {
|
|
||||||
date?: unknown;
|
|
||||||
minDate?: unknown;
|
|
||||||
maxDate?: unknown;
|
|
||||||
parsedValue?: unknown;
|
|
||||||
disabledDate?: unknown;
|
|
||||||
cellClassName?: unknown;
|
|
||||||
}>, {
|
|
||||||
selectionMode: unknown;
|
|
||||||
showWeekNumber: boolean;
|
|
||||||
rangeState: Record<string, any>;
|
|
||||||
}>;
|
|
||||||
export default _default;
|
|
||||||
@@ -1,50 +0,0 @@
|
|||||||
import dayjs from 'dayjs';
|
|
||||||
import { PropType } from 'vue';
|
|
||||||
declare const _default: import("vue").DefineComponent<{
|
|
||||||
disabledDate: {
|
|
||||||
type: PropType<(_: Date) => void>;
|
|
||||||
};
|
|
||||||
selectionMode: {
|
|
||||||
type: StringConstructor;
|
|
||||||
default: string;
|
|
||||||
};
|
|
||||||
minDate: {
|
|
||||||
type: PropType<dayjs.Dayjs>;
|
|
||||||
};
|
|
||||||
maxDate: {
|
|
||||||
type: PropType<dayjs.Dayjs>;
|
|
||||||
};
|
|
||||||
date: {
|
|
||||||
type: PropType<dayjs.Dayjs>;
|
|
||||||
};
|
|
||||||
parsedValue: {
|
|
||||||
type: PropType<dayjs.Dayjs>;
|
|
||||||
};
|
|
||||||
rangeState: {
|
|
||||||
type: ObjectConstructor;
|
|
||||||
default: () => {
|
|
||||||
endDate: any;
|
|
||||||
selecting: boolean;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}, {
|
|
||||||
handleMouseMove: (event: any) => void;
|
|
||||||
handleMonthTableClick: (event: any) => void;
|
|
||||||
rows: import("vue").ComputedRef<any[][]>;
|
|
||||||
getCellStyle: (cell: any) => any;
|
|
||||||
t: (...args: any[]) => string;
|
|
||||||
months: any;
|
|
||||||
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("changerange" | "pick" | "select")[], "changerange" | "pick" | "select", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{
|
|
||||||
selectionMode: unknown;
|
|
||||||
rangeState: Record<string, any>;
|
|
||||||
} & {
|
|
||||||
disabledDate?: unknown;
|
|
||||||
minDate?: unknown;
|
|
||||||
maxDate?: unknown;
|
|
||||||
date?: unknown;
|
|
||||||
parsedValue?: unknown;
|
|
||||||
}>, {
|
|
||||||
selectionMode: unknown;
|
|
||||||
rangeState: Record<string, any>;
|
|
||||||
}>;
|
|
||||||
export default _default;
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
import { PropType } from 'vue';
|
|
||||||
import dayjs from 'dayjs';
|
|
||||||
declare const _default: import("vue").DefineComponent<{
|
|
||||||
disabledDate: {
|
|
||||||
type: PropType<(_: Date) => void>;
|
|
||||||
};
|
|
||||||
parsedValue: {
|
|
||||||
type: PropType<dayjs.Dayjs>;
|
|
||||||
};
|
|
||||||
date: {
|
|
||||||
type: PropType<dayjs.Dayjs>;
|
|
||||||
};
|
|
||||||
}, {
|
|
||||||
startYear: import("vue").ComputedRef<number>;
|
|
||||||
getCellStyle: (year: any) => any;
|
|
||||||
handleYearTableClick: (event: any) => void;
|
|
||||||
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "pick"[], "pick", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{} & {
|
|
||||||
disabledDate?: unknown;
|
|
||||||
parsedValue?: unknown;
|
|
||||||
date?: unknown;
|
|
||||||
}>, {}>;
|
|
||||||
export default _default;
|
|
||||||
@@ -1,136 +0,0 @@
|
|||||||
import dayjs, { Dayjs } from 'dayjs';
|
|
||||||
import { PropType } from 'vue';
|
|
||||||
declare const _default: import("vue").DefineComponent<{
|
|
||||||
visible: {
|
|
||||||
type: BooleanConstructor;
|
|
||||||
default: boolean;
|
|
||||||
};
|
|
||||||
parsedValue: {
|
|
||||||
type: PropType<dayjs.Dayjs | dayjs.Dayjs[]>;
|
|
||||||
};
|
|
||||||
format: {
|
|
||||||
type: StringConstructor;
|
|
||||||
default: string;
|
|
||||||
};
|
|
||||||
type: {
|
|
||||||
type: StringConstructor;
|
|
||||||
required: true;
|
|
||||||
};
|
|
||||||
}, {
|
|
||||||
handleTimePick: (value: any, visible: any, first: any) => void;
|
|
||||||
handleTimePickClose: () => void;
|
|
||||||
onTimePickerInputFocus: () => void;
|
|
||||||
timePickerVisible: import("vue").Ref<boolean>;
|
|
||||||
visibleTime: import("vue").ComputedRef<any>;
|
|
||||||
visibleDate: import("vue").ComputedRef<any>;
|
|
||||||
showTime: import("vue").ComputedRef<boolean>;
|
|
||||||
changeToNow: () => void;
|
|
||||||
onConfirm: () => void;
|
|
||||||
footerVisible: import("vue").ComputedRef<boolean>;
|
|
||||||
handleYearPick: (year: any) => void;
|
|
||||||
showMonthPicker: () => void;
|
|
||||||
showYearPicker: () => void;
|
|
||||||
handleMonthPick: (month: any) => void;
|
|
||||||
hasShortcuts: import("vue").ComputedRef<boolean>;
|
|
||||||
shortcuts: any;
|
|
||||||
arrowControl: any;
|
|
||||||
disabledDate: any;
|
|
||||||
cellClassName: any;
|
|
||||||
selectionMode: import("vue").ComputedRef<unknown>;
|
|
||||||
handleShortcutClick: (shortcut: any) => void;
|
|
||||||
prevYear_: () => void;
|
|
||||||
nextYear_: () => void;
|
|
||||||
prevMonth_: () => void;
|
|
||||||
nextMonth_: () => void;
|
|
||||||
innerDate: import("vue").Ref<{
|
|
||||||
clone: () => dayjs.Dayjs;
|
|
||||||
isValid: () => boolean;
|
|
||||||
year: {
|
|
||||||
(): number;
|
|
||||||
(value: number): dayjs.Dayjs;
|
|
||||||
};
|
|
||||||
month: {
|
|
||||||
(): number;
|
|
||||||
(value: number): dayjs.Dayjs;
|
|
||||||
};
|
|
||||||
date: {
|
|
||||||
(): number;
|
|
||||||
(value: number): dayjs.Dayjs;
|
|
||||||
};
|
|
||||||
day: {
|
|
||||||
(): number;
|
|
||||||
(value: number): dayjs.Dayjs;
|
|
||||||
};
|
|
||||||
hour: {
|
|
||||||
(): number;
|
|
||||||
(value: number): dayjs.Dayjs;
|
|
||||||
};
|
|
||||||
minute: {
|
|
||||||
(): number;
|
|
||||||
(value: number): dayjs.Dayjs;
|
|
||||||
};
|
|
||||||
second: {
|
|
||||||
(): number;
|
|
||||||
(value: number): dayjs.Dayjs;
|
|
||||||
};
|
|
||||||
millisecond: {
|
|
||||||
(): number;
|
|
||||||
(value: number): dayjs.Dayjs;
|
|
||||||
};
|
|
||||||
set: (unit: dayjs.UnitType, value: number) => dayjs.Dayjs;
|
|
||||||
get: (unit: dayjs.UnitType) => number;
|
|
||||||
add: (value: number, unit: dayjs.OpUnitType) => dayjs.Dayjs;
|
|
||||||
subtract: (value: number, unit: dayjs.OpUnitType) => dayjs.Dayjs;
|
|
||||||
startOf: (unit: dayjs.OpUnitType) => dayjs.Dayjs;
|
|
||||||
endOf: (unit: dayjs.OpUnitType) => dayjs.Dayjs;
|
|
||||||
format: (template?: string) => string;
|
|
||||||
diff: (date: dayjs.ConfigType, unit?: "M" | "week" | "month" | "year" | "day" | "date" | "hour" | "minute" | "second" | "millisecond" | "d" | "y" | "h" | "m" | "s" | "ms" | "w" | "quarter" | "Q", float?: boolean) => number;
|
|
||||||
valueOf: () => number;
|
|
||||||
unix: () => number;
|
|
||||||
daysInMonth: () => number;
|
|
||||||
toDate: () => Date;
|
|
||||||
toJSON: () => string;
|
|
||||||
toISOString: () => string;
|
|
||||||
toString: () => string;
|
|
||||||
utcOffset: () => number;
|
|
||||||
isBefore: (date: dayjs.ConfigType, unit?: dayjs.OpUnitType) => boolean;
|
|
||||||
isSame: (date: dayjs.ConfigType, unit?: dayjs.OpUnitType) => boolean;
|
|
||||||
isAfter: (date: dayjs.ConfigType, unit?: dayjs.OpUnitType) => boolean;
|
|
||||||
locale: {
|
|
||||||
(): string;
|
|
||||||
(preset: string | ILocale, object?: Partial<ILocale>): dayjs.Dayjs;
|
|
||||||
};
|
|
||||||
localeData: () => any;
|
|
||||||
week: {
|
|
||||||
(): number;
|
|
||||||
(value: number): dayjs.Dayjs;
|
|
||||||
};
|
|
||||||
weekYear: () => number;
|
|
||||||
dayOfYear: {
|
|
||||||
(): number;
|
|
||||||
(value: number): dayjs.Dayjs;
|
|
||||||
};
|
|
||||||
isSameOrAfter: (date: dayjs.ConfigType, unit?: dayjs.OpUnitType) => boolean;
|
|
||||||
isSameOrBefore: (date: dayjs.ConfigType, unit?: dayjs.OpUnitType) => boolean;
|
|
||||||
}>;
|
|
||||||
t: (...args: any[]) => string;
|
|
||||||
yearLabel: import("vue").ComputedRef<string>;
|
|
||||||
currentView: import("vue").Ref<string>;
|
|
||||||
month: import("vue").ComputedRef<number>;
|
|
||||||
handleDatePick: (value: Dayjs) => void;
|
|
||||||
handleVisibleTimeChange: (value: any) => void;
|
|
||||||
handleVisibleDateChange: (value: any) => void;
|
|
||||||
timeFormat: import("vue").ComputedRef<any>;
|
|
||||||
userInputTime: any;
|
|
||||||
userInputDate: any;
|
|
||||||
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("pick" | "set-picker-option")[], "pick" | "set-picker-option", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{
|
|
||||||
visible: boolean;
|
|
||||||
format: unknown;
|
|
||||||
type: unknown;
|
|
||||||
} & {
|
|
||||||
parsedValue?: unknown;
|
|
||||||
}>, {
|
|
||||||
visible: boolean;
|
|
||||||
format: unknown;
|
|
||||||
}>;
|
|
||||||
export default _default;
|
|
||||||
@@ -1,210 +0,0 @@
|
|||||||
import { PropType } from 'vue';
|
|
||||||
import dayjs from 'dayjs';
|
|
||||||
declare const _default: import("vue").DefineComponent<{
|
|
||||||
unlinkPanels: BooleanConstructor;
|
|
||||||
parsedValue: {
|
|
||||||
type: PropType<dayjs.Dayjs[]>;
|
|
||||||
};
|
|
||||||
type: {
|
|
||||||
type: StringConstructor;
|
|
||||||
required: true;
|
|
||||||
};
|
|
||||||
}, {
|
|
||||||
shortcuts: any;
|
|
||||||
disabledDate: any;
|
|
||||||
cellClassName: any;
|
|
||||||
minTimePickerVisible: import("vue").Ref<boolean>;
|
|
||||||
maxTimePickerVisible: import("vue").Ref<boolean>;
|
|
||||||
handleMinTimeClose: () => void;
|
|
||||||
handleMaxTimeClose: () => void;
|
|
||||||
handleShortcutClick: (shortcut: any) => void;
|
|
||||||
rangeState: import("vue").Ref<{
|
|
||||||
endDate: any;
|
|
||||||
selecting: boolean;
|
|
||||||
}>;
|
|
||||||
minDate: any;
|
|
||||||
maxDate: any;
|
|
||||||
handleRangePick: (val: any, close?: boolean) => void;
|
|
||||||
onSelect: (selecting: any) => void;
|
|
||||||
handleChangeRange: (val: any) => void;
|
|
||||||
btnDisabled: import("vue").ComputedRef<boolean>;
|
|
||||||
enableYearArrow: import("vue").ComputedRef<boolean>;
|
|
||||||
enableMonthArrow: import("vue").ComputedRef<boolean>;
|
|
||||||
rightPrevMonth: () => void;
|
|
||||||
rightPrevYear: () => void;
|
|
||||||
rightNextMonth: () => void;
|
|
||||||
rightNextYear: () => void;
|
|
||||||
leftPrevMonth: () => void;
|
|
||||||
leftPrevYear: () => void;
|
|
||||||
leftNextMonth: () => void;
|
|
||||||
leftNextYear: () => void;
|
|
||||||
hasShortcuts: import("vue").ComputedRef<boolean>;
|
|
||||||
leftLabel: import("vue").ComputedRef<string>;
|
|
||||||
rightLabel: import("vue").ComputedRef<string>;
|
|
||||||
leftDate: import("vue").Ref<{
|
|
||||||
clone: () => dayjs.Dayjs;
|
|
||||||
isValid: () => boolean;
|
|
||||||
year: {
|
|
||||||
(): number;
|
|
||||||
(value: number): dayjs.Dayjs;
|
|
||||||
};
|
|
||||||
month: {
|
|
||||||
(): number;
|
|
||||||
(value: number): dayjs.Dayjs;
|
|
||||||
};
|
|
||||||
date: {
|
|
||||||
(): number;
|
|
||||||
(value: number): dayjs.Dayjs;
|
|
||||||
};
|
|
||||||
day: {
|
|
||||||
(): number;
|
|
||||||
(value: number): dayjs.Dayjs;
|
|
||||||
};
|
|
||||||
hour: {
|
|
||||||
(): number;
|
|
||||||
(value: number): dayjs.Dayjs;
|
|
||||||
};
|
|
||||||
minute: {
|
|
||||||
(): number;
|
|
||||||
(value: number): dayjs.Dayjs;
|
|
||||||
};
|
|
||||||
second: {
|
|
||||||
(): number;
|
|
||||||
(value: number): dayjs.Dayjs;
|
|
||||||
};
|
|
||||||
millisecond: {
|
|
||||||
(): number;
|
|
||||||
(value: number): dayjs.Dayjs;
|
|
||||||
};
|
|
||||||
set: (unit: dayjs.UnitType, value: number) => dayjs.Dayjs;
|
|
||||||
get: (unit: dayjs.UnitType) => number;
|
|
||||||
add: (value: number, unit: dayjs.OpUnitType) => dayjs.Dayjs;
|
|
||||||
subtract: (value: number, unit: dayjs.OpUnitType) => dayjs.Dayjs;
|
|
||||||
startOf: (unit: dayjs.OpUnitType) => dayjs.Dayjs;
|
|
||||||
endOf: (unit: dayjs.OpUnitType) => dayjs.Dayjs;
|
|
||||||
format: (template?: string) => string;
|
|
||||||
diff: (date: dayjs.ConfigType, unit?: "M" | "millisecond" | "second" | "minute" | "hour" | "day" | "month" | "year" | "date" | "d" | "y" | "h" | "m" | "s" | "ms" | "week" | "w" | "quarter" | "Q", float?: boolean) => number;
|
|
||||||
valueOf: () => number;
|
|
||||||
unix: () => number;
|
|
||||||
daysInMonth: () => number;
|
|
||||||
toDate: () => Date;
|
|
||||||
toJSON: () => string;
|
|
||||||
toISOString: () => string;
|
|
||||||
toString: () => string;
|
|
||||||
utcOffset: () => number;
|
|
||||||
isBefore: (date: dayjs.ConfigType, unit?: dayjs.OpUnitType) => boolean;
|
|
||||||
isSame: (date: dayjs.ConfigType, unit?: dayjs.OpUnitType) => boolean;
|
|
||||||
isAfter: (date: dayjs.ConfigType, unit?: dayjs.OpUnitType) => boolean;
|
|
||||||
locale: {
|
|
||||||
(): string;
|
|
||||||
(preset: string | ILocale, object?: Partial<ILocale>): dayjs.Dayjs;
|
|
||||||
};
|
|
||||||
localeData: () => any;
|
|
||||||
week: {
|
|
||||||
(): number;
|
|
||||||
(value: number): dayjs.Dayjs;
|
|
||||||
};
|
|
||||||
weekYear: () => number;
|
|
||||||
dayOfYear: {
|
|
||||||
(): number;
|
|
||||||
(value: number): dayjs.Dayjs;
|
|
||||||
};
|
|
||||||
isSameOrAfter: (date: dayjs.ConfigType, unit?: dayjs.OpUnitType) => boolean;
|
|
||||||
isSameOrBefore: (date: dayjs.ConfigType, unit?: dayjs.OpUnitType) => boolean;
|
|
||||||
}>;
|
|
||||||
rightDate: import("vue").Ref<{
|
|
||||||
clone: () => dayjs.Dayjs;
|
|
||||||
isValid: () => boolean;
|
|
||||||
year: {
|
|
||||||
(): number;
|
|
||||||
(value: number): dayjs.Dayjs;
|
|
||||||
};
|
|
||||||
month: {
|
|
||||||
(): number;
|
|
||||||
(value: number): dayjs.Dayjs;
|
|
||||||
};
|
|
||||||
date: {
|
|
||||||
(): number;
|
|
||||||
(value: number): dayjs.Dayjs;
|
|
||||||
};
|
|
||||||
day: {
|
|
||||||
(): number;
|
|
||||||
(value: number): dayjs.Dayjs;
|
|
||||||
};
|
|
||||||
hour: {
|
|
||||||
(): number;
|
|
||||||
(value: number): dayjs.Dayjs;
|
|
||||||
};
|
|
||||||
minute: {
|
|
||||||
(): number;
|
|
||||||
(value: number): dayjs.Dayjs;
|
|
||||||
};
|
|
||||||
second: {
|
|
||||||
(): number;
|
|
||||||
(value: number): dayjs.Dayjs;
|
|
||||||
};
|
|
||||||
millisecond: {
|
|
||||||
(): number;
|
|
||||||
(value: number): dayjs.Dayjs;
|
|
||||||
};
|
|
||||||
set: (unit: dayjs.UnitType, value: number) => dayjs.Dayjs;
|
|
||||||
get: (unit: dayjs.UnitType) => number;
|
|
||||||
add: (value: number, unit: dayjs.OpUnitType) => dayjs.Dayjs;
|
|
||||||
subtract: (value: number, unit: dayjs.OpUnitType) => dayjs.Dayjs;
|
|
||||||
startOf: (unit: dayjs.OpUnitType) => dayjs.Dayjs;
|
|
||||||
endOf: (unit: dayjs.OpUnitType) => dayjs.Dayjs;
|
|
||||||
format: (template?: string) => string;
|
|
||||||
diff: (date: dayjs.ConfigType, unit?: "M" | "millisecond" | "second" | "minute" | "hour" | "day" | "month" | "year" | "date" | "d" | "y" | "h" | "m" | "s" | "ms" | "week" | "w" | "quarter" | "Q", float?: boolean) => number;
|
|
||||||
valueOf: () => number;
|
|
||||||
unix: () => number;
|
|
||||||
daysInMonth: () => number;
|
|
||||||
toDate: () => Date;
|
|
||||||
toJSON: () => string;
|
|
||||||
toISOString: () => string;
|
|
||||||
toString: () => string;
|
|
||||||
utcOffset: () => number;
|
|
||||||
isBefore: (date: dayjs.ConfigType, unit?: dayjs.OpUnitType) => boolean;
|
|
||||||
isSame: (date: dayjs.ConfigType, unit?: dayjs.OpUnitType) => boolean;
|
|
||||||
isAfter: (date: dayjs.ConfigType, unit?: dayjs.OpUnitType) => boolean;
|
|
||||||
locale: {
|
|
||||||
(): string;
|
|
||||||
(preset: string | ILocale, object?: Partial<ILocale>): dayjs.Dayjs;
|
|
||||||
};
|
|
||||||
localeData: () => any;
|
|
||||||
week: {
|
|
||||||
(): number;
|
|
||||||
(value: number): dayjs.Dayjs;
|
|
||||||
};
|
|
||||||
weekYear: () => number;
|
|
||||||
dayOfYear: {
|
|
||||||
(): number;
|
|
||||||
(value: number): dayjs.Dayjs;
|
|
||||||
};
|
|
||||||
isSameOrAfter: (date: dayjs.ConfigType, unit?: dayjs.OpUnitType) => boolean;
|
|
||||||
isSameOrBefore: (date: dayjs.ConfigType, unit?: dayjs.OpUnitType) => boolean;
|
|
||||||
}>;
|
|
||||||
showTime: import("vue").ComputedRef<boolean>;
|
|
||||||
t: (...args: any[]) => string;
|
|
||||||
minVisibleDate: import("vue").ComputedRef<any>;
|
|
||||||
maxVisibleDate: import("vue").ComputedRef<any>;
|
|
||||||
minVisibleTime: import("vue").ComputedRef<any>;
|
|
||||||
maxVisibleTime: import("vue").ComputedRef<any>;
|
|
||||||
arrowControl: any;
|
|
||||||
handleDateInput: (value: any, type: any) => void;
|
|
||||||
handleDateChange: (value: any, type: any) => void;
|
|
||||||
handleTimeInput: (value: any, type: any) => void;
|
|
||||||
handleTimeChange: (value: any, type: any) => void;
|
|
||||||
handleMinTimePick: (value: any, visible: any, first: any) => void;
|
|
||||||
handleMaxTimePick: (value: any, visible: any, first: any) => void;
|
|
||||||
handleClear: () => void;
|
|
||||||
handleConfirm: (visible?: boolean) => void;
|
|
||||||
timeFormat: import("vue").ComputedRef<any>;
|
|
||||||
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("pick" | "set-picker-option")[], "pick" | "set-picker-option", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{
|
|
||||||
unlinkPanels: boolean;
|
|
||||||
type: unknown;
|
|
||||||
} & {
|
|
||||||
parsedValue?: unknown;
|
|
||||||
}>, {
|
|
||||||
unlinkPanels: boolean;
|
|
||||||
}>;
|
|
||||||
export default _default;
|
|
||||||
@@ -1,179 +0,0 @@
|
|||||||
import dayjs from 'dayjs';
|
|
||||||
import { PropType } from 'vue';
|
|
||||||
declare const _default: import("vue").DefineComponent<{
|
|
||||||
unlinkPanels: BooleanConstructor;
|
|
||||||
parsedValue: {
|
|
||||||
type: PropType<dayjs.Dayjs[]>;
|
|
||||||
};
|
|
||||||
}, {
|
|
||||||
shortcuts: any;
|
|
||||||
disabledDate: any;
|
|
||||||
onSelect: (selecting: any) => void;
|
|
||||||
handleRangePick: (val: any, close?: boolean) => void;
|
|
||||||
rangeState: import("vue").Ref<{
|
|
||||||
endDate: any;
|
|
||||||
selecting: boolean;
|
|
||||||
}>;
|
|
||||||
handleChangeRange: (val: any) => void;
|
|
||||||
minDate: any;
|
|
||||||
maxDate: any;
|
|
||||||
enableYearArrow: import("vue").ComputedRef<boolean>;
|
|
||||||
leftLabel: import("vue").ComputedRef<string>;
|
|
||||||
rightLabel: import("vue").ComputedRef<string>;
|
|
||||||
leftNextYear: () => void;
|
|
||||||
leftPrevYear: () => void;
|
|
||||||
rightNextYear: () => void;
|
|
||||||
rightPrevYear: () => void;
|
|
||||||
t: (...args: any[]) => string;
|
|
||||||
leftDate: import("vue").Ref<{
|
|
||||||
clone: () => dayjs.Dayjs;
|
|
||||||
isValid: () => boolean;
|
|
||||||
year: {
|
|
||||||
(): number;
|
|
||||||
(value: number): dayjs.Dayjs;
|
|
||||||
};
|
|
||||||
month: {
|
|
||||||
(): number;
|
|
||||||
(value: number): dayjs.Dayjs;
|
|
||||||
};
|
|
||||||
date: {
|
|
||||||
(): number;
|
|
||||||
(value: number): dayjs.Dayjs;
|
|
||||||
};
|
|
||||||
day: {
|
|
||||||
(): number;
|
|
||||||
(value: number): dayjs.Dayjs;
|
|
||||||
};
|
|
||||||
hour: {
|
|
||||||
(): number;
|
|
||||||
(value: number): dayjs.Dayjs;
|
|
||||||
};
|
|
||||||
minute: {
|
|
||||||
(): number;
|
|
||||||
(value: number): dayjs.Dayjs;
|
|
||||||
};
|
|
||||||
second: {
|
|
||||||
(): number;
|
|
||||||
(value: number): dayjs.Dayjs;
|
|
||||||
};
|
|
||||||
millisecond: {
|
|
||||||
(): number;
|
|
||||||
(value: number): dayjs.Dayjs;
|
|
||||||
};
|
|
||||||
set: (unit: dayjs.UnitType, value: number) => dayjs.Dayjs;
|
|
||||||
get: (unit: dayjs.UnitType) => number;
|
|
||||||
add: (value: number, unit: dayjs.OpUnitType) => dayjs.Dayjs;
|
|
||||||
subtract: (value: number, unit: dayjs.OpUnitType) => dayjs.Dayjs;
|
|
||||||
startOf: (unit: dayjs.OpUnitType) => dayjs.Dayjs;
|
|
||||||
endOf: (unit: dayjs.OpUnitType) => dayjs.Dayjs;
|
|
||||||
format: (template?: string) => string;
|
|
||||||
diff: (date: dayjs.ConfigType, unit?: "M" | "millisecond" | "second" | "minute" | "hour" | "day" | "month" | "year" | "date" | "d" | "y" | "h" | "m" | "s" | "ms" | "week" | "w" | "quarter" | "Q", float?: boolean) => number;
|
|
||||||
valueOf: () => number;
|
|
||||||
unix: () => number;
|
|
||||||
daysInMonth: () => number;
|
|
||||||
toDate: () => Date;
|
|
||||||
toJSON: () => string;
|
|
||||||
toISOString: () => string;
|
|
||||||
toString: () => string;
|
|
||||||
utcOffset: () => number;
|
|
||||||
isBefore: (date: dayjs.ConfigType, unit?: dayjs.OpUnitType) => boolean;
|
|
||||||
isSame: (date: dayjs.ConfigType, unit?: dayjs.OpUnitType) => boolean;
|
|
||||||
isAfter: (date: dayjs.ConfigType, unit?: dayjs.OpUnitType) => boolean;
|
|
||||||
locale: {
|
|
||||||
(): string;
|
|
||||||
(preset: string | ILocale, object?: Partial<ILocale>): dayjs.Dayjs;
|
|
||||||
};
|
|
||||||
localeData: () => any;
|
|
||||||
week: {
|
|
||||||
(): number;
|
|
||||||
(value: number): dayjs.Dayjs;
|
|
||||||
};
|
|
||||||
weekYear: () => number;
|
|
||||||
dayOfYear: {
|
|
||||||
(): number;
|
|
||||||
(value: number): dayjs.Dayjs;
|
|
||||||
};
|
|
||||||
isSameOrAfter: (date: dayjs.ConfigType, unit?: dayjs.OpUnitType) => boolean;
|
|
||||||
isSameOrBefore: (date: dayjs.ConfigType, unit?: dayjs.OpUnitType) => boolean;
|
|
||||||
}>;
|
|
||||||
rightDate: import("vue").Ref<{
|
|
||||||
clone: () => dayjs.Dayjs;
|
|
||||||
isValid: () => boolean;
|
|
||||||
year: {
|
|
||||||
(): number;
|
|
||||||
(value: number): dayjs.Dayjs;
|
|
||||||
};
|
|
||||||
month: {
|
|
||||||
(): number;
|
|
||||||
(value: number): dayjs.Dayjs;
|
|
||||||
};
|
|
||||||
date: {
|
|
||||||
(): number;
|
|
||||||
(value: number): dayjs.Dayjs;
|
|
||||||
};
|
|
||||||
day: {
|
|
||||||
(): number;
|
|
||||||
(value: number): dayjs.Dayjs;
|
|
||||||
};
|
|
||||||
hour: {
|
|
||||||
(): number;
|
|
||||||
(value: number): dayjs.Dayjs;
|
|
||||||
};
|
|
||||||
minute: {
|
|
||||||
(): number;
|
|
||||||
(value: number): dayjs.Dayjs;
|
|
||||||
};
|
|
||||||
second: {
|
|
||||||
(): number;
|
|
||||||
(value: number): dayjs.Dayjs;
|
|
||||||
};
|
|
||||||
millisecond: {
|
|
||||||
(): number;
|
|
||||||
(value: number): dayjs.Dayjs;
|
|
||||||
};
|
|
||||||
set: (unit: dayjs.UnitType, value: number) => dayjs.Dayjs;
|
|
||||||
get: (unit: dayjs.UnitType) => number;
|
|
||||||
add: (value: number, unit: dayjs.OpUnitType) => dayjs.Dayjs;
|
|
||||||
subtract: (value: number, unit: dayjs.OpUnitType) => dayjs.Dayjs;
|
|
||||||
startOf: (unit: dayjs.OpUnitType) => dayjs.Dayjs;
|
|
||||||
endOf: (unit: dayjs.OpUnitType) => dayjs.Dayjs;
|
|
||||||
format: (template?: string) => string;
|
|
||||||
diff: (date: dayjs.ConfigType, unit?: "M" | "millisecond" | "second" | "minute" | "hour" | "day" | "month" | "year" | "date" | "d" | "y" | "h" | "m" | "s" | "ms" | "week" | "w" | "quarter" | "Q", float?: boolean) => number;
|
|
||||||
valueOf: () => number;
|
|
||||||
unix: () => number;
|
|
||||||
daysInMonth: () => number;
|
|
||||||
toDate: () => Date;
|
|
||||||
toJSON: () => string;
|
|
||||||
toISOString: () => string;
|
|
||||||
toString: () => string;
|
|
||||||
utcOffset: () => number;
|
|
||||||
isBefore: (date: dayjs.ConfigType, unit?: dayjs.OpUnitType) => boolean;
|
|
||||||
isSame: (date: dayjs.ConfigType, unit?: dayjs.OpUnitType) => boolean;
|
|
||||||
isAfter: (date: dayjs.ConfigType, unit?: dayjs.OpUnitType) => boolean;
|
|
||||||
locale: {
|
|
||||||
(): string;
|
|
||||||
(preset: string | ILocale, object?: Partial<ILocale>): dayjs.Dayjs;
|
|
||||||
};
|
|
||||||
localeData: () => any;
|
|
||||||
week: {
|
|
||||||
(): number;
|
|
||||||
(value: number): dayjs.Dayjs;
|
|
||||||
};
|
|
||||||
weekYear: () => number;
|
|
||||||
dayOfYear: {
|
|
||||||
(): number;
|
|
||||||
(value: number): dayjs.Dayjs;
|
|
||||||
};
|
|
||||||
isSameOrAfter: (date: dayjs.ConfigType, unit?: dayjs.OpUnitType) => boolean;
|
|
||||||
isSameOrBefore: (date: dayjs.ConfigType, unit?: dayjs.OpUnitType) => boolean;
|
|
||||||
}>;
|
|
||||||
hasShortcuts: import("vue").ComputedRef<boolean>;
|
|
||||||
handleShortcutClick: (shortcut: any) => void;
|
|
||||||
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("pick" | "set-picker-option")[], "pick" | "set-picker-option", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{
|
|
||||||
unlinkPanels: boolean;
|
|
||||||
} & {
|
|
||||||
parsedValue?: unknown;
|
|
||||||
}>, {
|
|
||||||
unlinkPanels: boolean;
|
|
||||||
}>;
|
|
||||||
export default _default;
|
|
||||||
@@ -1,154 +0,0 @@
|
|||||||
declare const _default: import("vue").DefineComponent<{
|
|
||||||
type: {
|
|
||||||
type: StringConstructor;
|
|
||||||
default: string;
|
|
||||||
};
|
|
||||||
name: {
|
|
||||||
type: (ArrayConstructor | StringConstructor)[];
|
|
||||||
default: string;
|
|
||||||
};
|
|
||||||
popperClass: {
|
|
||||||
type: StringConstructor;
|
|
||||||
default: string;
|
|
||||||
};
|
|
||||||
format: {
|
|
||||||
type: StringConstructor;
|
|
||||||
};
|
|
||||||
clearable: {
|
|
||||||
type: BooleanConstructor;
|
|
||||||
default: boolean;
|
|
||||||
};
|
|
||||||
clearIcon: {
|
|
||||||
type: StringConstructor;
|
|
||||||
default: string;
|
|
||||||
};
|
|
||||||
editable: {
|
|
||||||
type: BooleanConstructor;
|
|
||||||
default: boolean;
|
|
||||||
};
|
|
||||||
prefixIcon: {
|
|
||||||
type: StringConstructor;
|
|
||||||
default: string;
|
|
||||||
};
|
|
||||||
size: {
|
|
||||||
type: import("vue").PropType<ComponentSize>;
|
|
||||||
validator: (val: string) => boolean;
|
|
||||||
};
|
|
||||||
readonly: {
|
|
||||||
type: BooleanConstructor;
|
|
||||||
default: boolean;
|
|
||||||
};
|
|
||||||
disabled: {
|
|
||||||
type: BooleanConstructor;
|
|
||||||
default: boolean;
|
|
||||||
};
|
|
||||||
placeholder: {
|
|
||||||
type: StringConstructor;
|
|
||||||
default: string;
|
|
||||||
};
|
|
||||||
popperOptions: {
|
|
||||||
type: import("vue").PropType<import("@popperjs/core").Options>;
|
|
||||||
default: () => {};
|
|
||||||
};
|
|
||||||
modelValue: {
|
|
||||||
type: import("vue").PropType<string | Date | Date[]>;
|
|
||||||
default: string;
|
|
||||||
};
|
|
||||||
rangeSeparator: {
|
|
||||||
type: StringConstructor;
|
|
||||||
default: string;
|
|
||||||
};
|
|
||||||
startPlaceholder: StringConstructor;
|
|
||||||
endPlaceholder: StringConstructor;
|
|
||||||
defaultValue: {
|
|
||||||
type: import("vue").PropType<Date | Date[]>;
|
|
||||||
};
|
|
||||||
defaultTime: {
|
|
||||||
type: import("vue").PropType<Date | Date[]>;
|
|
||||||
};
|
|
||||||
isRange: {
|
|
||||||
type: BooleanConstructor;
|
|
||||||
default: boolean;
|
|
||||||
};
|
|
||||||
disabledHours: {
|
|
||||||
type: FunctionConstructor;
|
|
||||||
};
|
|
||||||
disabledMinutes: {
|
|
||||||
type: FunctionConstructor;
|
|
||||||
};
|
|
||||||
disabledSeconds: {
|
|
||||||
type: FunctionConstructor;
|
|
||||||
};
|
|
||||||
disabledDate: {
|
|
||||||
type: FunctionConstructor;
|
|
||||||
};
|
|
||||||
cellClassName: {
|
|
||||||
type: FunctionConstructor;
|
|
||||||
};
|
|
||||||
shortcuts: {
|
|
||||||
type: ArrayConstructor;
|
|
||||||
default: () => any[];
|
|
||||||
};
|
|
||||||
arrowControl: {
|
|
||||||
type: BooleanConstructor;
|
|
||||||
default: boolean;
|
|
||||||
};
|
|
||||||
validateEvent: {
|
|
||||||
type: BooleanConstructor;
|
|
||||||
default: boolean;
|
|
||||||
};
|
|
||||||
unlinkPanels: BooleanConstructor;
|
|
||||||
}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
||||||
[key: string]: any;
|
|
||||||
}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "update:modelValue"[], "update:modelValue", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{
|
|
||||||
type: unknown;
|
|
||||||
name: unknown;
|
|
||||||
popperClass: unknown;
|
|
||||||
clearable: boolean;
|
|
||||||
clearIcon: unknown;
|
|
||||||
editable: boolean;
|
|
||||||
prefixIcon: unknown;
|
|
||||||
readonly: boolean;
|
|
||||||
disabled: boolean;
|
|
||||||
placeholder: unknown;
|
|
||||||
popperOptions: unknown;
|
|
||||||
modelValue: unknown;
|
|
||||||
rangeSeparator: unknown;
|
|
||||||
isRange: boolean;
|
|
||||||
shortcuts: unknown;
|
|
||||||
arrowControl: boolean;
|
|
||||||
validateEvent: boolean;
|
|
||||||
unlinkPanels: boolean;
|
|
||||||
} & {
|
|
||||||
format?: unknown;
|
|
||||||
size?: unknown;
|
|
||||||
startPlaceholder?: unknown;
|
|
||||||
endPlaceholder?: unknown;
|
|
||||||
defaultValue?: unknown;
|
|
||||||
defaultTime?: unknown;
|
|
||||||
disabledHours?: unknown;
|
|
||||||
disabledMinutes?: unknown;
|
|
||||||
disabledSeconds?: unknown;
|
|
||||||
disabledDate?: unknown;
|
|
||||||
cellClassName?: unknown;
|
|
||||||
}>, {
|
|
||||||
type: unknown;
|
|
||||||
name: unknown;
|
|
||||||
popperClass: unknown;
|
|
||||||
clearable: boolean;
|
|
||||||
clearIcon: unknown;
|
|
||||||
editable: boolean;
|
|
||||||
prefixIcon: unknown;
|
|
||||||
readonly: boolean;
|
|
||||||
disabled: boolean;
|
|
||||||
placeholder: unknown;
|
|
||||||
popperOptions: unknown;
|
|
||||||
modelValue: unknown;
|
|
||||||
rangeSeparator: unknown;
|
|
||||||
isRange: boolean;
|
|
||||||
shortcuts: unknown;
|
|
||||||
arrowControl: boolean;
|
|
||||||
validateEvent: boolean;
|
|
||||||
unlinkPanels: boolean;
|
|
||||||
}>;
|
|
||||||
export default _default;
|
|
||||||
10
src/components/common/MytTimePicker/index.d.ts
vendored
@@ -1,10 +0,0 @@
|
|||||||
import TimePicker from './src/time-picker';
|
|
||||||
import CommonPicker from './src/common/picker.vue';
|
|
||||||
import TimePickPanel from './src/time-picker-com/panel-time-pick.vue';
|
|
||||||
import type { SFCWithInstall } from 'element-plus/lib/utils/types';
|
|
||||||
export * from './src/common/date-utils';
|
|
||||||
export * from './src/common/constant';
|
|
||||||
export * from './src/common/props';
|
|
||||||
declare const _TimePicker: SFCWithInstall<typeof TimePicker>;
|
|
||||||
export { CommonPicker, TimePickPanel };
|
|
||||||
export default _TimePicker;
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
export declare const DEFAULT_FORMATS_TIME = "HH:mm:ss";
|
|
||||||
export declare const DEFAULT_FORMATS_DATE = "YYYY-MM-DD";
|
|
||||||
export declare const DEFAULT_FORMATS_DATEPICKER: {
|
|
||||||
date: string;
|
|
||||||
week: string;
|
|
||||||
year: string;
|
|
||||||
month: string;
|
|
||||||
datetime: string;
|
|
||||||
monthrange: string;
|
|
||||||
daterange: string;
|
|
||||||
datetimerange: string;
|
|
||||||
};
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
export declare const rangeArr: (n: any) => number[];
|
|
||||||
export declare const extractDateFormat: (format: any) => any;
|
|
||||||
export declare const extractTimeFormat: (format: any) => any;
|
|
||||||
@@ -1,182 +0,0 @@
|
|||||||
import type { Options } from '@popperjs/core';
|
|
||||||
declare const _default: import("vue").DefineComponent<{
|
|
||||||
name: {
|
|
||||||
type: (ArrayConstructor | StringConstructor)[];
|
|
||||||
default: string;
|
|
||||||
};
|
|
||||||
popperClass: {
|
|
||||||
type: StringConstructor;
|
|
||||||
default: string;
|
|
||||||
};
|
|
||||||
format: {
|
|
||||||
type: StringConstructor;
|
|
||||||
};
|
|
||||||
type: {
|
|
||||||
type: StringConstructor;
|
|
||||||
default: string;
|
|
||||||
};
|
|
||||||
clearable: {
|
|
||||||
type: BooleanConstructor;
|
|
||||||
default: boolean;
|
|
||||||
};
|
|
||||||
clearIcon: {
|
|
||||||
type: StringConstructor;
|
|
||||||
default: string;
|
|
||||||
};
|
|
||||||
editable: {
|
|
||||||
type: BooleanConstructor;
|
|
||||||
default: boolean;
|
|
||||||
};
|
|
||||||
prefixIcon: {
|
|
||||||
type: StringConstructor;
|
|
||||||
default: string;
|
|
||||||
};
|
|
||||||
size: {
|
|
||||||
type: import("vue").PropType<ComponentSize>;
|
|
||||||
validator: (val: string) => boolean;
|
|
||||||
};
|
|
||||||
readonly: {
|
|
||||||
type: BooleanConstructor;
|
|
||||||
default: boolean;
|
|
||||||
};
|
|
||||||
disabled: {
|
|
||||||
type: BooleanConstructor;
|
|
||||||
default: boolean;
|
|
||||||
};
|
|
||||||
placeholder: {
|
|
||||||
type: StringConstructor;
|
|
||||||
default: string;
|
|
||||||
};
|
|
||||||
popperOptions: {
|
|
||||||
type: import("vue").PropType<Options>;
|
|
||||||
default: () => {};
|
|
||||||
};
|
|
||||||
modelValue: {
|
|
||||||
type: import("vue").PropType<string | Date | Date[]>;
|
|
||||||
default: string;
|
|
||||||
};
|
|
||||||
rangeSeparator: {
|
|
||||||
type: StringConstructor;
|
|
||||||
default: string;
|
|
||||||
};
|
|
||||||
startPlaceholder: StringConstructor;
|
|
||||||
endPlaceholder: StringConstructor;
|
|
||||||
defaultValue: {
|
|
||||||
type: import("vue").PropType<Date | Date[]>;
|
|
||||||
};
|
|
||||||
defaultTime: {
|
|
||||||
type: import("vue").PropType<Date | Date[]>;
|
|
||||||
};
|
|
||||||
isRange: {
|
|
||||||
type: BooleanConstructor;
|
|
||||||
default: boolean;
|
|
||||||
};
|
|
||||||
disabledHours: {
|
|
||||||
type: FunctionConstructor;
|
|
||||||
};
|
|
||||||
disabledMinutes: {
|
|
||||||
type: FunctionConstructor;
|
|
||||||
};
|
|
||||||
disabledSeconds: {
|
|
||||||
type: FunctionConstructor;
|
|
||||||
};
|
|
||||||
disabledDate: {
|
|
||||||
type: FunctionConstructor;
|
|
||||||
};
|
|
||||||
cellClassName: {
|
|
||||||
type: FunctionConstructor;
|
|
||||||
};
|
|
||||||
shortcuts: {
|
|
||||||
type: ArrayConstructor;
|
|
||||||
default: () => any[];
|
|
||||||
};
|
|
||||||
arrowControl: {
|
|
||||||
type: BooleanConstructor;
|
|
||||||
default: boolean;
|
|
||||||
};
|
|
||||||
validateEvent: {
|
|
||||||
type: BooleanConstructor;
|
|
||||||
default: boolean;
|
|
||||||
};
|
|
||||||
unlinkPanels: BooleanConstructor;
|
|
||||||
}, {
|
|
||||||
elPopperOptions: Options;
|
|
||||||
isDatesPicker: import("vue").ComputedRef<boolean>;
|
|
||||||
handleEndChange: () => void;
|
|
||||||
handleStartChange: () => void;
|
|
||||||
handleStartInput: (event: any) => void;
|
|
||||||
handleEndInput: (event: any) => void;
|
|
||||||
onUserInput: (e: any) => void;
|
|
||||||
handleChange: () => void;
|
|
||||||
handleKeydown: (event: any) => void;
|
|
||||||
popperPaneRef: import("vue").ComputedRef<any>;
|
|
||||||
onClickOutside: () => void;
|
|
||||||
pickerSize: import("vue").ComputedRef<any>;
|
|
||||||
isRangeInput: import("vue").ComputedRef<boolean>;
|
|
||||||
onMouseLeave: () => void;
|
|
||||||
onMouseEnter: () => void;
|
|
||||||
onClearIconClick: (event: any) => void;
|
|
||||||
showClose: import("vue").Ref<boolean>;
|
|
||||||
triggerClass: import("vue").ComputedRef<unknown>;
|
|
||||||
onPick: (date?: any, visible?: boolean) => void;
|
|
||||||
handleFocus: (e: any) => void;
|
|
||||||
pickerVisible: import("vue").Ref<boolean>;
|
|
||||||
pickerActualVisible: import("vue").Ref<boolean>;
|
|
||||||
displayValue: import("vue").ComputedRef<any>;
|
|
||||||
parsedValue: import("vue").ComputedRef<any>;
|
|
||||||
setSelectionRange: (start: any, end: any, pos: any) => void;
|
|
||||||
refPopper: any;
|
|
||||||
pickerDisabled: import("vue").ComputedRef<boolean>;
|
|
||||||
onSetPickerOption: (e: any) => void;
|
|
||||||
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("update:modelValue" | "change" | "focus" | "blur")[], "update:modelValue" | "change" | "focus" | "blur", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{
|
|
||||||
name: unknown;
|
|
||||||
popperClass: unknown;
|
|
||||||
type: unknown;
|
|
||||||
clearable: boolean;
|
|
||||||
clearIcon: unknown;
|
|
||||||
editable: boolean;
|
|
||||||
prefixIcon: unknown;
|
|
||||||
readonly: boolean;
|
|
||||||
disabled: boolean;
|
|
||||||
placeholder: unknown;
|
|
||||||
popperOptions: unknown;
|
|
||||||
modelValue: unknown;
|
|
||||||
rangeSeparator: unknown;
|
|
||||||
isRange: boolean;
|
|
||||||
shortcuts: unknown;
|
|
||||||
arrowControl: boolean;
|
|
||||||
validateEvent: boolean;
|
|
||||||
unlinkPanels: boolean;
|
|
||||||
} & {
|
|
||||||
format?: unknown;
|
|
||||||
size?: unknown;
|
|
||||||
startPlaceholder?: unknown;
|
|
||||||
endPlaceholder?: unknown;
|
|
||||||
defaultValue?: unknown;
|
|
||||||
defaultTime?: unknown;
|
|
||||||
disabledHours?: unknown;
|
|
||||||
disabledMinutes?: unknown;
|
|
||||||
disabledSeconds?: unknown;
|
|
||||||
disabledDate?: unknown;
|
|
||||||
cellClassName?: unknown;
|
|
||||||
}>, {
|
|
||||||
name: unknown;
|
|
||||||
popperClass: unknown;
|
|
||||||
type: unknown;
|
|
||||||
clearable: boolean;
|
|
||||||
clearIcon: unknown;
|
|
||||||
editable: boolean;
|
|
||||||
prefixIcon: unknown;
|
|
||||||
readonly: boolean;
|
|
||||||
disabled: boolean;
|
|
||||||
placeholder: unknown;
|
|
||||||
popperOptions: unknown;
|
|
||||||
modelValue: unknown;
|
|
||||||
rangeSeparator: unknown;
|
|
||||||
isRange: boolean;
|
|
||||||
shortcuts: unknown;
|
|
||||||
arrowControl: boolean;
|
|
||||||
validateEvent: boolean;
|
|
||||||
unlinkPanels: boolean;
|
|
||||||
}>;
|
|
||||||
export default _default;
|
|
||||||
@@ -1,103 +0,0 @@
|
|||||||
import type { PropType } from 'vue';
|
|
||||||
import type { Options } from '@popperjs/core';
|
|
||||||
export declare const defaultProps: {
|
|
||||||
name: {
|
|
||||||
type: (ArrayConstructor | StringConstructor)[];
|
|
||||||
default: string;
|
|
||||||
};
|
|
||||||
popperClass: {
|
|
||||||
type: StringConstructor;
|
|
||||||
default: string;
|
|
||||||
};
|
|
||||||
format: {
|
|
||||||
type: StringConstructor;
|
|
||||||
};
|
|
||||||
type: {
|
|
||||||
type: StringConstructor;
|
|
||||||
default: string;
|
|
||||||
};
|
|
||||||
clearable: {
|
|
||||||
type: BooleanConstructor;
|
|
||||||
default: boolean;
|
|
||||||
};
|
|
||||||
clearIcon: {
|
|
||||||
type: StringConstructor;
|
|
||||||
default: string;
|
|
||||||
};
|
|
||||||
editable: {
|
|
||||||
type: BooleanConstructor;
|
|
||||||
default: boolean;
|
|
||||||
};
|
|
||||||
prefixIcon: {
|
|
||||||
type: StringConstructor;
|
|
||||||
default: string;
|
|
||||||
};
|
|
||||||
size: {
|
|
||||||
type: PropType<ComponentSize>;
|
|
||||||
validator: (val: string) => boolean;
|
|
||||||
};
|
|
||||||
readonly: {
|
|
||||||
type: BooleanConstructor;
|
|
||||||
default: boolean;
|
|
||||||
};
|
|
||||||
disabled: {
|
|
||||||
type: BooleanConstructor;
|
|
||||||
default: boolean;
|
|
||||||
};
|
|
||||||
placeholder: {
|
|
||||||
type: StringConstructor;
|
|
||||||
default: string;
|
|
||||||
};
|
|
||||||
popperOptions: {
|
|
||||||
type: PropType<Options>;
|
|
||||||
default: () => {};
|
|
||||||
};
|
|
||||||
modelValue: {
|
|
||||||
type: PropType<string | Date | Date[]>;
|
|
||||||
default: string;
|
|
||||||
};
|
|
||||||
rangeSeparator: {
|
|
||||||
type: StringConstructor;
|
|
||||||
default: string;
|
|
||||||
};
|
|
||||||
startPlaceholder: StringConstructor;
|
|
||||||
endPlaceholder: StringConstructor;
|
|
||||||
defaultValue: {
|
|
||||||
type: PropType<Date | Date[]>;
|
|
||||||
};
|
|
||||||
defaultTime: {
|
|
||||||
type: PropType<Date | Date[]>;
|
|
||||||
};
|
|
||||||
isRange: {
|
|
||||||
type: BooleanConstructor;
|
|
||||||
default: boolean;
|
|
||||||
};
|
|
||||||
disabledHours: {
|
|
||||||
type: FunctionConstructor;
|
|
||||||
};
|
|
||||||
disabledMinutes: {
|
|
||||||
type: FunctionConstructor;
|
|
||||||
};
|
|
||||||
disabledSeconds: {
|
|
||||||
type: FunctionConstructor;
|
|
||||||
};
|
|
||||||
disabledDate: {
|
|
||||||
type: FunctionConstructor;
|
|
||||||
};
|
|
||||||
cellClassName: {
|
|
||||||
type: FunctionConstructor;
|
|
||||||
};
|
|
||||||
shortcuts: {
|
|
||||||
type: ArrayConstructor;
|
|
||||||
default: () => any[];
|
|
||||||
};
|
|
||||||
arrowControl: {
|
|
||||||
type: BooleanConstructor;
|
|
||||||
default: boolean;
|
|
||||||
};
|
|
||||||
validateEvent: {
|
|
||||||
type: BooleanConstructor;
|
|
||||||
default: boolean;
|
|
||||||
};
|
|
||||||
unlinkPanels: BooleanConstructor;
|
|
||||||
};
|
|
||||||