Compare commits
327 Commits
feature/lu
...
luckyGift
Author | SHA1 | Date | |
---|---|---|---|
![]() |
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 |
@@ -17,5 +17,6 @@ module.exports = {
|
||||
'no-unused-vars': 'off',
|
||||
'no-useless-escape': 'off',
|
||||
'no-control-regex': 'off',
|
||||
'no-extra-semi': 'off',
|
||||
}
|
||||
}
|
||||
|
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",
|
||||
|
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
|
||||
});
|
||||
};
|
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;
|
||||
};
|
34
src/api/VipGive/VipGive.js
Normal file
34
src/api/VipGive/VipGive.js
Normal file
@@ -0,0 +1,34 @@
|
||||
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
|
||||
});
|
||||
};
|
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
|
||||
});
|
||||
};
|
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
|
||||
});
|
||||
};
|
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;
|
||||
};
|
70
src/api/luckGift/luckGift.js
Normal file
70
src/api/luckGift/luckGift.js
Normal file
@@ -0,0 +1,70 @@
|
||||
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 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
|
||||
});
|
||||
};
|
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;
|
||||
};
|
173
src/api/luckyTycoon/luckyTycoon.js
Normal file
173
src/api/luckyTycoon/luckyTycoon.js
Normal file
@@ -0,0 +1,173 @@
|
||||
import request from '@/utils/request';
|
||||
import { genQueryParam } from '@/utils/maintainer';
|
||||
|
||||
// 地区接口
|
||||
export const listPartitionInfo = query => {
|
||||
return request({
|
||||
url: '/partition/listPartitionInfo',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 福袋列表请求
|
||||
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;
|
||||
};
|
58
src/api/medal/medal.js
Normal file
58
src/api/medal/medal.js
Normal file
@@ -0,0 +1,58 @@
|
||||
import request from '@/utils/request';
|
||||
import { genQueryParam } from '@/utils/maintainer';
|
||||
// 地区接口
|
||||
export const listPartitionInfo = query => {
|
||||
return request({
|
||||
url: '/partition/listPartitionInfo',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// 勋章信息-列表
|
||||
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
|
||||
});
|
||||
};
|
263
src/api/nobleman/nobleman.js
Normal file
263
src/api/nobleman/nobleman.js
Normal file
@@ -0,0 +1,263 @@
|
||||
import request from '@/utils/request';
|
||||
import { genQueryParam } from '@/utils/maintainer';
|
||||
|
||||
// 分区接口
|
||||
export const listPartitionInfo = query => {
|
||||
return request({
|
||||
url: '/partition/listPartitionInfo',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
|
||||
// 邀请移除记录
|
||||
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
|
||||
});
|
||||
};
|
103
src/api/noblemanNew/noblemanNew.js
Normal file
103
src/api/noblemanNew/noblemanNew.js
Normal file
@@ -0,0 +1,103 @@
|
||||
import request from '@/utils/request';
|
||||
import { genQueryParam } from '@/utils/maintainer';
|
||||
|
||||
// 分区接口
|
||||
export const listPartitionInfo = query => {
|
||||
return request({
|
||||
url: '/partition/listPartitionInfo',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
|
||||
// 邀请移除记录
|
||||
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
|
||||
});
|
||||
};
|
9
src/api/partition/partitionInfo.js
Normal file
9
src/api/partition/partitionInfo.js
Normal file
@@ -0,0 +1,9 @@
|
||||
import request from '@/utils/request';
|
||||
|
||||
export const getPartitionInfoList = query => {
|
||||
return request({
|
||||
url: '/partition/listPartitionInfo',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
185
src/api/relAgency/relAgency.js
Normal file
185
src/api/relAgency/relAgency.js
Normal file
@@ -0,0 +1,185 @@
|
||||
|
||||
import request from '@/utils/request';
|
||||
import qs from 'qs';
|
||||
import { genQueryParam } from '@/utils/maintainer';
|
||||
// 活动配置 相关接口(一级菜单:活动配置)
|
||||
|
||||
// 分区接口
|
||||
export const listPartitionInfo = query => {
|
||||
return request({
|
||||
url: '/partition/listPartitionInfo',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
|
||||
// 获取 周期列表
|
||||
export const getDateCycleList = query => {
|
||||
return request({
|
||||
url: '/anchorSalaryBill/dateCycle/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
|
||||
// 获取 公会钻石薪资流水统计 列表
|
||||
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;
|
||||
};
|
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
|
||||
});
|
||||
};
|
87
src/api/roomBackground/roomBackground.js
Normal file
87
src/api/roomBackground/roomBackground.js
Normal file
@@ -0,0 +1,87 @@
|
||||
import request from '@/utils/request';
|
||||
import { genQueryParam } from '@/utils/maintainer';
|
||||
import qs from 'qs';
|
||||
|
||||
// 地区接口
|
||||
export const listPartitionInfo = query => {
|
||||
return request({
|
||||
url: '/partition/listPartitionInfo',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
// ==============================================首页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
|
||||
});
|
||||
};
|
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
|
||||
});
|
||||
}
|
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 © 2024 <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>molistar</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",
|
||||
};
|
12
src/main.js
12
src/main.js
@@ -49,11 +49,17 @@ 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);
|
||||
};
|
||||
|
||||
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;
|
||||
|
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}`;
|
||||
}
|
@@ -35,4 +35,20 @@ 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>');
|
||||
}
|
||||
}
|
242
src/views/GiftPanelManagement/GiftPanelManagement.vue
Normal file
242
src/views/GiftPanelManagement/GiftPanelManagement.vue
Normal file
@@ -0,0 +1,242 @@
|
||||
<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";
|
||||
// @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: 4,
|
||||
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();
|
||||
},
|
||||
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 = `土耳其区`;
|
||||
}
|
||||
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>
|
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
@@ -655,7 +655,7 @@ export default {
|
||||
field: 'type', title: '奖品类型', align: 'center', width: '5%', valign: 'middle', formatter: function (val, row, index) {
|
||||
switch (val) {
|
||||
case 1:
|
||||
return '金币';
|
||||
return '钻石';
|
||||
|
||||
case 2:
|
||||
return '在线礼物';
|
||||
|
@@ -597,7 +597,7 @@ export default {
|
||||
var id = $(this).data('id');
|
||||
$.ajax({
|
||||
type: "get",
|
||||
url: "/admin/charge/activity/getById.action",
|
||||
url: "/admin/charge/activity/getById",
|
||||
data: { id: id },
|
||||
dataType: "json",
|
||||
success: function (json) {
|
||||
@@ -716,7 +716,7 @@ export default {
|
||||
$('#modal_packName').append('<option value="">请选择...</option>');
|
||||
$.ajax({
|
||||
type: "get",
|
||||
url: "/admin/activity/pack/list.action",
|
||||
url: "/admin/activity/pack/list",
|
||||
data: {
|
||||
status: 1
|
||||
},
|
||||
@@ -760,7 +760,7 @@ export default {
|
||||
if (confirm("你确认删除该记录吗? \r\n 删除后再也不能找回,请谨慎操作!")) {
|
||||
$.ajax({
|
||||
type: 'post',
|
||||
url: "/admin/charge/activity/delete.action",
|
||||
url: "/admin/charge/activity/delete",
|
||||
data: { id: id },
|
||||
dataType: "json",
|
||||
success: function (json) {
|
||||
@@ -791,7 +791,7 @@ export default {
|
||||
}
|
||||
$.ajax({
|
||||
type: "get",
|
||||
url: "/admin/activity/pack/list.action",
|
||||
url: "/admin/activity/pack/list",
|
||||
data: {
|
||||
status: 1
|
||||
},
|
||||
|
@@ -218,7 +218,7 @@ export default {
|
||||
queryParamsType: "undefined",
|
||||
uniqueId: 'id',
|
||||
toolbar: '#toolbar',
|
||||
url: '/admin/luckySea/listItemGroup.action',
|
||||
url: '/admin/luckySea/listItemGroup',
|
||||
onLoadSuccess: function (data) { //加载成功时执行
|
||||
console.log("load success");
|
||||
},
|
||||
@@ -410,7 +410,7 @@ export default {
|
||||
}
|
||||
|
||||
function getPageInfo() {
|
||||
$.get('/admin/luckySea/listItem.action', {
|
||||
$.get('/admin/luckySea/listItem', {
|
||||
}, function (res) {
|
||||
console.log(res);
|
||||
const data = res;
|
||||
|
@@ -154,7 +154,7 @@ export default {
|
||||
return param;
|
||||
},
|
||||
toolbar: '#toolbar',
|
||||
url: '/admin/luckySea/listPlatformStat.action',
|
||||
url: '/admin/luckySea/listPlatformStat',
|
||||
onLoadSuccess: function () { //加载成功时执行
|
||||
console.log("load success");
|
||||
},
|
||||
|
@@ -14,7 +14,7 @@
|
||||
<i class="glyphicon glyphicon-search"></i>查询
|
||||
</button>
|
||||
<div class="col-sm-12">
|
||||
当前库存 <span name="stock" id="stock" />钻石
|
||||
当前库存 <span name="stock" id="stock" />金币
|
||||
<button id="editStock" class="btn btn-default">编辑库存</button>
|
||||
</div>
|
||||
</div>
|
||||
@@ -58,7 +58,7 @@
|
||||
<h4 class="modal-title" id="editStockModalTitle">编辑库存</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
设置库存为 <input type="text" name="editedStock" id="editedStock" class="input-sm"> 钻石
|
||||
设置库存为 <input type="text" name="editedStock" id="editedStock" class="input-sm"> 金币
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<h4 id="editStockModalFooter"></h4>
|
||||
@@ -163,7 +163,7 @@ export default {
|
||||
return param;
|
||||
},
|
||||
toolbar: '#toolbar',
|
||||
url: '/admin/luckySea/listActRecord.action',
|
||||
url: '/admin/luckySea/listActRecord',
|
||||
onLoadSuccess: function () { //加载成功时执行
|
||||
console.log("load success");
|
||||
},
|
||||
@@ -228,7 +228,7 @@ export default {
|
||||
};
|
||||
return param;
|
||||
},
|
||||
url: '/admin/luckySea/listRoundDrawDetail.action',
|
||||
url: '/admin/luckySea/listRoundDrawDetail',
|
||||
onLoadSuccess: function () { //加载成功时执行
|
||||
$("#roundDetailModal").modal('show');
|
||||
},
|
||||
@@ -247,7 +247,7 @@ export default {
|
||||
function getStock() {
|
||||
$.ajax({
|
||||
type: 'get',
|
||||
url: "/admin/luckySea/getStock.action",
|
||||
url: "/admin/luckySea/getStock",
|
||||
success: function (json) {
|
||||
if (json.success) {
|
||||
console.log('data', json.data)
|
||||
@@ -268,7 +268,7 @@ export default {
|
||||
$('#editStockModelBtn').on('click', function () {
|
||||
$.ajax({
|
||||
type: 'get',
|
||||
url: "/admin/luckySea/editStock.action",
|
||||
url: "/admin/luckySea/editStock",
|
||||
data: {
|
||||
stock: $("#editedStock").val(),
|
||||
},
|
||||
|
@@ -83,7 +83,7 @@ export default {
|
||||
return param;
|
||||
},
|
||||
toolbar: '#toolbar',
|
||||
url: '/admin/luckySea/listUserDrawRecordList.action',
|
||||
url: '/admin/luckySea/listUserDrawRecordList',
|
||||
onLoadSuccess: function () { //加载成功时执行
|
||||
console.log("load success");
|
||||
},
|
||||
|
@@ -145,7 +145,7 @@ export default {
|
||||
},
|
||||
uniqueId: 'id',
|
||||
toolbar: '#toolbar',
|
||||
url: '/admin/act/operational/list.action',
|
||||
url: '/admin/act/operational/list',
|
||||
onLoadSuccess: function () { //加载成功时执行
|
||||
console.log("load success");
|
||||
},
|
||||
@@ -176,7 +176,7 @@ export default {
|
||||
if ($('#actForm').validationEngine('validate')) {
|
||||
$.ajax({
|
||||
type: "post",
|
||||
url: "/admin/act/operational/save.action",
|
||||
url: "/admin/act/operational/save",
|
||||
data: $('#actForm').serialize(),
|
||||
dataType: 'json',
|
||||
success: function (json) {
|
||||
@@ -197,7 +197,7 @@ export default {
|
||||
var key = parseInt($(this).attr('data-id'));
|
||||
$.ajax({
|
||||
type: 'post',
|
||||
url: '/admin/act/operational/del.action',
|
||||
url: '/admin/act/operational/del',
|
||||
data: { 'id': key },
|
||||
dataType: 'json',
|
||||
success: function (res) {
|
||||
@@ -215,7 +215,7 @@ export default {
|
||||
$('#uploadBtn').on('click', function () {
|
||||
var options = {
|
||||
type: 'post',
|
||||
url: '/admin/upload/img.action',
|
||||
url: '/admin/upload/img',
|
||||
dataType: 'json',
|
||||
success: function (json) {
|
||||
if (json.path) {
|
||||
|
@@ -135,7 +135,7 @@ export default {
|
||||
},
|
||||
uniqueId: 'id',
|
||||
toolbar: '#toolbar',
|
||||
url: '/admin/act/static/list.action',
|
||||
url: '/admin/act/static/list',
|
||||
onLoadSuccess: function () { //加载成功时执行
|
||||
console.log("load success");
|
||||
},
|
||||
@@ -165,7 +165,7 @@ export default {
|
||||
if ($('#actForm').validationEngine('validate')) {
|
||||
$.ajax({
|
||||
type: "post",
|
||||
url: "/admin/act/static/save.action",
|
||||
url: "/admin/act/static/save",
|
||||
data: $('#actForm').serialize(),
|
||||
dataType: 'json',
|
||||
success: function (json) {
|
||||
@@ -190,7 +190,7 @@ export default {
|
||||
var key = parseInt($(this).attr('data-id'));
|
||||
$.ajax({
|
||||
type: 'post',
|
||||
url: '/admin/act/static/delete.action',
|
||||
url: '/admin/act/static/delete',
|
||||
data: { 'id': key },
|
||||
dataType: 'json',
|
||||
success: function (res) {
|
||||
@@ -208,7 +208,7 @@ export default {
|
||||
$('#uploadBtn').on('click', function () {
|
||||
var options = {
|
||||
type: 'post',
|
||||
url: '/admin/upload/img.action',
|
||||
url: '/admin/upload/img',
|
||||
dataType: 'json',
|
||||
success: function (json) {
|
||||
if (json.path) {
|
||||
|
@@ -166,8 +166,14 @@ export default {
|
||||
field: 'charmAward', title: '魅力榜奖励', align: 'center', valign: 'middle', formatter: function (val, row, index) {
|
||||
var packArr = JSON.parse(val);
|
||||
var str = '';
|
||||
for (var i = 0; i < packArr.length; i++) {
|
||||
str += packObj[packArr[i]] + ',';
|
||||
for (var i = 0, len = packArr.length; i < len; i++) {
|
||||
let value = packObj[packArr[i]];
|
||||
if (value) {
|
||||
str += value;
|
||||
}
|
||||
if (i != len - 1) {
|
||||
str += ',';
|
||||
}
|
||||
}
|
||||
return str.substr(0, str.length - 2);
|
||||
}
|
||||
@@ -176,8 +182,14 @@ export default {
|
||||
field: 'levelAward', title: '豪气榜奖励', align: 'center', valign: 'middle', formatter: function (val, row, index) {
|
||||
var packArr = JSON.parse(val);
|
||||
var str = '';
|
||||
for (var i = 0; i < packArr.length; i++) {
|
||||
str += packObj[packArr[i]] + ',';
|
||||
for (var i = 0, len = packArr.length; i < len; i++) {
|
||||
let value = packObj[packArr[i]];
|
||||
if (value) {
|
||||
str += value;
|
||||
}
|
||||
if (i != len - 1) {
|
||||
str += ',';
|
||||
}
|
||||
}
|
||||
return str.substr(0, str.length - 2);
|
||||
}
|
||||
@@ -232,7 +244,7 @@ export default {
|
||||
},
|
||||
uniqueId: 'id',
|
||||
toolbar: '#toolbar',
|
||||
url: '/admin/weekStarConfig/getWeekConfigList.action',
|
||||
url: '/admin/weekStarConfig/getWeekConfigList',
|
||||
onLoadSuccess: function () { //加载成功时执行
|
||||
console.log("load success");
|
||||
},
|
||||
@@ -341,10 +353,15 @@ export default {
|
||||
if (res.code == 200) {
|
||||
var str = '';
|
||||
for (var i = 0; i < res.data.length; i++) {
|
||||
let item = res.data[i];
|
||||
let giftName = item.giftName;
|
||||
if (giftName.startsWith('{') && giftName.endsWith('}')) {
|
||||
giftName = JSON.parse(giftName).zh;
|
||||
}
|
||||
// 存入对象
|
||||
giftObj[res.data[i].giftId] = res.data[i].giftName;
|
||||
giftObj[res.data[i].giftId] = giftName;
|
||||
// 渲染select
|
||||
str += '<option value="' + res.data[i].giftId + '">' + res.data[i].giftName + '</option>';
|
||||
str += '<option value="' + res.data[i].giftId + '">' + giftName + '</option>';
|
||||
}
|
||||
console.log(JSON.stringify(giftObj));
|
||||
// $('.giftSelect').html(str);
|
||||
@@ -362,10 +379,15 @@ export default {
|
||||
if (res.code == 200) {
|
||||
var str = '';
|
||||
for (var i = 0; i < res.data.length; i++) {
|
||||
let item = res.data[i];
|
||||
let giftName = item.giftName;
|
||||
if (giftName.startsWith('{') && giftName.endsWith('}')) {
|
||||
giftName = JSON.parse(giftName).zh;
|
||||
}
|
||||
// 存入对象
|
||||
giftObj[res.data[i].giftId] = res.data[i].giftName;
|
||||
giftObj[res.data[i].giftId] = giftName;
|
||||
// 渲染select
|
||||
str += '<option value="' + res.data[i].giftId + '">' + res.data[i].giftName + '</option>';
|
||||
str += '<option value="' + res.data[i].giftId + '">' + giftName + '</option>';
|
||||
}
|
||||
console.log(JSON.stringify(giftObj));
|
||||
$('.giftSelect').html(str);
|
||||
|
@@ -150,7 +150,7 @@ export default {
|
||||
return param;
|
||||
},
|
||||
toolbar: '#toolbar',
|
||||
url: '/admin/super/operate/record/list.action',
|
||||
url: '/admin/super/operate/record/list',
|
||||
onLoadSuccess: function () { //加载成功时执行
|
||||
console.log("load success");
|
||||
},
|
||||
|
@@ -83,7 +83,7 @@ export default {
|
||||
var params = "uids=" + id;
|
||||
$.ajax({
|
||||
type: 'post',
|
||||
url: "/admin/super/del.action",
|
||||
url: "/admin/super/del",
|
||||
data: params,
|
||||
dataType: "json",
|
||||
success: function (json) {
|
||||
@@ -114,7 +114,7 @@ export default {
|
||||
showLoading()
|
||||
$.ajax({
|
||||
type: "post",
|
||||
url: "/admin/super/save.action",
|
||||
url: "/admin/super/save",
|
||||
data: 'erbanNo=' + erbanNo,
|
||||
dataType: "json",
|
||||
success: function (json) {
|
||||
@@ -180,7 +180,7 @@ function initTable() {
|
||||
return param;
|
||||
},
|
||||
toolbar: '#toolbar',
|
||||
url: '/admin/super/list.action',
|
||||
url: '/admin/super/list',
|
||||
onLoadSuccess: function (data) { //加载成功时执行
|
||||
setTimeout(function () {
|
||||
loadCreateTime(data);
|
||||
@@ -205,7 +205,7 @@ function loadCreateTime(data) {
|
||||
if (param != '') {
|
||||
$.ajax({
|
||||
type: "get",
|
||||
url: "/admin/super/get/time.action",
|
||||
url: "/admin/super/get/time",
|
||||
data: param,
|
||||
dataType: "json",
|
||||
success: function (json) {
|
||||
|
@@ -41,8 +41,8 @@
|
||||
<div class="col-sm-9">
|
||||
<span>
|
||||
<font color="#dd4b39">1.上传文件仅支持.xlsx格式的文件<br>
|
||||
2.文件内容第一行为标题(例:平台号,金币,钻石)<br>
|
||||
3.第一列为用户平台号,第二列为用户要添加的金币数量,第三列为用户要添加的钻石数量
|
||||
2.文件内容第一行为标题(例:平台号,钻石,金币)<br>
|
||||
3.第一列为用户平台号,第二列为用户要添加的钻石数量,第三列为用户要添加的金币数量
|
||||
</font>
|
||||
</span>
|
||||
</div>
|
||||
|
@@ -167,7 +167,7 @@ export default {
|
||||
},
|
||||
toolbar: '#toolbar',
|
||||
uniqueId: 'id',
|
||||
url: '/admin/anchorFansTeamAudio/recordList.action',
|
||||
url: '/admin/anchorFansTeamAudio/recordList',
|
||||
onLoadSuccess: function () { //加载成功时执行
|
||||
console.log("load success");
|
||||
},
|
||||
@@ -195,7 +195,7 @@ export default {
|
||||
if (confirm("确定批量批量审核通过图片吗?")) {
|
||||
$.ajax({
|
||||
type: 'post',
|
||||
url: '/admin/photo/batchPass.action',
|
||||
url: '/admin/photo/batchPass',
|
||||
data: { pid: JSON.stringify(pid) },
|
||||
dataType: 'json',
|
||||
success: function (res) {
|
||||
@@ -221,7 +221,7 @@ export default {
|
||||
// console.log(data)
|
||||
$.ajax({
|
||||
type: 'post',
|
||||
url: '/admin/anchorFansTeamAudio/pass.action',
|
||||
url: '/admin/anchorFansTeamAudio/pass',
|
||||
data: { pid: dataId, status: 2 },
|
||||
dataType: 'json',
|
||||
success: function (res) {
|
||||
@@ -260,7 +260,7 @@ export default {
|
||||
if ($("#messageForm").validationEngine('validate')) {
|
||||
$.ajax({
|
||||
type: 'post',
|
||||
url: '/admin/anchorFansTeamAudio/pass.action',
|
||||
url: '/admin/anchorFansTeamAudio/pass',
|
||||
data: { pid: dataId, message: message, status: 1 },
|
||||
dataType: 'json',
|
||||
success: function (res) {
|
||||
|
@@ -261,7 +261,7 @@ export default {
|
||||
ajax: function (request) { //使用ajax请求
|
||||
$.ajax({
|
||||
type: "GET",
|
||||
url: '/admin/anchorFansPrivilege/privilegeList.action',
|
||||
url: '/admin/anchorFansPrivilege/privilegeList',
|
||||
contentType: 'application/json;charset=utf-8',
|
||||
dataType: 'json',
|
||||
data: request.data,
|
||||
@@ -322,7 +322,7 @@ export default {
|
||||
console.log(2333)
|
||||
$.ajax({
|
||||
type: "post",
|
||||
url: "/admin/anchorFansPrivilege/savePrivilege.action",
|
||||
url: "/admin/anchorFansPrivilege/savePrivilege",
|
||||
data: {
|
||||
id: id,
|
||||
name: name,
|
||||
@@ -361,7 +361,7 @@ export default {
|
||||
|
||||
$.ajax({
|
||||
type: "get",
|
||||
url: "/admin/anchorFansPrivilege/getPrivilegeInfo.action",
|
||||
url: "/admin/anchorFansPrivilege/getPrivilegeInfo",
|
||||
data: { id: id },
|
||||
dataType: "json",
|
||||
success: function (res) {
|
||||
|
@@ -127,7 +127,7 @@ export default {
|
||||
},
|
||||
toolbar: '#toolbar',
|
||||
uniqueId: 'uid',
|
||||
url: '/admin/anchorFansTeam/statis/statisList.action',
|
||||
url: '/admin/anchorFansTeam/statis/statisList',
|
||||
onLoadSuccess: function () { //加载成功时执行
|
||||
console.log("load success");
|
||||
},
|
||||
@@ -184,7 +184,7 @@ export default {
|
||||
};
|
||||
return param;
|
||||
},
|
||||
url: '/admin/anchorFansTeam/statis/team/DetailList.action',
|
||||
url: '/admin/anchorFansTeam/statis/team/DetailList',
|
||||
onLoadSuccess: function () { //加载成功时执行
|
||||
$("#roundDetailModal").modal('show');
|
||||
},
|
||||
|
@@ -65,8 +65,8 @@
|
||||
<div class="col-sm-9">
|
||||
<span>
|
||||
<font color="#dd4b39">1.上传文件仅支持.xlsx格式的文件<br>
|
||||
2.文件内容第一行为标题(例:平台号,金币,钻石)<br>
|
||||
3.第一列为用户平台号,第二列为用户要添加的金币数量,第三列为用户要添加的钻石数量
|
||||
2.文件内容第一行为标题(例:平台号,钻石,金币)<br>
|
||||
3.第一列为用户平台号,第二列为用户要添加的钻石数量,第三列为用户要添加的金币数量
|
||||
</font>
|
||||
</span>
|
||||
</div>
|
||||
@@ -107,8 +107,8 @@ export default {
|
||||
// {field: 'temp', title: 'id', align: 'center', checkbox: true, width: '5%'},
|
||||
{ field: 'erbanNo', title: '平台号', align: 'center', width: '5%' },
|
||||
{ field: 'nick', title: '昵称', align: 'center', width: '5%' },
|
||||
{ field: 'goldNum', title: '金币数量', align: 'center', width: '5%' },
|
||||
{ field: 'diamondNum', title: '钻石数量', align: 'center', width: '5%' },
|
||||
{ field: 'goldNum', title: '钻石数量', align: 'center', width: '5%' },
|
||||
{ field: 'diamondNum', title: '金币数量', align: 'center', width: '5%' },
|
||||
{
|
||||
field: 'createTime',
|
||||
title: '创建时间',
|
||||
@@ -234,7 +234,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) {
|
||||
|
@@ -415,7 +415,7 @@ export default {
|
||||
ajax: function (request) { //使用ajax请求
|
||||
$.ajax({
|
||||
type: "GET",
|
||||
url: '/admin/bottomBar/list.action',
|
||||
url: '/admin/bottomBar/list',
|
||||
contentType: 'application/json;charset=utf-8',
|
||||
dataType: 'json',
|
||||
data: request.data,
|
||||
@@ -544,7 +544,7 @@ export default {
|
||||
if ($("#addForm").validationEngine('validate')) {
|
||||
$.ajax({
|
||||
type: "post",
|
||||
url: "/admin/bottomBar/saveBottomBar.action",
|
||||
url: "/admin/bottomBar/saveBottomBar",
|
||||
data: {
|
||||
refSeq: refSeq,
|
||||
configName: configName,
|
||||
@@ -594,7 +594,7 @@ export default {
|
||||
|
||||
$.ajax({
|
||||
type: "get",
|
||||
url: "/admin/bottomBar/getBarByRefSeq.action",
|
||||
url: "/admin/bottomBar/getBarByRefSeq",
|
||||
data: { refSeq: refSeq },
|
||||
dataType: "json",
|
||||
success: function (res) {
|
||||
@@ -671,7 +671,7 @@ export default {
|
||||
if (confirm("你确认删除该记录吗? \r\n 删除后再也不能找回,请谨慎操作!")) {
|
||||
$.ajax({
|
||||
type: 'post',
|
||||
url: "/admin/bottomBar/deleteByRefSeq.action",
|
||||
url: "/admin/bottomBar/deleteByRefSeq",
|
||||
data: { refSeq: refSeq },
|
||||
dataType: "json",
|
||||
success: function (json) {
|
||||
|
@@ -266,7 +266,7 @@ export default {
|
||||
ajax: function (request) { //使用ajax请求
|
||||
$.ajax({
|
||||
type: "GET",
|
||||
url: '/admin/appUpdate/list.action',
|
||||
url: '/admin/appUpdate/list',
|
||||
contentType: 'application/json;charset=utf-8',
|
||||
dataType: 'json',
|
||||
data: request.data,
|
||||
@@ -310,7 +310,7 @@ export default {
|
||||
if ($("#addModalForm").validationEngine('validate')) {
|
||||
$.ajax({
|
||||
type: "post",
|
||||
url: "/admin/appUpdate/save.action",
|
||||
url: "/admin/appUpdate/save",
|
||||
data: {
|
||||
name: $("#modal_name").val(),
|
||||
forceUpdate: $("#modal_forceUpdate").val(),
|
||||
@@ -347,7 +347,7 @@ export default {
|
||||
if ($("#editForm").validationEngine('validate')) {
|
||||
$.ajax({
|
||||
type: "post",
|
||||
url: "/admin/appUpdate/save.action",
|
||||
url: "/admin/appUpdate/save",
|
||||
data: {
|
||||
id: $("#id").val(),
|
||||
name: $("#name").val(),
|
||||
@@ -386,7 +386,7 @@ export default {
|
||||
console.log(id);
|
||||
$.ajax({
|
||||
type: "get",
|
||||
url: "/admin/appUpdate/get.action",
|
||||
url: "/admin/appUpdate/get",
|
||||
data: { id: id },
|
||||
dataType: "json",
|
||||
success: function (ret) {
|
||||
|
@@ -163,7 +163,7 @@ export default {
|
||||
};
|
||||
},
|
||||
toolbar: '#toolbar',
|
||||
url: '/admin/audioCard/page.action',
|
||||
url: '/admin/audioCard/page',
|
||||
onLoadSuccess: function () { //加载成功时执行
|
||||
console.log("load success");
|
||||
},
|
||||
@@ -221,7 +221,7 @@ export default {
|
||||
showLoading();
|
||||
$.ajax({
|
||||
type: 'post',
|
||||
url: "/admin/audioCard/verify.action",
|
||||
url: "/admin/audioCard/verify",
|
||||
data: {
|
||||
id: id,
|
||||
status: status
|
||||
|
@@ -382,7 +382,7 @@ export default {
|
||||
return param;
|
||||
},
|
||||
toolbar: '#toolbar',
|
||||
url: '/admin/audit/audio/list.action',
|
||||
url: '/admin/audit/audio/list',
|
||||
onLoadSuccess: function () { //加载成功时执行
|
||||
console.log("load success");
|
||||
},
|
||||
@@ -405,7 +405,7 @@ export default {
|
||||
var id = $(this).attr("data-id");
|
||||
$.ajax({
|
||||
type: "post",
|
||||
url: "/admin/audit/audio/handle/pass.action",
|
||||
url: "/admin/audit/audio/handle/pass",
|
||||
data: { recordId: id },
|
||||
dataType: "json",
|
||||
success: function (json) {
|
||||
@@ -425,7 +425,7 @@ export default {
|
||||
var id = $(this).attr("data-id");
|
||||
$.ajax({
|
||||
type: "post",
|
||||
url: "/admin/audit/audio/handle/unBlock.action",
|
||||
url: "/admin/audit/audio/handle/unBlock",
|
||||
data: { recordId: id },
|
||||
dataType: "json",
|
||||
success: function (json) {
|
||||
@@ -474,7 +474,7 @@ export default {
|
||||
if ($("#modalLabel").validationEngine('validate')) {
|
||||
$.ajax({
|
||||
type: "post",
|
||||
url: "/admin/audit/audio/handle/reject.action",
|
||||
url: "/admin/audit/audio/handle/reject",
|
||||
data: {
|
||||
recordId: recordId,
|
||||
resultValue: resultValue,
|
||||
@@ -508,7 +508,7 @@ export default {
|
||||
if ($("#blockModalLabel").validationEngine('validate')) {
|
||||
$.ajax({
|
||||
type: "post",
|
||||
url: "/admin/audit/audio/handle/reject.action",
|
||||
url: "/admin/audit/audio/handle/reject",
|
||||
data: {
|
||||
recordId: recordId,
|
||||
resultValue: resultValue
|
||||
|
@@ -92,7 +92,7 @@ export default {
|
||||
function getRuleDetail() {
|
||||
$.ajax({
|
||||
type: "get",
|
||||
url: "/admin/audit/audio/get/rule.action",
|
||||
url: "/admin/audit/audio/get/rule",
|
||||
dataType: "json",
|
||||
success: function (json) {
|
||||
if (json.code == 200) {
|
||||
@@ -128,7 +128,7 @@ export default {
|
||||
showLoading();
|
||||
$.ajax({
|
||||
type: "post",
|
||||
url: "/admin/audit/audio/rule/save.action",
|
||||
url: "/admin/audit/audio/rule/save",
|
||||
data: {
|
||||
type: type,
|
||||
erbanNos: $("#erbanNos").val()
|
||||
|
@@ -220,7 +220,7 @@ export default {
|
||||
return param;
|
||||
},
|
||||
toolbar: '#toolbar',
|
||||
url: '/admin/blindDate/listCap.action',
|
||||
url: '/admin/blindDate/listCap',
|
||||
onLoadSuccess: function (res) { //加载成功时执行
|
||||
console.log("load success");
|
||||
},
|
||||
@@ -280,7 +280,7 @@ export default {
|
||||
console.log("id", $("#e_id").val());
|
||||
$.ajax({
|
||||
type: "post",
|
||||
url: "/admin/blindDate/addOrUpdateCap.action",
|
||||
url: "/admin/blindDate/addOrUpdateCap",
|
||||
data: $('#updateForm').serialize(),
|
||||
dataType: "json",
|
||||
success: function (json) {
|
||||
@@ -305,7 +305,7 @@ export default {
|
||||
if (confirm("你确认删除该帽子吗?")) {
|
||||
$.ajax({
|
||||
type: "get",
|
||||
url: "/admin/blindDate/delCap.action",
|
||||
url: "/admin/blindDate/delCap",
|
||||
data: {
|
||||
id: capId,
|
||||
},
|
||||
@@ -326,7 +326,7 @@ export default {
|
||||
$("#add-cap").click(function () {
|
||||
$.ajax({
|
||||
type: "post",
|
||||
url: "/admin/blindDate/addOrUpdateCap.action",
|
||||
url: "/admin/blindDate/addOrUpdateCap",
|
||||
data: $('#addForm').serialize(),
|
||||
dataType: "json",
|
||||
success: function (json) {
|
||||
|
@@ -256,7 +256,7 @@ export default {
|
||||
return param;
|
||||
},
|
||||
toolbar: '#toolbar',
|
||||
url: '/admin/blindDate/listJoinHand.action',
|
||||
url: '/admin/blindDate/listJoinHand',
|
||||
onLoadSuccess: function (res) { //加载成功时执行
|
||||
console.log("load success");
|
||||
},
|
||||
@@ -333,7 +333,7 @@ export default {
|
||||
console.log("id", $("#e_id").val());
|
||||
$.ajax({
|
||||
type: "post",
|
||||
url: "/admin/blindDate/addOrUpdateJoinHand.action",
|
||||
url: "/admin/blindDate/addOrUpdateJoinHand",
|
||||
data: $('#updateForm').serialize(),
|
||||
dataType: "json",
|
||||
success: function (json) {
|
||||
@@ -358,7 +358,7 @@ export default {
|
||||
if (confirm("你确认删除该场景吗?")) {
|
||||
$.ajax({
|
||||
type: "get",
|
||||
url: "/admin/blindDate/delJoinHand.action",
|
||||
url: "/admin/blindDate/delJoinHand",
|
||||
data: {
|
||||
id: JoinHandId,
|
||||
},
|
||||
@@ -379,7 +379,7 @@ export default {
|
||||
$("#add-JoinHand").click(function () {
|
||||
$.ajax({
|
||||
type: "post",
|
||||
url: "/admin/blindDate/addOrUpdateJoinHand.action",
|
||||
url: "/admin/blindDate/addOrUpdateJoinHand",
|
||||
data: $('#addForm').serialize(),
|
||||
dataType: "json",
|
||||
success: function (json) {
|
||||
|
@@ -265,7 +265,7 @@ export default {
|
||||
}
|
||||
|
||||
function getPageInfo() {
|
||||
$.get('/admin/callBattle/listItem.action', {
|
||||
$.get('/admin/callBattle/listItem', {
|
||||
}, function (res) {
|
||||
console.log(res);
|
||||
const data = res;
|
||||
|
@@ -108,7 +108,7 @@ export default {
|
||||
return param;
|
||||
},
|
||||
toolbar: '#toolbar',
|
||||
url: '/admin/callBattle/listPlatformStat.action',
|
||||
url: '/admin/callBattle/listPlatformStat',
|
||||
onLoadSuccess: function () { //加载成功时执行
|
||||
console.log("load success");
|
||||
},
|
||||
|
@@ -14,7 +14,7 @@
|
||||
<i class="glyphicon glyphicon-search"></i>查询
|
||||
</button>
|
||||
<div class="col-sm-12">
|
||||
当前库存 <span name="stock" id="stock" />金币
|
||||
当前库存 <span name="stock" id="stock" />钻石
|
||||
<button id="editStock" class="btn btn-default">编辑库存</button>
|
||||
</div>
|
||||
</div>
|
||||
@@ -58,7 +58,7 @@
|
||||
<h4 class="modal-title" id="editStockModalTitle">编辑库存</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
设置库存为 <input type="text" name="editedStock" id="editedStock" class="input-sm"> 金币
|
||||
设置库存为 <input type="text" name="editedStock" id="editedStock" class="input-sm"> 钻石
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<h4 id="editStockModalFooter"></h4>
|
||||
@@ -164,7 +164,7 @@ export default {
|
||||
return param;
|
||||
},
|
||||
toolbar: '#toolbar',
|
||||
url: '/admin/callBattle/listActRecord.action',
|
||||
url: '/admin/callBattle/listActRecord',
|
||||
onLoadSuccess: function () { //加载成功时执行
|
||||
console.log("load success");
|
||||
},
|
||||
@@ -229,7 +229,7 @@ export default {
|
||||
};
|
||||
return param;
|
||||
},
|
||||
url: '/admin/callBattle/listRoundDrawDetail.action',
|
||||
url: '/admin/callBattle/listRoundDrawDetail',
|
||||
onLoadSuccess: function () { //加载成功时执行
|
||||
$("#roundDetailModal").modal('show');
|
||||
},
|
||||
@@ -248,7 +248,7 @@ export default {
|
||||
function getStock() {
|
||||
$.ajax({
|
||||
type: 'get',
|
||||
url: "/admin/callBattle/getStock.action",
|
||||
url: "/admin/callBattle/getStock",
|
||||
success: function (json) {
|
||||
if (json.success) {
|
||||
console.log('data', json.data)
|
||||
@@ -269,7 +269,7 @@ export default {
|
||||
$('#editStockModelBtn').on('click', function () {
|
||||
$.ajax({
|
||||
type: 'get',
|
||||
url: "/admin/callBattle/editStock.action",
|
||||
url: "/admin/callBattle/editStock",
|
||||
data: {
|
||||
stock: $("#editedStock").val(),
|
||||
},
|
||||
|
@@ -83,7 +83,7 @@ export default {
|
||||
return param;
|
||||
},
|
||||
toolbar: '#toolbar',
|
||||
url: '/admin/callBattle/listUserDrawRecordList.action',
|
||||
url: '/admin/callBattle/listUserDrawRecordList',
|
||||
onLoadSuccess: function () { //加载成功时执行
|
||||
console.log("load success");
|
||||
},
|
||||
|
@@ -168,7 +168,7 @@ export default {
|
||||
return param;
|
||||
},
|
||||
toolbar: '#toolbar',
|
||||
url: '/admin/car/getUserCarPort.action',
|
||||
url: '/admin/car/getUserCarPort',
|
||||
onLoadSuccess: function (data) { //加载成功时执行
|
||||
if (data.users) {
|
||||
var $user = $('#userMessage');
|
||||
|
@@ -33,7 +33,12 @@
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-sm-12">
|
||||
<label for="partitionId" class="col-sm-1 control-label">地区:</label>
|
||||
<div class="col-sm-3">
|
||||
<select name="partitionId" id="partitionId" class="form-control"></select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-12">
|
||||
<button id="car-goods-refresh" class="btn btn-default">
|
||||
<i class="glyphicon glyphicon-search"></i>查询
|
||||
@@ -59,6 +64,15 @@
|
||||
<div class="modal-body">
|
||||
<form class="form-horizontal" id="carGoodsForm">
|
||||
<input type="hidden" name="id" id="id" />
|
||||
<div class="form-group">
|
||||
<label for="partitionFlag" class="col-sm-4 control-label">选择分区</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="checkbox" name="partitionFlag" value="1"/>英语区<br>
|
||||
<input type="checkbox" name="partitionFlag" value="2"/>阿拉伯语区<br>
|
||||
<input type="checkbox" name="partitionFlag" value="4"/>华语区<br>
|
||||
<input type="checkbox" name="partitionFlag" value="8"/>土耳其区<br>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="carGoodsType" class="col-sm-3 control-label">座驾类型:</label>
|
||||
<div class="col-sm-9">
|
||||
@@ -76,6 +90,24 @@
|
||||
<input type="text" class="form-control validate[required]" name="name" id="name">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="ar_name" class="col-sm-3 control-label">阿语座驾名称</label>
|
||||
<div class="col-sm-9">
|
||||
<input type="text" class="form-control validate[required]" name="name" id="ar_name">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="en_name" class="col-sm-3 control-label">英语座驾名称</label>
|
||||
<div class="col-sm-9">
|
||||
<input type="text" class="form-control validate[required]" name="name" id="en_name">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="tr_name" class="col-sm-3 control-label">土耳其驾名称</label>
|
||||
<div class="col-sm-9">
|
||||
<input type="text" class="form-control validate[required]" name="name" id="tr_name">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">使用萝卜购买</label>
|
||||
@@ -111,7 +143,7 @@
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">使用金币购买</label>
|
||||
<label class="col-sm-3 control-label">使用钻石购买</label>
|
||||
<div class="col-sm-9">
|
||||
<label class="radio-inline"><input type="radio" name="goldSale" value="0">否</label>
|
||||
<label class="radio-inline"><input type="radio" name="goldSale" value="1" checked>是</label>
|
||||
@@ -122,7 +154,7 @@
|
||||
<div class="col-sm-6">
|
||||
<input type="text" class="form-control" name="price" id="price">
|
||||
</div>
|
||||
<span class="col-sm-3">金币</span>
|
||||
<span class="col-sm-3">钻石</span>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
@@ -130,7 +162,7 @@
|
||||
<div class="col-sm-6">
|
||||
<input type="text" class="form-control" name="renewPrice" id="renewPrice">
|
||||
</div>
|
||||
<span class="col-sm-3">金币</span>
|
||||
<span class="col-sm-3">钻石</span>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="originalPrice" class="col-sm-3 control-label">原价:</label>
|
||||
@@ -138,7 +170,7 @@
|
||||
<input type="number" class="form-control" placeholder="没有填0" value="0" name="originalPrice"
|
||||
id="originalPrice">
|
||||
</div>
|
||||
<span class="col-sm-3">金币</span>
|
||||
<span class="col-sm-3">钻石</span>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
@@ -374,6 +406,8 @@
|
||||
<script>
|
||||
import TableHelper from '@/utils/bootstrap-table-helper';
|
||||
import ComboboxHelper from '@/assets/plugins/bootstrap-combobox/js/bootstrap-combobox-helper';
|
||||
import { getPartitionInfoList } from '@/api/partition/partitionInfo';
|
||||
import { buildSelectOption } from '@/utils/system-helper';
|
||||
|
||||
export default {
|
||||
name: "CarGoodsAdminView",
|
||||
@@ -382,6 +416,7 @@ export default {
|
||||
},
|
||||
created() {
|
||||
this.$nextTick(function () {
|
||||
this.initPartition();
|
||||
this.initData();
|
||||
});
|
||||
},
|
||||
@@ -407,7 +442,32 @@ export default {
|
||||
columns: [
|
||||
{ field: 'tmp', title: 'id', align: 'center', checkbox: true, width: '5%' },
|
||||
{ field: 'id', title: '座驾ID', align: 'center', width: '5%' },
|
||||
{ field: 'name', title: '座驾名称', align: 'center', width: '20%' },
|
||||
{field: 'name.zh', title: '座驾名称', align: 'center', width: '20%'},
|
||||
{field: 'name.ar', title: '阿语座驾名称', align: 'center', width: '20%'},
|
||||
{field: 'name.en', title: '英语座驾名称', align: 'center', width: '20%'},
|
||||
{field: 'name.tr', title: '土耳其名称', align: 'center', width: '20%'},
|
||||
{
|
||||
field: 'partitionFlag',
|
||||
title: '地区',
|
||||
align: 'center',
|
||||
width: '10%',
|
||||
formatter: function (val, row, index) {
|
||||
let value = '';
|
||||
if ((val & 1) != 0) {
|
||||
value += '英语区<br>';
|
||||
}
|
||||
if ((val & 2) != 0) {
|
||||
value += '阿拉伯语区<br>';
|
||||
}
|
||||
if ((val & 4) != 0) {
|
||||
value += '华语区<br>';
|
||||
}
|
||||
if ((val & 8) != 0) {
|
||||
value += '土耳其区<br>';
|
||||
}
|
||||
return value;
|
||||
}
|
||||
},
|
||||
{
|
||||
field: 'carGoodsType', title: '座驾类型', align: 'center', width: '20%',
|
||||
formatter: function (val) {
|
||||
@@ -420,7 +480,7 @@ export default {
|
||||
},
|
||||
{
|
||||
field: 'goldSale',
|
||||
title: '金币购买',
|
||||
title: '钻石购买',
|
||||
align: 'center',
|
||||
width: '3%',
|
||||
formatter: function (val, row, index) {
|
||||
@@ -448,9 +508,9 @@ export default {
|
||||
}
|
||||
}
|
||||
},
|
||||
{ field: 'originalPrice', title: '原价(金币)', align: 'center', width: '5%' },
|
||||
{ field: 'price', title: '购买价格(金币)', align: 'center', width: '5%' },
|
||||
{ field: 'renewPrice', title: '续费价格(金币)', align: 'center', width: '5%' },
|
||||
{ field: 'originalPrice', title: '原价(钻石)', align: 'center', width: '5%' },
|
||||
{ field: 'price', title: '购买价格(钻石)', align: 'center', width: '5%' },
|
||||
{ field: 'renewPrice', title: '续费价格(钻石)', align: 'center', width: '5%' },
|
||||
{ field: 'radishOriginalPrice', title: '原价(萝卜)', align: 'center', width: '5%' },
|
||||
{ field: 'radishPrice', title: '购买价格(萝卜)', align: 'center', width: '5%' },
|
||||
{ field: 'radishRenewPrice', title: '续费价格(萝卜)', align: 'center', width: '5%' },
|
||||
@@ -523,12 +583,43 @@ export default {
|
||||
searchText: params.searchText,
|
||||
carGoodsName: $("#query_carGoodsName").val(),
|
||||
carGoodsType: $("#query_carGoodsType").val(),
|
||||
enable: $("condition_type").val()
|
||||
enable: $("condition_type").val(),
|
||||
partitionId: $('#partitionId').val(),
|
||||
};
|
||||
return param;
|
||||
},
|
||||
ajax:function(request){ //使用ajax请求
|
||||
$.ajax({
|
||||
type:"GET",
|
||||
url:'/admin/car/goods?enable=' + ComboboxHelper.getSelected("#condition_type"),
|
||||
contentType:'application/json;charset=utf-8',
|
||||
dataType:'json',
|
||||
data: request.data,
|
||||
success:function (res) {
|
||||
console.log(res);
|
||||
request.success({
|
||||
"rows": res.rows.map(i=>{
|
||||
let value = i.name;
|
||||
if (value.startsWith('{') && value.endsWith('}')) {
|
||||
i.name = JSON.parse(value);
|
||||
} else {
|
||||
i.name = {
|
||||
zh: value,
|
||||
ar: value,
|
||||
en: value,
|
||||
};
|
||||
}
|
||||
return i;
|
||||
}),
|
||||
"total": res.total
|
||||
});
|
||||
},
|
||||
error:function(error){
|
||||
console.log(error);
|
||||
}
|
||||
})
|
||||
},
|
||||
toolbar: '#toolbar',
|
||||
url: '/admin/car/goods.action',
|
||||
onLoadSuccess: function () { //加载成功时执行
|
||||
console.log("load success");
|
||||
},
|
||||
@@ -547,7 +638,7 @@ export default {
|
||||
if (confirm("你确认删除该记录吗? \r\n 删除后再也不能找回,请谨慎操作!")) {
|
||||
$.ajax({
|
||||
type: 'post',
|
||||
url: "/admin/car/goods/deletion.action",
|
||||
url: "/admin/car/goods/deletion",
|
||||
data: {'ids': JSON.stringify([id])},
|
||||
dataType: "json",
|
||||
success: function (json) {
|
||||
@@ -581,7 +672,14 @@ export default {
|
||||
$("#viewFileInfo").html('');
|
||||
|
||||
$("#id").val('');
|
||||
$('#name').val('');
|
||||
$('#ar_name').val('');
|
||||
$('#en_name').val('');
|
||||
$('#tr_name').val('');
|
||||
$("#name").attr('readonly', false);
|
||||
$("#ar_name").attr('readonly', false);
|
||||
$("#en_name").attr('readonly', false);
|
||||
$("#tr_name").attr('readonly', false);
|
||||
// $("#price").attr('readonly', false);
|
||||
// $("#renewPrice").attr('readonly', false);
|
||||
$("#seq").val('');
|
||||
@@ -602,7 +700,10 @@ export default {
|
||||
$("input:radio[name='isMonsterLimit']")[0].checked = true;
|
||||
$("input:radio[name='isWeekStarLimit']")[0].checked = true;
|
||||
$("input:radio[name='isActivityLimit']")[0].checked = true;
|
||||
|
||||
|
||||
$('input[name="partitionFlag"]').each(function() {
|
||||
$(this).checked = false;
|
||||
});
|
||||
$("#nobleId").btComboBox('disable');
|
||||
ComboboxHelper.setDef("#nobleId", '0');
|
||||
|
||||
@@ -620,7 +721,7 @@ export default {
|
||||
})
|
||||
|
||||
$("#car-goods-refresh").click(function () {
|
||||
$("#table").bootstrapTable('refresh', { url: '/admin/car/goods.action' });
|
||||
$("#table").bootstrapTable('refresh', { url: '/admin/car/goods' });
|
||||
})
|
||||
|
||||
/*$("#car-goods-multiDel").click(function () {
|
||||
@@ -639,7 +740,7 @@ export default {
|
||||
if (confirm("你确认批量删除该记录吗?" + "\r\n删除后再也不能找回,请谨慎操作!")) {
|
||||
$.ajax({
|
||||
type: 'post',
|
||||
url: "/admin/car/goods/deletion.action",
|
||||
url: "/admin/car/goods/deletion",
|
||||
data: {'ids': JSON.stringify(idArr)},
|
||||
dataType: "json",
|
||||
success: function (json) {
|
||||
@@ -756,7 +857,7 @@ export default {
|
||||
var id = $(this).attr("data-id");
|
||||
$.ajax({
|
||||
type: "get",
|
||||
url: "/admin/car/goods/" + id + ".action",
|
||||
url: "/admin/car/goods/" + id + "",
|
||||
data: { id: id },
|
||||
dataType: "json",
|
||||
success: function (json) {
|
||||
@@ -770,7 +871,20 @@ export default {
|
||||
// $("#price").val(json.entity.price);
|
||||
// $("#renewPrice").val(json.entity.renewPrice);
|
||||
$("#days").val(json.entity.days);
|
||||
$("#name").val(json.entity.name);
|
||||
console.log(json.entity.name)
|
||||
let name = json.entity.name;
|
||||
if (name.startsWith('{') && name.endsWith('}')) {
|
||||
var jsonName = JSON.parse(json.entity.name);
|
||||
$("#name").val(jsonName.zh);
|
||||
$("#ar_name").val(jsonName.ar);
|
||||
$("#en_name").val(jsonName.en);
|
||||
$("#tr_name").val(jsonName.tr);
|
||||
} else {
|
||||
$("#name").val(name);
|
||||
$("#ar_name").val(name);
|
||||
$("#en_name").val(name);
|
||||
$("#tr_name").val(name);
|
||||
}
|
||||
$("#price").val(json.entity.price);
|
||||
$("#renewPrice").val(json.entity.renewPrice);
|
||||
$("#seq").val(json.entity.seq);
|
||||
@@ -881,6 +995,29 @@ export default {
|
||||
$("#viewFileInfo").html('未上传');
|
||||
}
|
||||
|
||||
//分区
|
||||
let partitionFlag = json.entity.partitionFlag;
|
||||
if ((partitionFlag & 1) != 0) {
|
||||
$("input:checkbox[name='partitionFlag']")[0].checked = true;
|
||||
} else {
|
||||
$("input:checkbox[name='partitionFlag']")[0].checked = false;
|
||||
}
|
||||
if ((partitionFlag & 2) != 0) {
|
||||
$("input:checkbox[name='partitionFlag']")[1].checked = true;
|
||||
} else {
|
||||
$("input:checkbox[name='partitionFlag']")[1].checked = false;
|
||||
}
|
||||
if ((partitionFlag & 4) != 0) {
|
||||
$("input:checkbox[name='partitionFlag']")[2].checked = true;
|
||||
} else {
|
||||
$("input:checkbox[name='partitionFlag']")[2].checked = false;
|
||||
}
|
||||
if ((partitionFlag & 8) != 0) {
|
||||
$("input:checkbox[name='partitionFlag']")[3].checked = true;
|
||||
} else {
|
||||
$("input:checkbox[name='partitionFlag']")[3].checked = false;
|
||||
}
|
||||
|
||||
// 打开编辑弹窗
|
||||
$("#cardGoodsModal").modal('show');
|
||||
} else {
|
||||
@@ -916,7 +1053,7 @@ export default {
|
||||
return;
|
||||
}
|
||||
if (goldSale == 1 && (!price || !renewPrice || !originalPrice)) {
|
||||
$("#tipMsg").text("请填写完整金币价格");
|
||||
$("#tipMsg").text("请填写完整钻石价格");
|
||||
$("#tipModal").modal('show');
|
||||
return;
|
||||
} else if (radishSale == 1 && (!radishPrice || !radishRenewPrice || !radishOriginalPrice)) {
|
||||
@@ -929,11 +1066,11 @@ export default {
|
||||
$("#tipModal").modal('show');
|
||||
return;
|
||||
}
|
||||
if (!effect) {
|
||||
$("#tipMsg").text("请上传动画图片");
|
||||
$("#tipModal").modal('show');
|
||||
return;
|
||||
}
|
||||
// if (!effect) {
|
||||
// $("#tipMsg").text("请上传动画图片");
|
||||
// $("#tipModal").modal('show');
|
||||
// return;
|
||||
// }
|
||||
if (!days || days <= 0) {
|
||||
$("#tipMsg").text("请输入合理的购买天数");
|
||||
$("#tipModal").modal('show');
|
||||
@@ -949,18 +1086,48 @@ export default {
|
||||
$("#tipModal").modal('show');
|
||||
return;
|
||||
}
|
||||
// 获取序列化字符串并转换为对象
|
||||
let formData = $('#carGoodsForm').serializeArray().reduce(function(obj, item) {
|
||||
obj[item.name] = item.value;
|
||||
return obj;
|
||||
}, {});
|
||||
|
||||
var name = $("#name").val();
|
||||
// 阿语名称
|
||||
var ar_name = $("#ar_name").val();
|
||||
// 英语名称
|
||||
var en_name = $("#en_name").val();
|
||||
// 土耳其名称
|
||||
var tr_name = $("#tr_name").val();
|
||||
// 国际化字段
|
||||
var jsonName = {"zh":name,"ar":ar_name,"en":en_name,"tr":tr_name}
|
||||
const nameValue = JSON.stringify(jsonName);
|
||||
// 修改属性值
|
||||
formData.name = nameValue; // 将giftName修改为"newGiftName"
|
||||
//分区
|
||||
const partitionFlagArray = $("input:checkbox[name='partitionFlag']:checked").serializeArray();
|
||||
let partitionFlag = 0;
|
||||
for (let i = 0, len = partitionFlagArray.length; i < len; i++) {
|
||||
console.log(partitionFlagArray[i]);
|
||||
partitionFlag |= partitionFlagArray[i].value;
|
||||
}
|
||||
formData.partitionFlag = partitionFlag;
|
||||
// 将修改后的对象转换回序列化字符串
|
||||
let newSerializeStr = $.param(formData);
|
||||
$.ajax({
|
||||
type: "post",
|
||||
url: "/admin/car/goods.action",
|
||||
data: $('#carGoodsForm').serialize(),
|
||||
url: "/admin/car/goods",
|
||||
data: newSerializeStr,
|
||||
dataType: "json",
|
||||
success: function (json) {
|
||||
if (json.success == 'true') {
|
||||
if (json.code == 200) {
|
||||
$("#carGoodsModal").modal('hide');
|
||||
$("#tipMsg").text("保存成功");
|
||||
$("#tipModal").modal('show');
|
||||
TableHelper.doRefresh("#table");
|
||||
$("#cardGoodsModal").modal('hide');
|
||||
setTimeout(function() {
|
||||
TableHelper.doRefresh("#table");
|
||||
$("#cardGoodsModal").modal('hide');
|
||||
}, 1000);
|
||||
} else {
|
||||
$("#tipMsg").text("保存失败." + json.msg);
|
||||
$("#tipModal").modal('show');
|
||||
@@ -1033,9 +1200,26 @@ export default {
|
||||
})
|
||||
|
||||
});
|
||||
}
|
||||
},
|
||||
initPartition() {
|
||||
getPartitionInfoList().then(res => {
|
||||
let data = res.data;
|
||||
buildSelectOption(
|
||||
"#partitionId",
|
||||
null,
|
||||
[{
|
||||
value: '',
|
||||
text: '全部',
|
||||
}].concat(data.map((v) => {
|
||||
return {
|
||||
value: v.id,
|
||||
text: v.desc,
|
||||
};
|
||||
}))
|
||||
);
|
||||
});
|
||||
},
|
||||
},
|
||||
|
||||
};
|
||||
</script>
|
||||
|
||||
|
@@ -81,7 +81,7 @@ export default {
|
||||
ajax: function (request) { //使用ajax请求
|
||||
$.ajax({
|
||||
type: "GET",
|
||||
url: '/admin/carRecord/list.action',
|
||||
url: '/admin/carRecord/list',
|
||||
contentType: 'application/json;charset=utf-8',
|
||||
dataType: 'json',
|
||||
data: request.data,
|
||||
|
@@ -59,7 +59,7 @@ export default {
|
||||
{ field: 'createTime', title: '日期', align: 'center', width: '5%' },
|
||||
{ field: 'carId', title: '座驾ID', align: 'center', width: '5%' },
|
||||
{ field: 'carName', title: '座驾名称', align: 'center', width: '5%' },
|
||||
{ field: 'carPrice', title: '座驾金额(金币)', align: 'center', width: '5%' },
|
||||
{ field: 'carPrice', title: '座驾金额(钻石)', align: 'center', width: '5%' },
|
||||
{ field: 'carRadishPrice', title: '座驾金额(萝卜)', align: 'center', width: '5%' },
|
||||
{ field: 'carStatus', title: '座驾状态', align: 'center', width: '5%' },
|
||||
{ field: 'receivedCarNum', title: '用户收到数量', align: 'center', width: '5%' },
|
||||
@@ -85,7 +85,7 @@ export default {
|
||||
return param;
|
||||
},
|
||||
toolbar: '#toolbar',
|
||||
url: '/admin/car/statisticsCar.action',
|
||||
url: '/admin/car/statisticsCar',
|
||||
onLoadSuccess: function () { //加载成功时执行
|
||||
console.log("load success");
|
||||
},
|
||||
|
@@ -230,7 +230,7 @@ export default {
|
||||
},
|
||||
uniqueId: 'id',
|
||||
toolbar: '#toolbar',
|
||||
url: '/admin/channel/content/queryList.action',
|
||||
url: '/admin/channel/content/queryList',
|
||||
onLoadSuccess: function () { //加载成功时执行
|
||||
console.log("load success");
|
||||
},
|
||||
@@ -367,7 +367,7 @@ export default {
|
||||
|
||||
$.ajax({
|
||||
type: "post",
|
||||
url: "/admin/channel/content/saveChannelContent.action",
|
||||
url: "/admin/channel/content/saveChannelContent",
|
||||
data: {
|
||||
id: id,
|
||||
channel: channel,
|
||||
@@ -409,7 +409,7 @@ export default {
|
||||
var id = $(this).data('id');
|
||||
$.ajax({
|
||||
type: "get",
|
||||
url: "/admin/channel/content/getChannelContent.action",
|
||||
url: "/admin/channel/content/getChannelContent",
|
||||
data: { id: id },
|
||||
dataType: "json",
|
||||
success: function (ret) {
|
||||
@@ -450,7 +450,7 @@ export default {
|
||||
var status = $(this).data('status');
|
||||
$.ajax({
|
||||
type: "post",
|
||||
url: "/admin/channel/content/toggleState.action",
|
||||
url: "/admin/channel/content/toggleState",
|
||||
data: { id: id, status: status },
|
||||
dataType: "json",
|
||||
success: function (ret) {
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -73,7 +73,7 @@
|
||||
<option value="2">铭牌</option>
|
||||
<option value="3">座驾</option>
|
||||
<option value="4">头饰</option>
|
||||
<option value="5">额外钻石</option>
|
||||
<option value="5">额外金币</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
@@ -97,7 +97,7 @@
|
||||
<label for="modal_rewardNum" class="col-sm-3 control-label">奖励个数:</label>
|
||||
<div class="col-sm-8">
|
||||
<input type="text" class="form-control validate[required,custom[integer]]" name="rewardNum"
|
||||
id="modal_rewardNum" placeholder="礼物、额外钻石输入个数">
|
||||
id="modal_rewardNum" placeholder="礼物、额外金币输入个数">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
@@ -260,7 +260,7 @@ export default {
|
||||
},
|
||||
uniqueId: 'id',
|
||||
toolbar: '#toolbar',
|
||||
url: '/admin/first/charge/reward/list.action',
|
||||
url: '/admin/first/charge/reward/list',
|
||||
onLoadSuccess: function (res) {
|
||||
console.log(res)
|
||||
$('.giveShowPrice').text(res.giveShowPrice);
|
||||
@@ -290,7 +290,7 @@ export default {
|
||||
var id = $(this).data('id');
|
||||
$.ajax({
|
||||
type: "get",
|
||||
url: "/admin/first/charge/reward/getId.action",
|
||||
url: "/admin/first/charge/reward/getId",
|
||||
data: { id: id },
|
||||
dataType: "json",
|
||||
success: function (json) {
|
||||
@@ -321,7 +321,7 @@ export default {
|
||||
if (confirm("你确认删除该记录吗? \r\n 删除后再也不能找回,请谨慎操作!")) {
|
||||
$.ajax({
|
||||
type: 'post',
|
||||
url: "/admin/first/charge/reward/delete.action",
|
||||
url: "/admin/first/charge/reward/delete",
|
||||
data: { id: id },
|
||||
dataType: "json",
|
||||
success: function (json) {
|
||||
|
@@ -114,7 +114,7 @@ export default {
|
||||
return param;
|
||||
},
|
||||
toolbar: '#toolbar',
|
||||
url: '/admin/first/charge/reward/statistics.action',
|
||||
url: '/admin/first/charge/reward/statistics',
|
||||
onLoadSuccess: function () { //加载成功时执行
|
||||
console.log("load success");
|
||||
},
|
||||
@@ -196,7 +196,7 @@ export default {
|
||||
};
|
||||
return param;
|
||||
},
|
||||
url: '/admin/first/charge/reward/record.action',
|
||||
url: '/admin/first/charge/reward/record',
|
||||
onLoadSuccess: function () { //加载成功时执行
|
||||
$("#roundDetailModal").modal('show');
|
||||
},
|
||||
@@ -215,7 +215,7 @@ export default {
|
||||
function getStock() {
|
||||
$.ajax({
|
||||
type: 'get',
|
||||
url: "/admin/luckySea/getStock.action",
|
||||
url: "/admin/luckySea/getStock",
|
||||
success: function (json) {
|
||||
if (json.success) {
|
||||
console.log('data', json.data)
|
||||
@@ -236,7 +236,7 @@ export default {
|
||||
$('#editStockModelBtn').on('click', function () {
|
||||
$.ajax({
|
||||
type: 'get',
|
||||
url: "/admin/luckySea/editStock.action",
|
||||
url: "/admin/luckySea/editStock",
|
||||
data: {
|
||||
stock: $("#editedStock").val(),
|
||||
},
|
||||
|
@@ -41,7 +41,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="amount" class="col-sm-3 control-label">金币大小:</label>
|
||||
<label for="amount" class="col-sm-3 control-label">钻石大小:</label>
|
||||
<div class="col-sm-8">
|
||||
<input type="text" class="form-control validate[required]" name="amount"
|
||||
id="amount" value=10>
|
||||
@@ -92,7 +92,7 @@ export default {
|
||||
{
|
||||
field: 'amount', title: '金额', align: 'center', width: '10%',
|
||||
formatter: function (val, row, index) {
|
||||
return val + "金币";
|
||||
return val + "钻石";
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -154,7 +154,7 @@ export default {
|
||||
},
|
||||
uniqueId: 'code',
|
||||
toolbar: '#toolbar',
|
||||
url: '/admin/redeemcode/getlist.action',
|
||||
url: '/admin/redeemcode/getlist',
|
||||
onLoadSuccess: function () { //加载成功时执行
|
||||
console.log("load success");
|
||||
},
|
||||
@@ -176,7 +176,7 @@ export default {
|
||||
if ($("#roleForm").validationEngine('validate')) {
|
||||
$.ajax({
|
||||
type: "post",
|
||||
url: "/admin/redeemcode/gener.action",
|
||||
url: "/admin/redeemcode/gener",
|
||||
data: $('#roleForm').serialize(),
|
||||
dataType: "json",
|
||||
success: function (json) {
|
||||
|
157
src/views/chat/PublicChatTopRecordView.vue
Normal file
157
src/views/chat/PublicChatTopRecordView.vue
Normal file
@@ -0,0 +1,157 @@
|
||||
<template>
|
||||
<section class="content">
|
||||
<div class="box box-danger">
|
||||
<div class="box-body">
|
||||
<!-- Content Header (Page header) -->
|
||||
<section class="content-header">
|
||||
<h1 id="itemTitle"></h1>
|
||||
</section>
|
||||
<!-- .content -->
|
||||
<section class="content">
|
||||
<div id="table"></div>
|
||||
<div id="toolbar">
|
||||
<div class="col-sm-12">
|
||||
<label for="erbanNo" class="col-sm-1 control-label">ID:</label>
|
||||
<div class="col-sm-2">
|
||||
<input type="text" class="form-control" name="erbanNo" id="erbanNo">
|
||||
</div>
|
||||
<label for="startTime" class="col-sm-1 control-label">付费日期:</label>
|
||||
<div class="col-sm-2">
|
||||
<input type="text" name="startTime" id="timeBegin" class="input-sm form-control" placeholder="起始时间">
|
||||
</div>
|
||||
<label for="endTime" class="col-sm-1 control-label">-</label>
|
||||
<div class="col-sm-2">
|
||||
<input type="text" name="endTime" id="timeEnd" class="input-sm form-control" placeholder="结束时间">
|
||||
</div>
|
||||
<label for="partitionId" class="col-sm-1 control-label">地区:</label>
|
||||
<div class="col-sm-2">
|
||||
<select name="partitionId" id="partitionId" class="form-control"></select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-12">
|
||||
<button id="btnSearch" class="btn btn-default">
|
||||
<i class="glyphicon glyphicon-search"></i>查询
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</section><!-- .content -->
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import TableHelper from '@/utils/bootstrap-table-helper';
|
||||
import { getPublicChatTopRecordPage } from '@/api/chat/publicChatTopRecord';
|
||||
import { getPartitionInfoList } from '@/api/partition/partitionInfo';
|
||||
import { buildSelectOption } from '@/utils/system-helper';
|
||||
|
||||
export default {
|
||||
name: 'PublicChatTopRecordView',
|
||||
data() {
|
||||
return {
|
||||
columns: [
|
||||
{ field: 'erbanNo', title: '用户ID', align: 'center', width: '5%' },
|
||||
{ field: 'nick', title: '用户昵称', align: 'center', width: '15%' },
|
||||
{ field: 'partitionDesc', title: '所属地区', align: 'center', width: '15%' },
|
||||
{ field: 'payMoneyNum', title: '付费金额(金币)', align: 'center', width: '15%' },
|
||||
{ field: 'createTime', title: '付费日期', align: 'center', width: '15%' },
|
||||
{ field: 'content', title: '头条内容', align: 'center', width: '15%' },
|
||||
],
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.initPartition();
|
||||
this.init();
|
||||
},
|
||||
methods: {
|
||||
init() {
|
||||
this.$nextTick(function () {
|
||||
let $this = this;
|
||||
var picker1 = $("#timeBegin").datetimepicker({
|
||||
format: 'yyyy-mm-dd hh:ii:00',
|
||||
todayBtn: true,
|
||||
autoclose: true,
|
||||
});
|
||||
var picker2 = $("#timeEnd").datetimepicker({
|
||||
format: 'yyyy-mm-dd hh:ii:00',
|
||||
todayBtn: true,
|
||||
autoclose: true
|
||||
});
|
||||
picker1.on('changeDate', function () {
|
||||
var date = $('#timeBegin').datetimepicker('getDate');
|
||||
picker2.datetimepicker('setStartDate', date);
|
||||
});
|
||||
picker2.on('changeDate', function () {
|
||||
var date = $('#timeEnd').datetimepicker('getDate');
|
||||
picker1.datetimepicker('setEndDate', date);
|
||||
});
|
||||
$this.initTable();
|
||||
$('#btnSearch').click(function () {
|
||||
$this.search();
|
||||
});
|
||||
});
|
||||
},
|
||||
initTable() {
|
||||
let $this = this;
|
||||
TableHelper.destroy('#table');
|
||||
$('#table').bootstrapTable({
|
||||
columns: $this.columns,
|
||||
cache: false,
|
||||
striped: true,
|
||||
showRefresh: false,
|
||||
pageSize: 10,
|
||||
pagination: true,
|
||||
pageList: [1, 10, 20, 30, 50],
|
||||
search: false,
|
||||
sidePagination: 'server',
|
||||
queryParamsType: 'undefined',
|
||||
queryParams: function queryParams(params) {
|
||||
var param = {
|
||||
erbanNo: $('#erbanNo').val(),
|
||||
startTime: $('#timeBegin').val(),
|
||||
endTime: $('#timeEnd').val(),
|
||||
partitionId: $('#partitionId').val(),
|
||||
pageNum: params.pageNumber,
|
||||
pageSize: params.pageSize,
|
||||
};
|
||||
return param;
|
||||
},
|
||||
ajax: function(request) {
|
||||
getPublicChatTopRecordPage(request.data).then(res => {
|
||||
let data = res.data;
|
||||
request.success({
|
||||
'rows': data.records,
|
||||
'total': data.total
|
||||
});
|
||||
});
|
||||
},
|
||||
toolbar: '#toolbar',
|
||||
});
|
||||
},
|
||||
search() {
|
||||
TableHelper.doRefresh('#table');
|
||||
},
|
||||
initPartition() {
|
||||
getPartitionInfoList().then(res => {
|
||||
let data = res.data;
|
||||
buildSelectOption(
|
||||
"#partitionId",
|
||||
null,
|
||||
[{
|
||||
value: '',
|
||||
text: '全部',
|
||||
}].concat(data.map((v) => {
|
||||
return {
|
||||
value: v.id,
|
||||
text: v.desc,
|
||||
};
|
||||
}))
|
||||
);
|
||||
});
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped></style>
|
@@ -23,7 +23,11 @@
|
||||
|
||||
<label for="name" class="col-sm-1 control-label">气泡名称:</label>
|
||||
<div class="col-sm-2"><input type="text" class="form-control" name="name" id="name"></div>
|
||||
|
||||
|
||||
<label for="partitionId" class="col-sm-1 control-label">地区:</label>
|
||||
<div class="col-sm-2">
|
||||
<select name="partitionId" id="partitionId" class="form-control"></select>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</form>
|
||||
@@ -53,6 +57,15 @@
|
||||
<div class="modal-body">
|
||||
<form class="form-horizontal" id="addForm">
|
||||
<input type="hidden" name="id" id="modal_id" />
|
||||
<div class="form-group">
|
||||
<label for="partitionFlag" class="col-sm-4 control-label">选择分区</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="checkbox" name="partitionFlag" value="1"/>英语区<br>
|
||||
<input type="checkbox" name="partitionFlag" value="2"/>阿拉伯语区<br>
|
||||
<input type="checkbox" name="partitionFlag" value="4"/>华语区<br>
|
||||
<input type="checkbox" name="partitionFlag" value="8"/>土耳其区<br>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="modal_type" class="col-sm-4 control-label">装扮类型:</label>
|
||||
<div class="col-sm-6">
|
||||
@@ -69,6 +82,24 @@
|
||||
placeholder="请输入气泡名称">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="ar_modal_name" class="col-sm-4 control-label">阿语装扮名称:</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" class="form-control validate[required]" name="name" id="ar_modal_name" placeholder="请输入气泡名称">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="en_modal_name" class="col-sm-4 control-label">英语装扮名称:</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" class="form-control validate[required]" name="name" id="en_modal_name" placeholder="请输入气泡名称">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="tr_modal_name" class="col-sm-4 control-label">土耳其装扮名称:</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" class="form-control validate[required]" name="name" id="tr_modal_name" placeholder="请输入气泡名称">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-4 control-label">安卓图片:</label>
|
||||
<div class="col-sm-6">
|
||||
@@ -155,6 +186,8 @@
|
||||
|
||||
<script>
|
||||
import TableHelper from '@/utils/bootstrap-table-helper';
|
||||
import { getPartitionInfoList } from '@/api/partition/partitionInfo';
|
||||
import { buildSelectOption } from '@/utils/system-helper';
|
||||
|
||||
export default {
|
||||
name: "ChatbubbleManageView",
|
||||
@@ -163,6 +196,7 @@ export default {
|
||||
},
|
||||
created() {
|
||||
this.$nextTick(function () {
|
||||
this.initPartition();
|
||||
this.initData();
|
||||
});
|
||||
},
|
||||
@@ -173,7 +207,32 @@ export default {
|
||||
$('#table').bootstrapTable({
|
||||
columns: [
|
||||
{ field: 'id', title: '装扮id', align: 'middle', width: '5%' },
|
||||
{ field: 'name', title: '装扮名称', align: 'middle', width: '5%' },
|
||||
{
|
||||
field: 'partitionFlag',
|
||||
title: '地区',
|
||||
align: 'center',
|
||||
width: '10%',
|
||||
formatter: function (val, row, index) {
|
||||
let value = '';
|
||||
if ((val & 1) != 0) {
|
||||
value += '英语区<br>';
|
||||
}
|
||||
if ((val & 2) != 0) {
|
||||
value += '阿拉伯语区<br>';
|
||||
}
|
||||
if ((val & 4) != 0) {
|
||||
value += '华语区<br>';
|
||||
}
|
||||
if ((val & 8) != 0) {
|
||||
value += '土耳其区<br>';
|
||||
}
|
||||
return value;
|
||||
}
|
||||
},
|
||||
{field: 'name.zh', title: '装扮名称', align: 'middle', width: '5%'},
|
||||
{field: 'name.ar', title: '阿语装扮名称', align: 'middle', width: '5%'},
|
||||
{field: 'name.en', title: '英语装扮名称', align: 'middle', width: '5%'},
|
||||
{field: 'name.tr', title: '土耳其扮名称', align: 'middle', width: '5%'},
|
||||
{
|
||||
field: 'iosUrl',
|
||||
title: '装扮图片',
|
||||
@@ -261,11 +320,43 @@ export default {
|
||||
type: $('#type').val(),
|
||||
name: $('#name').val(),
|
||||
id: $('#id').val(),
|
||||
partitionId: $('#partitionId').val(),
|
||||
};
|
||||
return param;
|
||||
},
|
||||
ajax:function(request){ //使用ajax请求
|
||||
$.ajax({
|
||||
type:"GET",
|
||||
url:'/admin/chatbubble/listByPage',
|
||||
contentType:'application/json;charset=utf-8',
|
||||
dataType:'json',
|
||||
data: request.data,
|
||||
success:function (res) {
|
||||
console.log(res);
|
||||
request.success({
|
||||
"rows": res.rows.map(i=>{
|
||||
let value = i.name;
|
||||
if (value.startsWith('{') && value.endsWith('}')) {
|
||||
i.name = JSON.parse(value);
|
||||
} else {
|
||||
i.name = {
|
||||
zh: value,
|
||||
ar: value,
|
||||
en: value,
|
||||
};
|
||||
}
|
||||
return i;
|
||||
}),
|
||||
"total": res.total
|
||||
});
|
||||
},
|
||||
error:function(error){
|
||||
console.log(error);
|
||||
}
|
||||
})
|
||||
},
|
||||
toolbar: '#toolbar',
|
||||
url: '/admin/chatbubble/listByPage',
|
||||
// url: '/admin/chatbubble/listByPage',
|
||||
onLoadSuccess: function () { //加载成功时执行
|
||||
console.log("load success");
|
||||
},
|
||||
@@ -286,12 +377,47 @@ export default {
|
||||
// 赋值
|
||||
$("#addForm #modal_id").val(row.id);
|
||||
$("#addForm #modal_type").val(row.type);
|
||||
$("#addForm #modal_name").val(row.name);
|
||||
console.log(row.name)
|
||||
let name = row.name;
|
||||
if (Object.prototype.hasOwnProperty.call(name, 'zh') || Object.prototype.hasOwnProperty.call(name, 'ar') || Object.prototype.hasOwnProperty.call(name, 'en')) {
|
||||
$("#modal_name").val(row.name.zh);
|
||||
// 阿语名称
|
||||
$("#ar_modal_name").val(row.name.ar);
|
||||
// 英语名称
|
||||
$("#en_modal_name").val(row.name.en);
|
||||
// 土耳其名称
|
||||
$("#tr_modal_name").val(row.name.tr);
|
||||
} else {
|
||||
$("#modal_name").val(name);
|
||||
// 阿语名称
|
||||
$("#ar_modal_name").val(name);
|
||||
// 英语名称
|
||||
$("#en_modal_name").val(name);
|
||||
// 土耳其名称
|
||||
$("#tr_modal_name").val(name);
|
||||
}
|
||||
$('#addAndroidIconPicUrl').attr("src", row.androidUrl);
|
||||
$("#addForm #androidUrl").val(row.androidUrl);
|
||||
$('#addIosIconPicUrl').attr("src", row.iosUrl);
|
||||
$("#addForm #iosUrl").val(row.iosUrl);
|
||||
$("#addForm #status").val(row.status);
|
||||
//分区
|
||||
let partitionFlag = row.partitionFlag;
|
||||
if ((partitionFlag & 1) != 0) {
|
||||
$("input:checkbox[name='partitionFlag']")[0].checked = true;
|
||||
} else {
|
||||
$("input:checkbox[name='partitionFlag']")[0].checked = false;
|
||||
}
|
||||
if ((partitionFlag & 2) != 0) {
|
||||
$("input:checkbox[name='partitionFlag']")[1].checked = true;
|
||||
} else {
|
||||
$("input:checkbox[name='partitionFlag']")[1].checked = false;
|
||||
}
|
||||
if ((partitionFlag & 4) != 0) {
|
||||
$("input:checkbox[name='partitionFlag']")[2].checked = true;
|
||||
} else {
|
||||
$("input:checkbox[name='partitionFlag']")[2].checked = false;
|
||||
}
|
||||
$("#addModal").modal('show');
|
||||
});
|
||||
|
||||
@@ -332,13 +458,50 @@ export default {
|
||||
$('#button-save').on('click', function () {
|
||||
var androidUrl = $('#androidUrl').val();
|
||||
var iosUrl = $('#iosUrl').val();
|
||||
var name = $('#modal_name').val();
|
||||
// 获取序列化字符串并转换为对象
|
||||
let formData = $('#addForm').serializeArray().reduce(function(obj, item) {
|
||||
obj[item.name] = item.value;
|
||||
return obj;
|
||||
}, {});
|
||||
|
||||
var name = $("#modal_name").val();
|
||||
// 阿语名称
|
||||
var ar_name = $("#ar_modal_name").val();
|
||||
// 英语名称
|
||||
var en_name = $("#en_modal_name").val();
|
||||
// 土耳其名称
|
||||
var tr_name = $("#tr_modal_name").val();
|
||||
// 国际化字段
|
||||
var jsonName = {"zh":name,"ar":ar_name,"en":en_name,"tr":tr_name}
|
||||
const nameValue = JSON.stringify(jsonName);
|
||||
// 修改属性值
|
||||
formData.name = nameValue; // 将giftName修改为"newGiftName"
|
||||
//分区
|
||||
const partitionFlagArray = $("input:checkbox[name='partitionFlag']:checked").serializeArray();
|
||||
let partitionFlag = 0;
|
||||
for (let i = 0, len = partitionFlagArray.length; i < len; i++) {
|
||||
console.log(partitionFlagArray[i]);
|
||||
partitionFlag |= partitionFlagArray[i].value;
|
||||
}
|
||||
formData.partitionFlag = partitionFlag;
|
||||
// 将修改后的对象转换回序列化字符串
|
||||
let newSerializeStr = $.param(formData);
|
||||
//做下数据校验
|
||||
if (isEmpty(name)) {
|
||||
$("#tipMsg").text("装扮名字不能为空");
|
||||
$("#tipModal").modal('show');
|
||||
return;
|
||||
}
|
||||
if (isEmpty(ar_name)) {
|
||||
$("#tipMsg").text("阿语装扮名字不能为空");
|
||||
$("#tipModal").modal('show');
|
||||
return;
|
||||
}
|
||||
if (isEmpty(en_name)) {
|
||||
$("#tipMsg").text("英语装扮名字不能为空");
|
||||
$("#tipModal").modal('show');
|
||||
return;
|
||||
}
|
||||
if (isEmpty(androidUrl) || isEmpty(iosUrl)) {
|
||||
$("#tipMsg").text("图片不能为空");
|
||||
$("#tipModal").modal('show');
|
||||
@@ -349,14 +512,16 @@ export default {
|
||||
$.ajax({
|
||||
type: "post",
|
||||
url: "/admin/chatbubble/saveOrUpdate",
|
||||
data: $("#addForm").serialize(),
|
||||
data: newSerializeStr,
|
||||
dataType: "json",
|
||||
success: function (json) {
|
||||
if (json.code === 200) {
|
||||
$("#tipMsg").text("保存成功");
|
||||
$("#tipModal").modal('show');
|
||||
TableHelper.doRefresh("#table");
|
||||
$("#addModal").modal('hide');
|
||||
setTimeout(function() {
|
||||
TableHelper.doRefresh("#table");
|
||||
$("#addModal").modal('hide');
|
||||
}, 1000);
|
||||
} else {
|
||||
$("#tipMsg").text("保存失败,错误信息:" + json.message);
|
||||
$("#tipModal").modal('show');
|
||||
@@ -378,6 +543,12 @@ export default {
|
||||
$('#status').val('');
|
||||
$('#modal_type').val('');
|
||||
$('#modal_name').val('');
|
||||
$('#ar_modal_name').val('');
|
||||
$('#en_modal_name').val('');
|
||||
$('#tr_modal_name').val('');
|
||||
$('input[name="partitionFlag"]').each(function() {
|
||||
$(this).checked = false;
|
||||
});
|
||||
}
|
||||
//判断空值
|
||||
function isEmpty(data) {
|
||||
@@ -405,7 +576,7 @@ export default {
|
||||
var id = $(this).attr("data-id");
|
||||
$.ajax({
|
||||
type: "get",
|
||||
url: "/admin/nameplate/sync.action",
|
||||
url: "/admin/nameplate/sync",
|
||||
data: {
|
||||
id: id
|
||||
},
|
||||
@@ -469,9 +640,26 @@ export default {
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
},
|
||||
initPartition() {
|
||||
getPartitionInfoList().then(res => {
|
||||
let data = res.data;
|
||||
buildSelectOption(
|
||||
"#partitionId",
|
||||
null,
|
||||
[{
|
||||
value: '',
|
||||
text: '全部',
|
||||
}].concat(data.map((v) => {
|
||||
return {
|
||||
value: v.id,
|
||||
text: v.desc,
|
||||
};
|
||||
}))
|
||||
);
|
||||
});
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
|
@@ -51,7 +51,19 @@ export default {
|
||||
columns: [
|
||||
{ field: 'id', title: 'id', visible: false, align: 'center', width: '5%' },
|
||||
{ field: 'bubbleId', title: '装扮ID', align: 'center', width: '5%' },
|
||||
{ field: 'bubbleName', title: '装扮名称', align: 'center', width: '5%' },
|
||||
{
|
||||
field: 'bubbleName',
|
||||
title: '装扮名称',
|
||||
align: 'center',
|
||||
width: '5%',
|
||||
formatter: function (val) {
|
||||
let value = val;
|
||||
if (val && val.startsWith('{') && val.endsWith('}')) {
|
||||
value = JSON.parse(val).zh;
|
||||
}
|
||||
return value;
|
||||
}
|
||||
},
|
||||
{ field: 'erbanNo', title: '获得用户ID', align: 'center', width: '5%' },
|
||||
{ field: 'nick', title: '用户昵称', align: 'center', width: '5%' },
|
||||
{
|
||||
|
@@ -381,7 +381,7 @@ export default {
|
||||
if ($("#discoveryForm").validationEngine('validate')) {
|
||||
$.ajax({
|
||||
type: 'post',
|
||||
url: '/admin/discovery/saveOrUpdate.action',
|
||||
url: '/admin/discovery/saveOrUpdate',
|
||||
data: {
|
||||
id: id,
|
||||
name: name,
|
||||
@@ -428,7 +428,7 @@ export default {
|
||||
var id = $(this).attr("data-id");
|
||||
$.ajax({
|
||||
type: "get",
|
||||
url: "/admin/discovery/getById.action",
|
||||
url: "/admin/discovery/getById",
|
||||
data: { id: id },
|
||||
dataType: "json",
|
||||
success: function (json) {
|
||||
@@ -527,7 +527,7 @@ export default {
|
||||
"\r\n删除后再也不能找回,请谨慎操作!")) {
|
||||
$.ajax({
|
||||
type: 'post',
|
||||
url: "/admin/discovery/saveOrUpdate.action",
|
||||
url: "/admin/discovery/saveOrUpdate",
|
||||
data: {
|
||||
'id': id,
|
||||
'status': '0'
|
||||
@@ -564,7 +564,7 @@ function clearForm(formId) {
|
||||
function getGame() {
|
||||
$.ajax({
|
||||
type: 'get',
|
||||
url: '/admin/discovery/queryGame.action',
|
||||
url: '/admin/discovery/queryGame',
|
||||
data: {},
|
||||
dataType: 'json',
|
||||
success: function (json) {
|
||||
@@ -755,7 +755,7 @@ function initTable() {
|
||||
return param;
|
||||
},
|
||||
toolbar: '#toolbar',
|
||||
url: '/admin/discovery/list.action',
|
||||
url: '/admin/discovery/list',
|
||||
onLoadSuccess: function () { //加载成功时执行
|
||||
$(".bs-checkbox").css({ 'text-align': 'center', 'vertical-align': 'middle' });
|
||||
console.log("load success");
|
||||
|
@@ -1,100 +1,136 @@
|
||||
<template>
|
||||
<section class="content">
|
||||
<div class="box box-primary">
|
||||
<div class="box-body">
|
||||
<!-- Content Header (Page header) -->
|
||||
<section class="content-header">
|
||||
<h1 id="itemTitle"></h1>
|
||||
</section>
|
||||
<div id="toolbar">
|
||||
<div class="col-sm-12">
|
||||
<button id="btnAdd" class="btn btn-default">
|
||||
<i class="glyphicon glyphicon-plus"></i>增加
|
||||
</button>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- .content -->
|
||||
<div id="table"></div>
|
||||
<section class="content">
|
||||
<div class="box box-primary">
|
||||
<div class="box-body">
|
||||
<!-- Content Header (Page header) -->
|
||||
<section class="content-header">
|
||||
<h1 id="itemTitle"></h1>
|
||||
</section>
|
||||
<div id="toolbar">
|
||||
<div class="col-sm-12">
|
||||
<button id="btnAdd"
|
||||
class="btn btn-default">
|
||||
<i class="glyphicon glyphicon-plus"></i>增加
|
||||
</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<div class="modal fade" id="roomTagModal" tabindex="-1" role="dialog" aria-labelledby="modalLabel">
|
||||
<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="modalLabel">新增</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<form class="form-horizontal" id="addForm">
|
||||
<input type="hidden" name="id" id="id" />
|
||||
<div class="form-group">
|
||||
<label for="dressType" class="col-sm-3 control-label">装扮类型:</label>
|
||||
<div class="col-sm-9">
|
||||
<select name="dressType" id="dressType">
|
||||
<option value="">-- 请选择 --</option>
|
||||
<option value="0">头饰</option>
|
||||
<option value="1">座驾</option>
|
||||
<option value="2">铭牌</option>
|
||||
<option value="3">资料卡</option>
|
||||
<option value="4">聊天气泡</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group" id="txtBox">
|
||||
<label for="dressId" class="col-sm-3 control-label">装扮id<font color="red">*</font>:</label>
|
||||
<div class="col-sm-9">
|
||||
<input type="text" class="form-control validate[required]" name="dressId" id="dressId"
|
||||
placeholder="请输入对应的装扮id">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="dressSeq" class="col-sm-3 control-label">展示排序<font color="red">*</font>:</label>
|
||||
<div class="col-sm-9">
|
||||
<input type="text" class="form-control validate[required]" name="dressSeq" id="dressSeq"
|
||||
placeholder="数字小的排前面,必填">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="dressPrice" class="col-sm-3 control-label">装扮价格:</label>
|
||||
<div class="col-sm-9">
|
||||
<input type="text" class="form-control validate[required]" name="dressPrice" id="dressPrice"
|
||||
placeholder="请输入价格">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="dressDay" class="col-sm-3 control-label">有效期(天):</label>
|
||||
<div class="col-sm-9">
|
||||
<input type="text" class="form-control validate[required]" name="dressDay" id="dressDay"
|
||||
placeholder="请输入天数">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="dressLimitStatus" class="col-sm-3 control-label">装扮限时状态:</label>
|
||||
<div class="col-sm-9">
|
||||
<select name="dressType" id="dressLimitStatus">
|
||||
<option value="0">是</option>
|
||||
<option value="1">否</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
|
||||
<button type="button" class="btn btn-primary" id="add">确定</button>
|
||||
</div>
|
||||
<!-- .content -->
|
||||
<div id="table"></div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<div class="modal fade"
|
||||
id="roomTagModal"
|
||||
tabindex="-1"
|
||||
role="dialog"
|
||||
aria-labelledby="modalLabel">
|
||||
<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="modalLabel">新增</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<form class="form-horizontal"
|
||||
id="addForm">
|
||||
<input type="hidden"
|
||||
name="id"
|
||||
id="id" />
|
||||
<div class="form-group">
|
||||
<label for="dressType"
|
||||
class="col-sm-3 control-label">装扮类型:</label>
|
||||
<div class="col-sm-9">
|
||||
<select name="dressType"
|
||||
id="dressType">
|
||||
<option value="">-- 请选择 --</option>
|
||||
<option value="0">头饰</option>
|
||||
<option value="1">座驾</option>
|
||||
<option value="2">铭牌</option>
|
||||
<option value="3">资料卡</option>
|
||||
<option value="4">聊天气泡</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group"
|
||||
id="txtBox">
|
||||
<label for="dressId"
|
||||
class="col-sm-3 control-label">装扮id<font color="red">*</font>:</label>
|
||||
<div class="col-sm-9">
|
||||
<input type="text"
|
||||
class="form-control validate[required]"
|
||||
name="dressId"
|
||||
id="dressId"
|
||||
placeholder="请输入对应的装扮id">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="dressSeq"
|
||||
class="col-sm-3 control-label">展示排序<font color="red">*</font>:</label>
|
||||
<div class="col-sm-9">
|
||||
<input type="text"
|
||||
class="form-control validate[required]"
|
||||
name="dressSeq"
|
||||
id="dressSeq"
|
||||
placeholder="数字小的排前面,必填">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="dressPrice"
|
||||
class="col-sm-3 control-label">装扮价格:</label>
|
||||
<div class="col-sm-9">
|
||||
<input type="text"
|
||||
class="form-control validate[required]"
|
||||
name="dressPrice"
|
||||
id="dressPrice"
|
||||
placeholder="请输入价格">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="dressDay"
|
||||
class="col-sm-3 control-label">有效期(天):</label>
|
||||
<div class="col-sm-9">
|
||||
<input type="text"
|
||||
class="form-control validate[required]"
|
||||
name="dressDay"
|
||||
id="dressDay"
|
||||
placeholder="请输入天数">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="dressLimitStatus"
|
||||
class="col-sm-3 control-label">装扮限时状态:</label>
|
||||
<div class="col-sm-9">
|
||||
<select name="dressType"
|
||||
id="dressLimitStatus">
|
||||
<option value="0">是</option>
|
||||
<option value="1">否</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button"
|
||||
class="btn btn-default"
|
||||
data-dismiss="modal">关闭</button>
|
||||
<button type="button"
|
||||
class="btn btn-primary"
|
||||
id="add">确定</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
@@ -102,311 +138,327 @@ import TableHelper from '@/utils/bootstrap-table-helper';
|
||||
import { serverError } from '@/utils/maintainer';
|
||||
|
||||
export default {
|
||||
name: "DressShopAdminView",
|
||||
setup() {
|
||||
return {};
|
||||
},
|
||||
created() {
|
||||
this.$nextTick(function () {
|
||||
this.initData();
|
||||
name: "DressShopAdminView",
|
||||
setup () {
|
||||
return {};
|
||||
},
|
||||
created () {
|
||||
this.$nextTick(function () {
|
||||
this.initData();
|
||||
});
|
||||
},
|
||||
methods: {
|
||||
initData () {
|
||||
$(function () {
|
||||
$('#table').bootstrapTable('destroy');
|
||||
$('#table').bootstrapTable({
|
||||
columns: [
|
||||
{ field: 'id', title: 'ID', align: 'center', valign: 'middle', width: '10%' },
|
||||
{ field: 'dressId', title: '装扮id', align: 'center', valign: 'middle', width: '10%' },
|
||||
{ field: 'name.zh', title: '装扮名称', align: 'left', valign: 'middle', width: '10%' },
|
||||
{ field: 'name.ar', title: '阿语装扮名称', align: 'left', valign: 'middle', width: '10%' },
|
||||
{ field: 'name.en', title: '英语装扮名称', align: 'left', valign: 'middle', width: '10%' },
|
||||
{ field: 'name.tr', title: '土耳其装扮名称', align: 'left', valign: 'middle', width: '10%' },
|
||||
{
|
||||
field: 'pic', title: '装扮图片', align: 'left', valign: 'middle', width: '10%',
|
||||
formatter: function (val, row, index) {
|
||||
if (null != val && val != '') {
|
||||
return '<img src="' + val + '" alt="" style="width: 30px; height: 30px;">';
|
||||
}
|
||||
return '-';
|
||||
}
|
||||
},
|
||||
{
|
||||
field: 'dressType',
|
||||
title: '装扮类型',
|
||||
align: 'center',
|
||||
width: '5%',
|
||||
valign: 'middle',
|
||||
formatter: function (val, row, index) {
|
||||
if (val == '0') {
|
||||
return "头饰";
|
||||
} else if (val == '1') {
|
||||
return '座驾';
|
||||
} else if (val == '2') {
|
||||
return '铭牌';
|
||||
} else if (val == '3') {
|
||||
return '资料卡';
|
||||
} else if (val == '4') {
|
||||
return '聊天气泡';
|
||||
} else {
|
||||
return '-';
|
||||
}
|
||||
}
|
||||
|
||||
},
|
||||
{ field: 'dressSeq', title: '装扮排序', align: 'center', valign: 'middle', width: '10%' },
|
||||
{ field: 'dressPrice', title: '装扮展示价值', align: 'center', valign: 'middle', width: '10%' },
|
||||
{ field: 'dressDay', title: '装扮有效期(天)', align: 'center', valign: 'middle', width: '10%' },
|
||||
{ field: 'buyNum', title: '购买数量', align: '购买数量 ', valign: 'middle', width: '10%' },
|
||||
{ field: 'userDonateNum', title: '购买赠送用户数量', align: '购买数量', valign: 'middle', width: '10%' },
|
||||
{
|
||||
field: 'dressLimitStatus',
|
||||
title: '装扮限时状态',
|
||||
align: 'center',
|
||||
width: '5%',
|
||||
valign: 'middle',
|
||||
formatter: function (val, row, index) {
|
||||
if (val == '0') {
|
||||
return "有效";
|
||||
} else {
|
||||
return '无效';
|
||||
}
|
||||
}
|
||||
|
||||
},
|
||||
{
|
||||
field: 'id',
|
||||
title: '操作',
|
||||
align: 'center',
|
||||
width: '10%',
|
||||
formatter: function (val, row, index) {
|
||||
return '<button id="btnEdit" name="btnEdit" class="btn btn-sm btn-success opt-edit" data-id=' + val + '>' +
|
||||
'<i class="glyphicon glyphicon-edit"></i> 编辑</button>' +
|
||||
' <button class="btn btn-sm btn-danger opt-remove" data-id=' + val + ' data-new-status=' + 2 +
|
||||
'><i class="glyphicon glyphicon-remove"></i>删除</button>';
|
||||
|
||||
}
|
||||
}
|
||||
],
|
||||
undefinedText: "-",
|
||||
cache: false,
|
||||
striped: true,
|
||||
showRefresh: false,
|
||||
pageSize: 50,
|
||||
pagination: true,
|
||||
pageList: [20, 50, 100],
|
||||
search: false,
|
||||
sidePagination: "server", //表示服务端请求
|
||||
queryParamsType: "undefined",
|
||||
queryParams: function queryParams (params) { //设置查询参数
|
||||
var param = {
|
||||
pageNum: params.pageNumber,
|
||||
pageSize: params.pageSize
|
||||
};
|
||||
return param;
|
||||
},
|
||||
ajax: function (request) { //使用ajax请求
|
||||
$.ajax({
|
||||
type: "GET",
|
||||
url: '/admin/dress/shop/list',
|
||||
contentType: 'application/json;charset=utf-8',
|
||||
dataType: 'json',
|
||||
data: request.data,
|
||||
success: function (res) {
|
||||
apiResult(res);
|
||||
console.log(res)
|
||||
request.success({
|
||||
total: res.data.total,
|
||||
rows: res.data.rows.map(i => {
|
||||
let value = i.name;
|
||||
if (value.startsWith('{') && value.endsWith('}')) {
|
||||
i.name = JSON.parse(i.name);
|
||||
} else {
|
||||
i.name = {
|
||||
zh: i.name,
|
||||
ar: i.name,
|
||||
en: i.name,
|
||||
};
|
||||
}
|
||||
return i;
|
||||
})
|
||||
});
|
||||
},
|
||||
error: function (req) {
|
||||
serverError(req);
|
||||
}
|
||||
})
|
||||
},
|
||||
toolbar: '#toolbar',
|
||||
onLoadSuccess: function () { //加载成功时执行
|
||||
console.log("load success");
|
||||
},
|
||||
onLoadError: function () { //加载失败时执行
|
||||
console.log("load fail");
|
||||
}
|
||||
});
|
||||
},
|
||||
methods: {
|
||||
initData() {
|
||||
$(function () {
|
||||
$('#table').bootstrapTable('destroy');
|
||||
$('#table').bootstrapTable({
|
||||
columns: [
|
||||
{ field: 'id', title: 'ID', align: 'center', valign: 'middle', width: '10%' },
|
||||
{ field: 'dressId', title: '装扮id', align: 'center', valign: 'middle', width: '10%' },
|
||||
{ field: 'name', title: '装扮名称', align: 'left', valign: 'middle', width: '10%' },
|
||||
{
|
||||
field: 'pic', title: '装扮图片', align: 'left', valign: 'middle', width: '10%',
|
||||
formatter: function (val, row, index) {
|
||||
if (null != val && val != '') {
|
||||
return '<img src="' + val + '" alt="" style="width: 30px; height: 30px;">';
|
||||
}
|
||||
return '-';
|
||||
}
|
||||
},
|
||||
{
|
||||
field: 'dressType',
|
||||
title: '装扮类型',
|
||||
align: 'center',
|
||||
width: '5%',
|
||||
valign: 'middle',
|
||||
formatter: function (val, row, index) {
|
||||
if (val == '0') {
|
||||
return "头饰";
|
||||
} else if (val == '1') {
|
||||
return '座驾';
|
||||
} else if (val == '2') {
|
||||
return '铭牌';
|
||||
} else if (val == '3') {
|
||||
return '资料卡';
|
||||
} else if (val == '4') {
|
||||
return '聊天气泡';
|
||||
} else {
|
||||
return '-';
|
||||
}
|
||||
}
|
||||
|
||||
},
|
||||
{ field: 'dressSeq', title: '装扮排序', align: 'center', valign: 'middle', width: '10%' },
|
||||
{ field: 'dressPrice', title: '装扮展示价值', align: 'center', valign: 'middle', width: '10%' },
|
||||
{ field: 'dressDay', title: '装扮有效期(天)', align: 'center', valign: 'middle', width: '10%' },
|
||||
{ field: 'buyNum', title: '购买数量', align: '购买数量 ', valign: 'middle', width: '10%' },
|
||||
{ field: 'userDonateNum', title: '购买赠送用户数量', align: '购买数量', valign: 'middle', width: '10%' },
|
||||
{
|
||||
field: 'dressLimitStatus',
|
||||
title: '装扮限时状态',
|
||||
align: 'center',
|
||||
width: '5%',
|
||||
valign: 'middle',
|
||||
formatter: function (val, row, index) {
|
||||
if (val == '0') {
|
||||
return "有效";
|
||||
} else {
|
||||
return '无效';
|
||||
}
|
||||
}
|
||||
|
||||
},
|
||||
{
|
||||
field: 'id',
|
||||
title: '操作',
|
||||
align: 'center',
|
||||
width: '10%',
|
||||
formatter: function (val, row, index) {
|
||||
return '<button id="btnEdit" name="btnEdit" class="btn btn-sm btn-success opt-edit" data-id=' + val + '>' +
|
||||
'<i class="glyphicon glyphicon-edit"></i> 编辑</button>' +
|
||||
' <button class="btn btn-sm btn-danger opt-remove" data-id=' + val + ' data-new-status=' + 2 +
|
||||
'><i class="glyphicon glyphicon-remove"></i>删除</button>';
|
||||
|
||||
}
|
||||
}
|
||||
],
|
||||
undefinedText: "-",
|
||||
cache: false,
|
||||
striped: true,
|
||||
showRefresh: false,
|
||||
pageSize: 50,
|
||||
pagination: true,
|
||||
pageList: [20, 50, 100, 200, 300, 500],
|
||||
search: false,
|
||||
sidePagination: "server", //表示服务端请求
|
||||
queryParamsType: "undefined",
|
||||
queryParams: function queryParams(params) { //设置查询参数
|
||||
var param = {
|
||||
pageNum: params.pageNumber,
|
||||
pageSize: params.pageSize
|
||||
};
|
||||
return param;
|
||||
},
|
||||
ajax: function (request) { //使用ajax请求
|
||||
$.ajax({
|
||||
type: "GET",
|
||||
url: '/admin/dress/shop/list.action',
|
||||
contentType: 'application/json;charset=utf-8',
|
||||
dataType: 'json',
|
||||
data: request.data,
|
||||
success: function (res) {
|
||||
apiResult(res);
|
||||
request.success({
|
||||
rows: res.data.rows,
|
||||
total: res.data.total,
|
||||
});
|
||||
},
|
||||
error: function (req) {
|
||||
serverError(req);
|
||||
}
|
||||
})
|
||||
},
|
||||
toolbar: '#toolbar',
|
||||
onLoadSuccess: function () { //加载成功时执行
|
||||
console.log("load success");
|
||||
},
|
||||
onLoadError: function () { //加载失败时执行
|
||||
console.log("load fail");
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
// 查询刷新
|
||||
$('#btnSearch').on('click', function () {
|
||||
TableHelper.doRefresh('#table');
|
||||
});
|
||||
// 查询刷新
|
||||
$('#btnSearch').on('click', function () {
|
||||
TableHelper.doRefresh('#table');
|
||||
});
|
||||
|
||||
|
||||
//新建标签
|
||||
$("#btnAdd").click(function () {
|
||||
clearModal();
|
||||
$("#roomTagModal").modal('show');
|
||||
});
|
||||
//新建标签
|
||||
$("#btnAdd").click(function () {
|
||||
clearModal();
|
||||
$("#roomTagModal").modal('show');
|
||||
});
|
||||
|
||||
$("#add").click(function () {
|
||||
var id = $("#id").val();
|
||||
var dressType = $('#dressType').val();
|
||||
var dressId = $("#dressId").val();
|
||||
var dressSeq = $('#dressSeq').val();
|
||||
var dressPrice = $('#dressPrice').val();
|
||||
var dressDay = $('#dressDay').val();
|
||||
var dressLimitStatus = $('#dressLimitStatus').val();
|
||||
$("#add").click(function () {
|
||||
var id = $("#id").val();
|
||||
var dressType = $('#dressType').val();
|
||||
var dressId = $("#dressId").val();
|
||||
var dressSeq = $('#dressSeq').val();
|
||||
var dressPrice = $('#dressPrice').val();
|
||||
var dressDay = $('#dressDay').val();
|
||||
var dressLimitStatus = $('#dressLimitStatus').val();
|
||||
|
||||
if ($("#addForm").validationEngine('validate')) {
|
||||
$.ajax({
|
||||
type: "post",
|
||||
url: "/admin/dress/shop/saveOrUpdate.action",
|
||||
data: {
|
||||
id: id,
|
||||
dressId: dressId,
|
||||
dressType: dressType,
|
||||
dressSeq: dressSeq,
|
||||
dressPrice: dressPrice,
|
||||
dressDay: dressDay,
|
||||
dressLimitStatus: dressLimitStatus,
|
||||
},
|
||||
dataType: "json",
|
||||
success: function (json) {
|
||||
if (json.code == 200) {
|
||||
$("#tipMsg").text("保存成功");
|
||||
$("#tipModal").modal('show');
|
||||
TableHelper.doRefresh("#table");
|
||||
$("#roomTagModal").modal('hide');
|
||||
} else {
|
||||
$("#tipMsg").text("保存失败." + json.message);
|
||||
$("#tipModal").modal('show');
|
||||
TableHelper.doRefresh("#table");
|
||||
$("#roomTagModal").modal('hide');
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
$("#table").on("click", '.opt-edit', function () {
|
||||
var id = $(this).attr("data-id");
|
||||
clearModal();
|
||||
|
||||
$.ajax({
|
||||
type: "get",
|
||||
url: "/admin/dress/shop/getById.action",
|
||||
data: { id: id },
|
||||
dataType: "json",
|
||||
success: function (res) {
|
||||
var json = res.data;
|
||||
if (json) {
|
||||
$("#id").val(id);
|
||||
$('#dressId').val(json.dressId);
|
||||
$('#dressType').val(json.dressType);
|
||||
$('#dressSeq').val(json.dressSeq);
|
||||
$('#dressPrice').val(json.dressPrice);
|
||||
$('#dressDay').val(json.dressDay);
|
||||
$('#dressLimitStatus').val(json.dressLimitStatus);
|
||||
// 打开编辑弹窗
|
||||
$("#roomTagModal").modal('show');
|
||||
$("#modalLabel").text("编辑");
|
||||
} else {
|
||||
$("#tipMsg").text("获取信息出错");
|
||||
$("#tipModal").modal('show');
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
$("#table").on("click", '.opt-remove', function () {
|
||||
var id = $(this).attr("data-id");
|
||||
|
||||
if (confirm("你确认删除该记录吗? \r\n 删除后再也不能找回,请谨慎操作!")) {
|
||||
const requestParam = {
|
||||
id: id
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
type: "get",
|
||||
url: "/admin/dress/shop/delById",
|
||||
data: requestParam,
|
||||
dataType: "json",
|
||||
contentType: 'application/json',
|
||||
success: function (json) {
|
||||
if (json.code == 200) {
|
||||
$("#tipMsg").text("修改成功");
|
||||
$("#tipModal").modal('show');
|
||||
TableHelper.doRefresh("#table");
|
||||
} else {
|
||||
$("#tipMsg").text("修改失败." + json.message);
|
||||
$("#tipModal").modal('show');
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
function apiResult(json) {
|
||||
if (json.code == 200 && json.message == 'success') {
|
||||
return true;
|
||||
}
|
||||
$("#tipMsg").text("请求失败,错误信息:" + json.message);
|
||||
$("#tipModal").modal('show');
|
||||
return false;
|
||||
if ($("#addForm").validationEngine('validate')) {
|
||||
$.ajax({
|
||||
type: "post",
|
||||
url: "/admin/dress/shop/saveOrUpdate",
|
||||
data: {
|
||||
id: id,
|
||||
dressId: dressId,
|
||||
dressType: dressType,
|
||||
dressSeq: dressSeq,
|
||||
dressPrice: dressPrice,
|
||||
dressDay: dressDay,
|
||||
dressLimitStatus: dressLimitStatus,
|
||||
},
|
||||
dataType: "json",
|
||||
success: function (json) {
|
||||
if (json.code == 200) {
|
||||
$("#tipMsg").text("保存成功");
|
||||
$("#tipModal").modal('show');
|
||||
TableHelper.doRefresh("#table");
|
||||
$("#roomTagModal").modal('hide');
|
||||
} else {
|
||||
$("#tipMsg").text("保存失败." + json.message);
|
||||
$("#tipModal").modal('show');
|
||||
TableHelper.doRefresh("#table");
|
||||
$("#roomTagModal").modal('hide');
|
||||
}
|
||||
|
||||
|
||||
$('#iconBtn').on('click', function () {
|
||||
if ($('#iconFile').val() == '') {
|
||||
$('#tipMsg').text('上传图片为空');
|
||||
$('#tipModal').modal('show');
|
||||
return;
|
||||
}
|
||||
$.ajaxFileUpload({
|
||||
fileElementId: 'iconFile', //需要上传的文件域的ID,即<input type="file">的ID。
|
||||
url: '/admin/upload/img', //后台方法的路径
|
||||
type: 'post', //当要提交自定义参数时,这个参数要设置成post
|
||||
dataType: 'json', //服务器返回的数据类型。可以为xml,script,json,html。如果不填写,jQuery会自动判断。
|
||||
secureuri: false, //是否启用安全提交,默认为false。
|
||||
async: true, //是否是异步
|
||||
success: function (json) { //提交成功后自动执行的处理函数,参数data就是服务器返回的数据。
|
||||
if (json.path) {
|
||||
$('#iconUrl').val(json.path);
|
||||
$('#iconImgUrl').attr("src", json.path);
|
||||
|
||||
console.log(json.path);
|
||||
|
||||
} else {
|
||||
$("#tipMsg").text(json.msg);
|
||||
$("#tipModal").modal('show');
|
||||
}
|
||||
},
|
||||
error: function (data, status, e) { //提交失败自动执行的处理函数。
|
||||
console.error(e);
|
||||
}
|
||||
});
|
||||
})
|
||||
|
||||
function clearModal() {
|
||||
$('#iconImgUrl').attr('src', '');
|
||||
|
||||
$('#addForm').find('input[type=text],input[type=hidden],input[type=file]').each(function () {
|
||||
$(this).val('');
|
||||
})
|
||||
|
||||
$('#type').val(1);
|
||||
|
||||
}
|
||||
|
||||
|
||||
$("#type").change(function () {
|
||||
var optVal = $(this).val();
|
||||
});
|
||||
|
||||
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
$("#table").on("click", '.opt-edit', function () {
|
||||
var id = $(this).attr("data-id");
|
||||
clearModal();
|
||||
|
||||
$.ajax({
|
||||
type: "get",
|
||||
url: "/admin/dress/shop/getById",
|
||||
data: { id: id },
|
||||
dataType: "json",
|
||||
success: function (res) {
|
||||
var json = res.data;
|
||||
if (json) {
|
||||
$("#id").val(id);
|
||||
$('#dressId').val(json.dressId);
|
||||
$('#dressType').val(json.dressType);
|
||||
$('#dressSeq').val(json.dressSeq);
|
||||
$('#dressPrice').val(json.dressPrice);
|
||||
$('#dressDay').val(json.dressDay);
|
||||
$('#dressLimitStatus').val(json.dressLimitStatus);
|
||||
// 打开编辑弹窗
|
||||
$("#roomTagModal").modal('show');
|
||||
$("#modalLabel").text("编辑");
|
||||
} else {
|
||||
$("#tipMsg").text("获取信息出错");
|
||||
$("#tipModal").modal('show');
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
$("#table").on("click", '.opt-remove', function () {
|
||||
var id = $(this).attr("data-id");
|
||||
|
||||
if (confirm("你确认删除该记录吗? \r\n 删除后再也不能找回,请谨慎操作!")) {
|
||||
const requestParam = {
|
||||
id: id
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
type: "get",
|
||||
url: "/admin/dress/shop/delById",
|
||||
data: requestParam,
|
||||
dataType: "json",
|
||||
contentType: 'application/json',
|
||||
success: function (json) {
|
||||
if (json.code == 200) {
|
||||
$("#tipMsg").text("修改成功");
|
||||
$("#tipModal").modal('show');
|
||||
TableHelper.doRefresh("#table");
|
||||
} else {
|
||||
$("#tipMsg").text("修改失败." + json.message);
|
||||
$("#tipModal").modal('show');
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
function apiResult (json) {
|
||||
if (json.code == 200 && json.message == 'success') {
|
||||
return true;
|
||||
}
|
||||
$("#tipMsg").text("请求失败,错误信息:" + json.message);
|
||||
$("#tipModal").modal('show');
|
||||
return false;
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
$('#iconBtn').on('click', function () {
|
||||
if ($('#iconFile').val() == '') {
|
||||
$('#tipMsg').text('上传图片为空');
|
||||
$('#tipModal').modal('show');
|
||||
return;
|
||||
}
|
||||
$.ajaxFileUpload({
|
||||
fileElementId: 'iconFile', //需要上传的文件域的ID,即<input type="file">的ID。
|
||||
url: '/admin/upload/img', //后台方法的路径
|
||||
type: 'post', //当要提交自定义参数时,这个参数要设置成post
|
||||
dataType: 'json', //服务器返回的数据类型。可以为xml,script,json,html。如果不填写,jQuery会自动判断。
|
||||
secureuri: false, //是否启用安全提交,默认为false。
|
||||
async: true, //是否是异步
|
||||
success: function (json) { //提交成功后自动执行的处理函数,参数data就是服务器返回的数据。
|
||||
if (json.path) {
|
||||
$('#iconUrl').val(json.path);
|
||||
$('#iconImgUrl').attr("src", json.path);
|
||||
|
||||
console.log(json.path);
|
||||
|
||||
} else {
|
||||
$("#tipMsg").text(json.msg);
|
||||
$("#tipModal").modal('show');
|
||||
}
|
||||
},
|
||||
error: function (data, status, e) { //提交失败自动执行的处理函数。
|
||||
console.error(e);
|
||||
}
|
||||
});
|
||||
})
|
||||
|
||||
function clearModal () {
|
||||
$('#iconImgUrl').attr('src', '');
|
||||
|
||||
$('#addForm').find('input[type=text],input[type=hidden],input[type=file]').each(function () {
|
||||
$(this).val('');
|
||||
})
|
||||
|
||||
$('#type').val(1);
|
||||
|
||||
}
|
||||
|
||||
|
||||
$("#type").change(function () {
|
||||
var optVal = $(this).val();
|
||||
});
|
||||
|
||||
|
||||
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
};
|
||||
</script>
|
||||
|
@@ -296,7 +296,7 @@ export default {
|
||||
}
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/admin/faceJson/updateImg.action",
|
||||
url: "/admin/faceJson/updateImg",
|
||||
data: data,
|
||||
cache: false,
|
||||
contentType: false, //不可缺
|
||||
@@ -311,7 +311,7 @@ export default {
|
||||
for (var j = 0; j <= json.length - 1; j++) {
|
||||
$("#tipMsg").text("上传成功");
|
||||
$("#tipModal").modal('show');
|
||||
var path = '/admin/faceJson/getPicInputStream.action?type=1&picName=' + json[j];
|
||||
var path = '/admin/faceJson/getPicInputStream?type=1&picName=' + json[j];
|
||||
var info = json[j].split('.');
|
||||
var name = info[0];
|
||||
var nameSuffix = info[1];
|
||||
@@ -340,7 +340,7 @@ export default {
|
||||
function deleteImg(val, valRes) {
|
||||
$.ajax({
|
||||
type: "post",
|
||||
url: "/admin/faceJson/deleteFile.action",
|
||||
url: "/admin/faceJson/deleteFile",
|
||||
data: {
|
||||
picName: val + '.' + valRes,
|
||||
type: 1,
|
||||
@@ -390,7 +390,7 @@ export default {
|
||||
formatter: function (val, row, index) {
|
||||
var info = val.split('.');
|
||||
if (info.length > 1) {
|
||||
var a = '/admin/faceJson/getPicInputStream.action?picName=' + val;
|
||||
var a = '/admin/faceJson/getPicInputStream?picName=' + val;
|
||||
return "<img src='" + a + "' width='40' height='40'>";
|
||||
|
||||
}
|
||||
@@ -461,7 +461,7 @@ export default {
|
||||
return param;
|
||||
},
|
||||
toolbar: '#toolbar',
|
||||
url: '/admin/faceJson/list.action',
|
||||
url: '/admin/faceJson/list',
|
||||
onLoadSuccess: function (json) { //加载成功时执行
|
||||
if (json.code != 200) {
|
||||
console.log(json.msg);
|
||||
@@ -502,7 +502,7 @@ export default {
|
||||
"\r\n删除后再也不能找回,请谨慎操作!")) {
|
||||
$.ajax({
|
||||
type: 'post',
|
||||
url: "/admin/faceJson/deletePatch.action",
|
||||
url: "/admin/faceJson/deletePatch",
|
||||
data: {
|
||||
ids: JSON.stringify(idArr),
|
||||
},
|
||||
@@ -526,7 +526,7 @@ export default {
|
||||
$("#tipModal").modal('show');
|
||||
$.ajax({
|
||||
type: "post",
|
||||
url: "/admin/faceJson/updateFaceInfo.action",
|
||||
url: "/admin/faceJson/updateFaceInfo",
|
||||
data: {},
|
||||
dataType: "json",
|
||||
success: function (json) {
|
||||
@@ -548,7 +548,7 @@ export default {
|
||||
$("#tipModal").modal('show');
|
||||
$.ajax({
|
||||
type: "post",
|
||||
url: "/admin/faceJson/restoreFaceInfo.action",
|
||||
url: "/admin/faceJson/restoreFaceInfo",
|
||||
data: {},
|
||||
dataType: "json",
|
||||
success: function (json) {
|
||||
@@ -587,7 +587,7 @@ export default {
|
||||
var id = $(this).attr("data-id");
|
||||
var info = id.split('.');
|
||||
if (info.length > 1) {
|
||||
var path = '/admin/faceJson/getPicInputStream.action?picName=' + id;
|
||||
var path = '/admin/faceJson/getPicInputStream?picName=' + id;
|
||||
$("#img").attr("src", path);
|
||||
$("#beforeImgName").val(id);
|
||||
$("#afterImgName").val("");
|
||||
@@ -596,7 +596,7 @@ export default {
|
||||
else {
|
||||
$.ajax({
|
||||
type: "post",
|
||||
url: "/admin/faceJson/getFaceJsonItem.action",
|
||||
url: "/admin/faceJson/getFaceJsonItem",
|
||||
data: {
|
||||
picName: id,
|
||||
},
|
||||
@@ -657,7 +657,7 @@ export default {
|
||||
if (confirm("确认删除表情图片吗?")) {
|
||||
$.ajax({
|
||||
type: "post",
|
||||
url: "/admin/faceJson/deleteFile.action",
|
||||
url: "/admin/faceJson/deleteFile",
|
||||
data: {
|
||||
picName: id,
|
||||
type: 2,
|
||||
@@ -680,7 +680,7 @@ export default {
|
||||
if (confirm("确认删除表情json吗(相应表情图片也将删除)?")) {
|
||||
$.ajax({
|
||||
type: "post",
|
||||
url: "/admin/faceJson/deleteFaceJsonItem.action",
|
||||
url: "/admin/faceJson/deleteFaceJsonItem",
|
||||
data: {
|
||||
picName: id,
|
||||
},
|
||||
@@ -704,7 +704,7 @@ export default {
|
||||
$("#addImg").click(function () {
|
||||
$.ajax({
|
||||
type: "post",
|
||||
url: "/admin/faceJson/addImg.action",
|
||||
url: "/admin/faceJson/addImg",
|
||||
data: {},
|
||||
dataType: "json",
|
||||
success: function (json) {
|
||||
@@ -726,7 +726,7 @@ export default {
|
||||
var afterImgName = $("#afterImgName").val();
|
||||
$.ajax({
|
||||
type: "post",
|
||||
url: "/admin/faceJson/renameImg.action",
|
||||
url: "/admin/faceJson/renameImg",
|
||||
data: {
|
||||
beforeImgName: beforeImgName,
|
||||
afterImgName: afterImgName,
|
||||
@@ -773,7 +773,7 @@ export default {
|
||||
if ($("#addForm").validationEngine('validate')) {
|
||||
$.ajax({
|
||||
type: "post",
|
||||
url: "/admin/faceJson/configFaceJsonSingle.action?jsonConfigType=" + jsonConfigType,
|
||||
url: "/admin/faceJson/configFaceJsonSingle?jsonConfigType=" + jsonConfigType,
|
||||
data: {
|
||||
id: addFaceId,
|
||||
name: addFaceName,
|
||||
|
@@ -387,7 +387,7 @@ export default {
|
||||
if ($("#addFamilyForm").validationEngine('validate')) {
|
||||
$.ajax({
|
||||
type: 'post',
|
||||
url: '/admin/family/saveOrUpdate.action',
|
||||
url: '/admin/family/saveOrUpdate',
|
||||
data: {
|
||||
name: familyName,
|
||||
leader: leaderId,
|
||||
@@ -518,7 +518,7 @@ export default {
|
||||
return param;
|
||||
},
|
||||
toolbar: '#toolbar',
|
||||
url: '/admin/family/list.action',
|
||||
url: '/admin/family/list',
|
||||
onLoadSuccess: function () { //加载成功时执行
|
||||
$(".bs-checkbox").css({ 'text-align': 'center', 'vertical-align': 'middle' });
|
||||
console.log("load success");
|
||||
@@ -534,7 +534,7 @@ export default {
|
||||
var id = $(this).attr("data-id");
|
||||
$.ajax({
|
||||
type: "get",
|
||||
url: "/admin/family/getById.action",
|
||||
url: "/admin/family/getById",
|
||||
data: { familyId: id },
|
||||
dataType: "json",
|
||||
success: function (json) {
|
||||
@@ -601,7 +601,7 @@ export default {
|
||||
if ($("#editFamilyForm").validationEngine('validate')) {
|
||||
$.ajax({
|
||||
type: 'post',
|
||||
url: '/admin/family/saveOrUpdate.action',
|
||||
url: '/admin/family/saveOrUpdate',
|
||||
data: {
|
||||
id: familyId,
|
||||
name: familyName,
|
||||
@@ -647,7 +647,7 @@ export default {
|
||||
if ($("#forbFamilyForm").validationEngine('validate')) {
|
||||
$.ajax({
|
||||
type: 'post',
|
||||
url: '/admin/family/saveOrUpdate.action',
|
||||
url: '/admin/family/saveOrUpdate',
|
||||
data: {
|
||||
id: familyId,
|
||||
status: 2,
|
||||
@@ -687,7 +687,7 @@ export default {
|
||||
if ($("#recoverFamilyForm").validationEngine('validate')) {
|
||||
$.ajax({
|
||||
type: 'post',
|
||||
url: '/admin/family/saveOrUpdate.action',
|
||||
url: '/admin/family/saveOrUpdate',
|
||||
data: {
|
||||
id: familyId,
|
||||
status: 1,
|
||||
@@ -729,7 +729,7 @@ export default {
|
||||
if ($("#dissFamilyForm").validationEngine('validate')) {
|
||||
$.ajax({
|
||||
type: 'post',
|
||||
url: '/admin/family/remove.action',
|
||||
url: '/admin/family/remove',
|
||||
data: {
|
||||
familyId: familyId
|
||||
},
|
||||
|
@@ -94,7 +94,7 @@ export default {
|
||||
"\r\n删除后再也不能找回,请谨慎操作!")) {
|
||||
$.ajax({
|
||||
type: 'post',
|
||||
url: "/admin/family/member/del.action",
|
||||
url: "/admin/family/member/del",
|
||||
data: {
|
||||
'ids': JSON.stringify(idArr),
|
||||
'familyIds': JSON.stringify(familyIdArr)
|
||||
@@ -183,7 +183,7 @@ export default {
|
||||
return param;
|
||||
},
|
||||
toolbar: '#toolbar',
|
||||
url: '/admin/family/member/list.action',
|
||||
url: '/admin/family/member/list',
|
||||
onLoadSuccess: function () { //加载成功时执行
|
||||
//复选框居中
|
||||
$(".bs-checkbox").css({ 'text-align': 'center', 'vertical-align': 'middle' });
|
||||
|
@@ -222,7 +222,7 @@ export default {
|
||||
//TODO 权限密码校验目前没做
|
||||
$.ajax({
|
||||
type: 'post',
|
||||
url: '/admin/family/money/update.action',
|
||||
url: '/admin/family/money/update',
|
||||
data: {
|
||||
familyId: familyId,
|
||||
targetId: targetId,
|
||||
@@ -277,7 +277,7 @@ export default {
|
||||
//TODO 权限密码校验目前没做
|
||||
$.ajax({
|
||||
type: 'post',
|
||||
url: '/admin/family/money/update.action',
|
||||
url: '/admin/family/money/update',
|
||||
data: {
|
||||
familyId: familyId,
|
||||
targetId: targetId,
|
||||
@@ -317,7 +317,7 @@ export default {
|
||||
//TODO 权限教研暂时没做
|
||||
$.ajax({
|
||||
type: 'post',
|
||||
url: '/admin/family/saveOrUpdate.action',
|
||||
url: '/admin/family/saveOrUpdate',
|
||||
data: {
|
||||
id: familyId,
|
||||
openMoney: 0,
|
||||
@@ -354,7 +354,7 @@ export default {
|
||||
//TODO 权限教研暂时没做
|
||||
$.ajax({
|
||||
type: 'post',
|
||||
url: '/admin/family/saveOrUpdate.action',
|
||||
url: '/admin/family/saveOrUpdate',
|
||||
data: {
|
||||
id: familyId,
|
||||
openMoney: 1,
|
||||
@@ -448,7 +448,7 @@ export default {
|
||||
return param;
|
||||
},
|
||||
toolbar: '#toolbar',
|
||||
url: '/admin/family/money/list.action',
|
||||
url: '/admin/family/money/list',
|
||||
onLoadSuccess: function () { //加载成功时执行
|
||||
//复选框居中
|
||||
$(".bs-checkbox").css({ 'text-align': 'center', 'vertical-align': 'middle' });
|
||||
|
@@ -100,7 +100,7 @@ export default {
|
||||
return param;
|
||||
},
|
||||
toolbar: '#toolbar',
|
||||
url: '/admin/family/statistics/list.action',
|
||||
url: '/admin/family/statistics/list',
|
||||
onLoadSuccess: function (json) { //加载成功时执行
|
||||
console.log("load success");
|
||||
},
|
||||
|
@@ -79,12 +79,12 @@ export default {
|
||||
}
|
||||
}
|
||||
},
|
||||
{ field: 'goldIncreaseNum', title: '金币增加', align: 'center', width: '5%' },
|
||||
{ field: 'goldDecreaseNum', title: '金币减少', align: 'center', width: '5%' },
|
||||
{ field: 'goldNum', title: '金币余额', align: 'center', width: '5%' },
|
||||
{ field: 'diamondIncreaseNum', title: '钻石增加', align: 'center', width: '5%' },
|
||||
{ field: 'diamondDecreaseNum', title: '钻石减少', align: 'center', width: '5%' },
|
||||
{ field: 'diamondNum', title: '钻石余额', align: 'center', width: '5%' },
|
||||
{ field: 'goldIncreaseNum', title: '钻石增加', align: 'center', width: '5%' },
|
||||
{ field: 'goldDecreaseNum', title: '钻石减少', align: 'center', width: '5%' },
|
||||
{ field: 'goldNum', title: '钻石余额', align: 'center', width: '5%' },
|
||||
{ field: 'diamondIncreaseNum', title: '金币增加', align: 'center', width: '5%' },
|
||||
{ field: 'diamondDecreaseNum', title: '金币减少', align: 'center', width: '5%' },
|
||||
{ field: 'diamondNum', title: '金币余额', align: 'center', width: '5%' },
|
||||
{ field: 'totalNum', title: '总额', align: 'center', width: '5%' },
|
||||
],
|
||||
cache: false,
|
||||
@@ -107,7 +107,7 @@ export default {
|
||||
return param;
|
||||
},
|
||||
toolbar: '#toolbar',
|
||||
url: '/admin/finance/statistics.action',
|
||||
url: '/admin/finance/statistics',
|
||||
onLoadSuccess: function (json) { //加载成功时执行
|
||||
var updateTime = json.updateTime;
|
||||
$("#version").html('财务数据' + ' ' + updateTime + ' 更新');
|
||||
|
@@ -36,7 +36,7 @@
|
||||
<span id="countNum"></span>
|
||||
</p>
|
||||
<p>
|
||||
<span>用户投入钻石总数:</span>
|
||||
<span>用户投入金币总数:</span>
|
||||
<span id="userInputDiamonds"></span>
|
||||
</p>
|
||||
<p>
|
||||
@@ -193,7 +193,7 @@ export default {
|
||||
{ field: 'date', title: '日期', align: 'center', valign: 'middle', width: '20%' },
|
||||
{ field: 'peopleNum', title: '抽奖人数', align: 'center', valign: 'middle', width: '10%' },
|
||||
{ field: 'countNum', title: '抽奖记录数', align: 'center', valign: 'middle', width: '10%' },
|
||||
{ field: 'userInputDiamonds', title: '用户投入钻石数', align: 'center', valign: 'middle', width: '10%' },
|
||||
{ field: 'userInputDiamonds', title: '用户投入金币数', align: 'center', valign: 'middle', width: '10%' },
|
||||
{ field: 'giftOutputDiamonds', title: '平台产出价值数', align: 'center', valign: 'middle', width: '10%' }
|
||||
],
|
||||
cache: false,
|
||||
|
@@ -627,9 +627,14 @@ export default {
|
||||
if (res.code == 200) {
|
||||
//console.log(res);
|
||||
for (var i = 0; i < res.data.length; i++) {
|
||||
let item = res.data[i];
|
||||
let giftName = item.giftName;
|
||||
if (giftName.startsWith('{') && giftName.endsWith('}')) {
|
||||
item.giftName = JSON.parse(giftName).zh;
|
||||
}
|
||||
// id对象存储
|
||||
var id = '' + res.data[i].giftId;
|
||||
giftMap[id] = res.data[i];
|
||||
var id = '' + item.giftId;
|
||||
giftMap[id] = item;
|
||||
}
|
||||
renderAwardOption()
|
||||
}
|
||||
|
@@ -10,7 +10,7 @@
|
||||
<div id="toolbar">
|
||||
<div class="col-sm-12">
|
||||
<div class="pull-left">
|
||||
<form action="/admin/findLove/data/export.action" id="searchForm">
|
||||
<form action="/admin/findLove/data/export" id="searchForm">
|
||||
平台号:<input type="text" id="msNo" name="msNo" class="input-sm" placeholder="请输入平台号">
|
||||
|
||||
奖品名称:<input type="text" id="prizeName" name="prizeName" class="input-sm"
|
||||
@@ -100,7 +100,7 @@ export default {
|
||||
}
|
||||
},
|
||||
{ field: 'level', title: '礼物等级', align: 'center', valign: 'middle', width: '10%' },
|
||||
{ field: 'diamonds', title: '钻石单价', align: 'center', valign: 'middle', width: '10%' },
|
||||
{ field: 'diamonds', title: '金币单价', align: 'center', valign: 'middle', width: '10%' },
|
||||
{
|
||||
field: 'poolType', title: '礼物组类型', align: 'center', valign: 'middle', width: '10%', formatter: function (val, row, index) {
|
||||
switch (row.poolType) {
|
||||
|
@@ -8,24 +8,47 @@
|
||||
<section class="content">
|
||||
<div id="table"></div>
|
||||
<div id="toolbar">
|
||||
跳转类型: <select name="skipType" id="skipType" class="input-m">
|
||||
<option value="0">--全部--</option>
|
||||
<option value="1">跳转app内部</option>
|
||||
<option value="2">跳转房间</option>
|
||||
<option value="3">跳转H5页面</option>
|
||||
</select>
|
||||
状态: <select name="status" id="status" class="input-m">
|
||||
<option value="0">--全部--</option>
|
||||
<option value="1">激活启用中</option>
|
||||
<option value="2">未激活</option>
|
||||
</select>
|
||||
app: <select name="app" id="app" class="input-m">
|
||||
<option value="">--全部--</option>
|
||||
</select>
|
||||
|
||||
开始日期: <input type="text" name="timeBegin" id="beginTime" class="input-sm" value="">
|
||||
|
||||
结束日期: <input type="text" name="timeEnd" id="endTime" class="input-sm" value="">
|
||||
<div class="col-sm-12">
|
||||
<label for="skipType" class="col-sm-1 control-label">跳转类型: </label>
|
||||
<div class="col-sm-2">
|
||||
<select name="skipType" id="skipType" class="input-m form-control">
|
||||
<option value="0">--全部--</option>
|
||||
<option value="1">跳转app内部</option>
|
||||
<option value="2">跳转房间</option>
|
||||
<option value="3">跳转H5页面</option>
|
||||
</select>
|
||||
</div>
|
||||
<label for="status" class="col-sm-1 control-label">状态:</label>
|
||||
<div class="col-sm-2">
|
||||
<select name="status" id="status" class="input-m form-control">
|
||||
<option value="0">--全部--</option>
|
||||
<option value="1">激活启用中</option>
|
||||
<option value="2">未激活</option>
|
||||
</select>
|
||||
</div>
|
||||
<label for="app" class="col-sm-1 control-label">app:</label>
|
||||
<div class="col-sm-2">
|
||||
<select name="app" id="app" class="input-m form-control">
|
||||
<option value="">--全部--</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-12">
|
||||
<label for="beginTime" class="col-sm-1 control-label">开始日期: </label>
|
||||
<div class="col-sm-2">
|
||||
<input type="text" name="timeBegin" id="beginTime" class="input-sm form-control" value="">
|
||||
</div>
|
||||
<label for="endTime" class="col-sm-1 control-label">结束日期: </label>
|
||||
<div class="col-sm-2">
|
||||
<input type="text" name="timeEnd" id="endTime" class="input-sm form-control" value="">
|
||||
</div>
|
||||
<label for="partitionId" class="col-sm-1 control-label">地区:</label>
|
||||
<div class="col-sm-2">
|
||||
<select name="partitionId" id="partitionId" class="form-control"></select>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<button id="btnSearch" class="btn btn-sm btn-primary">查询</button>
|
||||
|
||||
<button id="add" class="btn btn-default">
|
||||
@@ -50,6 +73,14 @@
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<form class="form-horizontal" id="bannerForm">
|
||||
<div id="bannerPartitionDiv">
|
||||
<div class="form-group">
|
||||
<label name="partition" class="col-sm-3 control-label">选择地区*:</label>
|
||||
<div class="form-check" id = "partitionCheck">
|
||||
<!-- 分区展示-->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="name" class="col-sm-3 control-label">Banner名字:</label>
|
||||
<div class="col-sm-8">
|
||||
@@ -205,6 +236,14 @@
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<form id="addBannerForm" class="form-horizontal">
|
||||
<div id="bannerAddPartitionDiv">
|
||||
<div class="form-group">
|
||||
<label name="partition" class="col-sm-3 control-label">选择地区*:</label>
|
||||
<div class="form-check" id = "partitionAddCheck">
|
||||
<!-- 分区展示-->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="addName" class="col-sm-3 control-label">Banner名字:</label>
|
||||
<div class="col-sm-8">
|
||||
@@ -354,6 +393,8 @@
|
||||
|
||||
<script>
|
||||
import TableHelper from '@/utils/bootstrap-table-helper';
|
||||
import { getPartitionInfoList } from '@/api/partition/partitionInfo';
|
||||
import { buildSelectOption } from '@/utils/system-helper';
|
||||
|
||||
var app = {};
|
||||
var validApp = {};
|
||||
@@ -393,6 +434,7 @@ export default {
|
||||
},
|
||||
created() {
|
||||
this.$nextTick(function () {
|
||||
this.initPartition();
|
||||
this.initData();
|
||||
});
|
||||
},
|
||||
@@ -437,6 +479,7 @@ export default {
|
||||
$('#table').bootstrapTable({
|
||||
columns: [
|
||||
{ field: 'sel', title: 'ID', align: 'center', valign: 'middle', checkbox: true, width: '1%' },
|
||||
{field: 'partitionDesc', title: '地区', align: 'center', valign: 'middle', width: '5%'},
|
||||
{ field: 'bannerId', title: 'bannerID', align: 'center', valign: 'middle', width: '5%' },
|
||||
{ field: 'bannerName', title: '名称', align: 'center', valign: 'middle', width: '10%' },
|
||||
{
|
||||
@@ -618,14 +661,14 @@ export default {
|
||||
bannerStatus: parseInt($('#status').val()),
|
||||
skipType: parseInt($('#skipType').val()),
|
||||
bannerType: 9,
|
||||
// appId: ($('#app').val()) ? $('#app').val() : null
|
||||
partitionId: $('#partitionId').val(),
|
||||
};
|
||||
// console.log(param);
|
||||
return param;
|
||||
},
|
||||
uniqueId: 'code',
|
||||
toolbar: '#toolbar',
|
||||
url: '/admin/banner/list.action',
|
||||
url: '/admin/banner/list',
|
||||
onLoadSuccess: function () { //加载成功时执行
|
||||
console.log("load success");
|
||||
},
|
||||
@@ -646,39 +689,66 @@ export default {
|
||||
$('.titleListDev').addClass("hidden");
|
||||
var bannerId = parseInt($(this).data('id'));
|
||||
isEdit = true;
|
||||
debugger
|
||||
$.ajax({
|
||||
type: "get",
|
||||
url: "/admin/banner/get.action",
|
||||
data: { bannerId: bannerId },
|
||||
dataType: "json",
|
||||
type: 'get',
|
||||
url: '/partition/listPartitionInfo',
|
||||
dataType: 'json',
|
||||
success: function (json) {
|
||||
if (json.code == 200) {
|
||||
var date = json.data.endTime ? new Date(json.data.endTime).format("yyyy-MM-dd hh:mm:ss") : '';
|
||||
var startDate = json.data.startTime ? new Date(json.data.startTime).format("yyyy-MM-dd hh:mm:ss") : '';
|
||||
$('#name').val(json.data.bannerName);
|
||||
$('#imgUrl').attr('src', json.data.bannerPic);
|
||||
$('#bannerPic').val(json.data.bannerPic);
|
||||
$('#skipUrlSort').val(json.data.skipType);
|
||||
$('#skipUrlContent').val(json.data.skipUri);
|
||||
$("#bannerType").val(json.data.bannerType);
|
||||
$('#seqNo').val(json.data.seqNo);
|
||||
//$("#appId").val(json.data.appId);
|
||||
$('#iosVersion').val(json.data.iosVersion);
|
||||
$('#androidVersion').val(json.data.androidVersion);
|
||||
$('#noShowChannels').val(json.data.noShowChannels);
|
||||
$('#bannerStatus').val(json.data.bannerStatus);
|
||||
$('#startDate').val(startDate);
|
||||
$('#endDate').val(date);
|
||||
$('#bannerId').val(json.data.bannerId);
|
||||
$('#platform').val(json.data.platform);
|
||||
$('#limitLevelExper').val(json.data.limitLevelExper);
|
||||
$('#showType').val(json.data.showType);
|
||||
$('#showRule').val(json.data.showRule);
|
||||
window.selectOnChange(json.data.bannerType, json.data.titleId);
|
||||
$('#titleList').val(json.data.titleId);
|
||||
$('#bannerModal').modal('show');
|
||||
// picker1.datetimepicker('setStartDate', startDate);
|
||||
var length = json.data.length;
|
||||
var partitionCheck = $("#partitionCheck");
|
||||
partitionCheck.empty();
|
||||
// 分区
|
||||
for (var i = 0; i < length; i++) {
|
||||
var checkbox = $("<input>", {type: "checkbox", id: "checkbox" + json.data[i].id, name: "partitionIds", value: json.data[i].id});
|
||||
var label = $("<label>", {class: "partition-checkbox-label", text: json.data[i].desc});
|
||||
|
||||
partitionCheck.append(checkbox,label);
|
||||
}
|
||||
$.ajax({
|
||||
type: "get",
|
||||
url: "/admin/banner/get",
|
||||
data: { bannerId: bannerId },
|
||||
dataType: "json",
|
||||
success: function (json) {
|
||||
if (json.code == 200) {
|
||||
var date = json.data.endTime ? new Date(json.data.endTime).format("yyyy-MM-dd hh:mm:ss") : '';
|
||||
var startDate = json.data.startTime ? new Date(json.data.startTime).format("yyyy-MM-dd hh:mm:ss") : '';
|
||||
$('#name').val(json.data.bannerName);
|
||||
$('#imgUrl').attr('src', json.data.bannerPic);
|
||||
$('#bannerPic').val(json.data.bannerPic);
|
||||
$('#skipUrlSort').val(json.data.skipType);
|
||||
$('#skipUrlContent').val(json.data.skipUri);
|
||||
$("#bannerType").val(json.data.bannerType);
|
||||
$('#seqNo').val(json.data.seqNo);
|
||||
//$("#appId").val(json.data.appId);
|
||||
$('#iosVersion').val(json.data.iosVersion);
|
||||
$('#androidVersion').val(json.data.androidVersion);
|
||||
$('#noShowChannels').val(json.data.noShowChannels);
|
||||
$('#bannerStatus').val(json.data.bannerStatus);
|
||||
$('#startDate').val(startDate);
|
||||
$('#endDate').val(date);
|
||||
$('#bannerId').val(json.data.bannerId);
|
||||
$('#platform').val(json.data.platform);
|
||||
$('#limitLevelExper').val(json.data.limitLevelExper);
|
||||
$('#showType').val(json.data.showType);
|
||||
$('#showRule').val(json.data.showRule);
|
||||
window.selectOnChange(json.data.bannerType, json.data.titleId);
|
||||
$('#titleList').val(json.data.titleId);
|
||||
// 分区信息
|
||||
var partitionIds = json.data.partitionIds;
|
||||
var length = partitionIds.length;
|
||||
for (var i = 0; i < length; i++) {
|
||||
$("#checkbox" + partitionIds[i]).prop('checked', true);
|
||||
}
|
||||
$('#bannerModal').modal('show');
|
||||
// picker1.datetimepicker('setStartDate', startDate);
|
||||
} else {
|
||||
$("#tipMsg").text("获取信息出错");
|
||||
$("#tipModal").modal('show');
|
||||
}
|
||||
}
|
||||
});
|
||||
} else {
|
||||
$("#tipMsg").text("获取信息出错");
|
||||
$("#tipModal").modal('show');
|
||||
@@ -732,7 +802,7 @@ export default {
|
||||
if ($('#bannerForm').validationEngine('validate')) {
|
||||
$.ajax({
|
||||
type: "post",
|
||||
url: "/admin/banner/save.action?startTimeString=" + $('#startDate').val()
|
||||
url: "/admin/banner/save?startTimeString=" + $('#startDate').val()
|
||||
+ "&endTimeString=" + $('#endDate').val(),
|
||||
data: $('#bannerForm').serialize(),
|
||||
dataType: 'json',
|
||||
@@ -756,6 +826,32 @@ export default {
|
||||
$('#addStartDate').val('');
|
||||
$('#addEndDate').val('');
|
||||
|
||||
// 分区处理
|
||||
$.ajax({
|
||||
type: 'get',
|
||||
url: '/partition/listPartitionInfo',
|
||||
dataType: 'json',
|
||||
success: function (json) {
|
||||
if (json.code == 200) {
|
||||
var length = json.data.length;
|
||||
var partitionCheck = $("#partitionAddCheck");
|
||||
partitionCheck.empty();
|
||||
// 创建3个checkbox元素并添加到myDiv元素上
|
||||
for (var i = 0; i < length; i++) {
|
||||
var checkbox = $("<input>", {
|
||||
type: "checkbox",
|
||||
id: "checkbox" + json.data[i].id,
|
||||
name: "partitionIds",
|
||||
value: json.data[i].id
|
||||
});
|
||||
var label = $("<label>", {class: "partition-checkbox-label", text: json.data[i].desc});
|
||||
|
||||
partitionCheck.append(checkbox, label);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// 处理appId
|
||||
// $('#addAppId').empty();
|
||||
// $('#addAppId').append('<option value="">请选择</option>');
|
||||
@@ -780,7 +876,7 @@ export default {
|
||||
if ($('#addBannerForm').validationEngine('validate')) {
|
||||
$.ajax({
|
||||
type: "post",
|
||||
url: "/admin/banner/save.action?startTimeString=" + $('#addStartDate').val()
|
||||
url: "/admin/banner/save?startTimeString=" + $('#addStartDate').val()
|
||||
+ "&endTimeString=" + $('#addEndDate').val(),
|
||||
data: $('#addBannerForm').serialize(),
|
||||
dataType: 'json',
|
||||
@@ -835,7 +931,7 @@ export default {
|
||||
$('#uploadBtn').on('click', function () {
|
||||
var options = {
|
||||
type: 'post',
|
||||
url: '/admin/banner/upload.action',
|
||||
url: '/admin/banner/upload',
|
||||
dataType: 'json',
|
||||
success: function (json) {
|
||||
if (json.code == 200) {
|
||||
@@ -852,7 +948,7 @@ export default {
|
||||
$('#addUploadBtn').on('click', function () {
|
||||
var options = {
|
||||
type: 'post',
|
||||
url: '/admin/banner/upload.action',
|
||||
url: '/admin/banner/upload',
|
||||
dataType: 'json',
|
||||
success: function (json) {
|
||||
if (json.code == 200) {
|
||||
@@ -911,7 +1007,7 @@ export default {
|
||||
if (confirm("你确认删除选中Banner吗?")) {
|
||||
$.ajax({
|
||||
type: 'post',
|
||||
url: "/admin/banner/delete.action",
|
||||
url: "/admin/banner/delete",
|
||||
data: {
|
||||
'ids': JSON.stringify(idArr)
|
||||
},
|
||||
@@ -938,7 +1034,7 @@ export default {
|
||||
if (confirm("你确认删除Banner吗?")) {
|
||||
$.ajax({
|
||||
type: 'post',
|
||||
url: "/admin/banner/delete.action",
|
||||
url: "/admin/banner/delete",
|
||||
data: {
|
||||
'ids': JSON.stringify(idArr)
|
||||
},
|
||||
@@ -957,7 +1053,25 @@ export default {
|
||||
}
|
||||
})
|
||||
});
|
||||
}
|
||||
},
|
||||
initPartition() {
|
||||
getPartitionInfoList().then(res => {
|
||||
let data = res.data;
|
||||
buildSelectOption(
|
||||
"#partitionId",
|
||||
null,
|
||||
[{
|
||||
value: '',
|
||||
text: '全部',
|
||||
}].concat(data.map((v) => {
|
||||
return {
|
||||
value: v.id,
|
||||
text: v.desc,
|
||||
};
|
||||
}))
|
||||
);
|
||||
});
|
||||
},
|
||||
},
|
||||
|
||||
};
|
||||
|
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