Compare commits
689 Commits
feature/vi
...
25044d9e03
Author | SHA1 | Date | |
---|---|---|---|
25044d9e03 | |||
69ce487011 | |||
e7b2c00718 | |||
513521de5d | |||
124f1a1116 | |||
23f582f376 | |||
840b9f217b | |||
17869f42b5 | |||
cddb40925b | |||
f41eb994fb | |||
51ed92192a | |||
faaf9332e3 | |||
aafc4ae1ff | |||
e174bf30d4 | |||
b8f105e3a9 | |||
1c5d01b25f | |||
89b308e515 | |||
e027524d22 | |||
952056770b | |||
fa556a357c | |||
aff85e8e41 | |||
5751e68318 | |||
e5a3152276 | |||
ca4290ca46 | |||
05d1540982 | |||
caf9bc581c | |||
d494a54584 | |||
b2f6224b09 | |||
7540764a57 | |||
ec69266e5d | |||
215c94b127 | |||
06e0226a3f | |||
495d5c8299 | |||
75879f805b | |||
83e3df1b52 | |||
d8c34bc059 | |||
3cb72e3eb6 | |||
1790a8d9ee | |||
e1af2e132a | |||
147bc355b6 | |||
1d28c4baf6 | |||
042bdd6c97 | |||
52b180aa25 | |||
33ca187038 | |||
3d8861550a | |||
2b4d966dac | |||
6f0a26a426 | |||
b34ef8e651 | |||
477615e1ca | |||
2b5f58a505 | |||
696655ef9b | |||
cdfbde1247 | |||
e29ead6003 | |||
8a15bd6a2d | |||
6b9b090089 | |||
53c42cff24 | |||
0d0304a279 | |||
a9fd3cf179 | |||
4ce36d6571 | |||
8f2a0cb8aa | |||
143185864d | |||
b1ac2635e3 | |||
e218229168 | |||
![]() |
95ea7df9c7 | ||
![]() |
790d49b83b | ||
2f1f047b90 | |||
d604f3b914 | |||
1c080c85c7 | |||
f8748cb782 | |||
808f0e1bb7 | |||
1c4841a2e2 | |||
9c1368a211 | |||
d81a692c60 | |||
d4acd1673d | |||
a93a2814b8 | |||
3615c5baa9 | |||
0fd68950fb | |||
7859716ba5 | |||
![]() |
e40fc0b1cf | ||
366b1f8e98 | |||
9b927e4820 | |||
2560a5f064 | |||
2d648fbb70 | |||
ca590b6b74 | |||
![]() |
61fcdf378f | ||
![]() |
23d991f06f | ||
![]() |
b382dd35d3 | ||
8cf249962c | |||
![]() |
b06c935207 | ||
63d56c6501 | |||
81d317c492 | |||
e23c8aa156 | |||
dd8210fc05 | |||
5c9d6ec300 | |||
6e8f777d96 | |||
![]() |
fdabc476af | ||
![]() |
adc74fe2ae | ||
![]() |
7d04f3c012 | ||
01cac4a280 | |||
450ed68c70 | |||
b76180fc4b | |||
eaba467455 | |||
![]() |
3e7bbdf1c7 | ||
0370e62f8c | |||
27502d1969 | |||
b5ca58af58 | |||
![]() |
762cd12b74 | ||
952270a147 | |||
07b291fe57 | |||
![]() |
f433e4aaa8 | ||
![]() |
05db254040 | ||
![]() |
a7ea9e0296 | ||
![]() |
f21b0b6bb2 | ||
![]() |
7e381e1155 | ||
![]() |
90da1d4674 | ||
![]() |
239e4c4ed8 | ||
![]() |
63b9eec8c8 | ||
![]() |
799f767e0d | ||
![]() |
fdf71c854e | ||
![]() |
18dd168f47 | ||
![]() |
cd56f5b67a | ||
![]() |
f0e6794903 | ||
![]() |
fdeb7df3ab | ||
![]() |
e19b716a67 | ||
![]() |
033de46bca | ||
![]() |
90bac1464f | ||
![]() |
bbf73880ef | ||
![]() |
bed9c1b614 | ||
![]() |
5704175cc6 | ||
![]() |
80c0c1d15c | ||
![]() |
091ec24d86 | ||
![]() |
b18dc26052 | ||
![]() |
a77d6757cd | ||
![]() |
499687fc5a | ||
![]() |
4b78298651 | ||
![]() |
47ace88c31 | ||
![]() |
ea39538887 | ||
![]() |
7eed754f42 | ||
![]() |
851531a75b | ||
![]() |
6f65e9bc6c | ||
![]() |
a877ceea36 | ||
![]() |
3b39dcb51c | ||
![]() |
69f5c17e84 | ||
![]() |
945b9a3a0f | ||
![]() |
79de27556e | ||
![]() |
8608d7bc65 | ||
![]() |
f8c9fd4a90 | ||
![]() |
aed3b73782 | ||
![]() |
42ee226cc1 | ||
![]() |
e387d93d8e | ||
![]() |
0aea2bc1cc | ||
![]() |
b2befa8a9f | ||
![]() |
1be71a3d65 | ||
![]() |
a45fb8f20f | ||
![]() |
359a34c955 | ||
![]() |
9986b102f1 | ||
![]() |
476f769142 | ||
![]() |
06d0613981 | ||
![]() |
f0ac7b4f6c | ||
![]() |
81065e2e4c | ||
![]() |
7d768ff9e9 | ||
![]() |
e20c7cb32b | ||
![]() |
80c6fb33f4 | ||
![]() |
a969dca1a9 | ||
![]() |
a22e4b8e6e | ||
![]() |
d694a8ebee | ||
![]() |
ffce044dd9 | ||
![]() |
94a5d4442c | ||
![]() |
3ae6a82291 | ||
![]() |
deafdd3455 | ||
![]() |
b0583d97a1 | ||
![]() |
45b5da6850 | ||
![]() |
2fd36936c7 | ||
![]() |
22036ad0a1 | ||
![]() |
f429da9a16 | ||
![]() |
67b3922dd4 | ||
![]() |
b9b81a6aa6 | ||
![]() |
a57988d54e | ||
![]() |
ed2aef45d9 | ||
![]() |
a7e99df44f | ||
![]() |
eec99571e2 | ||
![]() |
e79c2c5194 | ||
![]() |
a71361ff10 | ||
![]() |
800d82931f | ||
![]() |
1720052432 | ||
![]() |
e4d2b06870 | ||
![]() |
0e11c133c1 | ||
![]() |
a16a1c0d8c | ||
![]() |
66d35f787c | ||
![]() |
bd59f9e22f | ||
![]() |
c50f26c478 | ||
![]() |
75719bd505 | ||
![]() |
80319fbd0d | ||
![]() |
b3b6e4ad47 | ||
![]() |
d0b9c6e89c | ||
![]() |
cc6212382f | ||
![]() |
dad854f161 | ||
![]() |
eba06413b3 | ||
![]() |
6533005018 | ||
![]() |
efdb076730 | ||
![]() |
d17a22cd89 | ||
![]() |
3f1b6758a9 | ||
![]() |
5a1ebf0e59 | ||
![]() |
28761cd3f7 | ||
![]() |
f774c4a6f6 | ||
![]() |
c20c5693fe | ||
![]() |
54e61b6185 | ||
![]() |
a9ee446d2b | ||
![]() |
12fa37fc1b | ||
![]() |
1f7bd0361d | ||
![]() |
cea2b471d8 | ||
![]() |
47ce14c348 | ||
![]() |
8d65cb5b95 | ||
![]() |
9cd5f79a99 | ||
![]() |
715845cd66 | ||
![]() |
2f2b856435 | ||
![]() |
f5619e8839 | ||
![]() |
3989182047 | ||
6ca23f1254 | |||
![]() |
28a1006402 | ||
![]() |
ff349c0829 | ||
![]() |
19d8ed1fc4 | ||
![]() |
ded7c2154a | ||
![]() |
00a87a713e | ||
![]() |
eac2e3b2b9 | ||
![]() |
871f604038 | ||
![]() |
388ddac3c9 | ||
![]() |
8fe40d2f42 | ||
![]() |
91af330db5 | ||
![]() |
0c0bc701c2 | ||
![]() |
1f825cc240 | ||
![]() |
e710c02d3d | ||
![]() |
19e048873d | ||
![]() |
194511b212 | ||
![]() |
fc1aa2f2e0 | ||
![]() |
9e17b32e4e | ||
![]() |
f09d2cef21 | ||
![]() |
8fc88a6290 | ||
![]() |
e666ee905a | ||
![]() |
133b9b96f4 | ||
![]() |
95626880e2 | ||
![]() |
1ab2985da7 | ||
![]() |
3ba6f3e428 | ||
![]() |
5d04652a1e | ||
![]() |
af6f1a922b | ||
![]() |
3256cf38c4 | ||
![]() |
4f86375fa3 | ||
![]() |
56a23bfe2e | ||
![]() |
3d68691137 | ||
![]() |
5040d0a014 | ||
![]() |
e67e5094f5 | ||
![]() |
31c632a73a | ||
![]() |
068d992c4b | ||
![]() |
922444d958 | ||
![]() |
a09809b5ae | ||
![]() |
87e5e10ceb | ||
![]() |
4008f36015 | ||
![]() |
06daf24fff | ||
![]() |
1f604e9431 | ||
![]() |
651eb7a14e | ||
![]() |
38fba3eca3 | ||
![]() |
d93fa6f57b | ||
![]() |
00fdf09920 | ||
![]() |
3866ffa9c4 | ||
![]() |
fddedfc4b4 | ||
![]() |
4ba6076332 | ||
![]() |
2547caeac8 | ||
![]() |
e8836d1223 | ||
![]() |
3dfff36aaa | ||
![]() |
64af9bc602 | ||
![]() |
1a5f2f676c | ||
![]() |
179f0718e6 | ||
![]() |
f3c1518fdf | ||
![]() |
662637a6e9 | ||
![]() |
af2a393a65 | ||
![]() |
519f07f4cf | ||
![]() |
44db1b535c | ||
![]() |
186504f0fb | ||
![]() |
45c3f1fd92 | ||
![]() |
3bc87809e1 | ||
![]() |
5323ad7241 | ||
![]() |
8fe6b24b0f | ||
![]() |
99d2c67087 | ||
![]() |
e31f755216 | ||
![]() |
a73f806d92 | ||
![]() |
fa1138dc03 | ||
![]() |
6191f1a3f5 | ||
![]() |
50919fd508 | ||
![]() |
8dc17b87ad | ||
![]() |
d420979350 | ||
![]() |
63c7f5ed80 | ||
![]() |
eba1d654d3 | ||
![]() |
09dc6f3645 | ||
![]() |
5338943b9b | ||
![]() |
1b47d48d0a | ||
![]() |
3659f582d5 | ||
![]() |
ed17e47390 | ||
![]() |
84e86deb73 | ||
![]() |
0751f06ec4 | ||
![]() |
4bc596e3d8 | ||
![]() |
1683225a72 | ||
![]() |
c904646f4a | ||
![]() |
98d5f20be7 | ||
![]() |
924971a290 | ||
![]() |
f5b721a6f8 | ||
![]() |
47c819433b | ||
![]() |
3e9a2bfb60 | ||
![]() |
ce2a63c864 | ||
![]() |
0e5857873c | ||
![]() |
26d422ecda | ||
![]() |
ccf95bb81a | ||
![]() |
dd1fdb23c2 | ||
![]() |
84a26ed699 | ||
![]() |
f1f558e2b1 | ||
![]() |
1b74d19c98 | ||
![]() |
aab2ff2794 | ||
![]() |
d750ae68d2 | ||
![]() |
44ea9d3dcf | ||
![]() |
2394d2ef60 | ||
![]() |
91e295e3b7 | ||
![]() |
47a67f4718 | ||
![]() |
8c06877c67 | ||
![]() |
be82b67bab | ||
![]() |
da9368018a | ||
![]() |
c39b992e31 | ||
![]() |
1aa6a67531 | ||
![]() |
a2fa4a8fbd | ||
![]() |
4ab5768849 | ||
![]() |
fa2d3975d2 | ||
![]() |
0fdcf097c8 | ||
![]() |
3d18a53f34 | ||
![]() |
627de18eaf | ||
![]() |
8868f4204c | ||
![]() |
38bffe26dc | ||
![]() |
8a548f9a69 | ||
![]() |
28b21d5c85 | ||
![]() |
dcdf89aa48 | ||
![]() |
b9dcae392a | ||
![]() |
ae4b9d0493 | ||
![]() |
8789fdfc29 | ||
![]() |
0700880ade | ||
![]() |
7c042161bd | ||
![]() |
431749ef28 | ||
![]() |
7bb0faad23 | ||
![]() |
59a2461f73 | ||
![]() |
223311f321 | ||
![]() |
02474473bf | ||
![]() |
559fea9300 | ||
![]() |
ed618598c2 | ||
![]() |
7610a2768f | ||
![]() |
eb7e9387c6 | ||
![]() |
212498b6be | ||
![]() |
369bf84a1f | ||
![]() |
a79445b9e5 | ||
![]() |
fda1a6aacb | ||
![]() |
e58363371c | ||
![]() |
943518ce24 | ||
![]() |
df0093c4f8 | ||
![]() |
19d8ac3753 | ||
![]() |
9486359ddf | ||
![]() |
ef7c060545 | ||
![]() |
350c1b0e07 | ||
![]() |
f9a1f6a89c | ||
![]() |
c7597a1b14 | ||
![]() |
9b7d0132ef | ||
![]() |
0dcf3594bd | ||
![]() |
e50a89fb0a | ||
![]() |
49bd77ae3f | ||
![]() |
d9a6c2881b | ||
![]() |
46af95e834 | ||
![]() |
07543cca7d | ||
![]() |
a75058d202 | ||
![]() |
9129e29bf3 | ||
![]() |
37df3b5db1 | ||
![]() |
6e841bc675 | ||
![]() |
286969cdd1 | ||
![]() |
d3b48eea86 | ||
![]() |
9e6495d807 | ||
![]() |
836fb732c8 | ||
![]() |
9a151fbe05 | ||
![]() |
07e9a1e8b2 | ||
![]() |
d3c14383f8 | ||
![]() |
5bba43c189 | ||
![]() |
74939056ce | ||
![]() |
004bf0e03a | ||
![]() |
b467577792 | ||
![]() |
99a1c89643 | ||
![]() |
b043d8c06e | ||
![]() |
fb007e763c | ||
![]() |
2fddf66a5d | ||
![]() |
75bcd232a4 | ||
![]() |
ae0a3507a6 | ||
![]() |
31d6efd60e | ||
![]() |
70993f1b4d | ||
![]() |
e4fb991a98 | ||
![]() |
b84438c19d | ||
![]() |
ed9178a1d0 | ||
![]() |
78b3a70d5f | ||
![]() |
baad132403 | ||
![]() |
c865eae77b | ||
![]() |
5d296f8086 | ||
![]() |
3f905c2b1e | ||
![]() |
7add80a5ae | ||
![]() |
0d6019e9f1 | ||
![]() |
11ceac5d4f | ||
![]() |
289aa70af3 | ||
![]() |
c8b283b0d8 | ||
![]() |
9bec1ba472 | ||
![]() |
2c64fc1443 | ||
![]() |
097dea0693 | ||
![]() |
6abde0b9ec | ||
![]() |
c99ee00ca8 | ||
![]() |
c3f70e3c9b | ||
![]() |
1e4002a4fa | ||
![]() |
090447e1ce | ||
![]() |
c847b94994 | ||
![]() |
f91dc1cf62 | ||
![]() |
4d5fb57ddf | ||
![]() |
b174c9818e | ||
![]() |
c6f979c094 | ||
![]() |
475ee45a44 | ||
![]() |
c4209d6c24 | ||
![]() |
e77165a1d7 | ||
![]() |
8a2c1381e9 | ||
![]() |
e062c2afa3 | ||
![]() |
591495edcc | ||
![]() |
25e828f7e4 | ||
![]() |
1ab319d372 | ||
![]() |
9b6ee433d7 | ||
![]() |
9c4aa4efb9 | ||
![]() |
f228aad967 | ||
![]() |
e47b57f760 | ||
![]() |
4e3bbd9209 | ||
![]() |
9f9e7ca81c | ||
![]() |
493ad80d1c | ||
![]() |
a71144b735 | ||
![]() |
ebf22c8012 | ||
![]() |
69dc2de281 | ||
![]() |
520e4e4c58 | ||
![]() |
faa779555c | ||
![]() |
a62f2a5eca | ||
![]() |
65cf443cb4 | ||
![]() |
9f2b89d0be | ||
![]() |
b362a25028 | ||
![]() |
3c909bdb97 | ||
![]() |
d79917ecca | ||
![]() |
b5de5e5125 | ||
![]() |
8cf9dfa2bc | ||
![]() |
fa41f55a23 | ||
![]() |
c6487e78bb | ||
![]() |
de76dc8f56 | ||
![]() |
1e67efafe7 | ||
![]() |
f31dcae058 | ||
![]() |
aa74f2ed36 | ||
![]() |
e4cbd9cc35 | ||
![]() |
775b8abc93 | ||
![]() |
e1fb48d900 | ||
![]() |
93aded746e | ||
![]() |
af1d94c1f2 | ||
![]() |
89c27b28e7 | ||
![]() |
f34a7b9430 | ||
![]() |
fbd4fdcbd1 | ||
![]() |
7ea73622cd | ||
![]() |
6e66ca4864 | ||
![]() |
12761b956c | ||
![]() |
76f9bcddab | ||
![]() |
3e490e2631 | ||
![]() |
00b2bf5917 | ||
![]() |
5b41dbabed | ||
![]() |
b53103c162 | ||
![]() |
4fcc220759 | ||
![]() |
386966a84e | ||
![]() |
e2c6898f16 | ||
![]() |
ef83e6d239 | ||
![]() |
942cd1e479 | ||
![]() |
939940a217 | ||
![]() |
de2c0fe8ea | ||
![]() |
ab3b8c2871 | ||
![]() |
3a39476782 | ||
![]() |
bda30dd647 | ||
![]() |
e87f8e4c82 | ||
![]() |
34dbcc2f2b | ||
![]() |
33af99f086 | ||
![]() |
4096f9be43 | ||
![]() |
2210a40f67 | ||
![]() |
62155cbc96 | ||
![]() |
7c0438b070 | ||
![]() |
40884b5b21 | ||
![]() |
966cc40b3c | ||
![]() |
6075a3b7ef | ||
![]() |
5c54053377 | ||
![]() |
abcffa1cc3 | ||
![]() |
1860ce0e48 | ||
![]() |
a9b5f44e88 | ||
![]() |
0645211afc | ||
![]() |
8b69be0d27 | ||
![]() |
24b59255c6 | ||
![]() |
79421740f9 | ||
![]() |
6e3e4951aa | ||
![]() |
7c06e79a8f | ||
![]() |
dc041fd84f | ||
![]() |
1eaceed61b | ||
![]() |
017bf0c641 | ||
![]() |
8f9a22ffd1 | ||
![]() |
aba3833f5b | ||
![]() |
daa04b9269 | ||
![]() |
4e9dbb6622 | ||
![]() |
57c96c8aaf | ||
![]() |
28e104e649 | ||
![]() |
9c996955f2 | ||
![]() |
8823ec2ec3 | ||
![]() |
2cc695c978 | ||
![]() |
d591cfc013 | ||
![]() |
eec3bb54cb | ||
![]() |
45ca219d0f | ||
![]() |
d63f15638b | ||
![]() |
7b13dadd12 | ||
![]() |
6f5ad0ee6a | ||
![]() |
d908b73193 | ||
![]() |
5ac087e5aa | ||
![]() |
1e1119eb35 | ||
![]() |
7c62ef6549 | ||
![]() |
8a3806855b | ||
![]() |
2fce98c88e | ||
![]() |
5680f42d06 | ||
![]() |
5dc4eb5198 | ||
![]() |
95382d1c87 | ||
![]() |
d42e95e2b3 | ||
![]() |
d9518f4c33 | ||
![]() |
6085f5fce6 | ||
![]() |
eac6f613f7 | ||
![]() |
80ddf7b5a5 | ||
![]() |
69ec2ebef9 | ||
![]() |
3062812f1f | ||
![]() |
616758549b | ||
![]() |
8fdb2b6c0d | ||
![]() |
afe984fe84 | ||
![]() |
49dc775fff | ||
![]() |
4077895f55 | ||
![]() |
a9c7ee9a47 | ||
![]() |
e402157726 | ||
![]() |
8e01552671 | ||
![]() |
c27c5490b2 | ||
![]() |
f4f374295d | ||
![]() |
a514eacf81 | ||
![]() |
4f7271a87b | ||
![]() |
f99c063b52 | ||
![]() |
d9aabae260 | ||
![]() |
04dcb3cfa5 | ||
![]() |
d461f9c298 | ||
![]() |
3784b748f7 | ||
![]() |
85a6ea9106 | ||
![]() |
e4f9cfb3ec | ||
![]() |
097c0b0d08 | ||
![]() |
c175d662e8 | ||
![]() |
2d28fbcb8f | ||
![]() |
df9e96de9a | ||
![]() |
fafbd3e75c | ||
![]() |
a86e731633 | ||
![]() |
c584f0154f | ||
![]() |
e694f3f9a7 | ||
![]() |
4b417d446f | ||
![]() |
697af0c109 | ||
![]() |
a3d6c0c82c | ||
![]() |
2ac3b75d30 | ||
![]() |
6819127c40 | ||
![]() |
5c67b35aaa | ||
![]() |
f5753982d0 | ||
![]() |
22285b39c2 | ||
![]() |
da3e97026c | ||
![]() |
5e4f13c8d9 | ||
![]() |
8692437f87 | ||
![]() |
5efd586524 | ||
![]() |
747ef1c4f1 | ||
![]() |
39040b282e | ||
![]() |
2c988ee98c | ||
![]() |
0ec763d122 | ||
![]() |
851c1a7d55 | ||
![]() |
e89f73e9c8 | ||
![]() |
0c28832c48 | ||
![]() |
fdcda4a422 | ||
![]() |
a62437cb4f | ||
![]() |
864f0d6af8 | ||
![]() |
712b14f105 | ||
![]() |
c0572cbb2c | ||
![]() |
0fe9857c48 | ||
![]() |
5f8660d4f4 | ||
![]() |
9674f166b7 | ||
![]() |
b52bf78e63 | ||
![]() |
6859f0377e | ||
![]() |
e42a1e7807 | ||
![]() |
c0e6eb60a2 | ||
![]() |
69dc83b72b | ||
![]() |
b6300b5e58 | ||
![]() |
3efb68c477 | ||
![]() |
567c682a2b | ||
![]() |
f91c663783 | ||
![]() |
62d45cb0fe | ||
![]() |
54f2c29ada | ||
![]() |
d6e023c040 | ||
![]() |
c5f6d75989 | ||
![]() |
8bbbaa01f1 | ||
![]() |
0aa0e1560a | ||
![]() |
29e3edd925 | ||
![]() |
d8975ca0e0 | ||
![]() |
1150f56c72 | ||
![]() |
4e7d8bba3e | ||
![]() |
2276c55e2b | ||
![]() |
d1670fc22c | ||
![]() |
5e48d3475e | ||
![]() |
6865cbb1ee | ||
![]() |
998df42200 | ||
![]() |
53574cb63e | ||
![]() |
2b3cd29191 | ||
![]() |
c3f5a03df5 | ||
![]() |
7aa67988eb | ||
![]() |
e399826bb9 | ||
![]() |
3209e05fc5 | ||
![]() |
d70621c8a0 | ||
![]() |
29e963f98d | ||
![]() |
b94931d483 | ||
![]() |
9bb50c750a | ||
![]() |
b41eaa4cda | ||
![]() |
a67c0ac06f | ||
![]() |
53bd725166 | ||
![]() |
cd2bf234c3 | ||
![]() |
da56379b68 | ||
![]() |
63cd34ba0b | ||
![]() |
6749feb198 | ||
![]() |
9b881b205a | ||
![]() |
4c4f17ae60 | ||
![]() |
cc80c36d96 | ||
![]() |
002022a0a6 | ||
![]() |
ed5aa8f19b | ||
![]() |
24df62a873 | ||
![]() |
85e6e7e310 | ||
![]() |
fe78dc545a | ||
![]() |
4b057265ce | ||
![]() |
03ea2e5224 | ||
![]() |
617f630d9f | ||
![]() |
7df38eca31 | ||
![]() |
4ffe60e391 | ||
![]() |
863e45d5d2 | ||
![]() |
3641f36bb4 | ||
![]() |
bbd1b33996 | ||
![]() |
788f340db5 | ||
![]() |
0247de5ccc | ||
![]() |
4e9c0d8649 | ||
![]() |
1f26d0ed64 | ||
![]() |
1c88a63fc9 | ||
![]() |
b1402a869e | ||
![]() |
082a8c12df | ||
![]() |
77201f9f18 | ||
![]() |
8a895ec221 | ||
![]() |
6445a5c4de | ||
![]() |
6163b385ad | ||
![]() |
6096ce090f | ||
![]() |
97438b0045 | ||
![]() |
65e5a5b15a | ||
![]() |
692294dcb8 | ||
![]() |
7d8f0a714c | ||
![]() |
14d17603d8 | ||
![]() |
7f16a7c4b3 | ||
![]() |
d6df754f70 | ||
![]() |
4874240cdd | ||
![]() |
fde34bb405 | ||
![]() |
b2a9c4e376 | ||
![]() |
08288a617c | ||
![]() |
23ccbbf7b1 | ||
![]() |
5cd26d2ff1 | ||
![]() |
3580ed7790 | ||
![]() |
2959a7ec7c | ||
![]() |
0880cedd77 | ||
![]() |
b0fda915af | ||
![]() |
1eae9577b6 | ||
![]() |
8896135f72 | ||
![]() |
2f6c2a03a4 | ||
![]() |
8ca3bcd9fc | ||
![]() |
5e421717e7 | ||
![]() |
543719ecd5 | ||
![]() |
dd8b755aec | ||
![]() |
b47a506901 | ||
![]() |
cb7f4c519a | ||
![]() |
1561657d37 | ||
![]() |
3c8ef5d28e | ||
![]() |
84abbe28d2 | ||
![]() |
cd1798c259 | ||
![]() |
4fee145865 | ||
![]() |
24ad849ffb |
@@ -1,2 +1,2 @@
|
||||
VUE_APP_API_BASE_URL='http://beta.admin.pekolive.com'
|
||||
VUE_APP_API_BASE_URL='http://localhost:8080'
|
||||
VUE_APP_DEBUG_MODE=true
|
@@ -1,2 +1,2 @@
|
||||
VUE_APP_API_BASE_URL=http://admin.web.pekolive.com
|
||||
VUE_APP_API_BASE_URL=http://admin.web.moliparty.com
|
||||
VUE_APP_DEBUG_MODE=false
|
@@ -17,5 +17,6 @@ module.exports = {
|
||||
'no-unused-vars': 'off',
|
||||
'no-useless-escape': 'off',
|
||||
'no-control-regex': 'off',
|
||||
'no-extra-semi': 'off',
|
||||
}
|
||||
}
|
||||
|
9
auto-imports.d.ts
vendored
Normal file
9
auto-imports.d.ts
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
/* eslint-disable */
|
||||
/* prettier-ignore */
|
||||
// @ts-nocheck
|
||||
// noinspection JSUnusedGlobalSymbols
|
||||
// Generated by unplugin-auto-import
|
||||
export {}
|
||||
declare global {
|
||||
|
||||
}
|
47
components.d.ts
vendored
Normal file
47
components.d.ts
vendored
Normal file
@@ -0,0 +1,47 @@
|
||||
/* eslint-disable */
|
||||
/* prettier-ignore */
|
||||
// @ts-nocheck
|
||||
// Generated by unplugin-vue-components
|
||||
// Read more: https://github.com/vuejs/core/pull/3399
|
||||
export {}
|
||||
|
||||
declare module 'vue' {
|
||||
export interface GlobalComponents {
|
||||
ElButton: typeof import('element-plus/es')['ElButton']
|
||||
ElCheckbox: typeof import('element-plus/es')['ElCheckbox']
|
||||
ElCheckboxGroup: typeof import('element-plus/es')['ElCheckboxGroup']
|
||||
ElCol: typeof import('element-plus/es')['ElCol']
|
||||
ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider']
|
||||
ElDatePicker: typeof import('element-plus/es')['ElDatePicker']
|
||||
ElDialog: typeof import('element-plus/es')['ElDialog']
|
||||
ElForm: typeof import('element-plus/es')['ElForm']
|
||||
ElFormItem: typeof import('element-plus/es')['ElFormItem']
|
||||
ElIcon: typeof import('element-plus/es')['ElIcon']
|
||||
ElImage: typeof import('element-plus/es')['ElImage']
|
||||
ElInput: typeof import('element-plus/es')['ElInput']
|
||||
ElOption: typeof import('element-plus/es')['ElOption']
|
||||
ElPagination: typeof import('element-plus/es')['ElPagination']
|
||||
ElPopover: typeof import('element-plus/es')['ElPopover']
|
||||
ElRadio: typeof import('element-plus/es')['ElRadio']
|
||||
ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup']
|
||||
ElRate: typeof import('element-plus/es')['ElRate']
|
||||
ElSelect: typeof import('element-plus/es')['ElSelect']
|
||||
ElSwitch: typeof import('element-plus/es')['ElSwitch']
|
||||
ElTable: typeof import('element-plus/es')['ElTable']
|
||||
ElTableColumn: typeof import('element-plus/es')['ElTableColumn']
|
||||
ElTabPane: typeof import('element-plus/es')['ElTabPane']
|
||||
ElTabs: typeof import('element-plus/es')['ElTabs']
|
||||
ElTag: typeof import('element-plus/es')['ElTag']
|
||||
ElText: typeof import('element-plus/es')['ElText']
|
||||
ElUpload: typeof import('element-plus/es')['ElUpload']
|
||||
Footer: typeof import('./src/components/footer/index.vue')['default']
|
||||
Header: typeof import('./src/components/header/index.vue')['default']
|
||||
Maintainer: typeof import('./src/components/maintainer/index.vue')['default']
|
||||
RouterLink: typeof import('vue-router')['RouterLink']
|
||||
RouterView: typeof import('vue-router')['RouterView']
|
||||
TablePagination: typeof import('./src/components/common/TablePagination.vue')['default']
|
||||
}
|
||||
export interface ComponentCustomProperties {
|
||||
vLoading: typeof import('element-plus/es')['ElLoadingDirective']
|
||||
}
|
||||
}
|
138
package-lock.json
generated
138
package-lock.json
generated
@@ -14,6 +14,7 @@
|
||||
"bootstrap": "^3.3.5",
|
||||
"core-js": "^3.8.3",
|
||||
"element-plus": "^2.3.14",
|
||||
"file-saver": "^2.0.5",
|
||||
"font-awesome": "^4.6.3",
|
||||
"ionicons": "^2.0.1",
|
||||
"jquery": "^2.2.0",
|
||||
@@ -21,10 +22,14 @@
|
||||
"knockout": "^3.5.1",
|
||||
"less": "^4.2.0",
|
||||
"less-loader": "^11.1.3",
|
||||
"moment-timezone": "^0.5.45",
|
||||
"node-sass": "^9.0.0",
|
||||
"popper.js": "^1.16.1",
|
||||
"sass": "^1.67.0",
|
||||
"sass-loader": "^13.3.2",
|
||||
"svgaplayerweb": "^2.3.2",
|
||||
"unplugin-element-plus": "^0.8.0",
|
||||
"vue-clipboard2": "^0.3.3",
|
||||
"vue-router": "^4.0.3",
|
||||
"vuex": "^4.0.0",
|
||||
"xlsx": "^0.18.5"
|
||||
@@ -39,6 +44,7 @@
|
||||
"@vue/cli-service": "~5.0.0",
|
||||
"eslint": "^7.32.0",
|
||||
"eslint-plugin-vue": "^8.0.3",
|
||||
"script-loader": "^0.7.2",
|
||||
"unplugin-auto-import": "^0.16.7",
|
||||
"unplugin-vue-components": "^0.25.2",
|
||||
"vue": "^3.2.13",
|
||||
@@ -2193,7 +2199,6 @@
|
||||
"version": "5.0.5",
|
||||
"resolved": "https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-5.0.5.tgz",
|
||||
"integrity": "sha512-6aEYR910NyP73oHiJglti74iRyOwgFU4x3meH/H8OJx6Ry0j6cOVZ5X/wTvub7G7Ao6qaHBEaNsV3GLJkSsF+Q==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/estree": "^1.0.0",
|
||||
"estree-walker": "^2.0.2",
|
||||
@@ -4435,9 +4440,23 @@
|
||||
}
|
||||
},
|
||||
"node_modules/caniuse-lite": {
|
||||
"version": "1.0.30001546",
|
||||
"resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001546.tgz",
|
||||
"integrity": "sha512-zvtSJwuQFpewSyRrI3AsftF6rM0X80mZkChIt1spBGEvRglCrjTniXvinc8JKRoqTwXAgvqTImaN9igfSMtUBw=="
|
||||
"version": "1.0.30001651",
|
||||
"resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001651.tgz",
|
||||
"integrity": "sha512-9Cf+Xv1jJNe1xPZLGuUXLNkE1BoDkqRqYyFJ9TDYSqhduqA4hu4oR9HluGoWYQC/aj8WHjsGVV+bwkh0+tegRg==",
|
||||
"funding": [
|
||||
{
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/browserslist"
|
||||
},
|
||||
{
|
||||
"type": "tidelift",
|
||||
"url": "https://tidelift.com/funding/github/npm/caniuse-lite"
|
||||
},
|
||||
{
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/ai"
|
||||
}
|
||||
]
|
||||
},
|
||||
"node_modules/case-sensitive-paths-webpack-plugin": {
|
||||
"version": "2.4.0",
|
||||
@@ -4652,6 +4671,16 @@
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/clipboard": {
|
||||
"version": "2.0.11",
|
||||
"resolved": "https://registry.npmmirror.com/clipboard/-/clipboard-2.0.11.tgz",
|
||||
"integrity": "sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw==",
|
||||
"dependencies": {
|
||||
"good-listener": "^1.2.2",
|
||||
"select": "^1.1.2",
|
||||
"tiny-emitter": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/clipboardy": {
|
||||
"version": "2.3.0",
|
||||
"resolved": "https://registry.npmmirror.com/clipboardy/-/clipboardy-2.3.0.tgz",
|
||||
@@ -5547,6 +5576,11 @@
|
||||
"node": ">=0.4.0"
|
||||
}
|
||||
},
|
||||
"node_modules/delegate": {
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npmmirror.com/delegate/-/delegate-3.2.0.tgz",
|
||||
"integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw=="
|
||||
},
|
||||
"node_modules/delegates": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmmirror.com/delegates/-/delegates-1.0.0.tgz",
|
||||
@@ -6685,6 +6719,11 @@
|
||||
"node": "^10.12.0 || >=12.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/file-saver": {
|
||||
"version": "2.0.5",
|
||||
"resolved": "https://registry.npmmirror.com/file-saver/-/file-saver-2.0.5.tgz",
|
||||
"integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA=="
|
||||
},
|
||||
"node_modules/fill-range": {
|
||||
"version": "7.0.1",
|
||||
"resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz",
|
||||
@@ -7082,6 +7121,14 @@
|
||||
"node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/good-listener": {
|
||||
"version": "1.2.2",
|
||||
"resolved": "https://registry.npmmirror.com/good-listener/-/good-listener-1.2.2.tgz",
|
||||
"integrity": "sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw==",
|
||||
"dependencies": {
|
||||
"delegate": "^3.1.2"
|
||||
}
|
||||
},
|
||||
"node_modules/gopd": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.0.1.tgz",
|
||||
@@ -8929,6 +8976,25 @@
|
||||
"integrity": "sha512-23g5BFj4zdQL/b6tor7Ji+QY4pEfNH784BMslY9Qb0UnJWRAt+lQGLYmRaM0KDBwIG23ffEBELhZDP2rhi9f/Q==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/moment": {
|
||||
"version": "2.30.1",
|
||||
"resolved": "https://registry.npmmirror.com/moment/-/moment-2.30.1.tgz",
|
||||
"integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==",
|
||||
"engines": {
|
||||
"node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/moment-timezone": {
|
||||
"version": "0.5.45",
|
||||
"resolved": "https://registry.npmmirror.com/moment-timezone/-/moment-timezone-0.5.45.tgz",
|
||||
"integrity": "sha512-HIWmqA86KcmCAhnMAN0wuDOARV/525R2+lOLotuGFzn4HO+FH+/645z2wx0Dt3iDv6/p61SIvKnDstISainhLQ==",
|
||||
"dependencies": {
|
||||
"moment": "^2.29.4"
|
||||
},
|
||||
"engines": {
|
||||
"node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/mrmime": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmmirror.com/mrmime/-/mrmime-1.0.1.tgz",
|
||||
@@ -10790,6 +10856,12 @@
|
||||
"node": ">= 0.8"
|
||||
}
|
||||
},
|
||||
"node_modules/raw-loader": {
|
||||
"version": "0.5.1",
|
||||
"resolved": "https://registry.npmmirror.com/raw-loader/-/raw-loader-0.5.1.tgz",
|
||||
"integrity": "sha512-sf7oGoLuaYAScB4VGr0tzetsYlS8EJH6qnTCfQ/WVEa89hALQ4RQfCKt5xCyPQKPDUbVUAIP1QsxAwfAjlDp7Q==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/read-pkg": {
|
||||
"version": "5.2.0",
|
||||
"resolved": "https://registry.npmmirror.com/read-pkg/-/read-pkg-5.2.0.tgz",
|
||||
@@ -11238,6 +11310,15 @@
|
||||
"node": ">= 8.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/script-loader": {
|
||||
"version": "0.7.2",
|
||||
"resolved": "https://registry.npmmirror.com/script-loader/-/script-loader-0.7.2.tgz",
|
||||
"integrity": "sha512-UMNLEvgOAQuzK8ji8qIscM3GIrRCWN6MmMXGD4SD5l6cSycgGsCo0tX5xRnfQcoghqct0tjHjcykgI1PyBE2aA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"raw-loader": "~0.5.1"
|
||||
}
|
||||
},
|
||||
"node_modules/scss-tokenizer": {
|
||||
"version": "0.4.3",
|
||||
"resolved": "https://registry.npmmirror.com/scss-tokenizer/-/scss-tokenizer-0.4.3.tgz",
|
||||
@@ -11261,6 +11342,11 @@
|
||||
"integrity": "sha512-4AsO/FrViE/iDNEPaAQlb77tf0csuq27EsVpy6ett584EcRTp6pTDLoGWVxCD77y5iU5FauOvhsI4o1APwPoSQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/select": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmmirror.com/select/-/select-1.1.2.tgz",
|
||||
"integrity": "sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA=="
|
||||
},
|
||||
"node_modules/select-hose": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmmirror.com/select-hose/-/select-hose-2.0.0.tgz",
|
||||
@@ -11905,6 +11991,11 @@
|
||||
"integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/svgaplayerweb": {
|
||||
"version": "2.3.2",
|
||||
"resolved": "https://registry.npmmirror.com/svgaplayerweb/-/svgaplayerweb-2.3.2.tgz",
|
||||
"integrity": "sha512-QuTvNIgy3W6Mi4h74SczEHUtAwb8m3ax7Ai7xRLUuN6hjJh49RGtWOWq1IuF2I7ECcl0HAYn8FcTn99UDz9UiQ=="
|
||||
},
|
||||
"node_modules/svgo": {
|
||||
"version": "2.8.0",
|
||||
"resolved": "https://registry.npmmirror.com/svgo/-/svgo-2.8.0.tgz",
|
||||
@@ -12142,6 +12233,11 @@
|
||||
"integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/tiny-emitter": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmmirror.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz",
|
||||
"integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q=="
|
||||
},
|
||||
"node_modules/to-fast-properties": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmmirror.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
|
||||
@@ -12376,7 +12472,6 @@
|
||||
"version": "1.5.0",
|
||||
"resolved": "https://registry.npmmirror.com/unplugin/-/unplugin-1.5.0.tgz",
|
||||
"integrity": "sha512-9ZdRwbh/4gcm1JTOkp9lAkIDrtOyOxgHmY7cjuwI8L/2RTikMcVG25GsZwNAgRuap3iDw2jeq7eoqtAsz5rW3A==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"acorn": "^8.10.0",
|
||||
"chokidar": "^3.5.3",
|
||||
@@ -12448,6 +12543,28 @@
|
||||
"node": ">=16 || 14 >=14.17"
|
||||
}
|
||||
},
|
||||
"node_modules/unplugin-element-plus": {
|
||||
"version": "0.8.0",
|
||||
"resolved": "https://registry.npmmirror.com/unplugin-element-plus/-/unplugin-element-plus-0.8.0.tgz",
|
||||
"integrity": "sha512-jByUGY3FG2B8RJKFryqxx4eNtSTj+Hjlo8edcOdJymewndDQjThZ1pRUQHRjQsbKhTV2jEctJV7t7RJ405UL4g==",
|
||||
"dependencies": {
|
||||
"@rollup/pluginutils": "^5.0.2",
|
||||
"es-module-lexer": "^1.3.0",
|
||||
"magic-string": "^0.30.1",
|
||||
"unplugin": "^1.3.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14.19.0"
|
||||
}
|
||||
},
|
||||
"node_modules/unplugin-element-plus/node_modules/magic-string": {
|
||||
"version": "0.30.10",
|
||||
"resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.10.tgz",
|
||||
"integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==",
|
||||
"dependencies": {
|
||||
"@jridgewell/sourcemap-codec": "^1.4.15"
|
||||
}
|
||||
},
|
||||
"node_modules/unplugin-vue-components": {
|
||||
"version": "0.25.2",
|
||||
"resolved": "https://registry.npmmirror.com/unplugin-vue-components/-/unplugin-vue-components-0.25.2.tgz",
|
||||
@@ -12527,8 +12644,7 @@
|
||||
"node_modules/unplugin/node_modules/webpack-virtual-modules": {
|
||||
"version": "0.5.0",
|
||||
"resolved": "https://registry.npmmirror.com/webpack-virtual-modules/-/webpack-virtual-modules-0.5.0.tgz",
|
||||
"integrity": "sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==",
|
||||
"dev": true
|
||||
"integrity": "sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw=="
|
||||
},
|
||||
"node_modules/update-browserslist-db": {
|
||||
"version": "1.0.13",
|
||||
@@ -12618,6 +12734,14 @@
|
||||
"@vue/shared": "3.2.13"
|
||||
}
|
||||
},
|
||||
"node_modules/vue-clipboard2": {
|
||||
"version": "0.3.3",
|
||||
"resolved": "https://registry.npmmirror.com/vue-clipboard2/-/vue-clipboard2-0.3.3.tgz",
|
||||
"integrity": "sha512-aNWXIL2DKgJyY/1OOeITwAQz1fHaCIGvUFHf9h8UcoQBG5a74MkdhS/xqoYe7DNZdQmZRL+TAdIbtUs9OyVjbw==",
|
||||
"dependencies": {
|
||||
"clipboard": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/vue-eslint-parser": {
|
||||
"version": "8.3.0",
|
||||
"resolved": "https://registry.npmmirror.com/vue-eslint-parser/-/vue-eslint-parser-8.3.0.tgz",
|
||||
|
@@ -14,6 +14,7 @@
|
||||
"bootstrap": "^3.3.5",
|
||||
"core-js": "^3.8.3",
|
||||
"element-plus": "^2.3.14",
|
||||
"file-saver": "^2.0.5",
|
||||
"font-awesome": "^4.6.3",
|
||||
"ionicons": "^2.0.1",
|
||||
"jquery": "^2.2.0",
|
||||
@@ -21,10 +22,14 @@
|
||||
"knockout": "^3.5.1",
|
||||
"less": "^4.2.0",
|
||||
"less-loader": "^11.1.3",
|
||||
"moment-timezone": "^0.5.45",
|
||||
"node-sass": "^9.0.0",
|
||||
"popper.js": "^1.16.1",
|
||||
"sass": "^1.67.0",
|
||||
"sass-loader": "^13.3.2",
|
||||
"svgaplayerweb": "^2.3.2",
|
||||
"unplugin-element-plus": "^0.8.0",
|
||||
"vue-clipboard2": "^0.3.3",
|
||||
"vue-router": "^4.0.3",
|
||||
"vuex": "^4.0.0",
|
||||
"xlsx": "^0.18.5"
|
||||
@@ -39,6 +44,7 @@
|
||||
"@vue/cli-service": "~5.0.0",
|
||||
"eslint": "^7.32.0",
|
||||
"eslint-plugin-vue": "^8.0.3",
|
||||
"script-loader": "^0.7.2",
|
||||
"unplugin-auto-import": "^0.16.7",
|
||||
"unplugin-vue-components": "^0.25.2",
|
||||
"vue": "^3.2.13",
|
||||
|
@@ -34,3 +34,11 @@ export default {
|
||||
computed: {},
|
||||
};
|
||||
</script>
|
||||
<style>
|
||||
.modal-open{
|
||||
overflow-y: scroll;
|
||||
}
|
||||
body{
|
||||
padding-right:0 !important;
|
||||
}
|
||||
</style>
|
||||
|
17
src/api/AnalysisOperatingGuild/AnalysisOperatingGuild.js
Normal file
17
src/api/AnalysisOperatingGuild/AnalysisOperatingGuild.js
Normal file
@@ -0,0 +1,17 @@
|
||||
import request from "@/utils/request";
|
||||
// 列表
|
||||
export const getGuildPartitionPageWeekStat = query => {
|
||||
return request({
|
||||
url: '/admin/guildPartition/pageWeekStat',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 备注
|
||||
export const guildPartitionMark = query => {
|
||||
return request({
|
||||
url: '/admin/guildPartition/mark',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
75
src/api/BD/IdentitySettings.js
Normal file
75
src/api/BD/IdentitySettings.js
Normal file
@@ -0,0 +1,75 @@
|
||||
import request from '@/utils/request';
|
||||
// 列表
|
||||
export const getBdList = query => {
|
||||
return request({
|
||||
url: '/admin/bd/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 添加
|
||||
|
||||
export const addBdInfo = query => {
|
||||
return request({
|
||||
url: '/admin/bd/add',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 移除
|
||||
export const removeBdInfo = query => {
|
||||
return request({
|
||||
url: '/admin/bd/remove',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 获取用户信息
|
||||
export const getByErbanNo = query => {
|
||||
return request({
|
||||
url: '/admin/user/getByErbanNo',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 获取分区下的国家
|
||||
export const getlistByPartitionId = query => {
|
||||
return request({
|
||||
url: '/admin/regionInfo/listByPartitionId',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 公会详情
|
||||
export const getGuildsDetail = query => {
|
||||
return request({
|
||||
url: '/admin/bd/guilds',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 解绑公会
|
||||
export const operatorGuildUnBound = query => {
|
||||
return request({
|
||||
url: '/admin/bd/guildUnBound',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
|
||||
// 管理列表
|
||||
export const getBdDataList = query => {
|
||||
return request({
|
||||
url: '/admin/bdData/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 管理列表-详情
|
||||
export const getBdDetailGuildsList = query => {
|
||||
return request({
|
||||
url: '/admin/bdData/guilds',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
@@ -0,0 +1,27 @@
|
||||
|
||||
import request from "@/utils/request";
|
||||
// 日任务奖励领取详情
|
||||
export const getDailyTaskCoinRecvNums = query => {
|
||||
return request({
|
||||
url: '/admin/dailyTask/coinRecvNums',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 日任务奖励领取详情-明细
|
||||
export const getDailyTaskcoinRecvDetail = query => {
|
||||
return request({
|
||||
url: '/admin/dailyTask/coinRecvDetail',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 日任务奖励领取详情-明细-导出
|
||||
export const exportMiniGameDetail = query => {
|
||||
return request({
|
||||
url: `/admin/dailyTask/coinRecvDetailExport`,
|
||||
method: 'get',
|
||||
params: query,
|
||||
responseType: 'blob'
|
||||
});
|
||||
}
|
58
src/api/EmojiManagement/EmojiManagement.js
Normal file
58
src/api/EmojiManagement/EmojiManagement.js
Normal file
@@ -0,0 +1,58 @@
|
||||
import request from '@/utils/request';
|
||||
// 表情包Tab列表
|
||||
export const getFaceTabNewList = query => {
|
||||
return request({
|
||||
url: '/faceTabNew/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// Tab保存编辑
|
||||
export const saveOrUpdateFaceTabNew = query => {
|
||||
return request({
|
||||
url: '/faceTabNew/saveOrUpdate',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// Tab删除
|
||||
export const deleteFaceTabNew = query => {
|
||||
return request({
|
||||
url: '/faceTabNew/delete',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
|
||||
// 表情包列表
|
||||
export const getFaceNewList = query => {
|
||||
return request({
|
||||
url: '/faceNew/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 保存编辑
|
||||
export const saveOrUpdateFaceNew = query => {
|
||||
return request({
|
||||
url: '/faceNew/saveOrUpdate',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 表情包tab列表
|
||||
export const getFaceNewTabList = query => {
|
||||
return request({
|
||||
url: '/faceNew/tab/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 删除表情包
|
||||
export const deleteFaceNew = query => {
|
||||
return request({
|
||||
url: '/faceNew/delete',
|
||||
method: 'DELETE',
|
||||
params: query
|
||||
});
|
||||
};
|
19
src/api/GiftPanelManagement/GiftPanelManagement.js
Normal file
19
src/api/GiftPanelManagement/GiftPanelManagement.js
Normal file
@@ -0,0 +1,19 @@
|
||||
import request from '@/utils/request';
|
||||
import { genQueryParam } from '@/utils/maintainer';
|
||||
|
||||
// 列表
|
||||
export const list = query => {
|
||||
return request({
|
||||
url: '/giftPanelTab/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 保存
|
||||
export const update = query => {
|
||||
return request({
|
||||
url: '/giftPanelTab/update',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
25
src/api/OperationLuckyDataQuery/OperationLuckyDataQuery.js
Normal file
25
src/api/OperationLuckyDataQuery/OperationLuckyDataQuery.js
Normal file
@@ -0,0 +1,25 @@
|
||||
import request from "@/utils/request";
|
||||
// 运营幸运数据查询-列表
|
||||
export const getOperatorPersonalList = query => {
|
||||
return request({
|
||||
url: '/admin/lucky24/record/operatorPersonal',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 运营游戏数据查询-列表
|
||||
export const getGameDataUserTotalALL = query => {
|
||||
return request({
|
||||
url: '/admin/gamedata/userTotalALL',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 游戏列表
|
||||
export const getGameAllList = query => {
|
||||
return request({
|
||||
url: '/admin/game/allList',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
@@ -0,0 +1,17 @@
|
||||
import request from "@/utils/request";
|
||||
// 列表
|
||||
export const getRechargeAgentStatList = query => {
|
||||
return request({
|
||||
url: '/admin/rechargeAgentStat/page',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 导出
|
||||
export const exportRechargeAgentStat = query => {
|
||||
return request({
|
||||
url: '/admin/rechargeAgentStat/export',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
@@ -0,0 +1,83 @@
|
||||
import request from "@/utils/request";
|
||||
// 负责人列表
|
||||
export const getGuildOperatorList = query => {
|
||||
return request({
|
||||
url: '/admin/guildOperator/page',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 获取分区下的国家
|
||||
export const getlistByPartitionId = query => {
|
||||
return request({
|
||||
url: '/admin/regionInfo/listByPartitionId',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 获取全量后台用户列表
|
||||
export const getUserListAll = query => {
|
||||
return request({
|
||||
url: '/admin/user/listAll',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 保存
|
||||
export const saveGuildOperator = query => {
|
||||
return request({
|
||||
headers: { "Content-Type": 'application/json;charset=UTF-8' },
|
||||
url: '/admin/guildOperator/save',
|
||||
method: 'post',
|
||||
data: query
|
||||
});
|
||||
};
|
||||
// 获取 周期列表
|
||||
export const familyMemberWeekLevelRewardListCycleDate = query => {
|
||||
return request({
|
||||
url: '/admin/familyMemberWeekLevelReward/listCycleDate',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 获取 负责人全部列表
|
||||
export const getGuildOperatorListAll = query => {
|
||||
return request({
|
||||
url: '/admin/guildOperator/listAll',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
|
||||
// 获取 运营流水分析列表
|
||||
export const getGuildOperatorPageWeekStatList = query => {
|
||||
return request({
|
||||
url: '/admin/guildOperator/pageWeekStat',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 获取 公会运营负责人变更记录
|
||||
export const getGuildOperatorHistoryList = query => {
|
||||
return request({
|
||||
url: '/admin/guildOperatorHistory/page',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 获取 运营流水分析 - 公会明细
|
||||
export const getPageWeekStatDetail = query => {
|
||||
return request({
|
||||
url: '/admin/guildOperator/pageWeekStatDetail',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 获取 运营流水分析 - 公会明细 - 添加备注
|
||||
export const guildOperatorMarkDetail = query => {
|
||||
return request({
|
||||
url: '/admin/guildOperator/markDetail',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
69
src/api/SalaryDetails/SalaryDetails.js
Normal file
69
src/api/SalaryDetails/SalaryDetails.js
Normal file
@@ -0,0 +1,69 @@
|
||||
import request from '@/utils/request';
|
||||
|
||||
// 查询公会成员薪资明细
|
||||
export const getGuildPolicyQueryMemberPage = query => {
|
||||
return request({
|
||||
url: '/admin/guildPolicy2/queryMemberPage',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 查询公会成员薪资明细导出
|
||||
export const exportQueryMember = query => {
|
||||
return request({
|
||||
url: `/admin/guildPolicy2/queryMemberExport`,
|
||||
method: 'get',
|
||||
params: query,
|
||||
responseType: 'blob'
|
||||
});
|
||||
}
|
||||
// 周期下拉
|
||||
export const getGuildPolicyCycleDates = query => {
|
||||
return request({
|
||||
url: '/admin/guildPolicy2/cycleDates',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 有效天数明细
|
||||
export const getGuildPolicyMicDayDetail = query => {
|
||||
return request({
|
||||
url: '/admin/guildPolicy2/micDayDetail',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 钻石清空记录列表
|
||||
export const getGuildPolicyClearDiamond = query => {
|
||||
return request({
|
||||
url: '/admin/guildPolicy2ClearDiamond',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 查询公会成员薪资明细导出
|
||||
export const exportClearDiamond = query => {
|
||||
return request({
|
||||
url: `/admin/guildPolicy2ClearDiamond/export`,
|
||||
method: 'get',
|
||||
params: query,
|
||||
responseType: 'blob'
|
||||
});
|
||||
}
|
||||
// 紫水晶清空记录列表
|
||||
export const getGuildAmethystClearRecordList = query => {
|
||||
return request({
|
||||
url: '/admin/guild/guildCrystal/page',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 紫水晶清空记录列表 - 导出
|
||||
export const exportClearAmethyst = query => {
|
||||
return request({
|
||||
url: '/admin/guild/guildCrystal/export',
|
||||
method: 'get',
|
||||
params: query,
|
||||
responseType: 'blob'
|
||||
});
|
||||
};
|
25
src/api/SsGuild/LuckyNumber.js
Normal file
25
src/api/SsGuild/LuckyNumber.js
Normal file
@@ -0,0 +1,25 @@
|
||||
import request from '@/utils/request';
|
||||
// 配置获取
|
||||
export const getConfig = query => {
|
||||
return request({
|
||||
url: '/admin/luckyNumber/getConfig',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 修改配置
|
||||
export const updateConfig = query => {
|
||||
return request({
|
||||
url: '/admin/luckyNumber/update',
|
||||
method: 'post',
|
||||
data: query
|
||||
});
|
||||
};
|
||||
// 提交记录
|
||||
export const getluckyNumberList = query => {
|
||||
return request({
|
||||
url: '/admin/luckyNumber/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
42
src/api/SsGuild/SsGuild.js
Normal file
42
src/api/SsGuild/SsGuild.js
Normal file
@@ -0,0 +1,42 @@
|
||||
import request from '@/utils/request';
|
||||
import { genQueryParam } from '@/utils/maintainer';
|
||||
import qs from 'qs';
|
||||
|
||||
// 周期选项下拉框
|
||||
export const cycleDateList = query => {
|
||||
return request({
|
||||
url: '/admin/ssGuild/cycleDateList',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// SS公会列表
|
||||
export const list = query => {
|
||||
return request({
|
||||
url: '/admin/ssGuild/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 发送金币&批量发送
|
||||
export const sendGold = query => {
|
||||
return request({
|
||||
url: '/admin/ssGuild/sendGold',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 导出
|
||||
// export const ssGuildExport = query => {
|
||||
// return request({
|
||||
// url: `/admin/ssGuild/export`,
|
||||
// method: 'post',
|
||||
// params: query,
|
||||
// responseType: 'blob'
|
||||
// });
|
||||
// };
|
||||
// 导出-公会信息
|
||||
export const ssGuildExport = query => {
|
||||
window.location.href = `/admin/ssGuild/export?${genQueryParam(query)}`;
|
||||
return;
|
||||
};
|
75
src/api/SsGuild/rewardConfiguration.js
Normal file
75
src/api/SsGuild/rewardConfiguration.js
Normal file
@@ -0,0 +1,75 @@
|
||||
import request from '@/utils/request';
|
||||
// 奖励配置
|
||||
// 活动列表
|
||||
export const getActivitylList = query => {
|
||||
return request({
|
||||
url: '/activityH5LevelExp/activityType',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 等级列表
|
||||
export const getLevelList = query => {
|
||||
return request({
|
||||
url: '/activityH5LevelExp/select/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 奖励查询列表
|
||||
export const getAwardList = query => {
|
||||
return request({
|
||||
url: '/activityH5LevelAward/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 奖励类型
|
||||
export const getAwardTypeList = query => {
|
||||
return request({
|
||||
url: '/activityH5LevelExp/awardType',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 新增
|
||||
export const saveAwardList = query => {
|
||||
return request({
|
||||
url: '/activityH5LevelAward/save',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 删除
|
||||
export const delAwardList = query => {
|
||||
return request({
|
||||
url: '/activityH5LevelAward/del',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 更新
|
||||
export const updateAwardList = query => {
|
||||
return request({
|
||||
url: '/activityH5LevelAward/update',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
}
|
||||
// 奖励发放记录-列表
|
||||
export const getAwardRecordList = query => {
|
||||
return request({
|
||||
url: '/activityH5AwardRecord/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 导出
|
||||
export const exportActivityAwardRecord = query => {
|
||||
return request({
|
||||
url: `/activityH5AwardRecord/export`,
|
||||
method: 'post',
|
||||
params: query,
|
||||
responseType: 'blob'
|
||||
});
|
||||
};
|
42
src/api/VipGive/VipGive.js
Normal file
42
src/api/VipGive/VipGive.js
Normal file
@@ -0,0 +1,42 @@
|
||||
import request from '@/utils/request';
|
||||
import { genQueryParam } from '@/utils/maintainer';
|
||||
// 查询用户接口
|
||||
export const getByErbanNo = query => {
|
||||
return request({
|
||||
url: '/admin/user/getByErbanNo',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 获取VIP列表接口
|
||||
export const listAll = query => {
|
||||
return request({
|
||||
url: '/admin/vip/listAll',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 获取列表接口
|
||||
export const pageRecord = query => {
|
||||
return request({
|
||||
url: '/vipSend/pageRecord',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 赠送VIP接口
|
||||
export const vipSendSend = query => {
|
||||
return request({
|
||||
url: '/vipSend/send',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 赠送VIP接口 - 客服
|
||||
export const vipSendSendCustomerSend = query => {
|
||||
return request({
|
||||
url: '/vipSend/customerSend',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
42
src/api/basicActivityData/basicActivityData.js
Normal file
42
src/api/basicActivityData/basicActivityData.js
Normal file
@@ -0,0 +1,42 @@
|
||||
import request from '@/utils/request';
|
||||
// 活动列表
|
||||
export const getActKeysList = query => {
|
||||
return request({
|
||||
url: '/admin/activityDayTotal/actKeys',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 列表
|
||||
export const getDataList = query => {
|
||||
return request({
|
||||
url: '/admin/activityDayTotal/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 新用户列表
|
||||
export const getNewUsersList = query => {
|
||||
return request({
|
||||
url: '/admin/activityDayTotal/newUsers',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 榜单列表
|
||||
export const getRankList = query => {
|
||||
return request({
|
||||
url: '/admin/activityDayTotal/rankList',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 导出
|
||||
export const exportActivityDayTotal = query => {
|
||||
return request({
|
||||
url: `/admin/activityDayTotal/export`,
|
||||
method: 'post',
|
||||
params: query,
|
||||
responseType: 'blob'
|
||||
});
|
||||
}
|
41
src/api/block/block.js
Normal file
41
src/api/block/block.js
Normal file
@@ -0,0 +1,41 @@
|
||||
import request from '@/utils/request';
|
||||
|
||||
export const page = query => {
|
||||
return request({
|
||||
url: '/admin/block/page',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
|
||||
export const get = query => {
|
||||
return request({
|
||||
url: '/admin/block/get',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
|
||||
export const save = query => {
|
||||
return request({
|
||||
url: '/admin/block/save',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
|
||||
export const update = query => {
|
||||
return request({
|
||||
url: '/admin/block/update',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
|
||||
export const del = query => {
|
||||
return request({
|
||||
url: '/admin/block/delete',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
157
src/api/boom/boom.js
Normal file
157
src/api/boom/boom.js
Normal file
@@ -0,0 +1,157 @@
|
||||
import request from '@/utils/request';
|
||||
import { genQueryParam } from '@/utils/maintainer';
|
||||
|
||||
// 邀请移除记录
|
||||
export const pageOperateRecord = query => {
|
||||
return request({
|
||||
url: '/admin/guild/manage/pageOperateRecord',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 查询公会信息
|
||||
export const pageFamily = query => {
|
||||
return request({
|
||||
url: '/admin/guild/manage/pageGuild',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 公会成员信息
|
||||
export const pageFamilyMember = query => {
|
||||
return request({
|
||||
url: '/admin/family/manage/pageFamilyMember',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 创建公会信息
|
||||
export const create = query => {
|
||||
return request({
|
||||
url: '/admin/guild/manage/create',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 删除公会信息
|
||||
export const dismiss = query => {
|
||||
return request({
|
||||
url: '/admin/guild/manage/dismiss',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 幸运礼物详情导出
|
||||
export const luckyGiftRewardRecordExport = query => {
|
||||
window.location.href = `/admin/luckyGiftRewardRecord/export?${genQueryParam(query)}`;
|
||||
return;
|
||||
};
|
||||
// 公会信息编辑接口
|
||||
export const update = query => {
|
||||
return request({
|
||||
url: '/admin/guild/manage/update',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 导出-公会信息
|
||||
export const exportInfo = query => {
|
||||
window.location.href = `/admin/guild/manage/exportGuild?${genQueryParam(query)}`;
|
||||
return;
|
||||
};
|
||||
// 成员信息-弹窗详情
|
||||
export const manageListFamilyMember = query => {
|
||||
return request({
|
||||
url: '/admin/guild/manage/listGuildMember',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
|
||||
// 成员信息-新增成员
|
||||
export const addMember = query => {
|
||||
return request({
|
||||
url: '/admin/guild/manage/addMember',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 成员信息-设置管理员
|
||||
export const setManager = query => {
|
||||
return request({
|
||||
url: '/admin/guild/manage/setManager',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 成员信息-删除管理员
|
||||
export const removeMember = query => {
|
||||
return request({
|
||||
url: '/admin/guild/manage/removeMember',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// ========================================================Boom活动等级配置================================================
|
||||
// Boom活动等级配置-列表
|
||||
export const levelList = query => {
|
||||
return request({
|
||||
url: '/room/boom/level/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// Boom活动等级配置-弹窗列表详情
|
||||
export const awardList = query => {
|
||||
return request({
|
||||
url: '/room/boom/level/award/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// Boom活动等级配置-弹窗列表删除详情
|
||||
export const awardDel = query => {
|
||||
return request({
|
||||
url: '/room/boom/level/award/del',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// Boom活动等级配置-编辑
|
||||
export const levelUpdate = query => {
|
||||
return request({
|
||||
url: '/room/boom/level/update',
|
||||
method: 'put',
|
||||
data: query
|
||||
});
|
||||
};
|
||||
// Boom活动等级配置-弹窗编辑
|
||||
export const awardUpdate = query => {
|
||||
return request({
|
||||
url: '/room/boom/level/award/update',
|
||||
method: 'put',
|
||||
data: query
|
||||
});
|
||||
};
|
||||
// ========================================================Boom数据后台================================================
|
||||
// Boom活动等级配置-数据后台列表
|
||||
export const recordList = query => {
|
||||
return request({
|
||||
url: '/room/boom/award/record/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// Boom活动等级配置-数据后台明细列表
|
||||
export const detailList = query => {
|
||||
return request({
|
||||
url: '/room/boom/award/record/detail/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 导出-Boom活动等级配置
|
||||
export const recordExport = query => {
|
||||
window.location.href = `/room/boom/award/record/export?${genQueryParam(query)}`;
|
||||
return;
|
||||
};
|
26
src/api/boom/roomActivityApplication.js
Normal file
26
src/api/boom/roomActivityApplication.js
Normal file
@@ -0,0 +1,26 @@
|
||||
import request from '@/utils/request';
|
||||
import { genQueryParam } from '@/utils/maintainer';
|
||||
// 房间活动申请列表
|
||||
export const getListEvent = query => {
|
||||
return request({
|
||||
url: '/userevent/listEvent',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 房间活动申请列表-审核
|
||||
export const operatorListEvent = query => {
|
||||
return request({
|
||||
url: '/userevent/operator',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 房间活动数据统计 -列表
|
||||
export const getUserEventDataList = query => {
|
||||
return request({
|
||||
url: '/userEventData/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
68
src/api/bravoGift/bravoGift.js
Normal file
68
src/api/bravoGift/bravoGift.js
Normal file
@@ -0,0 +1,68 @@
|
||||
import request from '@/utils/request';
|
||||
|
||||
// 奖池拉框
|
||||
export const listType = query => {
|
||||
return request({
|
||||
url: '/admin/bravo/pool/listType',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 池子列表
|
||||
export const list = query => {
|
||||
return request({
|
||||
url: '/admin/bravo/pool/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 保存池子
|
||||
export const save = query => {
|
||||
return request({
|
||||
headers: { "Content-Type": 'application/json;charset=UTF-8' },
|
||||
url: '/admin/bravo/pool/save',
|
||||
method: 'post',
|
||||
data: query
|
||||
});
|
||||
};
|
||||
// 基础配置
|
||||
export const getConfig = query => {
|
||||
return request({
|
||||
url: '/admin/bravo/config/getConfig',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 基础配置-修改
|
||||
export const updateSet = query => {
|
||||
return request({
|
||||
headers: { "Content-Type": 'application/json;charset=UTF-8' },
|
||||
url: '/admin/bravo/config/update',
|
||||
method: 'post',
|
||||
data: query
|
||||
});
|
||||
};
|
||||
// 赠送用户
|
||||
export const updateUserMulti = query => {
|
||||
return request({
|
||||
url: '/admin/bravo/config/updateUserMulti',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 个人数据
|
||||
export const personal = query => {
|
||||
return request({
|
||||
url: '/admin/bravo/record/personal',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 汇总
|
||||
export const platform = query => {
|
||||
return request({
|
||||
url: '/admin/bravo/record/platform',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
9
src/api/chat/publicChatTopRecord.js
Normal file
9
src/api/chat/publicChatTopRecord.js
Normal file
@@ -0,0 +1,9 @@
|
||||
import request from '@/utils/request';
|
||||
|
||||
export const getPublicChatTopRecordPage = query => {
|
||||
return request({
|
||||
url: '/admin/publicChatTopRecord/page',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
9
src/api/common/gift.js
Normal file
9
src/api/common/gift.js
Normal file
@@ -0,0 +1,9 @@
|
||||
import request from '@/utils/request';
|
||||
|
||||
export const getGiftList = query => {
|
||||
return request({
|
||||
url: '/admin/gift/getAll',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
13
src/api/dailyCoinStatistics/dailyCoinStatistics.js
Normal file
13
src/api/dailyCoinStatistics/dailyCoinStatistics.js
Normal file
@@ -0,0 +1,13 @@
|
||||
import request from '@/utils/request';
|
||||
import qs from 'qs';
|
||||
import { genQueryParam } from '@/utils/maintainer';
|
||||
|
||||
// ==================================每日数据====================================
|
||||
// 列表
|
||||
export const diamondStatList = query => {
|
||||
return request({
|
||||
url: '/admin/diamondStat/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
10
src/api/email/emailRecord.js
Normal file
10
src/api/email/emailRecord.js
Normal file
@@ -0,0 +1,10 @@
|
||||
import request from '@/utils/request';
|
||||
import {genQueryParam} from "@/utils/maintainer";
|
||||
|
||||
export const pageRecord = query => {
|
||||
return request({
|
||||
url: '/admin/emailRecord/page',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
21
src/api/feedBack/feedBack.js
Normal file
21
src/api/feedBack/feedBack.js
Normal file
@@ -0,0 +1,21 @@
|
||||
import request from '@/utils/request';
|
||||
import qs from 'qs';
|
||||
import { genQueryParam } from '@/utils/maintainer';
|
||||
|
||||
// ==================================每日数据====================================
|
||||
// 反馈类型
|
||||
export const listType = query => {
|
||||
return request({
|
||||
url: '/admin/feedback/listType',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 反馈列表
|
||||
export const pageRecord = query => {
|
||||
return request({
|
||||
url: '/admin/feedback/pageRecord',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
20
src/api/gameAdmin/gameAdmin.js
Normal file
20
src/api/gameAdmin/gameAdmin.js
Normal file
@@ -0,0 +1,20 @@
|
||||
import request from '@/utils/request';
|
||||
import { genQueryParam } from '@/utils/maintainer';
|
||||
|
||||
// 获取游戏列表
|
||||
export const mgList = query => {
|
||||
return request({
|
||||
url: '/admin/miniGame/statis/mgList',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 游戏编辑
|
||||
export const save = query => {
|
||||
return request({
|
||||
url: '/admin/miniGame/save',
|
||||
headers:{"Content-Type": 'application/x-www-form-urlencoded'},
|
||||
method: 'post',
|
||||
data: query
|
||||
});
|
||||
};
|
29
src/api/gameInfo/gameInfo.js
Normal file
29
src/api/gameInfo/gameInfo.js
Normal file
@@ -0,0 +1,29 @@
|
||||
import request from '@/utils/request';
|
||||
import qs from 'qs';
|
||||
import { genQueryParam } from '@/utils/maintainer';
|
||||
|
||||
// ==================================每日数据====================================
|
||||
// 列表
|
||||
export const page = query => {
|
||||
return request({
|
||||
url: '/admin/gamePartner/info/page',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 编辑修改
|
||||
export const save = query => {
|
||||
return request({
|
||||
url: '/admin/gamePartner/info/save',
|
||||
method: 'post',
|
||||
data: query
|
||||
});
|
||||
};
|
||||
// 删除
|
||||
export const delGame = query => {
|
||||
return request({
|
||||
url: '/admin/gamePartner/info/delGame',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
69
src/api/gameSummary/gameSummary.js
Normal file
69
src/api/gameSummary/gameSummary.js
Normal file
@@ -0,0 +1,69 @@
|
||||
import request from '@/utils/request';
|
||||
import {genQueryParam} from "@/utils/maintainer";
|
||||
|
||||
export const gameList = query => {
|
||||
return request({
|
||||
url: '/admin/game/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
export const getGamedata = query => {
|
||||
return request({
|
||||
url: '/admin/gamedata/total',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 导出
|
||||
export const exportForMiniGame = query => {
|
||||
return request({
|
||||
url: `/admin/gamedata/total/export`,
|
||||
method: 'post',
|
||||
params: query,
|
||||
responseType: 'blob'
|
||||
});
|
||||
};
|
||||
|
||||
// 明细
|
||||
export const getUserGamedata = query => {
|
||||
return request({
|
||||
url: '/admin/gamedata/v2/user/total',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 导出
|
||||
export const exportUserForMiniGame = query => {
|
||||
return request({
|
||||
url: `/admin/gamedata/v2/user/export`,
|
||||
method: 'post',
|
||||
params: query,
|
||||
responseType: 'blob'
|
||||
});
|
||||
};
|
||||
// 游戏明细
|
||||
export const getGameDetailGamedata = query => {
|
||||
return request({
|
||||
url: '/admin/gamedata/gameDetail',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 导出
|
||||
export const exportGameDetailExportForMiniGame = query => {
|
||||
return request({
|
||||
url: `/admin/gamedata/gameDetailExport`,
|
||||
method: 'post',
|
||||
params: query,
|
||||
responseType: 'blob'
|
||||
});
|
||||
};
|
||||
// 汇总
|
||||
export const getTotalDayGamedata = query => {
|
||||
return request({
|
||||
url: '/admin/gamedata/user/totalDay',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
26
src/api/gameWhitelist/gameFeeUserRechargeLevelConfig.js
Normal file
26
src/api/gameWhitelist/gameFeeUserRechargeLevelConfig.js
Normal file
@@ -0,0 +1,26 @@
|
||||
import request from '@/utils/request';
|
||||
|
||||
// 列表
|
||||
export const page = query => {
|
||||
return request({
|
||||
url: '/admin/game/feeRateUserRechargeLevel/page',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 保存
|
||||
export const save = query => {
|
||||
return request({
|
||||
url: '/admin/game/feeRateUserRechargeLevel/save',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 删除
|
||||
export const del = query => {
|
||||
return request({
|
||||
url: '/admin/game/feeRateUserRechargeLevel/delete',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
35
src/api/gameWhitelist/gameWhitelist.js
Normal file
35
src/api/gameWhitelist/gameWhitelist.js
Normal file
@@ -0,0 +1,35 @@
|
||||
import request from '@/utils/request';
|
||||
|
||||
// ==================================灵小游戏====================================
|
||||
// 游戏列表
|
||||
export const gameList = query => {
|
||||
return request({
|
||||
url: '/admin/game/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 列表
|
||||
export const gameFeeRateList = query => {
|
||||
return request({
|
||||
url: '/admin/game/feeRate/list',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 保存
|
||||
export const gameFeeRate = query => {
|
||||
return request({
|
||||
url: '/admin/game/feeRate/save',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 设置失效
|
||||
export const feeRateInvalid = query => {
|
||||
return request({
|
||||
url: '/admin/game/feeRate/invalid',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
82
src/api/giftPackCenter/giftPackCenter.js
Normal file
82
src/api/giftPackCenter/giftPackCenter.js
Normal file
@@ -0,0 +1,82 @@
|
||||
import request from '@/utils/request';
|
||||
// 礼包配置中心
|
||||
// 礼包配置列表
|
||||
export const getConfigList = query => {
|
||||
return request({
|
||||
url: '/admin/packCenter/configList',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 礼包配置保存更新
|
||||
export const configSave = query => {
|
||||
return request({
|
||||
url: '/admin/packCenter/configSave',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 奖品列表
|
||||
export const getItemList = query => {
|
||||
return request({
|
||||
url: '/admin/packCenter/itemList',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 奖品列表 - 删除奖品
|
||||
export const deleteReward = query => {
|
||||
return request({
|
||||
url: '/admin/packCenter/itemDel',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 添加奖品
|
||||
export const addReward = query => {
|
||||
return request({
|
||||
url: '/admin/packCenter/itemAdd',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 奖励列表
|
||||
export const getAwardsList = query => {
|
||||
return request({
|
||||
url: '/admin/packCenter/awards',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 赠送礼包
|
||||
export const sendPackCenter = query => {
|
||||
return request({
|
||||
url: '/admin/userPack/send',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 奖励列表
|
||||
export const getRecordList = query => {
|
||||
return request({
|
||||
url: '/admin/userPack/recordList',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 撤回礼包
|
||||
export const optionPackRecall = query => {
|
||||
return request({
|
||||
url: '/admin/userPack/packRecall',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
//礼包使用记录
|
||||
export const getUseRecordList = query => {
|
||||
return request({
|
||||
url: '/admin/userUsePack/recordList',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
44
src/api/invitationFission/invitationFission.js
Normal file
44
src/api/invitationFission/invitationFission.js
Normal file
@@ -0,0 +1,44 @@
|
||||
import request from '@/utils/request';
|
||||
import qs from 'qs';
|
||||
import { genQueryParam } from '@/utils/maintainer';
|
||||
|
||||
// ==================================每日数据====================================
|
||||
// 表单
|
||||
export const userInviteFissionRecordGetDailyPage = query => {
|
||||
return request({
|
||||
url: '/admin/userInviteFissionRecord/getDailyPage',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 详情表单
|
||||
export const userInviteFissionRecordGetDailyDetailList = query => {
|
||||
return request({
|
||||
url: '/admin/userInviteFissionRecord/getDailyDetailList',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 导出
|
||||
export const userInviteFissionRecordExport = query => {
|
||||
window.location.href = `/admin/userInviteFissionRecord/export?${genQueryParam(query)}`;
|
||||
return;
|
||||
};
|
||||
// ==================================邀请排名====================================
|
||||
// 设置白名单
|
||||
export const userInviteFissionRecordSetBlack = query => {
|
||||
return request({
|
||||
url: '/admin/userInviteFissionRecord/setBlack',
|
||||
headers: { "Content-Type": 'application/x-www-form-urlencoded' },
|
||||
method: 'post',
|
||||
data: query
|
||||
});
|
||||
};
|
||||
// 邀请排名列表
|
||||
export const userInviteFissionRecordGetInviteRank = query => {
|
||||
return request({
|
||||
url: '/admin/userInviteFissionRecord/getInviteRank',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
38
src/api/lingSmallGames/lingSmallGames.js
Normal file
38
src/api/lingSmallGames/lingSmallGames.js
Normal file
@@ -0,0 +1,38 @@
|
||||
import request from '@/utils/request';
|
||||
import { genQueryParam } from '@/utils/maintainer';
|
||||
import qs from 'qs';
|
||||
|
||||
// 获取游戏列表
|
||||
export const sysConfKey = query => {
|
||||
return request({
|
||||
url: '/admin/sysConf/key',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 获取列表
|
||||
export const statisPage = query => {
|
||||
return request({
|
||||
url: '/admin/miniGame/leadercc/statis/page',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 获取详情列表
|
||||
export const detailPage = query => {
|
||||
return request({
|
||||
url: '/admin/miniGame/leadercc/statis/detailPage',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 导出
|
||||
export const exportForMiniGame = query => {
|
||||
window.location.href = `/admin/miniGame/leadercc/statis/exportForMiniGame?${genQueryParam(query)}`;
|
||||
return;
|
||||
};
|
||||
// 导出弹窗
|
||||
export const statisExport = query => {
|
||||
window.location.href = `/admin/miniGame/leadercc/statis/export?${genQueryParam(query)}`;
|
||||
return;
|
||||
};
|
25
src/api/listLargeRUsers/listLargeRUsers.js
Normal file
25
src/api/listLargeRUsers/listLargeRUsers.js
Normal file
@@ -0,0 +1,25 @@
|
||||
import request from '@/utils/request';
|
||||
// 获取大R列表
|
||||
export const getHighRechargeUserList = query => {
|
||||
return request({
|
||||
url: '/admin/recharge/highRechargeUser/page',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 移除大R
|
||||
export const delHighRechargeUser = query => {
|
||||
return request({
|
||||
url: '/admin/recharge/highRechargeUser/del',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 添加大R
|
||||
export const addHighRechargeUser = query => {
|
||||
return request({
|
||||
url: '/admin/recharge/highRechargeUser/add',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
83
src/api/luckGift/luck25.js
Normal file
83
src/api/luckGift/luck25.js
Normal file
@@ -0,0 +1,83 @@
|
||||
import request from '@/utils/request';
|
||||
import { genQueryParam } from '@/utils/maintainer';
|
||||
|
||||
// 奖池拉框
|
||||
export const listType = query => {
|
||||
return request({
|
||||
url: '/admin/lucky25/pool/listType',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 池子列表
|
||||
export const list = query => {
|
||||
return request({
|
||||
url: '/admin/lucky25/pool/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 基础配置
|
||||
export const getConfig = query => {
|
||||
return request({
|
||||
url: '/admin/lucky25/config/getConfig',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 基础配置-修改
|
||||
export const updateSet = query => {
|
||||
return request({
|
||||
headers: { "Content-Type": 'application/json;charset=UTF-8' },
|
||||
url: '/admin/lucky25/config/update',
|
||||
method: 'post',
|
||||
data: query
|
||||
});
|
||||
};
|
||||
// 个人数据
|
||||
export const personal = query => {
|
||||
return request({
|
||||
url: '/admin/lucky25/record/personal',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 汇总
|
||||
export const platform = query => {
|
||||
return request({
|
||||
url: '/admin/lucky25/record/platform',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 保存池子
|
||||
export const save = query => {
|
||||
return request({
|
||||
headers: { "Content-Type": 'application/json;charset=UTF-8' },
|
||||
url: '/admin/lucky25/pool/save',
|
||||
method: 'post',
|
||||
data: query
|
||||
});
|
||||
};
|
||||
// 赠送用户
|
||||
export const updateUserMulti = query => {
|
||||
return request({
|
||||
url: '/admin/lucky25/config/updateUserMulti',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 获取明细
|
||||
export const pageRecord = query => {
|
||||
return request({
|
||||
url: '/admin/lucky25/record/page',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
|
||||
// 导出明细
|
||||
export const exportRecord = query => {
|
||||
window.location.href = `/admin/lucky25/record/export?${genQueryParam(query)}`;
|
||||
return;
|
||||
};
|
103
src/api/luckGift/luckGift.js
Normal file
103
src/api/luckGift/luckGift.js
Normal file
@@ -0,0 +1,103 @@
|
||||
import request from '@/utils/request';
|
||||
import { genQueryParam } from '@/utils/maintainer';
|
||||
import qs from 'qs';
|
||||
|
||||
// 奖池拉框
|
||||
export const listType = query => {
|
||||
return request({
|
||||
url: '/admin/lucky24/pool/listType',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 池子列表
|
||||
export const list = query => {
|
||||
return request({
|
||||
url: '/admin/lucky24/pool/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 基础配置
|
||||
export const getConfig = query => {
|
||||
return request({
|
||||
url: '/admin/lucky24/config/getConfig',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 基础配置-修改
|
||||
export const updateSet = query => {
|
||||
return request({
|
||||
headers: { "Content-Type": 'application/json;charset=UTF-8' },
|
||||
url: '/admin/lucky24/config/update',
|
||||
method: 'post',
|
||||
data: query
|
||||
});
|
||||
};
|
||||
// 个人数据
|
||||
export const personal = query => {
|
||||
return request({
|
||||
url: '/admin/lucky24/record/personal',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 个人数据
|
||||
export const exportPersonal = query => {
|
||||
window.location.href = `/admin/lucky24/record/personal/export?${genQueryParam(query)}`;
|
||||
return;
|
||||
};
|
||||
// 汇总
|
||||
export const platform = query => {
|
||||
return request({
|
||||
url: '/admin/lucky24/record/platform',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 保存池子
|
||||
export const save = query => {
|
||||
return request({
|
||||
headers: { "Content-Type": 'application/json;charset=UTF-8' },
|
||||
url: '/admin/lucky24/pool/save',
|
||||
method: 'post',
|
||||
data: query
|
||||
});
|
||||
};
|
||||
// 赠送用户
|
||||
export const updateUserMulti = query => {
|
||||
return request({
|
||||
url: '/admin/lucky24/config/updateUserMulti',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 获取明细
|
||||
export const pageRecord = query => {
|
||||
return request({
|
||||
url: '/admin/lucky24/record/page',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
|
||||
// 导出明细
|
||||
export const exportRecord = query => {
|
||||
window.location.href = `/admin/lucky24/record/export?${genQueryParam(query)}`;
|
||||
return;
|
||||
};
|
||||
|
||||
// 个人数据
|
||||
export const followUserPersonal = query => {
|
||||
return request({
|
||||
url: '/admin/lucky24/followUserRecord/personal',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 个人数据
|
||||
export const exportFollowUserPersonal = query => {
|
||||
window.location.href = `/admin/lucky24/followUserRecord/personal/export?${genQueryParam(query)}`;
|
||||
return;
|
||||
};
|
80
src/api/lucky/luckyGiftRangeConfig.js
Normal file
80
src/api/lucky/luckyGiftRangeConfig.js
Normal file
@@ -0,0 +1,80 @@
|
||||
import request from '@/utils/request';
|
||||
import { genQueryParam } from '@/utils/maintainer';
|
||||
|
||||
export const getLuckyGiftRangeConfigList = query => {
|
||||
return request({
|
||||
url: '/admin/luckyGiftRangeConfig/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
|
||||
export const saveLuckyGiftRangeConfig = data => {
|
||||
return request({
|
||||
url: '/admin/luckyGiftRangeConfig/save',
|
||||
method: 'post',
|
||||
data: data
|
||||
});
|
||||
};
|
||||
|
||||
// 获取礼物
|
||||
export const getAll = query => {
|
||||
return request({
|
||||
url: '/admin/gift/getAll',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 获取礼物区间
|
||||
export const luckyGiftRangeConfigList = query => {
|
||||
return request({
|
||||
url: '/admin/luckyGiftRangeConfig/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 幸运礼物配置列表
|
||||
export const luckyGiftRewardList = query => {
|
||||
return request({
|
||||
url: '/admin/luckyGiftReward/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 幸运礼物配置删除
|
||||
export const luckyGiftRewardDelete = query => {
|
||||
return request({
|
||||
url: '/admin/luckyGiftReward/delete',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 幸运礼保存列表
|
||||
export const luckyGiftRewardSave = query => {
|
||||
return request({
|
||||
url: '/admin/luckyGiftReward/save',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 幸运礼物明细
|
||||
export const getGiftSendPage = query => {
|
||||
return request({
|
||||
url: '/admin/luckyGiftRewardRecord/getGiftSendPage',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 幸运礼物详情
|
||||
export const getRewardList = query => {
|
||||
return request({
|
||||
url: '/admin/luckyGiftRewardRecord/getRewardList',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 幸运礼物详情导出
|
||||
export const luckyGiftRewardRecordExport = query => {
|
||||
window.location.href = `/admin/luckyGiftRewardRecord/export?${genQueryParam(query)}`;
|
||||
return;
|
||||
};
|
165
src/api/luckyTycoon/luckyTycoon.js
Normal file
165
src/api/luckyTycoon/luckyTycoon.js
Normal file
@@ -0,0 +1,165 @@
|
||||
import request from '@/utils/request';
|
||||
import { genQueryParam } from '@/utils/maintainer';
|
||||
|
||||
// 福袋列表请求
|
||||
export const listLuckyBagLinearGift = query => {
|
||||
return request({
|
||||
url: '/admin/gift/getGiftByTypes',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 福袋礼物列表请求
|
||||
export const getPrizeGroupsInfo = query => {
|
||||
return request({
|
||||
url: '/admin/luckyBag/getGroupInfo',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 所有礼物列表请求
|
||||
export const getAll = query => {
|
||||
return request({
|
||||
url: '/admin/gift/getAll',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 所有座驾列表请求
|
||||
export const carAll = query => {
|
||||
return request({
|
||||
url: '/admin/car/goods/total/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 所有头饰列表请求
|
||||
export const headwearAll = query => {
|
||||
return request({
|
||||
url: '/admin/headwear/total/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 所有铭牌列表请求
|
||||
export const nameplateAll = query => {
|
||||
return request({
|
||||
url: '/admin/nameplate/total/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 所有气泡列表请求
|
||||
export const chatbubbleAll = query => {
|
||||
return request({
|
||||
url: '/admin/chatbubble/total/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 所有资料卡列表请求
|
||||
export const infocard = query => {
|
||||
return request({
|
||||
url: '/admin/infocard/total/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 榜单统计-列表接口
|
||||
export const luckyBagWeekRankList = query => {
|
||||
return request({
|
||||
url: '/admin/luckyBagWeekRank/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 榜单统计-详情列表接口
|
||||
export const luckyBagWeekRankListRank = query => {
|
||||
return request({
|
||||
url: '/admin/luckyBagWeekRank/pageRank',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 榜单统计-总导出
|
||||
export const exportList = query => {
|
||||
window.location.href = `/admin/luckyBagWeekRank/exportList?${genQueryParam(query)}`;
|
||||
return;
|
||||
};
|
||||
// 榜单统计-详情导出
|
||||
export const exportRank = query => {
|
||||
window.location.href = `/admin/luckyBagWeekRank/exportRank?${genQueryParam(query)}`;
|
||||
return;
|
||||
};
|
||||
// 用户中奖记录-列表
|
||||
export const getRecordPage = query => {
|
||||
return request({
|
||||
url: '/admin/luckyBagFortunate/getRecordPage',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 用户中奖记录-导出
|
||||
export const exportForReward = query => {
|
||||
window.location.href = `/admin/luckyBagFortunate/exportForReward?${genQueryParam(query)}`;
|
||||
return;
|
||||
};
|
||||
// 欧气1+1-导出
|
||||
export const luckyBagFortunateExport = query => {
|
||||
window.location.href = `/admin/luckyBagFortunate/export?${genQueryParam(query)}`;
|
||||
return;
|
||||
};
|
||||
// 欧气1+1-列表
|
||||
export const luckyBagFortunatePage = query => {
|
||||
return request({
|
||||
url: '/admin/luckyBagFortunate/page',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 欧气1+1-保存
|
||||
export const luckyBagFortunateSave = query => {
|
||||
return request({
|
||||
url: '/admin/luckyBagFortunate/save',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 欧气1+1-上下线
|
||||
export const luckyBagFortunateUpdateEnabled = query => {
|
||||
return request({
|
||||
url: '/admin/luckyBagFortunate/updateEnabled',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 收藏-列表
|
||||
export const luckyBagCollectPage = query => {
|
||||
return request({
|
||||
url: '/admin/luckyBagCollect/page',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 收藏-上下线
|
||||
export const updateEnabled = query => {
|
||||
return request({
|
||||
url: '/admin/luckyBagCollect/updateEnabled',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 收藏-保存
|
||||
export const luckyBagCollectSave = query => {
|
||||
return request({
|
||||
url: '/admin/luckyBagCollect/save',
|
||||
headers:{"Content-Type": 'application/x-www-form-urlencoded'},
|
||||
method: 'post',
|
||||
data: query
|
||||
});
|
||||
};
|
||||
// 收藏-导出
|
||||
export const luckyBagCollectExport = query => {
|
||||
window.location.href = `/admin/luckyBagCollect/export?${genQueryParam(query)}`;
|
||||
return;
|
||||
};
|
28
src/api/medal/MedalLevelManagement.js
Normal file
28
src/api/medal/MedalLevelManagement.js
Normal file
@@ -0,0 +1,28 @@
|
||||
import request from '@/utils/request';
|
||||
|
||||
// 勋章等级管理-列表
|
||||
export const getMedalSeriesList = query => {
|
||||
return request({
|
||||
url: '/admin/medalSeries/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 保存
|
||||
export const saveOrUpdate = query => {
|
||||
return request({
|
||||
url: '/admin/medalSeries/saveOrUpdate',
|
||||
method: 'post',
|
||||
headers: {"Content-Type": 'application/json;charset=UTF-8' },
|
||||
data: query
|
||||
});
|
||||
};
|
||||
|
||||
// 上下架
|
||||
export const updateStatus = query => {
|
||||
return request({
|
||||
url: '/admin/medalSeries/updateStatus',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
51
src/api/medal/medal.js
Normal file
51
src/api/medal/medal.js
Normal file
@@ -0,0 +1,51 @@
|
||||
import request from '@/utils/request';
|
||||
import { genQueryParam } from '@/utils/maintainer';
|
||||
|
||||
// 勋章信息-列表
|
||||
export const medalPage = query => {
|
||||
return request({
|
||||
url: '/admin/medal/page',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 勋章信息-新增&保存
|
||||
export const medalSave = query => {
|
||||
return request({
|
||||
url: '/admin/medal/save',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 勋章信息-发放
|
||||
export const medalSend = query => {
|
||||
return request({
|
||||
url: '/admin/medal/send',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 勋章记录-撤销
|
||||
export const rollback = query => {
|
||||
return request({
|
||||
url: '/admin/medalRecord/rollback',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 勋章记录-列表
|
||||
export const medalRecordPage = query => {
|
||||
return request({
|
||||
url: '/admin/medalRecord/page',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 勋章记录-勋章列表
|
||||
export const listAll = query => {
|
||||
return request({
|
||||
url: '/admin/medal/listAll',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
28
src/api/miniGame/miniGameForBaiShun.js
Normal file
28
src/api/miniGame/miniGameForBaiShun.js
Normal file
@@ -0,0 +1,28 @@
|
||||
import request from '@/utils/request';
|
||||
import { genQueryParam } from '@/utils/maintainer';
|
||||
|
||||
export const miniGameForBaiShunPage = query => {
|
||||
return request({
|
||||
url: '/admin/miniGame/baiShun/statis/page',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
|
||||
export const miniGameForBaiShunDetailPage = query => {
|
||||
return request({
|
||||
url: '/admin/miniGame/baiShun/statis/detailPage',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
|
||||
export const miniGameForBaiShunExport = query => {
|
||||
window.location.href = `/admin/miniGame/baiShun/statis/export?${genQueryParam(query)}`;
|
||||
return;
|
||||
};
|
||||
|
||||
export const miniGameForBaiShunExportAll = query => {
|
||||
window.location.href = `/admin/miniGame/baiShun/statis/exportForMiniGame?${genQueryParam(query)}`;
|
||||
return;
|
||||
};
|
9
src/api/miniGame/miniGameForNav.js
Normal file
9
src/api/miniGame/miniGameForNav.js
Normal file
@@ -0,0 +1,9 @@
|
||||
import request from '@/utils/request';
|
||||
|
||||
export const miniGameForNavPage = query => {
|
||||
return request({
|
||||
url: '/admin/miniGame/nav/page',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
23
src/api/miniGame/miniGameWeekJackpot.js
Normal file
23
src/api/miniGame/miniGameWeekJackpot.js
Normal file
@@ -0,0 +1,23 @@
|
||||
import request from '@/utils/request';
|
||||
import {genQueryParam} from "@/utils/maintainer";
|
||||
|
||||
export const pageRecord = query => {
|
||||
return request({
|
||||
url: '/admin/miniGameWeekJackpot/pageRecord',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
|
||||
export const exportRecord = query => {
|
||||
window.location.href = `/admin/miniGameWeekJackpot/exportRecord?${genQueryParam(query)}`;
|
||||
return;
|
||||
}
|
||||
|
||||
export const listUserRecord = query => {
|
||||
return request({
|
||||
url: '/admin/miniGameWeekJackpot/listUserRecord',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
299
src/api/nobleman/nobleman.js
Normal file
299
src/api/nobleman/nobleman.js
Normal file
@@ -0,0 +1,299 @@
|
||||
import request from '@/utils/request';
|
||||
import { genQueryParam } from '@/utils/maintainer';
|
||||
|
||||
// 邀请移除记录
|
||||
export const pageOperateRecord = query => {
|
||||
return request({
|
||||
url: '/admin/family/manage/pageOperateRecord',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 查询公会信息
|
||||
export const pageFamily = query => {
|
||||
return request({
|
||||
url: '/admin/family/manage/pageFamily',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 公会成员信息
|
||||
export const pageFamilyMember = query => {
|
||||
return request({
|
||||
url: '/admin/family/manage/pageFamilyMember',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 创建公会信息
|
||||
export const create = query => {
|
||||
return request({
|
||||
url: '/admin/family/manage/create',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 删除公会信息
|
||||
export const dismiss = query => {
|
||||
return request({
|
||||
url: '/admin/family/manage/dismiss',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 幸运礼物详情导出
|
||||
export const luckyGiftRewardRecordExport = query => {
|
||||
window.location.href = `/admin/luckyGiftRewardRecord/export?${genQueryParam(query)}`;
|
||||
return;
|
||||
};
|
||||
// 公会信息编辑接口
|
||||
export const update = query => {
|
||||
return request({
|
||||
url: '/admin/family/manage/update',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 违规类型列表接口
|
||||
export const pageFun = query => {
|
||||
return request({
|
||||
url: '/admin/familyMember/violation/page',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 违规类型列表接口
|
||||
export const listFun = query => {
|
||||
return request({
|
||||
url: '/admin/familyMember/violation/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 违规类型添加接口
|
||||
export const addFun = query => {
|
||||
return request({
|
||||
url: '/admin/familyMember/violation/add',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 编辑
|
||||
export const updateFun = query => {
|
||||
return request({
|
||||
url: '/admin/familyMember/violation/update',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 删除
|
||||
export const delFun = query => {
|
||||
return request({
|
||||
url: '/admin/familyMember/violation/del',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 添加违规记录
|
||||
export const addRecord = query => {
|
||||
return request({
|
||||
url: '/admin/familyMember/violation/addRecord',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 保存收款账户
|
||||
export const savePayAccount = query => {
|
||||
return request({
|
||||
url: '/admin/family/manage/savePayAccount',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 违规类查询
|
||||
export const listRecord = query => {
|
||||
return request({
|
||||
url: '/admin/familyMember/violation/listRecord',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 导出
|
||||
export const exportFamilyMember = query => {
|
||||
window.location.href = `/admin/family/manage/exportFamilyMember?${genQueryParam(query)}`;
|
||||
return;
|
||||
};
|
||||
// 导出-公会信息
|
||||
export const exportInfo = query => {
|
||||
window.location.href = `/admin/family/manage/exportFamily?${genQueryParam(query)}`;
|
||||
return;
|
||||
};
|
||||
|
||||
|
||||
// 工资梯度-列表
|
||||
export const manageList = query => {
|
||||
return request({
|
||||
url: '/admin/family/manage/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 工资梯度-新增
|
||||
export const manageAdd = query => {
|
||||
return request({
|
||||
url: '/admin/family/manage/add',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 工资梯度-删除
|
||||
export const manageDelete = query => {
|
||||
return request({
|
||||
url: '/admin/family/manage/delete',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 工会统计-列表
|
||||
export const statPageFamily = query => {
|
||||
return request({
|
||||
url: '/admin/family/wage/stat/pageFamily',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 工会统计-单个工会详情
|
||||
export const listFamilyMember = query => {
|
||||
return request({
|
||||
url: '/admin/family/wage/stat/listFamilyMember',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 工会统计-单个工会导出
|
||||
export const statExportFamilyMember = query => {
|
||||
window.location.href = `/admin/family/wage/stat/exportFamilyMember?${genQueryParam(query)}`;
|
||||
return;
|
||||
};
|
||||
// 工会统计-每日工会详情
|
||||
export const listFamilyMemberDaily = query => {
|
||||
return request({
|
||||
url: '/admin/family/wage/stat/listFamilyMemberDaily',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 工会统计-单每日会导出
|
||||
export const exportFamilyMemberDaily = query => {
|
||||
window.location.href = `/admin/family/wage/stat/exportFamilyMemberDaily?${genQueryParam(query)}`;
|
||||
return;
|
||||
};
|
||||
// 工会统计-导出公会工资统计
|
||||
export const statExportFamily = query => {
|
||||
window.location.href = `/admin/family/wage/stat/exportFamily?${genQueryParam(query)}`;
|
||||
return;
|
||||
};
|
||||
// 工会统计-导出家族流水
|
||||
export const incomeExportFamilys = query => {
|
||||
window.location.href = `/admin/family/income/exportFamily?${genQueryParam(query)}`;
|
||||
return;
|
||||
};
|
||||
// 金币流水-列表
|
||||
export const incomePageFamily = query => {
|
||||
return request({
|
||||
url: '/admin/family/income/pageFamily',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 金币流水-详情
|
||||
export const incomeListFamilyMember = query => {
|
||||
return request({
|
||||
url: '/admin/family/income/listFamilyMember',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 金币流水-导出成员流水信息
|
||||
export const incomeExportFamily = query => {
|
||||
window.location.href = `/admin/family/income/exportFamilyMember?${genQueryParam(query)}`;
|
||||
return;
|
||||
};
|
||||
// 成员信息-弹窗详情
|
||||
export const manageListFamilyMember = query => {
|
||||
return request({
|
||||
url: '/admin/family/manage/listFamilyMember',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
|
||||
// 成员信息-新增成员
|
||||
export const addMember = query => {
|
||||
return request({
|
||||
url: '/admin/family/manage/addMember',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 成员信息-设置管理员
|
||||
export const setManager = query => {
|
||||
return request({
|
||||
url: '/admin/family/manage/setManager',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 成员信息-删除管理员
|
||||
export const removeMember = query => {
|
||||
return request({
|
||||
url: '/admin/family/manage/removeMember',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
|
||||
// -审核列表
|
||||
export const guildApplyList = query => {
|
||||
return request({
|
||||
url: '/admin/guildApply/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
|
||||
// -审核操作
|
||||
export const guildApplyAudit = query => {
|
||||
return request({
|
||||
url: '/admin/guildApply/audit',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
|
||||
// 主播退公会申请 列表
|
||||
export const guildManageQuitList = query => {
|
||||
return request({
|
||||
url: '/admin/guild/manage/quitList',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
|
||||
// 主播退公会申请审核
|
||||
export const guildManageOptQuit = query => {
|
||||
return request({
|
||||
url: '/admin/guild/manage/optQuit',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
|
||||
// 获取分区下的国家
|
||||
export const getlistByPartitionId = query => {
|
||||
return request({
|
||||
url: '/admin/regionInfo/listByPartitionId',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
154
src/api/noblemanNew/noblemanNew.js
Normal file
154
src/api/noblemanNew/noblemanNew.js
Normal file
@@ -0,0 +1,154 @@
|
||||
import request from '@/utils/request';
|
||||
import { genQueryParam } from '@/utils/maintainer';
|
||||
|
||||
// 邀请移除记录
|
||||
export const pageOperateRecord = query => {
|
||||
return request({
|
||||
url: '/admin/guild/manage/pageOperateRecord',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 查询公会信息
|
||||
export const pageFamily = query => {
|
||||
return request({
|
||||
url: '/admin/guild/manage/pageGuild',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 公会成员信息
|
||||
export const pageFamilyMember = query => {
|
||||
return request({
|
||||
url: '/admin/family/manage/pageFamilyMember',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 创建公会信息
|
||||
export const create = query => {
|
||||
return request({
|
||||
url: '/admin/guild/manage/create',
|
||||
method: 'post',
|
||||
data: query
|
||||
});
|
||||
};
|
||||
// 删除公会信息
|
||||
export const dismiss = query => {
|
||||
return request({
|
||||
url: '/admin/guild/manage/dismiss',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 幸运礼物详情导出
|
||||
export const luckyGiftRewardRecordExport = query => {
|
||||
window.location.href = `/admin/luckyGiftRewardRecord/export?${genQueryParam(query)}`;
|
||||
return;
|
||||
};
|
||||
// 公会信息编辑接口
|
||||
export const update = query => {
|
||||
return request({
|
||||
url: '/admin/guild/manage/update',
|
||||
method: 'post',
|
||||
data: query
|
||||
});
|
||||
};
|
||||
// 导出-公会信息
|
||||
export const exportInfo = query => {
|
||||
window.location.href = `/admin/guild/manage/exportGuild?${genQueryParam(query)}`;
|
||||
return;
|
||||
};
|
||||
// 成员信息-弹窗详情
|
||||
export const manageListFamilyMember = query => {
|
||||
return request({
|
||||
url: '/admin/guild/manage/listGuildMember',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
|
||||
// 成员信息-新增成员
|
||||
export const addMember = query => {
|
||||
return request({
|
||||
url: '/admin/guild/manage/addMember',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 成员信息-设置管理员
|
||||
export const setManager = query => {
|
||||
return request({
|
||||
url: '/admin/guild/manage/setManager',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 成员信息-删除管理员
|
||||
export const removeMember = query => {
|
||||
return request({
|
||||
url: '/admin/guild/manage/removeMember',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 主播公会信息-列表
|
||||
|
||||
export const getGuildManagePageGuildMemberList = query => {
|
||||
return request({
|
||||
url: '/admin/guild/manage/pageGuildMember',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 主播公会信息-增加
|
||||
|
||||
export const addGuildManagePageGuildMember = query => {
|
||||
return request({
|
||||
url: '/admin/guild/manage/addMember',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 主播公会信息-删除
|
||||
|
||||
export const removeGuildManagePageGuildMember = query => {
|
||||
return request({
|
||||
url: '/admin/guild/manage/removeMember',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 公会主播钻石流水-列表
|
||||
export const getDiamondStatisticsList = query => {
|
||||
return request({
|
||||
url: '/admin/guildMember/diamondStatistics',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 公会主播钻石流水-导出
|
||||
export const exportDiamondStatistics = query => {
|
||||
return request({
|
||||
url: `/admin/guildMember/diamondStatistics/export`,
|
||||
method: 'get',
|
||||
params: query,
|
||||
responseType: 'blob'
|
||||
});
|
||||
};
|
||||
// 获取 负责人全部列表
|
||||
export const getGuildOperatorListAll = query => {
|
||||
return request({
|
||||
url: '/admin/guildOperator/listAll',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 获取 国家列表
|
||||
export const getlistByPartitionId = query => {
|
||||
return request({
|
||||
url: '/admin/regionInfo/listByPartitionId',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
16
src/api/partition/partitionInfo.js
Normal file
16
src/api/partition/partitionInfo.js
Normal file
@@ -0,0 +1,16 @@
|
||||
import request from '@/utils/request';
|
||||
|
||||
export const getPartitionInfoList = query => {
|
||||
return request({
|
||||
url: '/partition/listPartitionInfo',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
export const listAll = query => {
|
||||
return request({
|
||||
url: '/partition/listAll',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
16
src/api/partition/regionInfo.js
Normal file
16
src/api/partition/regionInfo.js
Normal file
@@ -0,0 +1,16 @@
|
||||
import request from '@/utils/request';
|
||||
|
||||
export const listByPartitionId = query => {
|
||||
return request({
|
||||
url: '/admin/regionInfo/listByPartitionId',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
export const listAll = query => {
|
||||
return request({
|
||||
url: '/admin/regionInfo/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
@@ -0,0 +1,44 @@
|
||||
import request from '@/utils/request';
|
||||
import { genQueryParam } from '@/utils/maintainer';
|
||||
import qs from 'qs';
|
||||
|
||||
// 个人主页资源管理列表
|
||||
export const pesonalBackgroundListByPage = query => {
|
||||
return request({
|
||||
url: '/admin/pesonalBackground/listByPage',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 个人主页资源管理赠送
|
||||
export const pesonalBackgroundListSend = query => {
|
||||
return request({
|
||||
url: '/admin/pesonalBackground/send',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 个人主页资源管理保存
|
||||
export const pesonalBackgroundSaveOrUpdate = query => {
|
||||
return request({
|
||||
url: '/admin/pesonalBackground/saveOrUpdate',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 个人主页记录管理&个人赠送记录
|
||||
export const pesonalBackgroundListRecordByPage = query => {
|
||||
return request({
|
||||
url: '/admin/pesonalBackground/listRecordByPage',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 个人赠送记录撤回
|
||||
export const pesonalBackgroundListRecordRecoveryPersonalBackground = query => {
|
||||
return request({
|
||||
url: '/admin/pesonalBackground/recoveryPersonalBackground',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
37
src/api/recharge/rechargeSubUser.js
Normal file
37
src/api/recharge/rechargeSubUser.js
Normal file
@@ -0,0 +1,37 @@
|
||||
import request from '@/utils/request';
|
||||
|
||||
export const listRegionType = () => {
|
||||
return request({
|
||||
url: '/admin/charge/region/list',
|
||||
method: 'get',
|
||||
});
|
||||
};
|
||||
|
||||
// 奖池拉框
|
||||
export const page = query => {
|
||||
return request({
|
||||
url: '/admin/recharge/user/page',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
|
||||
// 奖池拉框
|
||||
export const save = query => {
|
||||
return request({
|
||||
headers:{"Content-Type": 'application/x-www-form-urlencoded'},
|
||||
url: '/admin/recharge/user/save',
|
||||
method: 'post',
|
||||
data: query
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
// 奖池拉框
|
||||
export const del = query => {
|
||||
return request({
|
||||
url: '/admin/recharge/user/del',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
40
src/api/refund/refund.js
Normal file
40
src/api/refund/refund.js
Normal file
@@ -0,0 +1,40 @@
|
||||
import request from '@/utils/request';
|
||||
import qs from 'qs';
|
||||
import { genQueryParam } from '@/utils/maintainer';
|
||||
// 活动配置 相关接口(一级菜单:活动配置)
|
||||
|
||||
// 国家
|
||||
export const regionInfoList = query => {
|
||||
return request({
|
||||
url: '/admin/regionInfo/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 列表
|
||||
export const refundList = query => {
|
||||
return request({
|
||||
url: '/admin/chargeRecord/refundList',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 导出
|
||||
export const refundExport = query => {
|
||||
window.location.href = `/admin/chargeRecord/refundExport?${genQueryParam(query)}`;
|
||||
return;
|
||||
};
|
||||
// ======================================金币钻石操作记录==================================
|
||||
// 列表
|
||||
export const goldcoinRecordAll = query => {
|
||||
return request({
|
||||
url: '/admin/goldcoin/recordAll',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 导出
|
||||
export const recordAllExport = query => {
|
||||
window.location.href = `/admin/goldcoin/recordAllExport?${genQueryParam(query)}`;
|
||||
return;
|
||||
};
|
334
src/api/relAgency/relAgency.js
Normal file
334
src/api/relAgency/relAgency.js
Normal file
@@ -0,0 +1,334 @@
|
||||
|
||||
import request from '@/utils/request';
|
||||
import qs from 'qs';
|
||||
import { genQueryParam } from '@/utils/maintainer';
|
||||
// 活动配置 相关接口(一级菜单:活动配置)
|
||||
|
||||
// 充值代理列表导出
|
||||
export const chargeAgentExport = query => {
|
||||
window.location.href = `/anchorSalaryBill/chargeAgent/export?${genQueryParam(query)}`;
|
||||
return;
|
||||
};
|
||||
|
||||
// 获取 周期列表
|
||||
export const getDateCycleList = query => {
|
||||
return request({
|
||||
url: '/anchorSalaryBill/dateCycle/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 获取 周奖励周期列表
|
||||
export const familyMemberWeekLevelRewardListCycleDate = query => {
|
||||
return request({
|
||||
url: '/admin/familyMemberWeekLevelReward/listCycleDate',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 获取 周奖励查询列表
|
||||
export const familyMemberWeekLevelRewardPage = query => {
|
||||
return request({
|
||||
url: '/admin/familyMemberWeekLevelReward/page',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
|
||||
// 导出
|
||||
export const familyMemberWeekLevelRewardExport = query => {
|
||||
window.location.href = `/admin/familyMemberWeekLevelReward/export?${genQueryParam(query)}`;
|
||||
return;
|
||||
};
|
||||
|
||||
// 获取 公会钻石薪资流水统计 列表
|
||||
export const getAgencyDiamondFlow = query => {
|
||||
return request({
|
||||
url: '/agency/diamond/flow/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
|
||||
// 公会钻石薪资流水统计 导出
|
||||
// export const agencyDiamondFlowExport = query => {
|
||||
// return request({
|
||||
// url: `/agency/diamond/flow/export`,
|
||||
// method: 'post',
|
||||
// params: query,
|
||||
// responseType: 'blob'
|
||||
// });
|
||||
// };
|
||||
export const agencyDiamondFlowExport = query => {
|
||||
window.location.href = `/agency/diamond/flow/export?${genQueryParam(query)}`;
|
||||
return;
|
||||
};
|
||||
// 主播薪资操作(不用分区)
|
||||
export const getAnchorSalaryBill = query => {
|
||||
return request({
|
||||
url: '/anchorSalaryBill/anchorSummary/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
|
||||
// salaryType 1钻石兑换薪资明细 2 薪资转赠充值代理 明细 3薪资转增公会长明细 4官方提现 6 薪资兑换金币明细
|
||||
export const anchorSalaryBillDetail = query => {
|
||||
return request({
|
||||
url: '/anchorSalaryBill/detail/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
|
||||
// 充值代理转增薪资
|
||||
export const chargeAgentList = query => {
|
||||
return request({
|
||||
url: '/anchorSalaryBill/chargeAgent/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 充值代理转增薪资 总值
|
||||
export const chargeAgentSum = query => {
|
||||
return request({
|
||||
url: '/anchorSalaryBill/chargeAgent/sum',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
|
||||
// 官方提现记录 列表
|
||||
export const agencyWithdrawList = query => {
|
||||
return request({
|
||||
url: '/agencyWithdrawExamine/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 官方提现记录 导出
|
||||
export const agencyWithdrawExamineExport = query => {
|
||||
return request({
|
||||
url: `/agencyWithdrawExamine/export`,
|
||||
method: 'post',
|
||||
params: query,
|
||||
responseType: 'blob'
|
||||
});
|
||||
};
|
||||
// 官方提现记录 结算
|
||||
// export const agencyWithdrawSet = query => {
|
||||
// return request({
|
||||
// url: '/agencyWithdrawExamine/settle',
|
||||
// method: 'post',
|
||||
// params: query
|
||||
// });
|
||||
// };
|
||||
export const agencyWithdrawSet = query => {
|
||||
return request({
|
||||
url: '/agencyWithdrawExamine/batchSettle',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 官方提现记录 批量结算
|
||||
export const agencyWithdrawBatchSet = query => {
|
||||
return request({
|
||||
url: '/agencyWithdrawExamine/batchSettle',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 官方提现记录 批量驳回
|
||||
export const batchReject = query => {
|
||||
return request({
|
||||
url: '/agencyWithdrawExamine/batchReject',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
|
||||
// 公会开业数据统计
|
||||
export const agencyOpenList = query => {
|
||||
return request({
|
||||
url: '/agency/open/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 公会开业数据 详情
|
||||
export const agencyOpenDetail = query => {
|
||||
return request({
|
||||
url: '/agency/open/detail/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 公会优秀主播数据统计
|
||||
export const excellentAnchorList = query => {
|
||||
return request({
|
||||
url: '/agency/open/excellentAnchor/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 公会优秀主播数据统计
|
||||
export const excellentAnchorDetail = query => {
|
||||
return request({
|
||||
url: '/agency/open/excellentAnchor/detail/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 官方提现-国家
|
||||
export const adminCountry = query => {
|
||||
return request({
|
||||
url: '/admin/country/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
|
||||
// =====================================钻石充值流水=======================================
|
||||
// 查询
|
||||
export const diamondStatistics = query => {
|
||||
return request({
|
||||
url: '/admin/guild/diamondStatistics',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 导出
|
||||
export const diamondStatisticsExport = query => {
|
||||
window.location.href = `/admin/guild/diamondStatistics/export?${genQueryParam(query)}`;
|
||||
return;
|
||||
};
|
||||
// 获取分区下的国家
|
||||
export const getlistByPartitionId = query => {
|
||||
return request({
|
||||
url: '/admin/regionInfo/listByPartitionId',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 每日钻石流水列表
|
||||
export const getroomDayDiamondList = query => {
|
||||
return request({
|
||||
url: '/admin/roomDayDiamond/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 每日钻石流水列表导出
|
||||
export const roomDayDiamondExport = query => {
|
||||
window.location.href = `/admin/roomDayDiamond/export?${genQueryParam(query)}`;
|
||||
return;
|
||||
};
|
||||
// 每日钻石流水列表
|
||||
export const sendroomDayDiamond = query => {
|
||||
return request({
|
||||
url: '/admin/roomDayDiamond/send',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 官方提现方式渠道列表
|
||||
export const getlistAccountType = query => {
|
||||
return request({
|
||||
url: '/admin/guildUsdWithdrawAccountConfig/listAccountType',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 官方提现方式配置 列表
|
||||
export const getAccountConfigList = query => {
|
||||
return request({
|
||||
url: '/admin/guildUsdWithdrawAccountConfig/page',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 官方提现方式配置 编辑
|
||||
export const saveAccountConfig = query => {
|
||||
return request({
|
||||
url: '/admin/guildUsdWithdrawAccountConfig/save',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 房间钻石流水查询 - 列表
|
||||
export const getRoomHourDiamondList = query => {
|
||||
return request({
|
||||
url: '/admin/roomHourDiamond/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 房间钻石流水查询 - 导出
|
||||
export const exportRoomHourDiamondList = query => {
|
||||
return request({
|
||||
url: '/admin/roomHourDiamond/export',
|
||||
method: 'post',
|
||||
params: query,
|
||||
responseType: 'blob'
|
||||
});
|
||||
};
|
||||
|
||||
// CIS公会钻石 - 列表
|
||||
export const getSovietList = query => {
|
||||
return request({
|
||||
url: '/admin/soviet/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// CIS公会钻石 - 导出
|
||||
export const exportSovietList = query => {
|
||||
return request({
|
||||
url: '/admin/soviet/export',
|
||||
method: 'post',
|
||||
params: query,
|
||||
responseType: 'blob'
|
||||
});
|
||||
};
|
||||
// CIS公会成员钻石 - 列表
|
||||
export const getSovietMemberList = query => {
|
||||
return request({
|
||||
url: '/admin/soviet/memberList',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// CIS公会成员钻石 - 导出
|
||||
export const exportSovietMemberList = query => {
|
||||
return request({
|
||||
url: '/admin/soviet/memberExport',
|
||||
method: 'post',
|
||||
params: query,
|
||||
responseType: 'blob'
|
||||
});
|
||||
};
|
||||
// CIS房主钻石 - 列表
|
||||
export const getSovietRoomList = query => {
|
||||
return request({
|
||||
url: '/admin/soviet/roomList',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// CIS房主钻石 - 导出
|
||||
export const exportSovietRoomList = query => {
|
||||
return request({
|
||||
url: '/admin/soviet/roomExport',
|
||||
method: 'post',
|
||||
params: query,
|
||||
responseType: 'blob'
|
||||
});
|
||||
};
|
||||
// CIS房主钻石 - CIS房主钻石-周期
|
||||
export const getRoomCycleDateList = query => {
|
||||
return request({
|
||||
url: '/admin/soviet/roomCycleDateList',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
43
src/api/relPrivilegeManage/relPrivilegeManage.js
Normal file
43
src/api/relPrivilegeManage/relPrivilegeManage.js
Normal file
@@ -0,0 +1,43 @@
|
||||
import request from '@/utils/request';
|
||||
import qs from 'qs';
|
||||
// 靓号申请管理 列表
|
||||
export const getPrettyNumberExamineList = query => {
|
||||
return request({
|
||||
url: '/admin/prettyNumber/examine/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 靓号申请管理 通过
|
||||
export const prettyNumberExaminePass = query => {
|
||||
return request({
|
||||
url: '/admin/prettyNumber/examine/pass',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 靓号申请管理 删除
|
||||
export const prettyNumberExamineDelete = query => {
|
||||
return request({
|
||||
url: '/admin/prettyNumber/examine/delete',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 靓号申请管理 拒绝
|
||||
export const prettyNumberExamineReject = query => {
|
||||
return request({
|
||||
url: '/admin/prettyNumber/examine/reject',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 靓号导入
|
||||
export const erbanUpload = query => {
|
||||
return request({
|
||||
url: '/admin/prettyNumber/upload',
|
||||
method: 'post',
|
||||
headers: { 'Content-Type': 'multipart/form-data' },
|
||||
data: query
|
||||
});
|
||||
};
|
104
src/api/relUserBelongings/relUserBelongings.js
Normal file
104
src/api/relUserBelongings/relUserBelongings.js
Normal file
@@ -0,0 +1,104 @@
|
||||
import request from '@/utils/request';
|
||||
import qs from 'qs';
|
||||
|
||||
// 用户财产 相关接口(一级菜单:用户财产管理)
|
||||
|
||||
// 获取 金币转赠历史列表
|
||||
export const getGoldCoinTransferList = query => {
|
||||
return request({
|
||||
url: '/gold/give/history',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
|
||||
// 获取 金币转赠历史 金币汇总
|
||||
export const getGoldCoinSumGold = query => {
|
||||
return request({
|
||||
url: '/gold/give/history/sumGold',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
// 用户资产排行 列表
|
||||
export const getUserAssetsList = query => {
|
||||
return request({
|
||||
url: '/userAssets/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
|
||||
// 用户资产排行 导出
|
||||
export const userAssetsExport = query => {
|
||||
return request({
|
||||
url: '/userAssets/export',
|
||||
method: 'get',
|
||||
params: query,
|
||||
responseType: 'blob'
|
||||
});
|
||||
};
|
||||
// 金币钻石操作记录 列表
|
||||
export const officalGoldSearch = query => {
|
||||
return request({
|
||||
url: '/offical/gold/search',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
|
||||
// 金币钻石操作记录 导出
|
||||
export const officalGoldExport = query => {
|
||||
return request({
|
||||
url: '/offical/gold/export',
|
||||
method: 'get',
|
||||
params: query,
|
||||
responseType: 'blob'
|
||||
});
|
||||
};
|
||||
|
||||
// 操作货币增加/减少 列表
|
||||
export const officalGoldGive= query => {
|
||||
return request({
|
||||
url: '/offical/gold/give',
|
||||
method: 'post',
|
||||
params: query
|
||||
// data: qs.stringify(query)
|
||||
});
|
||||
};
|
||||
|
||||
// 操作货币增加/减少 查看用户
|
||||
export const getofficalGoldUserInfo = query => {
|
||||
return request({
|
||||
url: '/offical/gold/userInfo',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
|
||||
// 冻结用户资产管理 列表
|
||||
export const getFrozenRecordList = query => {
|
||||
return request({
|
||||
url: '/frozenRecord/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 冻结用户资产管理 冻结
|
||||
export const userRecordFrozen= query => {
|
||||
return request({
|
||||
url: '/frozenRecord/frozen',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 冻结用户资产管理 解冻
|
||||
export const frozenRecordFree= query => {
|
||||
return request({
|
||||
url: '/frozenRecord/free',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
40
src/api/room/roomTabRegion.js
Normal file
40
src/api/room/roomTabRegion.js
Normal file
@@ -0,0 +1,40 @@
|
||||
import request from '@/utils/request';
|
||||
|
||||
export const listRegionTab = query => {
|
||||
return request({
|
||||
url: '/admin/roomTabRegion/listRegionTab',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
|
||||
export const list = query => {
|
||||
return request({
|
||||
url: '/admin/roomTabRegion/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
|
||||
export const get = query => {
|
||||
return request({
|
||||
url: '/admin/roomTabRegion/get',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
|
||||
export const save = query => {
|
||||
return request({
|
||||
url: '/admin/roomTabRegion/save',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
export const del = query => {
|
||||
return request({
|
||||
url: '/admin/roomTabRegion/delete',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
77
src/api/roomBackground/roomBackground.js
Normal file
77
src/api/roomBackground/roomBackground.js
Normal file
@@ -0,0 +1,77 @@
|
||||
import request from '@/utils/request';
|
||||
|
||||
// ==============================================首页ui配置==============================================
|
||||
// 配置
|
||||
export const appUiSetting = query => {
|
||||
return request({
|
||||
url: '/appUiSetting',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 保存
|
||||
export const appUiSettingSave = query => {
|
||||
return request({
|
||||
url: '/appUiSetting/save',
|
||||
method: 'post',
|
||||
data: query
|
||||
});
|
||||
};
|
||||
// ==============================================自定义背景==============================================
|
||||
// 列表
|
||||
export const page = query => {
|
||||
return request({
|
||||
url: '/admin/roomBackground/page',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 新增
|
||||
export const roomBackgroundAdd = query => {
|
||||
return request({
|
||||
url: '/admin/roomBackground/add',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 编辑
|
||||
export const roomBackgroundUpdate = query => {
|
||||
return request({
|
||||
url: '/admin/roomBackground/update',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// ==============================================自定义背景==============================================
|
||||
// 列表
|
||||
export const customPage = query => {
|
||||
return request({
|
||||
url: '/admin/roomBackground/custom/page',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 通过
|
||||
export const customPass = query => {
|
||||
return request({
|
||||
url: '/admin/roomBackground/custom/pass',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 拒绝
|
||||
export const customReject = query => {
|
||||
return request({
|
||||
url: '/admin/roomBackground/custom/reject',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 删除
|
||||
export const customDel = query => {
|
||||
return request({
|
||||
url: '/admin/roomBackground/custom/del',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
10
src/api/sms/smsRecord.js
Normal file
10
src/api/sms/smsRecord.js
Normal file
@@ -0,0 +1,10 @@
|
||||
import request from '@/utils/request';
|
||||
import {genQueryParam} from "@/utils/maintainer";
|
||||
|
||||
export const pageRecord = query => {
|
||||
return request({
|
||||
url: '/admin/smsRecord/page',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
31
src/api/statistics/statistics.js
Normal file
31
src/api/statistics/statistics.js
Normal file
@@ -0,0 +1,31 @@
|
||||
import request from '@/utils/request';
|
||||
import qs from 'qs';
|
||||
import { genQueryParam } from '@/utils/maintainer';
|
||||
|
||||
// ==================================用户新增====================================
|
||||
// 列表
|
||||
export const dnuPage = query => {
|
||||
return request({
|
||||
url: '/admin/stats/dnu/page',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// ==================================用户活跃====================================
|
||||
// 列表
|
||||
export const dauPage = query => {
|
||||
return request({
|
||||
url: '/admin/stats/dau/page',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// ==================================工会数据统计====================================
|
||||
// 列表
|
||||
export const guiildPage = query => {
|
||||
return request({
|
||||
url: '/admin/stats/guild/page',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
9
src/api/superCenter/GoldWaterSuper.js
Normal file
9
src/api/superCenter/GoldWaterSuper.js
Normal file
@@ -0,0 +1,9 @@
|
||||
import request from '@/utils/request';
|
||||
// 获取列表
|
||||
export const incomePageFamily = query => {
|
||||
return request({
|
||||
url: '/admin/superCenter/pageFamilyIncomes',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
17
src/api/superCenter/GuildInfoSuper.js
Normal file
17
src/api/superCenter/GuildInfoSuper.js
Normal file
@@ -0,0 +1,17 @@
|
||||
import request from '@/utils/request';
|
||||
// 获取列表
|
||||
export const pageFamily = query => {
|
||||
return request({
|
||||
url: '/admin/superCenter/pageFamily',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 创建公会
|
||||
export const createFamily = query => {
|
||||
return request({
|
||||
url: '/admin/superCenter/createFamily',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
17
src/api/superCenter/VipGiveSuper.js
Normal file
17
src/api/superCenter/VipGiveSuper.js
Normal file
@@ -0,0 +1,17 @@
|
||||
import request from '@/utils/request';
|
||||
// 获取列表
|
||||
export const pageRecord = query => {
|
||||
return request({
|
||||
url: '/admin/superCenter/vipSendRecord',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 赠送
|
||||
export const vipSendSend = query => {
|
||||
return request({
|
||||
url: '/admin/superCenter/vipSend',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
9
src/api/superCenter/diamondFlowSuper.js
Normal file
9
src/api/superCenter/diamondFlowSuper.js
Normal file
@@ -0,0 +1,9 @@
|
||||
import request from '@/utils/request';
|
||||
// 获取列表
|
||||
export const diamondStatistics = query => {
|
||||
return request({
|
||||
url: '/admin/superCenter/diamondStatistics',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
9
src/api/superCenter/newGuildApplicationSuper.js
Normal file
9
src/api/superCenter/newGuildApplicationSuper.js
Normal file
@@ -0,0 +1,9 @@
|
||||
import request from '@/utils/request';
|
||||
// 获取列表
|
||||
export const guildApplyList = query => {
|
||||
return request({
|
||||
url: '/admin/superCenter/guildApplyList',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
17
src/api/system/i18nMessage.js
Normal file
17
src/api/system/i18nMessage.js
Normal file
@@ -0,0 +1,17 @@
|
||||
import request from "@/utils/request";
|
||||
|
||||
export function getI18nMessageList() {
|
||||
return request({
|
||||
url: '/admin/i18nMessage/list',
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
||||
export function saveI18nMessage(data) {
|
||||
return request({
|
||||
url: '/admin/i18nMessage/save',
|
||||
headers:{"Content-Type": 'application/x-www-form-urlencoded'},
|
||||
method: 'post',
|
||||
data: data
|
||||
});
|
||||
}
|
27
src/api/userRechargeLevel/userRechargeLevel.js
Normal file
27
src/api/userRechargeLevel/userRechargeLevel.js
Normal file
@@ -0,0 +1,27 @@
|
||||
import request from '@/utils/request';
|
||||
|
||||
// 获取用户充值等级列表
|
||||
export const listLevel = query => {
|
||||
return request({
|
||||
url: '/admin/recharge/userRechargeLevel/listLevel',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
|
||||
// 获取用户充值等级列表
|
||||
export const pageUserRechargeLevel = query => {
|
||||
return request({
|
||||
url: '/admin/recharge/userRechargeLevel/page',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 财富/魅力等级修改记录 - 列表
|
||||
export const getUserExpChangeRecordList = query => {
|
||||
return request({
|
||||
url: '/userExpChange/userExpChangeRecordList',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
75
src/api/users/ChargeRecordPartitionStatisticsView.js
Normal file
75
src/api/users/ChargeRecordPartitionStatisticsView.js
Normal file
@@ -0,0 +1,75 @@
|
||||
import request from "@/utils/request";
|
||||
// 各分区充值统计-列表
|
||||
export const getChargeRecordPartitionDetail = query => {
|
||||
return request({
|
||||
url: '/admin/chargeRecord/partitionDetail',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 各分区充值统计-导出
|
||||
export const exportPartitionDetail = query => {
|
||||
return request({
|
||||
url: `/admin/chargeRecord/exportPartitionDetail`,
|
||||
method: 'get',
|
||||
params: query,
|
||||
responseType: 'blob'
|
||||
});
|
||||
}
|
||||
// 今日充值统计-列表
|
||||
export const getChargeRecordDailtList = query => {
|
||||
return request({
|
||||
url: '/admin/chargeRecord/dailylist',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 今日充值统计-今日充值数据
|
||||
export const getChargeRecordDailyTotal = query => {
|
||||
return request({
|
||||
url: '/admin/chargeRecord/dailytotal',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 今日充值统计-明细
|
||||
export const getChargeRecordDailyDetail = query => {
|
||||
return request({
|
||||
url: '/admin/chargeRecord/dailydetail',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 累计充值数据 - 列表
|
||||
export const getChargeRecordTotalList = query => {
|
||||
return request({
|
||||
url: '/admin/chargeRecord/totallist',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 累计充值数据 - 明细
|
||||
export const getChargeRecordTotalDetail = query => {
|
||||
return request({
|
||||
url: '/admin/chargeRecord/totaldetail',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 累计充值数据 - 导出
|
||||
export const exportChargeRecordTotalExport = query => {
|
||||
return request({
|
||||
url: '/admin/chargeRecord/totalexport',
|
||||
method: 'get',
|
||||
params: query,
|
||||
responseType: 'blob'
|
||||
});
|
||||
};
|
||||
// 充值明细
|
||||
export const getChargeRecordPartitionRegionDetail = query => {
|
||||
return request({
|
||||
url: '/admin/chargeRecord/partitionRegionDetail',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
35
src/api/users/SuspectedUserX.js
Normal file
35
src/api/users/SuspectedUserX.js
Normal file
@@ -0,0 +1,35 @@
|
||||
import request from '@/utils/request';
|
||||
|
||||
// X嫌疑人 - 列表
|
||||
export const getChargeUserXDetailPage = query => {
|
||||
return request({
|
||||
url: '/chargeUserXDetail/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// X嫌疑人 导出
|
||||
export const exportChargeUserXDetail = query => {
|
||||
return request({
|
||||
url: `/chargeUserXDetail/export`,
|
||||
method: 'post',
|
||||
params: query,
|
||||
responseType: 'blob'
|
||||
});
|
||||
}
|
||||
// X嫌疑人 - 增加
|
||||
export const saveChargeUserXDetailPage = query => {
|
||||
return request({
|
||||
url: '/chargeUserXDetail/save',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// X嫌疑人 - 删除
|
||||
export const deleteChargeUserXDetailPage = query => {
|
||||
return request({
|
||||
url: '/chargeUserXDetail/delete',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
18
src/api/users/UserInformationCustomer.js
Normal file
18
src/api/users/UserInformationCustomer.js
Normal file
@@ -0,0 +1,18 @@
|
||||
import request from '@/utils/request';
|
||||
|
||||
// 获取用户充值等级列表
|
||||
export const getUserCheckAdmin = query => {
|
||||
return request({
|
||||
url: '/admin/userCheckAdmin/getUser',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 修改用户等级
|
||||
export const changeUserExpChange = query => {
|
||||
return request({
|
||||
url: '/userExpChange/change',
|
||||
method: 'post',
|
||||
params: query
|
||||
});
|
||||
};
|
18
src/api/users/userAvatarManagement.js
Normal file
18
src/api/users/userAvatarManagement.js
Normal file
@@ -0,0 +1,18 @@
|
||||
import request from "@/utils/request";
|
||||
// 列表
|
||||
export const getavatarPaidRecordList = query => {
|
||||
return request({
|
||||
url: '/admin/avatarPaidRecord/page',
|
||||
method: 'get',
|
||||
params: query,
|
||||
|
||||
});
|
||||
}
|
||||
// 下架
|
||||
export const resetAvatarPaidRecord = query => {
|
||||
return request({
|
||||
url: '/admin/avatarPaidRecord/reset',
|
||||
method: 'get',
|
||||
params: query,
|
||||
});
|
||||
}
|
98
src/components/common/TablePagination.vue
Normal file
98
src/components/common/TablePagination.vue
Normal file
@@ -0,0 +1,98 @@
|
||||
<template>
|
||||
<div class="pagination">
|
||||
<el-pagination
|
||||
background
|
||||
:layout="paginationLayout"
|
||||
:current-page="pageParams.pageNo"
|
||||
:page-size="pageParams.pageSize"
|
||||
:page-sizes="pageSizes"
|
||||
:total="pageTotal"
|
||||
:pager-count="pagerCount"
|
||||
@size-change="handleSizeChange"
|
||||
@current-change="handlePageChange"
|
||||
></el-pagination>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
props: {
|
||||
pageParams: {
|
||||
type: Object,
|
||||
default: () => {}
|
||||
},
|
||||
pageSizes: {
|
||||
type: Array,
|
||||
default: function () {
|
||||
return [5, 10, 20, 30, 40, 50, 100];
|
||||
}
|
||||
},
|
||||
// pagerCount: {
|
||||
// type: Number,
|
||||
// default: 5
|
||||
// },
|
||||
pageTotal: {
|
||||
type: Number,
|
||||
default: 0
|
||||
},
|
||||
ifShowTotal: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
ifShowSizes: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
ifShowPrev: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
ifShowPager: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
ifShowNext: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
ifShowJumper: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
pagerCount: 5
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
handleSizeChange(val) {
|
||||
this.$emit('handleSizeChange', val);
|
||||
},
|
||||
handlePageChange(val) {
|
||||
this.$emit('handlePageChange', val);
|
||||
},
|
||||
handleResize() {
|
||||
if (window.innerWidth > 768) {
|
||||
this.pagerCount = 5;
|
||||
} else {
|
||||
this.pagerCount = 2;
|
||||
}
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.handleResize(); // 初始化宽度
|
||||
},
|
||||
computed: {
|
||||
paginationLayout() {
|
||||
const layoutStr = ['total', 'sizes', 'prev', 'pager', 'next', 'jumper'];
|
||||
const { ifShowTotal, ifShowSizes, ifShowPrev, ifShowPager, ifShowNext, ifShowJumper } = this;
|
||||
let layoutWantedToBeShowed = [];
|
||||
[ifShowTotal, ifShowSizes, ifShowPrev, ifShowPager, ifShowNext, ifShowJumper].forEach((item, index) => {
|
||||
if (item) layoutWantedToBeShowed.push(index);
|
||||
});
|
||||
return layoutWantedToBeShowed.map((item) => layoutStr[item]).join(',');
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
@@ -3,7 +3,7 @@
|
||||
<div class="pull-right hidden-xs">
|
||||
<b>Version</b> 2.0.0
|
||||
</div>
|
||||
<strong>Copyright © 2023 <a href="">触海网络</a>.</strong> All rights
|
||||
<strong>Copyright © 2025 <a href="">卡盖亚网络</a>.</strong> All rights
|
||||
reserved.
|
||||
</footer>
|
||||
</template>
|
||||
|
@@ -4,9 +4,9 @@
|
||||
<!-- Logo -->
|
||||
<a class="logo">
|
||||
<!-- mini logo for sidebar mini 50x50 pixels -->
|
||||
<span class="logo-mini"><b>P</b>K</span>
|
||||
<span class="logo-mini"><b>M</b>S</span>
|
||||
<!-- logo for regular state and mobile devices -->
|
||||
<span class="logo-lg"><b>piko</b>管理系统</span>
|
||||
<span class="logo-lg"><b>MoliParty</b>管理系统</span>
|
||||
</a>
|
||||
<!-- Header Navbar: style can be found in header.less -->
|
||||
<nav class="navbar navbar-static-top" role="navigation">
|
||||
|
@@ -1,177 +1,253 @@
|
||||
<template>
|
||||
<!-- Left side column. contains the logo and sidebar -->
|
||||
<aside class="main-sidebar" style="height: 100%; overflow: hidden; overflow: scroll;">
|
||||
<!-- sidebar: style can be found in sidebar.less -->
|
||||
<section class="sidebar">
|
||||
<!-- Sidebar user panel (optional) -->
|
||||
<div class="user-panel">
|
||||
<div class="pull-left image">
|
||||
<img :src="avatar" class="img-circle" :alt="username">
|
||||
</div>
|
||||
<div class="pull-left info">
|
||||
<p>{{ username }}</p>
|
||||
<!-- Status -->
|
||||
<a href="#"><i class="fa fa-circle text-success"></i> Online</a>
|
||||
</div>
|
||||
</div>
|
||||
<!-- search form (Optional) -->
|
||||
<form method="get" class="sidebar-form" onsubmit="return false;">
|
||||
<div class="input-group">
|
||||
<input type="text" name="q" class="form-control" placeholder="Search..." @input="search">
|
||||
<span class="input-group-btn">
|
||||
<button name="search" id="search-btn" class="btn btn-flat" @click="search">
|
||||
<i class="fa fa-search"></i>
|
||||
</button>
|
||||
</span>
|
||||
</div>
|
||||
</form>
|
||||
<!-- /.search form -->
|
||||
<!-- Sidebar Menu -->
|
||||
<ul class="sidebar-menu">
|
||||
<li class="header">主导航</li>
|
||||
<!-- Optionally, you can add icons to the links -->
|
||||
<li v-for="(parent, parentIndex) in parentMenus" :key="parent" :data-index="parentIndex" class="treeview">
|
||||
<a>
|
||||
<i :class="[parent.icon ? parent.icon : 'fa fa-link']"></i>
|
||||
<span>{{ parent.name }}</span>
|
||||
<span class="label pull-right bg-yellow" :id="['ic' + parent.id]">
|
||||
{{ getChildLength(parent.id) }}
|
||||
</span>
|
||||
</a>
|
||||
<ul class="treeview-menu" :id="['menu' + parent.id]">
|
||||
<li v-for="(child, childIndex) in getChilds(parent.id)" :key="child" :data-index="childIndex">
|
||||
<a :data-url="child.path" @click="handleClick(child)">
|
||||
<i
|
||||
:class="[child.icon && child.icon != '' ? child.icon : 'fa fa-circle-o text-yellow']"></i>
|
||||
<span>{{ child.name }}</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<!-- /.sidebar-menu -->
|
||||
</section>
|
||||
<!-- /.sidebar -->
|
||||
</aside>
|
||||
<!-- Content Wrapper. Contains page content -->
|
||||
<div class="content-wrapper" style="height: 100%;">
|
||||
<!-- Content Header (Page header) -->
|
||||
<section class="content-header"
|
||||
:style="[childMenu.name && childMenu.name != '' ? 'display:block;' : 'display:none;']">
|
||||
<h1>
|
||||
{{ childMenu.name }}
|
||||
<small>{{ childMenu.description }}</small>
|
||||
</h1>
|
||||
<ol class="breadcrumb">
|
||||
<li><a href="#"><i class="fa fa-dashboard"></i> {{ childMenu.parentName }}</a></li>
|
||||
<li class="active">{{ childMenu.name }}</li>
|
||||
</ol>
|
||||
</section>
|
||||
<!-- Main content -->
|
||||
<section class="content">
|
||||
<!-- <section class="content" style="height: 100%; overflow: hidden; overflow: scroll;"> -->
|
||||
<!-- Your Page Content Here -->
|
||||
<component :is="componentName"></component>
|
||||
</section>
|
||||
<!-- /.content -->
|
||||
</div>
|
||||
<!-- /.content-wrapper -->
|
||||
<div class="modal fade" id="tipModal" tabindex="-1" role="dialog" aria-labelledby="modalLabel">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title">提示信息</h4>
|
||||
</div>
|
||||
<div class="modal-body" id="tipMsg"></div>
|
||||
</div>
|
||||
<!-- Left side column. contains the logo and sidebar -->
|
||||
<aside
|
||||
class="main-sidebar"
|
||||
style="height: 100%; overflow: hidden; overflow: scroll"
|
||||
>
|
||||
<!-- sidebar: style can be found in sidebar.less -->
|
||||
<section class="sidebar">
|
||||
<!-- Sidebar user panel (optional) -->
|
||||
<div class="user-panel">
|
||||
<div class="pull-left image">
|
||||
<img :src="avatar" class="img-circle" :alt="username" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal fade" id="confirmModal" tabindex="-1" role="dialog" aria-labelledby="modalLabel"
|
||||
data-backdrop="static">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title">确认信息</h4>
|
||||
</div>
|
||||
<div class="modal-body" id="confirmMsg"></div>
|
||||
</div>
|
||||
<div class="pull-left info">
|
||||
<p>{{ username }}</p>
|
||||
<!-- Status -->
|
||||
<a href="#"><i class="fa fa-circle text-success"></i> Online</a>
|
||||
</div>
|
||||
</div>
|
||||
<!-- search form (Optional) -->
|
||||
<form method="get" class="sidebar-form" onsubmit="return false;">
|
||||
<div class="input-group">
|
||||
<input
|
||||
type="text"
|
||||
name="q"
|
||||
class="form-control"
|
||||
placeholder="Search..."
|
||||
@input="search"
|
||||
/>
|
||||
<span class="input-group-btn">
|
||||
<button
|
||||
name="search"
|
||||
id="search-btn"
|
||||
class="btn btn-flat"
|
||||
@click="search"
|
||||
>
|
||||
<i class="fa fa-search"></i>
|
||||
</button>
|
||||
</span>
|
||||
</div>
|
||||
</form>
|
||||
<!-- /.search form -->
|
||||
<!-- Sidebar Menu -->
|
||||
<ul class="sidebar-menu">
|
||||
<li class="header">主导航</li>
|
||||
<!-- Optionally, you can add icons to the links -->
|
||||
<li
|
||||
v-for="(parent, parentIndex) in parentMenus"
|
||||
:key="parent"
|
||||
:data-index="parentIndex"
|
||||
class="treeview"
|
||||
>
|
||||
<a>
|
||||
<i :class="[parent.icon ? parent.icon : 'fa fa-link']"></i>
|
||||
<span>{{ parent.name }}</span>
|
||||
<span class="label pull-right bg-yellow" :id="['ic' + parent.id]">
|
||||
{{ getChildLength(parent.id) }}
|
||||
</span>
|
||||
</a>
|
||||
<ul class="treeview-menu" :id="['menu' + parent.id]">
|
||||
<li
|
||||
v-for="(child, childIndex) in getChilds(parent.id)"
|
||||
:key="child"
|
||||
:data-index="childIndex"
|
||||
>
|
||||
<a :data-url="child.path" @click="handleClick(child)">
|
||||
<i
|
||||
:class="[
|
||||
child.icon && child.icon != ''
|
||||
? child.icon
|
||||
: 'fa fa-circle-o text-yellow',
|
||||
]"
|
||||
></i>
|
||||
<span>{{ child.name }}</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<!-- /.sidebar-menu -->
|
||||
</section>
|
||||
<!-- /.sidebar -->
|
||||
</aside>
|
||||
<!-- Content Wrapper. Contains page content -->
|
||||
<div class="content-wrapper" style="height: 100%">
|
||||
<!-- Content Header (Page header) -->
|
||||
<section
|
||||
class="content-header"
|
||||
:style="[
|
||||
childMenu.name && childMenu.name != ''
|
||||
? 'display:block;'
|
||||
: 'display:none;',
|
||||
]"
|
||||
>
|
||||
<h1>
|
||||
{{ childMenu.name }}
|
||||
<small>{{ childMenu.description }}</small>
|
||||
</h1>
|
||||
<ol class="breadcrumb">
|
||||
<li>
|
||||
<a href="#"
|
||||
><i class="fa fa-dashboard"></i> {{ childMenu.parentName }}</a
|
||||
>
|
||||
</li>
|
||||
<li class="active">{{ childMenu.name }}</li>
|
||||
</ol>
|
||||
</section>
|
||||
<!-- Main content -->
|
||||
<section class="content">
|
||||
<!-- <section class="content" style="height: 100%; overflow: hidden; overflow: scroll;"> -->
|
||||
<!-- Your Page Content Here -->
|
||||
<component :is="componentName"></component>
|
||||
</section>
|
||||
<!-- /.content -->
|
||||
</div>
|
||||
<!-- /.content-wrapper -->
|
||||
<div
|
||||
class="modal fade"
|
||||
id="tipModal"
|
||||
tabindex="-1"
|
||||
role="dialog"
|
||||
aria-labelledby="modalLabel"
|
||||
>
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title">提示信息</h4>
|
||||
</div>
|
||||
<div class="modal-body" id="tipMsg"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal fade loading" style="background: #00000040;" tabindex="-1" role="dialog"
|
||||
aria-labelledby="loadingModalLabel" aria-hidden="true" data-backdrop="static" data-keyboard="false">
|
||||
<div class="loadingGif" style="position: fixed; left:50%; top:50%;"><img src="https://img.zcool.cn/community/0111345d94b0b8a801211d53cbd04d.gif" style="width: 10%;"></div>
|
||||
</div>
|
||||
<div
|
||||
class="modal fade"
|
||||
id="confirmModal"
|
||||
tabindex="-1"
|
||||
role="dialog"
|
||||
aria-labelledby="modalLabel"
|
||||
data-backdrop="static"
|
||||
>
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title">确认信息</h4>
|
||||
</div>
|
||||
<div class="modal-body" id="confirmMsg"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
class="modal fade loading"
|
||||
style="background: #00000040"
|
||||
tabindex="-1"
|
||||
role="dialog"
|
||||
aria-labelledby="loadingModalLabel"
|
||||
aria-hidden="true"
|
||||
data-backdrop="static"
|
||||
data-keyboard="false"
|
||||
>
|
||||
<div class="loadingGif" style="position: fixed; left: 50%; top: 50%">
|
||||
<img
|
||||
src="https://img.zcool.cn/community/0111345d94b0b8a801211d53cbd04d.gif"
|
||||
style="width: 10%"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import store from '@/store';
|
||||
import { getStore } from '@/utils/store';
|
||||
import store from "@/store";
|
||||
import Vue from "vue";
|
||||
import { getStore } from "@/utils/store";
|
||||
|
||||
export default {
|
||||
name: 'MaintainerView',
|
||||
data() {
|
||||
return {
|
||||
componentName: "",
|
||||
username: "",
|
||||
avatar: "",
|
||||
parentMenus: [],
|
||||
childMenus: [],
|
||||
childMenu: {
|
||||
name: "",
|
||||
parentName: "",
|
||||
description: "",
|
||||
}
|
||||
};
|
||||
name: "MaintainerView",
|
||||
data() {
|
||||
return {
|
||||
componentName: "",
|
||||
username: "",
|
||||
avatar: "",
|
||||
parentMenus: [],
|
||||
childMenus: [],
|
||||
childMenu: {
|
||||
name: "",
|
||||
parentName: "",
|
||||
description: "",
|
||||
},
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.getMenu();
|
||||
this.username = store.getters.username;
|
||||
this.avatar = store.getters.avatar;
|
||||
},
|
||||
methods: {
|
||||
getMenu() {
|
||||
this.parentMenus = getStore({ name: "parent_menus" });
|
||||
this.childMenus = getStore({ name: "child_menus" });
|
||||
store.dispatch("getMenu").then((res) => {
|
||||
this.parentMenus = res.parents;
|
||||
this.childMenus = res.childs;
|
||||
});
|
||||
},
|
||||
created() {
|
||||
this.getMenu();
|
||||
this.username = store.getters.username;
|
||||
this.avatar = store.getters.avatar;
|
||||
getChilds(parentId) {
|
||||
return this.childMenus.filter((v) => v.parentid == parentId);
|
||||
},
|
||||
methods: {
|
||||
getMenu() {
|
||||
this.parentMenus = getStore({ name: 'parent_menus' });
|
||||
this.childMenus = getStore({ name: 'child_menus' });
|
||||
store.dispatch('getMenu').then(res => {
|
||||
this.parentMenus = res.parents;
|
||||
this.childMenus = res.childs;
|
||||
});
|
||||
},
|
||||
getChilds(parentId) {
|
||||
return this.childMenus.filter(v => v.parentid == parentId);
|
||||
},
|
||||
getChildLength(parentId) {
|
||||
return this.childMenus.filter(v => v.parentid == parentId).length;
|
||||
},
|
||||
handleClick(menu) {
|
||||
this.childMenu.name = menu.name;
|
||||
this.childMenu.parentName = menu.parentstr;
|
||||
this.childMenu.description = menu.description;
|
||||
store.dispatch('getViewComponent', menu.path).then(componentName => {
|
||||
console.log(componentName);
|
||||
this.componentName = componentName;
|
||||
});
|
||||
},
|
||||
search() {
|
||||
let text = $("input[type='text']").val();
|
||||
this.childMenus = store.getters.childMenus.filter(v => v.name.indexOf(text) >= 0);
|
||||
if (!this.childMenus.length || this.childMenus.length == 0) {
|
||||
this.parentMenus = store.getters.parentMenus.filter(v => v.name.indexOf(text) >= 0);
|
||||
} else {
|
||||
let parentIds = this.childMenus.map(v => v.parentid);
|
||||
let parentMenus = store.getters.parentMenus.filter(v => v.name.indexOf(text) >= 0);
|
||||
if (parentMenus && parentMenus.length > 0) {
|
||||
parentMenus.forEach(v => {
|
||||
parentIds.push(v.id);
|
||||
});
|
||||
}
|
||||
this.parentMenus = store.getters.parentMenus.filter(v1 => parentIds.filter(v2 => v1.id == v2).length > 0);
|
||||
}
|
||||
getChildLength(parentId) {
|
||||
return this.childMenus.filter((v) => v.parentid == parentId).length;
|
||||
},
|
||||
handleClick(menu) {
|
||||
this.childMenu.name = menu.name;
|
||||
this.childMenu.parentName = menu.parentstr;
|
||||
this.childMenu.description = menu.description;
|
||||
store.dispatch("getViewComponent", menu.path).then((componentName) => {
|
||||
this.componentName = componentName;
|
||||
const files = require.context("@/views", true, /\.vue$/);
|
||||
let components = {};
|
||||
files.keys().forEach((key) => {
|
||||
components[key.replace(/(\.\/|\.vue)/g, "")] = files(key).default;
|
||||
});
|
||||
});
|
||||
},
|
||||
search() {
|
||||
let text = $("input[type='text']").val();
|
||||
this.childMenus = store.getters.childMenus.filter(
|
||||
(v) => v.name.indexOf(text) >= 0
|
||||
);
|
||||
if (!this.childMenus.length || this.childMenus.length == 0) {
|
||||
this.parentMenus = store.getters.parentMenus.filter(
|
||||
(v) => v.name.indexOf(text) >= 0
|
||||
);
|
||||
} else {
|
||||
let parentIds = this.childMenus.map((v) => v.parentid);
|
||||
let parentMenus = store.getters.parentMenus.filter(
|
||||
(v) => v.name.indexOf(text) >= 0
|
||||
);
|
||||
if (parentMenus && parentMenus.length > 0) {
|
||||
parentMenus.forEach((v) => {
|
||||
parentIds.push(v.id);
|
||||
});
|
||||
}
|
||||
this.parentMenus = store.getters.parentMenus.filter(
|
||||
(v1) => parentIds.filter((v2) => v1.id == v2).length > 0
|
||||
);
|
||||
}
|
||||
},
|
||||
}
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
@import '@/css/main.css';
|
||||
@import "@/css/main.css";
|
||||
</style>
|
@@ -1,8 +1,8 @@
|
||||
export default {
|
||||
KEY: "piko",
|
||||
EXCLUDES: [
|
||||
"/login/login.action",
|
||||
"/login/sendSmsCode.action",
|
||||
"/login/login",
|
||||
"/login/sendSmsCode",
|
||||
],
|
||||
NEED_LOGOUT: "needLogout",
|
||||
};
|
23
src/main.js
23
src/main.js
@@ -49,11 +49,28 @@ import '@/assets/plugins/bootstrap-treeview/js/bootstrap-treeview.min.js'
|
||||
|
||||
// @ts-ignore
|
||||
import components from '@/utils/components.js'
|
||||
|
||||
import Vue from 'vue';
|
||||
// import ElementPlus from 'element-plus'
|
||||
// import 'element-plus/dist/index.css'
|
||||
import '@/css/public.css'
|
||||
|
||||
import VueClipboard from 'vue-clipboard2'
|
||||
// import 'vue-clipboard2/dist/vue-clipboard.min.css'
|
||||
import { copy } from './utils/copy.js';
|
||||
const app = createApp(App)
|
||||
app.config.globalProperties.$copy = function (text) {
|
||||
copy(text, this);
|
||||
};
|
||||
// 全局错误处理
|
||||
window.onerror = function (message, source, lineno, colno, error) {
|
||||
console.log(error)
|
||||
// 判断是否是 'insertBefore' 错误
|
||||
if (error instanceof TypeError && message.includes('insertBefore')) {
|
||||
console.error('捕获到 TypeError 错误:', error);
|
||||
window.location.reload();
|
||||
// 你可以在这里处理错误,比如记录日志或执行其他操作
|
||||
return true; // 阻止浏览器默认的错误处理
|
||||
}
|
||||
return false; // 默认处理其他类型的错误
|
||||
};
|
||||
app.config.warnHandler = () => null;
|
||||
app.use(store).use(router).use(components).mount('#app')
|
||||
app.use(store).use(router).use(components).use(VueClipboard).mount('#app')
|
||||
|
81
src/mixin/mixRegion.js
Normal file
81
src/mixin/mixRegion.js
Normal file
@@ -0,0 +1,81 @@
|
||||
|
||||
// 公共混入 用户区服处理
|
||||
/**
|
||||
* 注意: 使用混入,在选择区服切换的时候会添加搜索的区服,
|
||||
* 所以页面data如果没有searchForm: { region: null }, 需要加上,否则查询searchForm为空
|
||||
*/
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
userRegion: JSON.parse(localStorage.getItem('user_region')),
|
||||
regionEnum: [
|
||||
{ value: 1, name: 'A区' },
|
||||
{ value: 2, name: 'B区' },
|
||||
{ value: 3, name: 'C区' },
|
||||
{ value: 4, name: 'D区' },
|
||||
{ value: 5, name: 'E区' },
|
||||
{ value: 6, name: 'F区' }
|
||||
],
|
||||
userAreaRegion: [], //拥有权限的区域列表
|
||||
region: null, //展示的区域
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.handleUserRegion()
|
||||
},
|
||||
methods: {
|
||||
handleUserRegion() {
|
||||
if (this.userRegion.length == 0) {
|
||||
this.$message.error({
|
||||
message: '请先联系管理员设置你的区服权限!',
|
||||
duration: 5000
|
||||
});
|
||||
return
|
||||
}
|
||||
this.userAreaRegion = this.regionEnum.filter(item => this.userRegion.includes(item.value));
|
||||
this.region = this.userAreaRegion[0].value;
|
||||
this.searchForm.region = this.region;
|
||||
console.log('当前查看区服:', this.region);
|
||||
},
|
||||
handSearchRegion() {
|
||||
if (this.$refs['searchForm']) { // 检查 this.$refs['searchForm'] 是否存在
|
||||
this.$refs['searchForm'].validate((valid) => {
|
||||
if (valid) {
|
||||
this.pageParams.pageNo = 1;
|
||||
this.getData();
|
||||
}
|
||||
});
|
||||
} else {
|
||||
this.pageParams.pageNo = 1;
|
||||
this.getData();
|
||||
}
|
||||
},
|
||||
},
|
||||
computed: {
|
||||
regionType() {
|
||||
const { regionEnum } = this;
|
||||
return function (value) {
|
||||
for (let item of regionEnum) {
|
||||
if (item.value === value) {
|
||||
return item.name;
|
||||
}
|
||||
}
|
||||
return '';
|
||||
};
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
region: {
|
||||
handler(newVal, oldVal) {
|
||||
this.searchForm.region = newVal;
|
||||
// 防止初始化重复调用查询表单接口
|
||||
if (oldVal != null) {
|
||||
this.handSearchRegion()
|
||||
}
|
||||
},
|
||||
// immediate: true, //立即监听
|
||||
},
|
||||
|
||||
}
|
||||
|
||||
}
|
@@ -51,6 +51,7 @@ export default {
|
||||
},
|
||||
getViewComponent(context, path) {
|
||||
let component = path;
|
||||
console.log(component)
|
||||
if (path && path.endsWith('.html')) {
|
||||
const pathArray = path.split('/');
|
||||
const routeName = toCamelCase(pathArray[pathArray.length - 1].replace('.html', ''));
|
||||
|
11
src/utils/copy.js
Normal file
11
src/utils/copy.js
Normal file
@@ -0,0 +1,11 @@
|
||||
|
||||
// copy.js
|
||||
export function copy(text, vueInstance) {
|
||||
vueInstance.$copyText(text)
|
||||
.then(() => {
|
||||
vueInstance.$message.success('已复制');
|
||||
})
|
||||
.catch(() => {
|
||||
vueInstance.$message.warning('复制失败');
|
||||
});
|
||||
}
|
684
src/utils/excel/Blob.js
Normal file
684
src/utils/excel/Blob.js
Normal file
@@ -0,0 +1,684 @@
|
||||
// /* Blob.js
|
||||
// * A Blob, File, FileReader & URL implementation.
|
||||
// * 2019-04-19
|
||||
// *
|
||||
// * By Eli Grey, http://eligrey.com
|
||||
// * By Jimmy Wärting, https://github.com/jimmywarting
|
||||
// * License: MIT
|
||||
// * See https://github.com/eligrey/Blob.js/blob/master/LICENSE.md
|
||||
// */
|
||||
|
||||
// ; (function () {
|
||||
// var global = typeof window === 'object'
|
||||
// ? window : typeof self === 'object'
|
||||
// ? self : this
|
||||
|
||||
// var BlobBuilder = global.BlobBuilder
|
||||
// || global.WebKitBlobBuilder
|
||||
// || global.MSBlobBuilder
|
||||
// || global.MozBlobBuilder
|
||||
|
||||
// global.URL = global.URL || global.webkitURL || function (href, a) {
|
||||
// a = document.createElement('a')
|
||||
// a.href = href
|
||||
// return a
|
||||
// }
|
||||
|
||||
// var origBlob = global.Blob
|
||||
// var createObjectURL = URL.createObjectURL
|
||||
// var revokeObjectURL = URL.revokeObjectURL
|
||||
// var strTag = global.Symbol && global.Symbol.toStringTag
|
||||
// var blobSupported = false
|
||||
// var blobSupportsArrayBufferView = false
|
||||
// var arrayBufferSupported = !!global.ArrayBuffer
|
||||
// var blobBuilderSupported = BlobBuilder
|
||||
// && BlobBuilder.prototype.append
|
||||
// && BlobBuilder.prototype.getBlob
|
||||
|
||||
// try {
|
||||
// // Check if Blob constructor is supported
|
||||
// blobSupported = new Blob(['ä']).size === 2
|
||||
|
||||
// // Check if Blob constructor supports ArrayBufferViews
|
||||
// // Fails in Safari 6, so we need to map to ArrayBuffers there.
|
||||
// blobSupportsArrayBufferView = new Blob([new Uint8Array([1, 2])]).size === 2
|
||||
// } catch (e) { }
|
||||
|
||||
// /**
|
||||
// * Helper function that maps ArrayBufferViews to ArrayBuffers
|
||||
// * Used by BlobBuilder constructor and old browsers that didn't
|
||||
// * support it in the Blob constructor.
|
||||
// */
|
||||
// function mapArrayBufferViews(ary) {
|
||||
// return ary.map(function (chunk) {
|
||||
// if (chunk.buffer instanceof ArrayBuffer) {
|
||||
// var buf = chunk.buffer
|
||||
|
||||
// // if this is a subarray, make a copy so we only
|
||||
// // include the subarray region from the underlying buffer
|
||||
// if (chunk.byteLength !== buf.byteLength) {
|
||||
// var copy = new Uint8Array(chunk.byteLength)
|
||||
// copy.set(new Uint8Array(buf, chunk.byteOffset, chunk.byteLength))
|
||||
// buf = copy.buffer
|
||||
// }
|
||||
|
||||
// return buf
|
||||
// }
|
||||
|
||||
// return chunk
|
||||
// })
|
||||
// }
|
||||
|
||||
// function BlobBuilderConstructor(ary, options) {
|
||||
// options = options || {}
|
||||
|
||||
// var bb = new BlobBuilder()
|
||||
// mapArrayBufferViews(ary).forEach(function (part) {
|
||||
// bb.append(part)
|
||||
// })
|
||||
|
||||
// return options.type ? bb.getBlob(options.type) : bb.getBlob()
|
||||
// }
|
||||
|
||||
// function BlobConstructor(ary, options) {
|
||||
// return new origBlob(mapArrayBufferViews(ary), options || {})
|
||||
// }
|
||||
|
||||
// if (global.Blob) {
|
||||
// BlobBuilderConstructor.prototype = Blob.prototype
|
||||
// BlobConstructor.prototype = Blob.prototype
|
||||
// }
|
||||
|
||||
|
||||
|
||||
// /********************************************************/
|
||||
// /* String Encoder fallback */
|
||||
// /********************************************************/
|
||||
// function stringEncode(string) {
|
||||
// var pos = 0
|
||||
// var len = string.length
|
||||
// var Arr = global.Uint8Array || Array // Use byte array when possible
|
||||
|
||||
// var at = 0 // output position
|
||||
// var tlen = Math.max(32, len + (len >> 1) + 7) // 1.5x size
|
||||
// var target = new Arr((tlen >> 3) << 3) // ... but at 8 byte offset
|
||||
|
||||
// while (pos < len) {
|
||||
// var value = string.charCodeAt(pos++)
|
||||
// if (value >= 0xd800 && value <= 0xdbff) {
|
||||
// // high surrogate
|
||||
// if (pos < len) {
|
||||
// var extra = string.charCodeAt(pos)
|
||||
// if ((extra & 0xfc00) === 0xdc00) {
|
||||
// ++pos
|
||||
// value = ((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000
|
||||
// }
|
||||
// }
|
||||
// if (value >= 0xd800 && value <= 0xdbff) {
|
||||
// continue // drop lone surrogate
|
||||
// }
|
||||
// }
|
||||
|
||||
// // expand the buffer if we couldn't write 4 bytes
|
||||
// if (at + 4 > target.length) {
|
||||
// tlen += 8 // minimum extra
|
||||
// tlen *= (1.0 + (pos / string.length) * 2) // take 2x the remaining
|
||||
// tlen = (tlen >> 3) << 3 // 8 byte offset
|
||||
|
||||
// var update = new Uint8Array(tlen)
|
||||
// update.set(target)
|
||||
// target = update
|
||||
// }
|
||||
|
||||
// if ((value & 0xffffff80) === 0) { // 1-byte
|
||||
// target[at++] = value // ASCII
|
||||
// continue
|
||||
// } else if ((value & 0xfffff800) === 0) { // 2-byte
|
||||
// target[at++] = ((value >> 6) & 0x1f) | 0xc0
|
||||
// } else if ((value & 0xffff0000) === 0) { // 3-byte
|
||||
// target[at++] = ((value >> 12) & 0x0f) | 0xe0
|
||||
// target[at++] = ((value >> 6) & 0x3f) | 0x80
|
||||
// } else if ((value & 0xffe00000) === 0) { // 4-byte
|
||||
// target[at++] = ((value >> 18) & 0x07) | 0xf0
|
||||
// target[at++] = ((value >> 12) & 0x3f) | 0x80
|
||||
// target[at++] = ((value >> 6) & 0x3f) | 0x80
|
||||
// } else {
|
||||
// // FIXME: do we care
|
||||
// continue
|
||||
// }
|
||||
|
||||
// target[at++] = (value & 0x3f) | 0x80
|
||||
// }
|
||||
|
||||
// return target.slice(0, at)
|
||||
// }
|
||||
|
||||
// /********************************************************/
|
||||
// /* String Decoder fallback */
|
||||
// /********************************************************/
|
||||
// function stringDecode(buf) {
|
||||
// var end = buf.length
|
||||
// var res = []
|
||||
|
||||
// var i = 0
|
||||
// while (i < end) {
|
||||
// var firstByte = buf[i]
|
||||
// var codePoint = null
|
||||
// var bytesPerSequence = (firstByte > 0xEF) ? 4
|
||||
// : (firstByte > 0xDF) ? 3
|
||||
// : (firstByte > 0xBF) ? 2
|
||||
// : 1
|
||||
|
||||
// if (i + bytesPerSequence <= end) {
|
||||
// var secondByte, thirdByte, fourthByte, tempCodePoint
|
||||
|
||||
// switch (bytesPerSequence) {
|
||||
// case 1:
|
||||
// if (firstByte < 0x80) {
|
||||
// codePoint = firstByte
|
||||
// }
|
||||
// break
|
||||
// case 2:
|
||||
// secondByte = buf[i + 1]
|
||||
// if ((secondByte & 0xC0) === 0x80) {
|
||||
// tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)
|
||||
// if (tempCodePoint > 0x7F) {
|
||||
// codePoint = tempCodePoint
|
||||
// }
|
||||
// }
|
||||
// break
|
||||
// case 3:
|
||||
// secondByte = buf[i + 1]
|
||||
// thirdByte = buf[i + 2]
|
||||
// if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {
|
||||
// tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)
|
||||
// if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {
|
||||
// codePoint = tempCodePoint
|
||||
// }
|
||||
// }
|
||||
// break
|
||||
// case 4:
|
||||
// secondByte = buf[i + 1]
|
||||
// thirdByte = buf[i + 2]
|
||||
// fourthByte = buf[i + 3]
|
||||
// if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {
|
||||
// tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)
|
||||
// if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {
|
||||
// codePoint = tempCodePoint
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
// if (codePoint === null) {
|
||||
// // we did not generate a valid codePoint so insert a
|
||||
// // replacement char (U+FFFD) and advance only 1 byte
|
||||
// codePoint = 0xFFFD
|
||||
// bytesPerSequence = 1
|
||||
// } else if (codePoint > 0xFFFF) {
|
||||
// // encode to utf16 (surrogate pair dance)
|
||||
// codePoint -= 0x10000
|
||||
// res.push(codePoint >>> 10 & 0x3FF | 0xD800)
|
||||
// codePoint = 0xDC00 | codePoint & 0x3FF
|
||||
// }
|
||||
|
||||
// res.push(codePoint)
|
||||
// i += bytesPerSequence
|
||||
// }
|
||||
|
||||
// var len = res.length
|
||||
// var str = ''
|
||||
// var i = 0
|
||||
|
||||
// while (i < len) {
|
||||
// str += String.fromCharCode.apply(String, res.slice(i, i += 0x1000))
|
||||
// }
|
||||
|
||||
// return str
|
||||
// }
|
||||
|
||||
// // string -> buffer
|
||||
// var textEncode = typeof TextEncoder === 'function'
|
||||
// ? TextEncoder.prototype.encode.bind(new TextEncoder())
|
||||
// : stringEncode
|
||||
|
||||
// // buffer -> string
|
||||
// var textDecode = typeof TextDecoder === 'function'
|
||||
// ? TextDecoder.prototype.decode.bind(new TextDecoder())
|
||||
// : stringDecode
|
||||
|
||||
// function FakeBlobBuilder() {
|
||||
// function isDataView(obj) {
|
||||
// return obj && DataView.prototype.isPrototypeOf(obj)
|
||||
// }
|
||||
// function bufferClone(buf) {
|
||||
// var view = new Array(buf.byteLength)
|
||||
// var array = new Uint8Array(buf)
|
||||
// var i = view.length
|
||||
// while (i--) {
|
||||
// view[i] = array[i]
|
||||
// }
|
||||
// return view
|
||||
// }
|
||||
// function array2base64(input) {
|
||||
// var byteToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='
|
||||
|
||||
// var output = []
|
||||
|
||||
// for (var i = 0; i < input.length; i += 3) {
|
||||
// var byte1 = input[i]
|
||||
// var haveByte2 = i + 1 < input.length
|
||||
// var byte2 = haveByte2 ? input[i + 1] : 0
|
||||
// var haveByte3 = i + 2 < input.length
|
||||
// var byte3 = haveByte3 ? input[i + 2] : 0
|
||||
|
||||
// var outByte1 = byte1 >> 2
|
||||
// var outByte2 = ((byte1 & 0x03) << 4) | (byte2 >> 4)
|
||||
// var outByte3 = ((byte2 & 0x0F) << 2) | (byte3 >> 6)
|
||||
// var outByte4 = byte3 & 0x3F
|
||||
|
||||
// if (!haveByte3) {
|
||||
// outByte4 = 64
|
||||
|
||||
// if (!haveByte2) {
|
||||
// outByte3 = 64
|
||||
// }
|
||||
// }
|
||||
|
||||
// output.push(
|
||||
// byteToCharMap[outByte1], byteToCharMap[outByte2],
|
||||
// byteToCharMap[outByte3], byteToCharMap[outByte4]
|
||||
// )
|
||||
// }
|
||||
|
||||
// return output.join('')
|
||||
// }
|
||||
|
||||
// var create = Object.create || function (a) {
|
||||
// function c() { }
|
||||
// c.prototype = a
|
||||
// return new c()
|
||||
// }
|
||||
|
||||
// if (arrayBufferSupported) {
|
||||
// var viewClasses = [
|
||||
// '[object Int8Array]',
|
||||
// '[object Uint8Array]',
|
||||
// '[object Uint8ClampedArray]',
|
||||
// '[object Int16Array]',
|
||||
// '[object Uint16Array]',
|
||||
// '[object Int32Array]',
|
||||
// '[object Uint32Array]',
|
||||
// '[object Float32Array]',
|
||||
// '[object Float64Array]'
|
||||
// ]
|
||||
|
||||
// var isArrayBufferView = ArrayBuffer.isView || function (obj) {
|
||||
// return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1
|
||||
// }
|
||||
// }
|
||||
|
||||
// function concatTypedarrays(chunks) {
|
||||
// var size = 0
|
||||
// var i = chunks.length
|
||||
// while (i--) { size += chunks[i].length }
|
||||
// var b = new Uint8Array(size)
|
||||
// var offset = 0
|
||||
// for (i = 0, l = chunks.length; i < l; i++) {
|
||||
// var chunk = chunks[i]
|
||||
// b.set(chunk, offset)
|
||||
// offset += chunk.byteLength || chunk.length
|
||||
// }
|
||||
|
||||
// return b
|
||||
// }
|
||||
|
||||
// /********************************************************/
|
||||
// /* Blob constructor */
|
||||
// /********************************************************/
|
||||
// function Blob(chunks, opts) {
|
||||
// chunks = chunks || []
|
||||
// opts = opts == null ? {} : opts
|
||||
// for (var i = 0, len = chunks.length; i < len; i++) {
|
||||
// var chunk = chunks[i]
|
||||
// if (chunk instanceof Blob) {
|
||||
// chunks[i] = chunk._buffer
|
||||
// } else if (typeof chunk === 'string') {
|
||||
// chunks[i] = textEncode(chunk)
|
||||
// } else if (arrayBufferSupported && (ArrayBuffer.prototype.isPrototypeOf(chunk) || isArrayBufferView(chunk))) {
|
||||
// chunks[i] = bufferClone(chunk)
|
||||
// } else if (arrayBufferSupported && isDataView(chunk)) {
|
||||
// chunks[i] = bufferClone(chunk.buffer)
|
||||
// } else {
|
||||
// chunks[i] = textEncode(String(chunk))
|
||||
// }
|
||||
// }
|
||||
|
||||
// this._buffer = global.Uint8Array
|
||||
// ? concatTypedarrays(chunks)
|
||||
// : [].concat.apply([], chunks)
|
||||
// this.size = this._buffer.length
|
||||
|
||||
// this.type = opts.type || ''
|
||||
// if (/[^\u0020-\u007E]/.test(this.type)) {
|
||||
// this.type = ''
|
||||
// } else {
|
||||
// this.type = this.type.toLowerCase()
|
||||
// }
|
||||
// }
|
||||
|
||||
// Blob.prototype.arrayBuffer = function () {
|
||||
// return Promise.resolve(this._buffer)
|
||||
// }
|
||||
|
||||
// Blob.prototype.text = function () {
|
||||
// return Promise.resolve(textDecode(this._buffer))
|
||||
// }
|
||||
|
||||
// Blob.prototype.slice = function (start, end, type) {
|
||||
// var slice = this._buffer.slice(start || 0, end || this._buffer.length)
|
||||
// return new Blob([slice], { type: type })
|
||||
// }
|
||||
|
||||
// Blob.prototype.toString = function () {
|
||||
// return '[object Blob]'
|
||||
// }
|
||||
|
||||
// /********************************************************/
|
||||
// /* File constructor */
|
||||
// /********************************************************/
|
||||
// function File(chunks, name, opts) {
|
||||
// opts = opts || {}
|
||||
// var a = Blob.call(this, chunks, opts) || this
|
||||
// a.name = name.replace(/\//g, ':')
|
||||
// a.lastModifiedDate = opts.lastModified ? new Date(opts.lastModified) : new Date()
|
||||
// a.lastModified = +a.lastModifiedDate
|
||||
|
||||
// return a
|
||||
// }
|
||||
|
||||
// File.prototype = create(Blob.prototype)
|
||||
// File.prototype.constructor = File
|
||||
|
||||
// if (Object.setPrototypeOf) {
|
||||
// Object.setPrototypeOf(File, Blob)
|
||||
// } else {
|
||||
// try { File.__proto__ = Blob } catch (e) { }
|
||||
// }
|
||||
|
||||
// File.prototype.toString = function () {
|
||||
// return '[object File]'
|
||||
// }
|
||||
|
||||
// /********************************************************/
|
||||
// /* FileReader constructor */
|
||||
// /********************************************************/
|
||||
// function FileReader() {
|
||||
// if (!(this instanceof FileReader)) {
|
||||
// throw new TypeError("Failed to construct 'FileReader': Please use the 'new' operator, this DOM object constructor cannot be called as a function.")
|
||||
// }
|
||||
|
||||
// var delegate = document.createDocumentFragment()
|
||||
// this.addEventListener = delegate.addEventListener
|
||||
// this.dispatchEvent = function (evt) {
|
||||
// var local = this['on' + evt.type]
|
||||
// if (typeof local === 'function') local(evt)
|
||||
// delegate.dispatchEvent(evt)
|
||||
// }
|
||||
// this.removeEventListener = delegate.removeEventListener
|
||||
// }
|
||||
|
||||
// function _read(fr, blob, kind) {
|
||||
// if (!(blob instanceof Blob)) {
|
||||
// throw new TypeError("Failed to execute '" + kind + "' on 'FileReader': parameter 1 is not of type 'Blob'.")
|
||||
// }
|
||||
|
||||
// fr.result = ''
|
||||
|
||||
// setTimeout(function () {
|
||||
// this.readyState = FileReader.LOADING
|
||||
// fr.dispatchEvent(new Event('load'))
|
||||
// fr.dispatchEvent(new Event('loadend'))
|
||||
// })
|
||||
// }
|
||||
|
||||
// FileReader.EMPTY = 0
|
||||
// FileReader.LOADING = 1
|
||||
// FileReader.DONE = 2
|
||||
// FileReader.prototype.error = null
|
||||
// FileReader.prototype.onabort = null
|
||||
// FileReader.prototype.onerror = null
|
||||
// FileReader.prototype.onload = null
|
||||
// FileReader.prototype.onloadend = null
|
||||
// FileReader.prototype.onloadstart = null
|
||||
// FileReader.prototype.onprogress = null
|
||||
|
||||
// FileReader.prototype.readAsDataURL = function (blob) {
|
||||
// _read(this, blob, 'readAsDataURL')
|
||||
// this.result = 'data:' + blob.type + ';base64,' + array2base64(blob._buffer)
|
||||
// }
|
||||
|
||||
// FileReader.prototype.readAsText = function (blob) {
|
||||
// _read(this, blob, 'readAsText')
|
||||
// this.result = textDecode(blob._buffer)
|
||||
// }
|
||||
|
||||
// FileReader.prototype.readAsArrayBuffer = function (blob) {
|
||||
// _read(this, blob, 'readAsText')
|
||||
// // return ArrayBuffer when possible
|
||||
// this.result = (blob._buffer.buffer || blob._buffer).slice()
|
||||
// }
|
||||
|
||||
// FileReader.prototype.abort = function () { }
|
||||
|
||||
// /********************************************************/
|
||||
// /* URL */
|
||||
// /********************************************************/
|
||||
// URL.createObjectURL = function (blob) {
|
||||
// return blob instanceof Blob
|
||||
// ? 'data:' + blob.type + ';base64,' + array2base64(blob._buffer)
|
||||
// : createObjectURL.call(URL, blob)
|
||||
// }
|
||||
|
||||
// URL.revokeObjectURL = function (url) {
|
||||
// revokeObjectURL && revokeObjectURL.call(URL, url)
|
||||
// }
|
||||
|
||||
// /********************************************************/
|
||||
// /* XHR */
|
||||
// /********************************************************/
|
||||
// var _send = global.XMLHttpRequest && global.XMLHttpRequest.prototype.send
|
||||
// if (_send) {
|
||||
// XMLHttpRequest.prototype.send = function (data) {
|
||||
// if (data instanceof Blob) {
|
||||
// this.setRequestHeader('Content-Type', data.type)
|
||||
// _send.call(this, textDecode(data._buffer))
|
||||
// } else {
|
||||
// _send.call(this, data)
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
// global.FileReader = FileReader
|
||||
// global.File = File
|
||||
// global.Blob = Blob
|
||||
// }
|
||||
|
||||
// function fixFileAndXHR() {
|
||||
// var isIE = !!global.ActiveXObject || (
|
||||
// '-ms-scroll-limit' in document.documentElement.style &&
|
||||
// '-ms-ime-align' in document.documentElement.style
|
||||
// )
|
||||
|
||||
// // Monkey patched
|
||||
// // IE don't set Content-Type header on XHR whose body is a typed Blob
|
||||
// // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/6047383
|
||||
// var _send = global.XMLHttpRequest && global.XMLHttpRequest.prototype.send
|
||||
// if (isIE && _send) {
|
||||
// XMLHttpRequest.prototype.send = function (data) {
|
||||
// if (data instanceof Blob) {
|
||||
// this.setRequestHeader('Content-Type', data.type)
|
||||
// _send.call(this, data)
|
||||
// } else {
|
||||
// _send.call(this, data)
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
// try {
|
||||
// new File([], '')
|
||||
// } catch (e) {
|
||||
// try {
|
||||
// var klass = new Function('class File extends Blob {' +
|
||||
// 'constructor(chunks, name, opts) {' +
|
||||
// 'opts = opts || {};' +
|
||||
// 'super(chunks, opts || {});' +
|
||||
// 'this.name = name.replace(/\//g, ":");' +
|
||||
// 'this.lastModifiedDate = opts.lastModified ? new Date(opts.lastModified) : new Date();' +
|
||||
// 'this.lastModified = +this.lastModifiedDate;' +
|
||||
// '}};' +
|
||||
// 'return new File([], ""), File'
|
||||
// )()
|
||||
// global.File = klass
|
||||
// } catch (e) {
|
||||
// var klass = function (b, d, c) {
|
||||
// var blob = new Blob(b, c)
|
||||
// var t = c && void 0 !== c.lastModified ? new Date(c.lastModified) : new Date()
|
||||
|
||||
// blob.name = d.replace(/\//g, ':')
|
||||
// blob.lastModifiedDate = t
|
||||
// blob.lastModified = +t
|
||||
// blob.toString = function () {
|
||||
// return '[object File]'
|
||||
// }
|
||||
|
||||
// if (strTag) {
|
||||
// blob[strTag] = 'File'
|
||||
// }
|
||||
|
||||
// return blob
|
||||
// }
|
||||
// global.File = klass
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
// if (blobSupported) {
|
||||
// fixFileAndXHR()
|
||||
// global.Blob = blobSupportsArrayBufferView ? global.Blob : BlobConstructor
|
||||
// } else if (blobBuilderSupported) {
|
||||
// fixFileAndXHR()
|
||||
// global.Blob = BlobBuilderConstructor
|
||||
// } else {
|
||||
// FakeBlobBuilder()
|
||||
// }
|
||||
|
||||
// if (strTag) {
|
||||
// File.prototype[strTag] = 'File'
|
||||
// Blob.prototype[strTag] = 'Blob'
|
||||
// FileReader.prototype[strTag] = 'FileReader'
|
||||
// }
|
||||
|
||||
// var blob = global.Blob.prototype
|
||||
// var stream
|
||||
|
||||
// function promisify(obj) {
|
||||
// return new Promise(function (resolve, reject) {
|
||||
// obj.onload =
|
||||
// obj.onerror = function (evt) {
|
||||
// obj.onload =
|
||||
// obj.onerror = null
|
||||
|
||||
// evt.type === 'load'
|
||||
// ? resolve(obj.result || obj)
|
||||
// : reject(new Error('Failed to read the blob/file'))
|
||||
// }
|
||||
// })
|
||||
// }
|
||||
|
||||
|
||||
// try {
|
||||
// new ReadableStream({ type: 'bytes' })
|
||||
// stream = function stream() {
|
||||
// var position = 0
|
||||
// var blob = this
|
||||
|
||||
// return new ReadableStream({
|
||||
// type: 'bytes',
|
||||
// autoAllocateChunkSize: 524288,
|
||||
|
||||
// pull: function (controller) {
|
||||
// var v = controller.byobRequest.view
|
||||
// var chunk = blob.slice(position, position + v.byteLength)
|
||||
// return chunk.arrayBuffer()
|
||||
// .then(function (buffer) {
|
||||
// var uint8array = new Uint8Array(buffer)
|
||||
// var bytesRead = uint8array.byteLength
|
||||
|
||||
// position += bytesRead
|
||||
// v.set(uint8array)
|
||||
// controller.byobRequest.respond(bytesRead)
|
||||
|
||||
// if (position >= blob.size)
|
||||
// controller.close()
|
||||
// })
|
||||
// }
|
||||
// })
|
||||
// }
|
||||
// } catch (e) {
|
||||
// try {
|
||||
// new ReadableStream({})
|
||||
// stream = function stream(blob) {
|
||||
// var position = 0
|
||||
// var blob = this
|
||||
|
||||
// return new ReadableStream({
|
||||
// pull: function (controller) {
|
||||
// var chunk = blob.slice(position, position + 524288)
|
||||
|
||||
// return chunk.arrayBuffer().then(function (buffer) {
|
||||
// position += buffer.byteLength
|
||||
// var uint8array = new Uint8Array(buffer)
|
||||
// controller.enqueue(uint8array)
|
||||
|
||||
// if (position == blob.size)
|
||||
// controller.close()
|
||||
// })
|
||||
// }
|
||||
// })
|
||||
// }
|
||||
// } catch (e) {
|
||||
// try {
|
||||
// new Response('').body.getReader().read()
|
||||
// stream = function stream() {
|
||||
// return (new Response(this)).body
|
||||
// }
|
||||
// } catch (e) {
|
||||
// stream = function stream() {
|
||||
// throw new Error('Include https://github.com/MattiasBuelens/web-streams-polyfill')
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
// if (!blob.arrayBuffer) {
|
||||
// blob.arrayBuffer = function arrayBuffer() {
|
||||
// var fr = new FileReader()
|
||||
// fr.readAsArrayBuffer(this)
|
||||
// return promisify(fr)
|
||||
// }
|
||||
// }
|
||||
|
||||
// if (!blob.text) {
|
||||
// blob.text = function text() {
|
||||
// var fr = new FileReader()
|
||||
// fr.readAsText(this)
|
||||
// return promisify(fr)
|
||||
// }
|
||||
// }
|
||||
|
||||
// if (!blob.stream) {
|
||||
// blob.stream = stream
|
||||
// }
|
||||
// })()
|
141
src/utils/excel/Export2Excel.js
Normal file
141
src/utils/excel/Export2Excel.js
Normal file
@@ -0,0 +1,141 @@
|
||||
/* eslint-disable */
|
||||
require('script-loader!file-saver');
|
||||
// require('script-loader!./Blob.js');
|
||||
require('script-loader!xlsx/dist/xlsx.core.min');
|
||||
function generateArray(table) {
|
||||
var out = [];
|
||||
var rows = table.querySelectorAll('tr');
|
||||
var ranges = [];
|
||||
for (var R = 0; R < rows.length; ++R) {
|
||||
var outRow = [];
|
||||
var row = rows[R];
|
||||
var columns = row.querySelectorAll('td');
|
||||
for (var C = 0; C < columns.length; ++C) {
|
||||
var cell = columns[C];
|
||||
var colspan = cell.getAttribute('colspan');
|
||||
var rowspan = cell.getAttribute('rowspan');
|
||||
var cellValue = cell.innerText;
|
||||
if (cellValue !== "" && cellValue == +cellValue) cellValue = +cellValue;
|
||||
|
||||
//Skip ranges
|
||||
ranges.forEach(function (range) {
|
||||
if (R >= range.s.r && R <= range.e.r && outRow.length >= range.s.c && outRow.length <= range.e.c) {
|
||||
for (var i = 0; i <= range.e.c - range.s.c; ++i) outRow.push(null);
|
||||
}
|
||||
});
|
||||
|
||||
//Handle Row Span
|
||||
if (rowspan || colspan) {
|
||||
rowspan = rowspan || 1;
|
||||
colspan = colspan || 1;
|
||||
ranges.push({s: {r: R, c: outRow.length}, e: {r: R + rowspan - 1, c: outRow.length + colspan - 1}});
|
||||
}
|
||||
;
|
||||
|
||||
//Handle Value
|
||||
outRow.push(cellValue !== "" ? cellValue : null);
|
||||
|
||||
//Handle Colspan
|
||||
if (colspan) for (var k = 0; k < colspan - 1; ++k) outRow.push(null);
|
||||
}
|
||||
out.push(outRow);
|
||||
}
|
||||
return [out, ranges];
|
||||
};
|
||||
|
||||
function datenum(v, date1904) {
|
||||
if (date1904) v += 1462;
|
||||
var epoch = Date.parse(v);
|
||||
return (epoch - new Date(Date.UTC(1899, 11, 30))) / (24 * 60 * 60 * 1000);
|
||||
}
|
||||
|
||||
function sheet_from_array_of_arrays(data, opts) {
|
||||
var ws = {};
|
||||
var range = {s: {c: 10000000, r: 10000000}, e: {c: 0, r: 0}};
|
||||
for (var R = 0; R != data.length; ++R) {
|
||||
for (var C = 0; C != data[R].length; ++C) {
|
||||
if (range.s.r > R) range.s.r = R;
|
||||
if (range.s.c > C) range.s.c = C;
|
||||
if (range.e.r < R) range.e.r = R;
|
||||
if (range.e.c < C) range.e.c = C;
|
||||
var cell = {v: data[R][C]};
|
||||
if (cell.v == null) continue;
|
||||
var cell_ref = XLSX.utils.encode_cell({c: C, r: R});
|
||||
|
||||
if (typeof cell.v === 'number') cell.t = 'n';
|
||||
else if (typeof cell.v === 'boolean') cell.t = 'b';
|
||||
else if (cell.v instanceof Date) {
|
||||
cell.t = 'n';
|
||||
cell.z = XLSX.SSF._table[14];
|
||||
cell.v = datenum(cell.v);
|
||||
}
|
||||
else cell.t = 's';
|
||||
|
||||
ws[cell_ref] = cell;
|
||||
}
|
||||
}
|
||||
if (range.s.c < 10000000) ws['!ref'] = XLSX.utils.encode_range(range);
|
||||
return ws;
|
||||
}
|
||||
|
||||
function Workbook() {
|
||||
if (!(this instanceof Workbook)) return new Workbook();
|
||||
this.SheetNames = [];
|
||||
this.Sheets = {};
|
||||
}
|
||||
|
||||
function s2ab(s) {
|
||||
var buf = new ArrayBuffer(s.length);
|
||||
var view = new Uint8Array(buf);
|
||||
for (var i = 0; i != s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF;
|
||||
return buf;
|
||||
}
|
||||
|
||||
export function export_table_to_excel(id) {
|
||||
var theTable = document.getElementById(id);
|
||||
console.log('a')
|
||||
var oo = generateArray(theTable);
|
||||
var ranges = oo[1];
|
||||
|
||||
/* original data */
|
||||
var data = oo[0];
|
||||
var ws_name = "SheetJS";
|
||||
console.log(data);
|
||||
|
||||
var wb = new Workbook(), ws = sheet_from_array_of_arrays(data);
|
||||
|
||||
/* add ranges to worksheet */
|
||||
// ws['!cols'] = ['apple', 'banan'];
|
||||
ws['!merges'] = ranges;
|
||||
|
||||
/* add worksheet to workbook */
|
||||
wb.SheetNames.push(ws_name);
|
||||
wb.Sheets[ws_name] = ws;
|
||||
|
||||
var wbout = XLSX.write(wb, {bookType: 'xlsx', bookSST: false, type: 'binary'});
|
||||
|
||||
saveAs(new Blob([s2ab(wbout)], {type: "application/octet-stream"}), "test.xlsx")
|
||||
}
|
||||
|
||||
function formatJson(jsonData) {
|
||||
console.log(jsonData)
|
||||
}
|
||||
export function export_json_to_excel(th, jsonData, defaultTitle) {
|
||||
|
||||
/* original data */
|
||||
|
||||
var data = jsonData;
|
||||
data.unshift(th);
|
||||
var ws_name = "SheetJS";
|
||||
|
||||
var wb = new Workbook(), ws = sheet_from_array_of_arrays(data);
|
||||
|
||||
|
||||
/* add worksheet to workbook */
|
||||
wb.SheetNames.push(ws_name);
|
||||
wb.Sheets[ws_name] = ws;
|
||||
|
||||
var wbout = XLSX.write(wb, {bookType: 'xlsx', bookSST: false, type: 'binary'});
|
||||
var title = defaultTitle || '列表'
|
||||
saveAs(new Blob([s2ab(wbout)], {type: "application/octet-stream"}), title + ".xlsx")
|
||||
}
|
11
src/utils/exportExcel.js
Normal file
11
src/utils/exportExcel.js
Normal file
@@ -0,0 +1,11 @@
|
||||
function formatJson(filterVal, jsonData) {
|
||||
return jsonData.map(v => filterVal.map(j => v[j]));
|
||||
}
|
||||
|
||||
export const exportExcel = (tHeader, filterVal, data, excelName) => {
|
||||
require.ensure([], () => {
|
||||
const { export_json_to_excel } = require('./excel/Export2Excel.js');
|
||||
const combineData = formatJson(filterVal, data);
|
||||
export_json_to_excel(tHeader, combineData, excelName);
|
||||
});
|
||||
}
|
@@ -3,7 +3,7 @@ export const notifyNotice = () => {
|
||||
console.log(window.Notification.permission);
|
||||
if (window.Notification) {
|
||||
$.ajax({
|
||||
url: "/admin/dynamic/verify/notifySwitch.action",
|
||||
url: "/admin/dynamic/verify/notifySwitch",
|
||||
success: function (json) {
|
||||
if (json == 'true') {
|
||||
notifyInterval = setInterval(notify, 50000);
|
||||
@@ -17,7 +17,7 @@ export const notifyNotice = () => {
|
||||
|
||||
function notify() {
|
||||
$.ajax({
|
||||
url: "/admin/dynamic/verify/notify.action",
|
||||
url: "/admin/dynamic/verify/notify",
|
||||
success: function (json) {
|
||||
if (json != null && json != "" && json != undefined && json != 'undefined') {
|
||||
var dynamicCount = json.dynamic;
|
||||
|
22
src/utils/partitionDesc.js
Normal file
22
src/utils/partitionDesc.js
Normal file
@@ -0,0 +1,22 @@
|
||||
const partitionInfoMap = {
|
||||
1: '英语区',
|
||||
2: '阿拉伯语区',
|
||||
4: '华语区',
|
||||
8: '土耳其区',
|
||||
16: '英语2区',
|
||||
32: '独联体',
|
||||
}
|
||||
|
||||
export const partitionDesc = (val) => {
|
||||
return Object.keys(partitionInfoMap).filter(k=>{
|
||||
return(Number(val) & Number(k)) != 0
|
||||
}).map(k=>partitionInfoMap[k]).join(",");
|
||||
}
|
||||
|
||||
export const partitionIdArr = (val) => {
|
||||
var arr =[];
|
||||
Object.keys(partitionInfoMap).filter(k=>{
|
||||
return(Number(val) & Number(k)) != 0
|
||||
}).map(k=>arr.push(Number(k)));
|
||||
return arr
|
||||
}
|
107
src/utils/relDate.js
Normal file
107
src/utils/relDate.js
Normal file
@@ -0,0 +1,107 @@
|
||||
export const formatDate = (value) => {
|
||||
let timezone = 3; //目标时区时间,东3区(东时区正数 西时区负数)
|
||||
let offset_GMT = new Date(value).getTimezoneOffset(); // 本地时间和格林威治的时间差,单位为分钟
|
||||
let nowDate = new Date(value).getTime(); // 本地时间距 1970 年 1 月 1 日午夜(GMT 时间)之间的毫秒数
|
||||
let date = new Date(nowDate + offset_GMT * 60 * 1000 + timezone * 60 * 60 * 1000);
|
||||
|
||||
// 提取年、月、日、小时、分钟和秒
|
||||
let y = date.getFullYear();
|
||||
let MM = date.getMonth() + 1;
|
||||
MM = MM < 10 ? ('0' + MM) : MM;
|
||||
let d = date.getDate();
|
||||
d = d < 10 ? ('0' + d) : d;
|
||||
let h = date.getHours();
|
||||
h = h < 10 ? ('0' + h) : h;
|
||||
let m = date.getMinutes();
|
||||
m = m < 10 ? ('0' + m) : m;
|
||||
let s = date.getSeconds();
|
||||
s = s < 10 ? ('0' + s) : s;
|
||||
return `${y}-${MM}-${d} ${h}:${m}:${s}`;
|
||||
}
|
||||
|
||||
export const formatDate2 = (value) => {
|
||||
let timezone = 3; //目标时区时间,东3区(东时区正数 西时区负数)
|
||||
let offset_GMT = new Date(value).getTimezoneOffset(); // 本地时间和格林威治的时间差,单位为分钟
|
||||
let nowDate = new Date(value).getTime(); // 本地时间距 1970 年 1 月 1 日午夜(GMT 时间)之间的毫秒数
|
||||
let date = new Date(nowDate + offset_GMT * 60 * 1000 + timezone * 60 * 60 * 1000);
|
||||
|
||||
let y = date.getFullYear();
|
||||
let MM = date.getMonth() + 1;
|
||||
MM = MM < 10 ? ('0' + MM) : MM;
|
||||
let d = date.getDate();
|
||||
d = d < 10 ? ('0' + d) : d;
|
||||
let h = date.getHours();
|
||||
h = h < 10 ? ('0' + h) : h;
|
||||
let m = date.getMinutes();
|
||||
m = m < 10 ? ('0' + m) : m;
|
||||
let s = date.getSeconds();
|
||||
s = s < 10 ? ('0' + s) : s;
|
||||
return `${y}/${MM}/${d} ${h}:${m}:${s}`;
|
||||
}
|
||||
|
||||
export const formatDateYMD = (value) => {
|
||||
let timezone = 3; //目标时区时间,东3区(东时区正数 西时区负数)
|
||||
let offset_GMT = new Date(value).getTimezoneOffset(); // 本地时间和格林威治的时间差,单位为分钟
|
||||
let nowDate = new Date(value).getTime(); // 本地时间距 1970 年 1 月 1 日午夜(GMT 时间)之间的毫秒数
|
||||
let date = new Date(nowDate + offset_GMT * 60 * 1000 + timezone * 60 * 60 * 1000);
|
||||
|
||||
let y = date.getFullYear();
|
||||
let MM = date.getMonth() + 1;
|
||||
MM = MM < 10 ? ('0' + MM) : MM;
|
||||
let d = date.getDate();
|
||||
d = d < 10 ? ('0' + d) : d;
|
||||
let h = date.getHours();
|
||||
h = h < 10 ? ('0' + h) : h;
|
||||
let m = date.getMinutes();
|
||||
m = m < 10 ? ('0' + m) : m;
|
||||
let s = date.getSeconds();
|
||||
s = s < 10 ? ('0' + s) : s;
|
||||
return `${y}/${MM}/${d}`;
|
||||
}
|
||||
|
||||
export const formatDateYYYYMMDD = (value) => {
|
||||
let date = new Date(value);
|
||||
// 将时区设置为GMT+3
|
||||
let gmtOffset = 3; // GMT+3时区偏移量为3小时
|
||||
let localOffset = date.getTimezoneOffset() / 60; // 获取本地时区偏移量(以小时为单位)
|
||||
let targetOffset = gmtOffset - localOffset; // 计算目标时区偏移量
|
||||
date.setHours(date.getHours() + targetOffset); // 根据偏移量调整小时
|
||||
|
||||
const y = date.getFullYear();
|
||||
let MM = date.getMonth() + 1;
|
||||
MM = MM < 10 ? ('0' + MM) : MM;
|
||||
let d = date.getDate();
|
||||
d = d < 10 ? ('0' + d) : d;
|
||||
let h = date.getHours();
|
||||
h = h < 10 ? ('0' + h) : h;
|
||||
let m = date.getMinutes();
|
||||
m = m < 10 ? ('0' + m) : m;
|
||||
let s = date.getSeconds();
|
||||
s = s < 10 ? ('0' + s) : s;
|
||||
|
||||
return `${y}-${MM}-${d}`;
|
||||
}
|
||||
|
||||
|
||||
export const formatDateYYYYMM = (value) => {
|
||||
let date = new Date(value);
|
||||
// 将时区设置为GMT+3
|
||||
let gmtOffset = 3; // GMT+3时区偏移量为3小时
|
||||
let localOffset = date.getTimezoneOffset() / 60; // 获取本地时区偏移量(以小时为单位)
|
||||
let targetOffset = gmtOffset - localOffset; // 计算目标时区偏移量
|
||||
date.setHours(date.getHours() + targetOffset); // 根据偏移量调整小时
|
||||
|
||||
let y = date.getFullYear();
|
||||
let MM = date.getMonth() + 1;
|
||||
MM = MM < 10 ? ('0' + MM) : MM;
|
||||
let d = date.getDate();
|
||||
d = d < 10 ? ('0' + d) : d;
|
||||
let h = date.getHours();
|
||||
h = h < 10 ? ('0' + h) : h;
|
||||
let m = date.getMinutes();
|
||||
m = m < 10 ? ('0' + m) : m;
|
||||
let s = date.getSeconds();
|
||||
s = s < 10 ? ('0' + s) : s;
|
||||
console.log(y, MM, d, h, s);
|
||||
return `${y}-${MM}`;
|
||||
}
|
@@ -5,7 +5,7 @@ import global from "@/constants/global";
|
||||
const service = axios.create();
|
||||
import { ElMessage } from 'element-plus'
|
||||
service.interceptors.request.use(config => {
|
||||
console.log('config', config);
|
||||
// console.log('config', config);
|
||||
return config;
|
||||
}, error => {
|
||||
Promise.reject(error);
|
||||
@@ -13,7 +13,7 @@ service.interceptors.request.use(config => {
|
||||
|
||||
service.interceptors.response.use(res => {
|
||||
userLogout(res.headers[global.NEED_LOGOUT.toLowerCase()]);
|
||||
console.log('res.data', res);
|
||||
// console.log('res.data', res);
|
||||
// if (res.data.code == 200) {
|
||||
// ElMessage({
|
||||
// message: "成功",
|
||||
|
@@ -36,3 +36,19 @@ export function dateFormat (date, fmt) {
|
||||
date = o = padLeftZero = null;
|
||||
return fmt;
|
||||
}
|
||||
|
||||
export function buildSelectOption(id, defVal, array) {
|
||||
let $select = $(id);
|
||||
let children = $select.children();
|
||||
if (children && children.length > 0) {
|
||||
$select.empty();
|
||||
}
|
||||
for(let i in array) {
|
||||
let obj = array[i];
|
||||
let selected = false;
|
||||
if (obj.value == defVal) {
|
||||
selected = true;
|
||||
}
|
||||
$select.append('<option value="' + obj.value + '"' + (selected ? 'selected' : '') + '>' + obj.text + '</option>');
|
||||
}
|
||||
}
|
325
src/views/BD/BDmanagement.vue
Normal file
325
src/views/BD/BDmanagement.vue
Normal file
@@ -0,0 +1,325 @@
|
||||
<template>
|
||||
<div class="box">
|
||||
<div class="inquire">
|
||||
<span>用户ID:</span>
|
||||
<el-input v-model="formData.erbanNo"
|
||||
placeholder=""
|
||||
class="input" />
|
||||
</div>
|
||||
<div class="inquire">
|
||||
<span>分区</span>
|
||||
<partition-select v-model:partition-id="formData.partitionId"
|
||||
@update:partitionId="getlistByPartition" />
|
||||
</div>
|
||||
<div class="inquire">
|
||||
<span>国家</span>
|
||||
<el-select v-model="formData.regionId"
|
||||
placeholder="请选择">
|
||||
<el-option v-for="item in adminCountryArr"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
<div class="inquire">
|
||||
<span class="demonstration">日期</span>
|
||||
<el-date-picker v-model="dataTime"
|
||||
type="daterange"
|
||||
range-separator="至"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
value-format="YYYY-MM-DD">
|
||||
</el-date-picker>
|
||||
</div>
|
||||
<el-button style=""
|
||||
type="primary"
|
||||
@click="getData()">查询</el-button>
|
||||
|
||||
<el-table v-loading="tableData.loading"
|
||||
:data="tableData.data"
|
||||
ref="multipleTable"
|
||||
@selection-change="handleSelectionChange"
|
||||
border
|
||||
style="width: 100%; margin-top: 25px">
|
||||
<el-table-column prop="erbanNo"
|
||||
align="center"
|
||||
label="用户ID" />
|
||||
<el-table-column prop="nick"
|
||||
align="center"
|
||||
label="用户昵称" />
|
||||
<el-table-column prop="partitionDesc"
|
||||
align="center"
|
||||
label="分区" />
|
||||
<el-table-column prop="regionName"
|
||||
align="center"
|
||||
label="国家" />
|
||||
<el-table-column prop="createTime"
|
||||
align="center"
|
||||
label="创建时间">
|
||||
<template v-slot="scope">
|
||||
{{ dateFormat(scope.row.createTime) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="guildNum"
|
||||
align="center"
|
||||
label="旗下公会数量">
|
||||
<template v-slot="scope">
|
||||
<el-button type="text"
|
||||
size="small"
|
||||
@click="editFen(scope.row)">
|
||||
{{ scope.row.guildNum }}
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="diamondNum"
|
||||
align="center"
|
||||
label="公会钻石流水" />
|
||||
<el-table-column prop="goldNum"
|
||||
align="center"
|
||||
label="公会金币流水" />
|
||||
|
||||
<el-table-column prop="owner"
|
||||
align="center"
|
||||
label="负责人" />
|
||||
</el-table>
|
||||
<!-- 分页 -->
|
||||
<el-pagination style="margin-top: 10px"
|
||||
class="paginationClass"
|
||||
:current-page="formData.pageNo"
|
||||
:page-size="formData.pageSize"
|
||||
:page-sizes="[10, 20, 50, 100, 200]"
|
||||
layout="sizes, prev, pager, next"
|
||||
:total="tableData.total"
|
||||
@size-change="handleSizeChange"
|
||||
@current-change="handleCurrentChange" />
|
||||
<!-- 详情表格 -->
|
||||
<el-dialog v-model="detailsDialog"
|
||||
title="公会钻石流水详情"
|
||||
width="70%"
|
||||
center>
|
||||
<!-- 内表格 -->
|
||||
<el-table v-loading="tableDetailData.loading"
|
||||
:data="tableDetailData.data"
|
||||
border
|
||||
style="width: 100%; margin-top: 25px">
|
||||
<el-table-column prop="guildId"
|
||||
align="center"
|
||||
label="公会ID" />
|
||||
<el-table-column prop="guildName"
|
||||
align="center"
|
||||
label="公会昵称" />
|
||||
<el-table-column prop="ownerErbanNo"
|
||||
align="center"
|
||||
label="公会长ID" />
|
||||
<el-table-column prop="nick"
|
||||
align="center"
|
||||
label="公会长昵称" />
|
||||
<el-table-column prop="regionName"
|
||||
align="center"
|
||||
label="所属国家" />
|
||||
<el-table-column prop="createTime"
|
||||
align="center"
|
||||
label="公会成立时间">
|
||||
<template v-slot="scope">
|
||||
{{ dateFormat(scope.row.createTime) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="memberNum"
|
||||
align="center"
|
||||
label="公会成员数(不包括公会长)" />
|
||||
<el-table-column prop="diamondNum"
|
||||
align="center"
|
||||
label="公会钻石流水" />
|
||||
<el-table-column prop="goldNum"
|
||||
align="center"
|
||||
label="公会金币流水" />
|
||||
<el-table-column prop="status"
|
||||
align="center"
|
||||
label="绑定状态">
|
||||
<template v-slot="scope">
|
||||
{{ scope.row.status == 1 ? '有效' : '无效' }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<!-- 分页 -->
|
||||
<el-pagination style="margin-top: 10px"
|
||||
class="paginationClass"
|
||||
:current-page="formDetailData.pageNo"
|
||||
:page-size="formDetailData.pageSize"
|
||||
:page-sizes="[10, 20, 50, 100, 200]"
|
||||
layout="sizes, prev, pager, next"
|
||||
:total="tableDetailData.total"
|
||||
@size-change="handleSizeChangeDetail"
|
||||
@current-change="handleCurrentChangeDetail" />
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { ref, onMounted, reactive, computed } from 'vue'
|
||||
import PartitionSelect from "@/views/common/partitionSelect.vue";
|
||||
import { getBdDetailGuildsList, getBdDataList, getlistByPartitionId } from "@/api/BD/IdentitySettings.js"
|
||||
import { ElMessage, ElMessageBox } from "element-plus";
|
||||
import { dateFormat } from "@/utils/system-helper";
|
||||
export default {
|
||||
name: 'BDmanagement',
|
||||
components: {
|
||||
PartitionSelect
|
||||
},
|
||||
setup () {
|
||||
const formData = reactive({
|
||||
partitionId: undefined,
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
erbanNo: '',
|
||||
regionId: '',
|
||||
startTime: '',
|
||||
endTime: ''
|
||||
})
|
||||
const tableData = reactive({
|
||||
data: [],
|
||||
total: 0,
|
||||
loading: false,
|
||||
})
|
||||
const formDetailData = reactive({
|
||||
bdId: '',
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
startTime: '',
|
||||
endTime: '',
|
||||
partitionId: '',
|
||||
})
|
||||
const tableDetailData = reactive({
|
||||
data: [],
|
||||
total: 0,
|
||||
loading: false,
|
||||
})
|
||||
const detailsDialog = ref(false)
|
||||
const dataTime = ref('');
|
||||
const adminCountryArr = ref([])
|
||||
const getlistByPartition = (e) => {
|
||||
if (e) {
|
||||
formData.partitionId = e;
|
||||
}
|
||||
getlistByPartitionId({ partitionId: formData.partitionId, containAll: true }).then((res) => {
|
||||
if (res.code == 200) {
|
||||
adminCountryArr.value = res.data;
|
||||
}
|
||||
});
|
||||
}
|
||||
const getData = () => {
|
||||
tableData.loading = true;
|
||||
if (dataTime.value && dataTime.value.length > 0) {
|
||||
formData.startTime = dataTime.value[0];
|
||||
formData.endTime = dataTime.value[1];
|
||||
console.log(dataTime.value)
|
||||
} else {
|
||||
formData.startTime = dataTime.value
|
||||
formData.endTime = dataTime.value
|
||||
}
|
||||
getBdDataList(formData).then(res => {
|
||||
if (res.code == 200) {
|
||||
tableData.data = res.data.rows
|
||||
tableData.total = res.data.total
|
||||
tableData.loading = false
|
||||
} else {
|
||||
tableData.loading = false;
|
||||
ElMessage.error(res.message)
|
||||
}
|
||||
})
|
||||
}
|
||||
// 详情
|
||||
const editFen = (row) => {
|
||||
if (row) {
|
||||
formDetailData.bdId = row.id;
|
||||
formDetailData.partitionId = formData.partitionId;
|
||||
formDetailData.endTime = formData.endTime;
|
||||
formDetailData.startTime = formData.startTime;
|
||||
|
||||
}
|
||||
tableDetailData.loading = true;
|
||||
getBdDetailGuildsList(formDetailData).then(res => {
|
||||
if (res.code == 200) {
|
||||
tableDetailData.data = res.data.rows
|
||||
tableDetailData.total = res.data.total
|
||||
tableDetailData.loading = false
|
||||
detailsDialog.value = true
|
||||
|
||||
} else {
|
||||
tableDetailData.loading = false
|
||||
ElMessage.error(res.message)
|
||||
}
|
||||
|
||||
})
|
||||
}
|
||||
const dateFormat = (row) => {
|
||||
const date = new Date(row);
|
||||
return date.format("yyyy-MM-dd hh:mm:ss");
|
||||
}
|
||||
const handleSizeChange = (val) => {
|
||||
formData.pageSize = val;
|
||||
getData();
|
||||
};
|
||||
const handleCurrentChange = (val) => {
|
||||
formData.pageNo = val;
|
||||
getData();
|
||||
};
|
||||
const handleSizeChangeDetail = (val) => {
|
||||
formDetailData.pageSize = val;
|
||||
editFen();
|
||||
};
|
||||
const handleCurrentChangeDetail = (val) => {
|
||||
formDetailData.pageNo = val;
|
||||
editFen();
|
||||
};
|
||||
return {
|
||||
formData,
|
||||
adminCountryArr,
|
||||
getlistByPartition,
|
||||
dataTime,
|
||||
getData,
|
||||
tableData,
|
||||
dateFormat,
|
||||
editFen,
|
||||
formDetailData,
|
||||
detailsDialog,
|
||||
tableDetailData,
|
||||
handleSizeChange,
|
||||
handleCurrentChange,
|
||||
handleSizeChangeDetail,
|
||||
handleCurrentChangeDetail
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
.box {
|
||||
padding-top: 20px;
|
||||
background: #ecf0f5;
|
||||
|
||||
.inquire {
|
||||
display: inline-block;
|
||||
margin-right: 20px;
|
||||
|
||||
span {
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
.input {
|
||||
width: 180px;
|
||||
margin-right: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
.dialogTableVisibleBut {
|
||||
display: block;
|
||||
margin: 30px 0 0 830px;
|
||||
}
|
||||
|
||||
.paginationClass {
|
||||
margin: 15px 0 5px 0px;
|
||||
}
|
||||
}
|
||||
</style>
|
442
src/views/BD/IdentitySettings.vue
Normal file
442
src/views/BD/IdentitySettings.vue
Normal file
@@ -0,0 +1,442 @@
|
||||
<template>
|
||||
<div class="box">
|
||||
<div class="inquire">
|
||||
<span>用户ID:</span>
|
||||
<el-input v-model="formData.erbanNo"
|
||||
placeholder=""
|
||||
class="input" />
|
||||
</div>
|
||||
<div class="inquire">
|
||||
<span>分区</span>
|
||||
<partition-select v-model:partition-id="formData.partitionId"
|
||||
@update:partitionId="getlistByPartition" />
|
||||
</div>
|
||||
<div class="inquire">
|
||||
<span>国家</span>
|
||||
<el-select v-model="formData.regionId"
|
||||
placeholder="请选择">
|
||||
<el-option v-for="item in adminCountryArr"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
<el-button style=""
|
||||
type="primary"
|
||||
@click="getData()">查询</el-button>
|
||||
<el-button style=""
|
||||
type="primary"
|
||||
@click="addDialog = true">新增</el-button>
|
||||
<el-table v-loading="tableData.loading"
|
||||
:data="tableData.data"
|
||||
ref="multipleTable"
|
||||
@selection-change="handleSelectionChange"
|
||||
border
|
||||
style="width: 100%; margin-top: 25px">
|
||||
<el-table-column prop="erbanNo"
|
||||
align="center"
|
||||
label="用户ID" />
|
||||
<el-table-column prop="nick"
|
||||
align="center"
|
||||
label="用户昵称" />
|
||||
<el-table-column prop="partitionDesc"
|
||||
align="center"
|
||||
label="分区" />
|
||||
<el-table-column prop="regionName"
|
||||
align="center"
|
||||
label="国家" />
|
||||
<el-table-column prop="createTime"
|
||||
align="center"
|
||||
label="创建时间">
|
||||
<template v-slot="scope">
|
||||
{{ dateFormat(scope.row.createTime) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="guildNum"
|
||||
align="center"
|
||||
label="旗下公会数量">
|
||||
<template v-slot="scope">
|
||||
<el-button type="text"
|
||||
size="small"
|
||||
@click="editFen(scope.row)">
|
||||
{{ scope.row.guildNum }}
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="owner"
|
||||
align="center"
|
||||
label="负责人" />
|
||||
<el-table-column align="center"
|
||||
label="操作"
|
||||
width="300">
|
||||
<template v-slot="scope">
|
||||
<el-button class="primary"
|
||||
type="primary"
|
||||
@click="
|
||||
removePageFun(scope.row);
|
||||
"
|
||||
size="default"
|
||||
v-if="scope.row.status == 1">移除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="operator"
|
||||
align="center"
|
||||
label="操作人" />
|
||||
</el-table>
|
||||
<!-- 分页 -->
|
||||
<el-pagination style="margin-top: 10px"
|
||||
class="paginationClass"
|
||||
:current-page="formData.pageNo"
|
||||
:page-size="formData.pageSize"
|
||||
:page-sizes="[10, 20, 50, 100, 200]"
|
||||
layout="sizes, prev, pager, next"
|
||||
:total="tableData.total"
|
||||
@size-change="handleSizeChange"
|
||||
@current-change="handleCurrentChange" />
|
||||
<el-dialog v-model="addDialog"
|
||||
title="新增"
|
||||
width="28%"
|
||||
center>
|
||||
<div style="margin-bottom: 25px">
|
||||
<span style="display: inline-block; margin-right: 20px; width: 100px"
|
||||
class="col-sm-2 control-label">平台ID</span>
|
||||
<el-input v-model="addFormData.erbanNo"
|
||||
style="width: 50%"
|
||||
class="input"
|
||||
@change="getByErbanNoInfo()"></el-input>
|
||||
</div>
|
||||
<div style="margin-bottom: 25px;display: inline-block;width: 100%;">
|
||||
<span style="display: inline-block; margin-right: 20px; width: 100px"
|
||||
class="col-sm-2 control-label">用户昵称</span>
|
||||
<div>
|
||||
<span style="display: inline-block;"
|
||||
class="col-sm-2 control-label">{{ ByErbanNoInfo.nick }}</span>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div style="margin-bottom: 25px;display: inline-block;width: 100%;">
|
||||
<span style="display: inline-block; margin-right: 20px; width: 100px"
|
||||
class="col-sm-2 control-label">用户分区</span>
|
||||
<div>
|
||||
<span style="display: inline-block;"
|
||||
class="col-sm-2 control-label">{{ ByErbanNoInfo.partitionName
|
||||
}}</span>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div style="margin-bottom: 25px">
|
||||
<span style="display: inline-block; margin-right: 20px; width: 100px"
|
||||
class="col-sm-2 control-label">负责人</span>
|
||||
<el-input v-model="addFormData.owner"
|
||||
style="width: 50%"
|
||||
class="input"></el-input>
|
||||
</div>
|
||||
<template #footer>
|
||||
<span class="dialog-footer">
|
||||
<el-button @click="addDialog = false">取消</el-button>
|
||||
<el-button type="primary"
|
||||
@click="addFun()"
|
||||
v-if="ByErbanNoInfo.uid != ''"> 确认 </el-button>
|
||||
</span>
|
||||
</template>
|
||||
</el-dialog>
|
||||
<!-- 详情表格 -->
|
||||
<el-dialog v-model="detailsDialog"
|
||||
title="公会详情"
|
||||
width="70%"
|
||||
center>
|
||||
<!-- 内表格 -->
|
||||
<el-table v-loading="tableDetailData.loading"
|
||||
:data="tableDetailData.data"
|
||||
border
|
||||
style="width: 100%; margin-top: 25px">
|
||||
<el-table-column prop="guildId"
|
||||
align="center"
|
||||
label="公会ID" />
|
||||
<el-table-column prop="guildName"
|
||||
align="center"
|
||||
label="公会昵称" />
|
||||
<el-table-column prop="ownerErbanNo"
|
||||
align="center"
|
||||
label="公会长ID" />
|
||||
<el-table-column prop="nick"
|
||||
align="center"
|
||||
label="公会长昵称" />
|
||||
<el-table-column prop="regionName"
|
||||
align="center"
|
||||
label="所属国家" />
|
||||
<el-table-column prop="createTime"
|
||||
align="center"
|
||||
label="公会成立时间">
|
||||
<template v-slot="scope">
|
||||
{{ dateFormat(scope.row.createTime) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="memberNum"
|
||||
align="center"
|
||||
label="公会成员数(不包括公会长)" />
|
||||
<el-table-column prop="status"
|
||||
align="center"
|
||||
label="绑定状态">
|
||||
<template v-slot="scope">
|
||||
{{ scope.row.status == 1 ? '有效' : '无效' }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center"
|
||||
label="操作"
|
||||
width="300">
|
||||
<template v-slot="scope">
|
||||
<el-button class="primary"
|
||||
type="primary"
|
||||
@click="
|
||||
unbindPageFun(scope.row);
|
||||
"
|
||||
size="default"
|
||||
v-if="scope.row.status == 1">解绑</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="operator"
|
||||
align="center"
|
||||
label="操作人" />
|
||||
</el-table>
|
||||
<!-- 分页 -->
|
||||
<el-pagination style="margin-top: 10px"
|
||||
class="paginationClass"
|
||||
:current-page="formDetailData.pageNo"
|
||||
:page-size="formDetailData.pageSize"
|
||||
:page-sizes="[10, 20, 50, 100, 200]"
|
||||
layout="sizes, prev, pager, next"
|
||||
:total="tableDetailData.total"
|
||||
@size-change="handleSizeChangeDetail"
|
||||
@current-change="handleCurrentChangeDetail" />
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { ref, onMounted, reactive, computed } from 'vue'
|
||||
import PartitionSelect from "@/views/common/partitionSelect.vue";
|
||||
import { getBdList, addBdInfo, removeBdInfo, getByErbanNo, getlistByPartitionId, getGuildsDetail, operatorGuildUnBound } from "@/api/BD/IdentitySettings.js"
|
||||
import { ElMessage, ElMessageBox } from "element-plus";
|
||||
export default {
|
||||
name: 'IdentitySettings',
|
||||
components: {
|
||||
PartitionSelect
|
||||
},
|
||||
setup () {
|
||||
const formData = reactive({
|
||||
partitionId: undefined,
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
erbanNo: '',
|
||||
regionId: ''
|
||||
})
|
||||
const addFormData = reactive({
|
||||
erbanNo: '',
|
||||
uid: '',
|
||||
owner: ''
|
||||
})
|
||||
const tableData = reactive({
|
||||
data: [],
|
||||
total: 0,
|
||||
loading: false,
|
||||
})
|
||||
const ByErbanNoInfo = reactive({
|
||||
uid: '',
|
||||
partitionName: '',
|
||||
nick: ''
|
||||
})
|
||||
const formDetailData = reactive({
|
||||
bdId: '',
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
})
|
||||
const tableDetailData = reactive({
|
||||
data: [],
|
||||
total: 0,
|
||||
loading: false,
|
||||
})
|
||||
const adminCountryArr = ref([])
|
||||
const addDialog = ref(false)
|
||||
const detailsDialog = ref(false)
|
||||
const getlistByPartition = (e) => {
|
||||
if (e) {
|
||||
formData.partitionId = e;
|
||||
}
|
||||
getlistByPartitionId({ partitionId: formData.partitionId, containAll: true }).then((res) => {
|
||||
if (res.code == 200) {
|
||||
adminCountryArr.value = res.data;
|
||||
}
|
||||
});
|
||||
}
|
||||
const getData = () => {
|
||||
tableData.loading = true;
|
||||
getBdList(formData).then(res => {
|
||||
if (res.code == 200) {
|
||||
tableData.data = res.data.rows
|
||||
tableData.total = res.data.total
|
||||
tableData.loading = false
|
||||
} else {
|
||||
tableData.loading = false;
|
||||
ElMessage.error(res.message)
|
||||
}
|
||||
})
|
||||
};
|
||||
const getByErbanNoInfo = () => {
|
||||
getByErbanNo({ erbanNo: addFormData.erbanNo }).then(res => {
|
||||
if (res.code == 200) {
|
||||
Object.assign(ByErbanNoInfo, res.data)
|
||||
} else {
|
||||
ElMessage.error(res.message)
|
||||
Object.assign(ByErbanNoInfo, { partitionName: '', nick: '', uid: '' })
|
||||
}
|
||||
})
|
||||
}
|
||||
// 增加
|
||||
const addFun = () => {
|
||||
if (addFormData.erbanNo == '') {
|
||||
ElMessage.error('请输入正确的用户ID')
|
||||
return
|
||||
}
|
||||
addDialog.value = false
|
||||
addBdInfo({ owner: addFormData.owner, uid: ByErbanNoInfo.uid }).then(res => {
|
||||
if (res.code == 200) {
|
||||
ElMessage.success('添加成功')
|
||||
getData()
|
||||
} else {
|
||||
ElMessage.error(res.message)
|
||||
}
|
||||
Object.assign(addFormData, { erbanNo: '', owner: '', uid: '' })
|
||||
Object.assign(ByErbanNoInfo, { partitionName: '', nick: '', uid: '' })
|
||||
})
|
||||
}
|
||||
const removePageFun = (row) => {
|
||||
ElMessageBox.confirm('确定要移除吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
removeBdInfo({ id: row.id }).then(res => {
|
||||
if (res.code == 200) {
|
||||
ElMessage.success('移除成功')
|
||||
getData()
|
||||
} else {
|
||||
ElMessage.error(res.message)
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
// 详情
|
||||
const editFen = (row) => {
|
||||
if (row) {
|
||||
formDetailData.bdId = row.id
|
||||
}
|
||||
tableDetailData.loading = true;
|
||||
getGuildsDetail(formDetailData).then(res => {
|
||||
if (res.code == 200) {
|
||||
tableDetailData.data = res.data.rows
|
||||
tableDetailData.total = res.data.total
|
||||
tableDetailData.loading = false
|
||||
detailsDialog.value = true
|
||||
|
||||
} else {
|
||||
tableDetailData.loading = false
|
||||
ElMessage.error(res.message)
|
||||
}
|
||||
|
||||
})
|
||||
}
|
||||
// 解绑
|
||||
const unbindPageFun = (row) => {
|
||||
ElMessageBox.confirm('确定要解除绑定吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
operatorGuildUnBound({ bdGuildId: row.bdGuildId }).then(res => {
|
||||
if (res.code == 200) {
|
||||
ElMessage.success('解除成功')
|
||||
editFen()
|
||||
} else {
|
||||
ElMessage.error(res.message)
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
const dateFormat = (row) => {
|
||||
const date = new Date(row);
|
||||
return date.format("yyyy-MM-dd hh:mm:ss");
|
||||
}
|
||||
const handleSizeChange = (val) => {
|
||||
formData.pageSize = val;
|
||||
getData();
|
||||
};
|
||||
const handleCurrentChange = (val) => {
|
||||
formData.pageNo = val;
|
||||
getData();
|
||||
};
|
||||
const handleSizeChangeDetail = (val) => {
|
||||
formDetailData.pageSize = val;
|
||||
editFen();
|
||||
};
|
||||
const handleCurrentChangeDetail = (val) => {
|
||||
formDetailData.pageNo = val;
|
||||
editFen();
|
||||
};
|
||||
return {
|
||||
formData,
|
||||
addFormData,
|
||||
tableData,
|
||||
addDialog,
|
||||
getData,
|
||||
detailsDialog,
|
||||
adminCountryArr,
|
||||
getlistByPartition,
|
||||
getByErbanNoInfo,
|
||||
ByErbanNoInfo,
|
||||
addFun,
|
||||
dateFormat,
|
||||
removePageFun,
|
||||
editFen,
|
||||
formDetailData,
|
||||
tableDetailData,
|
||||
unbindPageFun,
|
||||
handleSizeChange,
|
||||
handleCurrentChange,
|
||||
handleSizeChangeDetail,
|
||||
handleCurrentChangeDetail
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
.box {
|
||||
padding-top: 20px;
|
||||
background: #ecf0f5;
|
||||
|
||||
.inquire {
|
||||
display: inline-block;
|
||||
margin-right: 20px;
|
||||
|
||||
span {
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
.input {
|
||||
width: 180px;
|
||||
margin-right: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
.dialogTableVisibleBut {
|
||||
display: block;
|
||||
margin: 30px 0 0 830px;
|
||||
}
|
||||
|
||||
.paginationClass {
|
||||
margin: 15px 0 5px 0px;
|
||||
}
|
||||
}
|
||||
</style>
|
237
src/views/GiftPanelManagement/GiftPanelManagement.vue
Normal file
237
src/views/GiftPanelManagement/GiftPanelManagement.vue
Normal file
@@ -0,0 +1,237 @@
|
||||
<template>
|
||||
<div class="box">
|
||||
<!-- 选择分区 -->
|
||||
<div class="inquire">
|
||||
<div class="block">
|
||||
<span class="demonstration">选择分区</span>
|
||||
<el-select v-model="inquire.partitionId"
|
||||
style="width: 75%"
|
||||
placeholder="请选择"
|
||||
@change="handleChange">
|
||||
<el-option v-for="item in inquire.inquireonInfos"
|
||||
:key="item.id"
|
||||
:label="item.desc"
|
||||
:value="item.id"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 表格 -->
|
||||
<el-table v-loading="loading"
|
||||
:data="tableData"
|
||||
border
|
||||
style="width: 100%; margin-top: 25px">
|
||||
<el-table-column prop="seq"
|
||||
align="center"
|
||||
label="排序" />
|
||||
<el-table-column prop="name"
|
||||
align="center"
|
||||
label="礼物面板类型" />
|
||||
<el-table-column prop="enable"
|
||||
align="center"
|
||||
label="是否生效">
|
||||
<template v-slot="scope">{{ scope.row.enable ? "是" : "否" }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center"
|
||||
label="操作">
|
||||
<template v-slot="scope">
|
||||
<el-button @click="ediClick(scope.row)"
|
||||
class="primary"
|
||||
type="primary"
|
||||
size="default">编辑</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<!-- 编辑弹窗 -->
|
||||
<el-dialog v-model="eidDialog"
|
||||
:title="eidDialogTitle"
|
||||
width="30%"
|
||||
center>
|
||||
<!-- 礼物面板类型 -->
|
||||
<div style="margin-bottom: 25px; margin-top: 10px">
|
||||
<span style="display: inline-block; white-space: nowrap; margin-right: 70px"
|
||||
class="col-sm-2 control-label">礼物面板类型</span>
|
||||
<el-input v-model="eidObj.type"
|
||||
style="width: 60%"
|
||||
class="input"
|
||||
placeholder="请输入"
|
||||
disabled></el-input>
|
||||
</div>
|
||||
<!-- 面板排序 -->
|
||||
<div style="margin-bottom: 25px; margin-top: 10px">
|
||||
<span style="display: inline-block; white-space: nowrap; margin-right: 70px"
|
||||
class="col-sm-2 control-label">面板排序-{{ eidText }}</span>
|
||||
<el-input v-model="eidObj.seq"
|
||||
style="width: 60%"
|
||||
class="input"
|
||||
placeholder="请输入"></el-input>
|
||||
</div>
|
||||
<!-- 是否生效 -->
|
||||
<div style="margin-bottom: 25px; margin-top: 10px">
|
||||
<span style="display: inline-block; white-space: nowrap; margin-right: 70px"
|
||||
class="col-sm-2 control-label">是否生效</span>
|
||||
<el-select v-model="eidObj.value"
|
||||
style="width: 60%"
|
||||
placeholder="请选择">
|
||||
<el-option v-for="item in eidObj.option"
|
||||
:key="item.id"
|
||||
:label="item.desc"
|
||||
:value="item.id"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
<template #footer>
|
||||
<span class="dialog-footer">
|
||||
<el-button @click="eidDialog = false">取消</el-button>
|
||||
<el-button type="primary"
|
||||
@click="eidDialogClick()"> 确认 </el-button>
|
||||
</span>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { list, update } from "@/api/GiftPanelManagement/GiftPanelManagement";
|
||||
import { listAll } from "@/api/partition/partitionInfo";
|
||||
// @ts-ignore
|
||||
import { dateFormat } from "@/utils/system-helper";
|
||||
// @ts-ignore
|
||||
import { ElMessage } from "element-plus";
|
||||
export default {
|
||||
name: "GiftPanelManagement",
|
||||
data () {
|
||||
return {
|
||||
loading: false,
|
||||
//查询所需条件对象
|
||||
inquire: {
|
||||
partitionId: 1,
|
||||
inquireonInfos: [
|
||||
// { desc: "英语区", id: 1 },
|
||||
// { desc: "阿拉伯区", id: 2 },
|
||||
// { desc: "华语区", id: 4 },
|
||||
// { desc: "土耳其区", id: 8 },
|
||||
],
|
||||
},
|
||||
// 表格
|
||||
tableData: [],
|
||||
// 编辑
|
||||
eidDialog: false,
|
||||
eidDialogTitle: "",
|
||||
eidText: "",
|
||||
eidObjNew: {},
|
||||
eidObj: {
|
||||
type: "",
|
||||
clientName: "",
|
||||
seq: "",
|
||||
value: "",
|
||||
option: [
|
||||
{
|
||||
desc: "是",
|
||||
id: true,
|
||||
},
|
||||
{
|
||||
desc: "否",
|
||||
id: false,
|
||||
},
|
||||
],
|
||||
},
|
||||
};
|
||||
},
|
||||
created () {
|
||||
this.eidDialogTitle = `编辑礼物面板信息-华语区`;
|
||||
this.eidText = `华语区`;
|
||||
this.getData();
|
||||
listAll().then((res) => {
|
||||
this.inquire.inquireonInfos = res.data;
|
||||
});
|
||||
},
|
||||
methods: {
|
||||
// 查询接口
|
||||
getData () {
|
||||
this.loading = true;
|
||||
list({
|
||||
partitionId: this.inquire.partitionId,
|
||||
}).then((res) => {
|
||||
this.tableData = res.data;
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
ediClick (val) {
|
||||
this.eidDialog = true;
|
||||
this.eidObj.type = val.name;
|
||||
this.eidObj.seq = val.seq;
|
||||
this.eidObj.value = val.enable;
|
||||
this.eidObjNew = val;
|
||||
},
|
||||
eidDialogClick () {
|
||||
update({
|
||||
enable: this.eidObj.value,
|
||||
id: this.eidObjNew.id,
|
||||
seq: this.eidObj.seq,
|
||||
partitionId: this.inquire.partitionId,
|
||||
}).then((res) => {
|
||||
if (res.code == 200) {
|
||||
ElMessage({
|
||||
showClose: true,
|
||||
message: "编辑成功",
|
||||
type: "success",
|
||||
});
|
||||
this.eidDialog = false;
|
||||
this.getData();
|
||||
} else {
|
||||
ElMessage({
|
||||
showClose: true,
|
||||
message: res.message,
|
||||
type: "error",
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
handleChange (val) {
|
||||
console.log(val);
|
||||
if (val == 1) {
|
||||
this.eidDialogTitle = `编辑礼物面板信息-英语区`;
|
||||
this.eidText = `英语区`;
|
||||
} else if (val == 2) {
|
||||
this.eidDialogTitle = `编辑礼物面板信息-阿拉伯区`;
|
||||
this.eidText = `阿拉伯区`;
|
||||
} else if (val == 4) {
|
||||
this.eidDialogTitle = `编辑礼物面板信息-华语区`;
|
||||
this.eidText = `华语区`;
|
||||
} else if (val == 8) {
|
||||
this.eidDialogTitle = `编辑礼物面板信息-土耳其区`;
|
||||
this.eidText = `土耳其区`;
|
||||
} else if (val == 16) {
|
||||
this.eidDialogTitle = `编辑礼物面板信息-英语2区`;
|
||||
this.eidText = `英语2区`;
|
||||
}else if (val == 32) {
|
||||
this.eidDialogTitle = `编辑礼物面板信息-独联体`;
|
||||
this.eidText = `独联体`;
|
||||
}
|
||||
this.getData();
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style lang="less" scoped>
|
||||
.box {
|
||||
padding-top: 20px;
|
||||
background: #ecf0f5;
|
||||
.inquire {
|
||||
display: inline-block;
|
||||
margin-right: 70px;
|
||||
span {
|
||||
margin-right: 10px;
|
||||
}
|
||||
.input {
|
||||
width: 180px;
|
||||
margin-right: 10px;
|
||||
}
|
||||
}
|
||||
.dialogTableVisibleBut {
|
||||
display: block;
|
||||
margin: 30px 0 0 830px;
|
||||
}
|
||||
.paginationClass {
|
||||
margin: 15px 0 5px 0px;
|
||||
}
|
||||
}
|
||||
</style>
|
@@ -213,7 +213,7 @@ export default {
|
||||
return param;
|
||||
},
|
||||
toolbar: '#toolbar',
|
||||
url: '/admin/sms/list.action',
|
||||
url: '/admin/sms/list',
|
||||
onLoadSuccess: function () { //加载成功时执行
|
||||
console.log("load success");
|
||||
},
|
||||
@@ -256,7 +256,7 @@ export default {
|
||||
showLoading();
|
||||
var option = ({
|
||||
type: "POST",
|
||||
url: "/admin/sms/uploadExcel.action",
|
||||
url: "/admin/sms/uploadExcel",
|
||||
cache: false,
|
||||
contentType: false, //不可缺
|
||||
processData: false, //不可缺
|
||||
@@ -310,7 +310,7 @@ export default {
|
||||
createTime: createTime,
|
||||
sendTime: sendTime
|
||||
};
|
||||
var url = "/admin/sms/query/send.action";
|
||||
var url = "/admin/sms/query/send";
|
||||
if (confirm("按查询条件发送最多一次可发送一万条短信!已发送过的用户不会重复发送,你确认批量发送吗?")) {
|
||||
sendSmsByData(data, url);
|
||||
}
|
||||
@@ -329,7 +329,7 @@ export default {
|
||||
var data = {
|
||||
ids: JSON.stringify(idArr)
|
||||
}
|
||||
var url = "/admin/sms/page/send.action";
|
||||
var url = "/admin/sms/page/send";
|
||||
if (confirm("你确认批量发送吗?")) {
|
||||
sendSmsByData(data, url);
|
||||
}
|
||||
@@ -338,7 +338,7 @@ export default {
|
||||
$("#table").on('click', '.opt-send', function () {
|
||||
var id = $(this).attr("data-id");
|
||||
var data = { recordId: id };
|
||||
var url = "/admin/sms/send.action";
|
||||
var url = "/admin/sms/send";
|
||||
if (confirm("已经发送过的短信将会重复发送,确定重复发送短信吗?")) {
|
||||
sendSmsByData(data, url);
|
||||
}
|
||||
@@ -349,7 +349,7 @@ export default {
|
||||
if (confirm("删除的数据将不能找回,确定删除吗?")) {
|
||||
$.ajax({
|
||||
type: "post",
|
||||
url: "/admin/sms/del.action",
|
||||
url: "/admin/sms/del",
|
||||
data: { recordId: id },
|
||||
dataType: "json",
|
||||
success: function (json) {
|
||||
|
@@ -62,7 +62,7 @@ export default {
|
||||
}
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/admin/qiniu/uploadPatch.action",
|
||||
url: "/admin/qiniu/uploadPatch",
|
||||
data: data,
|
||||
cache: false,
|
||||
contentType: false, //不可缺
|
||||
|
195
src/views/TencentUploadAdminView.vue
Normal file
195
src/views/TencentUploadAdminView.vue
Normal file
@@ -0,0 +1,195 @@
|
||||
<template>
|
||||
<section class="content">
|
||||
<div class="box box-primary">
|
||||
<div class="box-body">
|
||||
<section class="content-header">
|
||||
<h1 id="itemTitle"></h1>
|
||||
</section>
|
||||
<!-- .content -->
|
||||
<div id="table"></div>
|
||||
<div id="toolbar">
|
||||
<br />
|
||||
<br />
|
||||
<button id="updateImgs" class="btn btn-sm btn-primary">上传文件</button>
|
||||
<h3 id="urlInfo"></h3>
|
||||
<br />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<div class=" modal fade" id="fileUpload" tabindex="-1" role="dialog" aria-labelledby="modalLabel1">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
|
||||
aria-hidden="true">×</span>
|
||||
</button>
|
||||
<h4 class="modal-title" id="modalLabel1">上传文件</h4>
|
||||
</div>
|
||||
<div class="modal-footer" style="height: 20%">
|
||||
<span>上传文件</span>
|
||||
<!--<input type="file" name="file" id="uploadFile">-->
|
||||
<input type="file" name="logoFile1" id="logoFile1" onchange="setFiles(this);" style="display:inline;"
|
||||
multiple>
|
||||
<!--<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>-->
|
||||
<!--<button type="button" class="btn btn-primary" id="upload">上传七牛</button>-->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
export default {
|
||||
name: "TencentUploadAdminView",
|
||||
setup() {
|
||||
|
||||
function setFiles(obj) {
|
||||
$("#confirmMsg").text("正在上传,请稍后");
|
||||
$("#confirmModal").modal('show');
|
||||
var f = $(obj).val();
|
||||
if (f == null || f == undefined || f == '') {
|
||||
return false;
|
||||
}
|
||||
var filePaths = $(obj)[0].files;
|
||||
var num = filePaths.length;
|
||||
var data = new FormData();
|
||||
for (var i = 0; i <= num - 1; i++) {
|
||||
var file = $(obj)[0].files[i];
|
||||
data.append('file_' + i, file);
|
||||
}
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/admin/tencent/cos/uploadPatch",
|
||||
data: data,
|
||||
cache: false,
|
||||
contentType: false, //不可缺
|
||||
processData: false, //不可缺
|
||||
dataType: "json",
|
||||
success: function (res) {
|
||||
$("#logoFile1").val("");
|
||||
$("#confirmModal").modal('hide');
|
||||
$("#fileUpload").modal('hide');
|
||||
console.log(res)
|
||||
if (res.code == 200) {
|
||||
$("#tipMsg").text("上传成功");
|
||||
$("#tipModal").modal('show');
|
||||
buildResult(res.data);
|
||||
} else {
|
||||
$("#tipMsg").text("上传失败.");
|
||||
$("#tipModal").modal('show');
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
window.setFiles = setFiles;
|
||||
return {
|
||||
setFiles
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.$nextTick(function () {
|
||||
this.initData();
|
||||
});
|
||||
},
|
||||
methods: {
|
||||
initData() {
|
||||
$("#updateImgs").click(function () {
|
||||
$("#uploadFile").val("");
|
||||
$("#fileUpload").modal('show');
|
||||
});
|
||||
|
||||
$("#upload").click(function () {
|
||||
$.ajaxFileUpload({
|
||||
fileElementId: 'uploadFile', //需要上传的文件域的ID,即<input type="file">的ID。
|
||||
url: "/admin/tencent/cos/upload", //后台方法的路径
|
||||
type: 'post', //当要提交自定义参数时,这个参数要设置成post
|
||||
dataType: 'json', //服务器返回的数据类型。可以为xml,script,json,html。如果不填写,jQuery会自动判断。
|
||||
secureuri: false, //是否启用安全提交,默认为false。
|
||||
async: true, //是否是异步
|
||||
success: function (json) { //提交成功后自动执行的处理函数,参数data就是服务器返回的数据。
|
||||
console.log(json)
|
||||
if (json.flag) {
|
||||
$("#urlInfo").html(json.url);
|
||||
$("#tipMsg").text("上传成功");
|
||||
$("#tipModal").modal('show');
|
||||
}
|
||||
else {
|
||||
$("#tipMsg").text("上传失败.");
|
||||
$("#tipModal").modal('show');
|
||||
}
|
||||
$("#faceJsonImgsUpload").modal('hide');
|
||||
},
|
||||
error: function (data, status, e) { //提交失败自动执行的处理函数。
|
||||
console.error(e);
|
||||
$("#tipMsg").text("上传失败");
|
||||
$("#tipModal").modal('show');
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
function buildResult(data) {
|
||||
var $urlInfo = $('#urlInfo');
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
var $p = $('<p />');
|
||||
$p.html(data[i]);
|
||||
$urlInfo.append($p);
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.bar1, .bar2 {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
label.col-sm-1 {
|
||||
padding: 0;
|
||||
line-height: 30px;
|
||||
text-align: right;
|
||||
/*padding-right: 4px;*/
|
||||
}
|
||||
|
||||
label.col-sm-1 {
|
||||
padding: 0;
|
||||
line-height: 30px;
|
||||
text-align: right;
|
||||
/*padding-right: 4px;*/
|
||||
}
|
||||
|
||||
input, select {
|
||||
margin-left: 8px;
|
||||
margin-right: 8px;
|
||||
}
|
||||
|
||||
.button-wrapper {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.record {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.record .title {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.toggle-group {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.tips {
|
||||
font-size: 13px;
|
||||
color: red;
|
||||
}
|
||||
|
||||
.opt-group .col-sm-7 {
|
||||
text-align: left;
|
||||
}
|
||||
</style>
|
@@ -2,7 +2,7 @@
|
||||
<div class="outer">
|
||||
<div class="search">
|
||||
<div class="searchLeft">
|
||||
<span>用户平台ID</span>
|
||||
<span>平台ID</span>
|
||||
<el-input
|
||||
v-model="userId"
|
||||
size="default"
|
||||
@@ -10,6 +10,15 @@
|
||||
class="input"
|
||||
></el-input>
|
||||
</div>
|
||||
<div class="searchLeft">
|
||||
<span>邮箱</span>
|
||||
<el-input
|
||||
v-model="email"
|
||||
size="default"
|
||||
placeholder="邮箱"
|
||||
class="input"
|
||||
></el-input>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 按钮 -->
|
||||
<div class="buttonBox">
|
||||
@@ -30,6 +39,7 @@
|
||||
<el-table-column prop="erbanNo" align="center" label="用戶id" />
|
||||
<el-table-column prop="nick" align="center" label="用戶昵称" />
|
||||
<el-table-column prop="phone" align="center" label="手机号" />
|
||||
<el-table-column prop="email" align="center" label="邮箱" />
|
||||
<el-table-column prop="signTime" align="center" label="注册时间" />
|
||||
<el-table-column prop="createTime" align="center" label="进入访问限制时间" />
|
||||
<el-table-column prop="inviteCode" align="center" label="邀请码" />
|
||||
@@ -51,6 +61,7 @@
|
||||
{{langFormat(scope.row.lang)}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="reason" align="center" label="原因" />
|
||||
<el-table-column align="center" label="操作" width="300">
|
||||
<template v-slot="scope">
|
||||
<el-button
|
||||
@@ -128,13 +139,10 @@ export default {
|
||||
name: "AccessRestriction",
|
||||
data() {
|
||||
return {
|
||||
userId: "", //用戶id
|
||||
userId: undefined, //用戶id
|
||||
email: undefined, //用戶id
|
||||
loading: false, //列表loading
|
||||
tableData: [
|
||||
{
|
||||
erbanNo: "123123123",
|
||||
},
|
||||
], //列表数据
|
||||
tableData: [], //列表数据
|
||||
total: 10, //总页数
|
||||
currentPage: 1, //页码
|
||||
pageSize: 10, //条数
|
||||
@@ -157,6 +165,7 @@ export default {
|
||||
page: this.currentPage,
|
||||
pageSize: this.pageSize,
|
||||
userErBanNo: this.userId,
|
||||
email: this.email,
|
||||
}).then((res) => {
|
||||
this.tableData = res.data.records;
|
||||
this.loading = false;
|
||||
|
457
src/views/accountApplyManage/accountApplyManage.vue
Normal file
457
src/views/accountApplyManage/accountApplyManage.vue
Normal file
@@ -0,0 +1,457 @@
|
||||
<template>
|
||||
<div class="account-apply-manage">
|
||||
<div class="container">
|
||||
<div class="region-box">
|
||||
<el-radio-group v-model="region">
|
||||
<el-radio v-for="(item, index) in userAreaRegion"
|
||||
:key="index"
|
||||
:label="item.value">{{ item.name }}</el-radio>
|
||||
</el-radio-group>
|
||||
</div>
|
||||
<div class="handle-box">
|
||||
<el-form ref="searchForm"
|
||||
:model="searchForm"
|
||||
label-width="90px"
|
||||
:disabled="tableLoading">
|
||||
<div class="search-line">
|
||||
<el-form-item label="MoliStar ID"
|
||||
prop="erbanNo">
|
||||
<el-input v-model.trim="searchForm.erbanNo"
|
||||
placeholder="Please enter"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="UID"
|
||||
prop="uid">
|
||||
<el-input v-model.trim="searchForm.uid"
|
||||
placeholder="Please enter"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="SID"
|
||||
prop="sid">
|
||||
<el-input v-model.trim="searchForm.sid"
|
||||
placeholder="Please enter"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="Region"
|
||||
prop="partitionId">
|
||||
<el-select v-model="searchForm.partitionId">
|
||||
<el-option label="全部"
|
||||
value=""></el-option>
|
||||
<el-option v-for="item in partitionInfoList"
|
||||
:key="item.id"
|
||||
:label="item.desc"
|
||||
:value="item.id"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label-width="40px">
|
||||
<el-button type="primary"
|
||||
@click="handSearch">Search</el-button>
|
||||
<el-button plain
|
||||
@click="resetSearchForm">Reset Search</el-button>
|
||||
<el-upload class="file-uploader"
|
||||
action="#"
|
||||
list-type="picture-card"
|
||||
:show-file-list="false"
|
||||
:on-change="handleExcel"
|
||||
accept=".xls, .xlsx"
|
||||
:auto-upload="false">
|
||||
<el-button type="primary">Import</el-button>
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
</div>
|
||||
</el-form>
|
||||
<!-- <el-upload
|
||||
class="file-uploader"
|
||||
action="#"
|
||||
list-type="picture-card"
|
||||
:show-file-list="false"
|
||||
:on-change="handleExcel"
|
||||
accept=".xls, .xlsx"
|
||||
:auto-upload="false"
|
||||
>
|
||||
<el-button type="primary" class="el-icon-upload">Import</el-button>
|
||||
</el-upload> -->
|
||||
</div>
|
||||
<div class="table">
|
||||
<el-table :data="tableData"
|
||||
border
|
||||
v-loading="tableLoading"
|
||||
@header-click="headerCopy"
|
||||
style="width: 100%">
|
||||
<el-table-column align="center"
|
||||
prop="id"
|
||||
label="No.">
|
||||
</el-table-column>
|
||||
<el-table-column align="center"
|
||||
prop="erbanNo"
|
||||
label="MoliStar ID">
|
||||
</el-table-column>
|
||||
<el-table-column align="center"
|
||||
prop="uid"
|
||||
label="UID">
|
||||
</el-table-column>
|
||||
<el-table-column align="center"
|
||||
prop="level"
|
||||
label="SID Level">
|
||||
</el-table-column>
|
||||
<el-table-column align="center"
|
||||
prop="nick"
|
||||
label="Nickname">
|
||||
</el-table-column>
|
||||
<el-table-column align="center"
|
||||
prop="partitionInfo"
|
||||
label="Region">
|
||||
</el-table-column>
|
||||
<el-table-column align="center"
|
||||
prop="createTime"
|
||||
label="Apply time">
|
||||
<template v-slot="scope">{{
|
||||
convertTimestamp(scope.row.createTime)
|
||||
}}</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center"
|
||||
prop="prettyNo"
|
||||
label="SID">
|
||||
</el-table-column>
|
||||
<el-table-column align="center"
|
||||
prop="status"
|
||||
label="State">
|
||||
<template v-slot="scope">
|
||||
<el-tag :type="applyStateTag(scope.row.status)">{{
|
||||
applyStateText(scope.row.status)
|
||||
}}</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center"
|
||||
prop="updateTime"
|
||||
label="Review time">
|
||||
<template v-slot="scope">{{
|
||||
convertTimestamp(scope.row.updateTime)
|
||||
}}</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center"
|
||||
prop="operater"
|
||||
label="Operator">
|
||||
</el-table-column>
|
||||
<el-table-column align="center"
|
||||
label="Operate">
|
||||
<template v-slot="scope">
|
||||
<el-button type="text"
|
||||
v-if="scope.row.status == 0"
|
||||
@click="handlePass(scope.$index, scope.row)">
|
||||
Pass
|
||||
</el-button>
|
||||
<el-button type="text"
|
||||
v-if="scope.row.status == 0"
|
||||
@click="handleReject(scope.$index, scope.row)">
|
||||
Reject
|
||||
</el-button>
|
||||
<el-button type="text"
|
||||
v-if="scope.row.status == 1"
|
||||
class="red"
|
||||
@click="handleDelete(scope.$index, scope.row)">
|
||||
Delete
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<table-pagination :pageParams="pageParams"
|
||||
:pageTotal="pageTotal"
|
||||
:ifShowSizes="true"
|
||||
@handleSizeChange="handleSizeChange"
|
||||
@handlePageChange="handlePageChange"></table-pagination>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
getPrettyNumberExamineList,
|
||||
prettyNumberExaminePass,
|
||||
prettyNumberExamineDelete,
|
||||
prettyNumberExamineReject,
|
||||
erbanUpload,
|
||||
} from "@/api/relPrivilegeManage/relPrivilegeManage.js";
|
||||
import { getPartitionInfoList } from '@/api/partition/partitionInfo';
|
||||
import TablePagination from "@/components/common/TablePagination";
|
||||
import { formatDate } from "@/utils/relDate";
|
||||
import { ElMessageBox, ElMessage } from "element-plus"; // 正确引入 ElM
|
||||
// 混入
|
||||
// import Mixin from '../../mixin/mixRegion.js';
|
||||
|
||||
export default {
|
||||
name: "accountApplyManage",
|
||||
// mixins: [Mixin],
|
||||
components: { TablePagination },
|
||||
data () {
|
||||
return {
|
||||
partitionInfoList: [],
|
||||
tableLoading: false, // 表格是否加载中
|
||||
tableData: [], // 接口返回的表格数据
|
||||
// 搜索表单相关
|
||||
searchForm: {
|
||||
erbanNo: null,
|
||||
uid: null,
|
||||
sid: null,
|
||||
partitionId: null,
|
||||
},
|
||||
pageTotal: 0, // 接口返回的表格总条数
|
||||
pageParams: {
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
},
|
||||
};
|
||||
},
|
||||
created () {
|
||||
this.initPartition();
|
||||
this.getData();
|
||||
},
|
||||
methods: {
|
||||
getData () {
|
||||
this.tableLoading = true;
|
||||
|
||||
let { pageParams, searchForm } = this;
|
||||
searchForm = JSON.parse(JSON.stringify(searchForm));
|
||||
pageParams = JSON.parse(JSON.stringify(pageParams));
|
||||
Object.keys(searchForm).forEach((item) => {
|
||||
if (
|
||||
!searchForm[item] ||
|
||||
(searchForm[item] !== undefined && searchForm[item] === "")
|
||||
) {
|
||||
delete searchForm[item];
|
||||
}
|
||||
});
|
||||
Object.assign(pageParams, searchForm);
|
||||
|
||||
getPrettyNumberExamineList(pageParams).then((res) => {
|
||||
this.tableLoading = false;
|
||||
if (res.code == 200) {
|
||||
let data = res.data;
|
||||
console.log(data);
|
||||
this.tableData = data.rows;
|
||||
this.pageTotal = data.total;
|
||||
}
|
||||
});
|
||||
},
|
||||
//导入表格
|
||||
handleExcel (file) {
|
||||
let formData = new FormData(); //声明一个FormDate对象
|
||||
formData.append("file", file.raw); //把文件信息放入对象中
|
||||
console.log(file.raw);
|
||||
erbanUpload(formData)
|
||||
.then((res) => {
|
||||
if (res.code == 200) {
|
||||
this.getData();
|
||||
this.$message.success("Operation successful");
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
// that.$message({
|
||||
// type: 'error',
|
||||
// message: 'Operation failed'
|
||||
// });
|
||||
});
|
||||
},
|
||||
// 通过
|
||||
handlePass (index, row) {
|
||||
ElMessageBox.confirm("Are you sure you want to pass?", "Prompt", {
|
||||
type: "warning",
|
||||
confirmButtonText: "Sure",
|
||||
cancelButtonText: "Cancel",
|
||||
})
|
||||
.then(() => {
|
||||
prettyNumberExaminePass({ id: row.id }).then((res) => {
|
||||
if (res.code == 200) {
|
||||
this.getData();
|
||||
ElMessage({
|
||||
showClose: true,
|
||||
message: "Operation successful",
|
||||
type: "success",
|
||||
});
|
||||
} else {
|
||||
ElMessage({
|
||||
showClose: true,
|
||||
message: res.message,
|
||||
type: "error",
|
||||
});
|
||||
}
|
||||
});
|
||||
})
|
||||
.catch(() => { });
|
||||
},
|
||||
// 拒绝
|
||||
handleReject (index, row) {
|
||||
ElMessageBox.confirm("Are you sure you want to refuse?", "Prompt", {
|
||||
type: "warning",
|
||||
confirmButtonText: "Sure",
|
||||
cancelButtonText: "Cancel",
|
||||
})
|
||||
.then(() => {
|
||||
prettyNumberExamineReject({ id: row.id }).then((res) => {
|
||||
if (res.code == 200) {
|
||||
this.getData();
|
||||
ElMessage({
|
||||
showClose: true,
|
||||
message: "Operation successful",
|
||||
type: "success",
|
||||
});
|
||||
} else {
|
||||
ElMessage({
|
||||
showClose: true,
|
||||
message: res.message,
|
||||
type: "error",
|
||||
});
|
||||
}
|
||||
});
|
||||
})
|
||||
.catch(() => { });
|
||||
},
|
||||
// 删除操作
|
||||
handleDelete (index, row) {
|
||||
// 二次确认删除
|
||||
ElMessageBox.confirm("Are you sure you want to delete?", "Prompt", {
|
||||
type: "warning",
|
||||
confirmButtonText: "Sure",
|
||||
cancelButtonText: "Cancel",
|
||||
})
|
||||
.then(() => {
|
||||
prettyNumberExamineDelete({ id: row.id }).then((res) => {
|
||||
if (res.code == 200) {
|
||||
this.getData();
|
||||
ElMessage({
|
||||
showClose: true,
|
||||
message: "Operation successful",
|
||||
type: "success",
|
||||
});
|
||||
} else {
|
||||
ElMessage({
|
||||
showClose: true,
|
||||
message: res.message,
|
||||
type: "error",
|
||||
});
|
||||
}
|
||||
});
|
||||
})
|
||||
.catch(() => { });
|
||||
},
|
||||
// 点击搜索
|
||||
handSearch () {
|
||||
this.$refs["searchForm"].validate((valid) => {
|
||||
if (valid) {
|
||||
this.pageParams.pageNo = 1;
|
||||
this.getData();
|
||||
}
|
||||
});
|
||||
},
|
||||
// 重置搜索表单
|
||||
resetSearchForm () {
|
||||
this.$refs["searchForm"].resetFields();
|
||||
this.pageParams.pageNo = 1;
|
||||
this.getData();
|
||||
},
|
||||
// 分页导航
|
||||
handleSizeChange (val) {
|
||||
this.pageParams.pageNo = val;
|
||||
this.getData();
|
||||
},
|
||||
handlePageChange (val) {
|
||||
this.pageParams.pageNo = val;
|
||||
this.getData();
|
||||
},
|
||||
headerCopy (column, e) {
|
||||
this.$copy(column.label);
|
||||
},
|
||||
initPartition () {
|
||||
getPartitionInfoList().then(res => {
|
||||
let data = res.data;
|
||||
this.partitionInfoList = data;
|
||||
});
|
||||
},
|
||||
},
|
||||
computed: {
|
||||
applyStateTag () {
|
||||
return function (val) {
|
||||
let text = "";
|
||||
switch (val) {
|
||||
case 0:
|
||||
text = "warning";
|
||||
break;
|
||||
case 1:
|
||||
text = "success";
|
||||
break;
|
||||
case 2:
|
||||
text = "info";
|
||||
break;
|
||||
case 3:
|
||||
text = "danger";
|
||||
break;
|
||||
}
|
||||
return text;
|
||||
};
|
||||
},
|
||||
applyStateText () {
|
||||
return function (val) {
|
||||
let text = "";
|
||||
switch (val) {
|
||||
case 0:
|
||||
text = "In Review";
|
||||
break;
|
||||
case 1:
|
||||
text = "Passed";
|
||||
break;
|
||||
case 2:
|
||||
text = "Rejected";
|
||||
break;
|
||||
case 3:
|
||||
text = "Deleted";
|
||||
break;
|
||||
}
|
||||
return text;
|
||||
};
|
||||
},
|
||||
convertTimestamp () {
|
||||
return function (time) {
|
||||
let date = new Date(time);
|
||||
return formatDate(date);
|
||||
};
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.red {
|
||||
color: rgb(241, 19, 19);
|
||||
}
|
||||
|
||||
// ::v-deep {
|
||||
// .el-upload--picture-card {
|
||||
// background-color: transparent;
|
||||
// border: 0;
|
||||
// border-radius: 0;
|
||||
// box-sizing: border-box;
|
||||
// width: 0;
|
||||
// height: 45px;
|
||||
// line-height: 0;
|
||||
// vertical-align: top;
|
||||
// }
|
||||
// }
|
||||
.file-uploader {
|
||||
display: block;
|
||||
margin-left: 51px;
|
||||
input {
|
||||
display: none;
|
||||
}
|
||||
.el-upload {
|
||||
background-color: transparent;
|
||||
border: 0;
|
||||
border-radius: 0;
|
||||
box-sizing: border-box;
|
||||
width: 0;
|
||||
height: 45px;
|
||||
line-height: 0;
|
||||
vertical-align: top;
|
||||
}
|
||||
span {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
</style>
|
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user