Compare commits
32 Commits
roomAlbum
...
groupStati
Author | SHA1 | Date | |
---|---|---|---|
![]() |
50343e2aa9 | ||
![]() |
701bcb772a | ||
![]() |
55d1e6fc43 | ||
![]() |
642664edce | ||
![]() |
7121ef5169 | ||
![]() |
0388afa78e | ||
![]() |
5bd9d0ead2 | ||
![]() |
fe0f0dc186 | ||
![]() |
1a61a57c5a | ||
![]() |
d514f71968 | ||
![]() |
b56d879298 | ||
![]() |
36083a6382 | ||
![]() |
7602628333 | ||
![]() |
52da350b0f | ||
![]() |
839917da12 | ||
![]() |
7a3d3b054a | ||
![]() |
786edc9294 | ||
![]() |
3ba46dfc9b | ||
![]() |
f865e989b9 | ||
![]() |
4d877b9074 | ||
![]() |
0b391b3b9d | ||
![]() |
dc45af7c97 | ||
![]() |
df0980565c | ||
![]() |
059d43db48 | ||
![]() |
815356ce7f | ||
![]() |
0293f24864 | ||
![]() |
d1b239c91c | ||
![]() |
adc1f06401 | ||
![]() |
eb23708953 | ||
![]() |
40344ec61c | ||
![]() |
8c9016246f | ||
![]() |
6502e1443b |
312
package-lock.json
generated
312
package-lock.json
generated
@@ -11,7 +11,6 @@
|
||||
"admin-lte": "^2.3.2",
|
||||
"axios": "^1.5.0",
|
||||
"bootstrap": "^3.3.5",
|
||||
"bootstrap-table": "^1.10.1",
|
||||
"core-js": "^3.8.3",
|
||||
"element-plus": "^2.3.14",
|
||||
"font-awesome": "^4.6.3",
|
||||
@@ -38,6 +37,8 @@
|
||||
"@vue/cli-service": "~5.0.0",
|
||||
"eslint": "^7.32.0",
|
||||
"eslint-plugin-vue": "^8.0.3",
|
||||
"unplugin-auto-import": "^0.16.7",
|
||||
"unplugin-vue-components": "^0.25.2",
|
||||
"vue": "^3.2.13",
|
||||
"webpack-cli": "^5.1.4"
|
||||
}
|
||||
@@ -78,6 +79,12 @@
|
||||
"node": ">=6.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@antfu/utils": {
|
||||
"version": "0.7.6",
|
||||
"resolved": "https://registry.npmmirror.com/@antfu/utils/-/utils-0.7.6.tgz",
|
||||
"integrity": "sha512-pvFiLP2BeOKA/ZOS6jxx4XhKzdVLHDhGlFEaZ2flWWYf2xOqVniqpk38I04DFRyz+L0ASggl7SkItTc+ZLju4w==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@babel/code-frame": {
|
||||
"version": "7.22.13",
|
||||
"resolved": "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.22.13.tgz",
|
||||
@@ -2180,6 +2187,28 @@
|
||||
"resolved": "https://registry.npmmirror.com/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz",
|
||||
"integrity": "sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ=="
|
||||
},
|
||||
"node_modules/@rollup/pluginutils": {
|
||||
"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",
|
||||
"picomatch": "^2.3.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"rollup": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/@sideway/address": {
|
||||
"version": "4.1.4",
|
||||
"resolved": "https://registry.npmmirror.com/@sideway/address/-/address-4.1.4.tgz",
|
||||
@@ -4171,11 +4200,6 @@
|
||||
"node": ">=0.10.1"
|
||||
}
|
||||
},
|
||||
"node_modules/bootstrap-table": {
|
||||
"version": "1.10.1",
|
||||
"resolved": "https://registry.npmmirror.com/bootstrap-table/-/bootstrap-table-1.10.1.tgz",
|
||||
"integrity": "sha512-jaRE6H4M3sSTEwe5g9PYVuDQW2ClHsnlB7grwfOD1Hk9Flv3gpwRcrkGZmGZ4+pzK4R41g5MRboFZ739xIIufw=="
|
||||
},
|
||||
"node_modules/brace-expansion": {
|
||||
"version": "1.1.11",
|
||||
"resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
||||
@@ -7831,6 +7855,12 @@
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/jsonc-parser": {
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npmmirror.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz",
|
||||
"integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/jsonfile": {
|
||||
"version": "6.1.0",
|
||||
"resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-6.1.0.tgz",
|
||||
@@ -8001,6 +8031,19 @@
|
||||
"node": ">=8.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/local-pkg": {
|
||||
"version": "0.5.0",
|
||||
"resolved": "https://registry.npmmirror.com/local-pkg/-/local-pkg-0.5.0.tgz",
|
||||
"integrity": "sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"mlly": "^1.4.2",
|
||||
"pkg-types": "^1.0.3"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14"
|
||||
}
|
||||
},
|
||||
"node_modules/locate-path": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-5.0.0.tgz",
|
||||
@@ -8819,6 +8862,18 @@
|
||||
"mkdirp": "bin/cmd.js"
|
||||
}
|
||||
},
|
||||
"node_modules/mlly": {
|
||||
"version": "1.4.2",
|
||||
"resolved": "https://registry.npmmirror.com/mlly/-/mlly-1.4.2.tgz",
|
||||
"integrity": "sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"acorn": "^8.10.0",
|
||||
"pathe": "^1.1.1",
|
||||
"pkg-types": "^1.0.3",
|
||||
"ufo": "^1.3.0"
|
||||
}
|
||||
},
|
||||
"node_modules/module-alias": {
|
||||
"version": "2.2.3",
|
||||
"resolved": "https://registry.npmmirror.com/module-alias/-/module-alias-2.2.3.tgz",
|
||||
@@ -9847,6 +9902,12 @@
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/pathe": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmmirror.com/pathe/-/pathe-1.1.1.tgz",
|
||||
"integrity": "sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/picocolors": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz",
|
||||
@@ -9881,6 +9942,17 @@
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/pkg-types": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmmirror.com/pkg-types/-/pkg-types-1.0.3.tgz",
|
||||
"integrity": "sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"jsonc-parser": "^3.2.0",
|
||||
"mlly": "^1.2.0",
|
||||
"pathe": "^1.1.0"
|
||||
}
|
||||
},
|
||||
"node_modules/popper.js": {
|
||||
"version": "1.16.1",
|
||||
"resolved": "https://registry.npmmirror.com/popper.js/-/popper.js-1.16.1.tgz",
|
||||
@@ -11134,6 +11206,12 @@
|
||||
"node": ">= 8"
|
||||
}
|
||||
},
|
||||
"node_modules/scule": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmmirror.com/scule/-/scule-1.0.0.tgz",
|
||||
"integrity": "sha512-4AsO/FrViE/iDNEPaAQlb77tf0csuq27EsVpy6ett584EcRTp6pTDLoGWVxCD77y5iU5FauOvhsI4o1APwPoSQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/select-hose": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmmirror.com/select-hose/-/select-hose-2.0.0.tgz",
|
||||
@@ -11717,6 +11795,15 @@
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/strip-literal": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmmirror.com/strip-literal/-/strip-literal-1.3.0.tgz",
|
||||
"integrity": "sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"acorn": "^8.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/stylehacks": {
|
||||
"version": "5.1.1",
|
||||
"resolved": "https://registry.npmmirror.com/stylehacks/-/stylehacks-5.1.1.tgz",
|
||||
@@ -12090,6 +12177,12 @@
|
||||
"node": ">= 0.6"
|
||||
}
|
||||
},
|
||||
"node_modules/ufo": {
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmmirror.com/ufo/-/ufo-1.3.1.tgz",
|
||||
"integrity": "sha512-uY/99gMLIOlJPwATcMVYfqDSxUR9//AUcgZMzwfSTJPDKzA1S8mX4VLqa+fiAtveraQUBCz4FFcwVZBGbwBXIw==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/unicode-canonical-property-names-ecmascript": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmmirror.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz",
|
||||
@@ -12130,6 +12223,55 @@
|
||||
"node": ">=4"
|
||||
}
|
||||
},
|
||||
"node_modules/unimport": {
|
||||
"version": "3.4.0",
|
||||
"resolved": "https://registry.npmmirror.com/unimport/-/unimport-3.4.0.tgz",
|
||||
"integrity": "sha512-M/lfFEgufIT156QAr/jWHLUn55kEmxBBiQsMxvRSIbquwmeJEyQYgshHDEvQDWlSJrVOOTAgnJ3FvlsrpGkanA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@rollup/pluginutils": "^5.0.4",
|
||||
"escape-string-regexp": "^5.0.0",
|
||||
"fast-glob": "^3.3.1",
|
||||
"local-pkg": "^0.4.3",
|
||||
"magic-string": "^0.30.3",
|
||||
"mlly": "^1.4.2",
|
||||
"pathe": "^1.1.1",
|
||||
"pkg-types": "^1.0.3",
|
||||
"scule": "^1.0.0",
|
||||
"strip-literal": "^1.3.0",
|
||||
"unplugin": "^1.5.0"
|
||||
}
|
||||
},
|
||||
"node_modules/unimport/node_modules/escape-string-regexp": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz",
|
||||
"integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/unimport/node_modules/local-pkg": {
|
||||
"version": "0.4.3",
|
||||
"resolved": "https://registry.npmmirror.com/local-pkg/-/local-pkg-0.4.3.tgz",
|
||||
"integrity": "sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=14"
|
||||
}
|
||||
},
|
||||
"node_modules/unimport/node_modules/magic-string": {
|
||||
"version": "0.30.5",
|
||||
"resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.5.tgz",
|
||||
"integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@jridgewell/sourcemap-codec": "^1.4.15"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/unique-filename": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmmirror.com/unique-filename/-/unique-filename-2.0.1.tgz",
|
||||
@@ -12170,6 +12312,164 @@
|
||||
"node": ">= 0.8"
|
||||
}
|
||||
},
|
||||
"node_modules/unplugin": {
|
||||
"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",
|
||||
"webpack-sources": "^3.2.3",
|
||||
"webpack-virtual-modules": "^0.5.0"
|
||||
}
|
||||
},
|
||||
"node_modules/unplugin-auto-import": {
|
||||
"version": "0.16.7",
|
||||
"resolved": "https://registry.npmmirror.com/unplugin-auto-import/-/unplugin-auto-import-0.16.7.tgz",
|
||||
"integrity": "sha512-w7XmnRlchq6YUFJVFGSvG1T/6j8GrdYN6Em9Wf0Ye+HXgD/22kont+WnuCAA0UaUoxtuvRR1u/mXKy63g/hfqQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@antfu/utils": "^0.7.6",
|
||||
"@rollup/pluginutils": "^5.0.5",
|
||||
"fast-glob": "^3.3.1",
|
||||
"local-pkg": "^0.5.0",
|
||||
"magic-string": "^0.30.5",
|
||||
"minimatch": "^9.0.3",
|
||||
"unimport": "^3.4.0",
|
||||
"unplugin": "^1.5.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@nuxt/kit": "^3.2.2",
|
||||
"@vueuse/core": "*"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"@nuxt/kit": {
|
||||
"optional": true
|
||||
},
|
||||
"@vueuse/core": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/unplugin-auto-import/node_modules/brace-expansion": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz",
|
||||
"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"balanced-match": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/unplugin-auto-import/node_modules/magic-string": {
|
||||
"version": "0.30.5",
|
||||
"resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.5.tgz",
|
||||
"integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@jridgewell/sourcemap-codec": "^1.4.15"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/unplugin-auto-import/node_modules/minimatch": {
|
||||
"version": "9.0.3",
|
||||
"resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.3.tgz",
|
||||
"integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"brace-expansion": "^2.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=16 || 14 >=14.17"
|
||||
}
|
||||
},
|
||||
"node_modules/unplugin-vue-components": {
|
||||
"version": "0.25.2",
|
||||
"resolved": "https://registry.npmmirror.com/unplugin-vue-components/-/unplugin-vue-components-0.25.2.tgz",
|
||||
"integrity": "sha512-OVmLFqILH6w+eM8fyt/d/eoJT9A6WO51NZLf1vC5c1FZ4rmq2bbGxTy8WP2Jm7xwFdukaIdv819+UI7RClPyCA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@antfu/utils": "^0.7.5",
|
||||
"@rollup/pluginutils": "^5.0.2",
|
||||
"chokidar": "^3.5.3",
|
||||
"debug": "^4.3.4",
|
||||
"fast-glob": "^3.3.0",
|
||||
"local-pkg": "^0.4.3",
|
||||
"magic-string": "^0.30.1",
|
||||
"minimatch": "^9.0.3",
|
||||
"resolve": "^1.22.2",
|
||||
"unplugin": "^1.4.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@babel/parser": "^7.15.8",
|
||||
"@nuxt/kit": "^3.2.2",
|
||||
"vue": "2 || 3"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"@babel/parser": {
|
||||
"optional": true
|
||||
},
|
||||
"@nuxt/kit": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/unplugin-vue-components/node_modules/brace-expansion": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz",
|
||||
"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"balanced-match": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/unplugin-vue-components/node_modules/local-pkg": {
|
||||
"version": "0.4.3",
|
||||
"resolved": "https://registry.npmmirror.com/local-pkg/-/local-pkg-0.4.3.tgz",
|
||||
"integrity": "sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=14"
|
||||
}
|
||||
},
|
||||
"node_modules/unplugin-vue-components/node_modules/magic-string": {
|
||||
"version": "0.30.5",
|
||||
"resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.5.tgz",
|
||||
"integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@jridgewell/sourcemap-codec": "^1.4.15"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/unplugin-vue-components/node_modules/minimatch": {
|
||||
"version": "9.0.3",
|
||||
"resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.3.tgz",
|
||||
"integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"brace-expansion": "^2.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=16 || 14 >=14.17"
|
||||
}
|
||||
},
|
||||
"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
|
||||
},
|
||||
"node_modules/update-browserslist-db": {
|
||||
"version": "1.0.13",
|
||||
"resolved": "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz",
|
||||
|
@@ -11,7 +11,6 @@
|
||||
"admin-lte": "^2.3.2",
|
||||
"axios": "^1.5.0",
|
||||
"bootstrap": "^3.3.5",
|
||||
"bootstrap-table": "^1.10.1",
|
||||
"core-js": "^3.8.3",
|
||||
"element-plus": "^2.3.14",
|
||||
"font-awesome": "^4.6.3",
|
||||
@@ -38,6 +37,8 @@
|
||||
"@vue/cli-service": "~5.0.0",
|
||||
"eslint": "^7.32.0",
|
||||
"eslint-plugin-vue": "^8.0.3",
|
||||
"unplugin-auto-import": "^0.16.7",
|
||||
"unplugin-vue-components": "^0.25.2",
|
||||
"vue": "^3.2.13",
|
||||
"webpack-cli": "^5.1.4"
|
||||
}
|
||||
|
@@ -32,10 +32,10 @@ export default {
|
||||
build: function (val, idstr, defval) {
|
||||
var _this = this;
|
||||
if (val) {
|
||||
if (Object.prototype.toString.call(val) === '[object Object]') {
|
||||
if (Object.prototype.toString.call(val) === '[object Array]') {
|
||||
$(idstr).empty();
|
||||
$.each(val, function (n, value) {
|
||||
$(idstr).append("<option value='" + value.oval + "' data-value='" + value.oval + "'>" + value.otxt + "</option>");
|
||||
$.each(val, function (n, obj) {
|
||||
$(idstr).append("<option value='" + obj.value + "' data-value='" + obj.value + "'>" + obj.text + "</option>");
|
||||
});
|
||||
$(idstr).btComboBox();
|
||||
_this.setDef(idstr, defval);
|
||||
|
@@ -52,7 +52,7 @@
|
||||
define(['jquery', 'knockout'], factory);
|
||||
} else {
|
||||
// Browser globals
|
||||
factory(root.jQuery, root.ko);
|
||||
factory(require("jquery"), root.ko);
|
||||
}
|
||||
})(this, function ($, ko) {
|
||||
"use strict";// jshint ;_;
|
||||
|
303
src/assets/plugins/bootstrap-table/css/bootstrap-table.css
vendored
Normal file
303
src/assets/plugins/bootstrap-table/css/bootstrap-table.css
vendored
Normal file
@@ -0,0 +1,303 @@
|
||||
/**
|
||||
* @author zhixin wen <wenzhixin2010@gmail.com>
|
||||
* version: 1.10.1
|
||||
* https://github.com/wenzhixin/bootstrap-table/
|
||||
*/
|
||||
|
||||
.bootstrap-table .table {
|
||||
margin-bottom: 0 !important;
|
||||
border-bottom: 1px solid #dddddd;
|
||||
border-collapse: collapse !important;
|
||||
border-radius: 1px;
|
||||
}
|
||||
|
||||
.bootstrap-table .table:not(.table-condensed),
|
||||
.bootstrap-table .table:not(.table-condensed)>tbody>tr>th,
|
||||
.bootstrap-table .table:not(.table-condensed)>tfoot>tr>th,
|
||||
.bootstrap-table .table:not(.table-condensed)>thead>tr>td,
|
||||
.bootstrap-table .table:not(.table-condensed)>tbody>tr>td,
|
||||
.bootstrap-table .table:not(.table-condensed)>tfoot>tr>td {
|
||||
padding: 8px;
|
||||
}
|
||||
|
||||
.bootstrap-table .table.table-no-bordered>thead>tr>th,
|
||||
.bootstrap-table .table.table-no-bordered>tbody>tr>td {
|
||||
border-right: 2px solid transparent;
|
||||
}
|
||||
|
||||
.fixed-table-container {
|
||||
position: relative;
|
||||
clear: both;
|
||||
border: 1px solid #dddddd;
|
||||
border-radius: 4px;
|
||||
-webkit-border-radius: 4px;
|
||||
-moz-border-radius: 4px;
|
||||
}
|
||||
|
||||
.fixed-table-container.table-no-bordered {
|
||||
border: 1px solid transparent;
|
||||
}
|
||||
|
||||
.fixed-table-footer,
|
||||
.fixed-table-header {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.fixed-table-footer {
|
||||
border-top: 1px solid #dddddd;
|
||||
}
|
||||
|
||||
.fixed-table-body {
|
||||
overflow-x: auto;
|
||||
overflow-y: auto;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.fixed-table-container table {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.fixed-table-container thead th {
|
||||
height: 0;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
border-left: 1px solid #dddddd;
|
||||
}
|
||||
|
||||
.fixed-table-container thead th:focus {
|
||||
outline: 0 solid transparent;
|
||||
}
|
||||
|
||||
.fixed-table-container thead th:first-child {
|
||||
border-left: none;
|
||||
border-top-left-radius: 4px;
|
||||
-webkit-border-top-left-radius: 4px;
|
||||
-moz-border-radius-topleft: 4px;
|
||||
}
|
||||
|
||||
.fixed-table-container thead th .th-inner,
|
||||
.fixed-table-container tbody td .th-inner {
|
||||
padding: 8px;
|
||||
line-height: 24px;
|
||||
vertical-align: top;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.fixed-table-container thead th .sortable {
|
||||
cursor: pointer;
|
||||
background-position: right;
|
||||
background-repeat: no-repeat;
|
||||
padding-right: 30px;
|
||||
}
|
||||
|
||||
.fixed-table-container thead th .both {
|
||||
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAQAAADYWf5HAAAAkElEQVQoz7X QMQ5AQBCF4dWQSJxC5wwax1Cq1e7BAdxD5SL+Tq/QCM1oNiJidwox0355mXnG/DrEtIQ6azioNZQxI0ykPhTQIwhCR+BmBYtlK7kLJYwWCcJA9M4qdrZrd8pPjZWPtOqdRQy320YSV17OatFC4euts6z39GYMKRPCTKY9UnPQ6P+GtMRfGtPnBCiqhAeJPmkqAAAAAElFTkSuQmCC');
|
||||
}
|
||||
|
||||
.fixed-table-container thead th .asc {
|
||||
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAAZ0lEQVQ4y2NgGLKgquEuFxBPAGI2ahhWCsS/gDibUoO0gPgxEP8H4ttArEyuQYxAPBdqEAxPBImTY5gjEL9DM+wTENuQahAvEO9DMwiGdwAxOymGJQLxTyD+jgWDxCMZRsEoGAVoAADeemwtPcZI2wAAAABJRU5ErkJggg==');
|
||||
}
|
||||
|
||||
.fixed-table-container thead th .desc {
|
||||
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAAZUlEQVQ4y2NgGAWjYBSggaqGu5FA/BOIv2PBIPFEUgxjB+IdQPwfC94HxLykus4GiD+hGfQOiB3J8SojEE9EM2wuSJzcsFMG4ttQgx4DsRalkZENxL+AuJQaMcsGxBOAmGvopk8AVz1sLZgg0bsAAAAASUVORK5CYII= ');
|
||||
}
|
||||
|
||||
.fixed-table-container th.detail {
|
||||
width: 30px;
|
||||
}
|
||||
|
||||
.fixed-table-container tbody td {
|
||||
border-left: 1px solid #dddddd;
|
||||
}
|
||||
|
||||
.fixed-table-container tbody tr:first-child td {
|
||||
border-top: none;
|
||||
}
|
||||
|
||||
.fixed-table-container tbody td:first-child {
|
||||
border-left: none;
|
||||
}
|
||||
|
||||
/* the same color with .active */
|
||||
.fixed-table-container tbody .selected td {
|
||||
background-color: #f5f5f5;
|
||||
}
|
||||
|
||||
.fixed-table-container .bs-checkbox {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.fixed-table-container .bs-checkbox .th-inner {
|
||||
padding: 8px 0;
|
||||
}
|
||||
|
||||
.fixed-table-container input[type="radio"],
|
||||
.fixed-table-container input[type="checkbox"] {
|
||||
margin: 0 auto !important;
|
||||
}
|
||||
|
||||
.fixed-table-container .no-records-found {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.fixed-table-pagination div.pagination,
|
||||
.fixed-table-pagination .pagination-detail {
|
||||
margin-top: 10px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.fixed-table-pagination div.pagination .pagination {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.fixed-table-pagination .pagination a {
|
||||
padding: 6px 12px;
|
||||
line-height: 1.428571429;
|
||||
}
|
||||
|
||||
.fixed-table-pagination .pagination-info {
|
||||
line-height: 34px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.fixed-table-pagination .btn-group {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.fixed-table-pagination .dropup .dropdown-menu {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.fixed-table-pagination .page-list {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.fixed-table-toolbar .columns-left {
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.fixed-table-toolbar .columns-right {
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
.fixed-table-toolbar .columns label {
|
||||
display: block;
|
||||
padding: 3px 20px;
|
||||
clear: both;
|
||||
font-weight: normal;
|
||||
line-height: 1.428571429;
|
||||
}
|
||||
|
||||
.fixed-table-toolbar .bars,
|
||||
.fixed-table-toolbar .search,
|
||||
.fixed-table-toolbar .columns {
|
||||
position: relative;
|
||||
margin-top: 10px;
|
||||
margin-bottom: 10px;
|
||||
line-height: 34px;
|
||||
}
|
||||
|
||||
.fixed-table-pagination li.disabled a {
|
||||
pointer-events: none;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.fixed-table-loading {
|
||||
display: none;
|
||||
position: absolute;
|
||||
top: 42px;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
z-index: 99;
|
||||
background-color: #fff;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.fixed-table-body .card-view .title {
|
||||
font-weight: bold;
|
||||
display: inline-block;
|
||||
min-width: 30%;
|
||||
text-align: left !important;
|
||||
}
|
||||
|
||||
/* support bootstrap 2 */
|
||||
.fixed-table-body thead th .th-inner {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.table th,
|
||||
.table td {
|
||||
vertical-align: middle;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.fixed-table-toolbar .dropdown-menu {
|
||||
text-align: left;
|
||||
max-height: 300px;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
.fixed-table-toolbar .btn-group>.btn-group {
|
||||
display: inline-block;
|
||||
margin-left: -1px !important;
|
||||
}
|
||||
|
||||
.fixed-table-toolbar .btn-group>.btn-group>.btn {
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
.fixed-table-toolbar .btn-group>.btn-group:first-child>.btn {
|
||||
border-top-left-radius: 4px;
|
||||
border-bottom-left-radius: 4px;
|
||||
}
|
||||
|
||||
.fixed-table-toolbar .btn-group>.btn-group:last-child>.btn {
|
||||
border-top-right-radius: 4px;
|
||||
border-bottom-right-radius: 4px;
|
||||
}
|
||||
|
||||
.bootstrap-table .table>thead>tr>th {
|
||||
vertical-align: bottom;
|
||||
border-bottom: 1px solid #ddd;
|
||||
}
|
||||
|
||||
/* support bootstrap 3 */
|
||||
.bootstrap-table .table thead>tr>th {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.bootstrap-table .fixed-table-footer tbody>tr>td {
|
||||
padding: 0 !important;
|
||||
}
|
||||
|
||||
.bootstrap-table .fixed-table-footer .table {
|
||||
border-bottom: none;
|
||||
border-radius: 0;
|
||||
padding: 0 !important;
|
||||
}
|
||||
|
||||
.pull-right .dropdown-menu {
|
||||
right: 0;
|
||||
left: auto;
|
||||
}
|
||||
|
||||
/* calculate scrollbar width */
|
||||
p.fixed-table-scroll-inner {
|
||||
width: 100%;
|
||||
height: 200px;
|
||||
}
|
||||
|
||||
div.fixed-table-scroll-outer {
|
||||
top: 0;
|
||||
left: 0;
|
||||
visibility: hidden;
|
||||
width: 200px;
|
||||
height: 150px;
|
||||
overflow: hidden;
|
||||
}
|
2823
src/assets/plugins/bootstrap-table/js/bootstrap-table.js
vendored
Normal file
2823
src/assets/plugins/bootstrap-table/js/bootstrap-table.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
146
src/assets/plugins/bootstrap-table/js/extensions/editable/bootstrap-table-editable.js
vendored
Normal file
146
src/assets/plugins/bootstrap-table/js/extensions/editable/bootstrap-table-editable.js
vendored
Normal file
@@ -0,0 +1,146 @@
|
||||
/**
|
||||
* @author zhixin wen <wenzhixin2010@gmail.com>
|
||||
* extensions: https://github.com/vitalets/x-editable
|
||||
*/
|
||||
|
||||
(function (root, factory) {
|
||||
var define;
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
// AMD. Register as an anonymous module unless amdModuleId is set
|
||||
define(["jquery"], function (a0) {
|
||||
return (factory(a0));
|
||||
});
|
||||
} else if (typeof exports === 'object') {
|
||||
// Node. Does not work with strict CommonJS, but
|
||||
// only CommonJS-like environments that support module.exports,
|
||||
// like Node.
|
||||
module.exports = factory(require("jquery"));
|
||||
} else {
|
||||
factory(jQuery);
|
||||
}
|
||||
}(this, function (jQuery) {
|
||||
|
||||
!function ($) {
|
||||
|
||||
'use strict';
|
||||
|
||||
$.extend($.fn.bootstrapTable.defaults, {
|
||||
editable: true,
|
||||
onEditableInit: function () {
|
||||
return false;
|
||||
},
|
||||
onEditableSave: function (field, row, oldValue, $el) {
|
||||
return false;
|
||||
},
|
||||
onEditableShown: function (field, row, $el, editable) {
|
||||
return false;
|
||||
},
|
||||
onEditableHidden: function (field, row, $el, reason) {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
$.extend($.fn.bootstrapTable.Constructor.EVENTS, {
|
||||
'editable-init.bs.table': 'onEditableInit',
|
||||
'editable-save.bs.table': 'onEditableSave',
|
||||
'editable-shown.bs.table': 'onEditableShown',
|
||||
'editable-hidden.bs.table': 'onEditableHidden'
|
||||
});
|
||||
|
||||
var BootstrapTable = $.fn.bootstrapTable.Constructor,
|
||||
_initTable = BootstrapTable.prototype.initTable,
|
||||
_initBody = BootstrapTable.prototype.initBody;
|
||||
|
||||
BootstrapTable.prototype.initTable = function () {
|
||||
var that = this;
|
||||
_initTable.apply(this, Array.prototype.slice.apply(arguments));
|
||||
|
||||
if (!this.options.editable) {
|
||||
return;
|
||||
}
|
||||
|
||||
$.each(this.columns, function (i, column) {
|
||||
if (!column.editable) {
|
||||
return;
|
||||
}
|
||||
|
||||
var editableOptions = {}, editableDataMarkup = [], editableDataPrefix = 'editable-';
|
||||
|
||||
var processDataOptions = function (key, value) {
|
||||
// Replace camel case with dashes.
|
||||
var dashKey = key.replace(/([A-Z])/g, function ($1) { return "-" + $1.toLowerCase(); });
|
||||
if (dashKey.slice(0, editableDataPrefix.length) == editableDataPrefix) {
|
||||
var dataKey = dashKey.replace(editableDataPrefix, 'data-');
|
||||
editableOptions[dataKey] = value;
|
||||
}
|
||||
};
|
||||
|
||||
$.each(that.options, processDataOptions);
|
||||
|
||||
var _formatter = column.formatter;
|
||||
column.formatter = function (value, row, index) {
|
||||
var result = _formatter ? _formatter(value, row, index) : value;
|
||||
|
||||
$.each(column, processDataOptions);
|
||||
|
||||
$.each(editableOptions, function (key, value) {
|
||||
editableDataMarkup.push(' ' + key + '="' + value + '"');
|
||||
});
|
||||
|
||||
return ['<a href="javascript:void(0)"',
|
||||
' data-name="' + column.field + '"',
|
||||
' data-pk="' + row[that.options.idField] + '"',
|
||||
' data-value="' + result + '"',
|
||||
editableDataMarkup.join(''),
|
||||
'>' + '</a>'
|
||||
].join('');
|
||||
};
|
||||
});
|
||||
};
|
||||
|
||||
BootstrapTable.prototype.initBody = function () {
|
||||
var that = this;
|
||||
_initBody.apply(this, Array.prototype.slice.apply(arguments));
|
||||
|
||||
if (!this.options.editable) {
|
||||
return;
|
||||
}
|
||||
|
||||
$.each(this.columns, function (i, column) {
|
||||
if (!column.editable) {
|
||||
return;
|
||||
}
|
||||
|
||||
that.$body.find('a[data-name="' + column.field + '"]').editable(column.editable)
|
||||
.off('save').on('save', function (e, params) {
|
||||
var data = that.getData(),
|
||||
index = $(this).parents('tr[data-index]').data('index'),
|
||||
row = data[index],
|
||||
oldValue = row[column.field];
|
||||
|
||||
$(this).data('value', params.submitValue);
|
||||
row[column.field] = params.submitValue;
|
||||
that.trigger('editable-save', column.field, row, oldValue, $(this));
|
||||
});
|
||||
that.$body.find('a[data-name="' + column.field + '"]').editable(column.editable)
|
||||
.off('shown').on('shown', function (e, editable) {
|
||||
var data = that.getData(),
|
||||
index = $(this).parents('tr[data-index]').data('index'),
|
||||
row = data[index];
|
||||
|
||||
that.trigger('editable-shown', column.field, row, $(this), editable);
|
||||
});
|
||||
that.$body.find('a[data-name="' + column.field + '"]').editable(column.editable)
|
||||
.off('hidden').on('hidden', function (e, reason) {
|
||||
var data = that.getData(),
|
||||
index = $(this).parents('tr[data-index]').data('index'),
|
||||
row = data[index];
|
||||
|
||||
that.trigger('editable-hidden', column.field, row, $(this), reason);
|
||||
});
|
||||
});
|
||||
this.trigger('editable-init');
|
||||
};
|
||||
|
||||
}(jQuery);
|
||||
}));
|
60
src/assets/plugins/bootstrap-table/js/locale/bootstrap-table-zh-CN.js
vendored
Normal file
60
src/assets/plugins/bootstrap-table/js/locale/bootstrap-table-zh-CN.js
vendored
Normal file
@@ -0,0 +1,60 @@
|
||||
/**
|
||||
* Bootstrap Table Chinese translation
|
||||
* Author: Zhixin Wen<wenzhixin2010@gmail.com>
|
||||
*/
|
||||
|
||||
(function (root, factory) {
|
||||
var define;
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
// AMD. Register as an anonymous module unless amdModuleId is set
|
||||
define(["jquery"], function (a0) {
|
||||
return (factory(a0));
|
||||
});
|
||||
} else if (typeof exports === 'object') {
|
||||
// Node. Does not work with strict CommonJS, but
|
||||
// only CommonJS-like environments that support module.exports,
|
||||
// like Node.
|
||||
module.exports = factory(require("jquery"));
|
||||
} else {
|
||||
factory(jQuery);
|
||||
}
|
||||
}(this, function (jQuery) {
|
||||
|
||||
(function ($) {
|
||||
'use strict';
|
||||
|
||||
$.fn.bootstrapTable.locales['zh-CN'] = {
|
||||
formatLoadingMessage: function () {
|
||||
return '正在努力地加载数据中,请稍候……';
|
||||
},
|
||||
formatRecordsPerPage: function (pageNumber) {
|
||||
return '每页显示 ' + pageNumber + ' 条记录';
|
||||
},
|
||||
formatShowingRows: function (pageFrom, pageTo, totalRows) {
|
||||
return '显示第 ' + pageFrom + ' 到第 ' + pageTo + ' 条记录,总共 ' + totalRows + ' 条记录';
|
||||
},
|
||||
formatSearch: function () {
|
||||
return '搜索';
|
||||
},
|
||||
formatNoMatches: function () {
|
||||
return '没有找到匹配的记录';
|
||||
},
|
||||
formatPaginationSwitch: function () {
|
||||
return '隐藏/显示分页';
|
||||
},
|
||||
formatRefresh: function () {
|
||||
return '刷新';
|
||||
},
|
||||
formatToggle: function () {
|
||||
return '切换';
|
||||
},
|
||||
formatColumns: function () {
|
||||
return '列';
|
||||
}
|
||||
};
|
||||
|
||||
$.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['zh-CN']);
|
||||
|
||||
})(jQuery);
|
||||
}));
|
||||
|
14
src/main.js
14
src/main.js
@@ -14,10 +14,10 @@ import 'admin-lte/dist/css/AdminLTE.min.css'
|
||||
import 'admin-lte/dist/css/skins/skin-purple-light.min.css'
|
||||
import 'admin-lte/dist/js/app.min.js'
|
||||
|
||||
import 'bootstrap-table/dist/bootstrap-table.css'
|
||||
import 'bootstrap-table/dist/bootstrap-table.js'
|
||||
import 'bootstrap-table/dist/locale/bootstrap-table-zh-CN.js'
|
||||
import 'bootstrap-table/dist/extensions/editable/bootstrap-table-editable.js'
|
||||
import '@/assets/plugins/bootstrap-table/css/bootstrap-table.css'
|
||||
import '@/assets/plugins/bootstrap-table/js/bootstrap-table.js'
|
||||
import '@/assets/plugins/bootstrap-table/js/locale/bootstrap-table-zh-CN.js'
|
||||
import '@/assets/plugins/bootstrap-table/js/extensions/editable/bootstrap-table-editable.js'
|
||||
|
||||
import '@/assets/plugins/jquery/jquery.form.js'
|
||||
|
||||
@@ -47,8 +47,8 @@ import '@/assets/plugins/bootstrap-treeview/js/bootstrap-treeview.min.js'
|
||||
|
||||
import components from '@/utils/components.js'
|
||||
|
||||
import ElementPlus from 'element-plus'
|
||||
import 'element-plus/dist/index.css'
|
||||
// import ElementPlus from 'element-plus'
|
||||
// import 'element-plus/dist/index.css'
|
||||
import '@/css/public.css'
|
||||
|
||||
createApp(App).use(store).use(router).use(components).use(ElementPlus).mount('#app')
|
||||
createApp(App).use(store).use(router).use(components).mount('#app')
|
||||
|
@@ -35,7 +35,7 @@ export default {
|
||||
let userAvatar = user.avatar;
|
||||
if (userAvatar) {
|
||||
if (userAvatar != "") {
|
||||
userAvatar = userAvatar.startsWith('https') || userAvatar.startsWith('http') || avatar;
|
||||
userAvatar = (userAvatar.startsWith('https') || userAvatar.startsWith('http')) ? userAvatar : avatar;
|
||||
}
|
||||
state.avatar = userAvatar;
|
||||
setStore({
|
||||
|
@@ -1,29 +1,3 @@
|
||||
/**
|
||||
* 扩展date函数
|
||||
* author:c3gen
|
||||
*/
|
||||
|
||||
export default Date.prototype.format = function (format) {
|
||||
var o = {
|
||||
"M+": this.getMonth() + 1,
|
||||
"d+": this.getDate(),
|
||||
"h+": this.getHours(),
|
||||
"m+": this.getMinutes(),
|
||||
"s+": this.getSeconds(),
|
||||
"q+": Math.floor((this.getMonth() + 3) / 3),
|
||||
"S": this.getMilliseconds()
|
||||
}
|
||||
if (/(y+)/.test(format)) {
|
||||
format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
|
||||
}
|
||||
for (var k in o) {
|
||||
if (new RegExp("(" + k + ")").test(format)) {
|
||||
format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length));
|
||||
}
|
||||
}
|
||||
return format;
|
||||
}
|
||||
|
||||
export function showLoading() {
|
||||
$(".loadingGif").css('top', window.innerHeight / 2);
|
||||
$(".loadingGif").css('left', window.innerWidth / 2);
|
||||
|
@@ -11,7 +11,7 @@ service.interceptors.request.use(config => {
|
||||
});
|
||||
|
||||
service.interceptors.response.use(res => {
|
||||
userLogout(res.headers[global.NEED_LOGOUT]);
|
||||
userLogout(res.headers[global.NEED_LOGOUT.toLowerCase()]);
|
||||
return res.data;
|
||||
}, error => {
|
||||
return Promise.reject(error);
|
||||
|
@@ -218,9 +218,9 @@ export default {
|
||||
cache: false,
|
||||
striped: true,
|
||||
showRefresh: false,
|
||||
pageSize: 20,
|
||||
pageSize: 10,
|
||||
pagination: true,
|
||||
pageList: [20, 50, 100],
|
||||
pageList: [10, 20, 50, 100],
|
||||
search: false,
|
||||
sidePagination: "server", //表示服务端请求
|
||||
//设置为undefined可以获取pageNumber,pageSize,searchText,sortName,sortOrder
|
||||
|
@@ -206,6 +206,8 @@ export default {
|
||||
{ field: 'totalChargeAmount', title: '累计充值(美元)', align: 'center', width: '5%', },
|
||||
{ field: 'totalChargeUserNum', title: '累计充值人数', align: 'center', width: '5%', },
|
||||
{ field: 'totalChargeNum', title: '累计充值次数', align: 'center', width: '5%', },
|
||||
{ field: 'totalGiveNum', title: '累计收到转赠次数', align: 'center', width: '5%', },
|
||||
{ field: 'totalGiveAmount', title: '累计收到转赠金额', align: 'center', width: '5%', },
|
||||
{
|
||||
field: 'month',
|
||||
title: '操作',
|
||||
|
@@ -359,6 +359,8 @@ export default {
|
||||
{ field: 'chargeCount', title: '充值次数', align: 'center', width: '5%', },
|
||||
{ field: 'chargeMoney', title: '充值金额(美元)', align: 'center', width: '5%', },
|
||||
{ field: 'sendGiftMony', title: '送礼钻石数', align: 'center', width: '5%', },
|
||||
{ field: 'giveCount', title: '累计收到转赠次数', align: 'center', width: '5%', },
|
||||
{ field: 'giveMoney', title: '累计收到转赠金额', align: 'center', width: '5%', },
|
||||
{ field: 'arpu', title: 'Arpu', align: 'center', width: '5%', },
|
||||
{ field: 'twoRemainCount', title: '次留', align: 'center', width: '5%', },
|
||||
{ field: 'sevenRemainCount', title: '七留', align: 'center', width: '5%', },
|
||||
@@ -453,6 +455,8 @@ export default {
|
||||
let tchargeCount = 0;
|
||||
let tchargeMoney = 0;
|
||||
let tsendGiftMony = 0;
|
||||
let tgiveCount = 0;
|
||||
let tgiveMoney = 0;
|
||||
for (let i = 0; i < data.length; i++) {
|
||||
const team = data[i]
|
||||
tmemberCount += team.memberCount;
|
||||
@@ -461,6 +465,8 @@ export default {
|
||||
tchargeCount += team.chargeCount;
|
||||
tchargeMoney += team.chargeMoney;
|
||||
tsendGiftMony += team.sendGiftMony;
|
||||
tgiveCount += team.giveCount;
|
||||
tgiveMoney += team.giveMoney;
|
||||
}
|
||||
groupData.groupId = $('#query-groupSelector').val();
|
||||
groupData.tmemberCount = tmemberCount;
|
||||
@@ -470,6 +476,8 @@ export default {
|
||||
groupData.tchargeCount = tchargeCount;
|
||||
groupData.tchargeMoney = tchargeMoney;
|
||||
groupData.tsendGiftMony = tsendGiftMony;
|
||||
groupData.tgiveCount = tgiveCount;
|
||||
groupData.tgiveMoney = tgiveMoney;
|
||||
groupData.tarpu = (tchargeMoney / tnewUserCount).toFixed(2);
|
||||
groupDataList.push(groupData);
|
||||
}
|
||||
@@ -500,9 +508,11 @@ export default {
|
||||
{ field: 'tchargeCount', title: '充值次数', align: 'center', width: '5%', },
|
||||
{ field: 'tchargeMoney', title: '充值金额(美元)', align: 'center', width: '5%', },
|
||||
{ field: 'tsendGiftMony', title: '送礼钻石数', align: 'center', width: '5%', },
|
||||
{ field: 'tgiveCount', title: '累计收到转赠次数', align: 'center', width: '5%', },
|
||||
{ field: 'tgiveMoney', title: '累计收到转赠金额', align: 'center', width: '5%', },
|
||||
{ field: 'tarpu', title: 'Arpu', align: 'center', width: '5%', },
|
||||
],
|
||||
height: 100,
|
||||
// height: 100,
|
||||
data: groupDataList,
|
||||
undefinedText: 0,
|
||||
cache: false,
|
||||
@@ -780,7 +790,6 @@ export default {
|
||||
$("#exportGroupDetail").on("click", function () {
|
||||
window.location.href = '/admin/flowTeam/exportUserStatisticDetails?' + param(groupDetailQueryParams);
|
||||
});
|
||||
|
||||
});
|
||||
}
|
||||
},
|
||||
|
@@ -20,6 +20,31 @@ export default {
|
||||
FooterView
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 扩展date函数
|
||||
* author:c3gen
|
||||
*/
|
||||
Date.prototype.format = function (format) {
|
||||
var o = {
|
||||
"M+": this.getMonth() + 1,
|
||||
"d+": this.getDate(),
|
||||
"h+": this.getHours(),
|
||||
"m+": this.getMinutes(),
|
||||
"s+": this.getSeconds(),
|
||||
"q+": Math.floor((this.getMonth() + 3) / 3),
|
||||
"S": this.getMilliseconds()
|
||||
}
|
||||
if (/(y+)/.test(format)) {
|
||||
format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
|
||||
}
|
||||
for (var k in o) {
|
||||
if (new RegExp("(" + k + ")").test(format)) {
|
||||
format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length));
|
||||
}
|
||||
}
|
||||
return format;
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
@@ -7,33 +7,35 @@
|
||||
<h1 id="itemTitle"></h1>
|
||||
</section>
|
||||
<div id="toolbar">
|
||||
平台号:<input type="text" name="erbanNo" id="qErbanNo" class="input-sm" placeholder="" />
|
||||
昵称:<input type="text" name="nick" id="qNick" class="input-sm" placeholder="" />
|
||||
创建时间:<input type="text" name="startTime" id="qStartTime" class="input-sm datetime" placeholder="开始时间">
|
||||
- <input type="text" name="endTime" id="qEndTime" class="input-sm datetime" placeholder="结束时间">
|
||||
红包金额:<input type="text" name="minAmount" id="qMinAmount" class="input-sm" placeholder="">
|
||||
- <input type="text" name="maxAmount" id="qMaxAmount" class="input-sm" placeholder="">
|
||||
红包状态:<select name="redEnvelopeStatus" id="qRedEnvelopeStatus">
|
||||
<option value="">全部</option>
|
||||
<option value="0">未开始</option>
|
||||
<option value="1">进行中</option>
|
||||
<option value="2">已结束</option>
|
||||
</select>
|
||||
红包类型:<select name="redEnvelopeType" id="qRedEnvelopeType">
|
||||
<option value="">全部</option>
|
||||
<option value="0">房间手气红包</option>
|
||||
<option value="1">全服手气红包</option>
|
||||
<option value="2">房间礼物红包</option>
|
||||
<option value="3">全服礼物红包</option>
|
||||
</select>
|
||||
<form id="searchForm" action="/admin/redEnvelope/export" method="get" target="_blank">
|
||||
平台号:<input type="text" name="erbanNo" id="qErbanNo" class="input-sm" placeholder="" />
|
||||
昵称:<input type="text" name="nick" id="qNick" class="input-sm" placeholder="" />
|
||||
创建时间:<input type="text" name="startTime" id="qStartTime" class="input-sm datetime"
|
||||
placeholder="开始时间">
|
||||
- <input type="text" name="endTime" id="qEndTime" class="input-sm datetime" placeholder="结束时间">
|
||||
红包金额:<input type="text" name="minAmount" id="qMinAmount" class="input-sm" placeholder="">
|
||||
- <input type="text" name="maxAmount" id="qMaxAmount" class="input-sm" placeholder="">
|
||||
红包状态:<select name="redEnvelopeStatus" id="qRedEnvelopeStatus" class="input-sm">
|
||||
<option value="">全部</option>
|
||||
<option value="0">未开始</option>
|
||||
<option value="1">进行中</option>
|
||||
<option value="2">已结束</option>
|
||||
</select>
|
||||
红包互动:<select name="redEnvelopeKind" id="qRedEnvelopeKind" class="input-sm" >
|
||||
<option value="">全部</option>
|
||||
<option value="0">旧版本红包</option>
|
||||
<option value="1">无门槛红包</option>
|
||||
<option value="2">关注红包</option>
|
||||
<option value="3">分享红包</option>
|
||||
<option value="4">弹幕红包</option>
|
||||
</select>
|
||||
</form>
|
||||
<button id="btnSearch" class="btn btn-sm btn-primary">查询</button>
|
||||
|
||||
<button id="btnExport" class="btn btn-sm btn-primary">导出</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- .content -->
|
||||
<div id="table"></div>
|
||||
|
||||
</div>
|
||||
</section>
|
||||
|
||||
@@ -94,12 +96,24 @@ export default {
|
||||
{ field: 'userId', title: 'UID', align: 'center', width: '5%' },
|
||||
{ field: 'message', title: '标题', align: 'center', width: '10%' },
|
||||
{
|
||||
field: 'redEnvelopeType',
|
||||
title: '类型',
|
||||
field: 'redEnvelopeKind',
|
||||
title: '互动',
|
||||
align: 'center',
|
||||
width: '5%',
|
||||
formatter: function (val, row, index) {
|
||||
return redEnvelopeTypeMap[val]
|
||||
let value = '';
|
||||
if (val == 0) {
|
||||
value = redEnvelopeTypeMap[row.redEnvelopeType];
|
||||
} else if (val == 1) {
|
||||
value = '无门槛红包';
|
||||
} else if (val == 2) {
|
||||
value = '关注红包';
|
||||
} else if (val == 3) {
|
||||
value = '分享红包';
|
||||
} else if (val == 4) {
|
||||
value = '弹幕红包';
|
||||
}
|
||||
return value;
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -145,8 +159,13 @@ export default {
|
||||
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>';
|
||||
let value = '<button id="btnEdit" name="btnEdit" class="btn btn-sm btn-success opt-edit" data-id="' + val + '">'
|
||||
+ '<i class="glyphicon glyphicon-edit"></i> 查看领取名单</button>';
|
||||
let status = row.redEnvelopeStatus;
|
||||
if (status == 0 || status == 1) {
|
||||
value += '<button class="btn btn-sm btn-danger opt-close" data-index="' + index + '" data-id="' + val + '">关闭红包</button>';
|
||||
}
|
||||
return value;
|
||||
}
|
||||
}
|
||||
],
|
||||
@@ -168,7 +187,7 @@ export default {
|
||||
nick: $('#qNick').val(),
|
||||
startTime: $('#qStartTime').val(),
|
||||
endTime: $('#qEndTime').val(),
|
||||
redEnvelopeType: $('#qRedEnvelopeType').val(),
|
||||
redEnvelopeKind: $('#qRedEnvelopeKind').val(),
|
||||
redEnvelopeStatus: $('#qRedEnvelopeStatus').val(),
|
||||
minAmount: $('#qMinAmount').val(),
|
||||
maxAmount: $('#qMaxAmount').val(),
|
||||
@@ -209,6 +228,35 @@ export default {
|
||||
TableHelper.doRefresh('#table');
|
||||
});
|
||||
|
||||
// 导出
|
||||
$('#btnExport').on('click', function () {
|
||||
$("#searchForm").submit();
|
||||
});
|
||||
|
||||
//关闭红包
|
||||
$("#table").on("click", '.opt-close', function () {
|
||||
let id = $(this).attr("data-id");
|
||||
const msg = '确定要关闭吗?';
|
||||
if (confirm(msg)) {
|
||||
$.ajax({
|
||||
type: "get",
|
||||
url: "/admin/redEnvelope/close?redEnvelopeId=" + id,
|
||||
dataType: "json",
|
||||
success: function (json) {
|
||||
if (json.success == 'true' || json.code == 200) {
|
||||
$("#tipMsg").text("关闭成功");
|
||||
$("#tipModal").modal('show');
|
||||
TableHelper.doRefresh("#table");
|
||||
} else {
|
||||
$("#tipMsg").text("保关闭失败." + json.message);
|
||||
$("#tipModal").modal('show');
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
// 编辑获取信息
|
||||
$("#table").on("click", '.opt-edit', function () {
|
||||
let id = $(this).attr("data-id");
|
||||
|
@@ -93,7 +93,15 @@ import { getSysConfList } from '@/api/system/sysconf';
|
||||
export default {
|
||||
name: "SysconfAdminView",
|
||||
setup() {
|
||||
return {};
|
||||
function showText(obj) {
|
||||
let text = unescape($(obj).prop('title'));
|
||||
$("#tipMsg").text(text);
|
||||
$("#tipModal").modal('show');
|
||||
}
|
||||
window.showText = showText;
|
||||
return {
|
||||
showText
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.$nextTick(function () {
|
||||
@@ -112,12 +120,37 @@ export default {
|
||||
$('#table').bootstrapTable('destroy');
|
||||
$('#table').bootstrapTable({
|
||||
columns: [
|
||||
{ field: 'tmp', title: 'ID', align: 'center', checkbox: true },
|
||||
{ field: 'configId', title: 'id', align: 'center', width: '20%' },
|
||||
{ field: 'configName', title: '名称', align: 'center', width: '25%' },
|
||||
{ field: 'configValue', title: '值', align: 'center', width: '20%' },
|
||||
{field: 'tmp', title: 'ID', align: 'center', width: '5%', checkbox: true},
|
||||
{
|
||||
field: 'configId',
|
||||
title: 'id',
|
||||
align: 'center',
|
||||
width: '5%',
|
||||
},
|
||||
{
|
||||
field: 'configName',
|
||||
title: '名称',
|
||||
align: 'center',
|
||||
width: '5%',
|
||||
formatter: function (val, row, index) {
|
||||
return '<div style="text-align: center; width: 200px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;" title="' + escape(val) + '" onclick="showText(this);">' + val + '</div>';
|
||||
}
|
||||
},
|
||||
{
|
||||
field: 'configValue',
|
||||
title: '值',
|
||||
align: 'center',
|
||||
width: '5%',
|
||||
formatter: function (val, row, index) {
|
||||
return '<div style="text-align: center; width: 200px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;" title="' + escape(val) + '" onclick="showText(this);">' + val + '</div>';
|
||||
}
|
||||
},
|
||||
{
|
||||
field: 'configStatus', title: '状态', align: 'center', width: '5%', formatter: function (val, row, index) {
|
||||
field: 'configStatus',
|
||||
title: '状态',
|
||||
align: 'center',
|
||||
width: '5%',
|
||||
formatter: function (val, row, index) {
|
||||
if (val == 1) {
|
||||
return '有效';
|
||||
}
|
||||
@@ -126,9 +159,21 @@ export default {
|
||||
}
|
||||
}
|
||||
},
|
||||
{ field: 'nameSpace', title: '命名空间', align: 'center', width: '5%' },
|
||||
{
|
||||
field: 'nameSpace',
|
||||
title: '命名空间',
|
||||
align: 'center',
|
||||
width: '5%',
|
||||
formatter: function (val, row, index) {
|
||||
return '<div style="text-align: center; width: 200px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;" title="' + escape(val) + '" onclick="showText(this);">' + val + '</div>';
|
||||
}
|
||||
},
|
||||
{
|
||||
field: 'configId', title: '操作', align: 'center', width: '25%', formatter: function (val, row, index) {
|
||||
field: 'configId',
|
||||
title: '操作',
|
||||
align: 'center',
|
||||
width: '5%',
|
||||
formatter: function (val, row, index) {
|
||||
return '<button 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 +
|
||||
|
@@ -165,16 +165,38 @@ import TableHelper from '@/utils/bootstrap-table-helper';
|
||||
import ComboboxHelper from '@/assets/plugins/bootstrap-combobox/js/bootstrap-combobox-helper';
|
||||
import { showLoading, hideLoading } from '@/utils/maintainer';
|
||||
|
||||
var publishTimePicker = $('#publishTime').datetimepicker({
|
||||
format: 'yyyy-mm-dd hh:ii:00',
|
||||
autoclose: true,
|
||||
startDate: new Date()
|
||||
})
|
||||
//ComboboxHelper.build(null,'#status');
|
||||
export default {
|
||||
name: "VersionAdminView",
|
||||
setup() {
|
||||
return {};
|
||||
|
||||
function setSelectOption(id, obj) {
|
||||
var os = $(obj).val();
|
||||
var channel = $("#old_" + id).val();
|
||||
$.ajax({
|
||||
type: "get",
|
||||
url: '/admin/version/getPlatform.action',
|
||||
data: {
|
||||
os: os
|
||||
},
|
||||
dataType: 'json',
|
||||
success: function (json) {
|
||||
if (json.data) {
|
||||
makeOption(id, json.data, channel);
|
||||
if (channel != '' && channel != 'undefined') {
|
||||
$('.selectpicker').selectpicker('val', channel);
|
||||
} else {
|
||||
$('.selectpicker').selectpicker('val', '');
|
||||
}
|
||||
$('.selectpicker').selectpicker('refresh');
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
window.setSelectOption = setSelectOption;
|
||||
return {
|
||||
setSelectOption
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.$nextTick(function () {
|
||||
@@ -184,6 +206,12 @@ export default {
|
||||
methods: {
|
||||
initData() {
|
||||
$(function () {
|
||||
var publishTimePicker = $('#publishTime').datetimepicker({
|
||||
format: 'yyyy-mm-dd hh:ii:00',
|
||||
autoclose: true,
|
||||
startDate: new Date()
|
||||
})
|
||||
|
||||
$('#platform').selectpicker({
|
||||
'selectedText': 'cat'
|
||||
})
|
||||
@@ -196,7 +224,7 @@ export default {
|
||||
initTable();
|
||||
});
|
||||
|
||||
setSelectOption("platform_query", $("#os_query"));
|
||||
window.setSelectOption("platform_query", $("#os_query"));
|
||||
|
||||
$("#table").on("click", '.opt-remove', function () {
|
||||
var id = $(this).attr("data-id");
|
||||
@@ -238,7 +266,7 @@ export default {
|
||||
$("#version").removeAttr("disabled", "disabled");
|
||||
$("#platform").removeAttr("disabled", "disabled");
|
||||
$('#save').attr("disabled", false);
|
||||
setSelectOption("platform", $("#os"));
|
||||
window.setSelectOption("platform", $("#os"));
|
||||
});
|
||||
|
||||
$("#multiDel").click(function () {
|
||||
@@ -405,7 +433,7 @@ export default {
|
||||
$("#description").val(json.entity.description);
|
||||
$("#status").val(json.entity.status);
|
||||
ComboboxHelper.setDef("#status", json.entity.status);
|
||||
setSelectOption("platform", $("#os"));
|
||||
window.setSelectOption("platform", $("#os"));
|
||||
$("#publishTime").val(publishDate);
|
||||
$("#downloadLink").val(json.entity.downloadLink);
|
||||
$("#fileMd5").val(json.entity.fileMd5);
|
||||
@@ -475,30 +503,6 @@ export default {
|
||||
}
|
||||
};
|
||||
|
||||
function setSelectOption(id, obj) {
|
||||
var os = $(obj).val();
|
||||
var channel = $("#old_" + id).val();
|
||||
$.ajax({
|
||||
type: "get",
|
||||
url: '/admin/version/getPlatform.action',
|
||||
data: {
|
||||
os: os
|
||||
},
|
||||
dataType: 'json',
|
||||
success: function (json) {
|
||||
if (json.data) {
|
||||
makeOption(id, json.data, channel);
|
||||
if (channel != '' && channel != 'undefined') {
|
||||
$('.selectpicker').selectpicker('val', channel);
|
||||
} else {
|
||||
$('.selectpicker').selectpicker('val', '');
|
||||
}
|
||||
$('.selectpicker').selectpicker('refresh');
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
function makeOption(id, data, channel) {
|
||||
console.log("id=" + id + ",channel=" + channel);
|
||||
var str = "";
|
||||
|
@@ -8,20 +8,21 @@
|
||||
<section class="content">
|
||||
<div id="toolbar">
|
||||
<div class="form-group col-sm-3">
|
||||
<label for="queryStartDate" class="control-label">开始时间:</label>
|
||||
<input type="text" class="input-sm datetime" id="queryStartDate" placeholder="开始时间">
|
||||
</div>
|
||||
<div class="form-group col-sm-3">
|
||||
<label for="queryEndDate" class="control-label">结束时间:</label>
|
||||
<input type="text" class="input-sm datetime" id="queryEndDate" placeholder="结束时间">
|
||||
</div>
|
||||
<div class="form-group col-sm-3">
|
||||
<label for="erbanNo" class="control-label">用户ID:</label>
|
||||
<input type="text" class="input-sm" name="erbanNo" id="erbanNo" placeholder="">
|
||||
</div>
|
||||
<label for="queryStartDate" class="control-label">开始时间:</label>
|
||||
<input type="text" class="input-sm datetime" name="startTime" id="queryStartDate" placeholder="开始时间">
|
||||
</div>
|
||||
<div class="form-group col-sm-3">
|
||||
<label for="queryEndDate" class="control-label">结束时间:</label>
|
||||
<input type="text" class="input-sm datetime" name="endTime" id="queryEndDate" placeholder="结束时间">
|
||||
</div>
|
||||
<div class="form-group col-sm-3">
|
||||
<label for="erbanNo" class="control-label">用户ID:</label>
|
||||
<input type="text" class="input-sm" name="erbanNo" id="erbanNo" placeholder="">
|
||||
</div>
|
||||
<div class="row"></div>
|
||||
<div>
|
||||
<button class="btn btn-primary" id="searchBtn">查询</button>
|
||||
<button id="searchBtn" class="btn btn-sm btn-primary">查询</button>
|
||||
<button id="btnExport" class="btn btn-sm btn-primary">导出</button>
|
||||
</div>
|
||||
</div>
|
||||
<div id="table"></div>
|
||||
@@ -31,7 +32,7 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import TableHelper from '@/utils/bootstrap-table-helper';
|
||||
import { cleanArray } from '@/utils/maintainer';
|
||||
|
||||
export default {
|
||||
name: "SeizeTreasureRecordAdminView",
|
||||
@@ -87,6 +88,39 @@ export default {
|
||||
};
|
||||
main.init();
|
||||
|
||||
// 导出
|
||||
$('#btnExport').on('click', function () {
|
||||
var poolTypeList;
|
||||
if ($("#poolTypeList").val() && $("#poolTypeList").val().length) {
|
||||
poolTypeList = $("#poolTypeList").val().join();
|
||||
}
|
||||
var poolGroupList;
|
||||
if ($("#poolGroupList").val() && $("#poolGroupList").val().length) {
|
||||
poolGroupList = $("#poolGroupList").val().join();
|
||||
}
|
||||
var poolLevelList;
|
||||
if ($("#poolLevelList").val() && $("#poolLevelList").val().length) {
|
||||
poolLevelList = $("#poolLevelList").val().join();
|
||||
}
|
||||
var obj = {
|
||||
startTime: $('#queryStartDate').val(),
|
||||
endTime: $('#queryEndDate').val(),
|
||||
erbanNo: $('#erbanNo').val(),
|
||||
poolTypeList: poolTypeList,
|
||||
poolGroupList: poolGroupList,
|
||||
poolLevelList: poolLevelList,
|
||||
};
|
||||
function param(json) {
|
||||
if (!json) return ''
|
||||
return cleanArray(Object.keys(json).map(key => {
|
||||
if (json[key] === undefined) return ''
|
||||
return encodeURIComponent(key) + '=' +
|
||||
encodeURIComponent(json[key])
|
||||
})).join('&')
|
||||
}
|
||||
window.location.href = `/admin/seize-treasure/treasure/record/export?${param(obj)}`;
|
||||
});
|
||||
|
||||
function tableRefresh() {
|
||||
$('#table').bootstrapTable('destroy');
|
||||
$('#table').bootstrapTable({
|
||||
|
@@ -93,6 +93,7 @@
|
||||
<label for="rewardLevel" class="col-sm-3 control-label">奖品等级:</label>
|
||||
<div class="col-sm-9">
|
||||
<select name="rewardLevel" id="rewardLevel" class="form-control">
|
||||
<option value="0">0</option>
|
||||
<option value="1">1</option>
|
||||
<option value="2">2</option>
|
||||
<option value="3">3</option>
|
||||
@@ -131,6 +132,7 @@
|
||||
|
||||
<script>
|
||||
import TableHelper from '@/utils/bootstrap-table-helper';
|
||||
import ComboboxHelper from '@/assets/plugins/bootstrap-combobox/js/bootstrap-combobox-helper';
|
||||
import { isNumber } from '@/utils/string';
|
||||
|
||||
export default {
|
||||
@@ -238,7 +240,7 @@ export default {
|
||||
} else if (rewardType == 'infoCard') {
|
||||
console.log(rewardType);
|
||||
}
|
||||
$('#rewardRefId').remove();
|
||||
$('#rewardDiv').children().remove();
|
||||
var $div = $('#rewardDiv');
|
||||
console.log(options);
|
||||
if (options.length > 0) {
|
||||
@@ -258,6 +260,7 @@ export default {
|
||||
$select.append($option);
|
||||
}
|
||||
$div.append($select);
|
||||
ComboboxHelper.build(options, '#rewardRefId', rewardRefId);
|
||||
} else {
|
||||
var $input = $('<input/>');
|
||||
$input.attr('type', 'text');
|
||||
@@ -460,6 +463,12 @@ export default {
|
||||
var rewardShowValue = $("#rewardShowValue").val();
|
||||
var rewardLevel = $("#rewardLevel").val();
|
||||
var rewardOrder = $("#rewardOrder").val();
|
||||
console.log(rewardRefId);
|
||||
if (rewardRefId == null || rewardRefId == '0') {
|
||||
$("#tipMsg").text("奖品设置出错,请重新配置!!!");
|
||||
$("#tipModal").modal('show');
|
||||
return;
|
||||
}
|
||||
let rewardName;
|
||||
if (!isNumber(rewardRefId)) {
|
||||
rewardName = rewardRefId;
|
||||
|
@@ -9,7 +9,7 @@
|
||||
<!-- .content -->
|
||||
<div id="table"></div>
|
||||
<div id="toolbar">
|
||||
<form id="searchForm" action="/admin/seize-treasure/user/prop/record/export" method="get"
|
||||
<form id="searchForm" action="/admin/seize-treasure/user/prop/record/export" method="post"
|
||||
target="_blank">
|
||||
<div class="col-sm-12">
|
||||
<label for="erbanNo" class="col-sm-2 control-label">Peko号:</label>
|
||||
|
@@ -1,38 +1,47 @@
|
||||
const { defineConfig } = require('@vue/cli-service')
|
||||
var webpack = require('webpack')
|
||||
var AutoImport = require('unplugin-auto-import/webpack')
|
||||
var Components = require('unplugin-vue-components/webpack')
|
||||
var { ElementPlusResolver } = require('unplugin-vue-components/resolvers')
|
||||
module.exports = defineConfig({
|
||||
transpileDependencies: true,
|
||||
chainWebpack: config => {
|
||||
config
|
||||
.plugin('html')
|
||||
.tap(args => {
|
||||
args[0].title = 'PIKO管理后台'
|
||||
return args
|
||||
})
|
||||
},
|
||||
configureWebpack: {
|
||||
plugins: [
|
||||
new webpack.ProvidePlugin({
|
||||
$: 'jquery',
|
||||
jQuery: 'jquery',
|
||||
'windows.jQuery': 'jquery',
|
||||
Popper: ['popper.js', 'default']
|
||||
}),
|
||||
],
|
||||
},
|
||||
devServer: {
|
||||
headers: {
|
||||
'Access-Control-Allow-Origin': '*',
|
||||
transpileDependencies: true,
|
||||
chainWebpack: config => {
|
||||
config
|
||||
.plugin('html')
|
||||
.tap(args => {
|
||||
args[0].title = 'PIKO管理后台'
|
||||
return args
|
||||
})
|
||||
},
|
||||
proxy: {
|
||||
'/': {
|
||||
ws: false,
|
||||
target: process.env.VUE_APP_API_BASE_URL,
|
||||
changeOrigin: true,
|
||||
pathRewrite: {
|
||||
'^/': ''
|
||||
}
|
||||
}
|
||||
configureWebpack: {
|
||||
plugins: [
|
||||
new webpack.ProvidePlugin({
|
||||
$: 'jquery',
|
||||
jQuery: 'jquery',
|
||||
'windows.jQuery': 'jquery',
|
||||
Popper: ['popper.js', 'default']
|
||||
}),
|
||||
AutoImport({
|
||||
resolvers: [ElementPlusResolver()],
|
||||
}),
|
||||
Components({
|
||||
resolvers: [ElementPlusResolver()],
|
||||
}),
|
||||
],
|
||||
},
|
||||
devServer: {
|
||||
headers: {
|
||||
'Access-Control-Allow-Origin': '*',
|
||||
},
|
||||
proxy: {
|
||||
'/': {
|
||||
ws: false,
|
||||
target: process.env.VUE_APP_API_BASE_URL,
|
||||
changeOrigin: true,
|
||||
pathRewrite: {
|
||||
'^/': ''
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
|
Reference in New Issue
Block a user