保存进度!
This commit is contained in:
		
							
								
								
									
										246
									
								
								code/web/IT工具综合平台/package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										246
									
								
								code/web/IT工具综合平台/package-lock.json
									
									
									
										generated
									
									
									
								
							@@ -2862,36 +2862,36 @@
 | 
				
			|||||||
            }
 | 
					            }
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "node_modules/@vue/compiler-core": {
 | 
					        "node_modules/@vue/compiler-core": {
 | 
				
			||||||
            "version": "3.2.45",
 | 
					            "version": "3.2.47",
 | 
				
			||||||
            "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.2.45.tgz",
 | 
					            "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.47.tgz",
 | 
				
			||||||
            "integrity": "sha512-rcMj7H+PYe5wBV3iYeUgbCglC+pbpN8hBLTJvRiK2eKQiWqu+fG9F+8sW99JdL4LQi7Re178UOxn09puSXvn4A==",
 | 
					            "integrity": "sha512-p4D7FDnQb7+YJmO2iPEv0SQNeNzcbHdGByJDsT4lynf63AFkOTFN07HsiRSvjGo0QrxR/o3d0hUyNCUnBU2Tig==",
 | 
				
			||||||
            "dependencies": {
 | 
					            "dependencies": {
 | 
				
			||||||
                "@babel/parser": "^7.16.4",
 | 
					                "@babel/parser": "^7.16.4",
 | 
				
			||||||
                "@vue/shared": "3.2.45",
 | 
					                "@vue/shared": "3.2.47",
 | 
				
			||||||
                "estree-walker": "^2.0.2",
 | 
					                "estree-walker": "^2.0.2",
 | 
				
			||||||
                "source-map": "^0.6.1"
 | 
					                "source-map": "^0.6.1"
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "node_modules/@vue/compiler-dom": {
 | 
					        "node_modules/@vue/compiler-dom": {
 | 
				
			||||||
            "version": "3.2.45",
 | 
					            "version": "3.2.47",
 | 
				
			||||||
            "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.2.45.tgz",
 | 
					            "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.47.tgz",
 | 
				
			||||||
            "integrity": "sha512-tyYeUEuKqqZO137WrZkpwfPCdiiIeXYCcJ8L4gWz9vqaxzIQRccTSwSWZ/Axx5YR2z+LvpUbmPNXxuBU45lyRw==",
 | 
					            "integrity": "sha512-dBBnEHEPoftUiS03a4ggEig74J2YBZ2UIeyfpcRM2tavgMWo4bsEfgCGsu+uJIL/vax9S+JztH8NmQerUo7shQ==",
 | 
				
			||||||
            "dependencies": {
 | 
					            "dependencies": {
 | 
				
			||||||
                "@vue/compiler-core": "3.2.45",
 | 
					                "@vue/compiler-core": "3.2.47",
 | 
				
			||||||
                "@vue/shared": "3.2.45"
 | 
					                "@vue/shared": "3.2.47"
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "node_modules/@vue/compiler-sfc": {
 | 
					        "node_modules/@vue/compiler-sfc": {
 | 
				
			||||||
            "version": "3.2.45",
 | 
					            "version": "3.2.47",
 | 
				
			||||||
            "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.2.45.tgz",
 | 
					            "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.47.tgz",
 | 
				
			||||||
            "integrity": "sha512-1jXDuWah1ggsnSAOGsec8cFjT/K6TMZ0sPL3o3d84Ft2AYZi2jWJgRMjw4iaK0rBfA89L5gw427H4n1RZQBu6Q==",
 | 
					            "integrity": "sha512-rog05W+2IFfxjMcFw10tM9+f7i/+FFpZJJ5XHX72NP9eC2uRD+42M3pYcQqDXVYoj74kHMSEdQ/WmCjt8JFksQ==",
 | 
				
			||||||
            "dependencies": {
 | 
					            "dependencies": {
 | 
				
			||||||
                "@babel/parser": "^7.16.4",
 | 
					                "@babel/parser": "^7.16.4",
 | 
				
			||||||
                "@vue/compiler-core": "3.2.45",
 | 
					                "@vue/compiler-core": "3.2.47",
 | 
				
			||||||
                "@vue/compiler-dom": "3.2.45",
 | 
					                "@vue/compiler-dom": "3.2.47",
 | 
				
			||||||
                "@vue/compiler-ssr": "3.2.45",
 | 
					                "@vue/compiler-ssr": "3.2.47",
 | 
				
			||||||
                "@vue/reactivity-transform": "3.2.45",
 | 
					                "@vue/reactivity-transform": "3.2.47",
 | 
				
			||||||
                "@vue/shared": "3.2.45",
 | 
					                "@vue/shared": "3.2.47",
 | 
				
			||||||
                "estree-walker": "^2.0.2",
 | 
					                "estree-walker": "^2.0.2",
 | 
				
			||||||
                "magic-string": "^0.25.7",
 | 
					                "magic-string": "^0.25.7",
 | 
				
			||||||
                "postcss": "^8.1.10",
 | 
					                "postcss": "^8.1.10",
 | 
				
			||||||
@@ -2899,12 +2899,12 @@
 | 
				
			|||||||
            }
 | 
					            }
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "node_modules/@vue/compiler-ssr": {
 | 
					        "node_modules/@vue/compiler-ssr": {
 | 
				
			||||||
            "version": "3.2.45",
 | 
					            "version": "3.2.47",
 | 
				
			||||||
            "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.2.45.tgz",
 | 
					            "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.47.tgz",
 | 
				
			||||||
            "integrity": "sha512-6BRaggEGqhWht3lt24CrIbQSRD5O07MTmd+LjAn5fJj568+R9eUD2F7wMQJjX859seSlrYog7sUtrZSd7feqrQ==",
 | 
					            "integrity": "sha512-wVXC+gszhulcMD8wpxMsqSOpvDZ6xKXSVWkf50Guf/S+28hTAXPDYRTbLQ3EDkOP5Xz/+SY37YiwDquKbJOgZw==",
 | 
				
			||||||
            "dependencies": {
 | 
					            "dependencies": {
 | 
				
			||||||
                "@vue/compiler-dom": "3.2.45",
 | 
					                "@vue/compiler-dom": "3.2.47",
 | 
				
			||||||
                "@vue/shared": "3.2.45"
 | 
					                "@vue/shared": "3.2.47"
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "node_modules/@vue/component-compiler-utils": {
 | 
					        "node_modules/@vue/component-compiler-utils": {
 | 
				
			||||||
@@ -2973,60 +2973,60 @@
 | 
				
			|||||||
            "integrity": "sha512-JD5fcdIuFxU4fQyXUu3w2KpAJHzTVdN+p4iOX2lMWSHMOoQdMAcpFLZzm9Z/2nmsoZ1a96QEhZ26e50xLBsgOQ=="
 | 
					            "integrity": "sha512-JD5fcdIuFxU4fQyXUu3w2KpAJHzTVdN+p4iOX2lMWSHMOoQdMAcpFLZzm9Z/2nmsoZ1a96QEhZ26e50xLBsgOQ=="
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "node_modules/@vue/reactivity": {
 | 
					        "node_modules/@vue/reactivity": {
 | 
				
			||||||
            "version": "3.2.45",
 | 
					            "version": "3.2.47",
 | 
				
			||||||
            "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.2.45.tgz",
 | 
					            "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.47.tgz",
 | 
				
			||||||
            "integrity": "sha512-PRvhCcQcyEVohW0P8iQ7HDcIOXRjZfAsOds3N99X/Dzewy8TVhTCT4uXpAHfoKjVTJRA0O0K+6QNkDIZAxNi3A==",
 | 
					            "integrity": "sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ==",
 | 
				
			||||||
            "dependencies": {
 | 
					            "dependencies": {
 | 
				
			||||||
                "@vue/shared": "3.2.45"
 | 
					                "@vue/shared": "3.2.47"
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "node_modules/@vue/reactivity-transform": {
 | 
					        "node_modules/@vue/reactivity-transform": {
 | 
				
			||||||
            "version": "3.2.45",
 | 
					            "version": "3.2.47",
 | 
				
			||||||
            "resolved": "https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.2.45.tgz",
 | 
					            "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.47.tgz",
 | 
				
			||||||
            "integrity": "sha512-BHVmzYAvM7vcU5WmuYqXpwaBHjsS8T63jlKGWVtHxAHIoMIlmaMyurUSEs1Zcg46M4AYT5MtB1U274/2aNzjJQ==",
 | 
					            "integrity": "sha512-m8lGXw8rdnPVVIdIFhf0LeQ/ixyHkH5plYuS83yop5n7ggVJU+z5v0zecwEnX7fa7HNLBhh2qngJJkxpwEEmYA==",
 | 
				
			||||||
            "dependencies": {
 | 
					            "dependencies": {
 | 
				
			||||||
                "@babel/parser": "^7.16.4",
 | 
					                "@babel/parser": "^7.16.4",
 | 
				
			||||||
                "@vue/compiler-core": "3.2.45",
 | 
					                "@vue/compiler-core": "3.2.47",
 | 
				
			||||||
                "@vue/shared": "3.2.45",
 | 
					                "@vue/shared": "3.2.47",
 | 
				
			||||||
                "estree-walker": "^2.0.2",
 | 
					                "estree-walker": "^2.0.2",
 | 
				
			||||||
                "magic-string": "^0.25.7"
 | 
					                "magic-string": "^0.25.7"
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "node_modules/@vue/runtime-core": {
 | 
					        "node_modules/@vue/runtime-core": {
 | 
				
			||||||
            "version": "3.2.45",
 | 
					            "version": "3.2.47",
 | 
				
			||||||
            "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.2.45.tgz",
 | 
					            "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.47.tgz",
 | 
				
			||||||
            "integrity": "sha512-gzJiTA3f74cgARptqzYswmoQx0fIA+gGYBfokYVhF8YSXjWTUA2SngRzZRku2HbGbjzB6LBYSbKGIaK8IW+s0A==",
 | 
					            "integrity": "sha512-RZxbLQIRB/K0ev0K9FXhNbBzT32H9iRtYbaXb0ZIz2usLms/D55dJR2t6cIEUn6vyhS3ALNvNthI+Q95C+NOpA==",
 | 
				
			||||||
            "dependencies": {
 | 
					            "dependencies": {
 | 
				
			||||||
                "@vue/reactivity": "3.2.45",
 | 
					                "@vue/reactivity": "3.2.47",
 | 
				
			||||||
                "@vue/shared": "3.2.45"
 | 
					                "@vue/shared": "3.2.47"
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "node_modules/@vue/runtime-dom": {
 | 
					        "node_modules/@vue/runtime-dom": {
 | 
				
			||||||
            "version": "3.2.45",
 | 
					            "version": "3.2.47",
 | 
				
			||||||
            "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.2.45.tgz",
 | 
					            "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.47.tgz",
 | 
				
			||||||
            "integrity": "sha512-cy88YpfP5Ue2bDBbj75Cb4bIEZUMM/mAkDMfqDTpUYVgTf/kuQ2VQ8LebuZ8k6EudgH8pYhsGWHlY0lcxlvTwA==",
 | 
					            "integrity": "sha512-ArXrFTjS6TsDei4qwNvgrdmHtD930KgSKGhS5M+j8QxXrDJYLqYw4RRcDy1bz1m1wMmb6j+zGLifdVHtkXA7gA==",
 | 
				
			||||||
            "dependencies": {
 | 
					            "dependencies": {
 | 
				
			||||||
                "@vue/runtime-core": "3.2.45",
 | 
					                "@vue/runtime-core": "3.2.47",
 | 
				
			||||||
                "@vue/shared": "3.2.45",
 | 
					                "@vue/shared": "3.2.47",
 | 
				
			||||||
                "csstype": "^2.6.8"
 | 
					                "csstype": "^2.6.8"
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "node_modules/@vue/server-renderer": {
 | 
					        "node_modules/@vue/server-renderer": {
 | 
				
			||||||
            "version": "3.2.45",
 | 
					            "version": "3.2.47",
 | 
				
			||||||
            "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.2.45.tgz",
 | 
					            "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.47.tgz",
 | 
				
			||||||
            "integrity": "sha512-ebiMq7q24WBU1D6uhPK//2OTR1iRIyxjF5iVq/1a5I1SDMDyDu4Ts6fJaMnjrvD3MqnaiFkKQj+LKAgz5WIK3g==",
 | 
					            "integrity": "sha512-dN9gc1i8EvmP9RCzvneONXsKfBRgqFeFZLurmHOveL7oH6HiFXJw5OGu294n1nHc/HMgTy6LulU/tv5/A7f/LA==",
 | 
				
			||||||
            "dependencies": {
 | 
					            "dependencies": {
 | 
				
			||||||
                "@vue/compiler-ssr": "3.2.45",
 | 
					                "@vue/compiler-ssr": "3.2.47",
 | 
				
			||||||
                "@vue/shared": "3.2.45"
 | 
					                "@vue/shared": "3.2.47"
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            "peerDependencies": {
 | 
					            "peerDependencies": {
 | 
				
			||||||
                "vue": "3.2.45"
 | 
					                "vue": "3.2.47"
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "node_modules/@vue/shared": {
 | 
					        "node_modules/@vue/shared": {
 | 
				
			||||||
            "version": "3.2.45",
 | 
					            "version": "3.2.47",
 | 
				
			||||||
            "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.2.45.tgz",
 | 
					            "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.47.tgz",
 | 
				
			||||||
            "integrity": "sha512-Ewzq5Yhimg7pSztDV+RH1UDKBzmtqieXQlpTVm2AwraoRL/Rks96mvd8Vgi7Lj+h+TH8dv7mXD3FRZR3TUvbSg=="
 | 
					            "integrity": "sha512-BHGyyGN3Q97EZx0taMQ+OLNuZcW3d37ZEVmEAyeoA9ERdGvm9Irc/0Fua8SNyOtV1w6BS4q25wbMzJujO9HIfQ=="
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "node_modules/@vue/vue-loader-v15": {
 | 
					        "node_modules/@vue/vue-loader-v15": {
 | 
				
			||||||
            "name": "vue-loader",
 | 
					            "name": "vue-loader",
 | 
				
			||||||
@@ -5013,7 +5013,7 @@
 | 
				
			|||||||
        },
 | 
					        },
 | 
				
			||||||
        "node_modules/csstype": {
 | 
					        "node_modules/csstype": {
 | 
				
			||||||
            "version": "2.6.21",
 | 
					            "version": "2.6.21",
 | 
				
			||||||
            "resolved": "https://registry.npmmirror.com/csstype/-/csstype-2.6.21.tgz",
 | 
					            "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz",
 | 
				
			||||||
            "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w=="
 | 
					            "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w=="
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "node_modules/d": {
 | 
					        "node_modules/d": {
 | 
				
			||||||
@@ -6132,7 +6132,7 @@
 | 
				
			|||||||
        },
 | 
					        },
 | 
				
			||||||
        "node_modules/estree-walker": {
 | 
					        "node_modules/estree-walker": {
 | 
				
			||||||
            "version": "2.0.2",
 | 
					            "version": "2.0.2",
 | 
				
			||||||
            "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz",
 | 
					            "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
 | 
				
			||||||
            "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
 | 
					            "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "node_modules/esutils": {
 | 
					        "node_modules/esutils": {
 | 
				
			||||||
@@ -8144,7 +8144,7 @@
 | 
				
			|||||||
        },
 | 
					        },
 | 
				
			||||||
        "node_modules/magic-string": {
 | 
					        "node_modules/magic-string": {
 | 
				
			||||||
            "version": "0.25.9",
 | 
					            "version": "0.25.9",
 | 
				
			||||||
            "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.25.9.tgz",
 | 
					            "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz",
 | 
				
			||||||
            "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==",
 | 
					            "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==",
 | 
				
			||||||
            "dependencies": {
 | 
					            "dependencies": {
 | 
				
			||||||
                "sourcemap-codec": "^1.4.8"
 | 
					                "sourcemap-codec": "^1.4.8"
 | 
				
			||||||
@@ -11239,7 +11239,7 @@
 | 
				
			|||||||
        },
 | 
					        },
 | 
				
			||||||
        "node_modules/sourcemap-codec": {
 | 
					        "node_modules/sourcemap-codec": {
 | 
				
			||||||
            "version": "1.4.8",
 | 
					            "version": "1.4.8",
 | 
				
			||||||
            "resolved": "https://registry.npmmirror.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
 | 
					            "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
 | 
				
			||||||
            "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==",
 | 
					            "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==",
 | 
				
			||||||
            "deprecated": "Please use @jridgewell/sourcemap-codec instead"
 | 
					            "deprecated": "Please use @jridgewell/sourcemap-codec instead"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
@@ -12517,15 +12517,15 @@
 | 
				
			|||||||
            }
 | 
					            }
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "node_modules/vue": {
 | 
					        "node_modules/vue": {
 | 
				
			||||||
            "version": "3.2.45",
 | 
					            "version": "3.2.47",
 | 
				
			||||||
            "resolved": "https://registry.npmmirror.com/vue/-/vue-3.2.45.tgz",
 | 
					            "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.47.tgz",
 | 
				
			||||||
            "integrity": "sha512-9Nx/Mg2b2xWlXykmCwiTUCWHbWIj53bnkizBxKai1g61f2Xit700A1ljowpTIM11e3uipOeiPcSqnmBg6gyiaA==",
 | 
					            "integrity": "sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ==",
 | 
				
			||||||
            "dependencies": {
 | 
					            "dependencies": {
 | 
				
			||||||
                "@vue/compiler-dom": "3.2.45",
 | 
					                "@vue/compiler-dom": "3.2.47",
 | 
				
			||||||
                "@vue/compiler-sfc": "3.2.45",
 | 
					                "@vue/compiler-sfc": "3.2.47",
 | 
				
			||||||
                "@vue/runtime-dom": "3.2.45",
 | 
					                "@vue/runtime-dom": "3.2.47",
 | 
				
			||||||
                "@vue/server-renderer": "3.2.45",
 | 
					                "@vue/server-renderer": "3.2.47",
 | 
				
			||||||
                "@vue/shared": "3.2.45"
 | 
					                "@vue/shared": "3.2.47"
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "node_modules/vue-cli-plugin-element-plus": {
 | 
					        "node_modules/vue-cli-plugin-element-plus": {
 | 
				
			||||||
@@ -15570,36 +15570,36 @@
 | 
				
			|||||||
            }
 | 
					            }
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "@vue/compiler-core": {
 | 
					        "@vue/compiler-core": {
 | 
				
			||||||
            "version": "3.2.45",
 | 
					            "version": "3.2.47",
 | 
				
			||||||
            "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.2.45.tgz",
 | 
					            "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.47.tgz",
 | 
				
			||||||
            "integrity": "sha512-rcMj7H+PYe5wBV3iYeUgbCglC+pbpN8hBLTJvRiK2eKQiWqu+fG9F+8sW99JdL4LQi7Re178UOxn09puSXvn4A==",
 | 
					            "integrity": "sha512-p4D7FDnQb7+YJmO2iPEv0SQNeNzcbHdGByJDsT4lynf63AFkOTFN07HsiRSvjGo0QrxR/o3d0hUyNCUnBU2Tig==",
 | 
				
			||||||
            "requires": {
 | 
					            "requires": {
 | 
				
			||||||
                "@babel/parser": "^7.16.4",
 | 
					                "@babel/parser": "^7.16.4",
 | 
				
			||||||
                "@vue/shared": "3.2.45",
 | 
					                "@vue/shared": "3.2.47",
 | 
				
			||||||
                "estree-walker": "^2.0.2",
 | 
					                "estree-walker": "^2.0.2",
 | 
				
			||||||
                "source-map": "^0.6.1"
 | 
					                "source-map": "^0.6.1"
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "@vue/compiler-dom": {
 | 
					        "@vue/compiler-dom": {
 | 
				
			||||||
            "version": "3.2.45",
 | 
					            "version": "3.2.47",
 | 
				
			||||||
            "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.2.45.tgz",
 | 
					            "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.47.tgz",
 | 
				
			||||||
            "integrity": "sha512-tyYeUEuKqqZO137WrZkpwfPCdiiIeXYCcJ8L4gWz9vqaxzIQRccTSwSWZ/Axx5YR2z+LvpUbmPNXxuBU45lyRw==",
 | 
					            "integrity": "sha512-dBBnEHEPoftUiS03a4ggEig74J2YBZ2UIeyfpcRM2tavgMWo4bsEfgCGsu+uJIL/vax9S+JztH8NmQerUo7shQ==",
 | 
				
			||||||
            "requires": {
 | 
					            "requires": {
 | 
				
			||||||
                "@vue/compiler-core": "3.2.45",
 | 
					                "@vue/compiler-core": "3.2.47",
 | 
				
			||||||
                "@vue/shared": "3.2.45"
 | 
					                "@vue/shared": "3.2.47"
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "@vue/compiler-sfc": {
 | 
					        "@vue/compiler-sfc": {
 | 
				
			||||||
            "version": "3.2.45",
 | 
					            "version": "3.2.47",
 | 
				
			||||||
            "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.2.45.tgz",
 | 
					            "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.47.tgz",
 | 
				
			||||||
            "integrity": "sha512-1jXDuWah1ggsnSAOGsec8cFjT/K6TMZ0sPL3o3d84Ft2AYZi2jWJgRMjw4iaK0rBfA89L5gw427H4n1RZQBu6Q==",
 | 
					            "integrity": "sha512-rog05W+2IFfxjMcFw10tM9+f7i/+FFpZJJ5XHX72NP9eC2uRD+42M3pYcQqDXVYoj74kHMSEdQ/WmCjt8JFksQ==",
 | 
				
			||||||
            "requires": {
 | 
					            "requires": {
 | 
				
			||||||
                "@babel/parser": "^7.16.4",
 | 
					                "@babel/parser": "^7.16.4",
 | 
				
			||||||
                "@vue/compiler-core": "3.2.45",
 | 
					                "@vue/compiler-core": "3.2.47",
 | 
				
			||||||
                "@vue/compiler-dom": "3.2.45",
 | 
					                "@vue/compiler-dom": "3.2.47",
 | 
				
			||||||
                "@vue/compiler-ssr": "3.2.45",
 | 
					                "@vue/compiler-ssr": "3.2.47",
 | 
				
			||||||
                "@vue/reactivity-transform": "3.2.45",
 | 
					                "@vue/reactivity-transform": "3.2.47",
 | 
				
			||||||
                "@vue/shared": "3.2.45",
 | 
					                "@vue/shared": "3.2.47",
 | 
				
			||||||
                "estree-walker": "^2.0.2",
 | 
					                "estree-walker": "^2.0.2",
 | 
				
			||||||
                "magic-string": "^0.25.7",
 | 
					                "magic-string": "^0.25.7",
 | 
				
			||||||
                "postcss": "^8.1.10",
 | 
					                "postcss": "^8.1.10",
 | 
				
			||||||
@@ -15607,12 +15607,12 @@
 | 
				
			|||||||
            }
 | 
					            }
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "@vue/compiler-ssr": {
 | 
					        "@vue/compiler-ssr": {
 | 
				
			||||||
            "version": "3.2.45",
 | 
					            "version": "3.2.47",
 | 
				
			||||||
            "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.2.45.tgz",
 | 
					            "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.47.tgz",
 | 
				
			||||||
            "integrity": "sha512-6BRaggEGqhWht3lt24CrIbQSRD5O07MTmd+LjAn5fJj568+R9eUD2F7wMQJjX859seSlrYog7sUtrZSd7feqrQ==",
 | 
					            "integrity": "sha512-wVXC+gszhulcMD8wpxMsqSOpvDZ6xKXSVWkf50Guf/S+28hTAXPDYRTbLQ3EDkOP5Xz/+SY37YiwDquKbJOgZw==",
 | 
				
			||||||
            "requires": {
 | 
					            "requires": {
 | 
				
			||||||
                "@vue/compiler-dom": "3.2.45",
 | 
					                "@vue/compiler-dom": "3.2.47",
 | 
				
			||||||
                "@vue/shared": "3.2.45"
 | 
					                "@vue/shared": "3.2.47"
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "@vue/component-compiler-utils": {
 | 
					        "@vue/component-compiler-utils": {
 | 
				
			||||||
@@ -15678,57 +15678,57 @@
 | 
				
			|||||||
            "integrity": "sha512-JD5fcdIuFxU4fQyXUu3w2KpAJHzTVdN+p4iOX2lMWSHMOoQdMAcpFLZzm9Z/2nmsoZ1a96QEhZ26e50xLBsgOQ=="
 | 
					            "integrity": "sha512-JD5fcdIuFxU4fQyXUu3w2KpAJHzTVdN+p4iOX2lMWSHMOoQdMAcpFLZzm9Z/2nmsoZ1a96QEhZ26e50xLBsgOQ=="
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "@vue/reactivity": {
 | 
					        "@vue/reactivity": {
 | 
				
			||||||
            "version": "3.2.45",
 | 
					            "version": "3.2.47",
 | 
				
			||||||
            "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.2.45.tgz",
 | 
					            "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.47.tgz",
 | 
				
			||||||
            "integrity": "sha512-PRvhCcQcyEVohW0P8iQ7HDcIOXRjZfAsOds3N99X/Dzewy8TVhTCT4uXpAHfoKjVTJRA0O0K+6QNkDIZAxNi3A==",
 | 
					            "integrity": "sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ==",
 | 
				
			||||||
            "requires": {
 | 
					            "requires": {
 | 
				
			||||||
                "@vue/shared": "3.2.45"
 | 
					                "@vue/shared": "3.2.47"
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "@vue/reactivity-transform": {
 | 
					        "@vue/reactivity-transform": {
 | 
				
			||||||
            "version": "3.2.45",
 | 
					            "version": "3.2.47",
 | 
				
			||||||
            "resolved": "https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.2.45.tgz",
 | 
					            "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.47.tgz",
 | 
				
			||||||
            "integrity": "sha512-BHVmzYAvM7vcU5WmuYqXpwaBHjsS8T63jlKGWVtHxAHIoMIlmaMyurUSEs1Zcg46M4AYT5MtB1U274/2aNzjJQ==",
 | 
					            "integrity": "sha512-m8lGXw8rdnPVVIdIFhf0LeQ/ixyHkH5plYuS83yop5n7ggVJU+z5v0zecwEnX7fa7HNLBhh2qngJJkxpwEEmYA==",
 | 
				
			||||||
            "requires": {
 | 
					            "requires": {
 | 
				
			||||||
                "@babel/parser": "^7.16.4",
 | 
					                "@babel/parser": "^7.16.4",
 | 
				
			||||||
                "@vue/compiler-core": "3.2.45",
 | 
					                "@vue/compiler-core": "3.2.47",
 | 
				
			||||||
                "@vue/shared": "3.2.45",
 | 
					                "@vue/shared": "3.2.47",
 | 
				
			||||||
                "estree-walker": "^2.0.2",
 | 
					                "estree-walker": "^2.0.2",
 | 
				
			||||||
                "magic-string": "^0.25.7"
 | 
					                "magic-string": "^0.25.7"
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "@vue/runtime-core": {
 | 
					        "@vue/runtime-core": {
 | 
				
			||||||
            "version": "3.2.45",
 | 
					            "version": "3.2.47",
 | 
				
			||||||
            "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.2.45.tgz",
 | 
					            "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.47.tgz",
 | 
				
			||||||
            "integrity": "sha512-gzJiTA3f74cgARptqzYswmoQx0fIA+gGYBfokYVhF8YSXjWTUA2SngRzZRku2HbGbjzB6LBYSbKGIaK8IW+s0A==",
 | 
					            "integrity": "sha512-RZxbLQIRB/K0ev0K9FXhNbBzT32H9iRtYbaXb0ZIz2usLms/D55dJR2t6cIEUn6vyhS3ALNvNthI+Q95C+NOpA==",
 | 
				
			||||||
            "requires": {
 | 
					            "requires": {
 | 
				
			||||||
                "@vue/reactivity": "3.2.45",
 | 
					                "@vue/reactivity": "3.2.47",
 | 
				
			||||||
                "@vue/shared": "3.2.45"
 | 
					                "@vue/shared": "3.2.47"
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "@vue/runtime-dom": {
 | 
					        "@vue/runtime-dom": {
 | 
				
			||||||
            "version": "3.2.45",
 | 
					            "version": "3.2.47",
 | 
				
			||||||
            "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.2.45.tgz",
 | 
					            "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.47.tgz",
 | 
				
			||||||
            "integrity": "sha512-cy88YpfP5Ue2bDBbj75Cb4bIEZUMM/mAkDMfqDTpUYVgTf/kuQ2VQ8LebuZ8k6EudgH8pYhsGWHlY0lcxlvTwA==",
 | 
					            "integrity": "sha512-ArXrFTjS6TsDei4qwNvgrdmHtD930KgSKGhS5M+j8QxXrDJYLqYw4RRcDy1bz1m1wMmb6j+zGLifdVHtkXA7gA==",
 | 
				
			||||||
            "requires": {
 | 
					            "requires": {
 | 
				
			||||||
                "@vue/runtime-core": "3.2.45",
 | 
					                "@vue/runtime-core": "3.2.47",
 | 
				
			||||||
                "@vue/shared": "3.2.45",
 | 
					                "@vue/shared": "3.2.47",
 | 
				
			||||||
                "csstype": "^2.6.8"
 | 
					                "csstype": "^2.6.8"
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "@vue/server-renderer": {
 | 
					        "@vue/server-renderer": {
 | 
				
			||||||
            "version": "3.2.45",
 | 
					            "version": "3.2.47",
 | 
				
			||||||
            "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.2.45.tgz",
 | 
					            "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.47.tgz",
 | 
				
			||||||
            "integrity": "sha512-ebiMq7q24WBU1D6uhPK//2OTR1iRIyxjF5iVq/1a5I1SDMDyDu4Ts6fJaMnjrvD3MqnaiFkKQj+LKAgz5WIK3g==",
 | 
					            "integrity": "sha512-dN9gc1i8EvmP9RCzvneONXsKfBRgqFeFZLurmHOveL7oH6HiFXJw5OGu294n1nHc/HMgTy6LulU/tv5/A7f/LA==",
 | 
				
			||||||
            "requires": {
 | 
					            "requires": {
 | 
				
			||||||
                "@vue/compiler-ssr": "3.2.45",
 | 
					                "@vue/compiler-ssr": "3.2.47",
 | 
				
			||||||
                "@vue/shared": "3.2.45"
 | 
					                "@vue/shared": "3.2.47"
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "@vue/shared": {
 | 
					        "@vue/shared": {
 | 
				
			||||||
            "version": "3.2.45",
 | 
					            "version": "3.2.47",
 | 
				
			||||||
            "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.2.45.tgz",
 | 
					            "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.47.tgz",
 | 
				
			||||||
            "integrity": "sha512-Ewzq5Yhimg7pSztDV+RH1UDKBzmtqieXQlpTVm2AwraoRL/Rks96mvd8Vgi7Lj+h+TH8dv7mXD3FRZR3TUvbSg=="
 | 
					            "integrity": "sha512-BHGyyGN3Q97EZx0taMQ+OLNuZcW3d37ZEVmEAyeoA9ERdGvm9Irc/0Fua8SNyOtV1w6BS4q25wbMzJujO9HIfQ=="
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "@vue/vue-loader-v15": {
 | 
					        "@vue/vue-loader-v15": {
 | 
				
			||||||
            "version": "npm:vue-loader@15.10.1",
 | 
					            "version": "npm:vue-loader@15.10.1",
 | 
				
			||||||
@@ -17286,7 +17286,7 @@
 | 
				
			|||||||
        },
 | 
					        },
 | 
				
			||||||
        "csstype": {
 | 
					        "csstype": {
 | 
				
			||||||
            "version": "2.6.21",
 | 
					            "version": "2.6.21",
 | 
				
			||||||
            "resolved": "https://registry.npmmirror.com/csstype/-/csstype-2.6.21.tgz",
 | 
					            "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz",
 | 
				
			||||||
            "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w=="
 | 
					            "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w=="
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "d": {
 | 
					        "d": {
 | 
				
			||||||
@@ -18166,7 +18166,7 @@
 | 
				
			|||||||
        },
 | 
					        },
 | 
				
			||||||
        "estree-walker": {
 | 
					        "estree-walker": {
 | 
				
			||||||
            "version": "2.0.2",
 | 
					            "version": "2.0.2",
 | 
				
			||||||
            "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz",
 | 
					            "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
 | 
				
			||||||
            "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
 | 
					            "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "esutils": {
 | 
					        "esutils": {
 | 
				
			||||||
@@ -19794,7 +19794,7 @@
 | 
				
			|||||||
        },
 | 
					        },
 | 
				
			||||||
        "magic-string": {
 | 
					        "magic-string": {
 | 
				
			||||||
            "version": "0.25.9",
 | 
					            "version": "0.25.9",
 | 
				
			||||||
            "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.25.9.tgz",
 | 
					            "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz",
 | 
				
			||||||
            "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==",
 | 
					            "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==",
 | 
				
			||||||
            "requires": {
 | 
					            "requires": {
 | 
				
			||||||
                "sourcemap-codec": "^1.4.8"
 | 
					                "sourcemap-codec": "^1.4.8"
 | 
				
			||||||
@@ -22208,7 +22208,7 @@
 | 
				
			|||||||
        },
 | 
					        },
 | 
				
			||||||
        "sourcemap-codec": {
 | 
					        "sourcemap-codec": {
 | 
				
			||||||
            "version": "1.4.8",
 | 
					            "version": "1.4.8",
 | 
				
			||||||
            "resolved": "https://registry.npmmirror.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
 | 
					            "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
 | 
				
			||||||
            "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA=="
 | 
					            "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA=="
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "spdx-correct": {
 | 
					        "spdx-correct": {
 | 
				
			||||||
@@ -23235,15 +23235,15 @@
 | 
				
			|||||||
            "dev": true
 | 
					            "dev": true
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "vue": {
 | 
					        "vue": {
 | 
				
			||||||
            "version": "3.2.45",
 | 
					            "version": "3.2.47",
 | 
				
			||||||
            "resolved": "https://registry.npmmirror.com/vue/-/vue-3.2.45.tgz",
 | 
					            "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.47.tgz",
 | 
				
			||||||
            "integrity": "sha512-9Nx/Mg2b2xWlXykmCwiTUCWHbWIj53bnkizBxKai1g61f2Xit700A1ljowpTIM11e3uipOeiPcSqnmBg6gyiaA==",
 | 
					            "integrity": "sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ==",
 | 
				
			||||||
            "requires": {
 | 
					            "requires": {
 | 
				
			||||||
                "@vue/compiler-dom": "3.2.45",
 | 
					                "@vue/compiler-dom": "3.2.47",
 | 
				
			||||||
                "@vue/compiler-sfc": "3.2.45",
 | 
					                "@vue/compiler-sfc": "3.2.47",
 | 
				
			||||||
                "@vue/runtime-dom": "3.2.45",
 | 
					                "@vue/runtime-dom": "3.2.47",
 | 
				
			||||||
                "@vue/server-renderer": "3.2.45",
 | 
					                "@vue/server-renderer": "3.2.47",
 | 
				
			||||||
                "@vue/shared": "3.2.45"
 | 
					                "@vue/shared": "3.2.47"
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "vue-cli-plugin-element-plus": {
 | 
					        "vue-cli-plugin-element-plus": {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,14 +2,14 @@
 | 
				
			|||||||
 * @Author: Kane
 | 
					 * @Author: Kane
 | 
				
			||||||
 * @Date: 2023-01-04 11:05:44
 | 
					 * @Date: 2023-01-04 11:05:44
 | 
				
			||||||
 * @LastEditors: Kane
 | 
					 * @LastEditors: Kane
 | 
				
			||||||
 * @LastEditTime: 2023-01-28 23:35:47
 | 
					 * @LastEditTime: 2023-02-04 01:02:13
 | 
				
			||||||
 * @FilePath: \admin_system\src\layout\Index.vue
 | 
					 * @FilePath: \IT工具综合平台\src\layout\Index.vue
 | 
				
			||||||
 * @Description: 
 | 
					 * @Description: 
 | 
				
			||||||
 * 
 | 
					 * 
 | 
				
			||||||
 * Copyright (c) ${2022} by Kane, All Rights Reserved. 
 | 
					 * Copyright (c) ${2022} by Kane, All Rights Reserved. 
 | 
				
			||||||
-->
 | 
					-->
 | 
				
			||||||
<template>
 | 
					<template>
 | 
				
			||||||
  <el-container id="layout-container">
 | 
					  <el-container id="layout-container" v-loading="pageVisible" element-loading-text="载入应用数据…">
 | 
				
			||||||
    <el-header id="layout-header">
 | 
					    <el-header id="layout-header">
 | 
				
			||||||
      <LayoutHeader />
 | 
					      <LayoutHeader />
 | 
				
			||||||
    </el-header>
 | 
					    </el-header>
 | 
				
			||||||
@@ -36,6 +36,12 @@ export default {
 | 
				
			|||||||
    LayoutHeader,
 | 
					    LayoutHeader,
 | 
				
			||||||
    LayoutMain,
 | 
					    LayoutMain,
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
					  data()
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    return {
 | 
				
			||||||
 | 
					      pageVisible: true,
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
  computed: {
 | 
					  computed: {
 | 
				
			||||||
    asideWidth()
 | 
					    asideWidth()
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
@@ -44,6 +50,13 @@ export default {
 | 
				
			|||||||
      return collapse === true ? "65px" : "180px";
 | 
					      return collapse === true ? "65px" : "180px";
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
					  mounted()
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    setTimeout(() =>
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      this.pageVisible = false;
 | 
				
			||||||
 | 
					    }, 3000);
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
</script>
 | 
					</script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,14 +2,14 @@
 | 
				
			|||||||
 * @Author: Kane
 | 
					 * @Author: Kane
 | 
				
			||||||
 * @Date: 2023-01-04 11:30:33
 | 
					 * @Date: 2023-01-04 11:30:33
 | 
				
			||||||
 * @LastEditors: Kane
 | 
					 * @LastEditors: Kane
 | 
				
			||||||
 * @LastEditTime: 2023-01-28 16:01:49
 | 
					 * @LastEditTime: 2023-02-04 01:15:34
 | 
				
			||||||
 * @FilePath: \admin_system\src\layout\components\Aside.vue
 | 
					 * @FilePath: \IT工具综合平台\src\layout\components\Aside.vue
 | 
				
			||||||
 * @Description: 
 | 
					 * @Description: 
 | 
				
			||||||
 * 
 | 
					 * 
 | 
				
			||||||
 * Copyright (c) ${2022} by Kane, All Rights Reserved.  223142 2f4156
 | 
					 * Copyright (c) ${2022} by Kane, All Rights Reserved.  223142 2f4156
 | 
				
			||||||
-->
 | 
					-->
 | 
				
			||||||
<template>
 | 
					<template>
 | 
				
			||||||
    <el-scrollbar class="wrapper">
 | 
					    <el-scrollbar class="wrapper" height="400px">
 | 
				
			||||||
        <el-menu id="side-bar" router :default-active="currentPath" background-color="#2f4156" text-color="#fff"
 | 
					        <el-menu id="side-bar" router :default-active="currentPath" background-color="#2f4156" text-color="#fff"
 | 
				
			||||||
            active-text-color="#ffd04b" :collapse="asideCollapse">
 | 
					            active-text-color="#ffd04b" :collapse="asideCollapse">
 | 
				
			||||||
            <template v-for="route in this.routers" :key="route.path">
 | 
					            <template v-for="route in this.routers" :key="route.path">
 | 
				
			||||||
@@ -120,11 +120,21 @@ export default {
 | 
				
			|||||||
    user-select: none;
 | 
					    user-select: none;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.is-active {
 | 
					.el-menu-item {
 | 
				
			||||||
    background-color: #ffffff4f !important;
 | 
					    font-weight: normal;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.el-sub-menu {
 | 
				
			||||||
 | 
					    font-weight: normal;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 顺序必须在上面两个之后*/
 | 
				
			||||||
 | 
					.is-active {
 | 
				
			||||||
 | 
					    background-color: #ffffff4f !important;
 | 
				
			||||||
 | 
					    /* font-weight: 1000; */
 | 
				
			||||||
 | 
					    /* font-size: 15px; */
 | 
				
			||||||
 | 
					    color: #ffd04b;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* .is-opened {
 | 
					/* .is-opened {
 | 
				
			||||||
    border-left: 5px solid #1d74b2;
 | 
					    border-left: 5px solid #1d74b2;
 | 
				
			||||||
@@ -146,5 +156,6 @@ export default {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
.wrapper {
 | 
					.wrapper {
 | 
				
			||||||
    height: 100%;
 | 
					    height: 100%;
 | 
				
			||||||
 | 
					    /* min-height: 400px; */
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
</style>
 | 
					</style>
 | 
				
			||||||
@@ -2,8 +2,8 @@
 | 
				
			|||||||
 * @Author: Kane
 | 
					 * @Author: Kane
 | 
				
			||||||
 * @Date: 2023-01-04 11:39:04
 | 
					 * @Date: 2023-01-04 11:39:04
 | 
				
			||||||
 * @LastEditors: Kane
 | 
					 * @LastEditors: Kane
 | 
				
			||||||
 * @LastEditTime: 2023-01-19 14:53:38
 | 
					 * @LastEditTime: 2023-02-04 01:09:49
 | 
				
			||||||
 * @FilePath: \admin_system\src\layout\components\Header.vue
 | 
					 * @FilePath: \IT工具综合平台\src\layout\components\Header.vue
 | 
				
			||||||
 * @Description: 
 | 
					 * @Description: 
 | 
				
			||||||
 * 
 | 
					 * 
 | 
				
			||||||
 * Copyright (c) ${2022} by Kane, All Rights Reserved. 
 | 
					 * Copyright (c) ${2022} by Kane, All Rights Reserved. 
 | 
				
			||||||
@@ -16,13 +16,8 @@
 | 
				
			|||||||
      <div>3.6.7 x64 Build 202208301257</div>
 | 
					      <div>3.6.7 x64 Build 202208301257</div>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
    <div class="buttons_div">
 | 
					    <div class="buttons_div">
 | 
				
			||||||
      <User
 | 
					      <User style="width: 25px; height; 25px; margin-right: 8px; cursor:pointer;" />
 | 
				
			||||||
        style="width: 25px; height; 25px; margin-right: 8px; cursor:pointer;"
 | 
					      <SwitchButton style="width: 25px; height; 25px; margin-right: 8px; cursor:pointer;" @click="logout" />
 | 
				
			||||||
      />
 | 
					 | 
				
			||||||
      <SwitchButton
 | 
					 | 
				
			||||||
        style="width: 25px; height; 25px; margin-right: 8px; cursor:pointer;"
 | 
					 | 
				
			||||||
        @click="logout"
 | 
					 | 
				
			||||||
      />
 | 
					 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
  </div>
 | 
					  </div>
 | 
				
			||||||
</template>
 | 
					</template>
 | 
				
			||||||
@@ -33,22 +28,26 @@ import { Logout } from "../../utils/api/info/account";
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
export default {
 | 
					export default {
 | 
				
			||||||
  name: "AppBanner",
 | 
					  name: "AppBanner",
 | 
				
			||||||
  data() {
 | 
					  data()
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
    return {};
 | 
					    return {};
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  // created() {
 | 
					  // created() {
 | 
				
			||||||
  //   console.log("banner请求数据!");
 | 
					  //   console.log("banner请求数据!");
 | 
				
			||||||
  // },
 | 
					  // },
 | 
				
			||||||
  mounted() {
 | 
					  mounted()
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
    //console.log("banner请求数据!");
 | 
					    //console.log("banner请求数据!");
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  methods: {
 | 
					  methods: {
 | 
				
			||||||
    logout() {
 | 
					    logout()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
      this.$confirm("是否退出系统?", "请确认", {
 | 
					      this.$confirm("是否退出系统?", "请确认", {
 | 
				
			||||||
        confirmButtonText: "是",
 | 
					        confirmButtonText: "是",
 | 
				
			||||||
        cancelButtonText: "否",
 | 
					        cancelButtonText: "否",
 | 
				
			||||||
        type: "warning",
 | 
					        type: "warning",
 | 
				
			||||||
      }).then(() => {
 | 
					      }).then(() =>
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
        Logout();
 | 
					        Logout();
 | 
				
			||||||
      });
 | 
					      });
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
@@ -80,7 +79,7 @@ export default {
 | 
				
			|||||||
  user-select: none;
 | 
					  user-select: none;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.app_banner > * + * {
 | 
					.app_banner>*+* {
 | 
				
			||||||
  margin-left: 10px;
 | 
					  margin-left: 10px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,9 +2,9 @@
 | 
				
			|||||||
 * @Author: Kane
 | 
					 * @Author: Kane
 | 
				
			||||||
 * @Date: 2022-12-22 09:10:20
 | 
					 * @Date: 2022-12-22 09:10:20
 | 
				
			||||||
 * @LastEditors: Kane
 | 
					 * @LastEditors: Kane
 | 
				
			||||||
 * @LastEditTime: 2023-01-25 00:29:54
 | 
					 * @LastEditTime: 2023-02-03 22:04:22
 | 
				
			||||||
 * @FilePath: \admin_system\src\utils\api\info\account.js
 | 
					 * @FilePath: \IT工具综合平台\src\utils\api\info\account.js
 | 
				
			||||||
 * @Description:
 | 
					 * @Description: 登录登出相关的API。
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * Copyright (c) ${2022} by Kane, All Rights Reserved.
 | 
					 * Copyright (c) ${2022} by Kane, All Rights Reserved.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
@@ -20,8 +20,6 @@ import store from "../../../store/index";
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
export function Login(userInfo)
 | 
					export function Login(userInfo)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    //console.log("登录请求地址:", API_URL.URL_LOGIN);
 | 
					 | 
				
			||||||
    //const url = "http://localhost:8080/admin-system/account/p13_account_check";
 | 
					 | 
				
			||||||
    return instance.request(
 | 
					    return instance.request(
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            method: "post",
 | 
					            method: "post",
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,259 +0,0 @@
 | 
				
			|||||||
<!-- eslint-disable no-unused-vars -->
 | 
					 | 
				
			||||||
<!--
 | 
					 | 
				
			||||||
 * @Author: Kane
 | 
					 | 
				
			||||||
 * @Date: 2022-12-14 15:23:54
 | 
					 | 
				
			||||||
 * @LastEditors: Kane
 | 
					 | 
				
			||||||
 * @LastEditTime: 2023-01-28 21:35:47
 | 
					 | 
				
			||||||
 * @FilePath: \admin_system\src\views\account\Login.vue
 | 
					 | 
				
			||||||
 * @Description: 
 | 
					 | 
				
			||||||
 * 
 | 
					 | 
				
			||||||
 * Copyright (c) ${2022} by Kane, All Rights Reserved. 
 | 
					 | 
				
			||||||
-->
 | 
					 | 
				
			||||||
<template>
 | 
					 | 
				
			||||||
  <div id="login">
 | 
					 | 
				
			||||||
    <div class="form-warp">
 | 
					 | 
				
			||||||
      <ul class="menu-tab">
 | 
					 | 
				
			||||||
        <li :class="{ 'current': current_menu === item.type }" @click="onToggleMenu(item.type)" v-for="item in tab_menu"
 | 
					 | 
				
			||||||
          :key="item.type">{{ item.label }}
 | 
					 | 
				
			||||||
        </li>
 | 
					 | 
				
			||||||
      </ul>
 | 
					 | 
				
			||||||
      <!-- <el-form ref="form" :model="form"> -->
 | 
					 | 
				
			||||||
      <el-form ref="form">
 | 
					 | 
				
			||||||
        <el-form-item>
 | 
					 | 
				
			||||||
          <label class="form-label">用户名</label>
 | 
					 | 
				
			||||||
          <el-input type="text" v-model.lazy.trim="loginForm.username"></el-input>
 | 
					 | 
				
			||||||
        </el-form-item>
 | 
					 | 
				
			||||||
        <el-form-item>
 | 
					 | 
				
			||||||
          <label class="form-label">密码</label>
 | 
					 | 
				
			||||||
          <el-input type="password" v-model.lazy.trim="loginForm.password"></el-input>
 | 
					 | 
				
			||||||
        </el-form-item>
 | 
					 | 
				
			||||||
        <el-form-item v-show="current_menu === tab_menu[1].type">
 | 
					 | 
				
			||||||
          <label class="form-label">确认密码</label>
 | 
					 | 
				
			||||||
          <el-input type="password" disabled v-model.lazy.trim="loginForm.confirm_password"></el-input>
 | 
					 | 
				
			||||||
        </el-form-item>
 | 
					 | 
				
			||||||
        <el-form-item>
 | 
					 | 
				
			||||||
          <label class="form-label">验证码</label>
 | 
					 | 
				
			||||||
          <el-row :gutter="10">
 | 
					 | 
				
			||||||
            <el-col :span="14">
 | 
					 | 
				
			||||||
              <el-input type="text" disabled></el-input>
 | 
					 | 
				
			||||||
            </el-col>
 | 
					 | 
				
			||||||
            <el-col :span="10">
 | 
					 | 
				
			||||||
              <el-button type="danger" disabled class="el-button-block" @click="getValidateCode()">获取验证码</el-button>
 | 
					 | 
				
			||||||
            </el-col>
 | 
					 | 
				
			||||||
          </el-row>
 | 
					 | 
				
			||||||
        </el-form-item>
 | 
					 | 
				
			||||||
        <el-form-item>
 | 
					 | 
				
			||||||
          <el-button type="primary" class="el-button-block" @click="login" :disabled="submit_btn_disable"
 | 
					 | 
				
			||||||
            :loading="submit_btn_loading">
 | 
					 | 
				
			||||||
            {{ current_menu === "login" ? "登录" : "注册" }}
 | 
					 | 
				
			||||||
          </el-button>
 | 
					 | 
				
			||||||
        </el-form-item>
 | 
					 | 
				
			||||||
      </el-form>
 | 
					 | 
				
			||||||
    </div>
 | 
					 | 
				
			||||||
  </div>
 | 
					 | 
				
			||||||
</template>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<script>
 | 
					 | 
				
			||||||
import { Login } from "@/utils/api/info/account";
 | 
					 | 
				
			||||||
import { ElMessage } from "element-plus";
 | 
					 | 
				
			||||||
import router from "../../router/index";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export default {
 | 
					 | 
				
			||||||
  name: "loginPage",
 | 
					 | 
				
			||||||
  data()
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    return {
 | 
					 | 
				
			||||||
      loginForm: {
 | 
					 | 
				
			||||||
        username: "",
 | 
					 | 
				
			||||||
        password: "",
 | 
					 | 
				
			||||||
        confirm_password: "",
 | 
					 | 
				
			||||||
        validateCode: "",
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      tab_menu: [
 | 
					 | 
				
			||||||
        { type: "login", label: "登录" },
 | 
					 | 
				
			||||||
        { type: "regiester", label: "注册" },
 | 
					 | 
				
			||||||
      ],
 | 
					 | 
				
			||||||
      current_menu: "",
 | 
					 | 
				
			||||||
      staffInfo: null,
 | 
					 | 
				
			||||||
      submit_btn_disable: false,
 | 
					 | 
				
			||||||
      submit_btn_loading: false,
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  methods: {
 | 
					 | 
				
			||||||
    onToggleMenu(type)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      this.current_menu = type;
 | 
					 | 
				
			||||||
      console.log(process.env.VUE_APP_API_URL_LOGIN);
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    getValidateCode()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      ElMessage({
 | 
					 | 
				
			||||||
        message: "测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字测试文字",
 | 
					 | 
				
			||||||
        center: true,
 | 
					 | 
				
			||||||
        type: "error",
 | 
					 | 
				
			||||||
      });
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    /**
 | 
					 | 
				
			||||||
     * 登录
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    login()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      if (this.loginForm.username.length === 0 || this.loginForm.password === 0)
 | 
					 | 
				
			||||||
      {
 | 
					 | 
				
			||||||
        ElMessage({
 | 
					 | 
				
			||||||
          message: "请填写您的P13账号和密码!",
 | 
					 | 
				
			||||||
          type: "error",
 | 
					 | 
				
			||||||
        });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        return;
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      this.submit_btn_disable = true;
 | 
					 | 
				
			||||||
      this.submit_btn_loading = true;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      const userInfo = {
 | 
					 | 
				
			||||||
        p13account: this.loginForm.username,
 | 
					 | 
				
			||||||
        password: this.loginForm.password,
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      Login(userInfo)
 | 
					 | 
				
			||||||
        .then((response) =>
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
          //成功获取到返回值时的响应函数,要判断返回值的成功标志
 | 
					 | 
				
			||||||
          //验证成功,将获取到的token和用户信息保存到vuex和localStoreage
 | 
					 | 
				
			||||||
          //然后router.push,进行路由跳转到控制台
 | 
					 | 
				
			||||||
          const data = response.data;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
          //判断是否成功,显示提示信息
 | 
					 | 
				
			||||||
          if (data.success === true)
 | 
					 | 
				
			||||||
          {
 | 
					 | 
				
			||||||
            ElMessage({
 | 
					 | 
				
			||||||
              message: data.message,
 | 
					 | 
				
			||||||
              type: "success",
 | 
					 | 
				
			||||||
              center: true,
 | 
					 | 
				
			||||||
            });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            this.staffInfo = data.staffInfo;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            //保存用户信息和token
 | 
					 | 
				
			||||||
            this.saveUserInfo(data);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            //验证成功,跳转路由
 | 
					 | 
				
			||||||
            router.push("/Desktop");
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
          else
 | 
					 | 
				
			||||||
          {
 | 
					 | 
				
			||||||
            //验证失败
 | 
					 | 
				
			||||||
            ElMessage({
 | 
					 | 
				
			||||||
              message: data.message,
 | 
					 | 
				
			||||||
              type: "error",
 | 
					 | 
				
			||||||
              center: true,
 | 
					 | 
				
			||||||
            });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            this.submit_btn_disable = false;
 | 
					 | 
				
			||||||
            this.submit_btn_loading = false;
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
        })
 | 
					 | 
				
			||||||
        .catch((error) =>
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
          //没有获取到响应数据
 | 
					 | 
				
			||||||
          console.log(error);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
          ElMessage({
 | 
					 | 
				
			||||||
            message: error.message,
 | 
					 | 
				
			||||||
            type: "error",
 | 
					 | 
				
			||||||
            center: true,
 | 
					 | 
				
			||||||
          });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
          this.submit_btn_disable = false;
 | 
					 | 
				
			||||||
          this.submit_btn_loading = false;
 | 
					 | 
				
			||||||
        });
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    saveUserInfo(userInfo) //将获取到的用户信息和token保存到vuex和localStorage
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      //保存到vuex
 | 
					 | 
				
			||||||
      this.$store.commit("app/SET_USERINFO", userInfo);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      //保存到localStorage
 | 
					 | 
				
			||||||
      const token = userInfo.token;
 | 
					 | 
				
			||||||
      const userInfoJson = JSON.stringify(userInfo);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      window.localStorage.setItem("token", token);
 | 
					 | 
				
			||||||
      window.localStorage.setItem("user_info", userInfoJson);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  created()
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    //初始化菜单选项
 | 
					 | 
				
			||||||
    this.current_menu = this.tab_menu[0].type;
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  mounted()
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    //清理状态
 | 
					 | 
				
			||||||
    this.$store.state.app.userInfo = null;
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
</script>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<style scoped>
 | 
					 | 
				
			||||||
#login {
 | 
					 | 
				
			||||||
  height: 100vh;
 | 
					 | 
				
			||||||
  background-color: #344a5f;
 | 
					 | 
				
			||||||
  padding-top: 50px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.form-warp {
 | 
					 | 
				
			||||||
  width: 320px;
 | 
					 | 
				
			||||||
  padding: 30px;
 | 
					 | 
				
			||||||
  margin: auto;
 | 
					 | 
				
			||||||
  background-color: #ffffff10;
 | 
					 | 
				
			||||||
  border-radius: 5px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/*.menu-tab {
 | 
					 | 
				
			||||||
  text-align: center;
 | 
					 | 
				
			||||||
  margin-bottom: 15px;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  li {
 | 
					 | 
				
			||||||
    display: inline-block;
 | 
					 | 
				
			||||||
    padding: 10px 24px;
 | 
					 | 
				
			||||||
    margin: 0 10px;
 | 
					 | 
				
			||||||
    color: #fff;
 | 
					 | 
				
			||||||
    font-size: 16px;
 | 
					 | 
				
			||||||
    border-radius: 5px;
 | 
					 | 
				
			||||||
    cursor: pointer;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    &.current {
 | 
					 | 
				
			||||||
      background-color: rgba(0, 0, 0, 0.1);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}*/
 | 
					 | 
				
			||||||
.menu-tab {
 | 
					 | 
				
			||||||
  text-align: center;
 | 
					 | 
				
			||||||
  margin-bottom: 15px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.menu-tab li {
 | 
					 | 
				
			||||||
  display: inline-block;
 | 
					 | 
				
			||||||
  padding: 10px 24px;
 | 
					 | 
				
			||||||
  margin: 0 10px;
 | 
					 | 
				
			||||||
  color: #fff;
 | 
					 | 
				
			||||||
  font-size: 14px;
 | 
					 | 
				
			||||||
  border-radius: 5px;
 | 
					 | 
				
			||||||
  cursor: pointer;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.menu-tab .current {
 | 
					 | 
				
			||||||
  background-color: rgba(0, 0, 0, 0.1);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.form-label {
 | 
					 | 
				
			||||||
  display: block;
 | 
					 | 
				
			||||||
  color: #fff;
 | 
					 | 
				
			||||||
  font-size: 14px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.el-button-block {
 | 
					 | 
				
			||||||
  width: 100%;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
</style>
 | 
					 | 
				
			||||||
@@ -2,14 +2,14 @@
 | 
				
			|||||||
 * @Author: Kane
 | 
					 * @Author: Kane
 | 
				
			||||||
 * @Date: 2023-02-02 22:19:12
 | 
					 * @Date: 2023-02-02 22:19:12
 | 
				
			||||||
 * @LastEditors: Kane
 | 
					 * @LastEditors: Kane
 | 
				
			||||||
 * @LastEditTime: 2023-02-03 18:49:39
 | 
					 * @LastEditTime: 2023-02-04 00:51:35
 | 
				
			||||||
 * @FilePath: \IT工具综合平台\src\views\requirement\RequirementManager.vue
 | 
					 * @FilePath: \IT工具综合平台\src\views\requirement\RequirementManager.vue
 | 
				
			||||||
 * @Description: 
 | 
					 * @Description: 
 | 
				
			||||||
 * 
 | 
					 * 
 | 
				
			||||||
 * Copyright (c) ${2022} by Kane, All Rights Reserved. 
 | 
					 * Copyright (c) ${2022} by Kane, All Rights Reserved. 
 | 
				
			||||||
-->
 | 
					-->
 | 
				
			||||||
<template>
 | 
					<template>
 | 
				
			||||||
    <div class="requirement_wrapper">
 | 
					    <div class="requirement_wrapper" v-loading="ui.pageVisible">
 | 
				
			||||||
        <!-- 查询框 -->
 | 
					        <!-- 查询框 -->
 | 
				
			||||||
        <div class="search-box">
 | 
					        <div class="search-box">
 | 
				
			||||||
            <el-row :gutter="10">
 | 
					            <el-row :gutter="10">
 | 
				
			||||||
@@ -246,6 +246,7 @@ export default {
 | 
				
			|||||||
                table_page_size: 10,
 | 
					                table_page_size: 10,
 | 
				
			||||||
                dialogRequirementDetailVisible: false, //需求详情对话框是否显示
 | 
					                dialogRequirementDetailVisible: false, //需求详情对话框是否显示
 | 
				
			||||||
                dialogRequirementDetailLoadingVisible: true,
 | 
					                dialogRequirementDetailLoadingVisible: true,
 | 
				
			||||||
 | 
					                pageVisible: false,
 | 
				
			||||||
                activeTabName: "requirement-detail",
 | 
					                activeTabName: "requirement-detail",
 | 
				
			||||||
                requirement_status: [
 | 
					                requirement_status: [
 | 
				
			||||||
                    "未提交", "部门审核", "需求分析", "技术开发", "待发布", "已发布", "被退回",
 | 
					                    "未提交", "部门审核", "需求分析", "技术开发", "待发布", "已发布", "被退回",
 | 
				
			||||||
@@ -287,6 +288,7 @@ export default {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        const addNewRequirement = () =>
 | 
					        const addNewRequirement = () =>
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            router.push({
 | 
					            router.push({
 | 
				
			||||||
                name: "RequirementEditing",
 | 
					                name: "RequirementEditing",
 | 
				
			||||||
                query: {
 | 
					                query: {
 | 
				
			||||||
@@ -309,6 +311,7 @@ export default {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        const showRequirementDetail = (serial_no) =>
 | 
					        const showRequirementDetail = (serial_no) =>
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 | 
					            console.log("状态", query_param.status);
 | 
				
			||||||
            setTimeout(() =>
 | 
					            setTimeout(() =>
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                ui.dialogRequirementDetailLoadingVisible = false;
 | 
					                ui.dialogRequirementDetailLoadingVisible = false;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,458 +0,0 @@
 | 
				
			|||||||
<!--
 | 
					 | 
				
			||||||
 * @Author: Kane
 | 
					 | 
				
			||||||
 * @Date: 2023-01-25 23:13:47
 | 
					 | 
				
			||||||
 * @LastEditors: Kane
 | 
					 | 
				
			||||||
 * @LastEditTime: 2023-02-02 22:16:13
 | 
					 | 
				
			||||||
 * @FilePath: \IT工具综合平台\src\views\requirement\RequirementManager.vue
 | 
					 | 
				
			||||||
 * @Description: 
 | 
					 | 
				
			||||||
 * 
 | 
					 | 
				
			||||||
 * Copyright (c) ${2022} by Kane, All Rights Reserved. 
 | 
					 | 
				
			||||||
-->
 | 
					 | 
				
			||||||
<template>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    <div class="requirement_wrapper">
 | 
					 | 
				
			||||||
        <!-- 查询框 -->
 | 
					 | 
				
			||||||
        <div class="search-box">
 | 
					 | 
				
			||||||
            <el-row :gutter="10">
 | 
					 | 
				
			||||||
                <el-col :span="2">
 | 
					 | 
				
			||||||
                    <span>标题:</span>
 | 
					 | 
				
			||||||
                </el-col>
 | 
					 | 
				
			||||||
                <el-col :span="16">
 | 
					 | 
				
			||||||
                    <el-input v-model.trim.lazy="this.query_param.title"></el-input>
 | 
					 | 
				
			||||||
                </el-col>
 | 
					 | 
				
			||||||
            </el-row>
 | 
					 | 
				
			||||||
            <el-row :gutter="10">
 | 
					 | 
				
			||||||
                <el-col :span="2">
 | 
					 | 
				
			||||||
                    <span>需求编号:</span>
 | 
					 | 
				
			||||||
                </el-col>
 | 
					 | 
				
			||||||
                <el-col :span="4">
 | 
					 | 
				
			||||||
                    <el-input v-model.trim.lazy="query_param.serial_no" placeholder="请输入末尾三位数字"></el-input>
 | 
					 | 
				
			||||||
                </el-col>
 | 
					 | 
				
			||||||
                <el-col :span="2">
 | 
					 | 
				
			||||||
                    <span>申请人:</span>
 | 
					 | 
				
			||||||
                </el-col>
 | 
					 | 
				
			||||||
                <el-col :span="4">
 | 
					 | 
				
			||||||
                    <el-input v-model.trim.lazy="query_param.request_people"></el-input>
 | 
					 | 
				
			||||||
                </el-col>
 | 
					 | 
				
			||||||
                <el-col :span="2">
 | 
					 | 
				
			||||||
                    <span>状态:</span>
 | 
					 | 
				
			||||||
                </el-col>
 | 
					 | 
				
			||||||
                <el-col :span="4">
 | 
					 | 
				
			||||||
                    <!-- <el-input v-model="query_param.status"></el-input> -->
 | 
					 | 
				
			||||||
                    <el-select multiple collapse-tags collapse-tags-tooltip v-model.trim.lazy="query_param.status">
 | 
					 | 
				
			||||||
                        <el-option v-for="option in ui.requirement_status" :value="option" :key="option"></el-option>
 | 
					 | 
				
			||||||
                    </el-select>
 | 
					 | 
				
			||||||
                </el-col>
 | 
					 | 
				
			||||||
                <el-col :span="6"></el-col>
 | 
					 | 
				
			||||||
            </el-row>
 | 
					 | 
				
			||||||
            <el-row :gutter="10">
 | 
					 | 
				
			||||||
                <el-col :span="2">
 | 
					 | 
				
			||||||
                    <span>提交日期:</span>
 | 
					 | 
				
			||||||
                </el-col>
 | 
					 | 
				
			||||||
                <el-col :span="4">
 | 
					 | 
				
			||||||
                    <el-date-picker v-model="query_param.commit_start_date" style="width:100%;"></el-date-picker>
 | 
					 | 
				
			||||||
                </el-col>
 | 
					 | 
				
			||||||
                <el-col :span="2">
 | 
					 | 
				
			||||||
                    <span>至:</span>
 | 
					 | 
				
			||||||
                </el-col>
 | 
					 | 
				
			||||||
                <el-col :span="4">
 | 
					 | 
				
			||||||
                    <el-date-picker v-model="query_param.commit_end_date" style="width:100%;"></el-date-picker>
 | 
					 | 
				
			||||||
                </el-col>
 | 
					 | 
				
			||||||
                <el-col :span="6">
 | 
					 | 
				
			||||||
                    <div class="button-wrapper-right">
 | 
					 | 
				
			||||||
                        <el-button type="primary" icon="search">查询</el-button>
 | 
					 | 
				
			||||||
                        <el-button icon="Refresh">重置</el-button>
 | 
					 | 
				
			||||||
                    </div>
 | 
					 | 
				
			||||||
                </el-col>
 | 
					 | 
				
			||||||
                <el-col :span="6"></el-col>
 | 
					 | 
				
			||||||
            </el-row>
 | 
					 | 
				
			||||||
        </div>
 | 
					 | 
				
			||||||
        <!-- 工具栏 -->
 | 
					 | 
				
			||||||
        <div class="tool-button-wrapper">
 | 
					 | 
				
			||||||
            <el-row :gutter="10">
 | 
					 | 
				
			||||||
                <el-col :span="4">
 | 
					 | 
				
			||||||
                    <div class="button-wrapper-left">
 | 
					 | 
				
			||||||
                        <el-button type="success" icon="DocumentAdd" plain @click="addNewRequirement()">新增</el-button>
 | 
					 | 
				
			||||||
                        <el-button type="warning" icon="document" plain>导出</el-button>
 | 
					 | 
				
			||||||
                    </div>
 | 
					 | 
				
			||||||
                </el-col>
 | 
					 | 
				
			||||||
                <el-col :span="20">
 | 
					 | 
				
			||||||
                    <div class="table-display-wrapper">
 | 
					 | 
				
			||||||
                        <span>结果筛选:</span>
 | 
					 | 
				
			||||||
                        <div class="result-filter-wrapper">
 | 
					 | 
				
			||||||
                            <el-checkbox-button label="已完成" checked></el-checkbox-button>
 | 
					 | 
				
			||||||
                            <el-checkbox-button label="已取消" checked></el-checkbox-button>
 | 
					 | 
				
			||||||
                            <el-checkbox-button label="被退回" checked></el-checkbox-button>
 | 
					 | 
				
			||||||
                        </div>
 | 
					 | 
				
			||||||
                    </div>
 | 
					 | 
				
			||||||
                </el-col>
 | 
					 | 
				
			||||||
            </el-row>
 | 
					 | 
				
			||||||
        </div>
 | 
					 | 
				
			||||||
        <!-- 需求列表 -->
 | 
					 | 
				
			||||||
        <el-table :data="tableData" border stripe style="width:100%;" :height="tableHeight">
 | 
					 | 
				
			||||||
            <el-table-column type="selection" align="center"></el-table-column>
 | 
					 | 
				
			||||||
            <el-table-column label="需求编号" align="center" width="160">
 | 
					 | 
				
			||||||
                <template #default="requirement">
 | 
					 | 
				
			||||||
                    <span @click="ui.dialogRequirementDetailVisible = true;" class="requirement-serial">{{
 | 
					 | 
				
			||||||
                        requirement.row.serial_no
 | 
					 | 
				
			||||||
                    }}</span>
 | 
					 | 
				
			||||||
                </template>
 | 
					 | 
				
			||||||
            </el-table-column>
 | 
					 | 
				
			||||||
            <el-table-column label="标题" prop="title" min-width="200" align="center">
 | 
					 | 
				
			||||||
                <template #default="requirement">
 | 
					 | 
				
			||||||
                    <span class="requirement-title">{{ requirement.row.title }}</span>
 | 
					 | 
				
			||||||
                </template>
 | 
					 | 
				
			||||||
            </el-table-column>
 | 
					 | 
				
			||||||
            <el-table-column label="申请人" prop="request_people" align="center" width="100"></el-table-column>
 | 
					 | 
				
			||||||
            <el-table-column label="状态" prop="status" align="center" width="100"></el-table-column>
 | 
					 | 
				
			||||||
            <el-table-column label="提交日期" prop="submit_date" align="center" width="130"></el-table-column>
 | 
					 | 
				
			||||||
            <el-table-column label="操作" align="center" fixed="right" width="200">
 | 
					 | 
				
			||||||
                <template #default="scope">
 | 
					 | 
				
			||||||
                    <el-button type="warning" icon="edit" @click="editRequirement(scope.row.serial_no)">编辑</el-button>
 | 
					 | 
				
			||||||
                    <el-button type="danger" icon="delete">删除</el-button>
 | 
					 | 
				
			||||||
                </template>
 | 
					 | 
				
			||||||
            </el-table-column>
 | 
					 | 
				
			||||||
        </el-table>
 | 
					 | 
				
			||||||
        <div class="pagination_wrapper">
 | 
					 | 
				
			||||||
            <el-pagination class="pull_left" @current-change="onCurrentPageIndexChange"
 | 
					 | 
				
			||||||
                @size-change="onTablePageSizeChange" size="small" background v-model="this.ui.table_current_page"
 | 
					 | 
				
			||||||
                :page-size="this.ui.table_page_size" :page-sizes="[10, 20, 50, 100]"
 | 
					 | 
				
			||||||
                layout="total, sizes, prev, pager, next, jumper" :total="requirement_data.length">
 | 
					 | 
				
			||||||
            </el-pagination>
 | 
					 | 
				
			||||||
        </div>
 | 
					 | 
				
			||||||
        <!-- 需求详细信息对话框 -->
 | 
					 | 
				
			||||||
        <el-dialog title="详情" class="requirement-detail-dialog" v-model="ui.dialogRequirementDetailVisible"
 | 
					 | 
				
			||||||
            width="900px" :close-on-click-modal="true" :close-on-press-escape="false" :show-close="true"
 | 
					 | 
				
			||||||
            :center="false">
 | 
					 | 
				
			||||||
            <el-tabs :v-loading="ui.dialogRequirementDetailLoadingVisible" v-model="ui.activeTabName">
 | 
					 | 
				
			||||||
                <el-tab-pane name="requirement-detail" label="基本信息">
 | 
					 | 
				
			||||||
                    <el-scrollbar height="400px">
 | 
					 | 
				
			||||||
                        <div class="requirement-detail-wrapper">
 | 
					 | 
				
			||||||
                            <el-row :gutter="10">
 | 
					 | 
				
			||||||
                                <el-col :span="2">
 | 
					 | 
				
			||||||
                                    <span>标题</span>
 | 
					 | 
				
			||||||
                                </el-col>
 | 
					 | 
				
			||||||
                                <el-col :span="22">
 | 
					 | 
				
			||||||
                                    <el-input readonly></el-input>
 | 
					 | 
				
			||||||
                                </el-col>
 | 
					 | 
				
			||||||
                            </el-row>
 | 
					 | 
				
			||||||
                            <el-row :gutter="10">
 | 
					 | 
				
			||||||
                                <el-col :span="2">
 | 
					 | 
				
			||||||
                                    <span>需求编号</span>
 | 
					 | 
				
			||||||
                                </el-col>
 | 
					 | 
				
			||||||
                                <el-col :span="6">
 | 
					 | 
				
			||||||
                                    <el-input v-model="query_param.serial_no" readonly></el-input>
 | 
					 | 
				
			||||||
                                </el-col>
 | 
					 | 
				
			||||||
                                <el-col :span="2">
 | 
					 | 
				
			||||||
                                    <span>主系统</span>
 | 
					 | 
				
			||||||
                                </el-col>
 | 
					 | 
				
			||||||
                                <el-col :span="14">
 | 
					 | 
				
			||||||
                                    <el-input readonly></el-input>
 | 
					 | 
				
			||||||
                                </el-col>
 | 
					 | 
				
			||||||
                            </el-row>
 | 
					 | 
				
			||||||
                            <el-row :gutter="10">
 | 
					 | 
				
			||||||
                                <el-col :span="2">
 | 
					 | 
				
			||||||
                                    <span>需求分类</span>
 | 
					 | 
				
			||||||
                                </el-col>
 | 
					 | 
				
			||||||
                                <el-col :span="6">
 | 
					 | 
				
			||||||
                                    <el-input readonly v-model="query_param.request_people"></el-input>
 | 
					 | 
				
			||||||
                                </el-col>
 | 
					 | 
				
			||||||
                                <el-col :span="2">
 | 
					 | 
				
			||||||
                                    <span>状态</span>
 | 
					 | 
				
			||||||
                                </el-col>
 | 
					 | 
				
			||||||
                                <el-col :span="6">
 | 
					 | 
				
			||||||
                                    <el-input readonly v-model="query_param.status"></el-input>
 | 
					 | 
				
			||||||
                                </el-col>
 | 
					 | 
				
			||||||
                                <el-col :span="2">
 | 
					 | 
				
			||||||
                                    <span>当前处理人</span>
 | 
					 | 
				
			||||||
                                </el-col>
 | 
					 | 
				
			||||||
                                <el-col :span="6">
 | 
					 | 
				
			||||||
                                    <el-input readonly v-model="query_param.status"></el-input>
 | 
					 | 
				
			||||||
                                </el-col>
 | 
					 | 
				
			||||||
                            </el-row>
 | 
					 | 
				
			||||||
                            <el-row :gutter="10">
 | 
					 | 
				
			||||||
                                <el-col :span="2">
 | 
					 | 
				
			||||||
                                    <span>联系人</span>
 | 
					 | 
				
			||||||
                                </el-col>
 | 
					 | 
				
			||||||
                                <el-col :span="6">
 | 
					 | 
				
			||||||
                                    <el-input readonly v-model="query_param.status"></el-input>
 | 
					 | 
				
			||||||
                                </el-col>
 | 
					 | 
				
			||||||
                                <el-col :span="2">
 | 
					 | 
				
			||||||
                                    <span>联系方式</span>
 | 
					 | 
				
			||||||
                                </el-col>
 | 
					 | 
				
			||||||
                                <el-col :span="6">
 | 
					 | 
				
			||||||
                                    <el-input readonly v-model="query_param.status"></el-input>
 | 
					 | 
				
			||||||
                                </el-col>
 | 
					 | 
				
			||||||
                                <el-col :span="2">
 | 
					 | 
				
			||||||
                                    <span>提交日期</span>
 | 
					 | 
				
			||||||
                                </el-col>
 | 
					 | 
				
			||||||
                                <el-col :span="6">
 | 
					 | 
				
			||||||
                                    <el-input readonly v-model="query_param.status"></el-input>
 | 
					 | 
				
			||||||
                                </el-col>
 | 
					 | 
				
			||||||
                            </el-row>
 | 
					 | 
				
			||||||
                        </div>
 | 
					 | 
				
			||||||
                    </el-scrollbar>
 | 
					 | 
				
			||||||
                </el-tab-pane>
 | 
					 | 
				
			||||||
                <el-tab-pane name="requirement-content" label="申请材料">
 | 
					 | 
				
			||||||
                    <el-scrollbar height="400px"></el-scrollbar>
 | 
					 | 
				
			||||||
                </el-tab-pane>
 | 
					 | 
				
			||||||
                <el-tab-pane name="issue-date" label="排期">
 | 
					 | 
				
			||||||
                    <el-scrollbar height="400px">
 | 
					 | 
				
			||||||
                        <el-table style="width:100%;height:400px;" border stripe>
 | 
					 | 
				
			||||||
                            <el-table-column label="系统" align="center" min-width="200"></el-table-column>
 | 
					 | 
				
			||||||
                            <el-table-column label="功能" align="center" min-width="200"></el-table-column>
 | 
					 | 
				
			||||||
                            <el-table-column label="首次排期" align="center" width="150"></el-table-column>
 | 
					 | 
				
			||||||
                            <el-table-column label="最新排期" align="center" width="150"></el-table-column>
 | 
					 | 
				
			||||||
                        </el-table>
 | 
					 | 
				
			||||||
                    </el-scrollbar>
 | 
					 | 
				
			||||||
                </el-tab-pane>
 | 
					 | 
				
			||||||
                <el-tab-pane name="comment" label="备注">
 | 
					 | 
				
			||||||
                    <el-scrollbar height="400px">
 | 
					 | 
				
			||||||
                        <p>hello world</p>
 | 
					 | 
				
			||||||
                        <p><span style="font-size: 24px;">ejfalsjfoewafsdjfdsfewo;sd;fk</span></p>
 | 
					 | 
				
			||||||
                        <ol>
 | 
					 | 
				
			||||||
                            <li><span style="color: rgb(225, 60, 57); font-size: 24px;">12344</span></li>
 | 
					 | 
				
			||||||
                            <li><span style="font-size: 24px;">33445</span></li>
 | 
					 | 
				
			||||||
                        </ol>
 | 
					 | 
				
			||||||
                        <p><br></p>
 | 
					 | 
				
			||||||
                    </el-scrollbar>
 | 
					 | 
				
			||||||
                </el-tab-pane>
 | 
					 | 
				
			||||||
            </el-tabs>
 | 
					 | 
				
			||||||
            <!-- <template #footer>
 | 
					 | 
				
			||||||
                <div class="dialogFooter">
 | 
					 | 
				
			||||||
                    <el-button type="primary" @click="dialogRequirementDetailVisible = false;">关闭</el-button>
 | 
					 | 
				
			||||||
                </div>
 | 
					 | 
				
			||||||
            </template> -->
 | 
					 | 
				
			||||||
        </el-dialog>
 | 
					 | 
				
			||||||
    </div>
 | 
					 | 
				
			||||||
</template>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<script>
 | 
					 | 
				
			||||||
import { requirementTestData } from '@/test/data/TestData';
 | 
					 | 
				
			||||||
import router from "@/router/index";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export default {
 | 
					 | 
				
			||||||
    name: "requirement-manager",
 | 
					 | 
				
			||||||
    data()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return {
 | 
					 | 
				
			||||||
            requirement_data: requirementTestData, //需求数据,当前值是测试数据
 | 
					 | 
				
			||||||
            ui: {
 | 
					 | 
				
			||||||
                table_current_page: 1,//分页组件当前的页面索引
 | 
					 | 
				
			||||||
                table_page_size: 10,
 | 
					 | 
				
			||||||
                dialogRequirementDetailVisible: false, //需求详情对话框是否显示
 | 
					 | 
				
			||||||
                dialogRequirementDetailLoadingVisible: false,
 | 
					 | 
				
			||||||
                activeTabName: "requirement-detail",
 | 
					 | 
				
			||||||
                requirement_status: [
 | 
					 | 
				
			||||||
                    "未提交", "部门审核", "需求分析", "技术开发", "待发布", "已发布", "被退回",
 | 
					 | 
				
			||||||
                ],
 | 
					 | 
				
			||||||
            },
 | 
					 | 
				
			||||||
            query_param: {
 | 
					 | 
				
			||||||
                title: "",
 | 
					 | 
				
			||||||
                serial_no: "",
 | 
					 | 
				
			||||||
                request_people: "",
 | 
					 | 
				
			||||||
                commit_start_date: "",
 | 
					 | 
				
			||||||
                commit_end_date: "",
 | 
					 | 
				
			||||||
                status: "",
 | 
					 | 
				
			||||||
            },
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    computed: {
 | 
					 | 
				
			||||||
        //计算表格的高度
 | 
					 | 
				
			||||||
        tableHeight()
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            return 10 * 50 + 40;
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        tableData()
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            const startIndex = this.ui.table_page_size * (this.ui.table_current_page - 1);
 | 
					 | 
				
			||||||
            const endIndex = (this.ui.table_page_size * this.ui.table_current_page);// < this.requirement_data.length ? (this.table_page_size * this.table_current_page) : this.requirement_data.length;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            return this.requirement_data.slice(startIndex, endIndex);
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    methods: {
 | 
					 | 
				
			||||||
        onTablePageSizeChange(pageSize)
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            console.log("选择的pageSize", pageSize);
 | 
					 | 
				
			||||||
            this.ui.table_page_size = pageSize;
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        //用户变更当前页时消息处理函数
 | 
					 | 
				
			||||||
        onCurrentPageIndexChange(pageIndex)
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            this.ui.table_current_page = pageIndex;
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        addNewRequirement()
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            //console.log("router", this.$route);
 | 
					 | 
				
			||||||
            router.push({
 | 
					 | 
				
			||||||
                name: "RequirementEditing",
 | 
					 | 
				
			||||||
                query: {
 | 
					 | 
				
			||||||
                    serial: "new",
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
            });
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        editRequirement(requirement_serial)
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            window.localStorage.setItem("requirement_serial", requirement_serial);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            router.push({
 | 
					 | 
				
			||||||
                name: "RequirementEditing",
 | 
					 | 
				
			||||||
                query: {
 | 
					 | 
				
			||||||
                    serial: requirement_serial,
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
            });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    //声明周期
 | 
					 | 
				
			||||||
    created()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        this.query_param.commit_end_date = new Date(Date.now());
 | 
					 | 
				
			||||||
        this.query_param.commit_start_date = new Date();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        this.query_param.commit_start_date.setMonth(this.query_param.commit_end_date.getMonth() - 1);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
</script>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<style scoped>
 | 
					 | 
				
			||||||
/* 整个页面的外壳 ******************************/
 | 
					 | 
				
			||||||
.requirement_wrapper {
 | 
					 | 
				
			||||||
    padding: 15px 10px;
 | 
					 | 
				
			||||||
    background-color: #fff;
 | 
					 | 
				
			||||||
    border-radius: 5px;
 | 
					 | 
				
			||||||
    box-shadow: 0px 0px 20px -10px rgb(14 18 22 / 25%);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.requirement_wrapper:hover {
 | 
					 | 
				
			||||||
    box-shadow: 0px 0px 20px -10px rgb(14 18 22 / 40%);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.requirement_wrapper>*+* {
 | 
					 | 
				
			||||||
    margin-top: 15px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* 查询框 **********************************/
 | 
					 | 
				
			||||||
.search-box {
 | 
					 | 
				
			||||||
    padding: 0 10px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.search-box span {
 | 
					 | 
				
			||||||
    font-weight: normal;
 | 
					 | 
				
			||||||
    display: block;
 | 
					 | 
				
			||||||
    text-align: right;
 | 
					 | 
				
			||||||
    font-size: 15px;
 | 
					 | 
				
			||||||
    color: #5f5f5f;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.search-box>.el-row {
 | 
					 | 
				
			||||||
    display: flex;
 | 
					 | 
				
			||||||
    align-items: center;
 | 
					 | 
				
			||||||
    justify-content: left;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.search-box .el-row+.el-row {
 | 
					 | 
				
			||||||
    margin-top: 10px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* 查询结果筛选框 */
 | 
					 | 
				
			||||||
.tool-button-wrapper {
 | 
					 | 
				
			||||||
    padding: 0px 15px;
 | 
					 | 
				
			||||||
    width: 100%;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.tool-button-wrapper>.el-row {
 | 
					 | 
				
			||||||
    display: flex;
 | 
					 | 
				
			||||||
    align-items: center;
 | 
					 | 
				
			||||||
    justify-content: left;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.tool-button-wrapper span {
 | 
					 | 
				
			||||||
    font-weight: small;
 | 
					 | 
				
			||||||
    display: block;
 | 
					 | 
				
			||||||
    text-align: right;
 | 
					 | 
				
			||||||
    font-size: 15px;
 | 
					 | 
				
			||||||
    color: #5f5f5f;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.tool-button-wrapper .el-checkbox {
 | 
					 | 
				
			||||||
    font-size: 15px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.table-display-wrapper {
 | 
					 | 
				
			||||||
    display: flex;
 | 
					 | 
				
			||||||
    align-items: center;
 | 
					 | 
				
			||||||
    justify-content: right;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.button-wrapper-right {
 | 
					 | 
				
			||||||
    display: flex;
 | 
					 | 
				
			||||||
    justify-content: right;
 | 
					 | 
				
			||||||
    align-items: center;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.button-wrapper-left {
 | 
					 | 
				
			||||||
    display: flex;
 | 
					 | 
				
			||||||
    justify-content: left;
 | 
					 | 
				
			||||||
    align-items: center;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.result-filter-wrapper {
 | 
					 | 
				
			||||||
    padding: 0 5px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* 需求列表 */
 | 
					 | 
				
			||||||
.requirement-title {
 | 
					 | 
				
			||||||
    display: block;
 | 
					 | 
				
			||||||
    text-align: left;
 | 
					 | 
				
			||||||
    width: 100%;
 | 
					 | 
				
			||||||
    font-size: 14px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.requirement-serial {
 | 
					 | 
				
			||||||
    width: 100%;
 | 
					 | 
				
			||||||
    text-align: center;
 | 
					 | 
				
			||||||
    cursor: pointer;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/***分页组件 *************/
 | 
					 | 
				
			||||||
.pagination_wrapper {
 | 
					 | 
				
			||||||
    padding-right: 15px;
 | 
					 | 
				
			||||||
    display: flex;
 | 
					 | 
				
			||||||
    justify-content: right;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/*需求详情对话框 */
 | 
					 | 
				
			||||||
.requirement-detail-dialog {
 | 
					 | 
				
			||||||
    width: 400px;
 | 
					 | 
				
			||||||
    height: 600px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.requirement-detail-dialog .el-row {
 | 
					 | 
				
			||||||
    display: flex;
 | 
					 | 
				
			||||||
    justify-content: left;
 | 
					 | 
				
			||||||
    align-items: center;
 | 
					 | 
				
			||||||
    /* margin-top: 10px; */
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.requirement-detail-dialog .el-row+.el-row {
 | 
					 | 
				
			||||||
    margin-top: 10px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.requirement-detail-wrapper {
 | 
					 | 
				
			||||||
    padding: 0px 10px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.requirement-detail-wrapper span {
 | 
					 | 
				
			||||||
    display: block;
 | 
					 | 
				
			||||||
    text-align: right;
 | 
					 | 
				
			||||||
    width: 100%;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
</style>
 | 
					 | 
				
			||||||
<style>
 | 
					 | 
				
			||||||
.requirement-detail-dialog .el-dialog__body {
 | 
					 | 
				
			||||||
    padding: 0px 15px 15px 15px !important;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
</style>
 | 
					 | 
				
			||||||
		Reference in New Issue
	
	Block a user