Compare commits

...

32 Commits

Author SHA1 Message Date
Dragon
50343e2aa9 优化代码加载速度 2023-10-30 16:11:05 +08:00
liaozetao
701bcb772a 新增字段 2023-10-30 12:37:18 +08:00
liaozetao
55d1e6fc43 新增分组统计字段 2023-10-30 12:13:32 +08:00
Dragon
642664edce 修复分组统计表格异常 2023-10-30 11:42:58 +08:00
liaozetao
7121ef5169 修复bootstrap-table组件问题 2023-10-27 18:10:15 +08:00
liaozetao
0388afa78e 修复退出登录问题 2023-10-26 17:03:57 +08:00
liaozetao
5bd9d0ead2 修改按钮样式 2023-10-26 16:28:09 +08:00
liaozetao
fe0f0dc186 修改样式 2023-10-26 15:47:47 +08:00
liaozetao
1a61a57c5a 优化下拉框样式 2023-10-26 15:32:13 +08:00
liaozetao
d514f71968 修复导出 2023-10-26 15:26:53 +08:00
liaozetao
b56d879298 修复导出问题 2023-10-26 15:05:34 +08:00
liaozetao
36083a6382 修復傳說試煉導出 2023-10-26 14:44:44 +08:00
liaozetao
7602628333 修復紅包ID問題 2023-10-26 14:40:40 +08:00
liaozetao
52da350b0f 新增转赠字段 2023-10-26 11:16:13 +08:00
liaozetao
839917da12 新增抽奖明细导出功能 2023-10-25 17:26:50 +08:00
liaozetao
7a3d3b054a 修改红包发放统计 2023-10-25 16:09:00 +08:00
liaozetao
786edc9294 奖品设置等级添加零级 2023-10-24 11:39:47 +08:00
liaozetao
3ba46dfc9b 补充 2023-10-24 11:26:34 +08:00
liaozetao
f865e989b9 添加奖品设置校验 2023-10-24 10:52:20 +08:00
liaozetao
4d877b9074 修复版本管理 2023-10-23 16:33:25 +08:00
liaozetao
0b391b3b9d 修改分页数 2023-10-23 14:40:51 +08:00
liaozetao
dc45af7c97 补充2 2023-10-23 12:36:53 +08:00
liaozetao
df0980565c 补充 2023-10-23 12:34:19 +08:00
liaozetao
059d43db48 奖品设置修改为搜索框 2023-10-23 12:32:55 +08:00
liaozetao
815356ce7f 修复头像展示问题2 2023-10-21 08:14:44 +08:00
liaozetao
0293f24864 修复头像展示问题 2023-10-21 08:13:51 +08:00
liaozetao
d1b239c91c 修改触发事件方式 2023-10-20 21:00:26 +08:00
liaozetao
adc1f06401 修复Date.prototype.format方法问题 2023-10-20 16:13:22 +08:00
liaozetao
eb23708953 修復版本管理 2023-10-20 14:38:48 +08:00
liaozetao
40344ec61c 修改配置的命名空间展示 2023-10-20 10:28:35 +08:00
liaozetao
8c9016246f 修改配置管理的展示方式 2023-10-19 17:44:57 +08:00
liaozetao
6502e1443b 修复多选框组件问题 2023-10-19 11:53:58 +08:00
23 changed files with 3958 additions and 166 deletions

312
package-lock.json generated
View File

@@ -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",

View File

@@ -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"
}

View File

@@ -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);

View File

@@ -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 ;_;

View 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;
}

File diff suppressed because it is too large Load Diff

View 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);
}));

View 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);
}));

View File

@@ -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')

View File

@@ -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({

View File

@@ -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);

View File

@@ -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);

View File

@@ -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可以获取pageNumberpageSizesearchTextsortNamesortOrder

View File

@@ -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: '操作',

View File

@@ -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);
});
});
}
},

View File

@@ -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>

View File

@@ -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");

View File

@@ -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>' +
'&nbsp;&nbsp;<button class="btn btn-sm btn-danger opt-remove" data-id=' + val +

View File

@@ -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 = "";

View File

@@ -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({

View File

@@ -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;

View File

@@ -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>

View File

@@ -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: {
'^/': ''
}
}
},
},
},
})