Преглед на файлове

feat:对接节假日设置;
refactor:节假日样式调整;

zhangchong преди 1 година
родител
ревизия
5922d0af8f

+ 244 - 154
package-lock.json

@@ -15,20 +15,20 @@
 				"@microsoft/signalr": "^7.0.0",
 				"@wangeditor/editor": "^5.1.23",
 				"@wangeditor/editor-for-vue": "^5.1.12",
-				"axios": "^1.2.0",
+				"axios": "^1.4.0",
 				"bin-datav": "^0.2.0",
 				"dayjs": "^1.11.9",
 				"echarts": "^5.4.0",
 				"echarts-gl": "^2.0.9",
 				"echarts-wordcloud": "^2.1.0",
-				"element-plus": "^2.2.22",
+				"element-plus": "^2.3.8",
 				"file-saver": "^2.0.5",
 				"js-cookie": "^3.0.1",
 				"js-table2excel": "^1.0.3",
 				"jsencrypt": "^3.3.2",
 				"mitt": "^3.0.0",
 				"nprogress": "^0.2.0",
-				"pinia": "^2.0.25",
+				"pinia": "^2.1.4",
 				"pinia-plugin-persist": "^1.0.0",
 				"qrcodejs2-fixes": "^0.0.2",
 				"qs": "^6.11.0",
@@ -67,8 +67,9 @@
 			}
 		},
 		"node_modules/@babel/parser": {
-			"version": "7.20.15",
-			"license": "MIT",
+			"version": "7.22.7",
+			"resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.22.7.tgz",
+			"integrity": "sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q==",
 			"bin": {
 				"parser": "bin/babel-parser.js"
 			},
@@ -634,100 +635,111 @@
 			}
 		},
 		"node_modules/@vue/compiler-core": {
-			"version": "3.2.45",
-			"license": "MIT",
+			"version": "3.3.4",
+			"resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.3.4.tgz",
+			"integrity": "sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==",
 			"dependencies": {
-				"@babel/parser": "^7.16.4",
-				"@vue/shared": "3.2.45",
+				"@babel/parser": "^7.21.3",
+				"@vue/shared": "3.3.4",
 				"estree-walker": "^2.0.2",
-				"source-map": "^0.6.1"
+				"source-map-js": "^1.0.2"
 			}
 		},
 		"node_modules/@vue/compiler-dom": {
-			"version": "3.2.45",
-			"license": "MIT",
+			"version": "3.3.4",
+			"resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz",
+			"integrity": "sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==",
 			"dependencies": {
-				"@vue/compiler-core": "3.2.45",
-				"@vue/shared": "3.2.45"
+				"@vue/compiler-core": "3.3.4",
+				"@vue/shared": "3.3.4"
 			}
 		},
 		"node_modules/@vue/compiler-sfc": {
-			"version": "3.2.45",
-			"license": "MIT",
-			"dependencies": {
-				"@babel/parser": "^7.16.4",
-				"@vue/compiler-core": "3.2.45",
-				"@vue/compiler-dom": "3.2.45",
-				"@vue/compiler-ssr": "3.2.45",
-				"@vue/reactivity-transform": "3.2.45",
-				"@vue/shared": "3.2.45",
+			"version": "3.3.4",
+			"resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz",
+			"integrity": "sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==",
+			"dependencies": {
+				"@babel/parser": "^7.20.15",
+				"@vue/compiler-core": "3.3.4",
+				"@vue/compiler-dom": "3.3.4",
+				"@vue/compiler-ssr": "3.3.4",
+				"@vue/reactivity-transform": "3.3.4",
+				"@vue/shared": "3.3.4",
 				"estree-walker": "^2.0.2",
-				"magic-string": "^0.25.7",
+				"magic-string": "^0.30.0",
 				"postcss": "^8.1.10",
-				"source-map": "^0.6.1"
+				"source-map-js": "^1.0.2"
 			}
 		},
 		"node_modules/@vue/compiler-ssr": {
-			"version": "3.2.45",
-			"license": "MIT",
+			"version": "3.3.4",
+			"resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.3.4.tgz",
+			"integrity": "sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==",
 			"dependencies": {
-				"@vue/compiler-dom": "3.2.45",
-				"@vue/shared": "3.2.45"
+				"@vue/compiler-dom": "3.3.4",
+				"@vue/shared": "3.3.4"
 			}
 		},
 		"node_modules/@vue/devtools-api": {
-			"version": "6.4.5",
-			"license": "MIT"
+			"version": "6.5.0",
+			"resolved": "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.5.0.tgz",
+			"integrity": "sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q=="
 		},
 		"node_modules/@vue/reactivity": {
-			"version": "3.2.45",
-			"license": "MIT",
+			"version": "3.3.4",
+			"resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.3.4.tgz",
+			"integrity": "sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==",
 			"dependencies": {
-				"@vue/shared": "3.2.45"
+				"@vue/shared": "3.3.4"
 			}
 		},
 		"node_modules/@vue/reactivity-transform": {
-			"version": "3.2.45",
-			"license": "MIT",
+			"version": "3.3.4",
+			"resolved": "https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.3.4.tgz",
+			"integrity": "sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==",
 			"dependencies": {
-				"@babel/parser": "^7.16.4",
-				"@vue/compiler-core": "3.2.45",
-				"@vue/shared": "3.2.45",
+				"@babel/parser": "^7.20.15",
+				"@vue/compiler-core": "3.3.4",
+				"@vue/shared": "3.3.4",
 				"estree-walker": "^2.0.2",
-				"magic-string": "^0.25.7"
+				"magic-string": "^0.30.0"
 			}
 		},
 		"node_modules/@vue/runtime-core": {
-			"version": "3.2.45",
-			"license": "MIT",
+			"version": "3.3.4",
+			"resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.3.4.tgz",
+			"integrity": "sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA==",
 			"dependencies": {
-				"@vue/reactivity": "3.2.45",
-				"@vue/shared": "3.2.45"
+				"@vue/reactivity": "3.3.4",
+				"@vue/shared": "3.3.4"
 			}
 		},
 		"node_modules/@vue/runtime-dom": {
-			"version": "3.2.45",
-			"license": "MIT",
+			"version": "3.3.4",
+			"resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.3.4.tgz",
+			"integrity": "sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ==",
 			"dependencies": {
-				"@vue/runtime-core": "3.2.45",
-				"@vue/shared": "3.2.45",
-				"csstype": "^2.6.8"
+				"@vue/runtime-core": "3.3.4",
+				"@vue/shared": "3.3.4",
+				"csstype": "^3.1.1"
 			}
 		},
 		"node_modules/@vue/server-renderer": {
-			"version": "3.2.45",
-			"license": "MIT",
+			"version": "3.3.4",
+			"resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.3.4.tgz",
+			"integrity": "sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ==",
 			"dependencies": {
-				"@vue/compiler-ssr": "3.2.45",
-				"@vue/shared": "3.2.45"
+				"@vue/compiler-ssr": "3.3.4",
+				"@vue/shared": "3.3.4"
 			},
 			"peerDependencies": {
-				"vue": "3.2.45"
+				"vue": "3.3.4"
 			}
 		},
 		"node_modules/@vue/shared": {
-			"version": "3.2.45",
-			"license": "MIT"
+			"version": "3.3.4",
+			"resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.3.4.tgz",
+			"integrity": "sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ=="
 		},
 		"node_modules/@vueuse/core": {
 			"version": "9.6.0",
@@ -1224,8 +1236,9 @@
 			"license": "MIT"
 		},
 		"node_modules/axios": {
-			"version": "1.2.0",
-			"license": "MIT",
+			"version": "1.4.0",
+			"resolved": "https://registry.npmmirror.com/axios/-/axios-1.4.0.tgz",
+			"integrity": "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==",
 			"dependencies": {
 				"follow-redirects": "^1.15.0",
 				"form-data": "^4.0.0",
@@ -1507,8 +1520,9 @@
 			}
 		},
 		"node_modules/csstype": {
-			"version": "2.6.21",
-			"license": "MIT"
+			"version": "3.1.2",
+			"resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.2.tgz",
+			"integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ=="
 		},
 		"node_modules/d": {
 			"version": "1.0.1",
@@ -1625,8 +1639,9 @@
 			"peer": true
 		},
 		"node_modules/element-plus": {
-			"version": "2.2.25",
-			"license": "MIT",
+			"version": "2.3.8",
+			"resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.3.8.tgz",
+			"integrity": "sha512-yHQR0/tG2LvPkpGUt7Te/hPmP2XW/BytBNUbx+EFO54VnGCOE3upmQcVffNp1PLgwg9sthYDXontUWpnpmLPJw==",
 			"dependencies": {
 				"@ctrl/tinycolor": "^3.4.1",
 				"@element-plus/icons-vue": "^2.0.6",
@@ -1976,7 +1991,8 @@
 		},
 		"node_modules/estree-walker": {
 			"version": "2.0.2",
-			"license": "MIT"
+			"resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz",
+			"integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
 		},
 		"node_modules/esutils": {
 			"version": "2.0.3",
@@ -2199,6 +2215,20 @@
 			"dev": true,
 			"license": "ISC"
 		},
+		"node_modules/fsevents": {
+			"version": "2.3.2",
+			"resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz",
+			"integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+			"dev": true,
+			"hasInstallScript": true,
+			"optional": true,
+			"os": [
+				"darwin"
+			],
+			"engines": {
+				"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+			}
+		},
 		"node_modules/function-bind": {
 			"version": "1.1.1",
 			"license": "MIT"
@@ -2691,12 +2721,21 @@
 			}
 		},
 		"node_modules/magic-string": {
-			"version": "0.25.9",
-			"license": "MIT",
+			"version": "0.30.1",
+			"resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.1.tgz",
+			"integrity": "sha512-mbVKXPmS0z0G4XqFDCTllmDQ6coZzn94aMlb0o/A4HEHJCKcanlDZwYJgwnkmgD3jyWhUgj9VsPrfd972yPffA==",
 			"dependencies": {
-				"sourcemap-codec": "^1.4.8"
+				"@jridgewell/sourcemap-codec": "^1.4.15"
+			},
+			"engines": {
+				"node": ">=12"
 			}
 		},
+		"node_modules/magic-string/node_modules/@jridgewell/sourcemap-codec": {
+			"version": "1.4.15",
+			"resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
+			"integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
+		},
 		"node_modules/memoize-one": {
 			"version": "6.0.0",
 			"license": "MIT"
@@ -2982,19 +3021,17 @@
 			}
 		},
 		"node_modules/pinia": {
-			"version": "2.0.27",
-			"license": "MIT",
+			"version": "2.1.4",
+			"resolved": "https://registry.npmmirror.com/pinia/-/pinia-2.1.4.tgz",
+			"integrity": "sha512-vYlnDu+Y/FXxv1ABo1vhjC+IbqvzUdiUC3sfDRrRyY2CQSrqqaa+iiHmqtARFxJVqWQMCJfXx1PBvFs9aJVLXQ==",
 			"dependencies": {
-				"@vue/devtools-api": "^6.4.5",
-				"vue-demi": "*"
-			},
-			"funding": {
-				"url": "https://github.com/sponsors/posva"
+				"@vue/devtools-api": "^6.5.0",
+				"vue-demi": ">=0.14.5"
 			},
 			"peerDependencies": {
 				"@vue/composition-api": "^1.4.0",
 				"typescript": ">=4.4.4",
-				"vue": "^2.6.14 || ^3.2.0"
+				"vue": "^2.6.14 || ^3.3.0"
 			},
 			"peerDependenciesMeta": {
 				"@vue/composition-api": {
@@ -3046,9 +3083,10 @@
 			}
 		},
 		"node_modules/pinia/node_modules/vue-demi": {
-			"version": "0.13.11",
+			"version": "0.14.5",
+			"resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.5.tgz",
+			"integrity": "sha512-o9NUVpl/YlsGJ7t+xuqJKx8EBGf1quRhCiT6D/J0pfwmk9zUwYkC7yrF4SZCe6fETvSM3UNL2edcbYrSyc4QHA==",
 			"hasInstallScript": true,
-			"license": "MIT",
 			"bin": {
 				"vue-demi-fix": "bin/vue-demi-fix.js",
 				"vue-demi-switch": "bin/vue-demi-switch.js"
@@ -3056,9 +3094,6 @@
 			"engines": {
 				"node": ">=12"
 			},
-			"funding": {
-				"url": "https://github.com/sponsors/antfu"
-			},
 			"peerDependencies": {
 				"@vue/composition-api": "^1.0.0-rc.1",
 				"vue": "^3.0.0-0 || ^2.6.0"
@@ -3538,7 +3573,9 @@
 		},
 		"node_modules/source-map": {
 			"version": "0.6.1",
+			"dev": true,
 			"license": "BSD-3-Clause",
+			"peer": true,
 			"engines": {
 				"node": ">=0.10.0"
 			}
@@ -3560,10 +3597,6 @@
 				"source-map": "^0.6.0"
 			}
 		},
-		"node_modules/sourcemap-codec": {
-			"version": "1.4.8",
-			"license": "MIT"
-		},
 		"node_modules/ssr-window": {
 			"version": "3.0.0",
 			"license": "MIT"
@@ -3852,9 +3885,10 @@
 			"license": "MIT"
 		},
 		"node_modules/vite": {
-			"version": "3.2.4",
+			"version": "3.2.7",
+			"resolved": "https://registry.npmmirror.com/vite/-/vite-3.2.7.tgz",
+			"integrity": "sha512-29pdXjk49xAP0QBr0xXqu2s5jiQIXNvE/xwd0vUizYT2Hzqe4BksNNoWllFVXJf4eLZ+UlVQmXfB4lWrc+t18g==",
 			"dev": true,
-			"license": "MIT",
 			"dependencies": {
 				"esbuild": "^0.15.9",
 				"postcss": "^8.4.18",
@@ -3918,14 +3952,15 @@
 			"license": "MIT"
 		},
 		"node_modules/vue": {
-			"version": "3.2.45",
-			"license": "MIT",
+			"version": "3.3.4",
+			"resolved": "https://registry.npmmirror.com/vue/-/vue-3.3.4.tgz",
+			"integrity": "sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==",
 			"dependencies": {
-				"@vue/compiler-dom": "3.2.45",
-				"@vue/compiler-sfc": "3.2.45",
-				"@vue/runtime-dom": "3.2.45",
-				"@vue/server-renderer": "3.2.45",
-				"@vue/shared": "3.2.45"
+				"@vue/compiler-dom": "3.3.4",
+				"@vue/compiler-sfc": "3.3.4",
+				"@vue/runtime-dom": "3.3.4",
+				"@vue/server-renderer": "3.3.4",
+				"@vue/shared": "3.3.4"
 			}
 		},
 		"node_modules/vue-clipboard3": {
@@ -4177,7 +4212,9 @@
 	},
 	"dependencies": {
 		"@babel/parser": {
-			"version": "7.20.15"
+			"version": "7.22.7",
+			"resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.22.7.tgz",
+			"integrity": "sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q=="
 		},
 		"@babel/runtime": {
 			"version": "7.20.6",
@@ -4538,86 +4575,108 @@
 			"requires": {}
 		},
 		"@vue/compiler-core": {
-			"version": "3.2.45",
+			"version": "3.3.4",
+			"resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.3.4.tgz",
+			"integrity": "sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==",
 			"requires": {
-				"@babel/parser": "^7.16.4",
-				"@vue/shared": "3.2.45",
+				"@babel/parser": "^7.21.3",
+				"@vue/shared": "3.3.4",
 				"estree-walker": "^2.0.2",
-				"source-map": "^0.6.1"
+				"source-map-js": "^1.0.2"
 			}
 		},
 		"@vue/compiler-dom": {
-			"version": "3.2.45",
+			"version": "3.3.4",
+			"resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz",
+			"integrity": "sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==",
 			"requires": {
-				"@vue/compiler-core": "3.2.45",
-				"@vue/shared": "3.2.45"
+				"@vue/compiler-core": "3.3.4",
+				"@vue/shared": "3.3.4"
 			}
 		},
 		"@vue/compiler-sfc": {
-			"version": "3.2.45",
-			"requires": {
-				"@babel/parser": "^7.16.4",
-				"@vue/compiler-core": "3.2.45",
-				"@vue/compiler-dom": "3.2.45",
-				"@vue/compiler-ssr": "3.2.45",
-				"@vue/reactivity-transform": "3.2.45",
-				"@vue/shared": "3.2.45",
+			"version": "3.3.4",
+			"resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz",
+			"integrity": "sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==",
+			"requires": {
+				"@babel/parser": "^7.20.15",
+				"@vue/compiler-core": "3.3.4",
+				"@vue/compiler-dom": "3.3.4",
+				"@vue/compiler-ssr": "3.3.4",
+				"@vue/reactivity-transform": "3.3.4",
+				"@vue/shared": "3.3.4",
 				"estree-walker": "^2.0.2",
-				"magic-string": "^0.25.7",
+				"magic-string": "^0.30.0",
 				"postcss": "^8.1.10",
-				"source-map": "^0.6.1"
+				"source-map-js": "^1.0.2"
 			}
 		},
 		"@vue/compiler-ssr": {
-			"version": "3.2.45",
+			"version": "3.3.4",
+			"resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.3.4.tgz",
+			"integrity": "sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==",
 			"requires": {
-				"@vue/compiler-dom": "3.2.45",
-				"@vue/shared": "3.2.45"
+				"@vue/compiler-dom": "3.3.4",
+				"@vue/shared": "3.3.4"
 			}
 		},
 		"@vue/devtools-api": {
-			"version": "6.4.5"
+			"version": "6.5.0",
+			"resolved": "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.5.0.tgz",
+			"integrity": "sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q=="
 		},
 		"@vue/reactivity": {
-			"version": "3.2.45",
+			"version": "3.3.4",
+			"resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.3.4.tgz",
+			"integrity": "sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==",
 			"requires": {
-				"@vue/shared": "3.2.45"
+				"@vue/shared": "3.3.4"
 			}
 		},
 		"@vue/reactivity-transform": {
-			"version": "3.2.45",
+			"version": "3.3.4",
+			"resolved": "https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.3.4.tgz",
+			"integrity": "sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==",
 			"requires": {
-				"@babel/parser": "^7.16.4",
-				"@vue/compiler-core": "3.2.45",
-				"@vue/shared": "3.2.45",
+				"@babel/parser": "^7.20.15",
+				"@vue/compiler-core": "3.3.4",
+				"@vue/shared": "3.3.4",
 				"estree-walker": "^2.0.2",
-				"magic-string": "^0.25.7"
+				"magic-string": "^0.30.0"
 			}
 		},
 		"@vue/runtime-core": {
-			"version": "3.2.45",
+			"version": "3.3.4",
+			"resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.3.4.tgz",
+			"integrity": "sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA==",
 			"requires": {
-				"@vue/reactivity": "3.2.45",
-				"@vue/shared": "3.2.45"
+				"@vue/reactivity": "3.3.4",
+				"@vue/shared": "3.3.4"
 			}
 		},
 		"@vue/runtime-dom": {
-			"version": "3.2.45",
+			"version": "3.3.4",
+			"resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.3.4.tgz",
+			"integrity": "sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ==",
 			"requires": {
-				"@vue/runtime-core": "3.2.45",
-				"@vue/shared": "3.2.45",
-				"csstype": "^2.6.8"
+				"@vue/runtime-core": "3.3.4",
+				"@vue/shared": "3.3.4",
+				"csstype": "^3.1.1"
 			}
 		},
 		"@vue/server-renderer": {
-			"version": "3.2.45",
+			"version": "3.3.4",
+			"resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.3.4.tgz",
+			"integrity": "sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ==",
 			"requires": {
-				"@vue/compiler-ssr": "3.2.45",
-				"@vue/shared": "3.2.45"
+				"@vue/compiler-ssr": "3.3.4",
+				"@vue/shared": "3.3.4"
 			}
 		},
 		"@vue/shared": {
-			"version": "3.2.45"
+			"version": "3.3.4",
+			"resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.3.4.tgz",
+			"integrity": "sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ=="
 		},
 		"@vueuse/core": {
 			"version": "9.6.0",
@@ -4930,7 +4989,9 @@
 			"version": "0.4.0"
 		},
 		"axios": {
-			"version": "1.2.0",
+			"version": "1.4.0",
+			"resolved": "https://registry.npmmirror.com/axios/-/axios-1.4.0.tgz",
+			"integrity": "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==",
 			"requires": {
 				"follow-redirects": "^1.15.0",
 				"form-data": "^4.0.0",
@@ -5106,7 +5167,9 @@
 			"dev": true
 		},
 		"csstype": {
-			"version": "2.6.21"
+			"version": "3.1.2",
+			"resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.2.tgz",
+			"integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ=="
 		},
 		"d": {
 			"version": "1.0.1",
@@ -5187,7 +5250,9 @@
 			"peer": true
 		},
 		"element-plus": {
-			"version": "2.2.25",
+			"version": "2.3.8",
+			"resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.3.8.tgz",
+			"integrity": "sha512-yHQR0/tG2LvPkpGUt7Te/hPmP2XW/BytBNUbx+EFO54VnGCOE3upmQcVffNp1PLgwg9sthYDXontUWpnpmLPJw==",
 			"requires": {
 				"@ctrl/tinycolor": "^3.4.1",
 				"@element-plus/icons-vue": "^2.0.6",
@@ -5425,7 +5490,9 @@
 			"dev": true
 		},
 		"estree-walker": {
-			"version": "2.0.2"
+			"version": "2.0.2",
+			"resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz",
+			"integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
 		},
 		"esutils": {
 			"version": "2.0.3",
@@ -5573,6 +5640,13 @@
 			"version": "1.0.0",
 			"dev": true
 		},
+		"fsevents": {
+			"version": "2.3.2",
+			"resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz",
+			"integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+			"dev": true,
+			"optional": true
+		},
 		"function-bind": {
 			"version": "1.1.1"
 		},
@@ -5884,9 +5958,18 @@
 			}
 		},
 		"magic-string": {
-			"version": "0.25.9",
+			"version": "0.30.1",
+			"resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.1.tgz",
+			"integrity": "sha512-mbVKXPmS0z0G4XqFDCTllmDQ6coZzn94aMlb0o/A4HEHJCKcanlDZwYJgwnkmgD3jyWhUgj9VsPrfd972yPffA==",
 			"requires": {
-				"sourcemap-codec": "^1.4.8"
+				"@jridgewell/sourcemap-codec": "^1.4.15"
+			},
+			"dependencies": {
+				"@jridgewell/sourcemap-codec": {
+					"version": "1.4.15",
+					"resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
+					"integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
+				}
 			}
 		},
 		"memoize-one": {
@@ -6061,14 +6144,18 @@
 			"dev": true
 		},
 		"pinia": {
-			"version": "2.0.27",
+			"version": "2.1.4",
+			"resolved": "https://registry.npmmirror.com/pinia/-/pinia-2.1.4.tgz",
+			"integrity": "sha512-vYlnDu+Y/FXxv1ABo1vhjC+IbqvzUdiUC3sfDRrRyY2CQSrqqaa+iiHmqtARFxJVqWQMCJfXx1PBvFs9aJVLXQ==",
 			"requires": {
-				"@vue/devtools-api": "^6.4.5",
-				"vue-demi": "*"
+				"@vue/devtools-api": "^6.5.0",
+				"vue-demi": ">=0.14.5"
 			},
 			"dependencies": {
 				"vue-demi": {
-					"version": "0.13.11",
+					"version": "0.14.5",
+					"resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.5.tgz",
+					"integrity": "sha512-o9NUVpl/YlsGJ7t+xuqJKx8EBGf1quRhCiT6D/J0pfwmk9zUwYkC7yrF4SZCe6fETvSM3UNL2edcbYrSyc4QHA==",
 					"requires": {}
 				}
 			}
@@ -6318,7 +6405,9 @@
 			"version": "1.15.0"
 		},
 		"source-map": {
-			"version": "0.6.1"
+			"version": "0.6.1",
+			"dev": true,
+			"peer": true
 		},
 		"source-map-js": {
 			"version": "1.0.2"
@@ -6332,9 +6421,6 @@
 				"source-map": "^0.6.0"
 			}
 		},
-		"sourcemap-codec": {
-			"version": "1.4.8"
-		},
 		"ssr-window": {
 			"version": "3.0.0"
 		},
@@ -6495,7 +6581,9 @@
 			"version": "1.11.1"
 		},
 		"vite": {
-			"version": "3.2.4",
+			"version": "3.2.7",
+			"resolved": "https://registry.npmmirror.com/vite/-/vite-3.2.7.tgz",
+			"integrity": "sha512-29pdXjk49xAP0QBr0xXqu2s5jiQIXNvE/xwd0vUizYT2Hzqe4BksNNoWllFVXJf4eLZ+UlVQmXfB4lWrc+t18g==",
 			"dev": true,
 			"requires": {
 				"esbuild": "^0.15.9",
@@ -6519,13 +6607,15 @@
 			"dev": true
 		},
 		"vue": {
-			"version": "3.2.45",
-			"requires": {
-				"@vue/compiler-dom": "3.2.45",
-				"@vue/compiler-sfc": "3.2.45",
-				"@vue/runtime-dom": "3.2.45",
-				"@vue/server-renderer": "3.2.45",
-				"@vue/shared": "3.2.45"
+			"version": "3.3.4",
+			"resolved": "https://registry.npmmirror.com/vue/-/vue-3.3.4.tgz",
+			"integrity": "sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==",
+			"requires": {
+				"@vue/compiler-dom": "3.3.4",
+				"@vue/compiler-sfc": "3.3.4",
+				"@vue/runtime-dom": "3.3.4",
+				"@vue/server-renderer": "3.3.4",
+				"@vue/shared": "3.3.4"
 			}
 		},
 		"vue-clipboard3": {

+ 3 - 3
package.json

@@ -19,20 +19,20 @@
 		"@microsoft/signalr": "^7.0.0",
 		"@wangeditor/editor": "^5.1.23",
 		"@wangeditor/editor-for-vue": "^5.1.12",
-		"axios": "^1.2.0",
+		"axios": "^1.4.0",
 		"bin-datav": "^0.2.0",
 		"dayjs": "^1.11.9",
 		"echarts": "^5.4.0",
 		"echarts-gl": "^2.0.9",
 		"echarts-wordcloud": "^2.1.0",
-		"element-plus": "^2.2.22",
+		"element-plus": "^2.3.8",
 		"file-saver": "^2.0.5",
 		"js-cookie": "^3.0.1",
 		"js-table2excel": "^1.0.3",
 		"jsencrypt": "^3.3.2",
 		"mitt": "^3.0.0",
 		"nprogress": "^0.2.0",
-		"pinia": "^2.0.25",
+		"pinia": "^2.1.4",
 		"pinia-plugin-persist": "^1.0.0",
 		"qrcodejs2-fixes": "^0.0.2",
 		"qs": "^6.11.0",

+ 1 - 1
src/api/system/holiday.ts

@@ -13,7 +13,7 @@ import request from '/@/utils/request';
  * @param {string} year
  * @return {*}
  */
-export const getDaysSetting = (month:Date,year:string) => {
+export const getDaysSetting = (month: string, year: string) => {
     return request({
         url: `/api/v1/Setting/getdaysettings-month/${month}?year=${year}`,
         method: 'get'

+ 252 - 210
src/views/business/order/accept/orderEdit.vue

@@ -7,24 +7,26 @@
 					<!-- <div class="flex-center-between mb20">
 						<p class="table-title">工单信息</p>
 					</div> -->
-					<el-form :model="state.ruleForm" ref="ruleFormRef" label-width="110px" label-position="right"
-						scroll-to-error v-loading="state.formLoading">
+					<el-form :model="state.ruleForm" ref="ruleFormRef" label-width="110px" label-position="right" scroll-to-error v-loading="state.formLoading">
 						<p class="border-title mb10">来电信息</p>
 						<el-row :gutter="0">
 							<!-- 来源渠道 -->
 							<el-col :span="12">
 								<!-- 手动创建 -->
 								<template v-if="state.createFrom === 'manual'">
-									<el-form-item label="来源渠道" prop="channel"
-										:rules="[{ required: true, message: '请选择来源渠道', trigger: 'change' }]">
-										<el-select v-model="state.ruleForm.channel" placeholder="请选择来源渠道" class="w100"
-											@change="() => {
-												ruleFormRef.resetFields('fromPhone');
-												state.ruleForm.fromPhone = '';
-											}
-												">
-											<el-option v-for="item in state.channelOptions" :key="item.key"
-												:label="item.value" :value="item.key" />
+									<el-form-item label="来源渠道" prop="channel" :rules="[{ required: true, message: '请选择来源渠道', trigger: 'change' }]">
+										<el-select
+											v-model="state.ruleForm.channel"
+											placeholder="请选择来源渠道"
+											class="w100"
+											@change="
+												() => {
+													ruleFormRef.resetFields('fromPhone');
+													state.ruleForm.fromPhone = '';
+												}
+											"
+										>
+											<el-option v-for="item in state.channelOptions" :key="item.key" :label="item.value" :value="item.key" />
 										</el-select>
 									</el-form-item>
 								</template>
@@ -64,16 +66,19 @@
 							<el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12" v-if="state.ruleForm.channel === 0">
 								<!-- 手动创建 -->
 								<template v-if="state.createFrom === 'manual'">
-									<el-form-item label="来电号码" prop="fromPhone" :rules="[
-										{ required: true, message: '请填写来电号码', trigger: 'blur' },
-										{
-											pattern: /^((0\d{2,3}(-)?\d{7,8})|(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8})$/,
-											message: '来电号码格式错误',
-											trigger: 'blur',
-										},
-									]">
-										<el-input v-model="state.ruleForm.fromPhone" placeholder="请填写来电号码" clearable
-											@blur="searchHistory"> </el-input>
+									<el-form-item
+										label="来电号码"
+										prop="fromPhone"
+										:rules="[
+											{ required: true, message: '请填写来电号码', trigger: 'blur' },
+											{
+												pattern: /^((0\d{2,3}(-)?\d{7,8})|(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8})$/,
+												message: '来电号码格式错误',
+												trigger: 'blur',
+											},
+										]"
+									>
+										<el-input v-model="state.ruleForm.fromPhone" placeholder="请填写来电号码" clearable @blur="searchHistory"> </el-input>
 									</el-form-item>
 								</template>
 								<!-- 来电弹单 -->
@@ -94,8 +99,7 @@
 								<el-form-item label="服务坐席">
 									<!-- 手动创建 -->
 									<template v-if="state.createFrom === 'manual'">
-										<span>{{ state.ruleForm.employeeName + '[' + state.ruleForm.employeeStaffNo + ']'
-										}}</span>
+										<span>{{ state.ruleForm.employeeName + '[' + state.ruleForm.employeeStaffNo + ']' }}</span>
 									</template>
 									<!-- 来电弹单 -->
 									<template v-else-if="state.createFrom === 'tel'">
@@ -108,97 +112,112 @@
 								</el-form-item>
 							</el-col>
 							<el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12">
-								<el-form-item label="来电/信人" prop="fromName"
-									:rules="[{ required: true, message: '请填写来电/信人', trigger: 'blur' }]">
-									<el-input v-model="state.ruleForm.fromName" placeholder="请填写来电/信人" clearable>
-									</el-input>
+								<el-form-item label="来电/信人" prop="fromName" :rules="[{ required: true, message: '请填写来电/信人', trigger: 'blur' }]">
+									<el-input v-model="state.ruleForm.fromName" placeholder="请填写来电/信人" clearable> </el-input>
 								</el-form-item>
 							</el-col>
 							<el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12">
-								<el-form-item label="来电/信人性别" prop="fromGender"
-									:rules="[{ required: true, message: '请选择来电/信人性别', trigger: 'change' }]">
+								<el-form-item
+									label="来电/信人性别"
+									prop="fromGender"
+									:rules="[{ required: true, message: '请选择来电/信人性别', trigger: 'change' }]"
+								>
 									<el-radio-group v-model="state.ruleForm.fromGender">
-										<el-radio :label="item.key" v-for="item in state.genderOptions" :key="item.key">{{
-											item.value }}</el-radio>
+										<el-radio :label="item.key" v-for="item in state.genderOptions" :key="item.key">{{ item.value }}</el-radio>
 									</el-radio-group>
 								</el-form-item>
 							</el-col>
 							<el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12">
-								<el-form-item label="来电/信人身份" prop="identityType"
-									:rules="[{ required: true, message: '请选择来电/信人身份', trigger: 'change' }]">
+								<el-form-item
+									label="来电/信人身份"
+									prop="identityType"
+									:rules="[{ required: true, message: '请选择来电/信人身份', trigger: 'change' }]"
+								>
 									<el-radio-group v-model="state.ruleForm.identityType" @change="selectIdentity">
-										<el-radio :label="item.key" v-for="item in state.identityTypeOptions"
-											:key="item.key">{{ item.value }}</el-radio>
+										<el-radio :label="item.key" v-for="item in state.identityTypeOptions" :key="item.key">{{ item.value }}</el-radio>
 									</el-radio-group>
 								</el-form-item>
 							</el-col>
 							<el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12">
-								<el-form-item label="证件类型" prop="licenceTypeObj"
-									:rules="[{ required: false, message: '请选择证件类型', trigger: 'change' }]">
-									<el-select v-model="state.ruleForm.licenceTypeObj" placeholder="请选择证件类型" class="w100"
-										value-key="dicDataValue" @change="(val:any) => {
+								<el-form-item label="证件类型" prop="licenceTypeObj" :rules="[{ required: false, message: '请选择证件类型', trigger: 'change' }]">
+									<el-select
+										v-model="state.ruleForm.licenceTypeObj"
+										placeholder="请选择证件类型"
+										class="w100"
+										value-key="dicDataValue"
+										@change="(val:any) => {
 											state.ruleForm.licenceType = val.dicDataName;
 											state.ruleForm.licenceTypeCode = val.dicDataValue;
 										}
-											">
-										<el-option v-for="item in state.licenceTypeOptions" :key="item.dicDataValue"
-											:label="item.dicDataName" :value="item" />
+											"
+									>
+										<el-option v-for="item in state.licenceTypeOptions" :key="item.dicDataValue" :label="item.dicDataName" :value="item" />
 									</el-select>
 								</el-form-item>
 							</el-col>
 							<!-- 若“证件类型”有值,则证件号码必填 -->
 							<el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12">
-								<el-form-item label="证件号码" prop="licenceNo" :rules="[
-									{ required: state.ruleForm.licenceTypeCode, message: '请填写证件号码', trigger: 'blur' },
-									{
-										pattern: licenceNoPattern,
-										message: '证件号码格式错误',
-										trigger: 'blur',
-									},
-								]">
-									<el-input v-model="state.ruleForm.licenceNo" placeholder="请填写证件号码" clearable>
-									</el-input>
+								<el-form-item
+									label="证件号码"
+									prop="licenceNo"
+									:rules="[
+										{ required: state.ruleForm.licenceTypeCode, message: '请填写证件号码', trigger: 'blur' },
+										{
+											pattern: licenceNoPattern,
+											message: '证件号码格式错误',
+											trigger: 'blur',
+										},
+									]"
+								>
+									<el-input v-model="state.ruleForm.licenceNo" placeholder="请填写证件号码" clearable> </el-input>
 								</el-form-item>
 							</el-col>
 							<el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12">
-								<el-form-item label="年龄段" prop="ageRangeObj"
-									:rules="[{ required: false, message: '请选择年龄段', trigger: 'change' }]">
-									<el-select v-model="state.ruleForm.ageRangeObj" placeholder="请选择年龄段" class="w100"
-										value-key="dicDataValue" @change="(val:any) => {
+								<el-form-item label="年龄段" prop="ageRangeObj" :rules="[{ required: false, message: '请选择年龄段', trigger: 'change' }]">
+									<el-select
+										v-model="state.ruleForm.ageRangeObj"
+										placeholder="请选择年龄段"
+										class="w100"
+										value-key="dicDataValue"
+										@change="(val:any) => {
 											state.ruleForm.ageRange = val.dicDataName;
 											state.ruleForm.ageRangeCode = val.dicDataValue;
 										}
-											">
-										<el-option v-for="item in state.ageRangeOptions" :key="item.dicDataValue"
-											:label="item.dicDataName" :value="item" />
+											"
+									>
+										<el-option v-for="item in state.ageRangeOptions" :key="item.dicDataValue" :label="item.dicDataName" :value="item" />
 									</el-select>
 								</el-form-item>
 							</el-col>
 							<el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12">
-								<el-form-item label="联系电话" prop="contact" :rules="[
-									{ required: true, message: '请填写联系电话', trigger: 'blur' },
-									{
-										pattern: /^((0\d{2,3}(-)?\d{7,8})|(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8})$/,
-										message: '联系电话格式错误',
-										trigger: 'blur',
-									},
-								]">
-									<el-input v-model="state.ruleForm.contact"
-										placeholder="请填写联系电话" clearable>
-									</el-input>
+								<el-form-item
+									label="联系电话"
+									prop="contact"
+									:rules="[
+										{ required: true, message: '请填写联系电话', trigger: 'blur' },
+										{
+											pattern: /^((0\d{2,3}(-)?\d{7,8})|(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8})$/,
+											message: '联系电话格式错误',
+											trigger: 'blur',
+										},
+									]"
+								>
+									<el-input v-model="state.ruleForm.contact" placeholder="请填写联系电话" clearable> </el-input>
 								</el-form-item>
 							</el-col>
 							<el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12">
-								<el-form-item label="" prop="acceptSms"
-									:rules="[{ required: false, message: '请选择', trigger: 'blur' }]">
+								<el-form-item label="" prop="acceptSms" :rules="[{ required: false, message: '请选择', trigger: 'blur' }]">
 									<el-checkbox v-model="state.ruleForm.acceptSms" label="受理短信" />
-                  <el-checkbox v-model="state.ruleForm.needContact" label="是否保密" />
+									<el-checkbox v-model="state.ruleForm.needContact" label="是否保密" />
 								</el-form-item>
 							</el-col>
 							<!-- 当“来电/信人身份”为“企业”时必填 -->
 							<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
-								<el-form-item label="工作单位" prop="company"
-									:rules="[{ required: state.ruleForm.identityType === 2, message: '请填写工作单位', trigger: 'blur' }]">
+								<el-form-item
+									label="工作单位"
+									prop="company"
+									:rules="[{ required: state.ruleForm.identityType === 2, message: '请填写工作单位', trigger: 'blur' }]"
+								>
 									<el-input v-model="state.ruleForm.company" placeholder="请填写工作单位" clearable> </el-input>
 								</el-form-item>
 							</el-col>
@@ -209,77 +228,92 @@
 								<el-form-item label="工单编码"> {{ state.ruleForm.no }} </el-form-item>
 							</el-col>
 							<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
-								<el-form-item label="工单标题" prop="title"
-									:rules="[{ required: true, message: '请填写工单标题', trigger: 'blur' }]">
+								<el-form-item label="工单标题" prop="title" :rules="[{ required: true, message: '请填写工单标题', trigger: 'blur' }]">
 									<el-input v-model="state.ruleForm.title" placeholder="请填写工单标题" clearable> </el-input>
 								</el-form-item>
 							</el-col>
 							<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
 								<el-row :gutter="0">
 									<el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12">
-										<el-form-item label="工单类型" prop="orderType"
-											:rules="[{ required: true, message: '请选择工单类型', trigger: 'change' }]">
-											<el-select v-model="state.ruleForm.orderType" placeholder="请选择工单类型" class="w100"
-												@change="selectOrderType">
-												<el-option v-for="item in state.orderTypeOptions" :key="item.key"
-													:label="item.value" :value="item.key" />
+										<el-form-item label="工单类型" prop="orderType" :rules="[{ required: true, message: '请选择工单类型', trigger: 'change' }]">
+											<el-select v-model="state.ruleForm.orderType" placeholder="请选择工单类型" class="w100" @change="selectOrderType">
+												<el-option v-for="item in state.orderTypeOptions" :key="item.key" :label="item.value" :value="item.key" />
 											</el-select>
 										</el-form-item>
 									</el-col>
 									<!-- 当“工单类型”为非通用工单时,展示【拓展信息】按钮 -->
-									<el-col :xs="6" :sm="6" :md="6" :lg="6" :xl="6" :offset="1"
-										v-if="state.ruleForm.orderType === 1 && state.ruleForm.acceptType">
+									<el-col :xs="6" :sm="6" :md="6" :lg="6" :xl="6" :offset="1" v-if="state.ruleForm.orderType === 1 && state.ruleForm.acceptType">
 										<el-form-item label="" label-width="0px">
-											<el-button @click="showExpandForm">
-												<SvgIcon name="ele-CirclePlus" class="mr3" size="16px" /> 拓展信息
-											</el-button>
+											<el-button @click="showExpandForm"> <SvgIcon name="ele-CirclePlus" class="mr3" size="16px" /> 拓展信息 </el-button>
 										</el-form-item>
 									</el-col>
 								</el-row>
 							</el-col>
 							<el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12">
-								<el-form-item label="受理类型" prop="acceptType"
-									:rules="[{ required: true, message: '请选择受理类型', trigger: 'change' }]">
+								<el-form-item label="受理类型" prop="acceptType" :rules="[{ required: true, message: '请选择受理类型', trigger: 'change' }]">
 									<el-select v-model="state.ruleForm.acceptType" placeholder="请选择受理类型" class="w100">
-										<el-option v-for="item in state.acceptTypeOptions" :key="item.key"
-											:disabled="item.disabled" :label="item.value" :value="item.key" />
+										<el-option
+											v-for="item in state.acceptTypeOptions"
+											:key="item.key"
+											:disabled="item.disabled"
+											:label="item.value"
+											:value="item.key"
+										/>
 									</el-select>
 								</el-form-item>
 							</el-col>
 							<el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12">
-								<el-form-item label="紧急程度" prop="emergencyLevel"
-									:rules="[{ required: true, message: '请选择紧急程度', trigger: 'change' }]">
+								<el-form-item label="紧急程度" prop="emergencyLevel" :rules="[{ required: true, message: '请选择紧急程度', trigger: 'change' }]">
 									<el-select v-model="state.ruleForm.emergencyLevel" placeholder="请选择紧急程度" class="w100">
-										<el-option v-for="item in state.emergencyLevelOptions" :key="item.key"
-											:label="item.value" :value="item.key" />
+										<el-option v-for="item in state.emergencyLevelOptions" :key="item.key" :label="item.value" :value="item.key" />
 									</el-select>
 								</el-form-item>
 							</el-col>
 							<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
-								<el-form-item label="热点分类" prop="hotspotId"
-									:rules="[{ required: true, message: '请选择热点分类', trigger: 'change' }]">
-									<el-tree-select class="w100" v-model="state.ruleForm.hotspotId" filterable clearable
-										placeholder="请选择热点分类" :props="HotspotProps" lazy :load="load" node-key="id"
-										check-strictly :render-after-expand="false" @node-click="hotSpotChange"
-										ref="hotspotRef" :default-expanded-keys="state.hotspotExternal" />
+								<el-form-item label="热点分类" prop="hotspotId" :rules="[{ required: true, message: '请选择热点分类', trigger: 'change' }]">
+									<el-tree-select
+										class="w100"
+										v-model="state.ruleForm.hotspotId"
+										filterable
+										clearable
+										placeholder="请选择热点分类"
+										:props="HotspotProps"
+										lazy
+										:load="load"
+										node-key="id"
+										check-strictly
+										:render-after-expand="false"
+										@node-click="hotSpotChange"
+										ref="hotspotRef"
+										:default-expanded-keys="state.hotspotExternal"
+									/>
 								</el-form-item>
 							</el-col>
 							<el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12">
-								<el-form-item label="事发时间" prop="incidentTime"
-									:rules="[{ required: false, message: '请选择事发时间', trigger: 'change' }]">
-									<el-date-picker v-model="state.ruleForm.incidentTime" type="datetime"
-										placeholder="请选择事发时间" value-format="YYYY-MM-DD[T]HH:mm:ss" class="w100" />
+								<el-form-item label="事发时间" prop="incidentTime" :rules="[{ required: false, message: '请选择事发时间', trigger: 'change' }]">
+									<el-date-picker
+										v-model="state.ruleForm.incidentTime"
+										type="datetime"
+										placeholder="请选择事发时间"
+										value-format="YYYY-MM-DD[T]HH:mm:ss"
+										class="w100"
+									/>
 								</el-form-item>
 							</el-col>
 							<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
 								<el-row :gutter="0">
 									<el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12">
-										<el-form-item label="事发地址" prop="areaCode"
-											:rules="[{ required: false, message: '请选择事发地址', trigger: 'change' }]">
-											<el-cascader :options="state.areaOptions" filterable
+										<el-form-item label="事发地址" prop="areaCode" :rules="[{ required: false, message: '请选择事发地址', trigger: 'change' }]">
+											<el-cascader
+												:options="state.areaOptions"
+												filterable
 												:props="{ value: 'id', label: 'areaName', emitPath: false }"
-												placeholder="请选择事发地址" class="w100" v-model="state.ruleForm.areaCode"
-												ref="areaRef" @change="changeArea">
+												placeholder="请选择事发地址"
+												class="w100"
+												v-model="state.ruleForm.areaCode"
+												ref="areaRef"
+												@change="changeArea"
+											>
 												<template #default="{ node, data }">
 													<span>{{ data.areaName }}</span>
 													<span v-if="!node.isLeaf"> ({{ data.children.length }}) </span>
@@ -288,11 +322,8 @@
 										</el-form-item>
 									</el-col>
 									<el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12">
-										<el-form-item label="" prop="street"
-											:rules="[{ required: true, message: '请填写详细地址', trigger: 'blur' }]"
-											label-width="10px">
-											<el-input v-model="state.ruleForm.street" placeholder="请填写详细地址" clearable>
-											</el-input>
+										<el-form-item label="" prop="street" :rules="[{ required: true, message: '请填写详细地址', trigger: 'blur' }]" label-width="10px">
+											<el-input v-model="state.ruleForm.street" placeholder="请填写详细地址" clearable> </el-input>
 										</el-form-item>
 									</el-col>
 								</el-row>
@@ -301,24 +332,23 @@
 							<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
 								<el-row :gutter="0">
 									<el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12">
-										<el-form-item label="是否重复" prop="isRepeat"
-											:rules="[{ required: true, message: '请选择是否重复', trigger: 'change' }]">
-											<el-select v-model="state.ruleForm.isRepeat" placeholder="请选择是否重复" class="w100"
-												@change="isRepeatChange">
-												<el-option v-for="item in state.repeatOptions" :key="item.key"
-													:label="item.value" :value="item.key" />
+										<el-form-item label="是否重复" prop="isRepeat" :rules="[{ required: true, message: '请选择是否重复', trigger: 'change' }]">
+											<el-select v-model="state.ruleForm.isRepeat" placeholder="请选择是否重复" class="w100" @change="isRepeatChange">
+												<el-option v-for="item in state.repeatOptions" :key="item.key" :label="item.value" :value="item.key" />
 											</el-select>
 										</el-form-item>
 									</el-col>
 									<!-- 必填,若“是否重复”为“是”,则展示重复件选择框 -->
-									<el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12"
-										v-if="state.ruleForm.isRepeat === 'true'">
-										<el-form-item label="" prop="duplicateTitle" label-width="10px"
-											:rules="[{ required: true, message: '请选择重复件', trigger: 'change' }]">
+									<el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12" v-if="state.ruleForm.isRepeat === 'true'">
+										<el-form-item
+											label=""
+											prop="duplicateTitle"
+											label-width="10px"
+											:rules="[{ required: true, message: '请选择重复件', trigger: 'change' }]"
+										>
 											<el-input v-model="state.ruleForm.duplicateTitle" placeholder="请选择重复件" readonly>
 												<template #suffix>
-													<el-button link type="danger" v-if="state.ruleForm.duplicateTitle"
-														@click="clearRepeat">
+													<el-button link type="danger" v-if="state.ruleForm.duplicateTitle" @click="clearRepeat">
 														<SvgIcon name="ele-Delete" size="16px" />
 													</el-button>
 													<el-button link type="primary" class="ml1" @click="selectRepeat">
@@ -331,39 +361,44 @@
 								</el-row>
 							</el-col>
 							<el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12">
-								<el-form-item label="推送分类" prop="pushTypeObj"
-									:rules="[{ required: false, message: '请选择推送分类', trigger: 'change' }]">
-									<el-select v-model="state.ruleForm.pushTypeObj" placeholder="请选择推送分类" class="w100"
-										clearable value-key="dicDataValue" @change="(val:any) => {
+								<el-form-item label="推送分类" prop="pushTypeObj" :rules="[{ required: false, message: '请选择推送分类', trigger: 'change' }]">
+									<el-select
+										v-model="state.ruleForm.pushTypeObj"
+										placeholder="请选择推送分类"
+										class="w100"
+										clearable
+										value-key="dicDataValue"
+										@change="(val:any) => {
 											state.ruleForm.pushType = val.dicDataName;
 											state.ruleForm.pushTypeCode = val.dicDataValue;
 										}
-											">
-										<el-option v-for="item in state.pushTypeOptions" :key="item.dicDataValue"
-											:label="item.dicDataName" :value="item" />
+											"
+									>
+										<el-option v-for="item in state.pushTypeOptions" :key="item.dicDataValue" :label="item.dicDataName" :value="item" />
 									</el-select>
 								</el-form-item>
 							</el-col>
 							<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
-								<el-form-item label="诉求详情" prop="content"
-									:rules="[{ required: true, message: '请填写诉求详情', trigger: 'blur' }]">
-									<Comment @chooseComment="chooseComment" v-model="state.ruleForm.content"
-										placeholder="请填写诉求详情" :loading="state.formLoading" :commonEnum="commonEnum.Seat"
-										modal />
+								<el-form-item label="诉求详情" prop="content" :rules="[{ required: true, message: '请填写诉求详情', trigger: 'blur' }]">
+									<Comment
+										@chooseComment="chooseComment"
+										v-model="state.ruleForm.content"
+										placeholder="请填写诉求详情"
+										:loading="state.formLoading"
+										:commonEnum="commonEnum.Seat"
+										modal
+									/>
 								</el-form-item>
 							</el-col>
 							<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
-								<el-form-item label="附件" prop="remark"
-									:rules="[{ required: false, message: '请填写诉求内容', trigger: 'change' }]">
+								<el-form-item label="附件" prop="remark" :rules="[{ required: false, message: '请填写诉求内容', trigger: 'change' }]">
 									<Upload :fileList="state.fileList" />
 								</el-form-item>
 							</el-col>
 							<el-col :xs="24" :sm="12" :md="24" :lg="24" :xl="24">
 								<el-form-item>
-									<el-button class="default-button" @click="save" v-auth="'business:order:add'"> 保存
-									</el-button>
-									<el-button type="primary" v-waves @click="submit"
-										v-auth="'business:order:startWorkflow'"> 提交 </el-button>
+									<el-button class="default-button" @click="save" v-auth="'business:order:add'"> 保存 </el-button>
+									<el-button type="primary" v-waves @click="submit" v-auth="'business:order:startWorkflow'"> 提交 </el-button>
 								</el-form-item>
 							</el-col>
 						</el-row>
@@ -380,26 +415,21 @@
 						</el-tabs> -->
 						<el-form :model="state.queryParams" ref="queryParamsRef" :inline="true" @submit.native.prevent>
 							<el-form-item label="关键词" prop="Keyword">
-								<el-input v-model="state.queryParams.Keyword" placeholder="工单标题/工单编码" clearable
-									@keyup.enter="handleQuery" />
+								<el-input v-model="state.queryParams.Keyword" placeholder="工单标题/工单编码" clearable @keyup.enter="handleQuery" />
 							</el-form-item>
 							<el-form-item>
 								<el-button type="primary" @click="handleQuery" :loading="state.historyOrderLoading">
 									<SvgIcon name="ele-Search" class="mr5" />查询
 								</el-button>
-								<el-button @click="resetQuery(queryParamsRef)" :loading="state.historyOrderLoading"
-									class="default-button">
+								<el-button @click="resetQuery(queryParamsRef)" :loading="state.historyOrderLoading" class="default-button">
 									<SvgIcon name="ele-Refresh" class="mr5" />重置
 								</el-button>
 							</el-form-item>
 						</el-form>
-						<el-table :data="state.tableData" v-loading="state.historyOrderLoading"
-							@current-change="handleSelectionChange" max-height="300">
-							<el-table-column prop="phoneNo" label="重复件" width="70"
-								v-if="state.ruleForm.isRepeat === 'true'">
+						<el-table :data="state.tableData" v-loading="state.historyOrderLoading" @current-change="handleSelectionChange" max-height="300">
+							<el-table-column prop="phoneNo" label="重复件" width="70" v-if="state.ruleForm.isRepeat === 'true'">
 								<template #default="{ row }">
-									<el-radio v-model="state.tableRadio" :label="row.id"
-										@change="handleRowChange(row)">&nbsp;</el-radio>
+									<el-radio v-model="state.tableRadio" :label="row.id" @change="handleRowChange(row)">&nbsp;</el-radio>
 								</template>
 							</el-table-column>
 							<el-table-column type="index" width="60" label="序号" />
@@ -414,26 +444,19 @@
 							<el-table-column prop="statusText" label="状态" width="70" fixed="right" align="center">
 								<template #default="{ row }">
 									<!-- 草稿 -->
-									<span style="color: var(--el-color-info)" v-if="row.status === 0">{{ row.statusText
-									}}</span>
+									<span style="color: var(--el-color-info)" v-if="row.status === 0">{{ row.statusText }}</span>
 									<!-- 待签收 -->
-									<span style="color: var(--el-color-success)" v-if="row.status === 10">{{ row.statusText
-									}}</span>
+									<span style="color: var(--el-color-success)" v-if="row.status === 10">{{ row.statusText }}</span>
 									<!-- 办理中 -->
-									<span style="color: var(--el-color-primary)" v-if="row.status === 20">{{ row.statusText
-									}}</span>
+									<span style="color: var(--el-color-primary)" v-if="row.status === 20">{{ row.statusText }}</span>
 									<!-- 会签中 -->
-									<span style="color: var(--el-color-primary)" v-if="row.status === 30">{{ row.statusText
-									}}</span>
+									<span style="color: var(--el-color-primary)" v-if="row.status === 30">{{ row.statusText }}</span>
 									<!-- 退回 -->
-									<span style="color: var(--el-color-danger)" v-if="row.status === 40">{{ row.statusText
-									}}</span>
+									<span style="color: var(--el-color-danger)" v-if="row.status === 40">{{ row.statusText }}</span>
 									<!-- 办理完成 -->
-									<span style="color: var(--el-color-success)" v-if="row.status === 50">{{ row.statusText
-									}}</span>
+									<span style="color: var(--el-color-success)" v-if="row.status === 50">{{ row.statusText }}</span>
 									<!-- 已归档 -->
-									<span style="color: var(--el-color-info)" v-if="row.status === 60">{{ row.statusText
-									}}</span>
+									<span style="color: var(--el-color-info)" v-if="row.status === 60">{{ row.statusText }}</span>
 								</template>
 							</el-table-column>
 							<el-table-column prop="statusText" label="操作" width="70" fixed="right" align="center">
@@ -443,30 +466,49 @@
 							</el-table-column>
 						</el-table>
 						<!-- 分页 -->
-						<pagination :total="state.total" v-model:page="state.queryParams.PageIndex"
-							v-model:limit="state.queryParams.PageSize" @pagination="searchHistory" />
+						<pagination
+							:total="state.total"
+							v-model:page="state.queryParams.PageIndex"
+							v-model:limit="state.queryParams.PageSize"
+							@pagination="searchHistory"
+						/>
 					</div>
 					<div class="right-content-knowledge mt20 box pd20">
 						<div class="flex-center-between mb20">
 							<p class="table-title">知识检索</p>
 						</div>
 						<div class="knowledge-container">
-							<el-input v-model="state.KnowledgeKeyword" class="knowledge-input mb20" placeholder="请填写搜索内容"
-								@keyup.enter="searchKnowledge(state.KnowledgeKeyword)">
+							<el-input
+								v-model="state.KnowledgeKeyword"
+								class="knowledge-input mb20"
+								placeholder="请填写搜索内容"
+								@keyup.enter="searchKnowledge(state.KnowledgeKeyword)"
+							>
 								<template #prefix>
 									<SvgIcon name="ele-Search" size="16px" />
 								</template>
 								<template #suffix>
-									<el-button class="knowledge-search-button" type="primary" :loading="state.loading" round
-										@click="searchKnowledge(state.KnowledgeKeyword)">
+									<el-button
+										class="knowledge-search-button"
+										type="primary"
+										:loading="state.loading"
+										round
+										@click="searchKnowledge(state.KnowledgeKeyword)"
+									>
 										<SvgIcon name="ele-Search" size="16px" color="#fff" />
 									</el-button>
 								</template>
 							</el-input>
 							<div>
 								<span class="mr10" v-if="state.items.length">搜索热词</span>
-								<el-tag v-for="(item, index) in state.hotWords" :key="index" class="mr10 mb10"
-									style="cursor: pointer" @click="knowledgeRetrievalPaged(item)" round>
+								<el-tag
+									v-for="(item, index) in state.hotWords"
+									:key="index"
+									class="mr10 mb10"
+									style="cursor: pointer"
+									@click="knowledgeRetrievalPaged(item)"
+									round
+								>
 									{{ item }}
 								</el-tag>
 							</div>
@@ -485,10 +527,14 @@
 							</ul>
 						</div>
 						<!-- 分页 -->
-						<pagination :total="state.knowledgeTotal" v-model:page="state.knowledgeQuery.PageIndex"
+						<pagination
+							:total="state.knowledgeTotal"
+							v-model:page="state.knowledgeQuery.PageIndex"
 							v-model:limit="state.knowledgeQuery.PageSize"
-							@pagination="knowledgeRetrievalPaged(state.KnowledgeKeyword)" :pageSizes="[5, 10, 15, 20]"
-							layout="total, prev, pager, next" />
+							@pagination="knowledgeRetrievalPaged(state.KnowledgeKeyword)"
+							:pageSizes="[5, 10, 15, 20]"
+							layout="total, prev, pager, next"
+						/>
 					</div>
 				</el-scrollbar>
 			</el-col>
@@ -533,18 +579,18 @@ const state = reactive<any>({
 	activeName: 'first', // tabs
 	ruleForm: {
 		// 表单
-    street: '',//街道
-    transferPhone: '',//转接电话
-    employeeName: '',//员工姓名
-    employeeStaffNo: '',//员工工号
-    duplicateTitle: '',//重复工单标题
-    duplicateId: '',//重复工单id
-    content: '', // 工单内容
-    licenceTypeCode: '', // 证件类型
-    acceptSms: false, // 是否接收短信
-    isSecret:false, //是否保密
-    fromPhone: '', // 来电号码
-    fromGender: '',// 来电人性别
+		street: '', //街道
+		transferPhone: '', //转接电话
+		employeeName: '', //员工姓名
+		employeeStaffNo: '', //员工工号
+		duplicateTitle: '', //重复工单标题
+		duplicateId: '', //重复工单id
+		content: '', // 工单内容
+		licenceTypeCode: '', // 证件类型
+		acceptSms: false, // 是否接收短信
+		isSecret: false, //是否保密
+		fromPhone: '', // 来电号码
+		fromGender: '', // 来电人性别
 	},
 	formLoading: false, // 表单加载状态
 	historyOrderLoading: false, // 历史工单加载状态
@@ -698,7 +744,7 @@ const showExpandForm = () => {
 const saveExpandForm = (val: any) => {
 	const acceptTypeMap: any = {
 		30: 'orderReport',
-		35: 'orderComplain'
+		35: 'orderComplain',
 	};
 	const property = acceptTypeMap[state.ruleForm.acceptType];
 	if (property) {
@@ -706,17 +752,17 @@ const saveExpandForm = (val: any) => {
 	}
 };
 // 选择来点人身份如果是企业 推送分类自动选择助企纾困
-const selectIdentity = (val:number)=>{
-  if(val === 2){
-    state.ruleForm.pushTypeObj = state.pushTypeOptions.find((item:any)=>item.dicDataValue === '8'); // 助企纾困
-    state.ruleForm.pushType = state.ruleForm.pushTypeObj.dicDataName;
-    state.ruleForm.pushTypeCode = state.ruleForm.pushTypeObj.dicDataValue;
-  }
-}
+const selectIdentity = (val: number) => {
+	if (val === 2) {
+		state.ruleForm.pushTypeObj = state.pushTypeOptions.find((item: any) => item.dicDataValue === '8'); // 助企纾困
+		state.ruleForm.pushType = state.ruleForm.pushTypeObj.dicDataName;
+		state.ruleForm.pushTypeCode = state.ruleForm.pushTypeObj.dicDataValue;
+	}
+};
 // 删除不必要的属性
 const deleteUnnecessaryProperties = (obj: any) => {
 	const propertiesToDelete = ['ageRangeObj', 'pushTypeObj', 'licenceTypeObj'];
-	propertiesToDelete.forEach(prop => Reflect.deleteProperty(obj, prop));
+	propertiesToDelete.forEach((prop) => Reflect.deleteProperty(obj, prop));
 	if (obj.acceptType === 30) Reflect.deleteProperty(obj, 'orderComplain');
 	if (obj.acceptType === 35) Reflect.deleteProperty(obj, 'orderReport');
 };
@@ -764,7 +810,8 @@ const submit = throttle(() => {
 				});
 			};
 
-			if (submitObj.orderType === 1 && submitObj.acceptType && !ExpandFormRef.value.state.validated) { //如果没有通过展示弹窗
+			if (submitObj.orderType === 1 && submitObj.acceptType && !ExpandFormRef.value.state.validated) {
+				//如果没有通过展示弹窗
 				ExpandFormRef.value.openDialog(submitObj.acceptType, true);
 			} else {
 				proceedWithSubmission();
@@ -884,12 +931,7 @@ onMounted(() => {
 		}
 
 		try {
-			const [area, res, hotspot, response] = await Promise.all([
-				treeArea(),
-				orderBaseDataAdd(),
-				getKeyWord(),
-				orderDetail(route.params.id)
-			]);
+			const [area, res, hotspot, response] = await Promise.all([treeArea(), orderBaseDataAdd(), getKeyWord(), orderDetail(route.params.id)]);
 			state.acceptTypeOptions = res.result?.acceptTypeOptions ?? [];
 			state.channelOptions = res.result?.channelOptions ?? [];
 			state.emergencyLevelOptions = res.result?.emergencyLevelOptions ?? [];

+ 2 - 1
src/views/knowledge/knowledge/index.vue

@@ -79,7 +79,7 @@
 					</div>
 				</el-col>
 				<el-col :xs="18" :sm="18" :md="18" :lg="20" :xl="20" class="rightContent">
-					<el-scrollbar class="pr10" ref="rightScrollRef">
+					<el-scrollbar class="pr10 scrollbar__view" ref="rightScrollRef">
 							<el-tabs v-model="state.queryParams.Status" @tab-change="handleClick">
 								<el-tab-pane label="全部" name=" "></el-tab-pane>
 								<el-tab-pane :label="v.value" :name="v.key" v-for="(v, i) in state.statusOptions" :key="i"></el-tab-pane>
@@ -266,6 +266,7 @@
 								v-model:limit="state.queryParams.PageSize"
 								@pagination="queryList"
 							/>
+            <el-backtop target=".scrollbar__view > div"/>
 					</el-scrollbar>
 				</el-col>
 			</el-row>

+ 2 - 2
src/views/system/config/dict/component/Dict-add.vue

@@ -20,7 +20,6 @@
 								clearable
 								class="w100"
 								v-model="state.ruleForm.parentId"
-								ref="cascaderRef"
 							>
 								<template #default="{ node, data }">
 									<span>{{ data.dicDataName }}</span>
@@ -74,12 +73,13 @@ const state = reactive<any>({
 let loading = ref<boolean>(false);
 // 打开弹窗
 const ruleFormRef = ref<RefType>();
-const openDialog = async () => {
+const openDialog = async (typeId:string) => {
 	ruleFormRef.value?.resetFields();
 	state.parentData = [];
 	try {
 		const res: any = await dicTypeList();
 		state.dicTypeList = res.result ?? [];
+    state.ruleForm.dicTypeId = typeId;
 		state.isShowDialog = true;
 	} catch (error) {
 		console.log(error);

+ 0 - 1
src/views/system/config/dict/component/Dict-edit.vue

@@ -20,7 +20,6 @@
 								clearable
 								class="w100"
 								v-model="state.ruleForm.parentId"
-								ref="cascaderRef"
 							>
 								<template #default="{ node, data }">
 									<span>{{ data.dicDataName }}</span>

+ 5 - 5
src/views/system/config/dict/index.vue

@@ -59,7 +59,7 @@
 									<!-- <el-button type="primary" @click="onRowDel" v-waves v-auth="'100104'">
                                     <SvgIcon name="ele-Delete" class="mr5" />注销
                                 </el-button> -->
-									<!-- <el-button type="primary" v-waves @click="onImportTable">
+									<!-- <el-button type="primary" v-waves @click="onExportTable">
 										<SvgIcon name="iconfont icon-daochu" class="mr5" />导出
 									</el-button> -->
 								</div>
@@ -210,7 +210,7 @@ const getAllIds = (arr: any) => {
 	});
 };
 // 获取字典类型列表
-const getdicTypeList = () => {
+const getDictTypeList = () => {
 	if (!auth('system:dict:type')) ElMessage.error('抱歉,您没有权限获取字典类型!');
 	else {
 		state.loading = true;
@@ -281,7 +281,7 @@ const handleNodeClick = (data: any) => {
 };
 // 打开新增字典弹窗
 const onOpenAddUser = () => {
-	dictAddRef.value.openDialog();
+	dictAddRef.value.openDialog(state.queryParams.typeid);
 };
 // 打开修改字典弹窗
 const onOpenEditUser = (row: any) => {
@@ -312,9 +312,9 @@ const resetQuery = throttle((formEl: FormInstance | undefined) => {
 //     }).catch(() => { });
 // };
 // 导出表格
-// const onImportTable = () => {};
+// const onExportTable = () => {};
 onMounted(() => {
-	getdicTypeList();
+	getDictTypeList();
 });
 </script>
 <style lang="scss" scoped>

+ 32 - 30
src/views/system/config/holiday/index.vue

@@ -12,7 +12,7 @@
             <el-button type="primary" @click="clearSelect" :disabled="!multipleDates.length"><SvgIcon name="ele-Delete" class="mr3"/> 清空选择</el-button>
 					</el-button-group>
           <el-button-group>
-            <el-button @click="setWorkTime" ><SvgIcon name="ele-AlarmClock" class="mr3"/>设定工作时间</el-button>
+            <el-button @click="setWorkTime" ><SvgIcon name="ele-AlarmClock" class="mr3"/> 设定工作时间</el-button>
           </el-button-group>
 				</template>
 				<template #date-cell="{ data }">
@@ -29,7 +29,6 @@
 				</template>
 			</el-calendar>
 		</el-card>
-
 		<!--  工作时间设置  -->
 		<el-dialog title="设定工作时间" v-model="isShowDialog" width="600px" draggable>
 			<el-form :model="state.ruleForm" ref="ruleFormRef" label-width="120px">
@@ -76,18 +75,15 @@ const state = reactive<any>({
 // 选择月份
 const selectMonth = async (val: Date) => {
   state.calendarData = [];
-  const days:any = dayjs(val).daysInMonth();
-  for(let i = 0;i<days;i++){
-    state.calendarData.push({
-      currantTime:dayjs(dayjs(val).startOf('month')).add(i,'day').format('YYYY-MM-DD'),
-      checked:false
-    })
-  }
-
+  const days: number = dayjs(val).daysInMonth();
+  state.calendarData = Array.from({ length: days }, (_, i) => ({
+    currantTime: dayjs(val).startOf('month').add(i, 'day').format('YYYY-MM-DD'),
+    checked: false
+  }));
   dateRange.value = [new Date(dayjs(val).startOf('month').format('YYYY-MM-DD')),
     new Date(dayjs(val).endOf('month').format('YYYY-MM-DD'))];
+  await getSetting(dayjs(val).format('MM'),dayjs(val).format('YYYY'));
   today.value = val;
-  await getSetting(dayjs(today.value).format('MM'),dayjs(today.value).format('YYYY'));
 };
 // 日期范围
 const dateRange = ref([new Date(dayjs(today.value).startOf('month').format('YYYY-MM-DD')),
@@ -160,22 +156,22 @@ const onSubmit = async (formEl: FormInstance | undefined) => {
 	});
 };
 // 获取节假日设置
-const getSetting = async (dateMoth:string,dateYear:string)=>{
+const getSetting = async (dateMoth: string, dateYear: string) => {
   loading.value = true;
   try {
-    const {result} = await getDaysSetting(dateMoth,dateYear);
-    for(let i of result){
-      for(let j of state.calendarData){
-        if(dayjs(i.day).format('YYYY-MM-DD') === j.currantTime){
-          j.isWorkDay = i.isWorkDay;
-        }
+    const { result } = await getDaysSetting(dateMoth, dateYear);
+    result.forEach(i => {
+      const item = state.calendarData.find(j => dayjs(i.day).format('YYYY-MM-DD') === j.currantTime);
+      if (item) {
+        item.isWorkDay = i.isWorkDay;
       }
-    }
-    loading.value = false;
-  }catch{
+    });
+  } catch {
+    // handle error if needed
+  } finally {
     loading.value = false;
   }
-}
+};
 // 是否节假日
 const isFestival = (slotData:any)=> {
   let solarDayArr = slotData.day.split('-');
@@ -191,13 +187,11 @@ const solarToLunar = (slotData:any)=> {
   return lunarDay.lunarFestival ? lunarDay.lunarFestival : lunarDay.festival ? lunarDay.festival : lunarMD
 };
 onMounted(async ()=>{
-  const days:any = dayjs(today.value).daysInMonth();
-  for(let i = 0;i<days;i++){
-    state.calendarData.push({
-      currantTime:dayjs(dayjs(today.value).startOf('month')).add(i,'day').format('YYYY-MM-DD'),
-      checked:false
-    })
-  }
+  const days: number = dayjs(today.value).daysInMonth();
+  state.calendarData = Array.from({ length: days }, (_, i) => ({
+    currantTime: dayjs(today.value).startOf('month').add(i, 'day').format('YYYY-MM-DD'),
+    checked: false
+  }));
   await getSetting(dayjs(today.value).format('MM'),dayjs(today.value).format('YYYY'));
 })
 </script>
@@ -205,6 +199,14 @@ onMounted(async ()=>{
 /**日期div的样式-农历*/
 .el-calendar-table .el-calendar-day > div .lunar {
   padding-top: 10px;
-  text-align: center
+}
+:deep(.el-checkbox){
+  align-items: center;
+  justify-content: center;
+}
+:deep(.el-checkbox__input){
+  position: absolute;
+  right: 0;
+  top: 0;
 }
 </style>

+ 2 - 2
src/views/system/user/index.vue

@@ -31,7 +31,7 @@
 				</el-col>
 				<!-- 右侧表格 -->
 				<el-col :xs="18" :sm="18" :md="18" :lg="20" :xl="20" class="rightContent">
-					<el-scrollbar class="pr10" ref="rightScrollRef">
+					<el-scrollbar class="pr10 scrollbar__view" ref="rightScrollRef">
 							<el-form :model="state.queryParams" ref="ruleFormRef" :inline="true" @submit.native.prevent>
 								<el-form-item label="关键字" prop="Keyword">
 									<el-input v-model="state.queryParams.Keyword" placeholder="姓名/电话号码" clearable @keyup.enter="handleQuery" />
@@ -95,11 +95,11 @@
 								v-model:limit="state.queryParams.PageSize"
 								@pagination="getList"
 							/>
+            <el-backtop target=".scrollbar__view > div"/>
 					</el-scrollbar>
 				</el-col>
 			</el-row>
 		</div>
-
 		<user-add ref="userAddRef" @updateList="getList" />
 		<user-edit ref="userEditRef" @updateList="getList" />
 	</div>