23 Commits

Author SHA1 Message Date
e16afd1696 保存进度! 2022-12-23 00:10:01 +08:00
b0b7fa69f6 保存进度! 2022-12-22 21:14:30 +08:00
787f7dc5f8 保存进度! 2022-12-22 15:48:48 +08:00
a8c505a63d 保存进度! 2022-12-17 12:17:17 +08:00
6b0879721f 保存进度! 2022-12-16 22:07:53 +08:00
3279363409 完成账号验证功能! 2022-12-16 21:44:50 +08:00
53093875eb 完成人员信息查询功能 2022-12-16 17:59:13 +08:00
3b648e5640 保存进度! 2022-12-16 16:15:29 +08:00
e6b25bf487 保存进度! 2022-12-16 15:25:25 +08:00
0c48486913 保存进度! 2022-12-16 15:20:52 +08:00
ef4874962e 增加ldap验证功能,添加测试。 2022-12-16 11:49:46 +08:00
8219016b9d 保存进度! 2022-12-15 21:25:23 +08:00
e091e2aa32 保存进度! 2022-12-15 21:22:03 +08:00
234a3d9861 保存进度! 2022-12-15 17:34:57 +08:00
5f174b312c 开发后端 2022-12-15 11:48:10 +08:00
5dcff64bf5 保存进度! 2022-12-15 09:25:51 +08:00
5c72437e2d 保存进度! 2022-12-14 23:08:12 +08:00
a39c174cf4 保存进度! 2022-12-14 22:41:46 +08:00
c469cb139f 保存进度! 2022-12-14 21:28:13 +08:00
4e189eb2ab 保存进度! 2022-12-14 18:38:51 +08:00
4cb90a5925 做一些清理 2022-12-14 18:36:32 +08:00
7c9e1a682b 保存进度! 2022-12-14 18:34:45 +08:00
e5f066dc3b 保存进度! 2022-12-14 15:23:07 +08:00
196 changed files with 58703 additions and 190 deletions

5
.gitignore vendored
View File

@@ -49,3 +49,8 @@ test/
hs_err_pid* hs_err_pid*
replay_pid* replay_pid*
node_modules/
node_modules
target/
target

View File

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

View File

Before

Width:  |  Height:  |  Size: 6.7 KiB

After

Width:  |  Height:  |  Size: 6.7 KiB

View File

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

View File

Before

Width:  |  Height:  |  Size: 6.7 KiB

After

Width:  |  Height:  |  Size: 6.7 KiB

760
package-lock.json generated Normal file
View File

@@ -0,0 +1,760 @@
{
"name": "vue-learning",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"dependencies": {
"element-plus": "^2.2.26"
}
},
"node_modules/@babel/parser": {
"version": "7.20.5",
"resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.20.5.tgz",
"integrity": "sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA==",
"peer": true,
"bin": {
"parser": "bin/babel-parser.js"
},
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/@ctrl/tinycolor": {
"version": "3.5.0",
"resolved": "https://registry.npmmirror.com/@ctrl/tinycolor/-/tinycolor-3.5.0.tgz",
"integrity": "sha512-tlJpwF40DEQcfR/QF+wNMVyGMaO9FQp6Z1Wahj4Gk3CJQYHwA2xVG7iKDFdW6zuxZY9XWOpGcfNCTsX4McOsOg==",
"engines": {
"node": ">=10"
}
},
"node_modules/@element-plus/icons-vue": {
"version": "2.0.10",
"resolved": "https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-2.0.10.tgz",
"integrity": "sha512-ygEZ1mwPjcPo/OulhzLE7mtDrQBWI8vZzEWSNB2W/RNCRjoQGwbaK4N8lV4rid7Ts4qvySU3njMN7YCiSlSaTQ==",
"peerDependencies": {
"vue": "^3.2.0"
}
},
"node_modules/@floating-ui/core": {
"version": "1.0.4",
"resolved": "https://registry.npmmirror.com/@floating-ui/core/-/core-1.0.4.tgz",
"integrity": "sha512-FPFLbg2b06MIw1dqk2SOEMAMX3xlrreGjcui5OTxfBDtaKTmh0kioOVjT8gcfl58juawL/yF+S+gnq8aUYQx/Q=="
},
"node_modules/@floating-ui/dom": {
"version": "1.0.10",
"resolved": "https://registry.npmmirror.com/@floating-ui/dom/-/dom-1.0.10.tgz",
"integrity": "sha512-ZRe5ZmtGYCd82zrjWnnMW8hN5H1otedLh0Ur6rRo6f0exbEe6IlkVvo1RO7tgiMvbF0Df8hkhdm50VcVYqwP6g==",
"dependencies": {
"@floating-ui/core": "^1.0.4"
}
},
"node_modules/@popperjs/core": {
"name": "@sxzz/popperjs-es",
"version": "2.11.7",
"resolved": "https://registry.npmmirror.com/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz",
"integrity": "sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ=="
},
"node_modules/@types/lodash": {
"version": "4.14.191",
"resolved": "https://registry.npmmirror.com/@types/lodash/-/lodash-4.14.191.tgz",
"integrity": "sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ=="
},
"node_modules/@types/lodash-es": {
"version": "4.17.6",
"resolved": "https://registry.npmmirror.com/@types/lodash-es/-/lodash-es-4.17.6.tgz",
"integrity": "sha512-R+zTeVUKDdfoRxpAryaQNRKk3105Rrgx2CFRClIgRGaqDTdjsm8h6IYA8ir584W3ePzkZfst5xIgDwYrlh9HLg==",
"dependencies": {
"@types/lodash": "*"
}
},
"node_modules/@types/web-bluetooth": {
"version": "0.0.16",
"resolved": "https://registry.npmmirror.com/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz",
"integrity": "sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ=="
},
"node_modules/@vue/compiler-core": {
"version": "3.2.45",
"resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.2.45.tgz",
"integrity": "sha512-rcMj7H+PYe5wBV3iYeUgbCglC+pbpN8hBLTJvRiK2eKQiWqu+fG9F+8sW99JdL4LQi7Re178UOxn09puSXvn4A==",
"peer": true,
"dependencies": {
"@babel/parser": "^7.16.4",
"@vue/shared": "3.2.45",
"estree-walker": "^2.0.2",
"source-map": "^0.6.1"
}
},
"node_modules/@vue/compiler-dom": {
"version": "3.2.45",
"resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.2.45.tgz",
"integrity": "sha512-tyYeUEuKqqZO137WrZkpwfPCdiiIeXYCcJ8L4gWz9vqaxzIQRccTSwSWZ/Axx5YR2z+LvpUbmPNXxuBU45lyRw==",
"peer": true,
"dependencies": {
"@vue/compiler-core": "3.2.45",
"@vue/shared": "3.2.45"
}
},
"node_modules/@vue/compiler-sfc": {
"version": "3.2.45",
"resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.2.45.tgz",
"integrity": "sha512-1jXDuWah1ggsnSAOGsec8cFjT/K6TMZ0sPL3o3d84Ft2AYZi2jWJgRMjw4iaK0rBfA89L5gw427H4n1RZQBu6Q==",
"peer": true,
"dependencies": {
"@babel/parser": "^7.16.4",
"@vue/compiler-core": "3.2.45",
"@vue/compiler-dom": "3.2.45",
"@vue/compiler-ssr": "3.2.45",
"@vue/reactivity-transform": "3.2.45",
"@vue/shared": "3.2.45",
"estree-walker": "^2.0.2",
"magic-string": "^0.25.7",
"postcss": "^8.1.10",
"source-map": "^0.6.1"
}
},
"node_modules/@vue/compiler-ssr": {
"version": "3.2.45",
"resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.2.45.tgz",
"integrity": "sha512-6BRaggEGqhWht3lt24CrIbQSRD5O07MTmd+LjAn5fJj568+R9eUD2F7wMQJjX859seSlrYog7sUtrZSd7feqrQ==",
"peer": true,
"dependencies": {
"@vue/compiler-dom": "3.2.45",
"@vue/shared": "3.2.45"
}
},
"node_modules/@vue/reactivity": {
"version": "3.2.45",
"resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.2.45.tgz",
"integrity": "sha512-PRvhCcQcyEVohW0P8iQ7HDcIOXRjZfAsOds3N99X/Dzewy8TVhTCT4uXpAHfoKjVTJRA0O0K+6QNkDIZAxNi3A==",
"peer": true,
"dependencies": {
"@vue/shared": "3.2.45"
}
},
"node_modules/@vue/reactivity-transform": {
"version": "3.2.45",
"resolved": "https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.2.45.tgz",
"integrity": "sha512-BHVmzYAvM7vcU5WmuYqXpwaBHjsS8T63jlKGWVtHxAHIoMIlmaMyurUSEs1Zcg46M4AYT5MtB1U274/2aNzjJQ==",
"peer": true,
"dependencies": {
"@babel/parser": "^7.16.4",
"@vue/compiler-core": "3.2.45",
"@vue/shared": "3.2.45",
"estree-walker": "^2.0.2",
"magic-string": "^0.25.7"
}
},
"node_modules/@vue/runtime-core": {
"version": "3.2.45",
"resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.2.45.tgz",
"integrity": "sha512-gzJiTA3f74cgARptqzYswmoQx0fIA+gGYBfokYVhF8YSXjWTUA2SngRzZRku2HbGbjzB6LBYSbKGIaK8IW+s0A==",
"peer": true,
"dependencies": {
"@vue/reactivity": "3.2.45",
"@vue/shared": "3.2.45"
}
},
"node_modules/@vue/runtime-dom": {
"version": "3.2.45",
"resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.2.45.tgz",
"integrity": "sha512-cy88YpfP5Ue2bDBbj75Cb4bIEZUMM/mAkDMfqDTpUYVgTf/kuQ2VQ8LebuZ8k6EudgH8pYhsGWHlY0lcxlvTwA==",
"peer": true,
"dependencies": {
"@vue/runtime-core": "3.2.45",
"@vue/shared": "3.2.45",
"csstype": "^2.6.8"
}
},
"node_modules/@vue/server-renderer": {
"version": "3.2.45",
"resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.2.45.tgz",
"integrity": "sha512-ebiMq7q24WBU1D6uhPK//2OTR1iRIyxjF5iVq/1a5I1SDMDyDu4Ts6fJaMnjrvD3MqnaiFkKQj+LKAgz5WIK3g==",
"peer": true,
"dependencies": {
"@vue/compiler-ssr": "3.2.45",
"@vue/shared": "3.2.45"
},
"peerDependencies": {
"vue": "3.2.45"
}
},
"node_modules/@vue/shared": {
"version": "3.2.45",
"resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.2.45.tgz",
"integrity": "sha512-Ewzq5Yhimg7pSztDV+RH1UDKBzmtqieXQlpTVm2AwraoRL/Rks96mvd8Vgi7Lj+h+TH8dv7mXD3FRZR3TUvbSg==",
"peer": true
},
"node_modules/@vueuse/core": {
"version": "9.6.0",
"resolved": "https://registry.npmmirror.com/@vueuse/core/-/core-9.6.0.tgz",
"integrity": "sha512-qGUcjKQXHgN+jqXEgpeZGoxdCbIDCdVPz3QiF1uyecVGbMuM63o96I1GjYx5zskKgRI0FKSNsVWM7rwrRMTf6A==",
"dependencies": {
"@types/web-bluetooth": "^0.0.16",
"@vueuse/metadata": "9.6.0",
"@vueuse/shared": "9.6.0",
"vue-demi": "*"
}
},
"node_modules/@vueuse/core/node_modules/vue-demi": {
"version": "0.13.11",
"resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.13.11.tgz",
"integrity": "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==",
"hasInstallScript": true,
"bin": {
"vue-demi-fix": "bin/vue-demi-fix.js",
"vue-demi-switch": "bin/vue-demi-switch.js"
},
"engines": {
"node": ">=12"
},
"peerDependencies": {
"@vue/composition-api": "^1.0.0-rc.1",
"vue": "^3.0.0-0 || ^2.6.0"
},
"peerDependenciesMeta": {
"@vue/composition-api": {
"optional": true
}
}
},
"node_modules/@vueuse/metadata": {
"version": "9.6.0",
"resolved": "https://registry.npmmirror.com/@vueuse/metadata/-/metadata-9.6.0.tgz",
"integrity": "sha512-sIC8R+kWkIdpi5X2z2Gk8TRYzmczDwHRhEFfCu2P+XW2JdPoXrziqsGpDDsN7ykBx4ilwieS7JUIweVGhvZ93w=="
},
"node_modules/@vueuse/shared": {
"version": "9.6.0",
"resolved": "https://registry.npmmirror.com/@vueuse/shared/-/shared-9.6.0.tgz",
"integrity": "sha512-/eDchxYYhkHnFyrb00t90UfjCx94kRHxc7J1GtBCqCG4HyPMX+krV9XJgVtWIsAMaxKVU4fC8NSUviG1JkwhUQ==",
"dependencies": {
"vue-demi": "*"
}
},
"node_modules/@vueuse/shared/node_modules/vue-demi": {
"version": "0.13.11",
"resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.13.11.tgz",
"integrity": "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==",
"hasInstallScript": true,
"bin": {
"vue-demi-fix": "bin/vue-demi-fix.js",
"vue-demi-switch": "bin/vue-demi-switch.js"
},
"engines": {
"node": ">=12"
},
"peerDependencies": {
"@vue/composition-api": "^1.0.0-rc.1",
"vue": "^3.0.0-0 || ^2.6.0"
},
"peerDependenciesMeta": {
"@vue/composition-api": {
"optional": true
}
}
},
"node_modules/async-validator": {
"version": "4.2.5",
"resolved": "https://registry.npmmirror.com/async-validator/-/async-validator-4.2.5.tgz",
"integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg=="
},
"node_modules/csstype": {
"version": "2.6.21",
"resolved": "https://registry.npmmirror.com/csstype/-/csstype-2.6.21.tgz",
"integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==",
"peer": true
},
"node_modules/dayjs": {
"version": "1.11.7",
"resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.7.tgz",
"integrity": "sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ=="
},
"node_modules/element-plus": {
"version": "2.2.26",
"resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.2.26.tgz",
"integrity": "sha512-O/rdY5m9DkclpVg8r3GynyqCunm7MxSR142xSsjrZA77bi7bcwA3SIy6SPEDqHi5R4KqgkGYgKSp4Q4e3irbYg==",
"dependencies": {
"@ctrl/tinycolor": "^3.4.1",
"@element-plus/icons-vue": "^2.0.6",
"@floating-ui/dom": "^1.0.1",
"@popperjs/core": "npm:@sxzz/popperjs-es@^2.11.7",
"@types/lodash": "^4.14.182",
"@types/lodash-es": "^4.17.6",
"@vueuse/core": "^9.1.0",
"async-validator": "^4.2.5",
"dayjs": "^1.11.3",
"escape-html": "^1.0.3",
"lodash": "^4.17.21",
"lodash-es": "^4.17.21",
"lodash-unified": "^1.0.2",
"memoize-one": "^6.0.0",
"normalize-wheel-es": "^1.2.0"
},
"peerDependencies": {
"vue": "^3.2.0"
}
},
"node_modules/escape-html": {
"version": "1.0.3",
"resolved": "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz",
"integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
},
"node_modules/estree-walker": {
"version": "2.0.2",
"resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz",
"integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
"peer": true
},
"node_modules/lodash": {
"version": "4.17.21",
"resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz",
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
},
"node_modules/lodash-es": {
"version": "4.17.21",
"resolved": "https://registry.npmmirror.com/lodash-es/-/lodash-es-4.17.21.tgz",
"integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw=="
},
"node_modules/lodash-unified": {
"version": "1.0.3",
"resolved": "https://registry.npmmirror.com/lodash-unified/-/lodash-unified-1.0.3.tgz",
"integrity": "sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ==",
"peerDependencies": {
"@types/lodash-es": "*",
"lodash": "*",
"lodash-es": "*"
}
},
"node_modules/magic-string": {
"version": "0.25.9",
"resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.25.9.tgz",
"integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==",
"peer": true,
"dependencies": {
"sourcemap-codec": "^1.4.8"
}
},
"node_modules/memoize-one": {
"version": "6.0.0",
"resolved": "https://registry.npmmirror.com/memoize-one/-/memoize-one-6.0.0.tgz",
"integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw=="
},
"node_modules/nanoid": {
"version": "3.3.4",
"resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.4.tgz",
"integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==",
"peer": true,
"bin": {
"nanoid": "bin/nanoid.cjs"
},
"engines": {
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
}
},
"node_modules/normalize-wheel-es": {
"version": "1.2.0",
"resolved": "https://registry.npmmirror.com/normalize-wheel-es/-/normalize-wheel-es-1.2.0.tgz",
"integrity": "sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw=="
},
"node_modules/picocolors": {
"version": "1.0.0",
"resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz",
"integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
"peer": true
},
"node_modules/postcss": {
"version": "8.4.20",
"resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.20.tgz",
"integrity": "sha512-6Q04AXR1212bXr5fh03u8aAwbLxAQNGQ/Q1LNa0VfOI06ZAlhPHtQvE4OIdpj4kLThXilalPnmDSOD65DcHt+g==",
"peer": true,
"dependencies": {
"nanoid": "^3.3.4",
"picocolors": "^1.0.0",
"source-map-js": "^1.0.2"
},
"engines": {
"node": "^10 || ^12 || >=14"
}
},
"node_modules/source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"peer": true,
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/source-map-js": {
"version": "1.0.2",
"resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz",
"integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
"peer": true,
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/sourcemap-codec": {
"version": "1.4.8",
"resolved": "https://registry.npmmirror.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
"integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==",
"deprecated": "Please use @jridgewell/sourcemap-codec instead",
"peer": true
},
"node_modules/vue": {
"version": "3.2.45",
"resolved": "https://registry.npmmirror.com/vue/-/vue-3.2.45.tgz",
"integrity": "sha512-9Nx/Mg2b2xWlXykmCwiTUCWHbWIj53bnkizBxKai1g61f2Xit700A1ljowpTIM11e3uipOeiPcSqnmBg6gyiaA==",
"peer": true,
"dependencies": {
"@vue/compiler-dom": "3.2.45",
"@vue/compiler-sfc": "3.2.45",
"@vue/runtime-dom": "3.2.45",
"@vue/server-renderer": "3.2.45",
"@vue/shared": "3.2.45"
}
}
},
"dependencies": {
"@babel/parser": {
"version": "7.20.5",
"resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.20.5.tgz",
"integrity": "sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA==",
"peer": true
},
"@ctrl/tinycolor": {
"version": "3.5.0",
"resolved": "https://registry.npmmirror.com/@ctrl/tinycolor/-/tinycolor-3.5.0.tgz",
"integrity": "sha512-tlJpwF40DEQcfR/QF+wNMVyGMaO9FQp6Z1Wahj4Gk3CJQYHwA2xVG7iKDFdW6zuxZY9XWOpGcfNCTsX4McOsOg=="
},
"@element-plus/icons-vue": {
"version": "2.0.10",
"resolved": "https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-2.0.10.tgz",
"integrity": "sha512-ygEZ1mwPjcPo/OulhzLE7mtDrQBWI8vZzEWSNB2W/RNCRjoQGwbaK4N8lV4rid7Ts4qvySU3njMN7YCiSlSaTQ==",
"requires": {}
},
"@floating-ui/core": {
"version": "1.0.4",
"resolved": "https://registry.npmmirror.com/@floating-ui/core/-/core-1.0.4.tgz",
"integrity": "sha512-FPFLbg2b06MIw1dqk2SOEMAMX3xlrreGjcui5OTxfBDtaKTmh0kioOVjT8gcfl58juawL/yF+S+gnq8aUYQx/Q=="
},
"@floating-ui/dom": {
"version": "1.0.10",
"resolved": "https://registry.npmmirror.com/@floating-ui/dom/-/dom-1.0.10.tgz",
"integrity": "sha512-ZRe5ZmtGYCd82zrjWnnMW8hN5H1otedLh0Ur6rRo6f0exbEe6IlkVvo1RO7tgiMvbF0Df8hkhdm50VcVYqwP6g==",
"requires": {
"@floating-ui/core": "^1.0.4"
}
},
"@popperjs/core": {
"version": "npm:@sxzz/popperjs-es@2.11.7",
"resolved": "https://registry.npmmirror.com/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz",
"integrity": "sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ=="
},
"@types/lodash": {
"version": "4.14.191",
"resolved": "https://registry.npmmirror.com/@types/lodash/-/lodash-4.14.191.tgz",
"integrity": "sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ=="
},
"@types/lodash-es": {
"version": "4.17.6",
"resolved": "https://registry.npmmirror.com/@types/lodash-es/-/lodash-es-4.17.6.tgz",
"integrity": "sha512-R+zTeVUKDdfoRxpAryaQNRKk3105Rrgx2CFRClIgRGaqDTdjsm8h6IYA8ir584W3ePzkZfst5xIgDwYrlh9HLg==",
"requires": {
"@types/lodash": "*"
}
},
"@types/web-bluetooth": {
"version": "0.0.16",
"resolved": "https://registry.npmmirror.com/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz",
"integrity": "sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ=="
},
"@vue/compiler-core": {
"version": "3.2.45",
"resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.2.45.tgz",
"integrity": "sha512-rcMj7H+PYe5wBV3iYeUgbCglC+pbpN8hBLTJvRiK2eKQiWqu+fG9F+8sW99JdL4LQi7Re178UOxn09puSXvn4A==",
"peer": true,
"requires": {
"@babel/parser": "^7.16.4",
"@vue/shared": "3.2.45",
"estree-walker": "^2.0.2",
"source-map": "^0.6.1"
}
},
"@vue/compiler-dom": {
"version": "3.2.45",
"resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.2.45.tgz",
"integrity": "sha512-tyYeUEuKqqZO137WrZkpwfPCdiiIeXYCcJ8L4gWz9vqaxzIQRccTSwSWZ/Axx5YR2z+LvpUbmPNXxuBU45lyRw==",
"peer": true,
"requires": {
"@vue/compiler-core": "3.2.45",
"@vue/shared": "3.2.45"
}
},
"@vue/compiler-sfc": {
"version": "3.2.45",
"resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.2.45.tgz",
"integrity": "sha512-1jXDuWah1ggsnSAOGsec8cFjT/K6TMZ0sPL3o3d84Ft2AYZi2jWJgRMjw4iaK0rBfA89L5gw427H4n1RZQBu6Q==",
"peer": true,
"requires": {
"@babel/parser": "^7.16.4",
"@vue/compiler-core": "3.2.45",
"@vue/compiler-dom": "3.2.45",
"@vue/compiler-ssr": "3.2.45",
"@vue/reactivity-transform": "3.2.45",
"@vue/shared": "3.2.45",
"estree-walker": "^2.0.2",
"magic-string": "^0.25.7",
"postcss": "^8.1.10",
"source-map": "^0.6.1"
}
},
"@vue/compiler-ssr": {
"version": "3.2.45",
"resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.2.45.tgz",
"integrity": "sha512-6BRaggEGqhWht3lt24CrIbQSRD5O07MTmd+LjAn5fJj568+R9eUD2F7wMQJjX859seSlrYog7sUtrZSd7feqrQ==",
"peer": true,
"requires": {
"@vue/compiler-dom": "3.2.45",
"@vue/shared": "3.2.45"
}
},
"@vue/reactivity": {
"version": "3.2.45",
"resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.2.45.tgz",
"integrity": "sha512-PRvhCcQcyEVohW0P8iQ7HDcIOXRjZfAsOds3N99X/Dzewy8TVhTCT4uXpAHfoKjVTJRA0O0K+6QNkDIZAxNi3A==",
"peer": true,
"requires": {
"@vue/shared": "3.2.45"
}
},
"@vue/reactivity-transform": {
"version": "3.2.45",
"resolved": "https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.2.45.tgz",
"integrity": "sha512-BHVmzYAvM7vcU5WmuYqXpwaBHjsS8T63jlKGWVtHxAHIoMIlmaMyurUSEs1Zcg46M4AYT5MtB1U274/2aNzjJQ==",
"peer": true,
"requires": {
"@babel/parser": "^7.16.4",
"@vue/compiler-core": "3.2.45",
"@vue/shared": "3.2.45",
"estree-walker": "^2.0.2",
"magic-string": "^0.25.7"
}
},
"@vue/runtime-core": {
"version": "3.2.45",
"resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.2.45.tgz",
"integrity": "sha512-gzJiTA3f74cgARptqzYswmoQx0fIA+gGYBfokYVhF8YSXjWTUA2SngRzZRku2HbGbjzB6LBYSbKGIaK8IW+s0A==",
"peer": true,
"requires": {
"@vue/reactivity": "3.2.45",
"@vue/shared": "3.2.45"
}
},
"@vue/runtime-dom": {
"version": "3.2.45",
"resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.2.45.tgz",
"integrity": "sha512-cy88YpfP5Ue2bDBbj75Cb4bIEZUMM/mAkDMfqDTpUYVgTf/kuQ2VQ8LebuZ8k6EudgH8pYhsGWHlY0lcxlvTwA==",
"peer": true,
"requires": {
"@vue/runtime-core": "3.2.45",
"@vue/shared": "3.2.45",
"csstype": "^2.6.8"
}
},
"@vue/server-renderer": {
"version": "3.2.45",
"resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.2.45.tgz",
"integrity": "sha512-ebiMq7q24WBU1D6uhPK//2OTR1iRIyxjF5iVq/1a5I1SDMDyDu4Ts6fJaMnjrvD3MqnaiFkKQj+LKAgz5WIK3g==",
"peer": true,
"requires": {
"@vue/compiler-ssr": "3.2.45",
"@vue/shared": "3.2.45"
}
},
"@vue/shared": {
"version": "3.2.45",
"resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.2.45.tgz",
"integrity": "sha512-Ewzq5Yhimg7pSztDV+RH1UDKBzmtqieXQlpTVm2AwraoRL/Rks96mvd8Vgi7Lj+h+TH8dv7mXD3FRZR3TUvbSg==",
"peer": true
},
"@vueuse/core": {
"version": "9.6.0",
"resolved": "https://registry.npmmirror.com/@vueuse/core/-/core-9.6.0.tgz",
"integrity": "sha512-qGUcjKQXHgN+jqXEgpeZGoxdCbIDCdVPz3QiF1uyecVGbMuM63o96I1GjYx5zskKgRI0FKSNsVWM7rwrRMTf6A==",
"requires": {
"@types/web-bluetooth": "^0.0.16",
"@vueuse/metadata": "9.6.0",
"@vueuse/shared": "9.6.0",
"vue-demi": "*"
},
"dependencies": {
"vue-demi": {
"version": "0.13.11",
"resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.13.11.tgz",
"integrity": "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==",
"requires": {}
}
}
},
"@vueuse/metadata": {
"version": "9.6.0",
"resolved": "https://registry.npmmirror.com/@vueuse/metadata/-/metadata-9.6.0.tgz",
"integrity": "sha512-sIC8R+kWkIdpi5X2z2Gk8TRYzmczDwHRhEFfCu2P+XW2JdPoXrziqsGpDDsN7ykBx4ilwieS7JUIweVGhvZ93w=="
},
"@vueuse/shared": {
"version": "9.6.0",
"resolved": "https://registry.npmmirror.com/@vueuse/shared/-/shared-9.6.0.tgz",
"integrity": "sha512-/eDchxYYhkHnFyrb00t90UfjCx94kRHxc7J1GtBCqCG4HyPMX+krV9XJgVtWIsAMaxKVU4fC8NSUviG1JkwhUQ==",
"requires": {
"vue-demi": "*"
},
"dependencies": {
"vue-demi": {
"version": "0.13.11",
"resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.13.11.tgz",
"integrity": "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==",
"requires": {}
}
}
},
"async-validator": {
"version": "4.2.5",
"resolved": "https://registry.npmmirror.com/async-validator/-/async-validator-4.2.5.tgz",
"integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg=="
},
"csstype": {
"version": "2.6.21",
"resolved": "https://registry.npmmirror.com/csstype/-/csstype-2.6.21.tgz",
"integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==",
"peer": true
},
"dayjs": {
"version": "1.11.7",
"resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.7.tgz",
"integrity": "sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ=="
},
"element-plus": {
"version": "2.2.26",
"resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.2.26.tgz",
"integrity": "sha512-O/rdY5m9DkclpVg8r3GynyqCunm7MxSR142xSsjrZA77bi7bcwA3SIy6SPEDqHi5R4KqgkGYgKSp4Q4e3irbYg==",
"requires": {
"@ctrl/tinycolor": "^3.4.1",
"@element-plus/icons-vue": "^2.0.6",
"@floating-ui/dom": "^1.0.1",
"@popperjs/core": "npm:@sxzz/popperjs-es@^2.11.7",
"@types/lodash": "^4.14.182",
"@types/lodash-es": "^4.17.6",
"@vueuse/core": "^9.1.0",
"async-validator": "^4.2.5",
"dayjs": "^1.11.3",
"escape-html": "^1.0.3",
"lodash": "^4.17.21",
"lodash-es": "^4.17.21",
"lodash-unified": "^1.0.2",
"memoize-one": "^6.0.0",
"normalize-wheel-es": "^1.2.0"
}
},
"escape-html": {
"version": "1.0.3",
"resolved": "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz",
"integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
},
"estree-walker": {
"version": "2.0.2",
"resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz",
"integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
"peer": true
},
"lodash": {
"version": "4.17.21",
"resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz",
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
},
"lodash-es": {
"version": "4.17.21",
"resolved": "https://registry.npmmirror.com/lodash-es/-/lodash-es-4.17.21.tgz",
"integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw=="
},
"lodash-unified": {
"version": "1.0.3",
"resolved": "https://registry.npmmirror.com/lodash-unified/-/lodash-unified-1.0.3.tgz",
"integrity": "sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ==",
"requires": {}
},
"magic-string": {
"version": "0.25.9",
"resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.25.9.tgz",
"integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==",
"peer": true,
"requires": {
"sourcemap-codec": "^1.4.8"
}
},
"memoize-one": {
"version": "6.0.0",
"resolved": "https://registry.npmmirror.com/memoize-one/-/memoize-one-6.0.0.tgz",
"integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw=="
},
"nanoid": {
"version": "3.3.4",
"resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.4.tgz",
"integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==",
"peer": true
},
"normalize-wheel-es": {
"version": "1.2.0",
"resolved": "https://registry.npmmirror.com/normalize-wheel-es/-/normalize-wheel-es-1.2.0.tgz",
"integrity": "sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw=="
},
"picocolors": {
"version": "1.0.0",
"resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz",
"integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
"peer": true
},
"postcss": {
"version": "8.4.20",
"resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.20.tgz",
"integrity": "sha512-6Q04AXR1212bXr5fh03u8aAwbLxAQNGQ/Q1LNa0VfOI06ZAlhPHtQvE4OIdpj4kLThXilalPnmDSOD65DcHt+g==",
"peer": true,
"requires": {
"nanoid": "^3.3.4",
"picocolors": "^1.0.0",
"source-map-js": "^1.0.2"
}
},
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"peer": true
},
"source-map-js": {
"version": "1.0.2",
"resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz",
"integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
"peer": true
},
"sourcemap-codec": {
"version": "1.4.8",
"resolved": "https://registry.npmmirror.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
"integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==",
"peer": true
},
"vue": {
"version": "3.2.45",
"resolved": "https://registry.npmmirror.com/vue/-/vue-3.2.45.tgz",
"integrity": "sha512-9Nx/Mg2b2xWlXykmCwiTUCWHbWIj53bnkizBxKai1g61f2Xit700A1ljowpTIM11e3uipOeiPcSqnmBg6gyiaA==",
"peer": true,
"requires": {
"@vue/compiler-dom": "3.2.45",
"@vue/compiler-sfc": "3.2.45",
"@vue/runtime-dom": "3.2.45",
"@vue/server-renderer": "3.2.45",
"@vue/shared": "3.2.45"
}
}
}
}

5
package.json Normal file
View File

@@ -0,0 +1,5 @@
{
"dependencies": {
"element-plus": "^2.2.26"
}
}

View File

@@ -0,0 +1,4 @@
{
"java.configuration.updateBuildConfiguration": "automatic",
"java.compile.nullAnalysis.mode": "automatic"
}

View File

@@ -0,0 +1,112 @@
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.cpic.xim</groupId>
<artifactId>admin-system</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>AdminSys Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.3.24</version>
</dependency>
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc8</artifactId>
<version>19.3.0.0.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>2.0.1.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>7.0.1.Final</version>
</dependency>
<!-- jackson -->
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.13.4</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.13.4</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-annotations -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.13.4</version>
</dependency>
<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.11.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.4</version>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.annotation/javax.annotation-api -->
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
<version>1.3.2</version>
</dependency>
</dependencies>
<build>
<finalName>admin-system</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.2</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M6</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
</plugins>
</build>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
</project>

View File

@@ -0,0 +1,210 @@
/*
* @Author: Kane
* @Date: 2022-12-15 14:08:28
* @LastEditors: Kane
* @LastEditTime: 2022-12-16 17:57:06
* @FilePath: \AdminSys\src\main\java\com\cpic\xim\myutils\account\CpicXIMStaffInfo.java
* @Description: 产险厦门分公司员工信息对象
*
* Copyright (c) ${2022} by Kane, All Rights Reserved.
*/
package com.cpic.xim.myutils.account;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.fasterxml.jackson.annotation.JsonProperty;
/*****************************************************
* 厦门太保员工信息
* 使用工厂函数创建。
*****************************************************/
public class CpicXIMStaffInfo
{
/*****************************************************
* 查询员工信息
* @param uidOrCode p13账号或p09账号
* @return 员工信息对象
*****************************************************/
public static CpicXIMStaffInfo getStaffInfo( String uidOrCode )
throws SQLException, ClassNotFoundException
{
CpicXIMStaffInfo info = null;
Connection connection = null;
PreparedStatement stmt = null;
ResultSet result = null;
String jdbcURL = "jdbc:oracle:thin:@10.39.0.86:1521:xmcx1";
String userName = "dataex";
String password = "cpic123456";
String querySQL = "SELECT ry.staff_code,ry.staff_name,ry.p13uid,"
+ " ry.department_code, bm.department_name,"
+ " ry.section_office_code,ks.section_office_name "
+ " FROM idst0.rydm_t ry,idst0.ks_t ks,idst0.bm_t bm "
+ " WHERE ry.account_status = 0 AND (ry.staff_code = ? OR ry.p13uid = ?) "
+ " and ry.section_office_code = ks.section_office_code "
+ " and ry.department_code = bm.department_code ";
try
{
Class.forName( "oracle.jdbc.driver.OracleDriver" );
connection = DriverManager.getConnection( jdbcURL, userName, password );
stmt = connection.prepareStatement( querySQL );
stmt.setString( 1, uidOrCode );
stmt.setString( 2, uidOrCode );
result = stmt.executeQuery();
if ( result.next())
{
info = new CpicXIMStaffInfo();
info.code = result.getString( 1 );
info.name = result.getString( 2 );
info.p13UID = result.getString( 3 );
info.departmentCode = result.getString( 4 );
info.departmentName = result.getString( 5 );
info.sectionOfficeCode = result.getString( 6 );
info.setctionOfficeName = result.getString( 7 );
}
}
finally
{
try
{
if ( result != null)
{
result.close();
}
}
catch ( Exception exception )
{
exception.printStackTrace();
}
try
{
if ( stmt != null)
{
stmt.close();
}
}
catch ( Exception exception )
{
exception.printStackTrace();
}
try
{
if ( connection != null)
{
connection.close();
}
}
catch ( Exception exception )
{
exception.printStackTrace();
}
}
return info;
}
private CpicXIMStaffInfo()
{}
public String getName()
{
return name;
}
public void setName( String name )
{
this.name = name;
}
public String getCode()
{
return code;
}
public void setCode( String code )
{
this.code = code;
}
public String getP13UID()
{
return p13UID;
}
public void setP13UID( String p13uid )
{
p13UID = p13uid;
}
public String getDepartmentCode()
{
return departmentCode;
}
public void setDepartmentCode( String departmentCode )
{
this.departmentCode = departmentCode;
}
public String getDepartmentName()
{
return departmentName;
}
public void setDepartmentName( String departmentName )
{
this.departmentName = departmentName;
}
public String getSectionOfficeCode()
{
return sectionOfficeCode;
}
public void setSectionOfficeCode( String sectionOfficeCode )
{
this.sectionOfficeCode = sectionOfficeCode;
}
public String getSetctionOfficeName()
{
return setctionOfficeName;
}
public void setSetctionOfficeName( String setctionOfficeName )
{
this.setctionOfficeName = setctionOfficeName;
}
@JsonProperty( "name")
private String name;
@JsonProperty( "code")
private String code;
@JsonProperty( "p13uid")
private String p13UID;
@JsonProperty( "department_code")
private String departmentCode;
@JsonProperty( "department_name")
private String departmentName;
@JsonProperty( "section_office_code")
private String sectionOfficeCode;
@JsonProperty( "section_office_name")
private String setctionOfficeName;
}

View File

@@ -0,0 +1,70 @@
/*
* @Author: Kane
* @Date: 2022-12-15 09:51:12
* @LastEditors: Kane
* @LastEditTime: 2022-12-16 15:29:34
* @FilePath: \AdminSys\src\main\java\com\cpic\xim\myutils\account\LdapAccountCheck.java
* @Description: P13验证相关方法。
*
* Copyright (c) ${2022} by Kane, All Rights Reserved.
*/
package com.cpic.xim.myutils.account;
import javax.naming.CommunicationException;
import javax.naming.Context;
import javax.naming.NamingException;
import javax.naming.directory.DirContext;
import javax.naming.directory.InitialDirContext;
import java.util.Hashtable;
public class LdapAccountCheck
{
private static String ldapServerUrl = "ldap://10.39.0.205:389";
/*****************************************************
* 对p13账号密码提交AD域服务器进行验证
* @param userName p13uid
* @param password p13密码
* @return 返回验证结果true为成功false失败。
*****************************************************/
public static boolean ldapLogin( String userName, String password )
{
boolean result = false;
if ( userName.endsWith( "@pr.intra.cpic.com.cn" ) == false)
{
userName += "@pr.intra.cpic.com.cn";
}
DirContext ctx = null;
Hashtable<String, String> ldap = new Hashtable<String, String>();
ldap.put( Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory" );
ldap.put( Context.SECURITY_AUTHENTICATION, "simple" );
ldap.put( Context.PROVIDER_URL, ldapServerUrl );
ldap.put( Context.SECURITY_PRINCIPAL, userName );
ldap.put( Context.SECURITY_CREDENTIALS, password );
try
{
ctx = new InitialDirContext( ldap );
ctx.close();
result = true;
}
catch ( CommunicationException error )
{
error.printStackTrace();
error.getMessage();
result = false;
}
catch ( NamingException error )
{
error.printStackTrace();
result = false;
}
return result;
}
}

View File

@@ -0,0 +1,20 @@
/*
* @Author: Kane
* @Date: 2022-12-16 08:50:47
* @LastEditors: Kane
* @LastEditTime: 2022-12-16 10:15:11
* @FilePath: \AdminSys\src\main\java\com\cpic\xim\myutils\config\json\AppConfig.java
* @Description: 应用的JSON格式配置文件对象
*
* Copyright (c) ${2022} by Kane, All Rights Reserved.
*/
package com.cpic.xim.myutils.config.json;
import com.fasterxml.jackson.annotation.JsonProperty;
@SuppressWarnings(
{ "unused"})
public class AppConfig
{
}

View File

@@ -0,0 +1,16 @@
/*
* @Author: Kane
* @Date: 2022-12-15 16:19:39
* @LastEditors: Kane
* @LastEditTime: 2022-12-15 16:19:41
* @FilePath: \AdminSys\src\main\java\com\cpicxim\myutils\config\json\ConfigLoader.java
* @Description:
*
* Copyright (c) ${2022} by Kane, All Rights Reserved.
*/
package com.cpic.xim.myutils.config.json;
public class ConfigLoader
{
}

View File

@@ -0,0 +1,24 @@
/*
* @Author: Kane
* @Date: 2022-12-16 08:55:32
* @LastEditors: Kane
* @LastEditTime: 2022-12-16 10:15:42
* @FilePath: \AdminSys\src\main\java\com\cpic\xim\myutils\config\json\DatabaseConfig.java
* @Description:
*
* Copyright (c) ${2022} by Kane, All Rights Reserved.
*/
package com.cpic.xim.myutils.config.json;
import com.fasterxml.jackson.annotation.JsonProperty;
@SuppressWarnings(
{ "unused"})
public class DatabaseConfig
{
private String dbType;
private String userName;
private String password;
private String dbName;
private String jdbcURL;
}

View File

@@ -0,0 +1,107 @@
/*
* @Author: Kane
* @Date: 2022-12-15 11:11:21
* @LastEditors: Kane
* @LastEditTime: 2022-12-16 22:02:03
* @FilePath: \AdminSys\src\main\java\com\cpic\xim\web\controllers\account\P13AccountCheckController.java
* @Description: P13账号验证用Controller。
*
* Copyright (c) ${2022} by Kane, All Rights Reserved.
*/
package com.cpic.xim.web.controllers.account;
import java.io.IOException;
import java.nio.channels.IllegalSelectorException;
import java.sql.SQLException;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.cpic.xim.myutils.account.CpicXIMStaffInfo;
import com.cpic.xim.myutils.account.LdapAccountCheck;
@Controller
@RequestMapping( path = "/account")
@SuppressWarnings( "unused")
public class P13AccountCheckController
{
/*****************************************************
*
*****************************************************/
@ResponseBody
@RequestMapping( path = "/p13_account_check.do")
public P13AccountCheckResult checkP13Account( @RequestBody P13AccountCheckRequest param,
HttpServletRequest request, HttpServletResponse response )
throws IllegalSelectorException, IOException
{
P13AccountCheckResult result = new P13AccountCheckResult();
ServletContext context = request.getServletContext();
// context.getAttribute( null );
CpicXIMStaffInfo staff = null;
try
{
// 先根据用户输入的09工号或p13账号获得p13账号确定账号存在
staff = CpicXIMStaffInfo.getStaffInfo( param.getP13Account() );
}
catch ( SQLException error )
{
staff = null;
result.setMessage( "人员工号或P13账号不存在" );
result.setSuccess( false );
}
catch ( ClassNotFoundException error )
{
staff = null;
result.setMessage( "加载Oracle驱动失败" );
result.setSuccess( false );
}
// 查询结果是null说明没有查询到结果工号或p13账号不存在返回结果。
if ( staff == null)
{
result.setMessage( "人员工号或P13账号不存在" );
result.setSuccess( false );
return result;
}
// 判断一下p13是否存在如果不存在就结束过程
if ( staff.getP13UID().isEmpty() == true)
{
result.setMessage( "P13账号不存在请联系信息技术部申请账号" );
result.setSuccess( false );
return result;
}
// 进行ldap验证
boolean ldapCheckResult =
LdapAccountCheck.ldapLogin( staff.getP13UID(), param.getPassword() );
if ( ldapCheckResult == true)
{
result.setSuccess( true );
result.setMessage( "验证成功!" );
result.setStaffInfo( staff );
// 将获取到的人员信息保存到会话中
HttpSession session = request.getSession();
session.setAttribute( "staff_info", staff );
} else
{
result.setSuccess( false );
result.setMessage( "验证失败,密码错误!" );
}
return result;
}
}

View File

@@ -0,0 +1,45 @@
/*
* @Author: Kane
* @Date: 2022-12-15 21:01:43
* @LastEditors: Kane
* @LastEditTime: 2022-12-15 21:03:21
* @FilePath: \AdminSys\src\main\java\com\cpic\xim\web\controllers\account\P13AccountCheckRequest.java
* @Description:
*
* Copyright (c) ${2022} by Kane, All Rights Reserved.
*/
package com.cpic.xim.web.controllers.account;
import com.fasterxml.jackson.annotation.*;
public class P13AccountCheckRequest
{
P13AccountCheckRequest()
{}
public String getP13Account()
{
return p13Account;
}
public void setP13Account( String p13Account )
{
this.p13Account = p13Account;
}
public String getPassword()
{
return password;
}
public void setPassword( String password )
{
this.password = password;
}
@JsonProperty( "p13account")
private String p13Account;
@JsonProperty( "password")
private String password;
}

View File

@@ -0,0 +1,91 @@
/*
* @Author: Kane
* @Date: 2022-12-15 11:17:26
* @LastEditors: Kane
* @LastEditTime: 2022-12-16 21:53:30
* @FilePath: \AdminSys\src\main\java\com\cpic\xim\web\controllers\account\P13AccountCheckResult.java
* @Description:
*
* Copyright (c) ${2022} by Kane, All Rights Reserved.
*/
package com.cpic.xim.web.controllers.account;
import com.cpic.xim.myutils.account.CpicXIMStaffInfo;
import com.fasterxml.jackson.annotation.*;;
public class P13AccountCheckResult
{
P13AccountCheckResult()
{}
public boolean isSuccess()
{
return success;
}
public void setSuccess( boolean success )
{
this.success = success;
}
public String getMessage()
{
return message;
}
public void setMessage( String message )
{
this.message = message;
}
public CpicXIMStaffInfo getStaffInfo()
{
return staffInfo;
}
public void setStaffInfo( CpicXIMStaffInfo staffInfo )
{
this.staffInfo = staffInfo;
}
@Override
public int hashCode()
{
final int prime = 31;
int result = 1;
result = prime * result + (success ? 1231 : 1237);
result = prime * result + ((message == null) ? 0 : message.hashCode());
return result;
}
@Override
public boolean equals( Object obj )
{
if ( this == obj)
return true;
if ( obj == null)
return false;
if ( getClass() != obj.getClass())
return false;
P13AccountCheckResult other = (P13AccountCheckResult) obj;
if ( success != other.success)
return false;
if ( message == null)
{
if ( other.message != null)
return false;
} else if ( !message.equals( other.message ))
return false;
return true;
}
@JsonProperty( "success")
private boolean success;
@JsonProperty( "message")
private String message;
@JsonProperty( "staff_info")
CpicXIMStaffInfo staffInfo;
}

View File

@@ -0,0 +1,43 @@
/*
* @Author: Kane
* @Date: 2022-12-15 10:44:20
* @LastEditors: Kane
* @LastEditTime: 2022-12-15 20:53:14
* @FilePath: \AdminSys\src\main\java\com\cpic\xim\web\filters\cros\CrosFilter.java
* @Description:
*
* Copyright (c) ${2022} by Kane, All Rights Reserved.
*/
package com.cpic.xim.web.filters.cros;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class CrosFilter implements Filter
{
@Override
public void doFilter( ServletRequest req, ServletResponse resp, FilterChain chain )
throws ServletException, IOException
{
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) resp;
String originHeader = request.getHeader( "Origin" );
response.setHeader( "Access-Control-Allow-Origin", originHeader );
response.setHeader( "Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE" );
response.setHeader( "Access-Control-Max-Age", "0" );
response.setHeader( "Access-Control-Allow-Headers",
"Origin, No-Cache, X-Requested-With, If-Modified-Since, Pragma, Last-Modified, Cache-Control, Expires, Content-Type, X-E4M-With,userId,token" );
response.setHeader( "Access-Control-Allow-Credentials", "true" );
response.setHeader( "XDomainRequestAllowed", "1" );
response.setHeader( "XDomainRequestAllowed", "1" );
chain.doFilter( request, response );
}
}

View File

@@ -0,0 +1,57 @@
/*
* @Author: Kane
* @Date: 2022-12-15 19:40:12
* @LastEditors: Kane
* @LastEditTime: 2022-12-16 10:14:54
* @FilePath: \AdminSys\src\main\java\com\cpic\xim\web\listener\ContextLoaderListener.java
* @Description:
*
* Copyright (c) ${2022} by Kane, All Rights Reserved.
*/
package com.cpic.xim.web.listener;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import com.fasterxml.jackson.databind.ObjectMapper;
@SuppressWarnings(
{ "unused"})
public class ContextLoaderListener implements ServletContextListener
{
private static final int BUFFER_SIZE = 1024;
private static final String CONFIG_FILE_CHARSET = "UTF-8";
@Override
public void contextInitialized( ServletContextEvent event )
{
ServletContext context = event.getServletContext();
String configFileLocation = context.getInitParameter( "config_file_location" );
// loadConfig( configFileLocation );
}
private void loadConfig( String configFileLocation )
{
ObjectMapper mapper = new ObjectMapper();
FileInputStream configFile = null;
InputStreamReader in = null;
StringBuilder json = null;
char[] buffer = new char[BUFFER_SIZE];
try
{
configFile = new FileInputStream( configFileLocation );
}
catch ( IOException exception )
{
}
}
}

View File

@@ -0,0 +1,25 @@
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:jdbc="http://www.springframework.org/schema/jdbc" xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:util="http://www.springframework.org/schema/util" xmlns:jpa="http://www.springframework.org/schema/data/jpa" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd
http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.2.xsd
http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.2.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa-1.3.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.2.xsd">
<context:component-scan base-package="com.cpic.xim" />
<mvc:annotation-driven />
<mvc:default-servlet-handler />
<!-- <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean> -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="UTF-8" />
<property name="maxUploadSize" value="-1" />
</bean>
</beans>

View File

@@ -0,0 +1,37 @@
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1">
<display-name>Archetype Created Web Application</display-name>
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<filter>
<filter-name>cros-filter</filter-name>
<filter-class>com.cpic.xim.web.filters.cros.CrosFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>cros-filter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
<!-- 配置文件路径参数 -->
<context-param>
<param-name>config_file_location</param-name>
<param-value>config.xml</param-value>
</context-param>
<listener>
<listener-class>com.cpic.xim.web.listener.ContextLoaderListener</listener-class>
</listener>
</web-app>

View File

@@ -0,0 +1,68 @@
html {
--backupground-color: #f7f7f7;
--btn-color-blue: #307dbe;
--btn-color-yellow: #f7b24d;
--btn-color-green: #5bad60;
--btn-color-red: #e56651;
--btn-font-color: #fff;
background-color: #eee;
}
#root,
#app {
height: 100vh;
width: 100vw;
position: fixed;
padding: 50px;
/* font-size: 0; */
overflow: auto;
}
#root,
#app * + * {
margin-top: 15px;
}
hr {
background-color: steelblue;
border: none;
height: 3px;
}
.test {
width: 110vw;
height: 100vh;
border: 1px solid red;
overflow: auto;
}
button {
padding: 5px 10px;
background-color: var(--btn-color-red);
color: var(--btn-font-color);
width: 10em;
border: none;
border-radius: 0.25em;
font-size: 1.5rem;
}
button + button {
margin-left: 0.5em;
}
button:active {
background-color: var(--btn-font-color);
color: var(--btn-color-red);
}
input {
border: none;
outline: solid 2px #e56651;
font-size: 2rem;
}
label {
display: inline-block;
font-size: 2rem;
margin-top: 15px;
}

View File

@@ -0,0 +1,25 @@
#app {
width: 100vw;
height: 100vh;
padding: 0px;
margin: 0px;
display: flex;
flex-direction: column;
}
#header {
flex-basis: 50px;
border: 1px solid red;
max-height: 50px;
}
#main {
flex-grow: 1;
border: 1px solid red;
}
#footer {
flex-basis: 100px;
max-height: 100px;
border: 1px solid red;
}

View File

@@ -9,10 +9,8 @@
*/ */
html { html {
line-height: 1.15; line-height: 1.15; /* 1 */
/* 1 */ -webkit-text-size-adjust: 100%; /* 2 */
-webkit-text-size-adjust: 100%;
/* 2 */
} }
/* Sections /* Sections
@@ -53,12 +51,9 @@ h1 {
*/ */
hr { hr {
box-sizing: content-box; box-sizing: content-box; /* 1 */
/* 1 */ height: 0; /* 1 */
height: 0; overflow: visible; /* 2 */
/* 1 */
overflow: visible;
/* 2 */
} }
/** /**
@@ -67,10 +62,8 @@ hr {
*/ */
pre { pre {
font-family: monospace, monospace; font-family: monospace, monospace; /* 1 */
/* 1 */ font-size: 1em; /* 2 */
font-size: 1em;
/* 2 */
} }
/* Text-level semantics /* Text-level semantics
@@ -90,12 +83,9 @@ a {
*/ */
abbr[title] { abbr[title] {
border-bottom: none; border-bottom: none; /* 1 */
/* 1 */ text-decoration: underline; /* 2 */
text-decoration: underline; text-decoration: underline dotted; /* 2 */
/* 2 */
text-decoration: underline dotted;
/* 2 */
} }
/** /**
@@ -115,10 +105,8 @@ strong {
code, code,
kbd, kbd,
samp { samp {
font-family: monospace, monospace; font-family: monospace, monospace; /* 1 */
/* 1 */ font-size: 1em; /* 2 */
font-size: 1em;
/* 2 */
} }
/** /**
@@ -174,14 +162,10 @@ input,
optgroup, optgroup,
select, select,
textarea { textarea {
font-family: inherit; font-family: inherit; /* 1 */
/* 1 */ font-size: 100%; /* 1 */
font-size: 100%; line-height: 1.15; /* 1 */
/* 1 */ margin: 0; /* 2 */
line-height: 1.15;
/* 1 */
margin: 0;
/* 2 */
} }
/** /**
@@ -190,8 +174,7 @@ textarea {
*/ */
button, button,
input { input { /* 1 */
/* 1 */
overflow: visible; overflow: visible;
} }
@@ -201,8 +184,7 @@ input {
*/ */
button, button,
select { select { /* 1 */
/* 1 */
text-transform: none; text-transform: none;
} }
@@ -256,18 +238,12 @@ fieldset {
*/ */
legend { legend {
box-sizing: border-box; box-sizing: border-box; /* 1 */
/* 1 */ color: inherit; /* 2 */
color: inherit; display: table; /* 1 */
/* 2 */ max-width: 100%; /* 1 */
display: table; padding: 0; /* 3 */
/* 1 */ white-space: normal; /* 1 */
max-width: 100%;
/* 1 */
padding: 0;
/* 3 */
white-space: normal;
/* 1 */
} }
/** /**
@@ -293,10 +269,8 @@ textarea {
[type="checkbox"], [type="checkbox"],
[type="radio"] { [type="radio"] {
box-sizing: border-box; box-sizing: border-box; /* 1 */
/* 1 */ padding: 0; /* 2 */
padding: 0;
/* 2 */
} }
/** /**
@@ -314,10 +288,8 @@ textarea {
*/ */
[type="search"] { [type="search"] {
-webkit-appearance: textfield; -webkit-appearance: textfield; /* 1 */
/* 1 */ outline-offset: -2px; /* 2 */
outline-offset: -2px;
/* 2 */
} }
/** /**
@@ -334,10 +306,8 @@ textarea {
*/ */
::-webkit-file-upload-button { ::-webkit-file-upload-button {
-webkit-appearance: button; -webkit-appearance: button; /* 1 */
/* 1 */ font: inherit; /* 2 */
font: inherit;
/* 2 */
} }
/* Interactive /* Interactive

View File

@@ -0,0 +1,11 @@
.panel {
display: flex;
justify-content: center;
align-items: center;
}
.main_form {
height: 50vh;
width: 50vw;
border: 1px solid red;
}

View File

@@ -0,0 +1,17 @@
a,
p {
padding: 5rem;
border: 1px solid red;
line-height: 2rem;
margin: 2em;
}
.warp_test {
width: 5rem;
border: 1px solid red;
}
ol,
li {
background-color: cornflowerblue;
}

View File

@@ -0,0 +1,23 @@
<%-- /*
* @Author: Kane
* @Date: 2022-10-21 00:14:43
* @LastEditors: Kane
* @LastEditTime: 2022-10-21 00:16:48
* @FilePath: \car_dealer\src\main\webapp\test.jsp
* @Description:
*
* Copyright (c) ${2022} by Kane, All Rights Reserved.
*/ --%>
<%@ page contentType="text/html;charset=UTF-8" %>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
</body>
</html>

View File

@@ -0,0 +1,5 @@
> 1%
last 2 versions
not dead
not ie 11
safari >= 7

View File

@@ -0,0 +1,27 @@
/*
* @Author: Kane
* @Date: 2022-12-14 15:12:46
* @LastEditors: Kane
* @LastEditTime: 2022-12-14 15:20:20
* @FilePath: \admin_system\.eslintrc.js
* @Description:
*
* Copyright (c) ${2022} by Kane, All Rights Reserved.
*/
module.exports = {
root: true,
env: {
node: true
},
'extends': [
'plugin:vue/vue3-essential',
'eslint:recommended'
],
parserOptions: {
parser: '@babel/eslint-parser'
},
rules: {
'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off'
}
}

View File

@@ -1,4 +1,4 @@
# hello-cli # admin_system
## Project setup ## Project setup
``` ```

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,34 @@
{
"name": "admin_system",
"version": "0.1.0",
"private": true,
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"lint": "vue-cli-service lint"
},
"dependencies": {
"axios": "^1.2.1",
"core-js": "^3.8.3",
"element-plus": "^2.2.26",
"sass": "^1.56.2",
"sass-loader": "^13.2.0",
"scss": "^0.2.4",
"scss-loader": "^0.0.1",
"vue": "^3.2.13",
"vue-router": "^4.0.3",
"vuex": "^4.0.0"
},
"devDependencies": {
"@babel/core": "^7.12.16",
"@babel/eslint-parser": "^7.12.16",
"@vue/cli-plugin-babel": "~5.0.0",
"@vue/cli-plugin-eslint": "~5.0.0",
"@vue/cli-plugin-router": "~5.0.0",
"@vue/cli-plugin-vuex": "~5.0.0",
"@vue/cli-service": "~5.0.0",
"eslint": "^7.32.0",
"eslint-plugin-vue": "^8.0.3",
"vue-cli-plugin-element-plus": "~0.0.13"
}
}

View File

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

View File

@@ -0,0 +1,27 @@
<!DOCTYPE html>
<html lang="">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width,initial-scale=1.0" />
<link rel="icon" href="<%= BASE_URL %>favicon.ico" />
<title><%= htmlWebpackPlugin.options.title %></title>
</head>
<body>
<noscript>
<strong
>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't
work properly without JavaScript enabled. Please enable it to
continue.</strong
>
</noscript>
<div id="app" v-cloak></div>
<!-- built files will be auto injected -->
</body>
<style>
.v-cloak {
display: none;
}
</style>
</html>

View File

@@ -0,0 +1,27 @@
<!--
* @Author: Kane
* @Date: 2022-12-14 15:12:46
* @LastEditors: Kane
* @LastEditTime: 2022-12-14 17:03:58
* @FilePath: \admin_system\src\App.vue
* @Description:
*
* Copyright (c) ${2022} by Kane, All Rights Reserved.
-->
<template>
<router-view></router-view>
</template>
<script>
// import HelloWorld from "./components/HelloWorld.vue";
export default {
name: "App",
components: {
// HelloWorld,
},
};
</script>
<style>
</style>

View File

Before

Width:  |  Height:  |  Size: 6.7 KiB

After

Width:  |  Height:  |  Size: 6.7 KiB

View File

@@ -2,8 +2,8 @@
* @Author: Kane * @Author: Kane
* @Date: 2022-11-12 23:22:59 * @Date: 2022-11-12 23:22:59
* @LastEditors: Kane * @LastEditors: Kane
* @LastEditTime: 2022-11-16 15:26:04 * @LastEditTime: 2022-12-05 01:07:18
* @FilePath: \car_dealer\css\colors.css * @FilePath: \hello-cli\src\assets\css\colors.css
* @Description: * @Description:
* *
* Copyright (c) ${2022} by Kane, All Rights Reserved. * Copyright (c) ${2022} by Kane, All Rights Reserved.
@@ -18,4 +18,7 @@ html {
--btn-font-color: #fff; --btn-font-color: #fff;
--input-focus-color: #e56651; --input-focus-color: #e56651;
/* 标题栏背景色 */
--banner-background-color: #1d74b2;
} }

View File

@@ -0,0 +1,17 @@
/*
* @Author: Kane
* @Date: 2022-12-05 00:07:49
* @LastEditors: Kane
* @LastEditTime: 2022-12-05 00:48:04
* @FilePath: \hello-cli\src\assets\css\global.css
* @Description:
*
* Copyright (c) ${2022} by Kane, All Rights Reserved.
*/
html,
body,
#app {
/* padding: 0px; */
margin: 0px;
overflow: hidden;
}

View File

@@ -0,0 +1,25 @@
/*
* @Author: Kane
* @Date: 2022-12-14 15:12:46
* @LastEditors: Kane
* @LastEditTime: 2022-12-22 21:13:59
* @FilePath: \admin_system\src\main.js
* @Description:
*
* Copyright (c) ${2022} by Kane, All Rights Reserved.
*/
import { createApp } from 'vue';
import App from './App.vue';
import router from './router';
import store from './store';
import("./css/root.css");
import("./css/normalize.css");
import("element-plus/dist/index.css");
import ElementPlus from "element-plus";
const app = createApp(App);
app.use(ElementPlus);
app.use(store).use(router).mount('#app');

View File

@@ -0,0 +1,31 @@
/*
* @Author: Kane
* @Date: 2022-12-14 15:12:46
* @LastEditors: Kane
* @LastEditTime: 2022-12-14 16:19:17
* @FilePath: \admin_system\src\router\index.js
* @Description:
*
* Copyright (c) ${2022} by Kane, All Rights Reserved.
*/
import { createRouter, createWebHashHistory } from 'vue-router'
const routes = [
{
path: "/",
name: "Home",
redirect: "Login",
},
{
path: "/login",
name: "Login",
component: () => import("../views/account/Login.vue"),
}
];
const router = createRouter({
history: createWebHashHistory(),
routes
})
export default router

View File

@@ -0,0 +1,14 @@
import { createStore } from 'vuex'
export default createStore({
state: {
},
getters: {
},
mutations: {
},
actions: {
},
modules: {
}
})

View File

@@ -0,0 +1,29 @@
/*
* @Author: Kane
* @Date: 2022-12-22 17:16:53
* @LastEditors: Kane
* @LastEditTime: 2022-12-22 20:48:03
* @FilePath: \admin_system\src\utils\api\common.js
* @Description: 通用请求
*
* Copyright (c) ${2022} by Kane, All Rights Reserved.
*/
//import axios from "axios";
import instance from "@utils/request";
const URL_GET_VALIDATE_CODE = "";
/**
* 获取验证码
*/
export function GetValidate(data)
{
return instance.request(
{
method: "post",
url: URL_GET_VALIDATE_CODE,
data,
}
);
}

View File

@@ -0,0 +1,24 @@
/*
* @Author: Kane
* @Date: 2022-12-22 09:10:20
* @LastEditors: Kane
* @LastEditTime: 2022-12-22 20:54:10
* @FilePath: \admin_system\src\utils\api\info\account.js
* @Description:
*
* Copyright (c) ${2022} by Kane, All Rights Reserved.
*/
import instance from "@/utils/api/request";
const URL_LOGIN = "http://localhost:8000/admin-sys/";
export function Login(userInfo)
{
return instance.request(
{
method: "post",
url: URL_LOGIN,
userInfo,
}
);
}

View File

@@ -0,0 +1,43 @@
/*
* @Author: Kane
* @Date: 2022-12-22 17:18:10
* @LastEditors: Kane
* @LastEditTime: 2022-12-22 20:47:10
* @FilePath: \admin_system\src\utils\api\request.js
* @Description:
*
* Copyright (c) ${2022} by Kane, All Rights Reserved.
*/
import axios from "axios";
const service = axios.create(
{
baseURL: "",
timeout: 5000,
}
);
//加上请求拦截器
service.interceptors.request.use(
function (config)
{
return config;
},
function (error)
{
return Promise.reject(error);
}
);
service.interceptors.response.use(
function (response)
{
return response;
},
function (error)
{
return Promise.reject(error);
}
);
export default service;

View File

@@ -0,0 +1,146 @@
<!--
* @Author: Kane
* @Date: 2022-12-14 15:23:54
* @LastEditors: Kane
* @LastEditTime: 2022-12-21 11:14:57
* @FilePath: \admin_system\src\views\account\Login.vue
* @Description:
*
* Copyright (c) ${2022} by Kane, All Rights Reserved.
-->
<template>
<div id="login">
<div class="form-warp">
<ul class="menu-tab">
<li :class="{ 'current': current_menu === item.type }" @click="onToggleMenu(item.type)" v-for="item in tab_menu"
:key="item.type">{{ item.label
}}
</li>
</ul>
<el-form ref="form" :model="form">
<el-form-item>
<label class="form-label">用户名</label>
<el-input type="text" v-model.lazy.trim="loginForm.username"></el-input>
</el-form-item>
<el-form-item>
<label class="form-label">密码</label>
<el-input type="password" v-model.lazy.trim="loginForm.password"></el-input>
</el-form-item>
<el-form-item v-show="current_menu === tab_menu[1].type">
<label class="form-label">确认密码</label>
<el-input type="password" v-model.lazy.trim="loginForm.confirm_password"></el-input>
</el-form-item>
<el-form-item>
<label class="form-label">验证码</label>
<el-row :gutter="10">
<el-col :span="14">
<el-input type="text"></el-input>
</el-col>
<el-col :span="10">
<el-button type="danger" class="el-button-block" @click="getValidateCode()">获取验证码</el-button>
</el-col>
</el-row>
</el-form-item>
<el-form-item>
<el-button type="primary" class="el-button-block">立即创建</el-button>
</el-form-item>
</el-form>
</div>
</div>
</template>
<script>
// import { ref } from "vue";
export default {
name: "loginPage",
data() {
return {
loginForm: {
username: "",
password: "",
confirm_password: "",
},
tab_menu: [
{ type: "login", label: "登录" },
{ type: "regiester", label: "注册" },
],
current_menu: "",
}
},
methods: {
onToggleMenu(type) {
this.current_menu = type;
},
getValidateCode() {
console.log(this.$axios);
}
},
created() {
//初始化菜单选项
this.current_menu = this.tab_menu[0].type;
}
};
</script>
<style scoped>
#login {
height: 100vh;
background-color: #344a5f;
padding-top: 50px;
}
.form-warp {
width: 320px;
padding: 30px;
margin: auto;
background-color: #ffffff10;
border-radius: 5px;
}
/*.menu-tab {
text-align: center;
margin-bottom: 15px;
li {
display: inline-block;
padding: 10px 24px;
margin: 0 10px;
color: #fff;
font-size: 16px;
border-radius: 5px;
cursor: pointer;
&.current {
background-color: rgba(0, 0, 0, 0.1);
}
}
}*/
.menu-tab {
text-align: center;
margin-bottom: 15px;
}
.menu-tab li {
display: inline-block;
padding: 10px 24px;
margin: 0 10px;
color: #fff;
font-size: 14px;
border-radius: 5px;
cursor: pointer;
}
.menu-tab .current {
background-color: rgba(0, 0, 0, 0.1);
}
.form-label {
display: block;
color: #fff;
font-size: 14px;
}
.el-button-block {
width: 100%;
}
</style>

View File

@@ -0,0 +1,21 @@
/*
* @Author: Kane
* @Date: 2022-12-17 11:08:18
* @LastEditors: Kane
* @LastEditTime: 2022-12-22 23:47:51
* @FilePath: \admin_system\vue.config.js
* @Description:
*
* Copyright (c) ${2022} by Kane, All Rights Reserved.
*/
const { defineConfig } = require('@vue/cli-service');
module.exports = defineConfig(
{
transpileDependencies: true,
devServer: {
open: true,
host: "localhost",
port: 8000,
}
}
);

View File

@@ -0,0 +1,3 @@
> 1%
last 2 versions
not dead

View File

@@ -0,0 +1,3 @@
VUE_APP_API = '/devApi'
VUE_APP_DEV_TARGET = 'http://v3.web-jshtml.cn/api'
# VUE_API_DEV_TARGET = 'http://v3.com/api'

View File

@@ -0,0 +1 @@
VUE_APP_API = 'http://v3.web-jshtml.cn/api'

View File

@@ -0,0 +1 @@
VUE_APP_API = 'http://v3.web-jshtml.cn/api'

View File

@@ -0,0 +1,14 @@
module.exports = {
root: true,
env: {
node: true,
},
extends: ["plugin:vue/vue3-essential", "eslint:recommended", "@vue/prettier"],
parserOptions: {
parser: "babel-eslint",
},
rules: {
"no-console": process.env.NODE_ENV === "production" ? "warn" : "off",
"no-debugger": process.env.NODE_ENV === "production" ? "warn" : "off",
},
};

View File

@@ -0,0 +1,22 @@
.DS_Store
node_modules
# local env files
.env.local
.env.*.local
# Log files
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?

View File

@@ -0,0 +1,24 @@
# vue3-element-plus-admin
## Project setup
```
npm install
```
### Compiles and hot-reloads for development
```
npm run serve
```
### Compiles and minifies for production
```
npm run build
```
### Lints and fixes files
```
npm run lint
```
### Customize configuration
See [Configuration Reference](https://cli.vuejs.org/config/).

View File

@@ -0,0 +1,3 @@
module.exports = {
presets: ["@vue/cli-plugin-babel/preset"],
};

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,44 @@
{
"name": "vue3-element-plus-admin",
"version": "0.1.0",
"private": true,
"scripts": {
"serve": "vue-cli-service serve",
"dev": "vue-cli-service serve --mode test",
"build": "vue-cli-service build",
"lint": "vue-cli-service lint",
"build:test": "vue-cli-service build --mode test"
},
"dependencies": {
"axios": "^0.21.0",
"core-js": "^3.6.5",
"element-plus": "^2.2.26",
"js-cookie": "^2.2.1",
"js-sha1": "^0.6.0",
"vue": "^3.2.27",
"vue-router": "^4.1.6",
"vuex": "^4.0.2",
"wangeditor": "^4.7.12"
},
"devDependencies": {
"@vue/cli-plugin-babel": "~4.5.0",
"@vue/cli-plugin-eslint": "~4.5.0",
"@vue/cli-plugin-router": "~4.5.0",
"@vue/cli-plugin-vuex": "~4.5.0",
"@vue/cli-service": "~4.5.0",
"@vue/compiler-sfc": "^3.0.0",
"@vue/eslint-config-prettier": "^6.0.0",
"babel-eslint": "^10.1.0",
"babel-plugin-component": "^1.1.1",
"eslint": "^6.7.2",
"eslint-plugin-prettier": "^3.3.1",
"eslint-plugin-vue": "^7.0.0",
"prettier": "^2.2.1",
"sass": "^1.26.5",
"sass-loader": "^8.0.2",
"svg-sprite-loader": "^5.2.1",
"unplugin-auto-import": "^0.5.11",
"unplugin-element-plus": "^0.2.0",
"unplugin-vue-components": "^0.17.17"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

View File

@@ -0,0 +1,25 @@
<!DOCTYPE html>
<html lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<!-- vue3最新版本 -->
<script src="https://unpkg.com/vue@next"></script>
<!-- 引入Element Plus UI 组件库 -->
<link rel="stylesheet" href="//unpkg.com/element-plus/dist/index.css" />
<script src="//unpkg.com/element-plus"></script>
<!-- 语言包 -->
<script src="https://unpkg.com/browse/element-plus@1.2.0-beta.4/es/locale/lang/zh-cn.mjs"></script>
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
<title><%= htmlWebpackPlugin.options.title %></title>
</head>
<body>
<noscript>
<strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
</noscript>
<div id="app"></div>
<!-- built files will be auto injected -->
</body>
</html>

View File

@@ -0,0 +1,21 @@
<template>
<el-config-provider :locale="locale">
<router-view />
</el-config-provider>
</template>
<script>
import zhCn from 'element-plus/lib/locale/lang/zh-cn'
export default {
name: "App",
setup() {
// 切换为中文
let locale = zhCn
return {
locale
}
}
}
</script>
<style lang="scss">
#app{}
</style>

View File

@@ -0,0 +1,37 @@
import instance from "@/utils/request"; // 引入拦截器
/** 注册 */
export function Register(data = {}){
return instance.request({
method: "post",
url: "/register/",
data
})
}
/** 登录 */
export function Login(data = {}){
return instance.request({
method: "post",
url: "/login/",
data
})
}
/** 登出 */
export function Logout(data = {}){
return instance.request({
method: "post",
url: "/logout/",
data
})
}
/** 路由权限 */
export function GetPermission(data = {}){
return instance.request({
method: "post",
url: "/permission",
data
})
}

View File

@@ -0,0 +1,72 @@
import instance from "@/utils/request"; // 引入拦截器
/** 获取验证码 */
export function GetCode(data = {}){
return instance.request({
method: "post",
url: "/getCode/",
data
})
}
/** http 状态码异常演示接口 */
export function ErrorHttp(data = {}){
return instance.request({
method: "post",
url: "/error/",
data
})
}
/**
* BasisTable组件公共接口
* @param { String } method 请求类型
* @param { String } url 请求地址
* @param { Object } data 请求参数
*/
export function TableData(params = {}){
return instance.request({
method: params.method,
url: params.url,
data: params.data
})
}
/**
*
* @param { method } String 请求类型
* @param { url } String 请求地址
* @param { data } Object 请求参数
* @description BasisTable组件公共接口
*/
export function SwitchStatus(params = {}){
return instance.request({
method: params.method,
url: params.url,
data: params.data
})
}
/**
*
* @param { method } String 请求类型
* @param { url } String 请求地址
* @param { data } Object 请求参数
* @description BasisTable组件公共接口
*/
export function CommonApi(params = {}){
return instance.request({
method: params.method,
url: params.url,
data: params.data
})
}
/** 文件上传 */
export function UploadFile(data = {}){
return instance.request({
method: "post",
url: "/upload",
data
})
}

View File

@@ -0,0 +1,102 @@
import instance from "@/utils/request"; // 引入拦截器
/** 一级分类添加 */
export function firstCategoryAdd(data = {}){
return instance.request({
method: "post",
url: "/news/addFirstCategory/",
data
})
}
/** 获取分类 */
export function GetCategory(data = {}){
return instance.request({
method: "post",
url: "/news/getCategoryAll/",
data
})
}
/** 子级分类添加 */
export function ChildCategoryAdd(data = {}){
return instance.request({
method: "post",
url: "/news/addChildrenCategory/",
data
})
}
/** 分类编辑 */
export function CategoryEdit(data = {}){
return instance.request({
method: "post",
url: "/news/editCategory/",
data
})
}
/** 分类删除 */
export function CategoryDel(data = {}){
return instance.request({
method: "post",
url: "/news/deleteCategory/",
data
})
}
/** 添加信息 */
export function InfoCreate(data = {}){
return instance.request({
method: "post",
url: "/news/add/",
data
})
}
/** 获取列表 */
export function GetTableList(data = {}){
return instance.request({
method: "post",
url: "/news/getList/",
data
})
}
/** 发布状态 */
export function Status(data = {}){
return instance.request({
method: "post",
url: "/news/status/",
data
})
}
/** 删除 */
export function Delete(data = {}){
return instance.request({
method: "post",
url: "/news/delete/",
data
})
}
/** 获取详情 */
export function GetDetailed(data = {}){
return instance.request({
method: "get",
url: "/news/detailed/",
params: data
})
}
/** 信息修改 */
export function InfoEdit(data = {}){
return instance.request({
method: "post",
url: "/news/editInfo/",
data
})
}

View File

@@ -0,0 +1,46 @@
import instance from "@/utils/request"; // 引入拦截器
/** 创建菜单 */
export function MenuCreate(data = {}){
return instance.request({
method: "post",
url: "/menu/create",
data
})
}
/** 获取菜单详情 */
export function MenuDetailed(data = {}){
return instance.request({
method: "post",
url: "/menu/detailed",
data
})
}
/** 菜单编辑 */
export function MenuUpdate(data = {}){
return instance.request({
method: "post",
url: "/menu/update",
data
})
}
/** 菜单列表 */
export function MenuList(data = {}){
return instance.request({
method: "post",
url: "/menu/listsTree",
data
})
}
/** 菜单列表树状数据 */
export function MenuListTree(data = {}){
return instance.request({
method: "post",
url: "/menu/listsTree",
data
})
}

View File

@@ -0,0 +1,75 @@
const apiUrl = {
// 信息模块
info: { // 模块键名
list: { // 列表数据接口
url: "/news/getList/",
method: "post"
},
info_status: {
url: "/news/status/",
method: "post"
},
delete: {
method: "post",
url: "/news/delete/"
}
},
// 级联选择器模块
cascader: {
category: {
url: "/news/getCategoryAll/",
method: "post"
}
},
// 菜单模块
menu: {
list: {
url: "/menu/lists",
method: "post"
},
delete: {
method: "post",
url: "/menu/remove"
},
hidden_status: {
url: "/menu/statusHidden",
method: "post"
},
disabled_status: {
url: "/menu/statusDisabled",
method: "post"
}
},
// 角色模块
role: {
status: {
url: "/role/status",
method: "post"
},
delete: {
url: "/role/delete",
method: "post"
},
list: {
url: "/role/lists",
method: "post"
}
},
// 用户模块
user: {
status: {
url: "/user/status",
method: "post"
},
delete: {
method: "post",
url: "/user/remove"
},
list: {
url: "/user/lists",
method: "post"
}
}
}
export default apiUrl;

View File

@@ -0,0 +1,38 @@
import instance from "@/utils/request"; // 引入拦截器
/** 创建角色 */
export function RoleCreate(data = {}){
return instance.request({
method: "post",
url: "/role/create",
data
})
}
/** 角色详情 */
export function RoleDetailed(data = {}){
return instance.request({
method: "post",
url: "/role/detailed",
data
})
}
/** 角色修改 */
export function RoleUpdate(data = {}){
return instance.request({
method: "post",
url: "/role/update",
data
})
}
/** 角色列表 */
export function RoleListAll(data = {}){
return instance.request({
method: "post",
url: "/role/all",
data
})
}

Some files were not shown because too many files have changed in this diff Show More