Compare commits
	
		
			77 Commits
		
	
	
		
			main
			...
			feature-co
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 64b50ab534 | |||
| 8d1f4e5a1c | |||
| a6f2ec63ef | |||
| f5aa4c956e | |||
| 4359aa959b | |||
| 0162afc8c9 | |||
| 36037fcb8c | |||
| 9d05842069 | |||
| a7f05c10c3 | |||
| f7da18f679 | |||
| d997be1cb2 | |||
| d5ba739ce5 | |||
| 5f829dba7a | |||
| c568da745f | |||
| 1f988323d4 | |||
| c1ba8fee05 | |||
| 1bed3b3bc4 | |||
| 0067999831 | |||
| 8786ca207c | |||
| bc24e4f041 | |||
| aaf25460a4 | |||
| 905d22abc6 | |||
| 7d7b9523c6 | |||
| 8d805b007a | |||
| e602271ebe | |||
| 3ab267754c | |||
| 8d72241618 | |||
| dcab19a765 | |||
| d995251d7b | |||
| 4ecbc2e630 | |||
| 9a82496769 | |||
| 327ffcc235 | |||
| c623db8a72 | |||
| aa20111600 | |||
| 922fb4ca4a | |||
| 3eadf4a27a | |||
| b4029677cf | |||
| 82edc407db | |||
| 0b79a94bda | |||
| c3ebdbf7c9 | |||
| 75c0ed90ca | |||
| 1064fce554 | |||
| 3b1fbf611e | |||
| 1c25e18d0f | |||
| 47c5327c54 | |||
| c96aad3b0d | |||
| 7e3af7a1e8 | |||
| 1eae5068fe | |||
| e16afd1696 | |||
| b0b7fa69f6 | |||
| 787f7dc5f8 | |||
| a8c505a63d | |||
| 6b0879721f | |||
| 3279363409 | |||
| 53093875eb | |||
| 3b648e5640 | |||
| e6b25bf487 | |||
| 0c48486913 | |||
| ef4874962e | |||
| 8219016b9d | |||
| e091e2aa32 | |||
| 234a3d9861 | |||
| 5f174b312c | |||
| 5dcff64bf5 | |||
| 5c72437e2d | |||
| a39c174cf4 | |||
| c469cb139f | |||
| 4e189eb2ab | |||
| 4cb90a5925 | |||
| 7c9e1a682b | |||
| e5f066dc3b | |||
| 21535408fe | |||
| 9e189ae8ba | |||
| 0317c4d607 | |||
| 19949865ab | |||
| ca8b49448a | |||
| ace0699187 | 
							
								
								
									
										5
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						| @@ -49,3 +49,8 @@ test/ | |||||||
| hs_err_pid* | hs_err_pid* | ||||||
| replay_pid* | replay_pid* | ||||||
|  |  | ||||||
|  | node_modules/ | ||||||
|  | node_modules | ||||||
|  |  | ||||||
|  | target/ | ||||||
|  | target | ||||||
|   | |||||||
							
								
								
									
										19767
									
								
								cli/hello-cli/package-lock.json
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										28
									
								
								cli/hello-cli/public/css/page.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,28 @@ | |||||||
|  | /* | ||||||
|  |  * @Author: Kane | ||||||
|  |  * @Date: 2022-11-12 23:32:20 | ||||||
|  |  * @LastEditors: Kane | ||||||
|  |  * @LastEditTime: 2022-12-05 00:09:46 | ||||||
|  |  * @FilePath: \hello-cli\public\css\page.css | ||||||
|  |  * @Description:  | ||||||
|  |  *  | ||||||
|  |  * Copyright (c) ${2022} by Kane, All Rights Reserved.  | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | body { | ||||||
|  |     background-color: #f4f5f7; | ||||||
|  |     padding: 0px; | ||||||
|  |     margin: 0px; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | /* .content { | ||||||
|  |     display: flex; | ||||||
|  |     flex-direction: column; | ||||||
|  |     align-items: center; | ||||||
|  |     justify-content: center; | ||||||
|  |     background-color: #fff; | ||||||
|  |     width: 25rem; | ||||||
|  |     margin: 0px auto; | ||||||
|  |     border-radius: 5px; | ||||||
|  |     padding: 50px; | ||||||
|  | } */ | ||||||
| Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 4.2 KiB | 
							
								
								
									
										40
									
								
								cli/hello-cli/public/index.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,40 @@ | |||||||
|  | <!-- | ||||||
|  |  * @Author: Kane | ||||||
|  |  * @Date: 2022-11-22 17:50:49 | ||||||
|  |  * @LastEditors: Kane | ||||||
|  |  * @LastEditTime: 2022-12-05 00:19:08 | ||||||
|  |  * @FilePath: \hello-cli\public\index.html | ||||||
|  |  * @Description:  | ||||||
|  |  *  | ||||||
|  |  * Copyright (c) ${2022} by Kane, All Rights Reserved.  | ||||||
|  | --> | ||||||
|  | <!DOCTYPE html> | ||||||
|  | <html lang="zh-cn"> | ||||||
|  |     <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> | ||||||
|  |         <!-- <link rel="stylesheet" href="<%= BASE_URL %>css/root.css" /> --> | ||||||
|  |         <!-- <link rel="stylesheet" href="<%= BASE_URL %>css/normalize.css" /> --> | ||||||
|  |         <!-- <link rel="stylesheet" href="<%= BASE_URL %>css/page.css" /> --> | ||||||
|  |     </head> | ||||||
|  |     <style> | ||||||
|  |         .v-cloak { | ||||||
|  |             display: none; | ||||||
|  |         } | ||||||
|  |     </style> | ||||||
|  |  | ||||||
|  |     <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> | ||||||
|  | </html> | ||||||
							
								
								
									
										84
									
								
								cli/hello-cli/src/App.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,84 @@ | |||||||
|  | <!-- | ||||||
|  |  * @Author: Kane | ||||||
|  |  * @Date: 2022-11-22 17:50:49 | ||||||
|  |  * @LastEditors: Kane | ||||||
|  |  * @LastEditTime: 2022-12-14 10:21:42 | ||||||
|  |  * @FilePath: \hello-cli\src\App.vue | ||||||
|  |  * @Description:  | ||||||
|  |  *  | ||||||
|  |  * Copyright (c) ${2022} by Kane, All Rights Reserved.  | ||||||
|  | --> | ||||||
|  | <template> | ||||||
|  |   <div class="content"> | ||||||
|  |     <div class="banner"> | ||||||
|  |       <AppBanner>标题</AppBanner> | ||||||
|  |     </div> | ||||||
|  |     <div class="container"> | ||||||
|  |       <div class="nav"></div> | ||||||
|  |       <div class="view"></div> | ||||||
|  |     </div> | ||||||
|  |   </div> | ||||||
|  | </template> | ||||||
|  |  | ||||||
|  | <script> | ||||||
|  | import AppBanner from "./components/AppBanner.vue"; | ||||||
|  | // import { reactive } from "vue"; | ||||||
|  |  | ||||||
|  | export default { | ||||||
|  |   name: "App", | ||||||
|  |   components: { AppBanner }, | ||||||
|  |   methods: {}, | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | // const data = reactive({ | ||||||
|  | //   title: "标题", | ||||||
|  | // }); | ||||||
|  |  | ||||||
|  | // return { data }; | ||||||
|  | </script> | ||||||
|  |  | ||||||
|  | <style scoped> | ||||||
|  | @import url("assets/css/colors.css"); | ||||||
|  |  | ||||||
|  | #app { | ||||||
|  |   background-color: #f4f5f7; | ||||||
|  | } | ||||||
|  | .content { | ||||||
|  |   background-color: #fff; | ||||||
|  |   height: 100vh; | ||||||
|  |   width: 100vw; | ||||||
|  |   min-width: 1280px; | ||||||
|  |   padding: 0px; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .banner { | ||||||
|  |   height: 50px; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .container { | ||||||
|  |   display: flex; | ||||||
|  |   /* border: 1px solid red; */ | ||||||
|  |   height: calc(100% - 50px); | ||||||
|  |   padding: 0px; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .nav { | ||||||
|  |   flex: 0 0 200px; | ||||||
|  |   background-color: bisque; | ||||||
|  |   padding: 0px; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .view { | ||||||
|  |   flex-grow: 1; | ||||||
|  |   flex-shrink: 1; | ||||||
|  |   overflow-y: auto; | ||||||
|  |   overflow-x: auto; | ||||||
|  |   background-color: antiquewhite; | ||||||
|  |   /* min-width: 800px; */ | ||||||
|  | } | ||||||
|  |  | ||||||
|  | hr { | ||||||
|  |   width: 100%; | ||||||
|  |   border: 1px solid 1px; | ||||||
|  | } | ||||||
|  | </style> | ||||||
							
								
								
									
										24
									
								
								cli/hello-cli/src/assets/css/colors.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,24 @@ | |||||||
|  | /* | ||||||
|  |  * @Author: Kane | ||||||
|  |  * @Date: 2022-11-12 23:22:59 | ||||||
|  |  * @LastEditors: Kane | ||||||
|  |  * @LastEditTime: 2022-12-05 01:07:18 | ||||||
|  |  * @FilePath: \hello-cli\src\assets\css\colors.css | ||||||
|  |  * @Description:  | ||||||
|  |  *  | ||||||
|  |  * Copyright (c) ${2022} by Kane, All Rights Reserved.  | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | html { | ||||||
|  |     --backupground-color: #f4f5f7ff; | ||||||
|  |     --btn-color-blue: #307dbe; | ||||||
|  |     --btn-color-yellow: #f7b24d; | ||||||
|  |     --btn-color-green: #5bad60; | ||||||
|  |     --btn-color-red: #e56651; | ||||||
|  |     --btn-font-color: #fff; | ||||||
|  |  | ||||||
|  |     --input-focus-color: #e56651; | ||||||
|  |  | ||||||
|  |     /* 标题栏背景色 */ | ||||||
|  |     --banner-background-color: #1d74b2; | ||||||
|  | } | ||||||
							
								
								
									
										17
									
								
								cli/hello-cli/src/assets/css/global.css
									
									
									
									
									
										Normal 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; | ||||||
|  | } | ||||||
| Before Width: | Height: | Size: 6.7 KiB After Width: | Height: | Size: 6.7 KiB | 
							
								
								
									
										62
									
								
								cli/hello-cli/src/components/AppBanner.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,62 @@ | |||||||
|  | <!-- | ||||||
|  |  * @Author: Kane | ||||||
|  |  * @Date: 2022-12-02 22:44:12 | ||||||
|  |  * @LastEditors: Kane | ||||||
|  |  * @LastEditTime: 2022-12-13 16:54:33 | ||||||
|  |  * @FilePath: \hello-cli\src\components\AppBanner.vue | ||||||
|  |  * @Description:  | ||||||
|  |  *  | ||||||
|  |  * Copyright (c) ${2022} by Kane, All Rights Reserved.  | ||||||
|  | --> | ||||||
|  | <template> | ||||||
|  |   <div class="app_banner"> | ||||||
|  |     <span class="company_name">CPIC</span> | ||||||
|  |     <div class="version_div"> | ||||||
|  |       <div>测试版</div> | ||||||
|  |       <div>3.6.7 x64 Build202208301257</div> | ||||||
|  |     </div> | ||||||
|  |     <div class="buttons_div"></div> | ||||||
|  |   </div> | ||||||
|  | </template> | ||||||
|  |  | ||||||
|  | <script> | ||||||
|  | export default { | ||||||
|  |   name: "AppBanner", | ||||||
|  |   data() { | ||||||
|  |     return {}; | ||||||
|  |   }, | ||||||
|  |   // created() { | ||||||
|  |   //   console.log("banner请求数据!"); | ||||||
|  |   // }, | ||||||
|  |   mounted() { | ||||||
|  |     console.log("banner请求数据!"); | ||||||
|  |   }, | ||||||
|  | }; | ||||||
|  | </script> | ||||||
|  | <style scoped> | ||||||
|  | .app_banner { | ||||||
|  |   background-color: var(--banner-background-color); | ||||||
|  |   color: #fff; | ||||||
|  |   display: flex; | ||||||
|  |   justify-content: left; | ||||||
|  |   align-items: center; | ||||||
|  |   padding: 0px 15px; | ||||||
|  |   height: 100%; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .app_banner > * + * { | ||||||
|  |   margin-left: 10px; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .company_name { | ||||||
|  |   font-size: 2rem; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .version_div { | ||||||
|  |   font-size: 0.5rem; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .buttons_div { | ||||||
|  |   margin-left: auto; | ||||||
|  | } | ||||||
|  | </style> | ||||||
							
								
								
									
										25
									
								
								cli/hello-cli/src/components/AppNav.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,25 @@ | |||||||
|  | <!-- | ||||||
|  |  * @Author: Kane | ||||||
|  |  * @Date: 2022-12-02 22:50:54 | ||||||
|  |  * @LastEditors: Kane | ||||||
|  |  * @LastEditTime: 2022-12-02 22:56:40 | ||||||
|  |  * @FilePath: \hello-cli\src\components\AppNav.vue | ||||||
|  |  * @Description:  | ||||||
|  |  *  | ||||||
|  |  * Copyright (c) ${2022} by Kane, All Rights Reserved.  | ||||||
|  | --> | ||||||
|  | <template> | ||||||
|  |   <div></div> | ||||||
|  | </template> | ||||||
|  |  | ||||||
|  | <script> | ||||||
|  | export default { | ||||||
|  |   name: "AppNav", | ||||||
|  |   data() { | ||||||
|  |     return {}; | ||||||
|  |   }, | ||||||
|  | }; | ||||||
|  | </script> | ||||||
|  |  | ||||||
|  | <style> | ||||||
|  | </style> | ||||||
							
								
								
									
										46
									
								
								cli/hello-cli/src/main.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,46 @@ | |||||||
|  | /* | ||||||
|  |  * @Author: Kane | ||||||
|  |  * @Date: 2022-11-22 17:50:49 | ||||||
|  |  * @LastEditors: Kane | ||||||
|  |  * @LastEditTime: 2022-12-05 01:05:43 | ||||||
|  |  * @FilePath: \hello-cli\src\main.js | ||||||
|  |  * @Description:  | ||||||
|  |  *  | ||||||
|  |  * Copyright (c) ${2022} by Kane, All Rights Reserved.  | ||||||
|  |  */ | ||||||
|  | import { createApp } from 'vue'; | ||||||
|  | import { createStore } from "vuex"; | ||||||
|  | import App from './App.vue'; | ||||||
|  | import ElementPlus from "element-plus"; | ||||||
|  | import "./assets/css/root.css"; | ||||||
|  | import "./assets/css/normalize.css"; | ||||||
|  | import "./assets/css/global.css"; | ||||||
|  | import "./assets/css/colors.css"; | ||||||
|  | import 'element-plus/dist/index.css'; | ||||||
|  |  | ||||||
|  |  | ||||||
|  | const app = createApp(App); | ||||||
|  | const vuex = createStore({ | ||||||
|  |     state() { | ||||||
|  |         return { | ||||||
|  |             count: 0, | ||||||
|  |         }; | ||||||
|  |     }, | ||||||
|  |     mutations: { | ||||||
|  |         increment(state) { | ||||||
|  |             state.count++; | ||||||
|  |         }, | ||||||
|  |         clearCount(state) { | ||||||
|  |             state.count = 0; | ||||||
|  |         } | ||||||
|  |     }, | ||||||
|  |     getters: { | ||||||
|  |         countText(store) { | ||||||
|  |             return store.count + "次"; | ||||||
|  |         }, | ||||||
|  |     }, | ||||||
|  | }); | ||||||
|  | app.use(vuex); | ||||||
|  | app.use(ElementPlus); | ||||||
|  | app.mount('#app'); | ||||||
|  |  | ||||||
							
								
								
									
										18
									
								
								cli/hello-cli/src/router/index.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,18 @@ | |||||||
|  | /* | ||||||
|  |  * @Author: Kane | ||||||
|  |  * @Date: 2022-12-02 16:09:08 | ||||||
|  |  * @LastEditors: Kane | ||||||
|  |  * @LastEditTime: 2022-12-02 16:21:00 | ||||||
|  |  * @FilePath: \hello-cli\src\router\index.js | ||||||
|  |  * @Description: 设置路由 | ||||||
|  |  * | ||||||
|  |  * Copyright (c) ${2022} by Kane, All Rights Reserved. | ||||||
|  |  */ | ||||||
|  | import { createRouter, createWebHashHistory } from "vue-router"; | ||||||
|  |  | ||||||
|  | const routes = [{ path: "/", component: undefined }]; | ||||||
|  |  | ||||||
|  | export default createRouter({ | ||||||
|  |     history: createWebHashHistory(), | ||||||
|  |     routes: routes, | ||||||
|  | }); | ||||||
| Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 4.2 KiB | 
| Before Width: | Height: | Size: 6.7 KiB After Width: | Height: | Size: 6.7 KiB | 
| Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 4.2 KiB | 
| Before Width: | Height: | Size: 6.7 KiB After Width: | Height: | Size: 6.7 KiB | 
							
								
								
									
										1
									
								
								node_modules/.package_versions.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1 @@ | |||||||
|  | {} | ||||||
							
								
								
									
										760
									
								
								package-lock.json
									
									
									
										generated
									
									
									
										Normal 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
									
								
							
							
						
						| @@ -0,0 +1,5 @@ | |||||||
|  | { | ||||||
|  |   "dependencies": { | ||||||
|  |     "element-plus": "^2.2.26" | ||||||
|  |   } | ||||||
|  | } | ||||||
							
								
								
									
										4
									
								
								企业级管理系统/java/AdminSys/.vscode/settings.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,4 @@ | |||||||
|  | { | ||||||
|  |     "java.configuration.updateBuildConfiguration": "automatic", | ||||||
|  |     "java.compile.nullAnalysis.mode": "automatic" | ||||||
|  | } | ||||||
							
								
								
									
										112
									
								
								企业级管理系统/java/AdminSys/pom.xml
									
									
									
									
									
										Normal 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> | ||||||
| @@ -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; | ||||||
|  | } | ||||||
| @@ -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; | ||||||
|  |     } | ||||||
|  | } | ||||||
| @@ -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 | ||||||
|  | { | ||||||
|  |  | ||||||
|  | } | ||||||
| @@ -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 | ||||||
|  | { | ||||||
|  |  | ||||||
|  | } | ||||||
| @@ -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; | ||||||
|  | } | ||||||
| @@ -0,0 +1,80 @@ | |||||||
|  | /* | ||||||
|  |  * @Author: Kane | ||||||
|  |  * @Date: 2023-01-22 23:11:26 | ||||||
|  |  * @LastEditors: Kane | ||||||
|  |  * @LastEditTime: 2023-01-24 00:55:08 | ||||||
|  |  * @FilePath: \AdminSys\src\main\java\com\cpic\xim\web\controllers\FileUpload\FileUpload.java | ||||||
|  |  * @Description: 用于接受上传文件的Controller。 | ||||||
|  |  *  | ||||||
|  |  * Copyright (c) ${2022} by Kane, All Rights Reserved.  | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | package com.cpic.xim.web.controllers.FileUpload; | ||||||
|  |  | ||||||
|  | import java.io.File; | ||||||
|  | import java.util.Vector; | ||||||
|  | import javax.servlet.http.HttpServletRequest; | ||||||
|  | import org.springframework.stereotype.Controller; | ||||||
|  | import org.springframework.web.bind.annotation.RequestMapping; | ||||||
|  | import org.springframework.web.bind.annotation.RequestParam; | ||||||
|  | import org.springframework.web.bind.annotation.ResponseBody; | ||||||
|  | import org.springframework.web.multipart.MultipartFile; | ||||||
|  |  | ||||||
|  | @SuppressWarnings( "unused" ) | ||||||
|  | @Controller | ||||||
|  | @RequestMapping( path = "/file" ) | ||||||
|  | public class FileUpload | ||||||
|  | { | ||||||
|  |     /***************************************************** | ||||||
|  |      * 接收上传文件,并保存到临时目录: | ||||||
|  |      * 1、临时目录下再用sessionID作为子目录保存文件。 | ||||||
|  |      * 2、保存时不更改文件名,会覆盖同名文件。 | ||||||
|  |      * 3、MultipartFile参数形参名称必须和请求form中file标签的name属性一致,否则值为null。 | ||||||
|  |      * 4、返回值为接收结果和文件保存路径。 | ||||||
|  |      *****************************************************/ | ||||||
|  |     @RequestMapping( path = "/file-upload.do" ) | ||||||
|  |     @ResponseBody | ||||||
|  |     public FileUploadResult getUploadFile( @RequestParam( "task-name" ) String taskName, | ||||||
|  |             @RequestParam( "file" ) MultipartFile[] files, HttpServletRequest request ) | ||||||
|  |     { | ||||||
|  |         // session id用来创建临时目录,避免重复 | ||||||
|  |         String sessionID = request.getSession().getId(); | ||||||
|  |         FileUploadResult result = new FileUploadResult(); | ||||||
|  |         Vector<String> fileNames = new Vector<String>(); | ||||||
|  |         int fileCount = files.length; | ||||||
|  |  | ||||||
|  |         // 防御验证 | ||||||
|  |         if ( files.length == 0 ) | ||||||
|  |         { | ||||||
|  |             result.setSuccess( false ); | ||||||
|  |             result.setMessage( "此接口用于上传文件!" ); | ||||||
|  |  | ||||||
|  |             return result; | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         result.setSuccess( true ); | ||||||
|  |         result.setMessage( "上传成功!" ); | ||||||
|  |  | ||||||
|  |         for ( MultipartFile file : files ) | ||||||
|  |         { | ||||||
|  |             // 检查文件长度,如果为0则跳过 | ||||||
|  |             if ( file.isEmpty() ) | ||||||
|  |             { | ||||||
|  |  | ||||||
|  |                 continue; | ||||||
|  |             } | ||||||
|  |  | ||||||
|  |             // 保存文件到临时目录 | ||||||
|  |             String filePath = | ||||||
|  |                     request.getServletContext().getRealPath( "/temp/upload/" + sessionID ); | ||||||
|  |             String fileName = file.getOriginalFilename(); | ||||||
|  |             File destFile = new File( filePath, fileName ); | ||||||
|  |  | ||||||
|  |             fileNames.add( file.getOriginalFilename() ); | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         result.setFileList( fileNames ); | ||||||
|  |  | ||||||
|  |         return result; | ||||||
|  |     } | ||||||
|  | } | ||||||
| @@ -0,0 +1,62 @@ | |||||||
|  | /* | ||||||
|  |  * @Author: Kane | ||||||
|  |  * @Date: 2023-01-23 22:56:17 | ||||||
|  |  * @LastEditors: Kane | ||||||
|  |  * @LastEditTime: 2023-01-23 22:56:25 | ||||||
|  |  * @FilePath: \AdminSys\src\main\java\com\cpic\xim\web\controllers\FileUpload\FileUploadResult.java | ||||||
|  |  * @Description:  | ||||||
|  |  *  | ||||||
|  |  * Copyright (c) ${2022} by Kane, All Rights Reserved.  | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | package com.cpic.xim.web.controllers.FileUpload; | ||||||
|  |  | ||||||
|  | import java.util.Vector; | ||||||
|  | import com.fasterxml.jackson.annotation.JsonProperty; | ||||||
|  |  | ||||||
|  | @SuppressWarnings( "unused" ) | ||||||
|  | public class FileUploadResult | ||||||
|  | { | ||||||
|  |     public FileUploadResult() | ||||||
|  |     {} | ||||||
|  |  | ||||||
|  |     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 Vector<String> getFileList() | ||||||
|  |     { | ||||||
|  |         return fileList; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public void setFileList( Vector<String> fileList ) | ||||||
|  |     { | ||||||
|  |         this.fileList = fileList; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @JsonProperty( "success" ) | ||||||
|  |     private boolean success; | ||||||
|  |  | ||||||
|  |     @JsonProperty( "message" ) | ||||||
|  |     private String message; | ||||||
|  |  | ||||||
|  |     @JsonProperty( "file-list" ) | ||||||
|  |     private Vector<String> fileList; | ||||||
|  | } | ||||||
|  |  | ||||||
| @@ -0,0 +1,114 @@ | |||||||
|  | /* | ||||||
|  |  * @Author: Kane | ||||||
|  |  * @Date: 2022-12-15 11:11:21 | ||||||
|  |  * @LastEditors: Kane | ||||||
|  |  * @LastEditTime: 2023-01-17 23:28:21 | ||||||
|  |  * @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 | ||||||
|  | { | ||||||
|  |     /***************************************************** | ||||||
|  |      * 根据用户提供的P09工号或者P13账号密码,查找用户信息,并AD域服务器验证p13账号密码。 | ||||||
|  |      * 验证通过即返回人员信息。 | ||||||
|  |      * 验证不通过result.success值为false,并在message提供失败原因。 | ||||||
|  |      * @param param 由json格式转换的请求参数 | ||||||
|  |      * @param request | ||||||
|  |      * @param response | ||||||
|  |      * @return 返回一个P13AccountCheckResult对象,其中提供验证结果 | ||||||
|  |      *****************************************************/ | ||||||
|  |     @ResponseBody | ||||||
|  |     @RequestMapping( path = "/p13_account_check" ) | ||||||
|  |     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( "密码错误!" ); | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         result.setToken( param.getP13Account() ); | ||||||
|  |  | ||||||
|  |         return result; | ||||||
|  |     } | ||||||
|  | } | ||||||
| @@ -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; | ||||||
|  | } | ||||||
| @@ -0,0 +1,110 @@ | |||||||
|  | /* | ||||||
|  |  * @Author: Kane | ||||||
|  |  * @Date: 2022-12-15 11:17:26 | ||||||
|  |  * @LastEditors: Kane | ||||||
|  |  * @LastEditTime: 2023-01-10 14:58:53 | ||||||
|  |  * @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; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |  | ||||||
|  |     public String getToken() | ||||||
|  |     { | ||||||
|  |         return token; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public void setToken( String token ) | ||||||
|  |     { | ||||||
|  |         this.token = token; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @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; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     // 验证结果状态,true为成功,false为失败 | ||||||
|  |     @JsonProperty( "success") | ||||||
|  |     private boolean success; | ||||||
|  |  | ||||||
|  |     // 验证结果消息字符串,用来提示前端。 | ||||||
|  |     @JsonProperty( "message") | ||||||
|  |     private String message; | ||||||
|  |  | ||||||
|  |     // 用户的token | ||||||
|  |     @JsonProperty( "token") | ||||||
|  |     private String token; | ||||||
|  |  | ||||||
|  |     // 验证成功后查询到的人员信息。 | ||||||
|  |     @JsonProperty( "staff_info") | ||||||
|  |     CpicXIMStaffInfo staffInfo; | ||||||
|  |  | ||||||
|  | } | ||||||
| @@ -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 ); | ||||||
|  |     } | ||||||
|  | } | ||||||
| @@ -0,0 +1,41 @@ | |||||||
|  | /* | ||||||
|  |  * @Author: Kane | ||||||
|  |  * @Date: 2023-01-12 15:01:22 | ||||||
|  |  * @LastEditors: Kane | ||||||
|  |  * @LastEditTime: 2023-01-24 00:21:51 | ||||||
|  |  * @FilePath: \AdminSys\src\main\java\com\cpic\xim\web\filters\token\TokenFilter.java | ||||||
|  |  * @Description: 用于检查token的过滤器 | ||||||
|  |  *  | ||||||
|  |  * Copyright (c) ${2022} by Kane, All Rights Reserved.  | ||||||
|  |  */ | ||||||
|  | package com.cpic.xim.web.filters.token; | ||||||
|  |  | ||||||
|  | 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; | ||||||
|  |  | ||||||
|  | @SuppressWarnings( "unused" ) | ||||||
|  | public class TokenFilter implements Filter | ||||||
|  | { | ||||||
|  |     /***************************************************** | ||||||
|  |      * 对请求的token进行验证。 | ||||||
|  |      *****************************************************/ | ||||||
|  |     @Override | ||||||
|  |     public void doFilter( ServletRequest req, ServletResponse resp, FilterChain chain ) | ||||||
|  |             throws ServletException, IOException | ||||||
|  |     { | ||||||
|  |         HttpServletRequest request = (HttpServletRequest) req; | ||||||
|  |         HttpServletResponse response = (HttpServletResponse) resp; | ||||||
|  |  | ||||||
|  |         // 验证Token | ||||||
|  |         String token = request.getHeader( "Token" ); | ||||||
|  |  | ||||||
|  |         chain.doFilter( request, response ); | ||||||
|  |     } | ||||||
|  | } | ||||||
|  |  | ||||||
| @@ -0,0 +1,71 @@ | |||||||
|  | /* | ||||||
|  |  * @Author: Kane | ||||||
|  |  * @Date: 2022-12-15 19:40:12 | ||||||
|  |  * @LastEditors: Kane | ||||||
|  |  * @LastEditTime: 2023-01-23 23:58:26 | ||||||
|  |  * @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 ) | ||||||
|  |         { | ||||||
|  |  | ||||||
|  |         } | ||||||
|  |         finally | ||||||
|  |         { | ||||||
|  |             try | ||||||
|  |             { | ||||||
|  |                 if ( configFile != null ) | ||||||
|  |                 { | ||||||
|  |                     configFile.close(); | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |             catch ( Exception error ) | ||||||
|  |             { | ||||||
|  |                 error.printStackTrace(); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
| @@ -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> | ||||||
							
								
								
									
										57
									
								
								企业级管理系统/java/AdminSys/src/main/webapp/WEB-INF/web.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,57 @@ | |||||||
|  | <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> | ||||||
|  |   <servlet-mapping> | ||||||
|  |     <servlet-name>springmvc</servlet-name> | ||||||
|  |     <url-pattern>/account/p13_account_check</url-pattern> | ||||||
|  |   </servlet-mapping> | ||||||
|  |  | ||||||
|  |   <!-- 用于验证Token的Filter --> | ||||||
|  |   <filter> | ||||||
|  |     <filter-name>token-filter</filter-name> | ||||||
|  |     <filter-class>com.cpic.xim.web.filters.token.TokenFilter</filter-class> | ||||||
|  |   </filter> | ||||||
|  |   <filter-mapping> | ||||||
|  |     <filter-name>token-filter</filter-name> | ||||||
|  |     <url-pattern>*.do</url-pattern> | ||||||
|  |   </filter-mapping> | ||||||
|  |  | ||||||
|  |  | ||||||
|  |   <!-- 用于实现跨域访问的Filter --> | ||||||
|  |   <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>*</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> | ||||||
							
								
								
									
										68
									
								
								企业级管理系统/java/AdminSys/src/main/webapp/css/kane.css
									
									
									
									
									
										Normal 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; | ||||||
|  | } | ||||||
							
								
								
									
										25
									
								
								企业级管理系统/java/AdminSys/src/main/webapp/css/main_frame.css
									
									
									
									
									
										Normal 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; | ||||||
|  | } | ||||||
							
								
								
									
										349
									
								
								企业级管理系统/java/AdminSys/src/main/webapp/css/normalize.css
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,349 @@ | |||||||
|  | /*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ | ||||||
|  |  | ||||||
|  | /* Document | ||||||
|  |    ========================================================================== */ | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * 1. Correct the line height in all browsers. | ||||||
|  |  * 2. Prevent adjustments of font size after orientation changes in iOS. | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | html { | ||||||
|  |   line-height: 1.15; /* 1 */ | ||||||
|  |   -webkit-text-size-adjust: 100%; /* 2 */ | ||||||
|  | } | ||||||
|  |  | ||||||
|  | /* Sections | ||||||
|  |    ========================================================================== */ | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Remove the margin in all browsers. | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | body { | ||||||
|  |   margin: 0; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Render the `main` element consistently in IE. | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | main { | ||||||
|  |   display: block; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Correct the font size and margin on `h1` elements within `section` and | ||||||
|  |  * `article` contexts in Chrome, Firefox, and Safari. | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | h1 { | ||||||
|  |   font-size: 2em; | ||||||
|  |   margin: 0.67em 0; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | /* Grouping content | ||||||
|  |    ========================================================================== */ | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * 1. Add the correct box sizing in Firefox. | ||||||
|  |  * 2. Show the overflow in Edge and IE. | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | hr { | ||||||
|  |   box-sizing: content-box; /* 1 */ | ||||||
|  |   height: 0; /* 1 */ | ||||||
|  |   overflow: visible; /* 2 */ | ||||||
|  | } | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * 1. Correct the inheritance and scaling of font size in all browsers. | ||||||
|  |  * 2. Correct the odd `em` font sizing in all browsers. | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | pre { | ||||||
|  |   font-family: monospace, monospace; /* 1 */ | ||||||
|  |   font-size: 1em; /* 2 */ | ||||||
|  | } | ||||||
|  |  | ||||||
|  | /* Text-level semantics | ||||||
|  |    ========================================================================== */ | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Remove the gray background on active links in IE 10. | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | a { | ||||||
|  |   background-color: transparent; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * 1. Remove the bottom border in Chrome 57- | ||||||
|  |  * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | abbr[title] { | ||||||
|  |   border-bottom: none; /* 1 */ | ||||||
|  |   text-decoration: underline; /* 2 */ | ||||||
|  |   text-decoration: underline dotted; /* 2 */ | ||||||
|  | } | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Add the correct font weight in Chrome, Edge, and Safari. | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | b, | ||||||
|  | strong { | ||||||
|  |   font-weight: bolder; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * 1. Correct the inheritance and scaling of font size in all browsers. | ||||||
|  |  * 2. Correct the odd `em` font sizing in all browsers. | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | code, | ||||||
|  | kbd, | ||||||
|  | samp { | ||||||
|  |   font-family: monospace, monospace; /* 1 */ | ||||||
|  |   font-size: 1em; /* 2 */ | ||||||
|  | } | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Add the correct font size in all browsers. | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | small { | ||||||
|  |   font-size: 80%; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Prevent `sub` and `sup` elements from affecting the line height in | ||||||
|  |  * all browsers. | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | sub, | ||||||
|  | sup { | ||||||
|  |   font-size: 75%; | ||||||
|  |   line-height: 0; | ||||||
|  |   position: relative; | ||||||
|  |   vertical-align: baseline; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | sub { | ||||||
|  |   bottom: -0.25em; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | sup { | ||||||
|  |   top: -0.5em; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | /* Embedded content | ||||||
|  |    ========================================================================== */ | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Remove the border on images inside links in IE 10. | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | img { | ||||||
|  |   border-style: none; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | /* Forms | ||||||
|  |    ========================================================================== */ | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * 1. Change the font styles in all browsers. | ||||||
|  |  * 2. Remove the margin in Firefox and Safari. | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | button, | ||||||
|  | input, | ||||||
|  | optgroup, | ||||||
|  | select, | ||||||
|  | textarea { | ||||||
|  |   font-family: inherit; /* 1 */ | ||||||
|  |   font-size: 100%; /* 1 */ | ||||||
|  |   line-height: 1.15; /* 1 */ | ||||||
|  |   margin: 0; /* 2 */ | ||||||
|  | } | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Show the overflow in IE. | ||||||
|  |  * 1. Show the overflow in Edge. | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | button, | ||||||
|  | input { /* 1 */ | ||||||
|  |   overflow: visible; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Remove the inheritance of text transform in Edge, Firefox, and IE. | ||||||
|  |  * 1. Remove the inheritance of text transform in Firefox. | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | button, | ||||||
|  | select { /* 1 */ | ||||||
|  |   text-transform: none; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Correct the inability to style clickable types in iOS and Safari. | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | button, | ||||||
|  | [type="button"], | ||||||
|  | [type="reset"], | ||||||
|  | [type="submit"] { | ||||||
|  |   -webkit-appearance: button; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Remove the inner border and padding in Firefox. | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | button::-moz-focus-inner, | ||||||
|  | [type="button"]::-moz-focus-inner, | ||||||
|  | [type="reset"]::-moz-focus-inner, | ||||||
|  | [type="submit"]::-moz-focus-inner { | ||||||
|  |   border-style: none; | ||||||
|  |   padding: 0; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Restore the focus styles unset by the previous rule. | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | button:-moz-focusring, | ||||||
|  | [type="button"]:-moz-focusring, | ||||||
|  | [type="reset"]:-moz-focusring, | ||||||
|  | [type="submit"]:-moz-focusring { | ||||||
|  |   outline: 1px dotted ButtonText; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Correct the padding in Firefox. | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | fieldset { | ||||||
|  |   padding: 0.35em 0.75em 0.625em; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * 1. Correct the text wrapping in Edge and IE. | ||||||
|  |  * 2. Correct the color inheritance from `fieldset` elements in IE. | ||||||
|  |  * 3. Remove the padding so developers are not caught out when they zero out | ||||||
|  |  *    `fieldset` elements in all browsers. | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | legend { | ||||||
|  |   box-sizing: border-box; /* 1 */ | ||||||
|  |   color: inherit; /* 2 */ | ||||||
|  |   display: table; /* 1 */ | ||||||
|  |   max-width: 100%; /* 1 */ | ||||||
|  |   padding: 0; /* 3 */ | ||||||
|  |   white-space: normal; /* 1 */ | ||||||
|  | } | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Add the correct vertical alignment in Chrome, Firefox, and Opera. | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | progress { | ||||||
|  |   vertical-align: baseline; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Remove the default vertical scrollbar in IE 10+. | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | textarea { | ||||||
|  |   overflow: auto; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * 1. Add the correct box sizing in IE 10. | ||||||
|  |  * 2. Remove the padding in IE 10. | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | [type="checkbox"], | ||||||
|  | [type="radio"] { | ||||||
|  |   box-sizing: border-box; /* 1 */ | ||||||
|  |   padding: 0; /* 2 */ | ||||||
|  | } | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Correct the cursor style of increment and decrement buttons in Chrome. | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | [type="number"]::-webkit-inner-spin-button, | ||||||
|  | [type="number"]::-webkit-outer-spin-button { | ||||||
|  |   height: auto; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * 1. Correct the odd appearance in Chrome and Safari. | ||||||
|  |  * 2. Correct the outline style in Safari. | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | [type="search"] { | ||||||
|  |   -webkit-appearance: textfield; /* 1 */ | ||||||
|  |   outline-offset: -2px; /* 2 */ | ||||||
|  | } | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Remove the inner padding in Chrome and Safari on macOS. | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | [type="search"]::-webkit-search-decoration { | ||||||
|  |   -webkit-appearance: none; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * 1. Correct the inability to style clickable types in iOS and Safari. | ||||||
|  |  * 2. Change font properties to `inherit` in Safari. | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | ::-webkit-file-upload-button { | ||||||
|  |   -webkit-appearance: button; /* 1 */ | ||||||
|  |   font: inherit; /* 2 */ | ||||||
|  | } | ||||||
|  |  | ||||||
|  | /* Interactive | ||||||
|  |    ========================================================================== */ | ||||||
|  |  | ||||||
|  | /* | ||||||
|  |  * Add the correct display in Edge, IE 10+, and Firefox. | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | details { | ||||||
|  |   display: block; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | /* | ||||||
|  |  * Add the correct display in all browsers. | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | summary { | ||||||
|  |   display: list-item; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | /* Misc | ||||||
|  |    ========================================================================== */ | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Add the correct display in IE 10+. | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | template { | ||||||
|  |   display: none; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Add the correct display in IE 10. | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | [hidden] { | ||||||
|  |   display: none; | ||||||
|  | } | ||||||
							
								
								
									
										11
									
								
								企业级管理系统/java/AdminSys/src/main/webapp/css/product_form.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,11 @@ | |||||||
|  | .panel { | ||||||
|  |     display: flex; | ||||||
|  |     justify-content: center; | ||||||
|  |     align-items: center; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .main_form { | ||||||
|  |     height: 50vh; | ||||||
|  |     width: 50vw; | ||||||
|  |     border: 1px solid red; | ||||||
|  | } | ||||||
							
								
								
									
										20
									
								
								企业级管理系统/java/AdminSys/src/main/webapp/css/root.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,20 @@ | |||||||
|  | :root { | ||||||
|  |     font-size: 1em; | ||||||
|  |     box-sizing: border-box; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | *, | ||||||
|  | *::before, | ||||||
|  | *::after { | ||||||
|  |     margin: 0; | ||||||
|  |     padding: 0; | ||||||
|  |     box-sizing: inherit; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | body { | ||||||
|  |     font-family: Arial, Helvetica, sans-serif; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .pointer { | ||||||
|  |     cursor: pointer; | ||||||
|  | } | ||||||
							
								
								
									
										17
									
								
								企业级管理系统/java/AdminSys/src/main/webapp/css/test.css
									
									
									
									
									
										Normal 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; | ||||||
|  | } | ||||||
							
								
								
									
										23
									
								
								企业级管理系统/java/AdminSys/src/main/webapp/index.jsp
									
									
									
									
									
										Normal 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> | ||||||
							
								
								
									
										5
									
								
								企业级管理系统/web/admin_system/.browserslistrc
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,5 @@ | |||||||
|  | > 1% | ||||||
|  | last 2 versions | ||||||
|  | not dead | ||||||
|  | not ie 11 | ||||||
|  | safari >= 7 | ||||||
							
								
								
									
										2
									
								
								企业级管理系统/web/admin_system/.env.development
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,2 @@ | |||||||
|  | VUE_APP_API_URL_LOGIN = "http://222.76.244.118:11001/admin-system/account/p13_account_check" | ||||||
|  | VUR_APPP_API_URL_UPLOAD_FILE= "http://222.76.244.118:11001/admin-system/file/file-upload.do" | ||||||
							
								
								
									
										27
									
								
								企业级管理系统/web/admin_system/.eslintrc.js
									
									
									
									
									
										Normal 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' | ||||||
|  |   } | ||||||
|  | } | ||||||
							
								
								
									
										23
									
								
								企业级管理系统/web/admin_system/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,23 @@ | |||||||
|  | .DS_Store | ||||||
|  | node_modules | ||||||
|  | /dist | ||||||
|  |  | ||||||
|  |  | ||||||
|  | # 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? | ||||||
							
								
								
									
										24
									
								
								企业级管理系统/web/admin_system/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,24 @@ | |||||||
|  | # admin_system | ||||||
|  |  | ||||||
|  | ## 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/). | ||||||
							
								
								
									
										5
									
								
								企业级管理系统/web/admin_system/babel.config.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,5 @@ | |||||||
|  | module.exports = { | ||||||
|  |   presets: [ | ||||||
|  |     '@vue/cli-plugin-babel/preset' | ||||||
|  |   ] | ||||||
|  | } | ||||||
							
								
								
									
										19
									
								
								企业级管理系统/web/admin_system/jsconfig.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,19 @@ | |||||||
|  | { | ||||||
|  |   "compilerOptions": { | ||||||
|  |     "target": "es5", | ||||||
|  |     "module": "esnext", | ||||||
|  |     "baseUrl": "./", | ||||||
|  |     "moduleResolution": "node", | ||||||
|  |     "paths": { | ||||||
|  |       "@/*": [ | ||||||
|  |         "src/*" | ||||||
|  |       ] | ||||||
|  |     }, | ||||||
|  |     "lib": [ | ||||||
|  |       "esnext", | ||||||
|  |       "dom", | ||||||
|  |       "dom.iterable", | ||||||
|  |       "scripthost" | ||||||
|  |     ] | ||||||
|  |   } | ||||||
|  | } | ||||||
							
								
								
									
										23141
									
								
								企业级管理系统/web/admin_system/package-lock.json
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										36
									
								
								企业级管理系统/web/admin_system/package.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,36 @@ | |||||||
|  | { | ||||||
|  |   "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": { | ||||||
|  |     "@element-plus/icons-vue": "^2.0.10", | ||||||
|  |     "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", | ||||||
|  |     "svg-sprite-loader": "^2.1.0", | ||||||
|  |     "vue-cli-plugin-element-plus": "~0.0.13" | ||||||
|  |   } | ||||||
|  | } | ||||||
							
								
								
									
										
											BIN
										
									
								
								企业级管理系统/web/admin_system/public/favicon.ico
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 4.2 KiB | 
							
								
								
									
										43
									
								
								企业级管理系统/web/admin_system/public/index.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,43 @@ | |||||||
|  | <!-- | ||||||
|  |  * @Author: Kane | ||||||
|  |  * @Date: 2022-12-17 11:08:18 | ||||||
|  |  * @LastEditors: Kane | ||||||
|  |  * @LastEditTime: 2023-01-26 01:37:19 | ||||||
|  |  * @FilePath: \admin_system\public\index.html | ||||||
|  |  * @Description:  | ||||||
|  |  *  | ||||||
|  |  * Copyright (c) ${2022} by Kane, All Rights Reserved.  | ||||||
|  | --> | ||||||
|  | <!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; | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         body { | ||||||
|  |             width: 100vw; | ||||||
|  |             height: 100vh; | ||||||
|  |             max-height: 100vh; | ||||||
|  |             min-width: 1280px; | ||||||
|  |         } | ||||||
|  |     </style> | ||||||
|  | </html> | ||||||
							
								
								
									
										35
									
								
								企业级管理系统/web/admin_system/src/App.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,35 @@ | |||||||
|  | <!-- | ||||||
|  |  * @Author: Kane | ||||||
|  |  * @Date: 2022-12-14 15:12:46 | ||||||
|  |  * @LastEditors: Kane | ||||||
|  |  * @LastEditTime: 2023-01-19 14:26:17 | ||||||
|  |  * @FilePath: \admin_system\src\App.vue | ||||||
|  |  * @Description:  | ||||||
|  |  *  | ||||||
|  |  * Copyright (c) ${2022} by Kane, All Rights Reserved.  | ||||||
|  | --> | ||||||
|  | <template> | ||||||
|  |   <el-config-provider :locale="this.locale"> | ||||||
|  |     <router-view></router-view> | ||||||
|  |   </el-config-provider> | ||||||
|  | </template> | ||||||
|  |  | ||||||
|  | <script> | ||||||
|  | //引入语言组件 | ||||||
|  | import zhCn from "element-plus/lib/locale/lang/zh-cn"; | ||||||
|  |  | ||||||
|  | export default { | ||||||
|  |   name: "App", | ||||||
|  |   data() { | ||||||
|  |     return { | ||||||
|  |       locale: zhCn, //语言属性 | ||||||
|  |     }; | ||||||
|  |   }, | ||||||
|  |   components: { | ||||||
|  |     // HelloWorld, | ||||||
|  |   }, | ||||||
|  | }; | ||||||
|  | </script> | ||||||
|  |  | ||||||
|  | <style> | ||||||
|  | </style> | ||||||
							
								
								
									
										24
									
								
								企业级管理系统/web/admin_system/src/assets/css/colors.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,24 @@ | |||||||
|  | /* | ||||||
|  |  * @Author: Kane | ||||||
|  |  * @Date: 2022-11-12 23:22:59 | ||||||
|  |  * @LastEditors: Kane | ||||||
|  |  * @LastEditTime: 2022-12-05 01:07:18 | ||||||
|  |  * @FilePath: \hello-cli\src\assets\css\colors.css | ||||||
|  |  * @Description:  | ||||||
|  |  *  | ||||||
|  |  * Copyright (c) ${2022} by Kane, All Rights Reserved.  | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | html { | ||||||
|  |     --backupground-color: #f4f5f7ff; | ||||||
|  |     --btn-color-blue: #307dbe; | ||||||
|  |     --btn-color-yellow: #f7b24d; | ||||||
|  |     --btn-color-green: #5bad60; | ||||||
|  |     --btn-color-red: #e56651; | ||||||
|  |     --btn-font-color: #fff; | ||||||
|  |  | ||||||
|  |     --input-focus-color: #e56651; | ||||||
|  |  | ||||||
|  |     /* 标题栏背景色 */ | ||||||
|  |     --banner-background-color: #1d74b2; | ||||||
|  | } | ||||||
							
								
								
									
										17
									
								
								企业级管理系统/web/admin_system/src/assets/css/global.css
									
									
									
									
									
										Normal 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; | ||||||
|  | } | ||||||
							
								
								
									
										
											BIN
										
									
								
								企业级管理系统/web/admin_system/src/assets/logo.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 6.7 KiB |