This commit is contained in:
lcw
2026-01-14 17:49:38 +08:00
parent 8cce4acf48
commit 32d7076e89
52 changed files with 620 additions and 481 deletions

BIN
ab/ab.zip Normal file

Binary file not shown.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

503
package-lock.json generated
View File

@ -444,11 +444,18 @@
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-string-parser": {
"version": "7.27.1",
"resolved": "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz",
"integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-validator-identifier": {
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz",
"integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==",
"dev": true,
"version": "7.28.5",
"resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz",
"integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==",
"engines": {
"node": ">=6.9.0"
}
@ -506,9 +513,12 @@
}
},
"node_modules/@babel/parser": {
"version": "7.18.9",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.9.tgz",
"integrity": "sha512-9uJveS9eY9DJ0t64YbIBZICtJy8a5QrDEVdiLCG97fVLpDTpGX7t8mMSb6OWw6Lrnjqj4O8zwjELX3dhoMgiBg==",
"version": "7.28.6",
"resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.28.6.tgz",
"integrity": "sha512-TeR9zWR18BvbfPmGbLampPMW+uW1NZnJlRuuHso8i87QZNq2JRF9i6RgxRqtEq+wQGsS19NNTWr2duhnE49mfQ==",
"dependencies": {
"@babel/types": "^7.28.6"
},
"bin": {
"parser": "bin/babel-parser.js"
},
@ -1733,13 +1743,12 @@
}
},
"node_modules/@babel/types": {
"version": "7.18.9",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.9.tgz",
"integrity": "sha512-WwMLAg2MvJmt/rKEVQBBhIVffMmnilX4oe0sRe7iPOHIGsqpruFHHdrfj4O1CMMtgMtCU4oPafZjDPCRgO57Wg==",
"dev": true,
"version": "7.28.6",
"resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.28.6.tgz",
"integrity": "sha512-0ZrskXVEHSWIqZM/sQZ4EV3jZJXRkio/WCxaqKZP1g//CEWEPSfeZFcms4XeKBCHU0ZKnIkdJeU/kF+eRp5lBg==",
"dependencies": {
"@babel/helper-validator-identifier": "^7.18.6",
"to-fast-properties": "^2.0.0"
"@babel/helper-string-parser": "^7.27.1",
"@babel/helper-validator-identifier": "^7.28.5"
},
"engines": {
"node": ">=6.9.0"
@ -1970,10 +1979,9 @@
}
},
"node_modules/@jridgewell/sourcemap-codec": {
"version": "1.4.14",
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
"integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==",
"dev": true
"version": "1.5.5",
"resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
"integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og=="
},
"node_modules/@jridgewell/trace-mapping": {
"version": "0.3.14",
@ -3043,49 +3051,60 @@
"dev": true
},
"node_modules/@vue/compiler-core": {
"version": "3.2.37",
"resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.37.tgz",
"integrity": "sha512-81KhEjo7YAOh0vQJoSmAD68wLfYqJvoiD4ulyedzF+OEk/bk6/hx3fTNVfuzugIIaTrOx4PGx6pAiBRe5e9Zmg==",
"version": "3.5.26",
"resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.5.26.tgz",
"integrity": "sha512-vXyI5GMfuoBCnv5ucIT7jhHKl55Y477yxP6fc4eUswjP8FG3FFVFd41eNDArR+Uk3QKn2Z85NavjaxLxOC19/w==",
"dependencies": {
"@babel/parser": "^7.16.4",
"@vue/shared": "3.2.37",
"@babel/parser": "^7.28.5",
"@vue/shared": "3.5.26",
"entities": "^7.0.0",
"estree-walker": "^2.0.2",
"source-map": "^0.6.1"
"source-map-js": "^1.2.1"
}
},
"node_modules/@vue/compiler-core/node_modules/entities": {
"version": "7.0.0",
"resolved": "https://registry.npmmirror.com/entities/-/entities-7.0.0.tgz",
"integrity": "sha512-FDWG5cmEYf2Z00IkYRhbFrwIwvdFKH07uV8dvNy0omp/Qb1xcyCWp2UDtcwJF4QZZvk0sLudP6/hAu42TaqVhQ==",
"engines": {
"node": ">=0.12"
},
"funding": {
"url": "https://github.com/fb55/entities?sponsor=1"
}
},
"node_modules/@vue/compiler-dom": {
"version": "3.2.37",
"resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.37.tgz",
"integrity": "sha512-yxJLH167fucHKxaqXpYk7x8z7mMEnXOw3G2q62FTkmsvNxu4FQSu5+3UMb+L7fjKa26DEzhrmCxAgFLLIzVfqQ==",
"version": "3.5.26",
"resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.5.26.tgz",
"integrity": "sha512-y1Tcd3eXs834QjswshSilCBnKGeQjQXB6PqFn/1nxcQw4pmG42G8lwz+FZPAZAby6gZeHSt/8LMPfZ4Rb+Bd/A==",
"dependencies": {
"@vue/compiler-core": "3.2.37",
"@vue/shared": "3.2.37"
"@vue/compiler-core": "3.5.26",
"@vue/shared": "3.5.26"
}
},
"node_modules/@vue/compiler-sfc": {
"version": "3.2.37",
"resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.37.tgz",
"integrity": "sha512-+7i/2+9LYlpqDv+KTtWhOZH+pa8/HnX/905MdVmAcI/mPQOBwkHHIzrsEsucyOIZQYMkXUiTkmZq5am/NyXKkg==",
"version": "3.5.26",
"resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.5.26.tgz",
"integrity": "sha512-egp69qDTSEZcf4bGOSsprUr4xI73wfrY5oRs6GSgXFTiHrWj4Y3X5Ydtip9QMqiCMCPVwLglB9GBxXtTadJ3mA==",
"dependencies": {
"@babel/parser": "^7.16.4",
"@vue/compiler-core": "3.2.37",
"@vue/compiler-dom": "3.2.37",
"@vue/compiler-ssr": "3.2.37",
"@vue/reactivity-transform": "3.2.37",
"@vue/shared": "3.2.37",
"@babel/parser": "^7.28.5",
"@vue/compiler-core": "3.5.26",
"@vue/compiler-dom": "3.5.26",
"@vue/compiler-ssr": "3.5.26",
"@vue/shared": "3.5.26",
"estree-walker": "^2.0.2",
"magic-string": "^0.25.7",
"postcss": "^8.1.10",
"source-map": "^0.6.1"
"magic-string": "^0.30.21",
"postcss": "^8.5.6",
"source-map-js": "^1.2.1"
}
},
"node_modules/@vue/compiler-ssr": {
"version": "3.2.37",
"resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.37.tgz",
"integrity": "sha512-7mQJD7HdXxQjktmsWp/J67lThEIcxLemz1Vb5I6rYJHR5vI+lON3nPGOH3ubmbvYGt8xEUaAr1j7/tIFWiEOqw==",
"version": "3.5.26",
"resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.5.26.tgz",
"integrity": "sha512-lZT9/Y0nSIRUPVvapFJEVDbEXruZh2IYHMk2zTtEgJSlP5gVOqeWXH54xDKAaFS4rTnDeDBQUYDtxKyoW9FwDw==",
"dependencies": {
"@vue/compiler-dom": "3.2.37",
"@vue/shared": "3.2.37"
"@vue/compiler-dom": "3.5.26",
"@vue/shared": "3.5.26"
}
},
"node_modules/@vue/component-compiler-utils": {
@ -3223,60 +3242,49 @@
}
},
"node_modules/@vue/reactivity": {
"version": "3.2.37",
"resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.37.tgz",
"integrity": "sha512-/7WRafBOshOc6m3F7plwzPeCu/RCVv9uMpOwa/5PiY1Zz+WLVRWiy0MYKwmg19KBdGtFWsmZ4cD+LOdVPcs52A==",
"version": "3.5.26",
"resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.5.26.tgz",
"integrity": "sha512-9EnYB1/DIiUYYnzlnUBgwU32NNvLp/nhxLXeWRhHUEeWNTn1ECxX8aGO7RTXeX6PPcxe3LLuNBFoJbV4QZ+CFQ==",
"dependencies": {
"@vue/shared": "3.2.37"
}
},
"node_modules/@vue/reactivity-transform": {
"version": "3.2.37",
"resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.37.tgz",
"integrity": "sha512-IWopkKEb+8qpu/1eMKVeXrK0NLw9HicGviJzhJDEyfxTR9e1WtpnnbYkJWurX6WwoFP0sz10xQg8yL8lgskAZg==",
"dependencies": {
"@babel/parser": "^7.16.4",
"@vue/compiler-core": "3.2.37",
"@vue/shared": "3.2.37",
"estree-walker": "^2.0.2",
"magic-string": "^0.25.7"
"@vue/shared": "3.5.26"
}
},
"node_modules/@vue/runtime-core": {
"version": "3.2.37",
"resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.37.tgz",
"integrity": "sha512-JPcd9kFyEdXLl/i0ClS7lwgcs0QpUAWj+SKX2ZC3ANKi1U4DOtiEr6cRqFXsPwY5u1L9fAjkinIdB8Rz3FoYNQ==",
"version": "3.5.26",
"resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.5.26.tgz",
"integrity": "sha512-xJWM9KH1kd201w5DvMDOwDHYhrdPTrAatn56oB/LRG4plEQeZRQLw0Bpwih9KYoqmzaxF0OKSn6swzYi84e1/Q==",
"dependencies": {
"@vue/reactivity": "3.2.37",
"@vue/shared": "3.2.37"
"@vue/reactivity": "3.5.26",
"@vue/shared": "3.5.26"
}
},
"node_modules/@vue/runtime-dom": {
"version": "3.2.37",
"resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.37.tgz",
"integrity": "sha512-HimKdh9BepShW6YozwRKAYjYQWg9mQn63RGEiSswMbW+ssIht1MILYlVGkAGGQbkhSh31PCdoUcfiu4apXJoPw==",
"version": "3.5.26",
"resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.5.26.tgz",
"integrity": "sha512-XLLd/+4sPC2ZkN/6+V4O4gjJu6kSDbHAChvsyWgm1oGbdSO3efvGYnm25yCjtFm/K7rrSDvSfPDgN1pHgS4VNQ==",
"dependencies": {
"@vue/runtime-core": "3.2.37",
"@vue/shared": "3.2.37",
"csstype": "^2.6.8"
"@vue/reactivity": "3.5.26",
"@vue/runtime-core": "3.5.26",
"@vue/shared": "3.5.26",
"csstype": "^3.2.3"
}
},
"node_modules/@vue/server-renderer": {
"version": "3.2.37",
"resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.37.tgz",
"integrity": "sha512-kLITEJvaYgZQ2h47hIzPh2K3jG8c1zCVbp/o/bzQOyvzaKiCquKS7AaioPI28GNxIsE/zSx+EwWYsNxDCX95MA==",
"version": "3.5.26",
"resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.5.26.tgz",
"integrity": "sha512-TYKLXmrwWKSodyVuO1WAubucd+1XlLg4set0YoV+Hu8Lo79mp/YMwWV5mC5FgtsDxX3qo1ONrxFaTP1OQgy1uA==",
"dependencies": {
"@vue/compiler-ssr": "3.2.37",
"@vue/shared": "3.2.37"
"@vue/compiler-ssr": "3.5.26",
"@vue/shared": "3.5.26"
},
"peerDependencies": {
"vue": "3.2.37"
"vue": "3.5.26"
}
},
"node_modules/@vue/shared": {
"version": "3.2.37",
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.37.tgz",
"integrity": "sha512-4rSJemR2NQIo9Klm1vabqWjD8rs/ZaJSzMxkMNeJS6lHiUjjUeYFbooN19NgFjztubEKh3WlZUeOLVdbbUWHsw=="
"version": "3.5.26",
"resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.5.26.tgz",
"integrity": "sha512-7Z6/y3uFI5PRoKeorTOSXKcDj0MSasfNNltcslbFrPpcw6aXRUALq4IfJlaTRspiWIUOEZbrpM+iQGmCOiWe4A=="
},
"node_modules/@vue/web-component-wrapper": {
"version": "1.3.0",
@ -6590,9 +6598,9 @@
"dev": true
},
"node_modules/csstype": {
"version": "2.6.20",
"resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.20.tgz",
"integrity": "sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA=="
"version": "3.2.3",
"resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.2.3.tgz",
"integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ=="
},
"node_modules/cyclist": {
"version": "1.0.1",
@ -8260,7 +8268,7 @@
},
"node_modules/estree-walker": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
"resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz",
"integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
},
"node_modules/esutils": {
@ -12049,11 +12057,11 @@
}
},
"node_modules/magic-string": {
"version": "0.25.9",
"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz",
"integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==",
"version": "0.30.21",
"resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.21.tgz",
"integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==",
"dependencies": {
"sourcemap-codec": "^1.4.8"
"@jridgewell/sourcemap-codec": "^1.5.5"
}
},
"node_modules/make-dir": {
@ -12563,9 +12571,15 @@
"optional": true
},
"node_modules/nanoid": {
"version": "3.3.4",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
"integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==",
"version": "3.3.11",
"resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.11.tgz",
"integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/ai"
}
],
"bin": {
"nanoid": "bin/nanoid.cjs"
},
@ -13430,9 +13444,9 @@
"dev": true
},
"node_modules/picocolors": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
"integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
"version": "1.1.1",
"resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.1.1.tgz",
"integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="
},
"node_modules/picomatch": {
"version": "2.3.1",
@ -13581,9 +13595,9 @@
}
},
"node_modules/postcss": {
"version": "8.4.14",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz",
"integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==",
"version": "8.5.6",
"resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.5.6.tgz",
"integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==",
"funding": [
{
"type": "opencollective",
@ -13592,12 +13606,16 @@
{
"type": "tidelift",
"url": "https://tidelift.com/funding/github/npm/postcss"
},
{
"type": "github",
"url": "https://github.com/sponsors/ai"
}
],
"dependencies": {
"nanoid": "^3.3.4",
"picocolors": "^1.0.0",
"source-map-js": "^1.0.2"
"nanoid": "^3.3.11",
"picocolors": "^1.1.1",
"source-map-js": "^1.2.1"
},
"engines": {
"node": "^10 || ^12 || >=14"
@ -16822,14 +16840,15 @@
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true,
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/source-map-js": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
"integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
"version": "1.2.1",
"resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.1.tgz",
"integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
"engines": {
"node": ">=0.10.0"
}
@ -16865,12 +16884,6 @@
"deprecated": "See https://github.com/lydell/source-map-url#deprecated",
"dev": true
},
"node_modules/sourcemap-codec": {
"version": "1.4.8",
"resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
"integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==",
"deprecated": "Please use @jridgewell/sourcemap-codec instead"
},
"node_modules/spdx-correct": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz",
@ -18095,15 +18108,6 @@
"integrity": "sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==",
"dev": true
},
"node_modules/to-fast-properties": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
"integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
"dev": true,
"engines": {
"node": ">=4"
}
},
"node_modules/to-object-path": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
@ -18821,15 +18825,23 @@
"dev": true
},
"node_modules/vue": {
"version": "3.2.37",
"resolved": "https://registry.npmjs.org/vue/-/vue-3.2.37.tgz",
"integrity": "sha512-bOKEZxrm8Eh+fveCqS1/NkG/n6aMidsI6hahas7pa0w/l7jkbssJVsRhVDs07IdDq7h9KHswZOgItnwJAgtVtQ==",
"version": "3.5.26",
"resolved": "https://registry.npmmirror.com/vue/-/vue-3.5.26.tgz",
"integrity": "sha512-SJ/NTccVyAoNUJmkM9KUqPcYlY+u8OVL1X5EW9RIs3ch5H2uERxyyIUI4MRxVCSOiEcupX9xNGde1tL9ZKpimA==",
"dependencies": {
"@vue/compiler-dom": "3.2.37",
"@vue/compiler-sfc": "3.2.37",
"@vue/runtime-dom": "3.2.37",
"@vue/server-renderer": "3.2.37",
"@vue/shared": "3.2.37"
"@vue/compiler-dom": "3.5.26",
"@vue/compiler-sfc": "3.5.26",
"@vue/runtime-dom": "3.5.26",
"@vue/server-renderer": "3.5.26",
"@vue/shared": "3.5.26"
},
"peerDependencies": {
"typescript": "*"
},
"peerDependenciesMeta": {
"typescript": {
"optional": true
}
}
},
"node_modules/vue-cli-plugin-element-plus": {
@ -20474,11 +20486,15 @@
"@babel/types": "^7.18.6"
}
},
"@babel/helper-string-parser": {
"version": "7.27.1",
"resolved": "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz",
"integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA=="
},
"@babel/helper-validator-identifier": {
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz",
"integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==",
"dev": true
"version": "7.28.5",
"resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz",
"integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q=="
},
"@babel/helper-validator-option": {
"version": "7.18.6",
@ -20521,9 +20537,12 @@
}
},
"@babel/parser": {
"version": "7.18.9",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.9.tgz",
"integrity": "sha512-9uJveS9eY9DJ0t64YbIBZICtJy8a5QrDEVdiLCG97fVLpDTpGX7t8mMSb6OWw6Lrnjqj4O8zwjELX3dhoMgiBg=="
"version": "7.28.6",
"resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.28.6.tgz",
"integrity": "sha512-TeR9zWR18BvbfPmGbLampPMW+uW1NZnJlRuuHso8i87QZNq2JRF9i6RgxRqtEq+wQGsS19NNTWr2duhnE49mfQ==",
"requires": {
"@babel/types": "^7.28.6"
}
},
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
"version": "7.18.6",
@ -21334,13 +21353,12 @@
}
},
"@babel/types": {
"version": "7.18.9",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.9.tgz",
"integrity": "sha512-WwMLAg2MvJmt/rKEVQBBhIVffMmnilX4oe0sRe7iPOHIGsqpruFHHdrfj4O1CMMtgMtCU4oPafZjDPCRgO57Wg==",
"dev": true,
"version": "7.28.6",
"resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.28.6.tgz",
"integrity": "sha512-0ZrskXVEHSWIqZM/sQZ4EV3jZJXRkio/WCxaqKZP1g//CEWEPSfeZFcms4XeKBCHU0ZKnIkdJeU/kF+eRp5lBg==",
"requires": {
"@babel/helper-validator-identifier": "^7.18.6",
"to-fast-properties": "^2.0.0"
"@babel/helper-string-parser": "^7.27.1",
"@babel/helper-validator-identifier": "^7.28.5"
}
},
"@ctrl/tinycolor": {
@ -21537,10 +21555,9 @@
"dev": true
},
"@jridgewell/sourcemap-codec": {
"version": "1.4.14",
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
"integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==",
"dev": true
"version": "1.5.5",
"resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
"integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og=="
},
"@jridgewell/trace-mapping": {
"version": "0.3.14",
@ -22416,49 +22433,56 @@
}
},
"@vue/compiler-core": {
"version": "3.2.37",
"resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.37.tgz",
"integrity": "sha512-81KhEjo7YAOh0vQJoSmAD68wLfYqJvoiD4ulyedzF+OEk/bk6/hx3fTNVfuzugIIaTrOx4PGx6pAiBRe5e9Zmg==",
"version": "3.5.26",
"resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.5.26.tgz",
"integrity": "sha512-vXyI5GMfuoBCnv5ucIT7jhHKl55Y477yxP6fc4eUswjP8FG3FFVFd41eNDArR+Uk3QKn2Z85NavjaxLxOC19/w==",
"requires": {
"@babel/parser": "^7.16.4",
"@vue/shared": "3.2.37",
"@babel/parser": "^7.28.5",
"@vue/shared": "3.5.26",
"entities": "^7.0.0",
"estree-walker": "^2.0.2",
"source-map": "^0.6.1"
"source-map-js": "^1.2.1"
},
"dependencies": {
"entities": {
"version": "7.0.0",
"resolved": "https://registry.npmmirror.com/entities/-/entities-7.0.0.tgz",
"integrity": "sha512-FDWG5cmEYf2Z00IkYRhbFrwIwvdFKH07uV8dvNy0omp/Qb1xcyCWp2UDtcwJF4QZZvk0sLudP6/hAu42TaqVhQ=="
}
}
},
"@vue/compiler-dom": {
"version": "3.2.37",
"resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.37.tgz",
"integrity": "sha512-yxJLH167fucHKxaqXpYk7x8z7mMEnXOw3G2q62FTkmsvNxu4FQSu5+3UMb+L7fjKa26DEzhrmCxAgFLLIzVfqQ==",
"version": "3.5.26",
"resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.5.26.tgz",
"integrity": "sha512-y1Tcd3eXs834QjswshSilCBnKGeQjQXB6PqFn/1nxcQw4pmG42G8lwz+FZPAZAby6gZeHSt/8LMPfZ4Rb+Bd/A==",
"requires": {
"@vue/compiler-core": "3.2.37",
"@vue/shared": "3.2.37"
"@vue/compiler-core": "3.5.26",
"@vue/shared": "3.5.26"
}
},
"@vue/compiler-sfc": {
"version": "3.2.37",
"resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.37.tgz",
"integrity": "sha512-+7i/2+9LYlpqDv+KTtWhOZH+pa8/HnX/905MdVmAcI/mPQOBwkHHIzrsEsucyOIZQYMkXUiTkmZq5am/NyXKkg==",
"version": "3.5.26",
"resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.5.26.tgz",
"integrity": "sha512-egp69qDTSEZcf4bGOSsprUr4xI73wfrY5oRs6GSgXFTiHrWj4Y3X5Ydtip9QMqiCMCPVwLglB9GBxXtTadJ3mA==",
"requires": {
"@babel/parser": "^7.16.4",
"@vue/compiler-core": "3.2.37",
"@vue/compiler-dom": "3.2.37",
"@vue/compiler-ssr": "3.2.37",
"@vue/reactivity-transform": "3.2.37",
"@vue/shared": "3.2.37",
"@babel/parser": "^7.28.5",
"@vue/compiler-core": "3.5.26",
"@vue/compiler-dom": "3.5.26",
"@vue/compiler-ssr": "3.5.26",
"@vue/shared": "3.5.26",
"estree-walker": "^2.0.2",
"magic-string": "^0.25.7",
"postcss": "^8.1.10",
"source-map": "^0.6.1"
"magic-string": "^0.30.21",
"postcss": "^8.5.6",
"source-map-js": "^1.2.1"
}
},
"@vue/compiler-ssr": {
"version": "3.2.37",
"resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.37.tgz",
"integrity": "sha512-7mQJD7HdXxQjktmsWp/J67lThEIcxLemz1Vb5I6rYJHR5vI+lON3nPGOH3ubmbvYGt8xEUaAr1j7/tIFWiEOqw==",
"version": "3.5.26",
"resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.5.26.tgz",
"integrity": "sha512-lZT9/Y0nSIRUPVvapFJEVDbEXruZh2IYHMk2zTtEgJSlP5gVOqeWXH54xDKAaFS4rTnDeDBQUYDtxKyoW9FwDw==",
"requires": {
"@vue/compiler-dom": "3.2.37",
"@vue/shared": "3.2.37"
"@vue/compiler-dom": "3.5.26",
"@vue/shared": "3.5.26"
}
},
"@vue/component-compiler-utils": {
@ -22571,57 +22595,46 @@
"requires": {}
},
"@vue/reactivity": {
"version": "3.2.37",
"resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.37.tgz",
"integrity": "sha512-/7WRafBOshOc6m3F7plwzPeCu/RCVv9uMpOwa/5PiY1Zz+WLVRWiy0MYKwmg19KBdGtFWsmZ4cD+LOdVPcs52A==",
"version": "3.5.26",
"resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.5.26.tgz",
"integrity": "sha512-9EnYB1/DIiUYYnzlnUBgwU32NNvLp/nhxLXeWRhHUEeWNTn1ECxX8aGO7RTXeX6PPcxe3LLuNBFoJbV4QZ+CFQ==",
"requires": {
"@vue/shared": "3.2.37"
}
},
"@vue/reactivity-transform": {
"version": "3.2.37",
"resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.37.tgz",
"integrity": "sha512-IWopkKEb+8qpu/1eMKVeXrK0NLw9HicGviJzhJDEyfxTR9e1WtpnnbYkJWurX6WwoFP0sz10xQg8yL8lgskAZg==",
"requires": {
"@babel/parser": "^7.16.4",
"@vue/compiler-core": "3.2.37",
"@vue/shared": "3.2.37",
"estree-walker": "^2.0.2",
"magic-string": "^0.25.7"
"@vue/shared": "3.5.26"
}
},
"@vue/runtime-core": {
"version": "3.2.37",
"resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.37.tgz",
"integrity": "sha512-JPcd9kFyEdXLl/i0ClS7lwgcs0QpUAWj+SKX2ZC3ANKi1U4DOtiEr6cRqFXsPwY5u1L9fAjkinIdB8Rz3FoYNQ==",
"version": "3.5.26",
"resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.5.26.tgz",
"integrity": "sha512-xJWM9KH1kd201w5DvMDOwDHYhrdPTrAatn56oB/LRG4plEQeZRQLw0Bpwih9KYoqmzaxF0OKSn6swzYi84e1/Q==",
"requires": {
"@vue/reactivity": "3.2.37",
"@vue/shared": "3.2.37"
"@vue/reactivity": "3.5.26",
"@vue/shared": "3.5.26"
}
},
"@vue/runtime-dom": {
"version": "3.2.37",
"resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.37.tgz",
"integrity": "sha512-HimKdh9BepShW6YozwRKAYjYQWg9mQn63RGEiSswMbW+ssIht1MILYlVGkAGGQbkhSh31PCdoUcfiu4apXJoPw==",
"version": "3.5.26",
"resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.5.26.tgz",
"integrity": "sha512-XLLd/+4sPC2ZkN/6+V4O4gjJu6kSDbHAChvsyWgm1oGbdSO3efvGYnm25yCjtFm/K7rrSDvSfPDgN1pHgS4VNQ==",
"requires": {
"@vue/runtime-core": "3.2.37",
"@vue/shared": "3.2.37",
"csstype": "^2.6.8"
"@vue/reactivity": "3.5.26",
"@vue/runtime-core": "3.5.26",
"@vue/shared": "3.5.26",
"csstype": "^3.2.3"
}
},
"@vue/server-renderer": {
"version": "3.2.37",
"resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.37.tgz",
"integrity": "sha512-kLITEJvaYgZQ2h47hIzPh2K3jG8c1zCVbp/o/bzQOyvzaKiCquKS7AaioPI28GNxIsE/zSx+EwWYsNxDCX95MA==",
"version": "3.5.26",
"resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.5.26.tgz",
"integrity": "sha512-TYKLXmrwWKSodyVuO1WAubucd+1XlLg4set0YoV+Hu8Lo79mp/YMwWV5mC5FgtsDxX3qo1ONrxFaTP1OQgy1uA==",
"requires": {
"@vue/compiler-ssr": "3.2.37",
"@vue/shared": "3.2.37"
"@vue/compiler-ssr": "3.5.26",
"@vue/shared": "3.5.26"
}
},
"@vue/shared": {
"version": "3.2.37",
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.37.tgz",
"integrity": "sha512-4rSJemR2NQIo9Klm1vabqWjD8rs/ZaJSzMxkMNeJS6lHiUjjUeYFbooN19NgFjztubEKh3WlZUeOLVdbbUWHsw=="
"version": "3.5.26",
"resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.5.26.tgz",
"integrity": "sha512-7Z6/y3uFI5PRoKeorTOSXKcDj0MSasfNNltcslbFrPpcw6aXRUALq4IfJlaTRspiWIUOEZbrpM+iQGmCOiWe4A=="
},
"@vue/web-component-wrapper": {
"version": "1.3.0",
@ -25267,9 +25280,9 @@
}
},
"csstype": {
"version": "2.6.20",
"resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.20.tgz",
"integrity": "sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA=="
"version": "3.2.3",
"resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.2.3.tgz",
"integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ=="
},
"cyclist": {
"version": "1.0.1",
@ -26581,7 +26594,7 @@
},
"estree-walker": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
"resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz",
"integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
},
"esutils": {
@ -29497,11 +29510,11 @@
}
},
"magic-string": {
"version": "0.25.9",
"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz",
"integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==",
"version": "0.30.21",
"resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.21.tgz",
"integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==",
"requires": {
"sourcemap-codec": "^1.4.8"
"@jridgewell/sourcemap-codec": "^1.5.5"
}
},
"make-dir": {
@ -29921,9 +29934,9 @@
"optional": true
},
"nanoid": {
"version": "3.3.4",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
"integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw=="
"version": "3.3.11",
"resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.11.tgz",
"integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w=="
},
"nanomatch": {
"version": "1.2.13",
@ -30621,9 +30634,9 @@
"dev": true
},
"picocolors": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
"integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
"version": "1.1.1",
"resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.1.1.tgz",
"integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="
},
"picomatch": {
"version": "2.3.1",
@ -30734,13 +30747,13 @@
"dev": true
},
"postcss": {
"version": "8.4.14",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz",
"integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==",
"version": "8.5.6",
"resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.5.6.tgz",
"integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==",
"requires": {
"nanoid": "^3.3.4",
"picocolors": "^1.0.0",
"source-map-js": "^1.0.2"
"nanoid": "^3.3.11",
"picocolors": "^1.1.1",
"source-map-js": "^1.2.1"
}
},
"postcss-calc": {
@ -33347,12 +33360,13 @@
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true
},
"source-map-js": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
"integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw=="
"version": "1.2.1",
"resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.1.tgz",
"integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="
},
"source-map-resolve": {
"version": "0.5.3",
@ -33383,11 +33397,6 @@
"integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==",
"dev": true
},
"sourcemap-codec": {
"version": "1.4.8",
"resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
"integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA=="
},
"spdx-correct": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz",
@ -34371,12 +34380,6 @@
"integrity": "sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==",
"dev": true
},
"to-fast-properties": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
"integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
"dev": true
},
"to-object-path": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
@ -34955,15 +34958,15 @@
"dev": true
},
"vue": {
"version": "3.2.37",
"resolved": "https://registry.npmjs.org/vue/-/vue-3.2.37.tgz",
"integrity": "sha512-bOKEZxrm8Eh+fveCqS1/NkG/n6aMidsI6hahas7pa0w/l7jkbssJVsRhVDs07IdDq7h9KHswZOgItnwJAgtVtQ==",
"version": "3.5.26",
"resolved": "https://registry.npmmirror.com/vue/-/vue-3.5.26.tgz",
"integrity": "sha512-SJ/NTccVyAoNUJmkM9KUqPcYlY+u8OVL1X5EW9RIs3ch5H2uERxyyIUI4MRxVCSOiEcupX9xNGde1tL9ZKpimA==",
"requires": {
"@vue/compiler-dom": "3.2.37",
"@vue/compiler-sfc": "3.2.37",
"@vue/runtime-dom": "3.2.37",
"@vue/server-renderer": "3.2.37",
"@vue/shared": "3.2.37"
"@vue/compiler-dom": "3.5.26",
"@vue/compiler-sfc": "3.5.26",
"@vue/runtime-dom": "3.5.26",
"@vue/server-renderer": "3.5.26",
"@vue/shared": "3.5.26"
}
},
"vue-cli-plugin-element-plus": {

View File

@ -123,3 +123,10 @@ export function downFiles(id) {
method: "get"
})
}
// 视频文件
export function downVideoFiles(id) {
return request({
url: `/bagl/mosty-base/AppUserConfig/image/url/${id}`,
method: "get"
})
}

View File

@ -1,16 +1,16 @@
<template>
<div class="form-item-box" :style="{ width: width }">
<el-date-picker v-bind="$attrs" @change="changeTime" v-if="props.type == 'date'" v-model="modelValue" type="date" value-format="YYYY-MM-DD" placeholder="请选择日期" style="width:100%" />
<el-time-picker v-bind="$attrs" @change="changeTime" v-if="props.type == 'time'" v-model="modelValue" placeholder="选择时间" style="width:100%" />
<el-date-picker v-bind="$attrs" @change="changeTime" v-if="props.type == 'datetime'" v-model="modelValue" type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择时间" style="width:100%" />
<el-date-picker v-bind="$attrs" @change="changeTime" v-if="props.type == 'datetimerange'" v-model="modelValue" type="datetimerange" :shortcuts="shortcuts" range-separator="To" value-format="YYYY-MM-DD HH:mm:ss" start-placeholder="选择开始时间" end-placeholder="选择结束时间" style="width:100%" />
<el-date-picker v-bind="$attrs" @change="changeTime" v-if="props.type == 'daterange'" v-model="modelValue" type="daterange" range-separator="To" value-format="YYYY-MM-DD" start-placeholder="选择开始日期" end-placeholder="选择开始日期" style="width:100%" />
<el-date-picker v-bind="$attrs" @change="changeTime" v-if="props.type == 'date'" v-model="localValue" type="date" value-format="YYYY-MM-DD" placeholder="请选择日期" style="width:100%" />
<el-time-picker v-bind="$attrs" @change="changeTime" v-if="props.type == 'time'" v-model="localValue" placeholder="选择时间" style="width:100%" />
<el-date-picker v-bind="$attrs" @change="changeTime" v-if="props.type == 'datetime'" v-model="localValue" type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择时间" style="width:100%" />
<el-date-picker v-bind="$attrs" @change="changeTime" v-if="props.type == 'datetimerange'" v-model="localValue" type="datetimerange" :shortcuts="shortcuts" range-separator="To" value-format="YYYY-MM-DD HH:mm:ss" start-placeholder="选择开始时间" end-placeholder="选择结束时间" style="width:100%" />
<el-date-picker v-bind="$attrs" @change="changeTime" v-if="props.type == 'daterange'" v-model="localValue" type="daterange" range-separator="To" value-format="YYYY-MM-DD" start-placeholder="选择开始日期" end-placeholder="选择开始日期" style="width:100%" />
</div>
</template>
<script setup>
import { COMPONENT_WIDTH } from "@/constant";
import { defineProps, defineEmits } from "vue";
import { defineProps, defineEmits, ref, watch } from "vue";
const props = defineProps({
//获取组件传值
placeholder: {
@ -33,6 +33,19 @@ const props = defineProps({
const emits = defineEmits(["update:modelValue"]);
// 创建本地 ref 来绑定值
const localValue = ref(props.modelValue);
// 监听本地值变化emit 事件
watch(localValue, (newVal) => {
emits("update:modelValue", newVal);
});
// 监听 props 变化,更新本地值
watch(() => props.modelValue, (newVal) => {
localValue.value = newVal;
});
const shortcuts = [
{
text: "今天",

View File

@ -1,6 +1,6 @@
<template>
<div class="form-item-box" :style="{ width: width }">
<el-input :placeholder="placeholder" v-bind="$attrs" v-model="modelValue" @input="onInput" ></el-input>
<el-input :placeholder="placeholder" v-bind="$attrs" :model-value="modelValue" @input="onInput" ></el-input>
</div>
</template>

View File

@ -1,7 +1,7 @@
<template>
<div class="Select-wrap" :style="{ width: width }">
<el-select :disabled="props.disabled" v-bind="$attrs" v-model="modelValue" @change="hanlderSelect" :popper-class="selectOption.length > 20 ? 'nation-select' : ''" :placeholder="placeholder">
<el-select :disabled="props.disabled" v-bind="$attrs" :model-value="modelValue" @change="hanlderSelect" :popper-class="selectOption.length > 20 ? 'nation-select' : ''" :placeholder="placeholder">
<el-option v-for="item in dictEnum" :key="item.value" :label="item.zdmc || item.label" :value="item.dm || item.value">
</el-option>
</el-select>

View File

@ -35,7 +35,7 @@ const deptName = ref('');
const router = useRouter();
onMounted(() => {
deptName.value = localStorage.getItem("deptId") ? JSON.parse(localStorage.getItem("deptId"))[0].deptName : ''
deptName.value = localStorage.getItem("userInfo") ? JSON.parse(localStorage.getItem("userInfo")).pxgs || '' : ''
})
const active = ref("");
onMounted(() => {

View File

@ -1,55 +1,55 @@
import router from './router'
import Base64 from "base-64";
import store from './store'
import {
setItem,
getItem,
removeAllItem
} from "@/utils/storage";
// 白名单
const whiteList = ['/login','/', '/oatuh_login', '/sso_redirect', '/editPassword', '/404', '/401']
const whiteList = ['/login', '/oatuh_login', '/404', '/401', '/zeroTrust_login', '/focusExploration', '/clueVerification', '/deploymentApproval']
/**
* 路由前置守卫
* to 去哪里
* from 来自哪
* next 往下走
*/
let onRun = true;
router.beforeEach(async (to, from, next) => {
// 存在 token ,进入主页
// if (store.state.user.token) {
// 快捷访问
// console.log(store.getters.token);
if (store.getters.token) {
// console.log("路由1");
// 判断用户资料是否获取
// 若不存在用户信息,则需要获取用户信息
// 触发获取用户信息的 action并获取用户当前权限
await store.commit('permission/setRouteReady', 1)
store.commit('permission/setRouteReady', 1)
// 添加完动态路由之后,需要在进行一次主动跳转
const afterMenuList = await getItem('menusPermission');
const afterMenuList = getItem('menusPermission');
// 处理用户权限,筛选出需要添加的权限
// console.log(store.state.permission.routes);
if (store.state.permission.routes.length === 0) {
const filterRoutes = await store.dispatch('permission/filterRoutes', afterMenuList)
filterRoutes.forEach(item => {
router.addRoute(item)
})
// console.log("已添加动态路由");
next({
...to,
replace: true
})
} else {
// console.log('已存在路由');
next()
}
// 利用 addRoute 循环添加
} else {
const isOatuh = getItem('isOatuh')
// 没有token的情况下可以进入白名单
if (whiteList.indexOf(to.path) > -1) {
// console.log("路由2");
next()
} else {
if (isOatuh) {
next('/oatuh_login')
} else {
next('/login')
}
}
}
})

View File

@ -340,6 +340,11 @@ export const publicRoutes = [
name: "login",
component: () => import("@/views/login/index")
},
{
path: "/404",
name: "404",
component: () => import("@/views/error/404")
},
// {
// path: "/homeMy",
// name: "homeMy",

View File

@ -5,8 +5,18 @@ import {
} from '@/router'
function filter(data, menus) {
var newData = data.filter(x => menus?.includes(x.name))
newData.forEach(x => x.children && (x.children = filter(x.children, menus)))
// 增加有效性检查,避免无限递归
if (!Array.isArray(data) || !Array.isArray(menus)) {
return []
}
var newData = data.filter(x => x.name && menus.includes(x.name))
newData.forEach(x => {
if (x.children && Array.isArray(x.children)) {
x.children = filter(x.children, menus)
}
})
console.log("=============================");
return newData
}
export default {
@ -39,28 +49,27 @@ export default {
* 根据权限筛选路由
*/
filterRoutes(context, menus) {
let routes = []
// 路由权限匹配
// menus.forEach(key => {
// // 权限名 与 路由的 name 匹配
// routes.push(...privateRoutes.filter(item => item.name === key))
// })
/**
* 树结构数据条件过滤
* js 指定删除数组(树结构数据)
*/
//测试比对
routes = filter(privateRoutes, menus)
// 最后添加 不匹配路由进入 404
routes.push({
path: '/:catchAll(.*)',
redirect: '/404'
})
context.commit('setRoutes', routes);
context.commit('setRouteReady', 1);
// context.commit('setRouteReady', true);
return routes
try {
let routes = []
// 路由权限匹配
if (menus && Array.isArray(menus)) {
// 测试比对
routes = filter(privateRoutes, menus)
// 最后添加 不匹配路由进入 404
routes.push({
path: '/:catchAll(.*)',
redirect: '/404'
})
}
context.commit('setRoutes', routes);
context.commit('setRouteReady', 1);
return routes
} catch (error) {
console.error('Error filtering routes:', error)
// 出错时至少保留公共路由
context.commit('setRoutes', []);
return []
}
}
}
}

View File

@ -1,4 +1,4 @@
import {login,getUserInfo,getKaptcha,refreshToken,loginOut,Fzlogin } from "@/api/sys";
import { login, getUserInfo, getKaptcha, refreshToken, loginOut, Fzlogin } from "@/api/sys";
import { unifiedLogin } from "@/api/user-manage";
import Base64 from "base-64";
import { setItem, getItem, removeAllItem } from "@/utils/storage";
@ -62,32 +62,34 @@ export default {
*登录请求动作
*/
login(ctx, userInfo) {
const { userName, password, kaptcha } = userInfo;
const { userName, password, kaptcha } = userInfo;
return new Promise((resolve, reject) => {
login({ userName, password: Base64.encode(password), kaptcha }).then((data) => {
if (data.deptList.length === 1) {
this.commit("user/setToken", data.jwtToken);
this.commit("user/setDeptId", data.deptList);
this.commit("user/setUserName", data.userName);
setItem('isOatuh', 0)
setItem("USERNAME", data.userName);
setItem("SFRH", data.sfrh);
setItem("USERID", data.userId);
setItem("PermissionsInfo", data.permissionsInfo);
this.commit("user/setMenuList", data.menuList);
setItem("menusPermission", data.menuCodeSet);
setItem("idEntityCard", data.idEntityCard);
this.commit("user/setUserInfo", {
token: data.jwtToken,
permission: { buttonPermission: ["removeTest", "viewTest"],menus: data.menuCodeSet },
menuList: data.menuList,
deptList: data.deptList
});
}
// 保存登录时间
setTimeStamp();
resolve(data);
})
login({ userName, password: Base64.encode(password), kaptcha }).then((data) => {
if (data.deptList.length === 1) {
this.commit("user/setToken", data.jwtToken);
this.commit("user/setDeptId", data.deptList);
this.commit("user/setUserName", data.userName);
setItem('isOatuh', 0)
setItem("USERNAME", data.userName);
setItem("SFRH", data.sfrh);
setItem("USERID", data.userId);
setItem("PermissionsInfo", data.permissionsInfo);
this.commit("user/setMenuList", data.menuList);
setItem("menusPermission", data.menuCodeSet);
setItem("idEntityCard", data.idEntityCard);
this.commit("user/setUserInfo", {
token: data.jwtToken,
permission: { buttonPermission: ["removeTest", "viewTest"], menus: data.menuCodeSet },
menuList: data.menuList,
deptList: data.deptList
});
}
// 保存登录时间
setTimeStamp();
resolve(data);
})
.catch((err) => {
reject(err);
});
@ -102,7 +104,7 @@ export default {
cookie
})
.then((data) => {
console.log(data,'data');
console.log(data, 'data');
if (data.deptList.length === 1) {
this.commit("user/setToken", data.jwtToken);
this.commit("user/setDeptId", data.deptList);

View File

@ -43,7 +43,9 @@
import { ref, reactive, watch, onMounted, onBeforeUnmount, nextTick, computed } from "vue";
import { ElMessage } from "element-plus";
import { Loading } from '@element-plus/icons-vue';
import {downFiles} from '@/api/instructCenter'
import { downVideoFiles } from '@/api/instructCenter'
import { qcckPost , qcckGet} from "@/api/qcckApi.js";
// https://lam.clcud.com:1443/bagl/mosty-base/AppUserConfig/image/url/f1c7dd25d0fe45079b49de5ec4637923
// 定义组件属性
const props = defineProps({
modelValue: {
@ -80,8 +82,8 @@ const url=ref('')
const getVideoSrc = () => {
// 确保listQuery.fjid是字符串类型
const fjid = JSON.parse(props.listQuery.fjid)?.map(item => item.id).join(',') || '';
downFiles(fjid).then(res => {
url.value=res.url
downVideoFiles(fjid).then(res => {
url.value=res
});
}
// 监听对话框显示状态
@ -128,7 +130,7 @@ const destroyPlayer = () => {
console.log('播放器已销毁');
}
} catch (error) {
console.error('销毁播放器失败:', error);
// console.error('销毁播放器失败:', error);
}
};
@ -160,7 +162,6 @@ const handleVideoError = (event) => {
console.error('视频加载错误:', event.target.error);
errorMessage.value = `视频加载失败: ${getErrorMessage(event.target.error.code)}`;
loading.value = false;
ElMessage.error('视频加载失败,请检查网络或视频链接');
};
// 视频卡顿处理

View File

@ -162,7 +162,7 @@ const getList = () => {
...pageData.pageConfiger,
...queryFrom.value,
ssbakk:userInfo.pxgs,
ssbakkId:userInfo.pxgsid
ssbakkId:userInfo.pxgsid
}
qcckPost(promes,'/mosty-base/bans/njxx/page').then(res => {
pageData.tableData = res.records || [];

91
src/views/error/404.vue Normal file
View File

@ -0,0 +1,91 @@
<template>
<div class="security-404">
<div class="container">
<div class="error-code">404</div>
<div class="error-message">页面不存在</div>
<div class="error-description">抱歉您访问的页面不存在或已被移除</div>
<div class="error-image">
<img src="?prompt=security%20guard%20standing%20in%20front%20of%20a%20closed%20door%2C%20professional%20uniform%2C%20serious%20expression%2C%20realistic%20style&image_size=square" alt="404" />
</div>
<div class="error-actions">
<el-button type="primary" @click="goHome">返回首页</el-button>
<el-button @click="goBack">返回上一页</el-button>
</div>
</div>
</div>
</template>
<script setup>
import { useRouter } from 'vue-router'
const router = useRouter()
const goHome = () => {
router.push('/')
}
const goBack = () => {
router.back()
}
</script>
<style lang="scss" scoped>
.security-404 {
min-height: 100vh;
display: flex;
align-items: center;
justify-content: center;
background-color: #f5f7fa;
.container {
text-align: center;
padding: 40px;
background-color: #fff;
border-radius: 8px;
box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
max-width: 500px;
width: 100%;
.error-code {
font-size: 80px;
font-weight: bold;
color: #409eff;
margin-bottom: 20px;
}
.error-message {
font-size: 24px;
font-weight: 500;
color: #303133;
margin-bottom: 10px;
}
.error-description {
font-size: 14px;
color: #909399;
margin-bottom: 30px;
}
.error-image {
margin-bottom: 30px;
img {
width: 200px;
height: 200px;
object-fit: cover;
border-radius: 4px;
}
}
.error-actions {
display: flex;
justify-content: center;
gap: 12px;
.el-button {
min-width: 100px;
}
}
}
}
</style>

View File

@ -73,7 +73,7 @@ const hour = ref("00"); //时
const day = ref(0);
const timersfm = ref(null);
const username = localStorage.getItem("USERNAME");
const deptName = ref(JSON.parse(localStorage.getItem("deptId"))?.[0].deptName);
const deptName = ref(JSON.parse(localStorage.getItem("userInfo")).pxgs||"");
const router = useRouter();
onMounted(() => {

View File

@ -86,7 +86,7 @@ const minute = ref("00"); //分
const second = ref("00"); //秒
const hour = ref("00"); //时
const day = ref(0);
const deptName = ref(JSON.parse(localStorage.getItem("deptId"))?.[0].deptName);
const deptName = ref(JSON.parse(localStorage.getItem("userInfo")).pxgs||"");
const modularShow = ref(false);
const timersfm = ref(null);
const qwlevel = ref(null)

View File

@ -124,7 +124,10 @@ const handleLogin = () => {
loginFromRef.value.validate((valid) => {
if (!valid) return false;
loading.value = true;
store.dispatch("user/login", loginForm.value).then((res) => {
console.log("xxxxxxxx");
loading.value = false;
if (res.deptList.length === 1) {
getSfzhByGsid(res.idEntityCard)

View File

@ -25,7 +25,7 @@
<script setup>
import ChooseCompany from './chooseCompany.vue'
import { ref, reactive, getCurrentInstance, watch,onMounted } from 'vue'
import { ref, reactive, getCurrentInstance, watch, onMounted } from 'vue'
import { qcckPost } from "@/api/qcckApi.js";
import FormMessage from '@/components/aboutTable/FormMessage.vue'
import { getItem } from '@/utils/storage'
@ -49,16 +49,23 @@ const companyList = ref([])
const myCompany = () => {
const cjrsfzh = getItem("userInfo")
const params = { cjrsfzh: cjrsfzh.sfzh }
qcckPost(params, "/mosty-base/baxx/baba/list").then(res => {
companyList.value = res.map(item => {
qcckPost({
pageCurrent: 1,
pageSize: 1000
}, "/mosty-base/baxx/dwgl/page").then(res => {
companyList.value = res.records.map(item => {
return {
zdmc: item.dwmc,
dm: item.csdm
zdmc: item.dwmc || item.csmc,
dm: item.csdm || item.id
}
}) || [];
console.log(companyList.value);
});
}
onMounted(() => {
getPxgsidList()
myCompany()
})
const dicDefault = {
@ -82,52 +89,46 @@ const dicDefault = {
}
const pxgsidList = ref([])
const dialogVisible = ref(false)
const formList = reactive([
const formList = ref()
watch(() => companyList.value, (newVal, oldVal) => {
if (newVal) {
formList.value = [
[
// { label: "单位名称", prop: "code", type: "select", options: companyList.value },
{ label: "所属公司", prop: "pxgs", type: "slot" },
{ label: "姓名", prop: "xm", type: "input" },
{ label: "证件号码", prop: "sfzh", type: "input" },
[
{ label: "单位名称", prop: "code", type: "select", options: companyList.value },
{ label: "姓名", prop: "xm", type: "input" },
{ label: "证件号码", prop: "sfzh", type: "input" },
{ label: "联系电话", prop: "lxdh", type: "input" },
],
[
{ label: "居住地址", prop: "jzdz", type: "input" },
{ label: "职业类别", prop: "zydm", type: "select", options: dicDefault.B_BZ_ZYLB },
{ label: "入职时间", prop: "rzsj", type: "date" },
], [
{ label: "所属行业", prop: "sshy", type: "select", options: D_BAXX_SSHY },
{ label: "岗位", prop: "gw", type: "select", options: D_BAXX_GWLX },
{ label: "单位类型", prop: "dwlx", type: "select", options: D_BAXX_DWLX },
], [
{ label: "资格证类型", prop: "zgzlx", type: "select", options: dicDefault.B_BZ_BAZGZ },
{ label: "资格证编号", prop: "zgzbh", type: "input" },
{ label: "资格证起始日期", prop: "zgzKssj", type: "date" },
],
[
{ label: "联系电话", prop: "lxdh", type: "input" },
{ label: "居住地址", prop: "jzdz", type: "input" },
], [{ label: "资格证截止日期", prop: "zgzJssj", type: "date" },
{ label: "外派单位", prop: "wpdw", type: "input" },
{ label: "培训公司", prop: "pxgs", type: "select", options: pxgsidList.value }],
[
{ label: "从业人员照片", prop: "tp", type: "upload" },
]
// [
// { label: "离职时间", prop: "lzsj", type: "slot" },
// { label: "文化程度", prop: "whcd", type: "select", options: D_BZ_WHCD },
// { label: "资格证类型", prop: "zgzlx", type: "input" },
// { label: "资格证起始日期", prop: "zgzKssj", type: "date" },
// { label: "资格证截至日期", prop: "zgzJssj", type: "date" },
// { label: "岗位", prop: "gw", type: "select", options: D_BAXX_GWLX },
// ],
// [
// { label: "培训公司", prop: "pxgs", type: "slot" },
// ],
// [
// { label: "外派单位", prop: "wpdw", type: "input" },
// ],
// { label: "从业人员照片", prop: "tp", type: "upload", limit: 2 },
// { label: "保安证件", prop: "bazzp", type: "upload", limit: 1 },
])
{ label: "职业类别", prop: "zydm", type: "select", options: dicDefault.B_BZ_ZYLB },
], [
{ label: "入职时间", prop: "rzsj", type: "date" },
{ label: "所属行业", prop: "sshy", type: "select", options: D_BAXX_SSHY },
{ label: "服务行业名称", prop: "hymc", type: "input" },
], [
{ label: "岗位", prop: "gw", type: "select", options: D_BAXX_GWLX },
{ label: "单位类型", prop: "dwlx", type: "select", options: D_BAXX_DWLX },
{ label: "资格证类型", prop: "zgzlx", type: "select", options: dicDefault.B_BZ_BAZGZ },
{ label: "资格证编号", prop: "zgzbh", type: "input" },
], [
{ label: "资格证起始日期", prop: "zgzKssj", type: "date" },
{ label: "资格证截止日期", prop: "zgzJssj", type: "date" },
{ label: "外派单位", prop: "wpdw", type: "input" },
],
[
{ label: "从业人员照片", prop: "tp", type: "upload" },
]
]
}
})
const rules = {
xm: [{ required: true, message: "请输入姓名", trigger: "change" }],
...rule.phoneRule({ validator: true, message: "请输入联系电话", require: true }, "lxdh"), // 是否必填 是否进行校验`
@ -136,7 +137,6 @@ const rules = {
rzsj: [{ required: true, message: "请选择入职时间", trigger: "change" }],
zgzbh: [{ required: true, message: "请输入资格证编号", trigger: "change" }],
gw: [{ required: true, message: "请输入岗位", trigger: "change" }],
wpdw: [{ required: true, message: "请输入外派单位", trigger: "change" }],
zgzlx: [{ required: true, message: "请输入资格证类型", trigger: "change" }],
zgzKssj: [{ required: true, message: "请选择资格证起始日期", trigger: "change" }],
zgzJssj: [{ required: true, message: "请选择资格证截至日期", trigger: "blur" }],
@ -145,12 +145,13 @@ const rules = {
}
const getPxgsidList = () => {
const params = { dwlx: formData.value.dwlx, state: '1' }
qcckPost(params, "/mosty-base/baxx/baba/list").then(res => {
pxgsidList.value = res.map(item => {
const userInfo = getItem("userInfo")
const params = { keyword: userInfo.sfzh, pageCurrent: 1, pageSize: 1000 }
qcckPost(params, "/mosty-base/baxx/dwgl/page").then(res => {
pxgsidList.value = res.records.map(item => {
return {
dm: item.id,
zdmc: item.yyzddjmc
zdmc: item.csmc
}
}) || [];
});
@ -159,11 +160,11 @@ const getPxgsidList = () => {
const formData = ref({})
watch(() => formData.value.dwlx, (newVal, oldVal) => {
if (newVal !== oldVal) {
getPxgsidList()
}
}, { deep: true })
// watch(() => formData.value.dwlx, (newVal, oldVal) => {
// if (newVal !== oldVal) {
// getPxgsidList()
// }
// }, { deep: true })
const selectPxgs = () => {
RefConmay.value.open()
}

View File

@ -42,59 +42,59 @@ const dialogForm = ref(false);
const FormRef = ref(null);
const listQuery = ref({});
const formList = ref()
const rules = ref({
csmc: [{ required: true, message: "请输入单位名称", trigger: "blur" }],
dwmc: [{ required: true, message: "请输入营业执照登记名称", trigger: "blur" }],
xydm: [{ required: true, message: "请输入信用代码", trigger: "blur" }],
// csdm: [{ required: true, message: "请输入场所代码", trigger: "blur" }],
// gds: [{ required: true, message: "请输入股东数", trigger: "blur" }],
zczj: [{ required: true, message: "请输入注册资金(万元)", trigger: "blur" }],
type: [{ required: true, message: "请选择单位类型", trigger: "blur" }],
csLxdh: [{ required: true, message: "请输入场所电话", trigger: "blur" }],
jyzk: [{ required: true, message: "请选择经营状况", trigger: "blur" }],
jyfw: [{ required: true, message: "请选择经营范围", trigger: "blur" }],
dyrs: [{ required: true, message: "请输入党员人数", trigger: "blur" }],
// gxdwdm: [{ required: true, message: "请选择管辖区县", trigger: "blur" }],
gsxz: [{ required: true, message: "请选择公司性质", trigger: "blur" }],
kyrq: [{ required: true, message: "请选择开业日期", trigger: "blur" }],
zcdz: [{ required: true, message: "请输入场所注册地址", trigger: "blur" }],
jydz: [{ required: true, message: "请输入场所经营地址", trigger: "blur" }],
mqcsyw: [{ required: true, message: "请输入目前从事业务", trigger: "blur" }],
// qzqk: [{ required: true, message: "请输入枪支情况", trigger: "blur" }],
// sfyyzz: [{ required: true, message: "请选择是否有武装押运资质", trigger: "blur" }],
// sfpxzz: [{ required: true, message: "请选择是否有培训资质", trigger: "blur" }],
// sfdzz: [{ required: true, message: "请选择是否成立党组织", trigger: "blur" }],
// zfzrr: [{ required: true, message: "请选择是否为负责人", trigger: "blur" }],
fdrXm: [{ required: true, message: "请输入法人姓名", trigger: "blur" }],
fdrSfzh: [{ required: true, message: "请输入法人账号", trigger: "blur" }],
fdrLxdh: [{ required: true, message: "请输入法人手机号", trigger: "blur" }],
fdrJzdz: [{ required: true, message: "请输入法人地址", trigger: "blur" }],
frSfzZm: [{ required: true, message: "请上传法人身份证正面", trigger: "blur" }],
frSfzFm: [{ required: true, message: "请上传法人身份证反面", trigger: "blur" }],
fzrXm: [{ required: true, message: "请输入负责人姓名", trigger: "blur" }],
fzrSfzh: [{ required: true, message: "请输入负责人身份证号", trigger: "blur" }],
fzrLxdh: [{ required: true, message: "请输入负责人联系电话", trigger: "blur" }],
nl: [{ required: true, message: "请输入负责人联系电话", trigger: "blur" }],
xb: [{ required: true, message: "请输入负责人性别", trigger: "blur" }],
baszsbh: [{ required: true, message: "请输入保安证编号", trigger: "blur" }],
fzrJzdz: [{ required: true, message: "请输入负责人地址", trigger: "blur" }],
fzrSfzZm: [{ required: true, message: "请上传负责人身份证正面", trigger: "blur" }],
fzrSfzFm: [{ required: true, message: "请上传负责人身份证反面", trigger: "blur" }],
// sfba: [{ required: true, message: "请选择是否有保安负责人", trigger: "blur" }],
// bags: [{ required: true, message: "请输入保安公司", trigger: "blur" }],
// bafzr: [{ required: true, message: "请输入保安公司负责人姓名", trigger: "blur" }],
// bars: [{ required: true, message: "请输入保安人数", trigger: "blur" }],
// bafzrsfz: [{ required: true, message: "请输入身份证号", trigger: "blur" }],
// balxdh: [{ required: true, message: "请输入保安负责人联系电话", trigger: "blur" }],
// bajzdz: [{ required: true, message: "请输入保安负责人居住地址", trigger: "blur" }],
// csmj: [{ required: true, message: "请输入场所面积(㎡)", trigger: "blur" }],
yyzzzp: [{ required: true, message: "请上传营业执照", trigger: "blur" }],
cszp: [{ required: true, message: "请上传场所照片", trigger: "blur" }],
// badwbabh: [{ required: true, message: "请输入保安单位备案编号", trigger: "blur" }],
// dwbajgmc: [{ required: true, message: "请输入保安单位备案名称", trigger: "blur" }],
// dwjyxkhm: [{ required: true, message: "请输入保安单位备案名称", trigger: "blur" }],
// dwjyxfzjg: [{ required: true, message: "请输入保安单位备案名称", trigger: "blur" }],
})
// const rules = ref({
// csmc: [{ required: true, message: "请输入单位名称", trigger: "blur" }],
// dwmc: [{ required: true, message: "请输入营业执照登记名称", trigger: "blur" }],
// xydm: [{ required: true, message: "请输入信用代码", trigger: "blur" }],
// // csdm: [{ required: true, message: "请输入场所代码", trigger: "blur" }],
// // gds: [{ required: true, message: "请输入股东数", trigger: "blur" }],
// zczj: [{ required: true, message: "请输入注册资金(万元)", trigger: "blur" }],
// type: [{ required: true, message: "请选择单位类型", trigger: "blur" }],
// csLxdh: [{ required: true, message: "请输入场所电话", trigger: "blur" }],
// jyzk: [{ required: true, message: "请选择经营状况", trigger: "blur" }],
// jyfw: [{ required: true, message: "请选择经营范围", trigger: "blur" }],
// dyrs: [{ required: true, message: "请输入党员人数", trigger: "blur" }],
// // gxdwdm: [{ required: true, message: "请选择管辖区县", trigger: "blur" }],
// gsxz: [{ required: true, message: "请选择公司性质", trigger: "blur" }],
// kyrq: [{ required: true, message: "请选择开业日期", trigger: "blur" }],
// zcdz: [{ required: true, message: "请输入场所注册地址", trigger: "blur" }],
// jydz: [{ required: true, message: "请输入场所经营地址", trigger: "blur" }],
// mqcsyw: [{ required: true, message: "请输入目前从事业务", trigger: "blur" }],
// // qzqk: [{ required: true, message: "请输入枪支情况", trigger: "blur" }],
// // sfyyzz: [{ required: true, message: "请选择是否有武装押运资质", trigger: "blur" }],
// // sfpxzz: [{ required: true, message: "请选择是否有培训资质", trigger: "blur" }],
// // sfdzz: [{ required: true, message: "请选择是否成立党组织", trigger: "blur" }],
// // zfzrr: [{ required: true, message: "请选择是否为负责人", trigger: "blur" }],
// fdrXm: [{ required: true, message: "请输入法人姓名", trigger: "blur" }],
// fdrSfzh: [{ required: true, message: "请输入法人账号", trigger: "blur" }],
// fdrLxdh: [{ required: true, message: "请输入法人手机号", trigger: "blur" }],
// fdrJzdz: [{ required: true, message: "请输入法人地址", trigger: "blur" }],
// frSfzZm: [{ required: true, message: "请上传法人身份证正面", trigger: "blur" }],
// frSfzFm: [{ required: true, message: "请上传法人身份证反面", trigger: "blur" }],
// fzrXm: [{ required: true, message: "请输入负责人姓名", trigger: "blur" }],
// fzrSfzh: [{ required: true, message: "请输入负责人身份证号", trigger: "blur" }],
// fzrLxdh: [{ required: true, message: "请输入负责人联系电话", trigger: "blur" }],
// nl: [{ required: true, message: "请输入负责人联系电话", trigger: "blur" }],
// xb: [{ required: true, message: "请输入负责人性别", trigger: "blur" }],
// baszsbh: [{ required: true, message: "请输入保安证编号", trigger: "blur" }],
// fzrJzdz: [{ required: true, message: "请输入负责人地址", trigger: "blur" }],
// fzrSfzZm: [{ required: true, message: "请上传负责人身份证正面", trigger: "blur" }],
// fzrSfzFm: [{ required: true, message: "请上传负责人身份证反面", trigger: "blur" }],
// // sfba: [{ required: true, message: "请选择是否有保安负责人", trigger: "blur" }],
// // bags: [{ required: true, message: "请输入保安公司", trigger: "blur" }],
// // bafzr: [{ required: true, message: "请输入保安公司负责人姓名", trigger: "blur" }],
// // bars: [{ required: true, message: "请输入保安人数", trigger: "blur" }],
// // bafzrsfz: [{ required: true, message: "请输入身份证号", trigger: "blur" }],
// // balxdh: [{ required: true, message: "请输入保安负责人联系电话", trigger: "blur" }],
// // bajzdz: [{ required: true, message: "请输入保安负责人居住地址", trigger: "blur" }],
// // csmj: [{ required: true, message: "请输入场所面积(㎡)", trigger: "blur" }],
// yyzzzp: [{ required: true, message: "请上传营业执照", trigger: "blur" }],
// cszp: [{ required: true, message: "请上传场所照片", trigger: "blur" }],
// // badwbabh: [{ required: true, message: "请输入保安单位备案编号", trigger: "blur" }],
// // dwbajgmc: [{ required: true, message: "请输入保安单位备案名称", trigger: "blur" }],
// // dwjyxkhm: [{ required: true, message: "请输入保安单位备案名称", trigger: "blur" }],
// // dwjyxfzjg: [{ required: true, message: "请输入保安单位备案名称", trigger: "blur" }],
// })
const title = ref("新增")
const disabled = ref(false)
// 初始化数据