From 16b063870156db78148440971ab46c649e3e6018 Mon Sep 17 00:00:00 2001 From: 移动系统liao <liaoxujun@qq.com> Date: 星期三, 19 三月 2025 11:44:22 +0800 Subject: [PATCH] 测试定版, --- AdminwebPages/adminpageView/src/views/cylsgPayrollReport.vue | 282 ++ AdminwebPages/adminpageView/env.d.ts | 1 AdminwebPages/adminpageView/tsconfig.node.json | 19 cylsg/cylsg.Model/TransferOrder/WeChartTransferOrder.cs | 31 cylsg/cylsg.Model/ECTEModel/OA_DeliverPlan.cs | 18 AdminwebPages/adminpageView/public/favicon.ico | 0 cylsg/cylsg.Model/ECTEModel/OA_DeliverPlanPaiche.cs | 278 ++ cylsg/cylsg.Model/ECTEModel/EC_DriverRecord.cs | 27 AdminwebPages/adminpageView/src/assets/base.css | 86 AdminwebPages/adminpageView/src/views/HomeView.vue | 24 AdminwebPages/adminpageView/.vscode/extensions.json | 8 AdminwebPages/adminpageView/src/store/index.ts | 9 AdminwebPages/adminpageView/src/store/types.ts | 51 AdminwebPages/adminpageView/src/components/HelloWorld.vue | 41 AdminwebPages/adminpageView/index.html | 13 AdminwebPages/adminpageView/README.md | 39 AdminwebPages/adminpageView/src/Api/EzApiBaseTypes.d.ts | 112 + cylsg/cylsg.utility/untilityModels.cs | 16 AdminwebPages/adminpageView/eslint.config.ts | 24 AdminwebPages/adminpageView/package.json | 45 AdminwebPages/adminpageView/src/App.vue | 27 AdminwebPages/adminpageView/src/components/icons/IconEcosystem.vue | 7 AdminwebPages/adminpageView/.gitignore | 30 AdminwebPages/adminpageView/.gitattributes | 1 AdminwebPages/adminpageView/pnpm-lock.yaml | 3625 +++++++++++++++++++++++++++++++++ AdminwebPages/adminpageView/src/components/WelcomeItem.vue | 87 AdminwebPages/adminpageView/tsconfig.app.json | 12 AdminwebPages/adminpageView/src/assets/main.css | 16 AdminwebPages/adminpageView/src/stores/counter.ts | 12 AdminwebPages/adminpageView/tsconfig.json | 14 cylsg/cylsg.Application/CyOS/CyOSSettingController.cs | 14 cylsg/ECTESTOA/OAServices.cs | 2 cylsg/cylsg.utility/CommonHelper.cs | 171 + AdminwebPages/adminpageView/.editorconfig | 9 AdminwebPages/adminpageView/src/assets/logo.svg | 1 cylsg/cylsg.Model/ECTEModel/OA_DeliverTixing.cs | 16 AdminwebPages/adminpageView/src/components/icons/IconCommunity.vue | 7 AdminwebPages/adminpageView/src/main.ts | 35 AdminwebPages/adminpageView/vite.config.ts | 52 cylsg/cylsg.Application/CyOS/CyOSSDriver.cs | 382 +++ cylsg/cylsg.Model/UserModel/User.cs | 9 AdminwebPages/adminpageView/src/router/index.ts | 37 AdminwebPages/adminpageView/.prettierrc.json | 6 AdminwebPages/adminpageView/src/components/icons/IconTooling.vue | 19 cylsg/cylsg.Model/utilityViewModel/ECTESTOAPermissions.cs | 56 cylsg/cylsg.Application/CyOS/CyOsDeliverManage.cs | 274 ++ AdminwebPages/adminpageView/src/components/icons/IconSupport.vue | 7 AdminwebPages/adminpageView/src/Api/apis.ts | 220 ++ AdminwebPages/adminpageView/src/views/AboutView.vue | 15 cylsg/cylsg.utility/Extend/StringEx.cs | 15 AdminwebPages/adminpageView/src/components/icons/IconDocumentation.vue | 7 cylsg/cylsg.utility/cylsg.utility.csproj | 1 AdminwebPages/adminpageView/src/components/TheWelcome.vue | 94 cylsg/cylsg.Application/CyOS/CyOSStaffController.cs | 18 cylsg/cylsg.Application/Transfer/UserTransfer.cs | 78 55 files changed, 6,426 insertions(+), 74 deletions(-) diff --git a/AdminwebPages/adminpageView/.editorconfig b/AdminwebPages/adminpageView/.editorconfig new file mode 100644 index 0000000..5a5809d --- /dev/null +++ b/AdminwebPages/adminpageView/.editorconfig @@ -0,0 +1,9 @@ +[*.{js,jsx,mjs,cjs,ts,tsx,mts,cts,vue,css,scss,sass,less,styl}] +charset = utf-8 +indent_size = 2 +indent_style = space +insert_final_newline = true +trim_trailing_whitespace = true + +end_of_line = lf +max_line_length = 100 diff --git a/AdminwebPages/adminpageView/.gitattributes b/AdminwebPages/adminpageView/.gitattributes new file mode 100644 index 0000000..6313b56 --- /dev/null +++ b/AdminwebPages/adminpageView/.gitattributes @@ -0,0 +1 @@ +* text=auto eol=lf diff --git a/AdminwebPages/adminpageView/.gitignore b/AdminwebPages/adminpageView/.gitignore new file mode 100644 index 0000000..8ee54e8 --- /dev/null +++ b/AdminwebPages/adminpageView/.gitignore @@ -0,0 +1,30 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +.DS_Store +dist +dist-ssr +coverage +*.local + +/cypress/videos/ +/cypress/screenshots/ + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? + +*.tsbuildinfo diff --git a/AdminwebPages/adminpageView/.prettierrc.json b/AdminwebPages/adminpageView/.prettierrc.json new file mode 100644 index 0000000..29a2402 --- /dev/null +++ b/AdminwebPages/adminpageView/.prettierrc.json @@ -0,0 +1,6 @@ +{ + "$schema": "https://json.schemastore.org/prettierrc", + "semi": false, + "singleQuote": true, + "printWidth": 100 +} diff --git a/AdminwebPages/adminpageView/.vscode/extensions.json b/AdminwebPages/adminpageView/.vscode/extensions.json new file mode 100644 index 0000000..c92168f --- /dev/null +++ b/AdminwebPages/adminpageView/.vscode/extensions.json @@ -0,0 +1,8 @@ +{ + "recommendations": [ + "Vue.volar", + "dbaeumer.vscode-eslint", + "EditorConfig.EditorConfig", + "esbenp.prettier-vscode" + ] +} diff --git a/AdminwebPages/adminpageView/README.md b/AdminwebPages/adminpageView/README.md new file mode 100644 index 0000000..4b89ac7 --- /dev/null +++ b/AdminwebPages/adminpageView/README.md @@ -0,0 +1,39 @@ +# adminpageView + +This template should help get you started developing with Vue 3 in Vite. + +## Recommended IDE Setup + +[VSCode](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (and disable Vetur). + +## Type Support for `.vue` Imports in TS + +TypeScript cannot handle type information for `.vue` imports by default, so we replace the `tsc` CLI with `vue-tsc` for type checking. In editors, we need [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) to make the TypeScript language service aware of `.vue` types. + +## Customize configuration + +See [Vite Configuration Reference](https://vite.dev/config/). + +## Project Setup + +```sh +pnpm install +``` + +### Compile and Hot-Reload for Development + +```sh +pnpm dev +``` + +### Type-Check, Compile and Minify for Production + +```sh +pnpm build +``` + +### Lint with [ESLint](https://eslint.org/) + +```sh +pnpm lint +``` diff --git a/AdminwebPages/adminpageView/env.d.ts b/AdminwebPages/adminpageView/env.d.ts new file mode 100644 index 0000000..11f02fe --- /dev/null +++ b/AdminwebPages/adminpageView/env.d.ts @@ -0,0 +1 @@ +/// <reference types="vite/client" /> diff --git a/AdminwebPages/adminpageView/eslint.config.ts b/AdminwebPages/adminpageView/eslint.config.ts new file mode 100644 index 0000000..d3d8f17 --- /dev/null +++ b/AdminwebPages/adminpageView/eslint.config.ts @@ -0,0 +1,24 @@ +import pluginVue from 'eslint-plugin-vue' +import { defineConfigWithVueTs, vueTsConfigs } from '@vue/eslint-config-typescript' +import skipFormatting from '@vue/eslint-config-prettier/skip-formatting' + +// To allow more languages other than `ts` in `.vue` files, uncomment the following lines: +// import { configureVueProject } from '@vue/eslint-config-typescript' +// configureVueProject({ scriptLangs: ['ts', 'tsx'] }) +// More info at https://github.com/vuejs/eslint-config-typescript/#advanced-setup + +export default defineConfigWithVueTs( + { + name: 'app/files-to-lint', + files: ['**/*.{ts,mts,tsx,vue}'], + }, + + { + name: 'app/files-to-ignore', + ignores: ['**/dist/**', '**/dist-ssr/**', '**/coverage/**'], + }, + + pluginVue.configs['flat/essential'], + vueTsConfigs.recommended, + skipFormatting, +) diff --git a/AdminwebPages/adminpageView/index.html b/AdminwebPages/adminpageView/index.html new file mode 100644 index 0000000..9e5fc8f --- /dev/null +++ b/AdminwebPages/adminpageView/index.html @@ -0,0 +1,13 @@ +<!DOCTYPE html> +<html lang=""> + <head> + <meta charset="UTF-8"> + <link rel="icon" href="/favicon.ico"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <title>Vite App</title> + </head> + <body> + <div id="app"></div> + <script type="module" src="/src/main.ts"></script> + </body> +</html> diff --git a/AdminwebPages/adminpageView/package.json b/AdminwebPages/adminpageView/package.json new file mode 100644 index 0000000..107bed2 --- /dev/null +++ b/AdminwebPages/adminpageView/package.json @@ -0,0 +1,45 @@ +{ + "name": "adminpageview", + "version": "0.0.0", + "private": true, + "type": "module", + "scripts": { + "dev": "vite", + "build": "run-p type-check \"build-only {@}\" --", + "preview": "vite preview", + "build-only": "vite build", + "type-check": "vue-tsc --build", + "lint": "eslint . --fix", + "format": "prettier --write src/" + }, + "dependencies": { + "@types/qs": "^6.9.18", + "axios": "^1.8.3", + "element-plus": "^2.9.6", + "moment": "^2.30.1", + "pinia": "^3.0.1", + "plus-pro-components": "^0.1.21", + "qs": "^6.14.0", + "vue": "^3.5.13", + "vue-router": "^4.5.0" + }, + "devDependencies": { + "@tsconfig/node22": "^22.0.0", + "@types/node": "^22.13.9", + "@types/nprogress": "^0.2.3", + "@vitejs/plugin-vue": "^5.2.1", + "@vitejs/plugin-vue-jsx": "^4.1.1", + "@vue/eslint-config-prettier": "^10.2.0", + "@vue/eslint-config-typescript": "^14.5.0", + "@vue/tsconfig": "^0.7.0", + "eslint": "^9.21.0", + "eslint-plugin-vue": "~10.0.0", + "jiti": "^2.4.2", + "npm-run-all2": "^7.0.2", + "prettier": "3.5.3", + "typescript": "~5.8.0", + "vite": "^6.2.1", + "vite-plugin-vue-devtools": "^7.7.2", + "vue-tsc": "^2.2.8" + } +} diff --git a/AdminwebPages/adminpageView/pnpm-lock.yaml b/AdminwebPages/adminpageView/pnpm-lock.yaml new file mode 100644 index 0000000..b2ef1da --- /dev/null +++ b/AdminwebPages/adminpageView/pnpm-lock.yaml @@ -0,0 +1,3625 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@types/qs': + specifier: ^6.9.18 + version: 6.9.18 + axios: + specifier: ^1.8.3 + version: 1.8.3 + element-plus: + specifier: ^2.9.6 + version: 2.9.6(vue@3.5.13(typescript@5.8.2)) + moment: + specifier: ^2.30.1 + version: 2.30.1 + pinia: + specifier: ^3.0.1 + version: 3.0.1(typescript@5.8.2)(vue@3.5.13(typescript@5.8.2)) + plus-pro-components: + specifier: ^0.1.21 + version: 0.1.21(element-plus@2.9.6(vue@3.5.13(typescript@5.8.2)))(vue@3.5.13(typescript@5.8.2)) + qs: + specifier: ^6.14.0 + version: 6.14.0 + vue: + specifier: ^3.5.13 + version: 3.5.13(typescript@5.8.2) + vue-router: + specifier: ^4.5.0 + version: 4.5.0(vue@3.5.13(typescript@5.8.2)) + devDependencies: + '@tsconfig/node22': + specifier: ^22.0.0 + version: 22.0.0 + '@types/node': + specifier: ^22.13.9 + version: 22.13.10 + '@types/nprogress': + specifier: ^0.2.3 + version: 0.2.3 + '@vitejs/plugin-vue': + specifier: ^5.2.1 + version: 5.2.2(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2))(vue@3.5.13(typescript@5.8.2)) + '@vitejs/plugin-vue-jsx': + specifier: ^4.1.1 + version: 4.1.2(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2))(vue@3.5.13(typescript@5.8.2)) + '@vue/eslint-config-prettier': + specifier: ^10.2.0 + version: 10.2.0(eslint@9.22.0(jiti@2.4.2))(prettier@3.5.3) + '@vue/eslint-config-typescript': + specifier: ^14.5.0 + version: 14.5.0(eslint-plugin-vue@10.0.0(eslint@9.22.0(jiti@2.4.2))(vue-eslint-parser@10.1.1(eslint@9.22.0(jiti@2.4.2))))(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@vue/tsconfig': + specifier: ^0.7.0 + version: 0.7.0(typescript@5.8.2)(vue@3.5.13(typescript@5.8.2)) + eslint: + specifier: ^9.21.0 + version: 9.22.0(jiti@2.4.2) + eslint-plugin-vue: + specifier: ~10.0.0 + version: 10.0.0(eslint@9.22.0(jiti@2.4.2))(vue-eslint-parser@10.1.1(eslint@9.22.0(jiti@2.4.2))) + jiti: + specifier: ^2.4.2 + version: 2.4.2 + npm-run-all2: + specifier: ^7.0.2 + version: 7.0.2 + prettier: + specifier: 3.5.3 + version: 3.5.3 + typescript: + specifier: ~5.8.0 + version: 5.8.2 + vite: + specifier: ^6.2.1 + version: 6.2.2(@types/node@22.13.10)(jiti@2.4.2) + vite-plugin-vue-devtools: + specifier: ^7.7.2 + version: 7.7.2(rollup@4.35.0)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2))(vue@3.5.13(typescript@5.8.2)) + vue-tsc: + specifier: ^2.2.8 + version: 2.2.8(typescript@5.8.2) + +packages: + + '@ampproject/remapping@2.3.0': + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} + engines: {node: '>=6.0.0'} + + '@antfu/utils@0.7.10': + resolution: {integrity: sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==} + + '@babel/code-frame@7.26.2': + resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} + engines: {node: '>=6.9.0'} + + '@babel/compat-data@7.26.8': + resolution: {integrity: sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==} + engines: {node: '>=6.9.0'} + + '@babel/core@7.26.10': + resolution: {integrity: sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==} + engines: {node: '>=6.9.0'} + + '@babel/generator@7.26.10': + resolution: {integrity: sha512-rRHT8siFIXQrAYOYqZQVsAr8vJ+cBNqcVAY6m5V8/4QqzaPl+zDBe6cLEPRDuNOUf3ww8RfJVlOyQMoSI+5Ang==} + engines: {node: '>=6.9.0'} + + '@babel/helper-annotate-as-pure@7.25.9': + resolution: {integrity: sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==} + engines: {node: '>=6.9.0'} + + '@babel/helper-compilation-targets@7.26.5': + resolution: {integrity: sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-create-class-features-plugin@7.26.9': + resolution: {integrity: sha512-ubbUqCofvxPRurw5L8WTsCLSkQiVpov4Qx0WMA+jUN+nXBK8ADPlJO1grkFw5CWKC5+sZSOfuGMdX1aI1iT9Sg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-member-expression-to-functions@7.25.9': + resolution: {integrity: sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-imports@7.25.9': + resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-transforms@7.26.0': + resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-optimise-call-expression@7.25.9': + resolution: {integrity: sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-plugin-utils@7.26.5': + resolution: {integrity: sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-replace-supers@7.26.5': + resolution: {integrity: sha512-bJ6iIVdYX1YooY2X7w1q6VITt+LnUILtNk7zT78ykuwStx8BauCzxvFqFaHjOpW1bVnSUM1PN1f0p5P21wHxvg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-skip-transparent-expression-wrappers@7.25.9': + resolution: {integrity: sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-string-parser@7.25.9': + resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.25.9': + resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-option@7.25.9': + resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} + engines: {node: '>=6.9.0'} + + '@babel/helpers@7.26.10': + resolution: {integrity: sha512-UPYc3SauzZ3JGgj87GgZ89JVdC5dj0AoetR5Bw6wj4niittNyFh6+eOGonYvJ1ao6B8lEa3Q3klS7ADZ53bc5g==} + engines: {node: '>=6.9.0'} + + '@babel/parser@7.26.10': + resolution: {integrity: sha512-6aQR2zGE/QFi8JpDLjUZEPYOs7+mhKXm86VaKFiLP35JQwQb6bwUE+XbvkH0EptsYhbNBSUGaUBLKqxH1xSgsA==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/plugin-proposal-decorators@7.25.9': + resolution: {integrity: sha512-smkNLL/O1ezy9Nhy4CNosc4Va+1wo5w4gzSZeLe6y6dM4mmHfYOCPolXQPHQxonZCF+ZyebxN9vqOolkYrSn5g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-decorators@7.25.9': + resolution: {integrity: sha512-ryzI0McXUPJnRCvMo4lumIKZUzhYUO/ScI+Mz4YVaTLt04DHNSjEUjKVvbzQjZFLuod/cYEc07mJWhzl6v4DPg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-import-attributes@7.26.0': + resolution: {integrity: sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-import-meta@7.10.4': + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-jsx@7.25.9': + resolution: {integrity: sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-typescript@7.25.9': + resolution: {integrity: sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-typescript@7.26.8': + resolution: {integrity: sha512-bME5J9AC8ChwA7aEPJ6zym3w7aObZULHhbNLU0bKUhKsAkylkzUdq+0kdymh9rzi8nlNFl2bmldFBCKNJBUpuw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/template@7.26.9': + resolution: {integrity: sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==} + engines: {node: '>=6.9.0'} + + '@babel/traverse@7.26.10': + resolution: {integrity: sha512-k8NuDrxr0WrPH5Aupqb2LCVURP/S0vBEn5mK6iH+GIYob66U5EtoZvcdudR2jQ4cmTwhEwW1DLB+Yyas9zjF6A==} + engines: {node: '>=6.9.0'} + + '@babel/types@7.26.10': + resolution: {integrity: sha512-emqcG3vHrpxUKTrxcblR36dcrcoRDvKmnL/dCL6ZsHaShW80qxCAcNhzQZrpeM765VzEos+xOi4s+r4IXzTwdQ==} + engines: {node: '>=6.9.0'} + + '@ctrl/tinycolor@3.6.1': + resolution: {integrity: sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==} + engines: {node: '>=10'} + + '@element-plus/icons-vue@2.3.1': + resolution: {integrity: sha512-XxVUZv48RZAd87ucGS48jPf6pKu0yV5UCg9f4FFwtrYxXOwWuVJo6wOvSLKEoMQKjv8GsX/mhP6UsC1lRwbUWg==} + peerDependencies: + vue: ^3.2.0 + + '@esbuild/aix-ppc64@0.25.1': + resolution: {integrity: sha512-kfYGy8IdzTGy+z0vFGvExZtxkFlA4zAxgKEahG9KE1ScBjpQnFsNOX8KTU5ojNru5ed5CVoJYXFtoxaq5nFbjQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.25.1': + resolution: {integrity: sha512-50tM0zCJW5kGqgG7fQ7IHvQOcAn9TKiVRuQ/lN0xR+T2lzEFvAi1ZcS8DiksFcEpf1t/GYOeOfCAgDHFpkiSmA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.25.1': + resolution: {integrity: sha512-dp+MshLYux6j/JjdqVLnMglQlFu+MuVeNrmT5nk6q07wNhCdSnB7QZj+7G8VMUGh1q+vj2Bq8kRsuyA00I/k+Q==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.25.1': + resolution: {integrity: sha512-GCj6WfUtNldqUzYkN/ITtlhwQqGWu9S45vUXs7EIYf+7rCiiqH9bCloatO9VhxsL0Pji+PF4Lz2XXCES+Q8hDw==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.25.1': + resolution: {integrity: sha512-5hEZKPf+nQjYoSr/elb62U19/l1mZDdqidGfmFutVUjjUZrOazAtwK+Kr+3y0C/oeJfLlxo9fXb1w7L+P7E4FQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.25.1': + resolution: {integrity: sha512-hxVnwL2Dqs3fM1IWq8Iezh0cX7ZGdVhbTfnOy5uURtao5OIVCEyj9xIzemDi7sRvKsuSdtCAhMKarxqtlyVyfA==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.25.1': + resolution: {integrity: sha512-1MrCZs0fZa2g8E+FUo2ipw6jw5qqQiH+tERoS5fAfKnRx6NXH31tXBKI3VpmLijLH6yriMZsxJtaXUyFt/8Y4A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.25.1': + resolution: {integrity: sha512-0IZWLiTyz7nm0xuIs0q1Y3QWJC52R8aSXxe40VUxm6BB1RNmkODtW6LHvWRrGiICulcX7ZvyH6h5fqdLu4gkww==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.25.1': + resolution: {integrity: sha512-jaN3dHi0/DDPelk0nLcXRm1q7DNJpjXy7yWaWvbfkPvI+7XNSc/lDOnCLN7gzsyzgu6qSAmgSvP9oXAhP973uQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.25.1': + resolution: {integrity: sha512-NdKOhS4u7JhDKw9G3cY6sWqFcnLITn6SqivVArbzIaf3cemShqfLGHYMx8Xlm/lBit3/5d7kXvriTUGa5YViuQ==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.25.1': + resolution: {integrity: sha512-OJykPaF4v8JidKNGz8c/q1lBO44sQNUQtq1KktJXdBLn1hPod5rE/Hko5ugKKZd+D2+o1a9MFGUEIUwO2YfgkQ==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.25.1': + resolution: {integrity: sha512-nGfornQj4dzcq5Vp835oM/o21UMlXzn79KobKlcs3Wz9smwiifknLy4xDCLUU0BWp7b/houtdrgUz7nOGnfIYg==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.25.1': + resolution: {integrity: sha512-1osBbPEFYwIE5IVB/0g2X6i1qInZa1aIoj1TdL4AaAb55xIIgbg8Doq6a5BzYWgr+tEcDzYH67XVnTmUzL+nXg==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.25.1': + resolution: {integrity: sha512-/6VBJOwUf3TdTvJZ82qF3tbLuWsscd7/1w+D9LH0W/SqUgM5/JJD0lrJ1fVIfZsqB6RFmLCe0Xz3fmZc3WtyVg==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.25.1': + resolution: {integrity: sha512-nSut/Mx5gnilhcq2yIMLMe3Wl4FK5wx/o0QuuCLMtmJn+WeWYoEGDN1ipcN72g1WHsnIbxGXd4i/MF0gTcuAjQ==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.25.1': + resolution: {integrity: sha512-cEECeLlJNfT8kZHqLarDBQso9a27o2Zd2AQ8USAEoGtejOrCYHNtKP8XQhMDJMtthdF4GBmjR2au3x1udADQQQ==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.25.1': + resolution: {integrity: sha512-xbfUhu/gnvSEg+EGovRc+kjBAkrvtk38RlerAzQxvMzlB4fXpCFCeUAYzJvrnhFtdeyVCDANSjJvOvGYoeKzFA==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-arm64@0.25.1': + resolution: {integrity: sha512-O96poM2XGhLtpTh+s4+nP7YCCAfb4tJNRVZHfIE7dgmax+yMP2WgMd2OecBuaATHKTHsLWHQeuaxMRnCsH8+5g==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.25.1': + resolution: {integrity: sha512-X53z6uXip6KFXBQ+Krbx25XHV/NCbzryM6ehOAeAil7X7oa4XIq+394PWGnwaSQ2WRA0KI6PUO6hTO5zeF5ijA==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.25.1': + resolution: {integrity: sha512-Na9T3szbXezdzM/Kfs3GcRQNjHzM6GzFBeU1/6IV/npKP5ORtp9zbQjvkDJ47s6BCgaAZnnnu/cY1x342+MvZg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.25.1': + resolution: {integrity: sha512-T3H78X2h1tszfRSf+txbt5aOp/e7TAz3ptVKu9Oyir3IAOFPGV6O9c2naym5TOriy1l0nNf6a4X5UXRZSGX/dw==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/sunos-x64@0.25.1': + resolution: {integrity: sha512-2H3RUvcmULO7dIE5EWJH8eubZAI4xw54H1ilJnRNZdeo8dTADEZ21w6J22XBkXqGJbe0+wnNJtw3UXRoLJnFEg==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.25.1': + resolution: {integrity: sha512-GE7XvrdOzrb+yVKB9KsRMq+7a2U/K5Cf/8grVFRAGJmfADr/e/ODQ134RK2/eeHqYV5eQRFxb1hY7Nr15fv1NQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.25.1': + resolution: {integrity: sha512-uOxSJCIcavSiT6UnBhBzE8wy3n0hOkJsBOzy7HDAuTDE++1DJMRRVCPGisULScHL+a/ZwdXPpXD3IyFKjA7K8A==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.25.1': + resolution: {integrity: sha512-Y1EQdcfwMSeQN/ujR5VayLOJ1BHaK+ssyk0AEzPjC+t1lITgsnccPqFjb6V+LsTp/9Iov4ysfjxLaGJ9RPtkVg==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + + '@eslint-community/eslint-utils@4.5.1': + resolution: {integrity: sha512-soEIOALTfTK6EjmKMMoLugwaP0rzkad90iIWd1hMO9ARkSAyjfMfkRRhLvD5qH7vvM0Cg72pieUfR6yh6XxC4w==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + + '@eslint-community/regexpp@4.12.1': + resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + '@eslint/config-array@0.19.2': + resolution: {integrity: sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/config-helpers@0.1.0': + resolution: {integrity: sha512-kLrdPDJE1ckPo94kmPPf9Hfd0DU0Jw6oKYrhe+pwSC0iTUInmTa+w6fw8sGgcfkFJGNdWOUeOaDM4quW4a7OkA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/core@0.12.0': + resolution: {integrity: sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/eslintrc@3.3.0': + resolution: {integrity: sha512-yaVPAiNAalnCZedKLdR21GOGILMLKPyqSLWaAjQFvYA2i/ciDi8ArYVr69Anohb6cH2Ukhqti4aFnYyPm8wdwQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/js@9.22.0': + resolution: {integrity: sha512-vLFajx9o8d1/oL2ZkpMYbkLv8nDB6yaIwFNt7nI4+I80U/z03SxmfOMsLbvWr3p7C+Wnoh//aOu2pQW8cS0HCQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/object-schema@2.1.6': + resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/plugin-kit@0.2.7': + resolution: {integrity: sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@floating-ui/core@1.6.9': + resolution: {integrity: sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==} + + '@floating-ui/dom@1.6.13': + resolution: {integrity: sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==} + + '@floating-ui/utils@0.2.9': + resolution: {integrity: sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==} + + '@humanfs/core@0.19.1': + resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} + engines: {node: '>=18.18.0'} + + '@humanfs/node@0.16.6': + resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==} + engines: {node: '>=18.18.0'} + + '@humanwhocodes/module-importer@1.0.1': + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + + '@humanwhocodes/retry@0.3.1': + resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} + engines: {node: '>=18.18'} + + '@humanwhocodes/retry@0.4.2': + resolution: {integrity: sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==} + engines: {node: '>=18.18'} + + '@jridgewell/gen-mapping@0.3.8': + resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} + engines: {node: '>=6.0.0'} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/set-array@1.2.1': + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} + + '@jridgewell/sourcemap-codec@1.5.0': + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + + '@jridgewell/trace-mapping@0.3.25': + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + + '@pkgr/core@0.1.1': + resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + + '@polka/url@1.0.0-next.28': + resolution: {integrity: sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==} + + '@rollup/pluginutils@5.1.4': + resolution: {integrity: sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/rollup-android-arm-eabi@4.35.0': + resolution: {integrity: sha512-uYQ2WfPaqz5QtVgMxfN6NpLD+no0MYHDBywl7itPYd3K5TjjSghNKmX8ic9S8NU8w81NVhJv/XojcHptRly7qQ==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.35.0': + resolution: {integrity: sha512-FtKddj9XZudurLhdJnBl9fl6BwCJ3ky8riCXjEw3/UIbjmIY58ppWwPEvU3fNu+W7FUsAsB1CdH+7EQE6CXAPA==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.35.0': + resolution: {integrity: sha512-Uk+GjOJR6CY844/q6r5DR/6lkPFOw0hjfOIzVx22THJXMxktXG6CbejseJFznU8vHcEBLpiXKY3/6xc+cBm65Q==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.35.0': + resolution: {integrity: sha512-3IrHjfAS6Vkp+5bISNQnPogRAW5GAV1n+bNCrDwXmfMHbPl5EhTmWtfmwlJxFRUCBZ+tZ/OxDyU08aF6NI/N5Q==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-freebsd-arm64@4.35.0': + resolution: {integrity: sha512-sxjoD/6F9cDLSELuLNnY0fOrM9WA0KrM0vWm57XhrIMf5FGiN8D0l7fn+bpUeBSU7dCgPV2oX4zHAsAXyHFGcQ==} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-x64@4.35.0': + resolution: {integrity: sha512-2mpHCeRuD1u/2kruUiHSsnjWtHjqVbzhBkNVQ1aVD63CcexKVcQGwJ2g5VphOd84GvxfSvnnlEyBtQCE5hxVVw==} + cpu: [x64] + os: [freebsd] + + '@rollup/rollup-linux-arm-gnueabihf@4.35.0': + resolution: {integrity: sha512-mrA0v3QMy6ZSvEuLs0dMxcO2LnaCONs1Z73GUDBHWbY8tFFocM6yl7YyMu7rz4zS81NDSqhrUuolyZXGi8TEqg==} + cpu: [arm] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-arm-musleabihf@4.35.0': + resolution: {integrity: sha512-DnYhhzcvTAKNexIql8pFajr0PiDGrIsBYPRvCKlA5ixSS3uwo/CWNZxB09jhIapEIg945KOzcYEAGGSmTSpk7A==} + cpu: [arm] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-arm64-gnu@4.35.0': + resolution: {integrity: sha512-uagpnH2M2g2b5iLsCTZ35CL1FgyuzzJQ8L9VtlJ+FckBXroTwNOaD0z0/UF+k5K3aNQjbm8LIVpxykUOQt1m/A==} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-arm64-musl@4.35.0': + resolution: {integrity: sha512-XQxVOCd6VJeHQA/7YcqyV0/88N6ysSVzRjJ9I9UA/xXpEsjvAgDTgH3wQYz5bmr7SPtVK2TsP2fQ2N9L4ukoUg==} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-loongarch64-gnu@4.35.0': + resolution: {integrity: sha512-5pMT5PzfgwcXEwOaSrqVsz/LvjDZt+vQ8RT/70yhPU06PTuq8WaHhfT1LW+cdD7mW6i/J5/XIkX/1tCAkh1W6g==} + cpu: [loong64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-powerpc64le-gnu@4.35.0': + resolution: {integrity: sha512-c+zkcvbhbXF98f4CtEIP1EBA/lCic5xB0lToneZYvMeKu5Kamq3O8gqrxiYYLzlZH6E3Aq+TSW86E4ay8iD8EA==} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-riscv64-gnu@4.35.0': + resolution: {integrity: sha512-s91fuAHdOwH/Tad2tzTtPX7UZyytHIRR6V4+2IGlV0Cej5rkG0R61SX4l4y9sh0JBibMiploZx3oHKPnQBKe4g==} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-s390x-gnu@4.35.0': + resolution: {integrity: sha512-hQRkPQPLYJZYGP+Hj4fR9dDBMIM7zrzJDWFEMPdTnTy95Ljnv0/4w/ixFw3pTBMEuuEuoqtBINYND4M7ujcuQw==} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-x64-gnu@4.35.0': + resolution: {integrity: sha512-Pim1T8rXOri+0HmV4CdKSGrqcBWX0d1HoPnQ0uw0bdp1aP5SdQVNBy8LjYncvnLgu3fnnCt17xjWGd4cqh8/hA==} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-x64-musl@4.35.0': + resolution: {integrity: sha512-QysqXzYiDvQWfUiTm8XmJNO2zm9yC9P/2Gkrwg2dH9cxotQzunBHYr6jk4SujCTqnfGxduOmQcI7c2ryuW8XVg==} + cpu: [x64] + os: [linux] + libc: [musl] + + '@rollup/rollup-win32-arm64-msvc@4.35.0': + resolution: {integrity: sha512-OUOlGqPkVJCdJETKOCEf1mw848ZyJ5w50/rZ/3IBQVdLfR5jk/6Sr5m3iO2tdPgwo0x7VcncYuOvMhBWZq8ayg==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.35.0': + resolution: {integrity: sha512-2/lsgejMrtwQe44glq7AFFHLfJBPafpsTa6JvP2NGef/ifOa4KBoglVf7AKN7EV9o32evBPRqfg96fEHzWo5kw==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.35.0': + resolution: {integrity: sha512-PIQeY5XDkrOysbQblSW7v3l1MDZzkTEzAfTPkj5VAu3FW8fS4ynyLg2sINp0fp3SjZ8xkRYpLqoKcYqAkhU1dw==} + cpu: [x64] + os: [win32] + + '@sec-ant/readable-stream@0.4.1': + resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==} + + '@sindresorhus/merge-streams@4.0.0': + resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==} + engines: {node: '>=18'} + + '@sxzz/popperjs-es@2.11.7': + resolution: {integrity: sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==} + + '@tsconfig/node22@22.0.0': + resolution: {integrity: sha512-twLQ77zevtxobBOD4ToAtVmuYrpeYUh3qh+TEp+08IWhpsrIflVHqQ1F1CiPxQGL7doCdBIOOCF+1Tm833faNg==} + + '@types/estree@1.0.6': + resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} + + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + + '@types/lodash-es@4.17.12': + resolution: {integrity: sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==} + + '@types/lodash@4.17.16': + resolution: {integrity: sha512-HX7Em5NYQAXKW+1T+FiuG27NGwzJfCX3s1GjOa7ujxZa52kjJLOr4FUxT+giF6Tgxv1e+/czV/iTtBw27WTU9g==} + + '@types/node@22.13.10': + resolution: {integrity: sha512-I6LPUvlRH+O6VRUqYOcMudhaIdUVWfsjnZavnsraHvpBwaEyMN29ry+0UVJhImYL16xsscu0aske3yA+uPOWfw==} + + '@types/nprogress@0.2.3': + resolution: {integrity: sha512-k7kRA033QNtC+gLc4VPlfnue58CM1iQLgn1IMAU8VPHGOj7oIHPp9UlhedEnD/Gl8evoCjwkZjlBORtZ3JByUA==} + + '@types/qs@6.9.18': + resolution: {integrity: sha512-kK7dgTYDyGqS+e2Q4aK9X3D7q234CIZ1Bv0q/7Z5IwRDoADNU81xXJK/YVyLbLTZCoIwUoDoffFeF+p/eIklAA==} + + '@types/web-bluetooth@0.0.16': + resolution: {integrity: sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==} + + '@typescript-eslint/eslint-plugin@8.26.1': + resolution: {integrity: sha512-2X3mwqsj9Bd3Ciz508ZUtoQQYpOhU/kWoUqIf49H8Z0+Vbh6UF/y0OEYp0Q0axOGzaBGs7QxRwq0knSQ8khQNA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' + + '@typescript-eslint/parser@8.26.1': + resolution: {integrity: sha512-w6HZUV4NWxqd8BdeFf81t07d7/YV9s7TCWrQQbG5uhuvGUAW+fq1usZ1Hmz9UPNLniFnD8GLSsDpjP0hm1S4lQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' + + '@typescript-eslint/scope-manager@8.26.1': + resolution: {integrity: sha512-6EIvbE5cNER8sqBu6V7+KeMZIC1664d2Yjt+B9EWUXrsyWpxx4lEZrmvxgSKRC6gX+efDL/UY9OpPZ267io3mg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/type-utils@8.26.1': + resolution: {integrity: sha512-Kcj/TagJLwoY/5w9JGEFV0dclQdyqw9+VMndxOJKtoFSjfZhLXhYjzsQEeyza03rwHx2vFEGvrJWJBXKleRvZg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' + + '@typescript-eslint/types@8.26.1': + resolution: {integrity: sha512-n4THUQW27VmQMx+3P+B0Yptl7ydfceUj4ON/AQILAASwgYdZ/2dhfymRMh5egRUrvK5lSmaOm77Ry+lmXPOgBQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/typescript-estree@8.26.1': + resolution: {integrity: sha512-yUwPpUHDgdrv1QJ7YQal3cMVBGWfnuCdKbXw1yyjArax3353rEJP1ZA+4F8nOlQ3RfS2hUN/wze3nlY+ZOhvoA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <5.9.0' + + '@typescript-eslint/utils@8.26.1': + resolution: {integrity: sha512-V4Urxa/XtSUroUrnI7q6yUTD3hDtfJ2jzVfeT3VK0ciizfK2q/zGC0iDh1lFMUZR8cImRrep6/q0xd/1ZGPQpg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' + + '@typescript-eslint/visitor-keys@8.26.1': + resolution: {integrity: sha512-AjOC3zfnxd6S4Eiy3jwktJPclqhFHNyd8L6Gycf9WUPoKZpgM5PjkxY1X7uSy61xVpiJDhhk7XT2NVsN3ALTWg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@vitejs/plugin-vue-jsx@4.1.2': + resolution: {integrity: sha512-4Rk0GdE0QCdsIkuMmWeg11gmM4x8UmTnZR/LWPm7QJ7+BsK4tq08udrN0isrrWqz5heFy9HLV/7bOLgFS8hUjA==} + engines: {node: ^18.0.0 || >=20.0.0} + peerDependencies: + vite: ^5.0.0 || ^6.0.0 + vue: ^3.0.0 + + '@vitejs/plugin-vue@5.2.2': + resolution: {integrity: sha512-IY0aPonWZI2huxrWjoSBUQX14GThitmr1sc2OUJymcgnY5RlUI7HoXGAnFEoVNRsck/kS6inGvxCN6CoHu86yQ==} + engines: {node: ^18.0.0 || >=20.0.0} + peerDependencies: + vite: ^5.0.0 || ^6.0.0 + vue: ^3.2.25 + + '@volar/language-core@2.4.12': + resolution: {integrity: sha512-RLrFdXEaQBWfSnYGVxvR2WrO6Bub0unkdHYIdC31HzIEqATIuuhRRzYu76iGPZ6OtA4Au1SnW0ZwIqPP217YhA==} + + '@volar/source-map@2.4.12': + resolution: {integrity: sha512-bUFIKvn2U0AWojOaqf63ER0N/iHIBYZPpNGogfLPQ68F5Eet6FnLlyho7BS0y2HJ1jFhSif7AcuTx1TqsCzRzw==} + + '@volar/typescript@2.4.12': + resolution: {integrity: sha512-HJB73OTJDgPc80K30wxi3if4fSsZZAOScbj2fcicMuOPoOkcf9NNAINb33o+DzhBdF9xTKC1gnPmIRDous5S0g==} + + '@vue/babel-helper-vue-transform-on@1.4.0': + resolution: {integrity: sha512-mCokbouEQ/ocRce/FpKCRItGo+013tHg7tixg3DUNS+6bmIchPt66012kBMm476vyEIJPafrvOf4E5OYj3shSw==} + + '@vue/babel-plugin-jsx@1.4.0': + resolution: {integrity: sha512-9zAHmwgMWlaN6qRKdrg1uKsBKHvnUU+Py+MOCTuYZBoZsopa90Di10QRjB+YPnVss0BZbG/H5XFwJY1fTxJWhA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + + '@vue/babel-plugin-resolve-type@1.4.0': + resolution: {integrity: sha512-4xqDRRbQQEWHQyjlYSgZsWj44KfiF6D+ktCuXyZ8EnVDYV3pztmXJDf1HveAjUAXxAnR8daCQT51RneWWxtTyQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@vue/compiler-core@3.5.13': + resolution: {integrity: sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==} + + '@vue/compiler-dom@3.5.13': + resolution: {integrity: sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==} + + '@vue/compiler-sfc@3.5.13': + resolution: {integrity: sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==} + + '@vue/compiler-ssr@3.5.13': + resolution: {integrity: sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==} + + '@vue/compiler-vue2@2.7.16': + resolution: {integrity: sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==} + + '@vue/devtools-api@6.6.4': + resolution: {integrity: sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==} + + '@vue/devtools-api@7.7.2': + resolution: {integrity: sha512-1syn558KhyN+chO5SjlZIwJ8bV/bQ1nOVTG66t2RbG66ZGekyiYNmRO7X9BJCXQqPsFHlnksqvPhce2qpzxFnA==} + + '@vue/devtools-core@7.7.2': + resolution: {integrity: sha512-lexREWj1lKi91Tblr38ntSsy6CvI8ba7u+jmwh2yruib/ltLUcsIzEjCnrkh1yYGGIKXbAuYV2tOG10fGDB9OQ==} + peerDependencies: + vue: ^3.0.0 + + '@vue/devtools-kit@7.7.2': + resolution: {integrity: sha512-CY0I1JH3Z8PECbn6k3TqM1Bk9ASWxeMtTCvZr7vb+CHi+X/QwQm5F1/fPagraamKMAHVfuuCbdcnNg1A4CYVWQ==} + + '@vue/devtools-shared@7.7.2': + resolution: {integrity: sha512-uBFxnp8gwW2vD6FrJB8JZLUzVb6PNRG0B0jBnHsOH8uKyva2qINY8PTF5Te4QlTbMDqU5K6qtJDr6cNsKWhbOA==} + + '@vue/eslint-config-prettier@10.2.0': + resolution: {integrity: sha512-GL3YBLwv/+b86yHcNNfPJxOTtVFJ4Mbc9UU3zR+KVoG7SwGTjPT+32fXamscNumElhcpXW3mT0DgzS9w32S7Bw==} + peerDependencies: + eslint: '>= 8.21.0' + prettier: '>= 3.0.0' + + '@vue/eslint-config-typescript@14.5.0': + resolution: {integrity: sha512-5oPOyuwkw++AP5gHDh5YFmST50dPfWOcm3/W7Nbh42IK5O3H74ytWAw0TrCRTaBoD/02khnWXuZf1Bz1xflavQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^9.10.0 + eslint-plugin-vue: ^9.28.0 || ^10.0.0 + typescript: '>=4.8.4' + peerDependenciesMeta: + typescript: + optional: true + + '@vue/language-core@2.2.8': + resolution: {integrity: sha512-rrzB0wPGBvcwaSNRriVWdNAbHQWSf0NlGqgKHK5mEkXpefjUlVRP62u03KvwZpvKVjRnBIQ/Lwre+Mx9N6juUQ==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@vue/reactivity@3.5.13': + resolution: {integrity: sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==} + + '@vue/runtime-core@3.5.13': + resolution: {integrity: sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw==} + + '@vue/runtime-dom@3.5.13': + resolution: {integrity: sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog==} + + '@vue/server-renderer@3.5.13': + resolution: {integrity: sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==} + peerDependencies: + vue: 3.5.13 + + '@vue/shared@3.5.13': + resolution: {integrity: sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==} + + '@vue/tsconfig@0.7.0': + resolution: {integrity: sha512-ku2uNz5MaZ9IerPPUyOHzyjhXoX2kVJaVf7hL315DC17vS6IiZRmmCPfggNbU16QTvM80+uYYy3eYJB59WCtvg==} + peerDependencies: + typescript: 5.x + vue: ^3.4.0 + peerDependenciesMeta: + typescript: + optional: true + vue: + optional: true + + '@vueuse/core@9.13.0': + resolution: {integrity: sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==} + + '@vueuse/metadata@9.13.0': + resolution: {integrity: sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==} + + '@vueuse/shared@9.13.0': + resolution: {integrity: sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==} + + acorn-jsx@5.3.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + + acorn@8.14.1: + resolution: {integrity: sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==} + engines: {node: '>=0.4.0'} + hasBin: true + + ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + + alien-signals@1.0.4: + resolution: {integrity: sha512-DJqqQD3XcsaQcQ1s+iE2jDUZmmQpXwHiR6fCAim/w87luaW+vmLY8fMlrdkmRwzaFXhkxf3rqPCR59tKVv1MDw==} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + async-validator@4.2.5: + resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==} + + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + + axios@1.8.3: + resolution: {integrity: sha512-iP4DebzoNlP/YN2dpwCgb8zoCmhtkajzS48JvwmkSkXvPI3DHc7m+XYL5tGnSlJtR6nImXZmdCuN5aP8dh1d8A==} + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + birpc@0.2.19: + resolution: {integrity: sha512-5WeXXAvTmitV1RqJFppT5QtUiz2p1mRSYU000Jkft5ZUCLJIk4uQriYNO50HknxKwM6jd8utNc66K1qGIwwWBQ==} + + boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + + brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + + brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + browserslist@4.24.4: + resolution: {integrity: sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + bundle-name@4.1.0: + resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} + engines: {node: '>=18'} + + call-bind-apply-helpers@1.0.2: + resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} + engines: {node: '>= 0.4'} + + call-bound@1.0.4: + resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} + engines: {node: '>= 0.4'} + + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + caniuse-lite@1.0.30001705: + resolution: {integrity: sha512-S0uyMMiYvA7CxNgomYBwwwPUnWzFD83f3B1ce5jHUfHTH//QL6hHsreI8RVC5606R4ssqravelYO5TU6t8sEyg==} + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + + copy-anything@3.0.5: + resolution: {integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==} + engines: {node: '>=12.13'} + + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} + + cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + + csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + + dayjs@1.11.13: + resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==} + + de-indent@1.0.2: + resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} + + debug@4.4.0: + resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + + default-browser-id@5.0.0: + resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==} + engines: {node: '>=18'} + + default-browser@5.2.1: + resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==} + engines: {node: '>=18'} + + define-lazy-prop@3.0.0: + resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} + engines: {node: '>=12'} + + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + + dunder-proto@1.0.1: + resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} + engines: {node: '>= 0.4'} + + electron-to-chromium@1.5.119: + resolution: {integrity: sha512-Ku4NMzUjz3e3Vweh7PhApPrZSS4fyiCIbcIrG9eKrriYVLmbMepETR/v6SU7xPm98QTqMSYiCwfO89QNjXLkbQ==} + + element-plus@2.9.6: + resolution: {integrity: sha512-D9zU28Ce0s/9O/Vp3ewemikxzFVA6gdZyMwmWijHijo+t5/9H3sHRTIm1WlfeNpFW2Yq0y8nHXD0fU5YxU6qlQ==} + peerDependencies: + vue: ^3.2.0 + + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + + error-stack-parser-es@0.1.5: + resolution: {integrity: sha512-xHku1X40RO+fO8yJ8Wh2f2rZWVjqyhb1zgq1yZ8aZRQkv6OOKhKWRUaht3eSCUbAOBaKIgM+ykwFLE+QUxgGeg==} + + es-define-property@1.0.1: + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + es-object-atoms@1.1.1: + resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} + engines: {node: '>= 0.4'} + + es-set-tostringtag@2.1.0: + resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} + engines: {node: '>= 0.4'} + + esbuild@0.25.1: + resolution: {integrity: sha512-BGO5LtrGC7vxnqucAe/rmvKdJllfGaYWdyABvyMoXQlfYMb2bbRuReWR5tEGE//4LcNJj9XrkovTqNYRFZHAMQ==} + engines: {node: '>=18'} + hasBin: true + + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + + escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + eslint-config-prettier@10.1.1: + resolution: {integrity: sha512-4EQQr6wXwS+ZJSzaR5ZCrYgLxqvUjdXctaEtBqHcbkW944B1NQyO4qpdHQbXBONfwxXdkAY81HH4+LUfrg+zPw==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + + eslint-plugin-prettier@5.2.3: + resolution: {integrity: sha512-qJ+y0FfCp/mQYQ/vWQ3s7eUlFEL4PyKfAJxsnYTJ4YT73nsJBWqmEpFryxV9OeUiqmsTsYJ5Y+KDNaeP31wrRw==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + '@types/eslint': '>=8.0.0' + eslint: '>=8.0.0' + eslint-config-prettier: '*' + prettier: '>=3.0.0' + peerDependenciesMeta: + '@types/eslint': + optional: true + eslint-config-prettier: + optional: true + + eslint-plugin-vue@10.0.0: + resolution: {integrity: sha512-XKckedtajqwmaX6u1VnECmZ6xJt+YvlmMzBPZd+/sI3ub2lpYZyFnsyWo7c3nMOQKJQudeyk1lw/JxdgeKT64w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + vue-eslint-parser: ^10.0.0 + + eslint-scope@8.3.0: + resolution: {integrity: sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-visitor-keys@4.2.0: + resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint@9.22.0: + resolution: {integrity: sha512-9V/QURhsRN40xuHXWjV64yvrzMjcz7ZyNoF2jJFmy9j/SLk0u1OLSZgXi28MrXjymnjEGSR80WCdab3RGMDveQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true + + espree@10.3.0: + resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + esquery@1.6.0: + resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} + engines: {node: '>=0.10'} + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + execa@9.5.2: + resolution: {integrity: sha512-EHlpxMCpHWSAh1dgS6bVeoLAXGnJNdR93aabr4QCGbzOM73o5XmRfM/e5FUqsw3aagP8S8XEWUWFAxnRBnAF0Q==} + engines: {node: ^18.19.0 || >=20.5.0} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-diff@1.3.0: + resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} + + fast-glob@3.3.3: + resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} + engines: {node: '>=8.6.0'} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + + fastq@1.19.1: + resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} + + figures@6.1.0: + resolution: {integrity: sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==} + engines: {node: '>=18'} + + file-entry-cache@8.0.0: + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + engines: {node: '>=16.0.0'} + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + + flat-cache@4.0.1: + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + engines: {node: '>=16'} + + flatted@3.3.3: + resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} + + follow-redirects@1.15.9: + resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + + form-data@4.0.2: + resolution: {integrity: sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==} + engines: {node: '>= 6'} + + fs-extra@11.3.0: + resolution: {integrity: sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==} + engines: {node: '>=14.14'} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + + get-intrinsic@1.3.0: + resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} + engines: {node: '>= 0.4'} + + get-proto@1.0.1: + resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} + engines: {node: '>= 0.4'} + + get-stream@9.0.1: + resolution: {integrity: sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==} + engines: {node: '>=18'} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + + globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + + globals@14.0.0: + resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} + engines: {node: '>=18'} + + gopd@1.2.0: + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} + engines: {node: '>= 0.4'} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + has-symbols@1.1.0: + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} + engines: {node: '>= 0.4'} + + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + + hookable@5.5.3: + resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} + + human-signals@8.0.0: + resolution: {integrity: sha512-/1/GPCpDUCCYwlERiYjxoczfP0zfvZMU/OWgQPMya9AbAE24vseigFdhAMObpc8Q4lc/kjutPfUddDYyAmejnA==} + engines: {node: '>=18.18.0'} + + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} + + import-fresh@3.3.1: + resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} + engines: {node: '>=6'} + + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + is-docker@3.0.0: + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-inside-container@1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} + hasBin: true + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-plain-obj@4.1.0: + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} + engines: {node: '>=12'} + + is-stream@4.0.1: + resolution: {integrity: sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==} + engines: {node: '>=18'} + + is-unicode-supported@2.1.0: + resolution: {integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==} + engines: {node: '>=18'} + + is-what@4.1.16: + resolution: {integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==} + engines: {node: '>=12.13'} + + is-wsl@3.1.0: + resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} + engines: {node: '>=16'} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + isexe@3.1.1: + resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==} + engines: {node: '>=16'} + + jiti@2.4.2: + resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==} + hasBin: true + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + + jsesc@3.1.0: + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} + engines: {node: '>=6'} + hasBin: true + + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + json-parse-even-better-errors@4.0.0: + resolution: {integrity: sha512-lR4MXjGNgkJc7tkQ97kb2nuEMnNCyU//XYVH0MKTGcXEiSudQ5MKGKen3C5QubYy0vmq+JGitUg92uuywGEwIA==} + engines: {node: ^18.17.0 || >=20.5.0} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + + json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + + kolorist@1.8.0: + resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} + + levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + + locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + + lodash-es@4.17.21: + resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} + + lodash-unified@1.0.3: + resolution: {integrity: sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ==} + peerDependencies: + '@types/lodash-es': '*' + lodash: '*' + lodash-es: '*' + + lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + + lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + + lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + + magic-string@0.30.17: + resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} + + math-intrinsics@1.1.0: + resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} + engines: {node: '>= 0.4'} + + memoize-one@6.0.0: + resolution: {integrity: sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==} + + memorystream@0.3.1: + resolution: {integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==} + engines: {node: '>= 0.10.0'} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} + + mitt@3.0.1: + resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} + + moment@2.30.1: + resolution: {integrity: sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==} + + mrmime@2.0.1: + resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} + engines: {node: '>=10'} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + muggle-string@0.4.1: + resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} + + nanoid@3.3.10: + resolution: {integrity: sha512-vSJJTG+t/dIKAUhUDw/dLdZ9s//5OxcHqLaDWWrW4Cdq7o6tdLIczUkMXt2MBNmk6sJRZBZRXVixs7URY1CmIg==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + nanoid@5.1.4: + resolution: {integrity: sha512-GTFcMIDgR7tqji/LpSY8rtg464VnJl/j6ypoehYnuGb+Y8qZUdtKB8WVCXon0UEZgFDbuUxpIl//6FHLHgXSNA==} + engines: {node: ^18 || >=20} + hasBin: true + + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + + node-releases@2.0.19: + resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} + + normalize-wheel-es@1.2.0: + resolution: {integrity: sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw==} + + npm-normalize-package-bin@4.0.0: + resolution: {integrity: sha512-TZKxPvItzai9kN9H/TkmCtx/ZN/hvr3vUycjlfmH0ootY9yFBzNOpiXAdIn1Iteqsvk4lQn6B5PTrt+n6h8k/w==} + engines: {node: ^18.17.0 || >=20.5.0} + + npm-run-all2@7.0.2: + resolution: {integrity: sha512-7tXR+r9hzRNOPNTvXegM+QzCuMjzUIIq66VDunL6j60O4RrExx32XUhlrS7UK4VcdGw5/Wxzb3kfNcFix9JKDA==} + engines: {node: ^18.17.0 || >=20.5.0, npm: '>= 9'} + hasBin: true + + npm-run-path@6.0.0: + resolution: {integrity: sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==} + engines: {node: '>=18'} + + nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + + object-inspect@1.13.4: + resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} + engines: {node: '>= 0.4'} + + open@10.1.0: + resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==} + engines: {node: '>=18'} + + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} + + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + + p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + + parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + + parse-ms@4.0.0: + resolution: {integrity: sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==} + engines: {node: '>=18'} + + path-browserify@1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + + pathe@2.0.3: + resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} + + perfect-debounce@1.0.0: + resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + picomatch@4.0.2: + resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} + engines: {node: '>=12'} + + pidtree@0.6.0: + resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} + engines: {node: '>=0.10'} + hasBin: true + + pinia@3.0.1: + resolution: {integrity: sha512-WXglsDzztOTH6IfcJ99ltYZin2mY8XZCXujkYWVIJlBjqsP6ST7zw+Aarh63E1cDVYeyUcPCxPHzJpEOmzB6Wg==} + peerDependencies: + typescript: '>=4.4.4' + vue: ^2.7.0 || ^3.5.11 + peerDependenciesMeta: + typescript: + optional: true + + plus-pro-components@0.1.21: + resolution: {integrity: sha512-/0WdoMm9Dhs58T+gLzL1ZjvSEWicHEGy5dl5S4+h+k7eY/BznjH2R5bcmsoQ6HHomyw7RODwxarzD4On00sVWQ==} + peerDependencies: + element-plus: ^2.3.4 + vue: ^3.2.0 + + postcss-selector-parser@6.1.2: + resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} + engines: {node: '>=4'} + + postcss@8.5.3: + resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} + engines: {node: ^10 || ^12 || >=14} + + prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + + prettier-linter-helpers@1.0.0: + resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} + engines: {node: '>=6.0.0'} + + prettier@3.5.3: + resolution: {integrity: sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==} + engines: {node: '>=14'} + hasBin: true + + pretty-ms@9.2.0: + resolution: {integrity: sha512-4yf0QO/sllf/1zbZWYnvWw3NxCQwLXKzIj0G849LSufP15BXKM0rbD2Z3wVnkMfjdn/CB0Dpp444gYAACdsplg==} + engines: {node: '>=18'} + + proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + qs@6.14.0: + resolution: {integrity: sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==} + engines: {node: '>=0.6'} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + read-package-json-fast@4.0.0: + resolution: {integrity: sha512-qpt8EwugBWDw2cgE2W+/3oxC+KTez2uSVR8JU9Q36TXPAGCaozfQUs59v4j4GFpWTaw0i6hAZSvOmu1J0uOEUg==} + engines: {node: ^18.17.0 || >=20.5.0} + + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + reusify@1.1.0: + resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + rfdc@1.4.1: + resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} + + rollup@4.35.0: + resolution: {integrity: sha512-kg6oI4g+vc41vePJyO6dHt/yl0Rz3Thv0kJeVQ3D1kS3E5XSuKbPc29G4IpT/Kv1KQwgHVcN+HtyS+HYLNSvQg==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + + run-applescript@7.0.0: + resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==} + engines: {node: '>=18'} + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + semver@7.7.1: + resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==} + engines: {node: '>=10'} + hasBin: true + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + shell-quote@1.8.2: + resolution: {integrity: sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==} + engines: {node: '>= 0.4'} + + side-channel-list@1.0.0: + resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} + engines: {node: '>= 0.4'} + + side-channel-map@1.0.1: + resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} + engines: {node: '>= 0.4'} + + side-channel-weakmap@1.0.2: + resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} + engines: {node: '>= 0.4'} + + side-channel@1.1.0: + resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} + engines: {node: '>= 0.4'} + + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + sirv@3.0.1: + resolution: {integrity: sha512-FoqMu0NCGBLCcAkS1qA+XJIQTR6/JHfQXl+uGteNCQ76T91DMUjPa9xfmeqMY3z80nLSg9yQmNjK0Px6RWsH/A==} + engines: {node: '>=18'} + + sortablejs@1.15.6: + resolution: {integrity: sha512-aNfiuwMEpfBM/CN6LY0ibyhxPfPbyFeBTYJKCvzkJ2GkUpazIt3H+QIPAMHwqQ7tMKaHz1Qj+rJJCqljnf4p3A==} + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + speakingurl@14.0.1: + resolution: {integrity: sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==} + engines: {node: '>=0.10.0'} + + strip-final-newline@4.0.0: + resolution: {integrity: sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==} + engines: {node: '>=18'} + + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + + superjson@2.2.2: + resolution: {integrity: sha512-5JRxVqC8I8NuOUjzBbvVJAKNM8qoVuH0O77h4WInc/qC2q5IreqKxYwgkga3PfA22OayK2ikceb/B26dztPl+Q==} + engines: {node: '>=16'} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + synckit@0.9.2: + resolution: {integrity: sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==} + engines: {node: ^14.18.0 || >=16.0.0} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + totalist@3.0.1: + resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} + engines: {node: '>=6'} + + ts-api-utils@2.0.1: + resolution: {integrity: sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==} + engines: {node: '>=18.12'} + peerDependencies: + typescript: '>=4.8.4' + + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + + typescript-eslint@8.26.1: + resolution: {integrity: sha512-t/oIs9mYyrwZGRpDv3g+3K6nZ5uhKEMt2oNmAPwaY4/ye0+EH4nXIPYNtkYFS6QHm+1DFg34DbglYBz5P9Xysg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' + + typescript@5.8.2: + resolution: {integrity: sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==} + engines: {node: '>=14.17'} + hasBin: true + + undici-types@6.20.0: + resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} + + unicorn-magic@0.3.0: + resolution: {integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==} + engines: {node: '>=18'} + + universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + + update-browserslist-db@1.1.3: + resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + vite-hot-client@0.2.4: + resolution: {integrity: sha512-a1nzURqO7DDmnXqabFOliz908FRmIppkBKsJthS8rbe8hBEXwEwe4C3Pp33Z1JoFCYfVL4kTOMLKk0ZZxREIeA==} + peerDependencies: + vite: ^2.6.0 || ^3.0.0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0 + + vite-plugin-inspect@0.8.9: + resolution: {integrity: sha512-22/8qn+LYonzibb1VeFZmISdVao5kC22jmEKm24vfFE8siEn47EpVcCLYMv6iKOYMJfjSvSJfueOwcFCkUnV3A==} + engines: {node: '>=14'} + peerDependencies: + '@nuxt/kit': '*' + vite: ^3.1.0 || ^4.0.0 || ^5.0.0-0 || ^6.0.1 + peerDependenciesMeta: + '@nuxt/kit': + optional: true + + vite-plugin-vue-devtools@7.7.2: + resolution: {integrity: sha512-5V0UijQWiSBj32blkyPEqIbzc6HO9c1bwnBhx+ay2dzU0FakH+qMdNUT8nF9BvDE+i6I1U8CqCuJiO20vKEdQw==} + engines: {node: '>=v14.21.3'} + peerDependencies: + vite: ^3.1.0 || ^4.0.0-0 || ^5.0.0-0 || ^6.0.0-0 + + vite-plugin-vue-inspector@5.3.1: + resolution: {integrity: sha512-cBk172kZKTdvGpJuzCCLg8lJ909wopwsu3Ve9FsL1XsnLBiRT9U3MePcqrgGHgCX2ZgkqZmAGR8taxw+TV6s7A==} + peerDependencies: + vite: ^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 || ^6.0.0-0 + + vite@6.2.2: + resolution: {integrity: sha512-yW7PeMM+LkDzc7CgJuRLMW2Jz0FxMOsVJ8Lv3gpgW9WLcb9cTW+121UEr1hvmfR7w3SegR5ItvYyzVz1vxNJgQ==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 + jiti: '>=1.21.0' + less: '*' + lightningcss: ^1.21.0 + sass: '*' + sass-embedded: '*' + stylus: '*' + sugarss: '*' + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + + vscode-uri@3.1.0: + resolution: {integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==} + + vue-demi@0.14.10: + resolution: {integrity: sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==} + engines: {node: '>=12'} + hasBin: true + peerDependencies: + '@vue/composition-api': ^1.0.0-rc.1 + vue: ^3.0.0-0 || ^2.6.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + + vue-eslint-parser@10.1.1: + resolution: {integrity: sha512-bh2Z/Au5slro9QJ3neFYLanZtb1jH+W2bKqGHXAoYD4vZgNG3KeotL7JpPv5xzY4UXUXJl7TrIsnzECH63kd3Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + + vue-router@4.5.0: + resolution: {integrity: sha512-HDuk+PuH5monfNuY+ct49mNmkCRK4xJAV9Ts4z9UFc4rzdDnxQLyCMGGc8pKhZhHTVzfanpNwB/lwqevcBwI4w==} + peerDependencies: + vue: ^3.2.0 + + vue-tsc@2.2.8: + resolution: {integrity: sha512-jBYKBNFADTN+L+MdesNX/TB3XuDSyaWynKMDgR+yCSln0GQ9Tfb7JS2lr46s2LiFUT1WsmfWsSvIElyxzOPqcQ==} + hasBin: true + peerDependencies: + typescript: '>=5.0.0' + + vue@3.5.13: + resolution: {integrity: sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + which@5.0.0: + resolution: {integrity: sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==} + engines: {node: ^18.17.0 || >=20.5.0} + hasBin: true + + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + + xml-name-validator@4.0.0: + resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} + engines: {node: '>=12'} + + yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + + yoctocolors@2.1.1: + resolution: {integrity: sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ==} + engines: {node: '>=18'} + +snapshots: + + '@ampproject/remapping@2.3.0': + dependencies: + '@jridgewell/gen-mapping': 0.3.8 + '@jridgewell/trace-mapping': 0.3.25 + + '@antfu/utils@0.7.10': {} + + '@babel/code-frame@7.26.2': + dependencies: + '@babel/helper-validator-identifier': 7.25.9 + js-tokens: 4.0.0 + picocolors: 1.1.1 + + '@babel/compat-data@7.26.8': {} + + '@babel/core@7.26.10': + dependencies: + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.26.2 + '@babel/generator': 7.26.10 + '@babel/helper-compilation-targets': 7.26.5 + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.10) + '@babel/helpers': 7.26.10 + '@babel/parser': 7.26.10 + '@babel/template': 7.26.9 + '@babel/traverse': 7.26.10 + '@babel/types': 7.26.10 + convert-source-map: 2.0.0 + debug: 4.4.0 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/generator@7.26.10': + dependencies: + '@babel/parser': 7.26.10 + '@babel/types': 7.26.10 + '@jridgewell/gen-mapping': 0.3.8 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 3.1.0 + + '@babel/helper-annotate-as-pure@7.25.9': + dependencies: + '@babel/types': 7.26.10 + + '@babel/helper-compilation-targets@7.26.5': + dependencies: + '@babel/compat-data': 7.26.8 + '@babel/helper-validator-option': 7.25.9 + browserslist: 4.24.4 + lru-cache: 5.1.1 + semver: 6.3.1 + + '@babel/helper-create-class-features-plugin@7.26.9(@babel/core@7.26.10)': + dependencies: + '@babel/core': 7.26.10 + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-member-expression-to-functions': 7.25.9 + '@babel/helper-optimise-call-expression': 7.25.9 + '@babel/helper-replace-supers': 7.26.5(@babel/core@7.26.10) + '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + '@babel/traverse': 7.26.10 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/helper-member-expression-to-functions@7.25.9': + dependencies: + '@babel/traverse': 7.26.10 + '@babel/types': 7.26.10 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-imports@7.25.9': + dependencies: + '@babel/traverse': 7.26.10 + '@babel/types': 7.26.10 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.10)': + dependencies: + '@babel/core': 7.26.10 + '@babel/helper-module-imports': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 + '@babel/traverse': 7.26.10 + transitivePeerDependencies: + - supports-color + + '@babel/helper-optimise-call-expression@7.25.9': + dependencies: + '@babel/types': 7.26.10 + + '@babel/helper-plugin-utils@7.26.5': {} + + '@babel/helper-replace-supers@7.26.5(@babel/core@7.26.10)': + dependencies: + '@babel/core': 7.26.10 + '@babel/helper-member-expression-to-functions': 7.25.9 + '@babel/helper-optimise-call-expression': 7.25.9 + '@babel/traverse': 7.26.10 + transitivePeerDependencies: + - supports-color + + '@babel/helper-skip-transparent-expression-wrappers@7.25.9': + dependencies: + '@babel/traverse': 7.26.10 + '@babel/types': 7.26.10 + transitivePeerDependencies: + - supports-color + + '@babel/helper-string-parser@7.25.9': {} + + '@babel/helper-validator-identifier@7.25.9': {} + + '@babel/helper-validator-option@7.25.9': {} + + '@babel/helpers@7.26.10': + dependencies: + '@babel/template': 7.26.9 + '@babel/types': 7.26.10 + + '@babel/parser@7.26.10': + dependencies: + '@babel/types': 7.26.10 + + '@babel/plugin-proposal-decorators@7.25.9(@babel/core@7.26.10)': + dependencies: + '@babel/core': 7.26.10 + '@babel/helper-create-class-features-plugin': 7.26.9(@babel/core@7.26.10) + '@babel/helper-plugin-utils': 7.26.5 + '@babel/plugin-syntax-decorators': 7.25.9(@babel/core@7.26.10) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-syntax-decorators@7.25.9(@babel/core@7.26.10)': + dependencies: + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-syntax-import-attributes@7.26.0(@babel/core@7.26.10)': + dependencies: + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.26.10)': + dependencies: + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.26.10)': + dependencies: + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-syntax-typescript@7.25.9(@babel/core@7.26.10)': + dependencies: + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-typescript@7.26.8(@babel/core@7.26.10)': + dependencies: + '@babel/core': 7.26.10 + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-create-class-features-plugin': 7.26.9(@babel/core@7.26.10) + '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.10) + transitivePeerDependencies: + - supports-color + + '@babel/template@7.26.9': + dependencies: + '@babel/code-frame': 7.26.2 + '@babel/parser': 7.26.10 + '@babel/types': 7.26.10 + + '@babel/traverse@7.26.10': + dependencies: + '@babel/code-frame': 7.26.2 + '@babel/generator': 7.26.10 + '@babel/parser': 7.26.10 + '@babel/template': 7.26.9 + '@babel/types': 7.26.10 + debug: 4.4.0 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + + '@babel/types@7.26.10': + dependencies: + '@babel/helper-string-parser': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 + + '@ctrl/tinycolor@3.6.1': {} + + '@element-plus/icons-vue@2.3.1(vue@3.5.13(typescript@5.8.2))': + dependencies: + vue: 3.5.13(typescript@5.8.2) + + '@esbuild/aix-ppc64@0.25.1': + optional: true + + '@esbuild/android-arm64@0.25.1': + optional: true + + '@esbuild/android-arm@0.25.1': + optional: true + + '@esbuild/android-x64@0.25.1': + optional: true + + '@esbuild/darwin-arm64@0.25.1': + optional: true + + '@esbuild/darwin-x64@0.25.1': + optional: true + + '@esbuild/freebsd-arm64@0.25.1': + optional: true + + '@esbuild/freebsd-x64@0.25.1': + optional: true + + '@esbuild/linux-arm64@0.25.1': + optional: true + + '@esbuild/linux-arm@0.25.1': + optional: true + + '@esbuild/linux-ia32@0.25.1': + optional: true + + '@esbuild/linux-loong64@0.25.1': + optional: true + + '@esbuild/linux-mips64el@0.25.1': + optional: true + + '@esbuild/linux-ppc64@0.25.1': + optional: true + + '@esbuild/linux-riscv64@0.25.1': + optional: true + + '@esbuild/linux-s390x@0.25.1': + optional: true + + '@esbuild/linux-x64@0.25.1': + optional: true + + '@esbuild/netbsd-arm64@0.25.1': + optional: true + + '@esbuild/netbsd-x64@0.25.1': + optional: true + + '@esbuild/openbsd-arm64@0.25.1': + optional: true + + '@esbuild/openbsd-x64@0.25.1': + optional: true + + '@esbuild/sunos-x64@0.25.1': + optional: true + + '@esbuild/win32-arm64@0.25.1': + optional: true + + '@esbuild/win32-ia32@0.25.1': + optional: true + + '@esbuild/win32-x64@0.25.1': + optional: true + + '@eslint-community/eslint-utils@4.5.1(eslint@9.22.0(jiti@2.4.2))': + dependencies: + eslint: 9.22.0(jiti@2.4.2) + eslint-visitor-keys: 3.4.3 + + '@eslint-community/regexpp@4.12.1': {} + + '@eslint/config-array@0.19.2': + dependencies: + '@eslint/object-schema': 2.1.6 + debug: 4.4.0 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + '@eslint/config-helpers@0.1.0': {} + + '@eslint/core@0.12.0': + dependencies: + '@types/json-schema': 7.0.15 + + '@eslint/eslintrc@3.3.0': + dependencies: + ajv: 6.12.6 + debug: 4.4.0 + espree: 10.3.0 + globals: 14.0.0 + ignore: 5.3.2 + import-fresh: 3.3.1 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@eslint/js@9.22.0': {} + + '@eslint/object-schema@2.1.6': {} + + '@eslint/plugin-kit@0.2.7': + dependencies: + '@eslint/core': 0.12.0 + levn: 0.4.1 + + '@floating-ui/core@1.6.9': + dependencies: + '@floating-ui/utils': 0.2.9 + + '@floating-ui/dom@1.6.13': + dependencies: + '@floating-ui/core': 1.6.9 + '@floating-ui/utils': 0.2.9 + + '@floating-ui/utils@0.2.9': {} + + '@humanfs/core@0.19.1': {} + + '@humanfs/node@0.16.6': + dependencies: + '@humanfs/core': 0.19.1 + '@humanwhocodes/retry': 0.3.1 + + '@humanwhocodes/module-importer@1.0.1': {} + + '@humanwhocodes/retry@0.3.1': {} + + '@humanwhocodes/retry@0.4.2': {} + + '@jridgewell/gen-mapping@0.3.8': + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.25 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/set-array@1.2.1': {} + + '@jridgewell/sourcemap-codec@1.5.0': {} + + '@jridgewell/trace-mapping@0.3.25': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.19.1 + + '@pkgr/core@0.1.1': {} + + '@polka/url@1.0.0-next.28': {} + + '@rollup/pluginutils@5.1.4(rollup@4.35.0)': + dependencies: + '@types/estree': 1.0.6 + estree-walker: 2.0.2 + picomatch: 4.0.2 + optionalDependencies: + rollup: 4.35.0 + + '@rollup/rollup-android-arm-eabi@4.35.0': + optional: true + + '@rollup/rollup-android-arm64@4.35.0': + optional: true + + '@rollup/rollup-darwin-arm64@4.35.0': + optional: true + + '@rollup/rollup-darwin-x64@4.35.0': + optional: true + + '@rollup/rollup-freebsd-arm64@4.35.0': + optional: true + + '@rollup/rollup-freebsd-x64@4.35.0': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.35.0': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.35.0': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.35.0': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.35.0': + optional: true + + '@rollup/rollup-linux-loongarch64-gnu@4.35.0': + optional: true + + '@rollup/rollup-linux-powerpc64le-gnu@4.35.0': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.35.0': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.35.0': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.35.0': + optional: true + + '@rollup/rollup-linux-x64-musl@4.35.0': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.35.0': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.35.0': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.35.0': + optional: true + + '@sec-ant/readable-stream@0.4.1': {} + + '@sindresorhus/merge-streams@4.0.0': {} + + '@sxzz/popperjs-es@2.11.7': {} + + '@tsconfig/node22@22.0.0': {} + + '@types/estree@1.0.6': {} + + '@types/json-schema@7.0.15': {} + + '@types/lodash-es@4.17.12': + dependencies: + '@types/lodash': 4.17.16 + + '@types/lodash@4.17.16': {} + + '@types/node@22.13.10': + dependencies: + undici-types: 6.20.0 + + '@types/nprogress@0.2.3': {} + + '@types/qs@6.9.18': {} + + '@types/web-bluetooth@0.0.16': {} + + '@typescript-eslint/eslint-plugin@8.26.1(@typescript-eslint/parser@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)': + dependencies: + '@eslint-community/regexpp': 4.12.1 + '@typescript-eslint/parser': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/scope-manager': 8.26.1 + '@typescript-eslint/type-utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/visitor-keys': 8.26.1 + eslint: 9.22.0(jiti@2.4.2) + graphemer: 1.4.0 + ignore: 5.3.2 + natural-compare: 1.4.0 + ts-api-utils: 2.0.1(typescript@5.8.2) + typescript: 5.8.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)': + dependencies: + '@typescript-eslint/scope-manager': 8.26.1 + '@typescript-eslint/types': 8.26.1 + '@typescript-eslint/typescript-estree': 8.26.1(typescript@5.8.2) + '@typescript-eslint/visitor-keys': 8.26.1 + debug: 4.4.0 + eslint: 9.22.0(jiti@2.4.2) + typescript: 5.8.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/scope-manager@8.26.1': + dependencies: + '@typescript-eslint/types': 8.26.1 + '@typescript-eslint/visitor-keys': 8.26.1 + + '@typescript-eslint/type-utils@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)': + dependencies: + '@typescript-eslint/typescript-estree': 8.26.1(typescript@5.8.2) + '@typescript-eslint/utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + debug: 4.4.0 + eslint: 9.22.0(jiti@2.4.2) + ts-api-utils: 2.0.1(typescript@5.8.2) + typescript: 5.8.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/types@8.26.1': {} + + '@typescript-eslint/typescript-estree@8.26.1(typescript@5.8.2)': + dependencies: + '@typescript-eslint/types': 8.26.1 + '@typescript-eslint/visitor-keys': 8.26.1 + debug: 4.4.0 + fast-glob: 3.3.3 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.7.1 + ts-api-utils: 2.0.1(typescript@5.8.2) + typescript: 5.8.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)': + dependencies: + '@eslint-community/eslint-utils': 4.5.1(eslint@9.22.0(jiti@2.4.2)) + '@typescript-eslint/scope-manager': 8.26.1 + '@typescript-eslint/types': 8.26.1 + '@typescript-eslint/typescript-estree': 8.26.1(typescript@5.8.2) + eslint: 9.22.0(jiti@2.4.2) + typescript: 5.8.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/visitor-keys@8.26.1': + dependencies: + '@typescript-eslint/types': 8.26.1 + eslint-visitor-keys: 4.2.0 + + '@vitejs/plugin-vue-jsx@4.1.2(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2))(vue@3.5.13(typescript@5.8.2))': + dependencies: + '@babel/core': 7.26.10 + '@babel/plugin-transform-typescript': 7.26.8(@babel/core@7.26.10) + '@vue/babel-plugin-jsx': 1.4.0(@babel/core@7.26.10) + vite: 6.2.2(@types/node@22.13.10)(jiti@2.4.2) + vue: 3.5.13(typescript@5.8.2) + transitivePeerDependencies: + - supports-color + + '@vitejs/plugin-vue@5.2.2(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2))(vue@3.5.13(typescript@5.8.2))': + dependencies: + vite: 6.2.2(@types/node@22.13.10)(jiti@2.4.2) + vue: 3.5.13(typescript@5.8.2) + + '@volar/language-core@2.4.12': + dependencies: + '@volar/source-map': 2.4.12 + + '@volar/source-map@2.4.12': {} + + '@volar/typescript@2.4.12': + dependencies: + '@volar/language-core': 2.4.12 + path-browserify: 1.0.1 + vscode-uri: 3.1.0 + + '@vue/babel-helper-vue-transform-on@1.4.0': {} + + '@vue/babel-plugin-jsx@1.4.0(@babel/core@7.26.10)': + dependencies: + '@babel/helper-module-imports': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.10) + '@babel/template': 7.26.9 + '@babel/traverse': 7.26.10 + '@babel/types': 7.26.10 + '@vue/babel-helper-vue-transform-on': 1.4.0 + '@vue/babel-plugin-resolve-type': 1.4.0(@babel/core@7.26.10) + '@vue/shared': 3.5.13 + optionalDependencies: + '@babel/core': 7.26.10 + transitivePeerDependencies: + - supports-color + + '@vue/babel-plugin-resolve-type@1.4.0(@babel/core@7.26.10)': + dependencies: + '@babel/code-frame': 7.26.2 + '@babel/core': 7.26.10 + '@babel/helper-module-imports': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/parser': 7.26.10 + '@vue/compiler-sfc': 3.5.13 + transitivePeerDependencies: + - supports-color + + '@vue/compiler-core@3.5.13': + dependencies: + '@babel/parser': 7.26.10 + '@vue/shared': 3.5.13 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.2.1 + + '@vue/compiler-dom@3.5.13': + dependencies: + '@vue/compiler-core': 3.5.13 + '@vue/shared': 3.5.13 + + '@vue/compiler-sfc@3.5.13': + dependencies: + '@babel/parser': 7.26.10 + '@vue/compiler-core': 3.5.13 + '@vue/compiler-dom': 3.5.13 + '@vue/compiler-ssr': 3.5.13 + '@vue/shared': 3.5.13 + estree-walker: 2.0.2 + magic-string: 0.30.17 + postcss: 8.5.3 + source-map-js: 1.2.1 + + '@vue/compiler-ssr@3.5.13': + dependencies: + '@vue/compiler-dom': 3.5.13 + '@vue/shared': 3.5.13 + + '@vue/compiler-vue2@2.7.16': + dependencies: + de-indent: 1.0.2 + he: 1.2.0 + + '@vue/devtools-api@6.6.4': {} + + '@vue/devtools-api@7.7.2': + dependencies: + '@vue/devtools-kit': 7.7.2 + + '@vue/devtools-core@7.7.2(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2))(vue@3.5.13(typescript@5.8.2))': + dependencies: + '@vue/devtools-kit': 7.7.2 + '@vue/devtools-shared': 7.7.2 + mitt: 3.0.1 + nanoid: 5.1.4 + pathe: 2.0.3 + vite-hot-client: 0.2.4(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)) + vue: 3.5.13(typescript@5.8.2) + transitivePeerDependencies: + - vite + + '@vue/devtools-kit@7.7.2': + dependencies: + '@vue/devtools-shared': 7.7.2 + birpc: 0.2.19 + hookable: 5.5.3 + mitt: 3.0.1 + perfect-debounce: 1.0.0 + speakingurl: 14.0.1 + superjson: 2.2.2 + + '@vue/devtools-shared@7.7.2': + dependencies: + rfdc: 1.4.1 + + '@vue/eslint-config-prettier@10.2.0(eslint@9.22.0(jiti@2.4.2))(prettier@3.5.3)': + dependencies: + eslint: 9.22.0(jiti@2.4.2) + eslint-config-prettier: 10.1.1(eslint@9.22.0(jiti@2.4.2)) + eslint-plugin-prettier: 5.2.3(eslint-config-prettier@10.1.1(eslint@9.22.0(jiti@2.4.2)))(eslint@9.22.0(jiti@2.4.2))(prettier@3.5.3) + prettier: 3.5.3 + transitivePeerDependencies: + - '@types/eslint' + + '@vue/eslint-config-typescript@14.5.0(eslint-plugin-vue@10.0.0(eslint@9.22.0(jiti@2.4.2))(vue-eslint-parser@10.1.1(eslint@9.22.0(jiti@2.4.2))))(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)': + dependencies: + '@typescript-eslint/utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + eslint: 9.22.0(jiti@2.4.2) + eslint-plugin-vue: 10.0.0(eslint@9.22.0(jiti@2.4.2))(vue-eslint-parser@10.1.1(eslint@9.22.0(jiti@2.4.2))) + fast-glob: 3.3.3 + typescript-eslint: 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + vue-eslint-parser: 10.1.1(eslint@9.22.0(jiti@2.4.2)) + optionalDependencies: + typescript: 5.8.2 + transitivePeerDependencies: + - supports-color + + '@vue/language-core@2.2.8(typescript@5.8.2)': + dependencies: + '@volar/language-core': 2.4.12 + '@vue/compiler-dom': 3.5.13 + '@vue/compiler-vue2': 2.7.16 + '@vue/shared': 3.5.13 + alien-signals: 1.0.4 + minimatch: 9.0.5 + muggle-string: 0.4.1 + path-browserify: 1.0.1 + optionalDependencies: + typescript: 5.8.2 + + '@vue/reactivity@3.5.13': + dependencies: + '@vue/shared': 3.5.13 + + '@vue/runtime-core@3.5.13': + dependencies: + '@vue/reactivity': 3.5.13 + '@vue/shared': 3.5.13 + + '@vue/runtime-dom@3.5.13': + dependencies: + '@vue/reactivity': 3.5.13 + '@vue/runtime-core': 3.5.13 + '@vue/shared': 3.5.13 + csstype: 3.1.3 + + '@vue/server-renderer@3.5.13(vue@3.5.13(typescript@5.8.2))': + dependencies: + '@vue/compiler-ssr': 3.5.13 + '@vue/shared': 3.5.13 + vue: 3.5.13(typescript@5.8.2) + + '@vue/shared@3.5.13': {} + + '@vue/tsconfig@0.7.0(typescript@5.8.2)(vue@3.5.13(typescript@5.8.2))': + optionalDependencies: + typescript: 5.8.2 + vue: 3.5.13(typescript@5.8.2) + + '@vueuse/core@9.13.0(vue@3.5.13(typescript@5.8.2))': + dependencies: + '@types/web-bluetooth': 0.0.16 + '@vueuse/metadata': 9.13.0 + '@vueuse/shared': 9.13.0(vue@3.5.13(typescript@5.8.2)) + vue-demi: 0.14.10(vue@3.5.13(typescript@5.8.2)) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + + '@vueuse/metadata@9.13.0': {} + + '@vueuse/shared@9.13.0(vue@3.5.13(typescript@5.8.2))': + dependencies: + vue-demi: 0.14.10(vue@3.5.13(typescript@5.8.2)) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + + acorn-jsx@5.3.2(acorn@8.14.1): + dependencies: + acorn: 8.14.1 + + acorn@8.14.1: {} + + ajv@6.12.6: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + alien-signals@1.0.4: {} + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + ansi-styles@6.2.1: {} + + argparse@2.0.1: {} + + async-validator@4.2.5: {} + + asynckit@0.4.0: {} + + axios@1.8.3: + dependencies: + follow-redirects: 1.15.9 + form-data: 4.0.2 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + + balanced-match@1.0.2: {} + + birpc@0.2.19: {} + + boolbase@1.0.0: {} + + brace-expansion@1.1.11: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + brace-expansion@2.0.1: + dependencies: + balanced-match: 1.0.2 + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + browserslist@4.24.4: + dependencies: + caniuse-lite: 1.0.30001705 + electron-to-chromium: 1.5.119 + node-releases: 2.0.19 + update-browserslist-db: 1.1.3(browserslist@4.24.4) + + bundle-name@4.1.0: + dependencies: + run-applescript: 7.0.0 + + call-bind-apply-helpers@1.0.2: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + + call-bound@1.0.4: + dependencies: + call-bind-apply-helpers: 1.0.2 + get-intrinsic: 1.3.0 + + callsites@3.1.0: {} + + caniuse-lite@1.0.30001705: {} + + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.4: {} + + combined-stream@1.0.8: + dependencies: + delayed-stream: 1.0.0 + + concat-map@0.0.1: {} + + convert-source-map@2.0.0: {} + + copy-anything@3.0.5: + dependencies: + is-what: 4.1.16 + + cross-spawn@7.0.6: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + cssesc@3.0.0: {} + + csstype@3.1.3: {} + + dayjs@1.11.13: {} + + de-indent@1.0.2: {} + + debug@4.4.0: + dependencies: + ms: 2.1.3 + + deep-is@0.1.4: {} + + default-browser-id@5.0.0: {} + + default-browser@5.2.1: + dependencies: + bundle-name: 4.1.0 + default-browser-id: 5.0.0 + + define-lazy-prop@3.0.0: {} + + delayed-stream@1.0.0: {} + + dunder-proto@1.0.1: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-errors: 1.3.0 + gopd: 1.2.0 + + electron-to-chromium@1.5.119: {} + + element-plus@2.9.6(vue@3.5.13(typescript@5.8.2)): + dependencies: + '@ctrl/tinycolor': 3.6.1 + '@element-plus/icons-vue': 2.3.1(vue@3.5.13(typescript@5.8.2)) + '@floating-ui/dom': 1.6.13 + '@popperjs/core': '@sxzz/popperjs-es@2.11.7' + '@types/lodash': 4.17.16 + '@types/lodash-es': 4.17.12 + '@vueuse/core': 9.13.0(vue@3.5.13(typescript@5.8.2)) + async-validator: 4.2.5 + dayjs: 1.11.13 + escape-html: 1.0.3 + lodash: 4.17.21 + lodash-es: 4.17.21 + lodash-unified: 1.0.3(@types/lodash-es@4.17.12)(lodash-es@4.17.21)(lodash@4.17.21) + memoize-one: 6.0.0 + normalize-wheel-es: 1.2.0 + vue: 3.5.13(typescript@5.8.2) + transitivePeerDependencies: + - '@vue/composition-api' + + entities@4.5.0: {} + + error-stack-parser-es@0.1.5: {} + + es-define-property@1.0.1: {} + + es-errors@1.3.0: {} + + es-object-atoms@1.1.1: + dependencies: + es-errors: 1.3.0 + + es-set-tostringtag@2.1.0: + dependencies: + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + + esbuild@0.25.1: + optionalDependencies: + '@esbuild/aix-ppc64': 0.25.1 + '@esbuild/android-arm': 0.25.1 + '@esbuild/android-arm64': 0.25.1 + '@esbuild/android-x64': 0.25.1 + '@esbuild/darwin-arm64': 0.25.1 + '@esbuild/darwin-x64': 0.25.1 + '@esbuild/freebsd-arm64': 0.25.1 + '@esbuild/freebsd-x64': 0.25.1 + '@esbuild/linux-arm': 0.25.1 + '@esbuild/linux-arm64': 0.25.1 + '@esbuild/linux-ia32': 0.25.1 + '@esbuild/linux-loong64': 0.25.1 + '@esbuild/linux-mips64el': 0.25.1 + '@esbuild/linux-ppc64': 0.25.1 + '@esbuild/linux-riscv64': 0.25.1 + '@esbuild/linux-s390x': 0.25.1 + '@esbuild/linux-x64': 0.25.1 + '@esbuild/netbsd-arm64': 0.25.1 + '@esbuild/netbsd-x64': 0.25.1 + '@esbuild/openbsd-arm64': 0.25.1 + '@esbuild/openbsd-x64': 0.25.1 + '@esbuild/sunos-x64': 0.25.1 + '@esbuild/win32-arm64': 0.25.1 + '@esbuild/win32-ia32': 0.25.1 + '@esbuild/win32-x64': 0.25.1 + + escalade@3.2.0: {} + + escape-html@1.0.3: {} + + escape-string-regexp@4.0.0: {} + + eslint-config-prettier@10.1.1(eslint@9.22.0(jiti@2.4.2)): + dependencies: + eslint: 9.22.0(jiti@2.4.2) + + eslint-plugin-prettier@5.2.3(eslint-config-prettier@10.1.1(eslint@9.22.0(jiti@2.4.2)))(eslint@9.22.0(jiti@2.4.2))(prettier@3.5.3): + dependencies: + eslint: 9.22.0(jiti@2.4.2) + prettier: 3.5.3 + prettier-linter-helpers: 1.0.0 + synckit: 0.9.2 + optionalDependencies: + eslint-config-prettier: 10.1.1(eslint@9.22.0(jiti@2.4.2)) + + eslint-plugin-vue@10.0.0(eslint@9.22.0(jiti@2.4.2))(vue-eslint-parser@10.1.1(eslint@9.22.0(jiti@2.4.2))): + dependencies: + '@eslint-community/eslint-utils': 4.5.1(eslint@9.22.0(jiti@2.4.2)) + eslint: 9.22.0(jiti@2.4.2) + natural-compare: 1.4.0 + nth-check: 2.1.1 + postcss-selector-parser: 6.1.2 + semver: 7.7.1 + vue-eslint-parser: 10.1.1(eslint@9.22.0(jiti@2.4.2)) + xml-name-validator: 4.0.0 + + eslint-scope@8.3.0: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-visitor-keys@3.4.3: {} + + eslint-visitor-keys@4.2.0: {} + + eslint@9.22.0(jiti@2.4.2): + dependencies: + '@eslint-community/eslint-utils': 4.5.1(eslint@9.22.0(jiti@2.4.2)) + '@eslint-community/regexpp': 4.12.1 + '@eslint/config-array': 0.19.2 + '@eslint/config-helpers': 0.1.0 + '@eslint/core': 0.12.0 + '@eslint/eslintrc': 3.3.0 + '@eslint/js': 9.22.0 + '@eslint/plugin-kit': 0.2.7 + '@humanfs/node': 0.16.6 + '@humanwhocodes/module-importer': 1.0.1 + '@humanwhocodes/retry': 0.4.2 + '@types/estree': 1.0.6 + '@types/json-schema': 7.0.15 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.6 + debug: 4.4.0 + escape-string-regexp: 4.0.0 + eslint-scope: 8.3.0 + eslint-visitor-keys: 4.2.0 + espree: 10.3.0 + esquery: 1.6.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 8.0.0 + find-up: 5.0.0 + glob-parent: 6.0.2 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + json-stable-stringify-without-jsonify: 1.0.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.4 + optionalDependencies: + jiti: 2.4.2 + transitivePeerDependencies: + - supports-color + + espree@10.3.0: + dependencies: + acorn: 8.14.1 + acorn-jsx: 5.3.2(acorn@8.14.1) + eslint-visitor-keys: 4.2.0 + + esquery@1.6.0: + dependencies: + estraverse: 5.3.0 + + esrecurse@4.3.0: + dependencies: + estraverse: 5.3.0 + + estraverse@5.3.0: {} + + estree-walker@2.0.2: {} + + esutils@2.0.3: {} + + execa@9.5.2: + dependencies: + '@sindresorhus/merge-streams': 4.0.0 + cross-spawn: 7.0.6 + figures: 6.1.0 + get-stream: 9.0.1 + human-signals: 8.0.0 + is-plain-obj: 4.1.0 + is-stream: 4.0.1 + npm-run-path: 6.0.0 + pretty-ms: 9.2.0 + signal-exit: 4.1.0 + strip-final-newline: 4.0.0 + yoctocolors: 2.1.1 + + fast-deep-equal@3.1.3: {} + + fast-diff@1.3.0: {} + + fast-glob@3.3.3: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + + fast-json-stable-stringify@2.1.0: {} + + fast-levenshtein@2.0.6: {} + + fastq@1.19.1: + dependencies: + reusify: 1.1.0 + + figures@6.1.0: + dependencies: + is-unicode-supported: 2.1.0 + + file-entry-cache@8.0.0: + dependencies: + flat-cache: 4.0.1 + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + find-up@5.0.0: + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + + flat-cache@4.0.1: + dependencies: + flatted: 3.3.3 + keyv: 4.5.4 + + flatted@3.3.3: {} + + follow-redirects@1.15.9: {} + + form-data@4.0.2: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + es-set-tostringtag: 2.1.0 + mime-types: 2.1.35 + + fs-extra@11.3.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + + fsevents@2.3.3: + optional: true + + function-bind@1.1.2: {} + + gensync@1.0.0-beta.2: {} + + get-intrinsic@1.3.0: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + function-bind: 1.1.2 + get-proto: 1.0.1 + gopd: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.2 + math-intrinsics: 1.1.0 + + get-proto@1.0.1: + dependencies: + dunder-proto: 1.0.1 + es-object-atoms: 1.1.1 + + get-stream@9.0.1: + dependencies: + '@sec-ant/readable-stream': 0.4.1 + is-stream: 4.0.1 + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob-parent@6.0.2: + dependencies: + is-glob: 4.0.3 + + globals@11.12.0: {} + + globals@14.0.0: {} + + gopd@1.2.0: {} + + graceful-fs@4.2.11: {} + + graphemer@1.4.0: {} + + has-flag@4.0.0: {} + + has-symbols@1.1.0: {} + + has-tostringtag@1.0.2: + dependencies: + has-symbols: 1.1.0 + + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + + he@1.2.0: {} + + hookable@5.5.3: {} + + human-signals@8.0.0: {} + + ignore@5.3.2: {} + + import-fresh@3.3.1: + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + + imurmurhash@0.1.4: {} + + is-docker@3.0.0: {} + + is-extglob@2.1.1: {} + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-inside-container@1.0.0: + dependencies: + is-docker: 3.0.0 + + is-number@7.0.0: {} + + is-plain-obj@4.1.0: {} + + is-stream@4.0.1: {} + + is-unicode-supported@2.1.0: {} + + is-what@4.1.16: {} + + is-wsl@3.1.0: + dependencies: + is-inside-container: 1.0.0 + + isexe@2.0.0: {} + + isexe@3.1.1: {} + + jiti@2.4.2: {} + + js-tokens@4.0.0: {} + + js-yaml@4.1.0: + dependencies: + argparse: 2.0.1 + + jsesc@3.1.0: {} + + json-buffer@3.0.1: {} + + json-parse-even-better-errors@4.0.0: {} + + json-schema-traverse@0.4.1: {} + + json-stable-stringify-without-jsonify@1.0.1: {} + + json5@2.2.3: {} + + jsonfile@6.1.0: + dependencies: + universalify: 2.0.1 + optionalDependencies: + graceful-fs: 4.2.11 + + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 + + kolorist@1.8.0: {} + + levn@0.4.1: + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + + locate-path@6.0.0: + dependencies: + p-locate: 5.0.0 + + lodash-es@4.17.21: {} + + lodash-unified@1.0.3(@types/lodash-es@4.17.12)(lodash-es@4.17.21)(lodash@4.17.21): + dependencies: + '@types/lodash-es': 4.17.12 + lodash: 4.17.21 + lodash-es: 4.17.21 + + lodash.merge@4.6.2: {} + + lodash@4.17.21: {} + + lru-cache@5.1.1: + dependencies: + yallist: 3.1.1 + + magic-string@0.30.17: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + + math-intrinsics@1.1.0: {} + + memoize-one@6.0.0: {} + + memorystream@0.3.1: {} + + merge2@1.4.1: {} + + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + + mime-db@1.52.0: {} + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 + + minimatch@3.1.2: + dependencies: + brace-expansion: 1.1.11 + + minimatch@9.0.5: + dependencies: + brace-expansion: 2.0.1 + + mitt@3.0.1: {} + + moment@2.30.1: {} + + mrmime@2.0.1: {} + + ms@2.1.3: {} + + muggle-string@0.4.1: {} + + nanoid@3.3.10: {} + + nanoid@5.1.4: {} + + natural-compare@1.4.0: {} + + node-releases@2.0.19: {} + + normalize-wheel-es@1.2.0: {} + + npm-normalize-package-bin@4.0.0: {} + + npm-run-all2@7.0.2: + dependencies: + ansi-styles: 6.2.1 + cross-spawn: 7.0.6 + memorystream: 0.3.1 + minimatch: 9.0.5 + pidtree: 0.6.0 + read-package-json-fast: 4.0.0 + shell-quote: 1.8.2 + which: 5.0.0 + + npm-run-path@6.0.0: + dependencies: + path-key: 4.0.0 + unicorn-magic: 0.3.0 + + nth-check@2.1.1: + dependencies: + boolbase: 1.0.0 + + object-inspect@1.13.4: {} + + open@10.1.0: + dependencies: + default-browser: 5.2.1 + define-lazy-prop: 3.0.0 + is-inside-container: 1.0.0 + is-wsl: 3.1.0 + + optionator@0.9.4: + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.5 + + p-limit@3.1.0: + dependencies: + yocto-queue: 0.1.0 + + p-locate@5.0.0: + dependencies: + p-limit: 3.1.0 + + parent-module@1.0.1: + dependencies: + callsites: 3.1.0 + + parse-ms@4.0.0: {} + + path-browserify@1.0.1: {} + + path-exists@4.0.0: {} + + path-key@3.1.1: {} + + path-key@4.0.0: {} + + pathe@2.0.3: {} + + perfect-debounce@1.0.0: {} + + picocolors@1.1.1: {} + + picomatch@2.3.1: {} + + picomatch@4.0.2: {} + + pidtree@0.6.0: {} + + pinia@3.0.1(typescript@5.8.2)(vue@3.5.13(typescript@5.8.2)): + dependencies: + '@vue/devtools-api': 7.7.2 + vue: 3.5.13(typescript@5.8.2) + optionalDependencies: + typescript: 5.8.2 + + plus-pro-components@0.1.21(element-plus@2.9.6(vue@3.5.13(typescript@5.8.2)))(vue@3.5.13(typescript@5.8.2)): + dependencies: + '@element-plus/icons-vue': 2.3.1(vue@3.5.13(typescript@5.8.2)) + element-plus: 2.9.6(vue@3.5.13(typescript@5.8.2)) + lodash-es: 4.17.21 + sortablejs: 1.15.6 + vue: 3.5.13(typescript@5.8.2) + + postcss-selector-parser@6.1.2: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + postcss@8.5.3: + dependencies: + nanoid: 3.3.10 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + prelude-ls@1.2.1: {} + + prettier-linter-helpers@1.0.0: + dependencies: + fast-diff: 1.3.0 + + prettier@3.5.3: {} + + pretty-ms@9.2.0: + dependencies: + parse-ms: 4.0.0 + + proxy-from-env@1.1.0: {} + + punycode@2.3.1: {} + + qs@6.14.0: + dependencies: + side-channel: 1.1.0 + + queue-microtask@1.2.3: {} + + read-package-json-fast@4.0.0: + dependencies: + json-parse-even-better-errors: 4.0.0 + npm-normalize-package-bin: 4.0.0 + + resolve-from@4.0.0: {} + + reusify@1.1.0: {} + + rfdc@1.4.1: {} + + rollup@4.35.0: + dependencies: + '@types/estree': 1.0.6 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.35.0 + '@rollup/rollup-android-arm64': 4.35.0 + '@rollup/rollup-darwin-arm64': 4.35.0 + '@rollup/rollup-darwin-x64': 4.35.0 + '@rollup/rollup-freebsd-arm64': 4.35.0 + '@rollup/rollup-freebsd-x64': 4.35.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.35.0 + '@rollup/rollup-linux-arm-musleabihf': 4.35.0 + '@rollup/rollup-linux-arm64-gnu': 4.35.0 + '@rollup/rollup-linux-arm64-musl': 4.35.0 + '@rollup/rollup-linux-loongarch64-gnu': 4.35.0 + '@rollup/rollup-linux-powerpc64le-gnu': 4.35.0 + '@rollup/rollup-linux-riscv64-gnu': 4.35.0 + '@rollup/rollup-linux-s390x-gnu': 4.35.0 + '@rollup/rollup-linux-x64-gnu': 4.35.0 + '@rollup/rollup-linux-x64-musl': 4.35.0 + '@rollup/rollup-win32-arm64-msvc': 4.35.0 + '@rollup/rollup-win32-ia32-msvc': 4.35.0 + '@rollup/rollup-win32-x64-msvc': 4.35.0 + fsevents: 2.3.3 + + run-applescript@7.0.0: {} + + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + + semver@6.3.1: {} + + semver@7.7.1: {} + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + + shell-quote@1.8.2: {} + + side-channel-list@1.0.0: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + + side-channel-map@1.0.1: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 + + side-channel-weakmap@1.0.2: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 + side-channel-map: 1.0.1 + + side-channel@1.1.0: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + side-channel-list: 1.0.0 + side-channel-map: 1.0.1 + side-channel-weakmap: 1.0.2 + + signal-exit@4.1.0: {} + + sirv@3.0.1: + dependencies: + '@polka/url': 1.0.0-next.28 + mrmime: 2.0.1 + totalist: 3.0.1 + + sortablejs@1.15.6: {} + + source-map-js@1.2.1: {} + + speakingurl@14.0.1: {} + + strip-final-newline@4.0.0: {} + + strip-json-comments@3.1.1: {} + + superjson@2.2.2: + dependencies: + copy-anything: 3.0.5 + + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + + synckit@0.9.2: + dependencies: + '@pkgr/core': 0.1.1 + tslib: 2.8.1 + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + totalist@3.0.1: {} + + ts-api-utils@2.0.1(typescript@5.8.2): + dependencies: + typescript: 5.8.2 + + tslib@2.8.1: {} + + type-check@0.4.0: + dependencies: + prelude-ls: 1.2.1 + + typescript-eslint@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2): + dependencies: + '@typescript-eslint/eslint-plugin': 8.26.1(@typescript-eslint/parser@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/parser': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + eslint: 9.22.0(jiti@2.4.2) + typescript: 5.8.2 + transitivePeerDependencies: + - supports-color + + typescript@5.8.2: {} + + undici-types@6.20.0: {} + + unicorn-magic@0.3.0: {} + + universalify@2.0.1: {} + + update-browserslist-db@1.1.3(browserslist@4.24.4): + dependencies: + browserslist: 4.24.4 + escalade: 3.2.0 + picocolors: 1.1.1 + + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + + util-deprecate@1.0.2: {} + + vite-hot-client@0.2.4(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)): + dependencies: + vite: 6.2.2(@types/node@22.13.10)(jiti@2.4.2) + + vite-plugin-inspect@0.8.9(rollup@4.35.0)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)): + dependencies: + '@antfu/utils': 0.7.10 + '@rollup/pluginutils': 5.1.4(rollup@4.35.0) + debug: 4.4.0 + error-stack-parser-es: 0.1.5 + fs-extra: 11.3.0 + open: 10.1.0 + perfect-debounce: 1.0.0 + picocolors: 1.1.1 + sirv: 3.0.1 + vite: 6.2.2(@types/node@22.13.10)(jiti@2.4.2) + transitivePeerDependencies: + - rollup + - supports-color + + vite-plugin-vue-devtools@7.7.2(rollup@4.35.0)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2))(vue@3.5.13(typescript@5.8.2)): + dependencies: + '@vue/devtools-core': 7.7.2(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2))(vue@3.5.13(typescript@5.8.2)) + '@vue/devtools-kit': 7.7.2 + '@vue/devtools-shared': 7.7.2 + execa: 9.5.2 + sirv: 3.0.1 + vite: 6.2.2(@types/node@22.13.10)(jiti@2.4.2) + vite-plugin-inspect: 0.8.9(rollup@4.35.0)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)) + vite-plugin-vue-inspector: 5.3.1(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)) + transitivePeerDependencies: + - '@nuxt/kit' + - rollup + - supports-color + - vue + + vite-plugin-vue-inspector@5.3.1(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)): + dependencies: + '@babel/core': 7.26.10 + '@babel/plugin-proposal-decorators': 7.25.9(@babel/core@7.26.10) + '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.26.10) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.26.10) + '@babel/plugin-transform-typescript': 7.26.8(@babel/core@7.26.10) + '@vue/babel-plugin-jsx': 1.4.0(@babel/core@7.26.10) + '@vue/compiler-dom': 3.5.13 + kolorist: 1.8.0 + magic-string: 0.30.17 + vite: 6.2.2(@types/node@22.13.10)(jiti@2.4.2) + transitivePeerDependencies: + - supports-color + + vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2): + dependencies: + esbuild: 0.25.1 + postcss: 8.5.3 + rollup: 4.35.0 + optionalDependencies: + '@types/node': 22.13.10 + fsevents: 2.3.3 + jiti: 2.4.2 + + vscode-uri@3.1.0: {} + + vue-demi@0.14.10(vue@3.5.13(typescript@5.8.2)): + dependencies: + vue: 3.5.13(typescript@5.8.2) + + vue-eslint-parser@10.1.1(eslint@9.22.0(jiti@2.4.2)): + dependencies: + debug: 4.4.0 + eslint: 9.22.0(jiti@2.4.2) + eslint-scope: 8.3.0 + eslint-visitor-keys: 4.2.0 + espree: 10.3.0 + esquery: 1.6.0 + lodash: 4.17.21 + semver: 7.7.1 + transitivePeerDependencies: + - supports-color + + vue-router@4.5.0(vue@3.5.13(typescript@5.8.2)): + dependencies: + '@vue/devtools-api': 6.6.4 + vue: 3.5.13(typescript@5.8.2) + + vue-tsc@2.2.8(typescript@5.8.2): + dependencies: + '@volar/typescript': 2.4.12 + '@vue/language-core': 2.2.8(typescript@5.8.2) + typescript: 5.8.2 + + vue@3.5.13(typescript@5.8.2): + dependencies: + '@vue/compiler-dom': 3.5.13 + '@vue/compiler-sfc': 3.5.13 + '@vue/runtime-dom': 3.5.13 + '@vue/server-renderer': 3.5.13(vue@3.5.13(typescript@5.8.2)) + '@vue/shared': 3.5.13 + optionalDependencies: + typescript: 5.8.2 + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + which@5.0.0: + dependencies: + isexe: 3.1.1 + + word-wrap@1.2.5: {} + + xml-name-validator@4.0.0: {} + + yallist@3.1.1: {} + + yocto-queue@0.1.0: {} + + yoctocolors@2.1.1: {} diff --git a/AdminwebPages/adminpageView/public/favicon.ico b/AdminwebPages/adminpageView/public/favicon.ico new file mode 100644 index 0000000..df36fcf --- /dev/null +++ b/AdminwebPages/adminpageView/public/favicon.ico Binary files differ diff --git a/AdminwebPages/adminpageView/src/Api/EzApiBaseTypes.d.ts b/AdminwebPages/adminpageView/src/Api/EzApiBaseTypes.d.ts new file mode 100644 index 0000000..ec229c3 --- /dev/null +++ b/AdminwebPages/adminpageView/src/Api/EzApiBaseTypes.d.ts @@ -0,0 +1,112 @@ +/* + * @FilePath: EzApiBaseTypes.d.ts + * @Author: 灏忛渚� + * @Date: 2024-04-15 15:31:08 + * @LastEditors: Please set LastEditors + * @LastEditTime: 2025-02-06 12:53:28 + * Copyright: 2024 MinTinge CO.,LTD. All Rights Reserved. + * @Descripttion: 鍐欏叆浣犵殑鎻忚堪 + */ +/** + * 閫氱敤杩斿洖瀹氫箟 + */ +export interface EzResult<T> { + /** 鎴怑zCoreResult鍔熺姸鎬� */ + code: number; + /** 鏍囧噯鐘舵�� */ + statusCode?: number | null; + /** 鏄惁鎴愬姛 */ + success?: boolean; + data?: T | null; + /** 閿欒娑堟伅 */ + error?: any | null; + /** 娑堟伅 */ + message: string | null; + /** 闄勫姞鍊� */ + extras?: any | null; + /** 鏃堕棿鎴� */ + timestamp: number | null; +} + +/** + * 绫诲瀷鍩虹锛屼富瑕佹槸瀹氫箟鍒涘缓浜哄垱寤烘椂闂翠慨鏀逛汉淇敼鏃堕棿锛屽凡缁忓垹闄ゆ爣蹇� + */ +export interface EzBaseModel { + /** + * 鍒涘缓浜� + */ + createBy?: string | null; + /** + * 鍒涘缓鏃堕棿 + */ + createTime?: Date | null; + /** + * 淇敼鏃堕棿 + */ + upDataTime?: Date | null; + /** + * 淇敼浜� + */ + upDataBy?: string | null; + /** + * 鍒犻櫎鏍囧織 + */ + isDeleted?: boolean; + /** 鏄惁鏈夋晥 */ + isEN?: boolean; + /** + * 鎺掑簭 + */ + sort?: number | null; +} + +/** 椤甸潰鎼滅储鍩虹被 */ +export interface EzPageModel { + /** 椤甸潰鍙�*/ + pageIndex: number; + /** 姣忛〉琛屽ソ璁剧疆 */ + pageSize: number; + /** 鎬昏鏁� */ + totalCount?: number; +} +/**boolean绫诲瀷杩斿洖閫氱敤瀹氫箟 */ +export interface BoolResult extends EzResult<boolean> {} +/**boolean绫诲瀷杩斿洖閫氱敤瀹氫箟 */ +export interface StringResult extends EzResult<string> {} +/** 鍖哄煙鍧愭爣闆嗗悎 */ +export interface ZoneInfo { + /** 鍖哄煙鍧愭爣琛ㄩ泦鍚� */ + coords: Array<GeoCoordinate>; + /** 涓績鐐瑰潗鏍� */ + centrecoord?: GeoCoordinate; + /** 鍦板潃 */ + address?: string; + /** id */ + id?: string; +} +/** 缁忕含搴﹀潗鏍� */ +export interface GeoCoordinate { + /** 绾害 */ + latitude: number; + /** 缁忓害 */ + longitude: number; +} + +/** 鏋氫妇灞炴�у垪琛ㄧ被鍨� */ +export interface EmunPrList { + /** key */ + key?: string; + /** 鍊� */ + value?: number; + /** 鎻忚堪 */ + description?: string; +} +/**閫氱敤鏋氫妇杩斿洖灞炴�� */ +export interface EmunPrResult extends EzResult<EmunPrList[]> {} + + +/** 鎺掑簭鏋氫妇 */ +export interface EzSort { + prop: string; + order: string; // 'asc' 鎴� 'desc' +} diff --git a/AdminwebPages/adminpageView/src/Api/apis.ts b/AdminwebPages/adminpageView/src/Api/apis.ts new file mode 100644 index 0000000..e1fac99 --- /dev/null +++ b/AdminwebPages/adminpageView/src/Api/apis.ts @@ -0,0 +1,220 @@ + +import type { EzResult } from "./EzApiBaseTypes"; +import axios from "axios"; + + /** 鑾峰彇DFlFunInfo鍒楄〃 */ + export const GetTransferOrder=(data:Request) => { + + + return axios.post<EzResult<RetPageDataWeChatTransferOrder>>("https://yocaisim.51zhengcai.com/api/UserTransfer/GetTransferOrder", data); + }; + +/** + * SSPageByWhereOrder锛屾牴鎹畐here鏌ヨ鏉′欢鍜宱rder鎺掑簭鑾峰彇鍒楄〃 + */ +export interface Request { + order?: SSOrder; + page?: PageModel; + /** + * 鍒ゆ柇鏉′欢 蹇呴』鏄痡son鏍煎紡鐨勫瓧绗︿覆{xxx:ddd} + */ + where?: object | string; +} + +/** +* SSOrder锛屾帓搴忔柟寮� +*/ +export interface SSOrder { + des?: OrderByType; + /** + * 灞炴�у悕绉� + */ + name?: null | string; +} + +/** +* OrderByType +*/ +export enum OrderByType { + Asc = "Asc", + Desc = "Desc", +} + +/** +* PageModel +*/ +export interface PageModel { + pageIndex?: number; + pageSize?: number; + totalCount?: number; +} + + +/** +* RetPageData_WeChatTransferOrder锛岄�氱敤杩斿洖鍙傛暟 +*/ +export interface RetPageDataWeChatTransferOrder { + /** + * 鏁版嵁 + */ + data?: WeChatTransferOrder[] | null; + page?: PageModel; +} + +/** +* WeChatTransferOrder锛岃浆璐﹀崟璐︽ā鍨� +*/ +export interface WeChatTransferOrder { + /** + * 閲嶆柊鏀粯璁㈠崟鍒楄〃 + */ + agWeChatTransferOrders?: WeChatTransferOrder[] | null; + /** + * 鑾峰彇鎴栬缃井淇℃壒娆″崟鍙枫�� + */ + batchId?: null | string; + /** + * 鑾峰彇鎴栬缃壒娆$殑鍚嶇О銆� + * 绀轰緥: "2019骞�1鏈堟繁鍦冲垎閮ㄦ姤閿�鍗�" + */ + batchName?: null | string; + /** + * 鑾峰彇鎴栬缃壒娆$殑澶囨敞銆� + * 绀轰緥: "2019骞�1鏈堟繁鍦冲垎閮ㄦ姤閿�鍗�" + */ + batchRemark?: null | string; + /** + * 鑾峰彇鎴栬缃壒娆$姸鎬併�� + */ + batchStatus?: null | string; + /** + * 鑾峰彇鎴栬缃叧闂壒娆$殑鍘熷洜銆� + * 绀轰緥: "OVERDUE_CLOSE" + */ + closeReason?: null | string; + /** + * 鍒涘缓浜� + */ + createBy?: null | string; + /** + * 鍒涘缓鏃堕棿 + */ + createTime?: Date | null; + /** + * 閿欒鏍囪瘑 + */ + errorCode?: null | string; + + /** + * 閿欒娑堟伅 + */ + errorMsg?: null | string; + /** + * 鑾峰彇鎴栬缃壒娆′腑鐨勫け璐ユ�婚噾棰濄�� + * 绀轰緥: 100000 + */ + failAmount?: number | null; + /** + * 鑾峰彇鎴栬缃壒娆′腑鐨勫け璐ラ」鐩暟銆� + * 绀轰緥: 1 + */ + failNum?: number | null; + /** + * ID + */ + id?: number; + /** + * 鏄惁鍒犻櫎 + */ + isDeleted?: boolean; + /** + * 鏄惁鏈夋晥 + */ + isEn?: boolean; + /** + * 鏄惁宸茬粡瀹屾垚澶勭悊 榛樿鏈鐞� + */ + isSetOK?: boolean; + /** + * 鑾峰彇鎴栬缃晢鎴锋壒娆″崟鍙枫�� + */ + outBatchNumber?: null | string; + /** + * 鏍囨敞 + */ + remake?: null | string; + /** + * 鍐嶆鍙戣捣鏃� 鐨勬弿杩� + */ + remakeDes?: null | string; + /** + * 鎺掑簭 + */ + sort?: number | null; + /** + * 鑾峰彇鎴栬缃壒娆′腑鐨勬垚鍔熸�婚噾棰濄�� + * 绀轰緥: 3900000 + */ + successAmount?: number | null; + /** + * 鑾峰彇鎴栬缃壒娆′腑鐨勬垚鍔熼」鐩暟銆� + * 绀轰緥: 199 + */ + successNum?: number | null; + /** + * 绉熸埛 + */ + tenantID?: number | null; + /** + * 鑾峰彇鎴栬缃壒娆′腑鐨勬�婚噾棰濄�� + * 绀轰緥: 4000000 + */ + totalAmount?: number | null; + /** + * 鑾峰彇鎴栬缃壒娆′腑鐨勯」鐩�绘暟銆� + * 绀轰緥: 200 + */ + totalNum?: number | null; + + /** + * 鑾峰彇鎴栬缃浆璐﹀満鏅爣璇嗙銆� + * 绀轰緥: "1000" + */ + transferSceneId?: null | string; + /** + * 淇敼浜� + */ + upDataBy?: null | string; + /**鏃堕棿绛涢�夋暟缁� */ + DataTime?:Date[]|string; + /** + * 淇敼鏃堕棿 + */ + upDataTime?: string | null; + + /** + * 鐢ㄦ埛ID銆� + */ + userID?: number; + /** + * 鐢ㄦ埛韬唤璇� + */ + userIDCode?: null | string; + /** + * 鍚嶅瓧 + */ + userName?: null | string; + /** + * 鏄惁閲嶆柊鍙戣捣鏀粯锛屽綋鏀粯澶辫触鍚庯紝瓒呭嚭閲嶆柊鐨勬敮浠樺崟澶辫触鍚庯紝闇�瑕侀噸鏂版洿鎹㈠崟鍙烽噸鏂板彂璧锋柊鐨勬敮浠樿姹傦紝閲嶆柊鍙戣捣鏀粯璇锋眰鍗� + */ + weChatTransferOrderPrId?: number | null; + + YiTiXianGz?:number + + ZhongGz?:number + itCode?:string|null +} + + + + diff --git a/AdminwebPages/adminpageView/src/App.vue b/AdminwebPages/adminpageView/src/App.vue new file mode 100644 index 0000000..a0dda38 --- /dev/null +++ b/AdminwebPages/adminpageView/src/App.vue @@ -0,0 +1,27 @@ +<!-- + * @FilePath: App.vue + * @Author: 灏忛渚� + * @Date: 2025-03-17 09:36:48 + * @LastEditors: Please set LastEditors + * @LastEditTime: 2025-03-18 10:33:24 + * Copyright: 2025 MinTinge CO.,LTD. All Rights Reserved. + * @Descripttion: 鍐欏叆浣犵殑鎻忚堪 +--> +<script setup lang="ts"> +import { RouterLink, RouterView } from 'vue-router' +</script> + +<template> + +<div style="width: 100%; background-color: burlywood; height: 100%;"> + <RouterView /> +</div> + + + + +</template> + +<style lang="scss"> + +</style> diff --git a/AdminwebPages/adminpageView/src/assets/base.css b/AdminwebPages/adminpageView/src/assets/base.css new file mode 100644 index 0000000..8816868 --- /dev/null +++ b/AdminwebPages/adminpageView/src/assets/base.css @@ -0,0 +1,86 @@ +/* color palette from <https://github.com/vuejs/theme> */ +:root { + --vt-c-white: #ffffff; + --vt-c-white-soft: #f8f8f8; + --vt-c-white-mute: #f2f2f2; + + --vt-c-black: #181818; + --vt-c-black-soft: #222222; + --vt-c-black-mute: #282828; + + --vt-c-indigo: #2c3e50; + + --vt-c-divider-light-1: rgba(60, 60, 60, 0.29); + --vt-c-divider-light-2: rgba(60, 60, 60, 0.12); + --vt-c-divider-dark-1: rgba(84, 84, 84, 0.65); + --vt-c-divider-dark-2: rgba(84, 84, 84, 0.48); + + --vt-c-text-light-1: var(--vt-c-indigo); + --vt-c-text-light-2: rgba(60, 60, 60, 0.66); + --vt-c-text-dark-1: var(--vt-c-white); + --vt-c-text-dark-2: rgba(235, 235, 235, 0.64); +} + +/* semantic color variables for this project */ +:root { + --color-background: var(--vt-c-white); + --color-background-soft: var(--vt-c-white-soft); + --color-background-mute: var(--vt-c-white-mute); + + --color-border: var(--vt-c-divider-light-2); + --color-border-hover: var(--vt-c-divider-light-1); + + --color-heading: var(--vt-c-text-light-1); + --color-text: var(--vt-c-text-light-1); + + --section-gap: 160px; +} + +@media (prefers-color-scheme: dark) { + :root { + --color-background: var(--vt-c-black); + --color-background-soft: var(--vt-c-black-soft); + --color-background-mute: var(--vt-c-black-mute); + + --color-border: var(--vt-c-divider-dark-2); + --color-border-hover: var(--vt-c-divider-dark-1); + + --color-heading: var(--vt-c-text-dark-1); + --color-text: var(--vt-c-text-dark-2); + } +} + +*, +*::before, +*::after { + box-sizing: border-box; + margin: 0; + font-weight: normal; +} + +body { + min-height: 100vh; + color: var(--color-text); + background: var(--color-background); + transition: + color 0.5s, + background-color 0.5s; + line-height: 1.6; + font-family: + Inter, + -apple-system, + BlinkMacSystemFont, + 'Segoe UI', + Roboto, + Oxygen, + Ubuntu, + Cantarell, + 'Fira Sans', + 'Droid Sans', + 'Helvetica Neue', + sans-serif; + font-size: 15px; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} diff --git a/AdminwebPages/adminpageView/src/assets/logo.svg b/AdminwebPages/adminpageView/src/assets/logo.svg new file mode 100644 index 0000000..7565660 --- /dev/null +++ b/AdminwebPages/adminpageView/src/assets/logo.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 261.76 226.69"><path d="M161.096.001l-30.225 52.351L100.647.001H-.005l130.877 226.688L261.749.001z" fill="#41b883"/><path d="M161.096.001l-30.225 52.351L100.647.001H52.346l78.526 136.01L209.398.001z" fill="#34495e"/></svg> diff --git a/AdminwebPages/adminpageView/src/assets/main.css b/AdminwebPages/adminpageView/src/assets/main.css new file mode 100644 index 0000000..9af2a06 --- /dev/null +++ b/AdminwebPages/adminpageView/src/assets/main.css @@ -0,0 +1,16 @@ +@import './base.css'; +*{ + margin: 0 ; + padding: 0; +} +#app { + width: 100vw; + height: 100vh; + margin: 10px 0px 0px 0px ; + + padding: 2px; + font-weight: normal; +} + + + diff --git a/AdminwebPages/adminpageView/src/components/HelloWorld.vue b/AdminwebPages/adminpageView/src/components/HelloWorld.vue new file mode 100644 index 0000000..d174cf8 --- /dev/null +++ b/AdminwebPages/adminpageView/src/components/HelloWorld.vue @@ -0,0 +1,41 @@ +<script setup lang="ts"> +defineProps<{ + msg: string +}>() +</script> + +<template> + <div class="greetings"> + <h1 class="green">{{ msg }}</h1> + <h3> + You鈥檝e successfully created a project with + <a href="https://vite.dev/" target="_blank" rel="noopener">Vite</a> + + <a href="https://vuejs.org/" target="_blank" rel="noopener">Vue 3</a>. What's next? + </h3> + </div> +</template> + +<style scoped> +h1 { + font-weight: 500; + font-size: 2.6rem; + position: relative; + top: -10px; +} + +h3 { + font-size: 1.2rem; +} + +.greetings h1, +.greetings h3 { + text-align: center; +} + +@media (min-width: 1024px) { + .greetings h1, + .greetings h3 { + text-align: left; + } +} +</style> diff --git a/AdminwebPages/adminpageView/src/components/TheWelcome.vue b/AdminwebPages/adminpageView/src/components/TheWelcome.vue new file mode 100644 index 0000000..ae6eec3 --- /dev/null +++ b/AdminwebPages/adminpageView/src/components/TheWelcome.vue @@ -0,0 +1,94 @@ +<script setup lang="ts"> +import WelcomeItem from './WelcomeItem.vue' +import DocumentationIcon from './icons/IconDocumentation.vue' +import ToolingIcon from './icons/IconTooling.vue' +import EcosystemIcon from './icons/IconEcosystem.vue' +import CommunityIcon from './icons/IconCommunity.vue' +import SupportIcon from './icons/IconSupport.vue' + +const openReadmeInEditor = () => fetch('/__open-in-editor?file=README.md') +</script> + +<template> + <WelcomeItem> + <template #icon> + <DocumentationIcon /> + </template> + <template #heading>Documentation</template> + + Vue鈥檚 + <a href="https://vuejs.org/" target="_blank" rel="noopener">official documentation</a> + provides you with all information you need to get started. + </WelcomeItem> + + <WelcomeItem> + <template #icon> + <ToolingIcon /> + </template> + <template #heading>Tooling</template> + + This project is served and bundled with + <a href="https://vite.dev/guide/features.html" target="_blank" rel="noopener">Vite</a>. The + recommended IDE setup is + <a href="https://code.visualstudio.com/" target="_blank" rel="noopener">VSCode</a> + + + <a href="https://github.com/johnsoncodehk/volar" target="_blank" rel="noopener">Volar</a>. If + you need to test your components and web pages, check out + <a href="https://vitest.dev/" target="_blank" rel="noopener">Vitest</a> + and + <a href="https://www.cypress.io/" target="_blank" rel="noopener">Cypress</a> + / + <a href="https://playwright.dev/" target="_blank" rel="noopener">Playwright</a>. + + <br /> + + More instructions are available in + <a href="javascript:void(0)" @click="openReadmeInEditor"><code>README.md</code></a + >. + </WelcomeItem> + + <WelcomeItem> + <template #icon> + <EcosystemIcon /> + </template> + <template #heading>Ecosystem</template> + + Get official tools and libraries for your project: + <a href="https://pinia.vuejs.org/" target="_blank" rel="noopener">Pinia</a>, + <a href="https://router.vuejs.org/" target="_blank" rel="noopener">Vue Router</a>, + <a href="https://test-utils.vuejs.org/" target="_blank" rel="noopener">Vue Test Utils</a>, and + <a href="https://github.com/vuejs/devtools" target="_blank" rel="noopener">Vue Dev Tools</a>. If + you need more resources, we suggest paying + <a href="https://github.com/vuejs/awesome-vue" target="_blank" rel="noopener">Awesome Vue</a> + a visit. + </WelcomeItem> + + <WelcomeItem> + <template #icon> + <CommunityIcon /> + </template> + <template #heading>Community</template> + + Got stuck? Ask your question on + <a href="https://chat.vuejs.org" target="_blank" rel="noopener">Vue Land</a> + (our official Discord server), or + <a href="https://stackoverflow.com/questions/tagged/vue.js" target="_blank" rel="noopener" + >StackOverflow</a + >. You should also follow the official + <a href="https://bsky.app/profile/vuejs.org" target="_blank" rel="noopener">@vuejs.org</a> + Bluesky account or the + <a href="https://x.com/vuejs" target="_blank" rel="noopener">@vuejs</a> + X account for latest news in the Vue world. + </WelcomeItem> + + <WelcomeItem> + <template #icon> + <SupportIcon /> + </template> + <template #heading>Support Vue</template> + + As an independent project, Vue relies on community backing for its sustainability. You can help + us by + <a href="https://vuejs.org/sponsor/" target="_blank" rel="noopener">becoming a sponsor</a>. + </WelcomeItem> +</template> diff --git a/AdminwebPages/adminpageView/src/components/WelcomeItem.vue b/AdminwebPages/adminpageView/src/components/WelcomeItem.vue new file mode 100644 index 0000000..6d7086a --- /dev/null +++ b/AdminwebPages/adminpageView/src/components/WelcomeItem.vue @@ -0,0 +1,87 @@ +<template> + <div class="item"> + <i> + <slot name="icon"></slot> + </i> + <div class="details"> + <h3> + <slot name="heading"></slot> + </h3> + <slot></slot> + </div> + </div> +</template> + +<style scoped> +.item { + margin-top: 2rem; + display: flex; + position: relative; +} + +.details { + flex: 1; + margin-left: 1rem; +} + +i { + display: flex; + place-items: center; + place-content: center; + width: 32px; + height: 32px; + + color: var(--color-text); +} + +h3 { + font-size: 1.2rem; + font-weight: 500; + margin-bottom: 0.4rem; + color: var(--color-heading); +} + +@media (min-width: 1024px) { + .item { + margin-top: 0; + padding: 0.4rem 0 1rem calc(var(--section-gap) / 2); + } + + i { + top: calc(50% - 25px); + left: -26px; + position: absolute; + border: 1px solid var(--color-border); + background: var(--color-background); + border-radius: 8px; + width: 50px; + height: 50px; + } + + .item:before { + content: ' '; + border-left: 1px solid var(--color-border); + position: absolute; + left: 0; + bottom: calc(50% + 25px); + height: calc(50% - 25px); + } + + .item:after { + content: ' '; + border-left: 1px solid var(--color-border); + position: absolute; + left: 0; + top: calc(50% + 25px); + height: calc(50% - 25px); + } + + .item:first-of-type:before { + display: none; + } + + .item:last-of-type:after { + display: none; + } +} +</style> diff --git a/AdminwebPages/adminpageView/src/components/icons/IconCommunity.vue b/AdminwebPages/adminpageView/src/components/icons/IconCommunity.vue new file mode 100644 index 0000000..2dc8b05 --- /dev/null +++ b/AdminwebPages/adminpageView/src/components/icons/IconCommunity.vue @@ -0,0 +1,7 @@ +<template> + <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="currentColor"> + <path + d="M15 4a1 1 0 1 0 0 2V4zm0 11v-1a1 1 0 0 0-1 1h1zm0 4l-.707.707A1 1 0 0 0 16 19h-1zm-4-4l.707-.707A1 1 0 0 0 11 14v1zm-4.707-1.293a1 1 0 0 0-1.414 1.414l1.414-1.414zm-.707.707l-.707-.707.707.707zM9 11v-1a1 1 0 0 0-.707.293L9 11zm-4 0h1a1 1 0 0 0-1-1v1zm0 4H4a1 1 0 0 0 1.707.707L5 15zm10-9h2V4h-2v2zm2 0a1 1 0 0 1 1 1h2a3 3 0 0 0-3-3v2zm1 1v6h2V7h-2zm0 6a1 1 0 0 1-1 1v2a3 3 0 0 0 3-3h-2zm-1 1h-2v2h2v-2zm-3 1v4h2v-4h-2zm1.707 3.293l-4-4-1.414 1.414 4 4 1.414-1.414zM11 14H7v2h4v-2zm-4 0c-.276 0-.525-.111-.707-.293l-1.414 1.414C5.42 15.663 6.172 16 7 16v-2zm-.707 1.121l3.414-3.414-1.414-1.414-3.414 3.414 1.414 1.414zM9 12h4v-2H9v2zm4 0a3 3 0 0 0 3-3h-2a1 1 0 0 1-1 1v2zm3-3V3h-2v6h2zm0-6a3 3 0 0 0-3-3v2a1 1 0 0 1 1 1h2zm-3-3H3v2h10V0zM3 0a3 3 0 0 0-3 3h2a1 1 0 0 1 1-1V0zM0 3v6h2V3H0zm0 6a3 3 0 0 0 3 3v-2a1 1 0 0 1-1-1H0zm3 3h2v-2H3v2zm1-1v4h2v-4H4zm1.707 4.707l.586-.586-1.414-1.414-.586.586 1.414 1.414z" + /> + </svg> +</template> diff --git a/AdminwebPages/adminpageView/src/components/icons/IconDocumentation.vue b/AdminwebPages/adminpageView/src/components/icons/IconDocumentation.vue new file mode 100644 index 0000000..6d4791c --- /dev/null +++ b/AdminwebPages/adminpageView/src/components/icons/IconDocumentation.vue @@ -0,0 +1,7 @@ +<template> + <svg xmlns="http://www.w3.org/2000/svg" width="20" height="17" fill="currentColor"> + <path + d="M11 2.253a1 1 0 1 0-2 0h2zm-2 13a1 1 0 1 0 2 0H9zm.447-12.167a1 1 0 1 0 1.107-1.666L9.447 3.086zM1 2.253L.447 1.42A1 1 0 0 0 0 2.253h1zm0 13H0a1 1 0 0 0 1.553.833L1 15.253zm8.447.833a1 1 0 1 0 1.107-1.666l-1.107 1.666zm0-14.666a1 1 0 1 0 1.107 1.666L9.447 1.42zM19 2.253h1a1 1 0 0 0-.447-.833L19 2.253zm0 13l-.553.833A1 1 0 0 0 20 15.253h-1zm-9.553-.833a1 1 0 1 0 1.107 1.666L9.447 14.42zM9 2.253v13h2v-13H9zm1.553-.833C9.203.523 7.42 0 5.5 0v2c1.572 0 2.961.431 3.947 1.086l1.107-1.666zM5.5 0C3.58 0 1.797.523.447 1.42l1.107 1.666C2.539 2.431 3.928 2 5.5 2V0zM0 2.253v13h2v-13H0zm1.553 13.833C2.539 15.431 3.928 15 5.5 15v-2c-1.92 0-3.703.523-5.053 1.42l1.107 1.666zM5.5 15c1.572 0 2.961.431 3.947 1.086l1.107-1.666C9.203 13.523 7.42 13 5.5 13v2zm5.053-11.914C11.539 2.431 12.928 2 14.5 2V0c-1.92 0-3.703.523-5.053 1.42l1.107 1.666zM14.5 2c1.573 0 2.961.431 3.947 1.086l1.107-1.666C18.203.523 16.421 0 14.5 0v2zm3.5.253v13h2v-13h-2zm1.553 12.167C18.203 13.523 16.421 13 14.5 13v2c1.573 0 2.961.431 3.947 1.086l1.107-1.666zM14.5 13c-1.92 0-3.703.523-5.053 1.42l1.107 1.666C11.539 15.431 12.928 15 14.5 15v-2z" + /> + </svg> +</template> diff --git a/AdminwebPages/adminpageView/src/components/icons/IconEcosystem.vue b/AdminwebPages/adminpageView/src/components/icons/IconEcosystem.vue new file mode 100644 index 0000000..c3a4f07 --- /dev/null +++ b/AdminwebPages/adminpageView/src/components/icons/IconEcosystem.vue @@ -0,0 +1,7 @@ +<template> + <svg xmlns="http://www.w3.org/2000/svg" width="18" height="20" fill="currentColor"> + <path + d="M11.447 8.894a1 1 0 1 0-.894-1.789l.894 1.789zm-2.894-.789a1 1 0 1 0 .894 1.789l-.894-1.789zm0 1.789a1 1 0 1 0 .894-1.789l-.894 1.789zM7.447 7.106a1 1 0 1 0-.894 1.789l.894-1.789zM10 9a1 1 0 1 0-2 0h2zm-2 2.5a1 1 0 1 0 2 0H8zm9.447-5.606a1 1 0 1 0-.894-1.789l.894 1.789zm-2.894-.789a1 1 0 1 0 .894 1.789l-.894-1.789zm2 .789a1 1 0 1 0 .894-1.789l-.894 1.789zm-1.106-2.789a1 1 0 1 0-.894 1.789l.894-1.789zM18 5a1 1 0 1 0-2 0h2zm-2 2.5a1 1 0 1 0 2 0h-2zm-5.447-4.606a1 1 0 1 0 .894-1.789l-.894 1.789zM9 1l.447-.894a1 1 0 0 0-.894 0L9 1zm-2.447.106a1 1 0 1 0 .894 1.789l-.894-1.789zm-6 3a1 1 0 1 0 .894 1.789L.553 4.106zm2.894.789a1 1 0 1 0-.894-1.789l.894 1.789zm-2-.789a1 1 0 1 0-.894 1.789l.894-1.789zm1.106 2.789a1 1 0 1 0 .894-1.789l-.894 1.789zM2 5a1 1 0 1 0-2 0h2zM0 7.5a1 1 0 1 0 2 0H0zm8.553 12.394a1 1 0 1 0 .894-1.789l-.894 1.789zm-1.106-2.789a1 1 0 1 0-.894 1.789l.894-1.789zm1.106 1a1 1 0 1 0 .894 1.789l-.894-1.789zm2.894.789a1 1 0 1 0-.894-1.789l.894 1.789zM8 19a1 1 0 1 0 2 0H8zm2-2.5a1 1 0 1 0-2 0h2zm-7.447.394a1 1 0 1 0 .894-1.789l-.894 1.789zM1 15H0a1 1 0 0 0 .553.894L1 15zm1-2.5a1 1 0 1 0-2 0h2zm12.553 2.606a1 1 0 1 0 .894 1.789l-.894-1.789zM17 15l.447.894A1 1 0 0 0 18 15h-1zm1-2.5a1 1 0 1 0-2 0h2zm-7.447-5.394l-2 1 .894 1.789 2-1-.894-1.789zm-1.106 1l-2-1-.894 1.789 2 1 .894-1.789zM8 9v2.5h2V9H8zm8.553-4.894l-2 1 .894 1.789 2-1-.894-1.789zm.894 0l-2-1-.894 1.789 2 1 .894-1.789zM16 5v2.5h2V5h-2zm-4.553-3.894l-2-1-.894 1.789 2 1 .894-1.789zm-2.894-1l-2 1 .894 1.789 2-1L8.553.106zM1.447 5.894l2-1-.894-1.789-2 1 .894 1.789zm-.894 0l2 1 .894-1.789-2-1-.894 1.789zM0 5v2.5h2V5H0zm9.447 13.106l-2-1-.894 1.789 2 1 .894-1.789zm0 1.789l2-1-.894-1.789-2 1 .894 1.789zM10 19v-2.5H8V19h2zm-6.553-3.894l-2-1-.894 1.789 2 1 .894-1.789zM2 15v-2.5H0V15h2zm13.447 1.894l2-1-.894-1.789-2 1 .894 1.789zM18 15v-2.5h-2V15h2z" + /> + </svg> +</template> diff --git a/AdminwebPages/adminpageView/src/components/icons/IconSupport.vue b/AdminwebPages/adminpageView/src/components/icons/IconSupport.vue new file mode 100644 index 0000000..7452834 --- /dev/null +++ b/AdminwebPages/adminpageView/src/components/icons/IconSupport.vue @@ -0,0 +1,7 @@ +<template> + <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="currentColor"> + <path + d="M10 3.22l-.61-.6a5.5 5.5 0 0 0-7.666.105 5.5 5.5 0 0 0-.114 7.665L10 18.78l8.39-8.4a5.5 5.5 0 0 0-.114-7.665 5.5 5.5 0 0 0-7.666-.105l-.61.61z" + /> + </svg> +</template> diff --git a/AdminwebPages/adminpageView/src/components/icons/IconTooling.vue b/AdminwebPages/adminpageView/src/components/icons/IconTooling.vue new file mode 100644 index 0000000..660598d --- /dev/null +++ b/AdminwebPages/adminpageView/src/components/icons/IconTooling.vue @@ -0,0 +1,19 @@ +<!-- This icon is from <https://github.com/Templarian/MaterialDesign>, distributed under Apache 2.0 (https://www.apache.org/licenses/LICENSE-2.0) license--> +<template> + <svg + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + aria-hidden="true" + role="img" + class="iconify iconify--mdi" + width="24" + height="24" + preserveAspectRatio="xMidYMid meet" + viewBox="0 0 24 24" + > + <path + d="M20 18v-4h-3v1h-2v-1H9v1H7v-1H4v4h16M6.33 8l-1.74 4H7v-1h2v1h6v-1h2v1h2.41l-1.74-4H6.33M9 5v1h6V5H9m12.84 7.61c.1.22.16.48.16.8V18c0 .53-.21 1-.6 1.41c-.4.4-.85.59-1.4.59H4c-.55 0-1-.19-1.4-.59C2.21 19 2 18.53 2 18v-4.59c0-.32.06-.58.16-.8L4.5 7.22C4.84 6.41 5.45 6 6.33 6H7V5c0-.55.18-1 .57-1.41C7.96 3.2 8.44 3 9 3h6c.56 0 1.04.2 1.43.59c.39.41.57.86.57 1.41v1h.67c.88 0 1.49.41 1.83 1.22l2.34 5.39z" + fill="currentColor" + ></path> + </svg> +</template> diff --git a/AdminwebPages/adminpageView/src/main.ts b/AdminwebPages/adminpageView/src/main.ts new file mode 100644 index 0000000..772fd95 --- /dev/null +++ b/AdminwebPages/adminpageView/src/main.ts @@ -0,0 +1,35 @@ +/* + * @FilePath: main.ts + * @Author: 灏忛渚� + * @Date: 2025-03-17 09:36:48 + * @LastEditors: Please set LastEditors + * @LastEditTime: 2025-03-18 11:55:41 + * Copyright: 2025 MinTinge CO.,LTD. All Rights Reserved. + * @Descripttion: 鍐欏叆浣犵殑鎻忚堪 + */ +import './assets/main.css' + +import { createApp } from 'vue' +import { createPinia } from 'pinia' + +import App from './App.vue' +import router from './router' +import ElementPlus from 'element-plus' +import 'element-plus/dist/index.css' +import PlusProComponents from 'plus-pro-components' +import 'plus-pro-components/index.css' + +import zhCn from 'element-plus/es/locale/lang/zh-cn' +const app = createApp(App) +app.use(ElementPlus, + { + locale: zhCn + } +) +app.use(PlusProComponents + +) +app.use(createPinia()) +app.use(router) + +app.mount('#app') diff --git a/AdminwebPages/adminpageView/src/router/index.ts b/AdminwebPages/adminpageView/src/router/index.ts new file mode 100644 index 0000000..8858a6b --- /dev/null +++ b/AdminwebPages/adminpageView/src/router/index.ts @@ -0,0 +1,37 @@ +/* + * @FilePath: index.ts + * @Author: 灏忛渚� + * @Date: 2025-03-17 09:36:48 + * @LastEditors: Please set LastEditors + * @LastEditTime: 2025-03-18 10:10:00 + * Copyright: 2025 MinTinge CO.,LTD. All Rights Reserved. + * @Descripttion: 鍐欏叆浣犵殑鎻忚堪 + */ +import { createRouter, createWebHistory } from 'vue-router' +import HomeView from '../views/HomeView.vue' + +const router = createRouter({ + history: createWebHistory(import.meta.env.BASE_URL), + routes: [ + { + path: '/', + name: 'home', + component: ()=>import('@/views/cylsgPayrollReport.vue'), + }, + { + path: '/Report', + name: 'Report', + component: HomeView, + }, + { + path: '/about', + name: 'about', + // route level code-splitting + // this generates a separate chunk (About.[hash].js) for this route + // which is lazy-loaded when the route is visited. + component: () => import('../views/AboutView.vue'), + }, + ], +}) + +export default router diff --git a/AdminwebPages/adminpageView/src/store/index.ts b/AdminwebPages/adminpageView/src/store/index.ts new file mode 100644 index 0000000..a8dc752 --- /dev/null +++ b/AdminwebPages/adminpageView/src/store/index.ts @@ -0,0 +1,9 @@ +import type { App } from "vue"; +import { createPinia } from "pinia"; +const store = createPinia(); + +export function setupStore(app: App<Element>) { + app.use(store); +} + +export { store }; diff --git a/AdminwebPages/adminpageView/src/store/types.ts b/AdminwebPages/adminpageView/src/store/types.ts new file mode 100644 index 0000000..ac79b05 --- /dev/null +++ b/AdminwebPages/adminpageView/src/store/types.ts @@ -0,0 +1,51 @@ +import type { RouteRecordName } from "vue-router"; + +export type cacheType = { + mode: string; + name?: RouteRecordName; +}; + +export type positionType = { + startIndex?: number; + length?: number; +}; + +export type appType = { + sidebar: { + opened: boolean; + withoutAnimation: boolean; + // 鍒ゆ柇鏄惁鎵嬪姩鐐瑰嚮Collapse + isClickCollapse: boolean; + }; + layout: string; + device: string; + isShowDouble: boolean; + viewportSize: { width: number; height: number }; + sortSwap: boolean; +}; + +export type multiType = { + path: string; + name: string; + meta: any; + query?: object; + params?: object; +}; + +export type setType = { + title: string; + fixedHeader: boolean; + hiddenSideBar: boolean; +}; + +export type userType = { + avatar?: string; + username?: string; + nickname?: string; + roles?: Array<string>; + permissions?: Array<string>; + verifyCode?: string; + currentPage?: number; + isRemembered?: boolean; + loginDay?: number; +}; diff --git a/AdminwebPages/adminpageView/src/stores/counter.ts b/AdminwebPages/adminpageView/src/stores/counter.ts new file mode 100644 index 0000000..b6757ba --- /dev/null +++ b/AdminwebPages/adminpageView/src/stores/counter.ts @@ -0,0 +1,12 @@ +import { ref, computed } from 'vue' +import { defineStore } from 'pinia' + +export const useCounterStore = defineStore('counter', () => { + const count = ref(0) + const doubleCount = computed(() => count.value * 2) + function increment() { + count.value++ + } + + return { count, doubleCount, increment } +}) diff --git a/AdminwebPages/adminpageView/src/views/AboutView.vue b/AdminwebPages/adminpageView/src/views/AboutView.vue new file mode 100644 index 0000000..756ad2a --- /dev/null +++ b/AdminwebPages/adminpageView/src/views/AboutView.vue @@ -0,0 +1,15 @@ +<template> + <div class="about"> + <h1>This is an about page</h1> + </div> +</template> + +<style> +@media (min-width: 1024px) { + .about { + min-height: 100vh; + display: flex; + align-items: center; + } +} +</style> diff --git a/AdminwebPages/adminpageView/src/views/HomeView.vue b/AdminwebPages/adminpageView/src/views/HomeView.vue new file mode 100644 index 0000000..eeee65a --- /dev/null +++ b/AdminwebPages/adminpageView/src/views/HomeView.vue @@ -0,0 +1,24 @@ +<!-- + * @FilePath: HomeView.vue + * @Author: 灏忛渚� + * @Date: 2025-03-17 09:36:48 + * @LastEditors: Please set LastEditors + * @LastEditTime: 2025-03-18 10:06:57 + * Copyright: 2025 MinTinge CO.,LTD. All Rights Reserved. + * @Descripttion: 鍐欏叆浣犵殑鎻忚堪 +--> +<script setup lang="ts"> + +import TheWelcome from '../components/TheWelcome.vue' + +import reportview from '../views/cylsgPayrollReport.vue'; + + + +</script> + +<template> + + <reportview /> + +</template> diff --git a/AdminwebPages/adminpageView/src/views/cylsgPayrollReport.vue b/AdminwebPages/adminpageView/src/views/cylsgPayrollReport.vue new file mode 100644 index 0000000..3cd37d6 --- /dev/null +++ b/AdminwebPages/adminpageView/src/views/cylsgPayrollReport.vue @@ -0,0 +1,282 @@ +<!-- + * @FilePath: cylsgPayrollReport.vue + * @Author: 灏忛渚� + * @Date: 2025-03-17 09:45:10 + * @LastEditors: Please set LastEditors + * @LastEditTime: 2025-03-19 11:33:32 + * Copyright: 2025 MinTinge CO.,LTD. All Rights Reserved. + * @Descripttion: 鍐欏叆浣犵殑鎻忚堪 +--> +<!-- --> +<template> + <div> + + <el-card> + <PlusForm v-model="formdata" :columns="FromColumns" :row-props="{ gutter: 100 }" :col-props="{ + span: 4 + }" @submit="mysubmit"> + <template #footer="{ handleSubmit }"> + <div style="margin: 0 auto"> + <el-button type="primary" @click="handleSubmit">鎼滅储</el-button> + + + </div> + </template> + </PlusForm> + </el-card> + <PlusTable ref="plusTableInstance" :columns="tableConfig" :table-data="tableData" table-title="琛ㄦ牸" show-summary + :summary-method="getSummaries" :pagination="{ total, modelValue: pageInfo }" + @paginationChange="handlePaginationChange" adaptive /> + </div> +</template> +<script setup lang='tsx'> +import { GetTransferOrder, OrderByType, type WeChatTransferOrder } from '@/Api/apis'; +import moment from 'moment'; +import { valueEquals } from 'element-plus'; +import type { PlusColumn, PlusTableInstance, PageInfo } from 'plus-pro-components' +import { useTable } from 'plus-pro-components' +import { h, onMounted, ref, type VNode } from 'vue' +const formdata = ref<WeChatTransferOrder>({ + userName: null, + userIDCode: null, + DataTime: [], + itCode: null + +}) + +const FromColumns: PlusColumn[] = [ + { + label: '濮撳悕', + prop: 'userName', + tooltip: '鍚嶇О鏈�澶氭樉绀�6涓瓧绗�' + }, + { + label: '韬唤璇佸彿鐮�', + labelWidth: 110, + width: 200, + prop: 'userIDCode', + tooltip: '鍚嶇О鏈�澶氭樉绀�6涓瓧绗�' + } + , + { + label: '鐢佃瘽鍙风爜', + labelWidth: 110, + width: 200, + prop: 'itCode', + tooltip: '鍚嶇О鏈�澶氭樉绀�6涓瓧绗�' + }, + { + label: '鏀粯鏃堕棿', + labelWidth: 110, + width: 400, + colProps: { + span: 8 + }, + prop: 'DataTime', + tooltip: '鏀粯鏃堕棿', + valueType: 'date-picker', + fieldProps: { + type: 'datetimerange', + startPlaceholder: '璇烽�夋嫨寮�濮嬫椂闂�', + endPlaceholder: '璇烽�夋嫨缁撴潫鏃堕棿', + rangeSeparator: '-', + valueFormat: 'YYYY-MM-DDTHH:mm:ss', + + }, + + + + } +] + +const tableConfig = ref<PlusColumn[]>( + [ + { + label: '濮撳悕', + prop: 'userName', + width: 80 + }, + { + label: '韬唤璇�', + prop: 'userIDCode', + width: 170 + + + }, + { + label: '鐢佃瘽鍙风爜', + prop: 'itCode', + width: 120 + }, + + + { + width: 100, + label: '鎬婚搴�', + prop: 'totalAmount', + render: (value) => { + + let formattedAmount = ((value ?? 0) / 100).toLocaleString('zh-CN', { style: 'currency', currency: 'CNY' }); + + return <span>{formattedAmount}鍏�</span> + } + + + }, + + { + width: 100, + label: '鎴愬姛棰濆害', + prop: 'successAmount', + sortable: true, + render: (value) => { + + let formattedAmount = ((value ?? 0) / 100).toLocaleString('zh-CN', { style: 'currency', currency: 'CNY' }); + + return <span>{formattedAmount}鍏�</span> + } + + }, + { + width: 100, + label: '澶辫触棰濆害', + prop: 'failAmount', + sortable: true, + render: (value) => { + + let formattedAmount = ((value ?? 0) / 100).toLocaleString('zh-CN', { style: 'currency', currency: 'CNY' }); + + return <span>{formattedAmount}鍏�</span> + } + + }, + + { + width: 180, + label: '鎻愮幇鏃堕棿', + prop: 'upDataTime', + render: (value) => { + return <span>{moment(value).format('YYYY-MM-DD HH:mm:ss')}</span> + } + + }, + { + + label: '鑵捐鍗曞彿', + prop: 'batchId' + + }, + { + + label: '瀹㈡埛鍗曞彿', + prop: 'outBatchNumber' + + }, + { + width: 100, + label: '鎬诲伐璧�', + prop: 'zhongGz', + render: (value) => { + + let formattedAmount = ((value ?? 0)).toLocaleString('zh-CN', { style: 'currency', currency: 'CNY' }); + + return <span>{formattedAmount}鍏�</span> + } + + }, + { + width: 100, + label: '宸叉彁宸ヨ祫', + prop: 'yiTiXianGz', + render: (value) => { + let formattedAmount = ((value ?? 0)).toLocaleString('zh-CN', { style: 'currency', currency: 'CNY' }); + + return <span>{formattedAmount}鍏�</span> + } + + } + + ] +); + +const { tableData, pageInfo, total, loadingStatus } = useTable<WeChatTransferOrder[]>() + +onMounted(() => { + getList(); +}) +const getList = async () => { + loadingStatus.value = true + if (formdata.value.DataTime && Array.isArray(formdata.value.DataTime) && formdata.value.DataTime.length === 2) { + debugger + formdata.value.upDataTime = `${formdata.value.DataTime[0]}~${formdata.value.DataTime[1].toString()}`; + } else { + + } + GetTransferOrder({ + page: { pageIndex: pageInfo.value.page, pageSize: pageInfo.value.pageSize }, + where: JSON.stringify(formdata.value), + order:{ + name:"upDataTime", + des:OrderByType.Desc + } + + }).then((res) => { + + if (res.data.code == 1) { + tableData.value = res.data.data?.data as WeChatTransferOrder[]; + + total.value = res.data.data?.page?.totalCount as number; + } + }).finally(() => { + loadingStatus.value = false + }) + +} + + +const mysubmit = () => { + getList(); +} +const getSummaries = (param: any) => { + const { columns, data } = param + const sums: (string | VNode)[] = [] + columns.forEach((column: { property: string | number; }, index: number) => { + if (index === 0) { + sums[index] = h('div', { style: { textDecoration: 'underline' } }, [ + '缁熻', + ]) + return + } + if (column.property == "totalAmount") { + const values = data.map((x:any) => x.totalAmount); + let formattedAmount = (values.reduce((prev: any, cur: any) => prev + cur) / 100).toLocaleString('zh-CN', { style: 'currency', currency: 'CNY' }); + sums[index] = formattedAmount + return + } + + + if (column.property == "successAmount") { + const values = data.map((x: { successAmount: any; }) => x.successAmount); + let formattedAmount = (values.reduce((prev: any, cur: any) => prev + cur) / 100).toLocaleString('zh-CN', { style: 'currency', currency: 'CNY' }); + sums[index] = formattedAmount + return + } + if (column.property == "failAmount") { + const values = data.map((x: { failAmount: any; }) => x.failAmount); + let formattedAmount = (values.reduce((prev: any, cur: any) => prev + cur) / 100).toLocaleString('zh-CN', { style: 'currency', currency: 'CNY' }); + sums[index] = formattedAmount + return + } + }) + + + + return sums +} +const handlePaginationChange = (_pageInfo: PageInfo): void => { + pageInfo.value = _pageInfo + getList() +} + +</script> +<style lang='scss' scoped></style> \ No newline at end of file diff --git a/AdminwebPages/adminpageView/tsconfig.app.json b/AdminwebPages/adminpageView/tsconfig.app.json new file mode 100644 index 0000000..e089dbc --- /dev/null +++ b/AdminwebPages/adminpageView/tsconfig.app.json @@ -0,0 +1,12 @@ +{ + "extends": "@vue/tsconfig/tsconfig.dom.json", + "include": ["env.d.ts", "src/**/*", "src/**/*.vue"], + "exclude": ["src/**/__tests__/*"], + "compilerOptions": { + + + "paths": { + "@/*": ["./src/*"] + } + } +} diff --git a/AdminwebPages/adminpageView/tsconfig.json b/AdminwebPages/adminpageView/tsconfig.json new file mode 100644 index 0000000..93040c6 --- /dev/null +++ b/AdminwebPages/adminpageView/tsconfig.json @@ -0,0 +1,14 @@ +{ + "files": [], + "references": [ + { + "path": "./tsconfig.node.json" + }, + { + "path": "./tsconfig.app.json" + } + ], + "compilerOptions": { + "types": ["plus-pro-components/global"] + } +} diff --git a/AdminwebPages/adminpageView/tsconfig.node.json b/AdminwebPages/adminpageView/tsconfig.node.json new file mode 100644 index 0000000..40273bc --- /dev/null +++ b/AdminwebPages/adminpageView/tsconfig.node.json @@ -0,0 +1,19 @@ +{ + "extends": "@tsconfig/node22/tsconfig.json", + "include": [ + "vite.config.*", + "vitest.config.*", + "cypress.config.*", + "nightwatch.conf.*", + "playwright.config.*", + "eslint.config.*" + ], + "compilerOptions": { + "noEmit": true, + + + "module": "ESNext", + "moduleResolution": "Bundler", + "types": ["node"] + } +} diff --git a/AdminwebPages/adminpageView/vite.config.ts b/AdminwebPages/adminpageView/vite.config.ts new file mode 100644 index 0000000..a6c7f49 --- /dev/null +++ b/AdminwebPages/adminpageView/vite.config.ts @@ -0,0 +1,52 @@ +/* + * @FilePath: vite.config.ts + * @Author: 灏忛渚� + * @Date: 2025-03-17 09:36:48 + * @LastEditors: Please set LastEditors + * @LastEditTime: 2025-03-17 17:37:57 + * Copyright: 2025 MinTinge CO.,LTD. All Rights Reserved. + * @Descripttion: 鍐欏叆浣犵殑鎻忚堪 + */ +import { fileURLToPath, URL } from 'node:url' + +import { defineConfig } from 'vite' +import vue from '@vitejs/plugin-vue' +import vueJsx from '@vitejs/plugin-vue-jsx' +import vueDevTools from 'vite-plugin-vue-devtools' + +// https://vite.dev/config/ +export default defineConfig({ + plugins: [ + vue(), + vueJsx(), + vueDevTools(), + ], + // // 鏈嶅姟绔覆鏌� + // server: { + + // // 鏈湴璺ㄥ煙浠g悊 https://cn.vitejs.dev/config/server-options.html#server-proxy + // proxy: { + // "/api": { + + // // 杩欓噷濉啓鍚庣鍦板潃 + // target: "http://localhost:5000", + // changeOrigin: true, + // rewrite: path => path.replace(/^\/api/, "/api") + // }, + // "/ws": { + // target: "https://apis.map.qq.com/", + // changeOrigin: true, + // rewrite: path => path.replace(/^\/ws/, "/ws") + // } + // }, + + + // }, + + resolve: { + alias: { + '@': fileURLToPath(new URL('./src', import.meta.url)) + }, + }, +}) + diff --git a/cylsg/ECTESTOA/OAServices.cs b/cylsg/ECTESTOA/OAServices.cs index e0aca0c..9cab444 100644 --- a/cylsg/ECTESTOA/OAServices.cs +++ b/cylsg/ECTESTOA/OAServices.cs @@ -99,7 +99,7 @@ } } - _redisService.Add(ECTESTOAPermissionsKey + UserID, ret, 180); + _redisService.Add(ECTESTOAPermissionsKey + UserID, ret, 60); } diff --git a/cylsg/cylsg.Application/CyOS/CyOSSDriver.cs b/cylsg/cylsg.Application/CyOS/CyOSSDriver.cs index 0c3e108..ddd0db6 100644 --- a/cylsg/cylsg.Application/CyOS/CyOSSDriver.cs +++ b/cylsg/cylsg.Application/CyOS/CyOSSDriver.cs @@ -3,6 +3,7 @@ using ECTESTOA; using EzCoreNet.Redis; using Furion.LinqBuilder; +using Microsoft.AspNetCore.Http.HttpResults; using Models; using System; using System.Collections.Generic; @@ -43,7 +44,7 @@ throw Oops.Oh("娌℃湁鏉冮檺"); } - Expression<Func<OA_DeliverPlan, bool>> SearchList = (x) => true; + Expression<Func<OA_DeliverPlanPaiche, bool>> SearchList = (x) => true; SearchList = SearchList.And(x => x.FirmId == _oAServices.firmId); SearchList = SearchList.And(x => x.DriverId == Permissions.KeyId);//鍙湅鑷繁 SearchList = SearchList.And(x => x.ShifouDelivery != 2);//杩囨护鏈夋晥 @@ -58,11 +59,11 @@ } if (Param.TimeStart != null) { - SearchList = SearchList.And(x => x.CreateTime > Param.TimeStart); + SearchList = SearchList.And(x => x.DeliverTime >= Param.TimeStart.Value.Date); } if (Param.TimeEnd != null) { - SearchList = SearchList.And(x => x.CreateTime < Param.TimeEnd.Value.AddDays(1)); + SearchList = SearchList.And(x => x.DeliverTime < Param.TimeEnd.Value.Date.AddDays(1)); } if (Param.DeliveredState != null) { @@ -78,8 +79,8 @@ //寮哄埗澧炲姞鍛樺伐杩囨护 RefAsync<int> totle = 0; - var data = await _client.Queryable<OA_DeliverPlan>().Includes(x=>x.SentStaff) - .Where(SearchList).OrderByDescending(x => x.CreateTime.Value.Date).OrderBy(x => SqlFunc.Asc(x.Sort)).ToPageListAsync(Param.page.PageIndex, Param.page.PageSize, totle); + var data = await _client.Queryable<OA_DeliverPlanPaiche>().Includes(x=>x.Manager) + .Where(SearchList).OrderByDescending(x => x.DeliverTime.Value.Date).OrderBy(x => SqlFunc.Asc(x.Sort)).ToPageListAsync(Param.page.PageIndex, Param.page.PageSize, totle); Param.page.TotalCount = totle; @@ -99,14 +100,14 @@ /// </summary> /// <param name="Param"></param> /// <returns></returns> - public async Task<OA_DeliverPlan> GetDeliverPlanInfo(Guid KeyId) + public async Task<OA_DeliverPlanPaiche> GetDeliverPlanInfo(Guid KeyId) { if (!await CheckRols()) { throw Oops.Oh("娌℃湁鏉冮檺"); } - return await _client.Queryable<OA_DeliverPlan>().Includes(x=>x.Attachments.Where(y=>y.AttachmentType==3).ToList()).Includes(x=>x.Manager).Includes(x=>x.SentStaff) + return await _client.Queryable<OA_DeliverPlanPaiche>().Includes(x=>x.Attachments).Includes(x=>x.Manager).Includes(x=>x.DeliverPlans) .Where(x => x.DriverId == Permissions.KeyId && x.Keyid == KeyId&&x.ShifouDelivery!=2).FirstAsync(); } @@ -124,7 +125,7 @@ { throw Oops.Oh("娌℃湁鏉冮檺"); } - var a= await _client.Queryable<OA_DeliverPlan>().Where(x => x.DriverId == Permissions.KeyId && x.Keyid == KeyId && x.ShifouDelivery != 2).FirstAsync(); + var a= await _client.Queryable<OA_DeliverPlanPaiche>().Where(x => x.DriverId == Permissions.KeyId && x.Keyid == KeyId && x.ShifouDelivery != 2).FirstAsync(); if(a==null) throw Oops.Oh("娌℃湁鏉冮檺"); if(a.Deliveredstatus!= DeliveredType.Undeliver) @@ -146,7 +147,7 @@ /// </summary> /// <param name="Param"></param> /// <returns></returns> - public async Task<bool> FinishDeliverPlan(OA_DeliverPlan Param) + public async Task<bool> FinishDeliverPlan(OA_DeliverPlanPaiche Param) { if(Param.Keyid==null) throw Oops.Oh("ID閿欒"); @@ -157,12 +158,19 @@ { throw Oops.Oh("娌℃湁鏉冮檺"); } - var a = await _client.Queryable<OA_DeliverPlan>().Where(x => x.DriverId == Permissions.KeyId && x.Keyid == Param.Keyid && x.ShifouDelivery != 2).FirstAsync(); + var a = await _client.Queryable<OA_DeliverPlanPaiche>().Includes(x=>x.DeliverPlans).Where(x => x.DriverId == Permissions.KeyId && x.Keyid == Param.Keyid && x.ShifouDelivery != 2).FirstAsync(); if (a == null) throw Oops.Oh("娌℃湁鏉冮檺"); if (a.Deliveredstatus != DeliveredType.Deliver) { throw Oops.Oh("璁㈠崟鐘舵�佺粨鏉�"); + } + foreach (var item in a.DeliverPlans) + { + //鍚屾 閫佽揣鍗曠姸鎬� + item.Updater = Permissions.MemberId; + item.LastUpdateTime = DateTime.Now; + item.Deliveredstatus= Param.Deliveredstatus; } foreach (var item in Param.Attachments) { @@ -200,14 +208,124 @@ a.Wentifankui = Param.Wentifankui; a.Deliveredstatus= Param.Deliveredstatus; a.Attachments = Param.Attachments; + return await _client.UpdateNav(a).Include(x=>x.Attachments,new SqlSugar.UpdateNavOptions() { OneToManyInsertOrUpdate = true,//閰嶇疆鍚敤 鎻掑叆銆佹洿鏂版垨鍒犻櫎妯″紡 - }).ExecuteCommandAsync(); + }).Include(x=>x.DeliverPlans,new UpdateNavOptions() + { + OneToManyInsertOrUpdate=true, + } + ).ExecuteCommandAsync(); + + //await _client.AsTenant().BeginTranAsync(); + //try + //{ + // await _client.UpdateNav(a).Include(x => x.Attachments, new SqlSugar.UpdateNavOptions() + // { + // OneToManyInsertOrUpdate = true,//閰嶇疆鍚敤 鎻掑叆銆佹洿鏂版垨鍒犻櫎妯″紡 + // }).ExecuteCommandAsync(); + // if (a.DeliverPlans?.Count > 0) + // await _client.Updateable(a.DeliverPlans).ExecuteCommandAsync(); + // await _client.AsTenant().CommitTranAsync(); + + //} + //catch (Exception) + //{ + // await _client.AsTenant().RollbackTranAsync(); + // throw; + //} + + //return true; + } + /// <summary> + /// 鑾峰彇鎵撳崱璁板綍 + /// </summary> + /// <param name="Param"></param> + /// <returns></returns> + [HttpPost] + public async Task<DeliverRecordPageRet> GetDriverRecords(DeliverRecordSearchParam Param) + { + if (!await CheckRols()) + { + throw Oops.Oh("娌℃湁鏉冮檺"); + } + + Expression<Func<OA_DriverRecord, bool>> SearchList = (x) => true; + SearchList = SearchList.And(x => x.CreaterID == Permissions.MemberId);//鍙湅鑷繁 + SearchList = SearchList.And(x => x.ClockType != DriverClockType.RoughDraft);//涓嶇湅鑽夌 + if (Param.CarID != null) + { + SearchList = SearchList.And(x => x.CarID == Param.CarID); + } + + if (Param.TimeStart != null) + { + SearchList = SearchList.And(x => x.CreatTime >= Param.TimeStart.Value.Date); + } + if (Param.TimeEnd != null) + { + SearchList = SearchList.And(x => x.CreatTime < Param.TimeEnd.Value.Date.AddDays(1)); + } + if (Param.ClockType != null) + { + + SearchList = SearchList.And(x => x.ClockType == Param.ClockType); + + } + + //寮哄埗澧炲姞鍛樺伐杩囨护 + RefAsync<int> totle = 0; + var data = await _client.Queryable<OA_DriverRecord>().Includes(x => x.Car) + .Where(SearchList).OrderByDescending(x => x.CreatTime.Date).Mapper((x)=> + { + if (x.CreatTime.AddMinutes(30) < DateTime.Now) + x.CanEdit = true; + else + x.CanEdit = false; + + }) + .ToPageListAsync(Param.page.PageIndex, Param.page.PageSize, totle); + + Param.page.TotalCount = totle; + + var count = await _client.Queryable<OA_DriverRecord>().Where(x => x.CreatTime.Date == DateTime.Now.Date && x.ClockType != DriverClockType.RoughDraft&& x.CreaterID==Permissions.MemberId).CountAsync(); + return new DeliverRecordPageRet + + { + Data = data, + page = Param.page, + NextClockType= count switch + { + 1=> DriverClockType.Clockout, + 2=> DriverClockType.Unknown, + 0=> DriverClockType.ClockIn, + _=> DriverClockType.Unknown + } + + }; } + /// <summary> + /// 鑾峰彇鑽夌璁板綍 娌℃湁浠h〃娌℃湁 + /// </summary> + /// <returns></returns> + + public async Task<OA_DriverRecord> GetClockRoughDraft() + { + if (!await CheckRols()) + { + throw Oops.Oh("娌℃湁鏉冮檺"); + } + return await _client.Queryable<OA_DriverRecord>() + .Where(x => x.CreaterID == Permissions.MemberId + && x.ClockType == DriverClockType.RoughDraft + && x.CreatTime.Date == DateTime.Now.Date).Includes(x=>x.Attachments).Includes(x=>x.CarConditionAttachments).FirstAsync(); + + + } /// <summary> /// 涓婄彮鎵撳崱 涓婁笅鐝墦鍗¢兘璋冪敤涓�涓瓧娈� /// </summary> @@ -217,10 +335,44 @@ { if (Param.ClockType == DriverClockType.Unknown) throw Oops.Oh("绫诲瀷涓嶅彲涓烘湭鐭�"); - Param.Id = Guid.NewGuid(); - if (Param.Attachments!=null) - foreach (var item in Param.Attachments) + if (!await CheckRols()) { + throw Oops.Oh("娌℃湁鏉冮檺"); + } + + if (Param.ClockType!= DriverClockType.RoughDraft) + { + var clockid= await _client.Queryable<OA_DriverRecord>().Where(x => x.CreaterID == Permissions.MemberId + && x.CreatTime.Date == DateTime.Now.Date + && x.ClockType == Param.ClockType + ).Select(x => x.Id).FirstAsync(); + if(clockid!=null) + { + throw Oops.Oh("浠婂ぉ宸茬粡鎵撹繃璇ョ被鍨嬬殑鍗′簡"); + } + } + var carId = await _client.Queryable<OA_CarManage>().Where(x => x.StaffID == Permissions.KeyId && x.MemberID == _oAServices.firmId).Select(x => x.Keyid).FirstAsync(); + if(carId==null||carId==0) + { + throw Oops.Oh("璇ュ徃鏈烘湭鍒嗛厤杞﹁締锛屼笉闇�瑕佹墦鍗�"); + } + OA_DriverRecord data = null; + + data= await _client.Queryable<OA_DriverRecord>().Where(x => + //x.Id == Param.Id&& 鏈�澶氭瘡澶╁彧鑳芥湁涓�涓崏绋� + x.CreatTime.Date == DateTime.Now.Date + && x.CreaterID == Permissions.MemberId + && x.ClockType == DriverClockType.RoughDraft).FirstAsync(); + + + + + + + Param.CarID = carId; + if (Param.Attachments != null) + foreach (var item in Param.Attachments) + { if (string.IsNullOrWhiteSpace(item.PlanAttachment)) { throw Oops.Oh("鏈夐檮浠跺湴鍧�涓虹┖"); @@ -233,13 +385,14 @@ throw Oops.Oh("璇疯緭鍏ユ纭殑闄勪欢鍦板潃"); } - item.AttachmentType =4; + item.AttachmentType = 4; item.CreateTime = DateTime.Now; item.Operator = Permissions.Name; - - + + + } - if(Param.CarConditionAttachments!=null) + if (Param.CarConditionAttachments != null) foreach (var item in Param.CarConditionAttachments) { if (string.IsNullOrWhiteSpace(item.PlanAttachment)) @@ -260,11 +413,147 @@ } + Param.EmptyCause = Param.EmptyCause ?? ""; + Param.CarCondition = Param.CarCondition ?? ""; + Param.Remark = Param.Remark ?? ""; Param.CreatTime = DateTime.Now; Param.CreaterID = Permissions.MemberId; Param.Creater = Permissions.Name; - return await _client.InsertNav(Param).Include(x => x.Attachments).Include(x => x.Attachments).ExecuteCommandAsync(); + + if (data == null) + { + //娌℃湁鍗曞瓙 + + Param.Id = Guid.NewGuid(); + if (!(carId > 0)) + { + + throw Oops.Oh("娌℃壘鍒板尮閰嶈溅杈�"); + } + + return await _client.InsertNav(Param).Include(x => x.Attachments).Include(x => x.CarConditionAttachments).ExecuteCommandAsync(); + } + + + else + { + data.CarID = Param.CarID; + data.CreatTime= Param.CreatTime; + + data.Attachments = Param.Attachments;//瀵艰埅鏇磋鍒嗙被鏉′欢涓嶈捣浣滅敤锛岃繖閲屾洿鏂板皢 杩欎袱涓悎骞舵搷浣� + + data.CarCondition=Param.CarCondition; + data.CarConditionAttachments = Param.CarConditionAttachments; + if (data.CarConditionAttachments == null) + data.CarConditionAttachments = new List<OA_attachment>(); + if (data.Attachments != null) + data.CarConditionAttachments.AddRange(data.Attachments); + data.ClockType = Param.ClockType; + data.EmptyCause = Param.EmptyCause; + return await _client.UpdateNav(data) + //鍒嗗紑瀵艰埅浼氫骇鐢熷啿绐佸簲璇qlsun鐨刡ug + // .Include(x => x.Attachments,new UpdateNavOptions + //{ + // OneToManyInsertOrUpdate = true, + //}) + .Include(x => x.CarConditionAttachments,new UpdateNavOptions + { + OneToManyInsertOrUpdate = true, + }).ExecuteCommandAsync(); + } + + + } + + + /// <summary> + /// 淇敼鎵撳崱璁板綍 鏀寔鍗婂皬鏃跺唴淇敼璁板綍 + /// </summary> + public async Task<bool > UpdataDriverRecord(OA_DriverRecord Param) + { + if (!await CheckRols()) + { + throw Oops.Oh("娌℃湁鏉冮檺"); + } + + var data = await _client.Queryable<OA_DriverRecord>() + .Includes(x => x.Attachments) + .Includes(x => x.CarConditionAttachments) + .Where(x => x.CreaterID == Permissions.MemberId && x.Id == Param.Id).FirstAsync(); + if (data != null) + throw Oops.Oh("娌℃湁鏉冮檺"); + + if(data.CreatTime.AddMinutes(30)<DateTime.Now) + { + throw Oops.Oh("鍙兘鍦ㄥ崐灏忔椂涔嬪唴淇敼"); + } + + if(Param.Attachments!=null) + { + foreach (var attachment in Param.Attachments) + { + if (attachment.Keyid > 0) + continue; + else + { + attachment.AttachmentType = 4; + attachment.CreateTime = DateTime.Now; + attachment.Operator = Permissions.Name; + + } + } + } + + + if (Param.CarConditionAttachments != null) + { + foreach (var attachment in Param.CarConditionAttachments) + { + if (attachment.Keyid > 0) + continue; + else + { + attachment.AttachmentType = 5; + attachment.CreateTime = DateTime.Now; + attachment.Operator = Permissions.Name; + + } + } + } + + data.Attachments = Param.Attachments; + data.CarConditionAttachments = Param.CarConditionAttachments; + data.CarCondition = Param.CarCondition; + return await _client.UpdateNav(data).Include(x => x.Attachments, new UpdateNavOptions + { + OneToManyInsertOrUpdate = true, + }).Include(x => x.CarConditionAttachments, new UpdateNavOptions + { + OneToManyInsertOrUpdate = true, + }).ExecuteCommandAsync(); + + } + + /// <summary> + /// 鎵撳崱璁板綍璇︽儏 + /// </summary> + public async Task<OA_DriverRecord> GetDriverRecordInfo(Guid Id) + { + + if (!await CheckRols()) + { + throw Oops.Oh("娌℃湁鏉冮檺"); + } + + var data= await _client.Queryable<OA_DriverRecord>() + .Includes(x => x.Car) + .Includes(x=>x.Attachments) + .Includes(x=>x.CarConditionAttachments) + .Where(x => x.CreaterID == Permissions.MemberId&&x.Id== Id).FirstAsync(); + if (data == null) + throw Oops.Oh("娌℃湁鏉冮檺"); + return data; } /// <summary> @@ -290,4 +579,59 @@ } } + /// <summary> + /// 鍙告満鎵撳崱璁板綍鎼滅储閫夐」 + /// </summary> + public class DeliverRecordSearchParam + { + /// <summary> + /// 璧峰鏃堕棿 + /// </summary> + public DateTime? TimeStart { get; set; } + /// <summary> + /// 缁撴潫鏃堕棿 + /// </summary> + public DateTime? TimeEnd { get; set; } + + /// <summary> + /// 鍙告満KeyID + /// </summary> + public int? DeliverMemudID { get; set; } + + + /// <summary> + /// 杞﹁締ID + /// </summary> + public int? CarID { get; set; } + + /// <summary> + /// 鎵撳崱 绫诲瀷 + /// </summary> + public DriverClockType? ClockType { get; set; } + /// <summary> + /// 椤甸潰鍙傛暟 + /// </summary> + public PageModel page { get; set; } + } + + /// <summary> + /// 鎵撳崱璁板綍杈撳嚭 + /// </summary> + public class DeliverRecordPageRet + { + /// <summary> + /// 鏁版嵁鍒楄〃 + /// </summary> + public List<OA_DriverRecord> Data { get; set; } + + /// <summary> + /// 椤甸潰鍙傛暟 + /// </summary> + public PageModel page { get; set; } + + /// <summary> + /// 涓嬩竴娆℃墦鍗$姸鎬� 涓虹┖鏃朵笉鏄剧ず鎸夐挳 + /// </summary> + public DriverClockType? NextClockType { get; set; } = null; + } } diff --git a/cylsg/cylsg.Application/CyOS/CyOSSettingController.cs b/cylsg/cylsg.Application/CyOS/CyOSSettingController.cs index 687476c..538fbb9 100644 --- a/cylsg/cylsg.Application/CyOS/CyOSSettingController.cs +++ b/cylsg/cylsg.Application/CyOS/CyOSSettingController.cs @@ -7,6 +7,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; +using static SKIT.FlurlHttpClient.Wechat.Api.Models.ProductOfflineGetSameCityTemplateResponse.Types.Template.Types; namespace cylsg.Application.CyOS { @@ -41,7 +42,7 @@ Name = x.Name, Keyid = x.Keyid, Remark = x.Remark, - }).WithCache(3600).ToListAsync(); + }).WithCache(60).ToListAsync(); } /// <summary> /// 鑾峰彇绉戠洰鍒楄〃 @@ -56,7 +57,7 @@ SubjectName = x.SubjectName, Keyid = x.Keyid, Remark = x.Remark, - }).WithCache(3600).ToListAsync(); + }).WithCache(60).ToListAsync(); } /// <summary> /// 鑾峰彇娴佹按鍙� @@ -102,7 +103,7 @@ MemberId = x.MemberId, Keyid = x.Keyid, - }).WithCache(1800).ToListAsync(); + }).WithCache(60).ToListAsync(); } @@ -114,14 +115,15 @@ [AllowAnonymous] public async Task<List<OaStaff>> GetDriversOfWithin7days() { - var list = await _client.Queryable<OA_DeliverPlan>().Where(x => SqlFunc.ToDate(x.DeliverTime) < DateTime.Now.AddDays(8).Date && SqlFunc.ToDate(x.DeliverTime) >= DateTime.Now.Date).GroupBy(x => x.DriverId).Select(x => x.DriverId).ToListAsync(); - return await _client.Queryable<OaStaff>().In(list).Where(x => x.Status == "鍦ㄨ亴" && x.FirmId == _oAServices.firmId && x.BF_IsDriver).Select(x => new OaStaff + + var list = await _client.Queryable<OA_DeliverPlanPaiche>().Where(x =>( x.DeliverTime.Value.Date < DateTime.Now.AddDays(8).Date) && (x.DeliverTime.Value.Date >= DateTime.Now.Date)).Select(x => x.DriverId).ToListAsync(); + return await _client.Queryable<OaStaff>().Where(x=>list.Contains(x.Keyid)).Where(x => x.Status == "鍦ㄨ亴" && x.FirmId == _oAServices.firmId && x.BF_IsDriver).Select(x => new OaStaff { Name = x.Name, MemberId = x.MemberId, Keyid = x.Keyid, - }).WithCache(1800).ToListAsync(); + }).WithCache(60).ToListAsync(); //// return await _client.Queryable<OA_DeliverPlan>() ////.LeftJoin<OaStaff>((dp, os) => dp.DriverId == os.Keyid) ////.Where((dp, os) => SqlFunc.ToDate(dp.DeliverTime) < DateTime.Now.AddDays(8).Date diff --git a/cylsg/cylsg.Application/CyOS/CyOSStaffController.cs b/cylsg/cylsg.Application/CyOS/CyOSStaffController.cs index f710ad4..d0249df 100644 --- a/cylsg/cylsg.Application/CyOS/CyOSStaffController.cs +++ b/cylsg/cylsg.Application/CyOS/CyOSStaffController.cs @@ -500,9 +500,9 @@ throw Oops.Oh("娌℃湁鏉冮檺"); } - Expression<Func<OA_DeliverPlan, bool>> SearchList = (x) => true; + Expression<Func<OA_DeliverPlanPaiche, bool>> SearchList = (x) => true; SearchList = SearchList.And(x => x.FirmId == _OAServices.firmId); - SearchList = SearchList.And(x => x.Creater == Permissions.MemberId);//鍙湅鑷繁 + SearchList = SearchList.And(x => x.BusinessManagerId == Permissions.KeyId);//鍙湅鑷繁 瀹㈡埛缁忕悊鏄嚜宸� SearchList = SearchList.And(x => x.ShifouDelivery !=2);//杩囨护鏈夋晥 if (Param.DeliverKeyID!=null) { @@ -515,11 +515,11 @@ } if (Param.TimeStart != null) { - SearchList = SearchList.And(x => x.CreateTime > Param.TimeStart); + SearchList = SearchList.And(x => x.DeliverTime >= Param.TimeStart.Value.Date); } if (Param.TimeEnd != null) { - SearchList = SearchList.And(x => x.CreateTime < Param.TimeEnd.Value.AddDays(1)); + SearchList = SearchList.And(x => x.DeliverTime < Param.TimeEnd.Value.Date.AddDays(1)); } if (Param.DeliveredState != null) { @@ -535,7 +535,7 @@ //寮哄埗澧炲姞鍛樺伐杩囨护 RefAsync<int> totle = 0; - var data = await _SugarClient.Queryable<OA_DeliverPlan>().Includes(x => x.Driver) + var data = await _SugarClient.Queryable<OA_DeliverPlanPaiche>().Includes(x => x.Driver).Includes(x=>x.DeliverPlans) .Where(SearchList).OrderByDescending(x => x.CreateTime.Value.Date).OrderBy(x=>SqlFunc.Asc(x.Sort)).ToPageListAsync(Param.page.PageIndex, Param.page.PageSize, totle); Param.page.TotalCount = totle; @@ -557,15 +557,15 @@ /// </summary> /// <param name="KeyId"></param> /// <returns></returns> - public async Task<OA_DeliverPlan> GetDeliverPlanInfo(Guid KeyId) + public async Task<OA_DeliverPlanPaiche> GetDeliverPlanInfo(Guid KeyId) { if (!await CheckRols()) { throw Oops.Oh("娌℃湁鏉冮檺"); } - return await _SugarClient.Queryable<OA_DeliverPlan>().Includes(x => x.Attachments).Includes(x=>x.Driver).Includes(x=>x.Manager) - .Where(x => x.Creater == Permissions.MemberId && x.Keyid == KeyId && x.ShifouDelivery != 2).FirstAsync(); + return await _SugarClient.Queryable<OA_DeliverPlanPaiche>().Includes(x => x.Attachments).Includes(x=>x.Driver).Includes(x=>x.DeliverPlans) + .Where(x => x.BusinessManagerId == Permissions.KeyId && x.Keyid == KeyId && x.ShifouDelivery != 2).FirstAsync(); } @@ -679,7 +679,7 @@ /// <summary> /// 鏁版嵁鍒楄〃 /// </summary> - public List<OA_DeliverPlan> Data { get; set; } + public List<OA_DeliverPlanPaiche> Data { get; set; } /// <summary> /// 椤甸潰鍙傛暟 diff --git a/cylsg/cylsg.Application/CyOS/CyOsDeliverManage.cs b/cylsg/cylsg.Application/CyOS/CyOsDeliverManage.cs index b330891..2389bff 100644 --- a/cylsg/cylsg.Application/CyOS/CyOsDeliverManage.cs +++ b/cylsg/cylsg.Application/CyOS/CyOsDeliverManage.cs @@ -5,12 +5,14 @@ using EzCoreNet.Redis; using Furion.LinqBuilder; using Models; +using StackExchange.Profiling; using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using System.Text; using System.Threading.Tasks; +using TencentCloud.Iecp.V20210914.Models; namespace cylsg.Application.CyOS { @@ -34,9 +36,29 @@ } [HttpGet] [AllowAnonymous] - public async Task<string> testc() + public async Task<OA_DriverRecord> testc() { - return await CreatDeliverPlanSn(); + OA_DriverRecord data = null; + + data = await _client.Queryable<OA_DriverRecord>().Where(x => + x.Id == new Guid("BE15D584-DFE3-438D-863B-705DB1AB14ED") + ).Includes(x=>x.Attachments).FirstAsync(); + + data.Attachments?.Add(new OA_attachment + { + PlanAttachment = "1111", + AttachmentType = 4, + Operator= "sdasd" + }); + data.CarConditionAttachments = null; + await _client.UpdateNav(data).Include(x => x.CarConditionAttachments,new UpdateNavOptions + { + OneToManyInsertOrUpdate=true, + + }).ExecuteCommandAsync(); + + return await _client.Queryable<OA_DriverRecord>().Where(x => x.Id == new Guid("BE15D584-DFE3-438D-863B-705DB1AB14ED")).Includes(x => x.Attachments).Includes(x => x.CarConditionAttachments).FirstAsync(); + } /// <summary> @@ -114,12 +136,14 @@ } /// <summary> - /// 鍙楃悊 + /// 鍙楃悊 寮冪敤锛岀敤 CreatDeliverPlan 浠f浛 /// </summary> /// <param name="Param"></param> /// <returns></returns> + [Obsolete] public async Task<int> AcceptAppointmentDeliver(int KeiId) { + throw Oops.Oh("宸茬粡鍚敤"); if (!(KeiId > 0)) throw Oops.Oh("Keyid涓嶈兘涓虹┖"); @@ -150,20 +174,41 @@ /// <param name="Param"> 鍙渶瑕佷紶閫�</param> /// <returns></returns> [HttpPost] - public async Task<int> CreatDeliverPlan(OA_DeliverPlan Param) + public async Task<int> CreatDeliverPlan(OA_DeliverPlanPaiche Param) { - OA_CarManage car = null; - if (Param.DriverId != null) - car = await _client.Queryable<OA_CarManage>().Where(x => x.StaffID == Param.DriverId && x.MemberID == _oAServices.firmId).FirstAsync(); + if (!await CheckRols()) { throw Oops.Oh("娌℃湁鏉冮檺"); } + OA_DeliverTixing? tixing=null; + if(Param.DeliverTixingId>0) + { + //鏄彁閱掕鍗曪紝闇�瑕佹墽琛屾彁閱掑崟 鐘舵�佸共鐓� + tixing = await _client.Queryable<OA_DeliverTixing>().Where(x => x.Keyid == Param.DeliverTixingId).FirstAsync(); + if(tixing == null) + { + throw Oops.Oh("鎻愰啋鍗曚笉瀛樺湪浜�"); + } + if(tixing.Chulistatus != AppointmentDeliverState.unAccept) + throw Oops.Oh("鎻愰啋鍗曞凡缁忓鐞嗕簡"); + tixing.Chulistatus= AppointmentDeliverState.Accept; + tixing.ChuliTime = DateTime.Now; + tixing.ChuliRen=Permissions.MemberId; + tixing.LastUpdateTime = DateTime.Now; + tixing.Updater = Permissions.MemberId; + + } + OA_CarManage car = null; + if (Param.DriverId != null) + car = await _client.Queryable<OA_CarManage>().Where(x => x.StaffID == Param.DriverId && x.MemberID == _oAServices.firmId).FirstAsync(); + + OA_CorporateClients cor = null; if (Param.BuyerId != null) cor = await _client.Queryable<OA_CorporateClients>().Where(x => x.Keyid == Param.BuyerId).FirstAsync(); - OA_DeliverPlan DeliverPlan = new OA_DeliverPlan() + OA_DeliverPlanPaiche DeliverPlan = new OA_DeliverPlanPaiche() { Keyid = Guid.NewGuid(), FirmId = _oAServices.firmId, @@ -178,7 +223,7 @@ Transferstatus = 1, - Sort = 1, + Sort = Param.Sort, Creater = Param.Creater ?? Permissions.MemberId, CreateTime = DateTime.Now, DriverId = Param.DriverId, @@ -192,7 +237,28 @@ Lianxiren = Param.Lianxiren, Deliveredstatus = (int)DeliveredType.Undeliver, CompanyName = Param.CompanyName, - }; return await _client.Insertable(DeliverPlan).ExecuteCommandAsync(); + + + }; + try + { + + if (tixing!=null) + { + tixing.DeliverPlanPaicheId = DeliverPlan.Keyid; + await _client.Updateable(tixing).ExecuteCommandAsync(); + } + + return await _client.Insertable(DeliverPlan).ExecuteCommandAsync(); + + } + catch (Exception) + { + + throw; + } + + } @@ -210,7 +276,7 @@ throw Oops.Oh("娌℃湁鏉冮檺"); } - Expression<Func<OA_DeliverPlan, bool>> SearchList = (x) => true; + Expression<Func<OA_DeliverPlanPaiche, bool>> SearchList = (x) => true; SearchList = SearchList.And(x => x.FirmId == _oAServices.firmId); //SearchList = SearchList.And(x => x.Creater == Permissions.MemberId);//鍙湅鑷繁 SearchList = SearchList.And(x => x.ShifouDelivery != 2);//杩囨护鏈夋晥 @@ -225,11 +291,11 @@ } if (Param.TimeStart != null) { - SearchList = SearchList.And(x => x.DeliverTime > Param.TimeStart); + SearchList = SearchList.And(x => x.DeliverTime >= Param.TimeStart.Value.Date); } if (Param.TimeEnd != null) { - SearchList = SearchList.And(x => x.DeliverTime < Param.TimeEnd.Value.AddDays(1)); + SearchList = SearchList.And(x => x.DeliverTime < Param.TimeEnd.Value.Date.AddDays(1)); } if (Param.DeliveredState != null) { @@ -245,8 +311,8 @@ //寮哄埗澧炲姞鍛樺伐杩囨护 RefAsync<int> totle = 0; - var data = await _client.Queryable<OA_DeliverPlan>().Includes(x => x.Driver).Includes(x => x.SentStaff) - .Where(SearchList).OrderBy(x => x.Dizhi).OrderBy(x => x.Sort).ToPageListAsync(Param.page.PageIndex, Param.page.PageSize, totle); + var data = await _client.Queryable<OA_DeliverPlanPaiche>().Includes(x => x.Driver).Includes(x => x.SentStaff).Includes(x=>x.DeliverPlans) + .Where(SearchList).OrderBy(x => x.DeliverTime).OrderBy(x => x.Sort).ToPageListAsync(Param.page.PageIndex, Param.page.PageSize, totle); Param.page.TotalCount = totle; return new DeliverOderPageRet @@ -265,7 +331,7 @@ /// </summary> /// <param name="Param"></param> /// <returns></returns> - public async Task<bool> UpDataDeliverPlans(OA_DeliverPlan Param) + public async Task<bool> UpDataDeliverPlans(OA_DeliverPlanPaiche Param) { if (Param.Keyid == null) @@ -274,16 +340,28 @@ { throw Oops.Oh("娌℃湁鏉冮檺"); } - var data = await _client.Queryable<OA_DeliverPlan>().Where(x => x.ShifouDelivery != 2 && x.Keyid == Param.Keyid).FirstAsync(); + var data = await _client.Queryable<OA_DeliverPlanPaiche>().Includes(x=>x.DeliverPlans).Where(x => x.ShifouDelivery != 2 && x.Keyid == Param.Keyid).FirstAsync(); data.LastUpdateTime = DateTime.Now; data.Updater = Permissions.MemberId; + if (data.DriverId != Param.DriverId) { data.DriverId = Param.DriverId; var car = await _client.Queryable<OA_CarManage>().Where(x => x.StaffID == Param.DriverId && x.MemberID == _oAServices.firmId).FirstAsync(); data.CarId = car == null ? 0 : car.Keyid; + + foreach (var item in data.DeliverPlans) + { + item.DriverId = Param.DriverId; + item.CarId = car == null ? 0 : car.Keyid; + item.Updater = Permissions.MemberId; + item.LastUpdateTime = DateTime.Now; + item.DeliverTime = Param.DeliverTime; + + } } + data.DeliverTime = Param.DeliverTime; data.Remark = Param.Remark; @@ -311,22 +389,91 @@ return await _client.UpdateNav(data).Include(x => x.Attachments, new UpdateNavOptions() { OneToManyInsertOrUpdate = true, + }).Include(x => x.DeliverPlans, new UpdateNavOptions() + { + OneToManyInsertOrUpdate = true, }).ExecuteCommandAsync(); } - /// <summary> - /// 淇敼璁㈠崟 + /// 鎾ら攢璁㈠崟 + /// </summary> + /// <param name="KeyId"></param> + /// <returns></returns> + public async Task<int > UndoDeliverPlans(Guid KeyId) + { + if (!await CheckRols()) + { + throw Oops.Oh("娌℃湁鏉冮檺"); + } + var data= await _client.Queryable<OA_DeliverPlanPaiche>().Includes(x=>x.DeliverPlans).Includes(x=>x.DelvceTiXing).Where(x=>x.Keyid == KeyId).FirstAsync(); + + if (data != null) + { + if (data.Deliveredstatus != DeliveredType.Delivered) + { + await _client.AsTenant().BeginTranAsync(); + try + { + if (data.DelvceTiXing != null) + { + data.DelvceTiXing.Chulistatus = AppointmentDeliverState.unAccept; + data.DelvceTiXing.LastUpdateTime = DateTime.Now; + data.DelvceTiXing.Updater = Permissions.MemberId; + data.DelvceTiXing.ChuliTime = DateTime.Now; + data.DelvceTiXing.ChuliRen = Permissions.MemberId; + await _client.Updateable(data.DelvceTiXing).ExecuteCommandAsync(); + } + if (data.DeliverPlans != null) + { + foreach (var item in data.DeliverPlans) + { + item.DriverId = 0; + item.DeliverPlanPaicheid = Guid.Empty; + item.Deliveredstatus = DeliveredType.Undeliver; + item.Updater = Permissions.MemberId; + item.LastUpdateTime = DateTime.Now; + } + await _client.Updateable(data.DeliverPlans).ExecuteCommandAsync(); + } + + + var a = await _client.Deleteable(data).ExecuteCommandAsync(); + + await _client.AsTenant().CommitTranAsync(); + return a; + } + + + catch (Exception) + { + await _client.AsTenant().RollbackTranAsync(); + throw; + } + } + else + + { + throw Oops.Oh("閰嶉�佸凡瀹屾垚锛屾棤娉曟挙閿�"); + } + + } + else + throw Oops.Oh("娌℃湁鎵惧埌璁㈠崟"); + } + /// <summary> + /// 淇敼璁㈠崟 寮冪敤 /// </summary> /// <param name="Param"></param> /// <returns></returns> + [Obsolete] public async Task<bool> SortDeliverPlans(SortPlanIn Param) { - - + throw Oops.Oh("宸茬粡寮冪敤"); + if (!await CheckRols()) { @@ -349,15 +496,92 @@ /// </summary> /// <param name="KeyId"></param> /// <returns></returns> - public async Task<OA_DeliverPlan> GetDeliverPlanInfo(Guid KeyId) + public async Task<OA_DeliverPlanPaiche> GetDeliverPlanInfo(Guid KeyId) { if (!await CheckRols()) { throw Oops.Oh("娌℃湁鏉冮檺"); } - return await _client.Queryable<OA_DeliverPlan>().Includes(x => x.SentStaff).Includes(x => x.Attachments).Includes(x => x.Driver).Includes(x => x.Manager) + return await _client.Queryable<OA_DeliverPlanPaiche>().Includes(x => x.Attachments).Includes(x => x.Driver).Includes(x => x.Manager).Includes(x=>x.DeliverPlans) .Where(x => x.Keyid == KeyId && x.ShifouDelivery != 2).FirstAsync(); + + } + + + /// <summary> + /// 鎵撳崱璁板綍璇︽儏 + /// </summary> + public async Task<OA_DriverRecord> GetDriverRecordInfo(Guid Id) + { + + if (!await CheckRols()) + { + throw Oops.Oh("娌℃湁鏉冮檺"); + } + + var data = await _client.Queryable<OA_DriverRecord>() + .Includes(x=>x.Car) + .Includes(x => x.Attachments) + .Includes(x => x.CarConditionAttachments) + .Where(x => x.Id == Id).FirstAsync(); + if (data == null) + throw Oops.Oh("娌℃湁鏉冮檺"); + return data; + + } + /// <summary> + /// 鑾峰彇杞﹁締鎵撳崱璁板綍 + /// </summary> + /// <param name="Param"></param> + /// <returns></returns> + [HttpPost] + public async Task<DeliverRecordPageRet> GetDriverRecords(DeliverRecordSearchParam Param) + { + if (!await CheckRols()) + { + throw Oops.Oh("娌℃湁鏉冮檺"); + } + + Expression<Func<OA_DriverRecord, bool>> SearchList = (x) => true; + SearchList = SearchList.And(x => x.ClockType != DriverClockType.RoughDraft);//涓嶇湅鑽夌 + if (Param.CarID != null) + { + SearchList = SearchList.And(x => x.CarID == Param.CarID); + } + + if (Param.TimeStart != null) + { + SearchList = SearchList.And(x => x.CreatTime >= Param.TimeStart.Value.Date); + } + if (Param.TimeEnd != null) + { + SearchList = SearchList.And(x => x.CreatTime < Param.TimeEnd.Value.Date.AddDays(1)); + } + if (Param.ClockType != null) + { + + SearchList = SearchList.And(x => x.ClockType == Param.ClockType); + + } + + //寮哄埗澧炲姞鍛樺伐杩囨护 + RefAsync<int> totle = 0; + var data = await _client.Queryable<OA_DriverRecord>().Includes(x=>x.Car) + .Where(SearchList).OrderByDescending(x => x.CreatTime.Date).ToPageListAsync(Param.page.PageIndex, Param.page.PageSize, totle); + + Param.page.TotalCount = totle; + // var count = await _client.Queryable<OA_DriverRecord>().Where(x => x.CreatTime.Date == DateTime.Now.Date).CountAsync(); + + return new DeliverRecordPageRet + + { + Data = data, + page = Param.page + + + }; + } /// <summary> @@ -382,6 +606,8 @@ return false; } + + /// <summary> /// 鐢熸垚sn鍙� /// </summary> @@ -390,7 +616,7 @@ { // var sn = await _client.Queryable<OA_DeliverPlan>().Where(x => x.CreateTime >= DateTime.Now.Date && x.CreateTime < DateTime.Now.AddDays(1).Date).OrderByDescending(x => x.SellerOrderId).Select(x => x.SellerOrderId).FirstAsync(); - var sn = await _client.Queryable<OA_DeliverPlan>().Where(x => x.CreateTime.Value.Date == DateTime.Now.Date).OrderByDescending(x => x.SellerOrderId).Select(x => x.SellerOrderId).FirstAsync(); + var sn = await _client.Queryable<OA_DeliverPlanPaiche>().Where(x => x.CreateTime.Value.Date == DateTime.Now.Date).OrderByDescending(x => x.SellerOrderId).Select(x => x.SellerOrderId).FirstAsync(); if (sn != null) { try diff --git a/cylsg/cylsg.Application/Transfer/UserTransfer.cs b/cylsg/cylsg.Application/Transfer/UserTransfer.cs index a464ff8..60a5fad 100644 --- a/cylsg/cylsg.Application/Transfer/UserTransfer.cs +++ b/cylsg/cylsg.Application/Transfer/UserTransfer.cs @@ -1,6 +1,7 @@ 锘縰sing cylsg.Core; using cylsg.Model.TransferOrder; using cylsg.Model.UserModel; +using cylsg.Model.utilityViewModel; using cylsg.utility; using cylsg.utility.Extend; using Cylsg.Filter; @@ -19,6 +20,7 @@ using System.Text; using System.Threading.Tasks; using TencentCloud.Ame.V20190916.Models; +using TencentCloud.Domain.V20180808.Models; using static SKIT.FlurlHttpClient.Wechat.Api.Models.ChannelsLeadsGetLeadsInfoByComponentIdResponse.Types; namespace cylsg.Application.Transfer @@ -285,7 +287,7 @@ SearchList = SearchList.And(x =>x.IsSetOK==param.IsSetOK); } if (param.HasSendOk == false) - SearchList= SearchList.And(x =>( x.FailNum >0||x.BatchStatus!= "FINISHED")||(x.BatchStatus==null&&x.ErrorCode== "NOT_ENOUGH")); //NOT_ENOUGH 鏄处鎴锋病鏈夐挶 + SearchList= SearchList.And(x =>( x.FailNum >0||x.BatchStatus!= "FINISHED")||(x.BatchStatus==null&&x.ErrorCode== "NOT_ENOUGH")||x.FailAmount>0); //NOT_ENOUGH 鏄处鎴锋病鏈夐挶 else //鏈変竴绗斿ぇ浣�0 鐨勮涓哄け璐� SearchList= SearchList.And(x => x.FailNum ==0&&x.BatchStatus=="FINISHED"); @@ -358,7 +360,7 @@ { throw Oops.Oh("宸茬粡澶勭悊涓嶅啀澶勭悊"); } - if(!((TOrder.ErrorCode== "INVALID_REQUEST"&&TOrder.ErrorMsg== "瀵瑰簲鍗曞彿宸茶秴鍑洪噸璇曟湡,璇锋煡鍗曠‘璁ゅ悗鍐冲畾鏄惁鎹㈠崟璇锋眰")|| (TOrder.ErrorCode == "NOT_ENOUGH"))) + if(!((TOrder.ErrorCode== "INVALID_REQUEST"&&TOrder.ErrorMsg== "瀵瑰簲鍗曞彿宸茶秴鍑洪噸璇曟湡,璇锋煡鍗曠‘璁ゅ悗鍐冲畾鏄惁鎹㈠崟璇锋眰")|| (TOrder.ErrorCode == "NOT_ENOUGH")||(TOrder.FailAmount>0))) { //涓嶆弧瓒冲啿娲楁敮浠樿姹� throw Oops.Oh("涓嶆弧瓒抽噸鏂版敮浠樿姹�"); @@ -883,9 +885,76 @@ } + /// <summary> + /// 鑾峰彇鍒楄〃璇︽儏 + /// </summary> + /// <returns></returns> + [HttpPost] + [AllowAnonymous] + public async Task<RetPageData<WeChatTransferOrder>> GetTransferOrder(SSPageByWhereOrder Param) + { + if (Param.Page == null) + throw Oops.Oh("鍙傛暟閿欒"); + + Expression<Func<WeChatTransferOrder, bool>> where = null; + + + if (!string.IsNullOrEmpty( Param.Where as string)) + { + //where = CommonHelper.FormatWhereExpression<WeChatTransferOrder>(Param.Where); + where = CommonHelper.FormatWhereExpression<WeChatTransferOrder>(Param.Where as string); + + } + Expression<Func<WeChatTransferOrder, object>> order = null; + if (Param.Order?.Name!=null) + { + order = CommonHelper.FormatPropertyExpression<WeChatTransferOrder>(Param.Order.Name); + + } + RefAsync<int> title = 0; + var BR = new BaseRepository<WeChatTransferOrder>(); + var data= await BR.AsQueryable().Includes(x=>x.user,u=>u.Worek).Select(x=>new WeChatTransferOrder + { + UserIDCode= x.user.Worek.IdCode, + UserName=x.user.Worek.name, + TotalAmount=x.TotalAmount, + TotalNum=x.TotalNum, + BatchId=x.BatchId, + SuccessNum=x.SuccessNum, + OutBatchNumber=x.OutBatchNumber, + BatchName = x.BatchName, + BatchStatus=x.BatchStatus, + UserID= x.UserID, + UpDataTime=x.UpDataTime, + YiTiXianGz=x.user.Worek.YiTiXianJine, + ZhongGz=x.user.Worek.TiXianZonge, + ItCode=x.user.ItCode, + SuccessAmount= x.SuccessAmount, + FailAmount=x.FailAmount + + + + + + + + }).MergeTable().WhereIF(where != null, where).OrderByIF(order!=null,order,Param.Order?.Des?? OrderByType.Asc).ToPageListAsync(Param.Page.PageIndex,Param.Page.PageSize, title); + + + + Param.Page.TotalCount = title; + + return new RetPageData<WeChatTransferOrder>() + { + data= data, + Page=Param.Page, + }; +; } + + } /// <summary> - /// + /// 鏀剁储 /// </summary> public class SearchTransferOder { @@ -961,4 +1030,7 @@ } + + + } diff --git a/cylsg/cylsg.Model/ECTEModel/EC_DriverRecord.cs b/cylsg/cylsg.Model/ECTEModel/EC_DriverRecord.cs index 01646a0..e316b0e 100644 --- a/cylsg/cylsg.Model/ECTEModel/EC_DriverRecord.cs +++ b/cylsg/cylsg.Model/ECTEModel/EC_DriverRecord.cs @@ -16,14 +16,17 @@ /// <summary> /// id Key /// </summary> - + [SugarColumn(IsPrimaryKey =true)] public Guid? Id { get; set; } /// <summary> /// 閲岀▼琛� 鍏噷 /// </summary> public int Mileage { get; set; } = 0; - + /// <summary> + /// 杞﹁締閲岀▼琛ㄥ浘鐗� + /// </summary> + public string? MileageImg { get; set; } /// <summary> /// 杞﹀喌 /// </summary> @@ -56,12 +59,13 @@ /// <summary> /// 鍒涘缓浜哄璞� /// </summary> - public OaStaff? Staff { get; set; } + [Navigate(NavigateType.OneToOne, nameof(OaStaff.MemberId), nameof(CreaterID))] + public OaStaff? CreaterStaff { get; set; } /// <summary> /// 杞﹁締 /// </summary> - + [Navigate(NavigateType.OneToOne, nameof(CarID), nameof(OA_CarManage.Keyid))] public OA_CarManage Car { get; set; } /// <summary> /// 鍒涘缓浜� @@ -88,6 +92,15 @@ public DriverClockType ClockType { get; set; } = DriverClockType.Unknown; + + + /// <summary> + /// 鏄惁鍙互缂栬緫 + /// </summary> + [SugarColumn(IsIgnore =true)] + public bool CanEdit { get; set; }=false; + + } /// <summary> /// 鎵撳崱绫诲瀷 @@ -105,7 +118,11 @@ /// <summary> /// 涓嬬彮鎵撳崱 /// </summary> - Clockout + Clockout, + /// <summary> + /// 鑽夌 + /// </summary> + RoughDraft } } diff --git a/cylsg/cylsg.Model/ECTEModel/OA_DeliverPlan.cs b/cylsg/cylsg.Model/ECTEModel/OA_DeliverPlan.cs index f8a3bbd..f06d5b9 100644 --- a/cylsg/cylsg.Model/ECTEModel/OA_DeliverPlan.cs +++ b/cylsg/cylsg.Model/ECTEModel/OA_DeliverPlan.cs @@ -186,7 +186,7 @@ /// <summary> /// 澶� 娉�: - /// 榛樿鍊�: + /// 榛樿鍊�: 瀹㈡埛缁忕悊 ///</summary> [SugarColumn(ColumnName="BusinessManagerId" ) ] public int? BusinessManagerId { get; set; } @@ -223,9 +223,25 @@ [SugarColumn(ColumnName="CompanyName" ) ] public string? CompanyName { get; set; } + /// <summary> + /// 澶� 娉�: + /// 榛樿鍊�: + ///</summary> + [SugarColumn(ColumnName = "TransferType")] + public int? TransferType { get; set; } /// <summary> /// 澶� 娉�: + /// 榛樿鍊�: + ///</summary> + [SugarColumn(ColumnName = "TransferName")] + public string? TransferName { get; set; } + /// <summary> + /// 娲捐溅ID + /// </summary> + public Guid? DeliverPlanPaicheid { get; set; } + /// <summary> + /// 澶� 娉�: /// 榛樿鍊�: 鏂板鐨勶紝涓嶅叧鑱斿叕鍙� ///</summary> diff --git a/cylsg/cylsg.Model/ECTEModel/OA_DeliverPlanPaiche.cs b/cylsg/cylsg.Model/ECTEModel/OA_DeliverPlanPaiche.cs new file mode 100644 index 0000000..6892bb0 --- /dev/null +++ b/cylsg/cylsg.Model/ECTEModel/OA_DeliverPlanPaiche.cs @@ -0,0 +1,278 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Linq; +using cylsg.Model.ECTEModel; +using SqlSugar; +namespace Models +{ + /// <summary> + /// 娲捐溅 + ///</summary> + [SugarTable("OA_DeliverPlanPaiche")] + public class OA_DeliverPlanPaiche + { + + + /// <summary> + /// 澶� 娉�: + /// 榛樿鍊�: + ///</summary> + [SugarColumn(ColumnName = "Keyid", IsPrimaryKey = true)] + public Guid? Keyid { get; set; } + + /// <summary> + /// 澶� 娉�: + /// 榛樿鍊�: + ///</summary> + [SugarColumn(ColumnName = "FirmId")] + public Guid? FirmId { get; set; } + + /// <summary> + /// 澶� 娉�:瀹㈡埛id + /// 榛樿鍊�: + ///</summary> + [SugarColumn(ColumnName = "BuyerId")] + public Guid? BuyerId { get; set; } + + /// <summary> + /// 澶� 娉�:瀹為檯鍒拌揪鏃堕棿 + /// 榛樿鍊�: + ///</summary> + [SugarColumn(ColumnName = "DeliveredTime")] + public DateTime? DeliveredTime { get; set; } + + /// <summary> + /// 澶� 娉�: + /// 榛樿鍊�: + ///</summary> + [SugarColumn(ColumnName = "DeliverTime")] + public DateTime? DeliverTime { get; set; } + + /// <summary> + /// 澶� 娉�:娉ㄦ剰浜嬮」 + /// 榛樿鍊�: + ///</summary> + [SugarColumn(ColumnName = "Zhuyishixiang")] + public string? Zhuyishixiang { get; set; } + + /// <summary> + /// 澶� 娉�:宸ヤ綔鑰冭瘎 + /// 榛樿鍊�: + ///</summary> + [SugarColumn(ColumnName = "Gongzuokaoping")] + public string? Gongzuokaoping { get; set; } + + /// <summary> + /// 澶� 娉�:姹借溅id + /// 榛樿鍊�: + ///</summary> + [SugarColumn(ColumnName = "CarId")] + public int? CarId { get; set; } + + /// <summary> + /// 澶� 娉�:鍙告満id + /// 榛樿鍊�: + ///</summary> + [SugarColumn(ColumnName = "DriverId")] + public int? DriverId { get; set; } + + /// <summary> + /// 鍙告満 + /// </summary> + [Navigate(NavigateType.OneToOne, nameof(DriverId), nameof(OaStaff.Keyid))] + public OaStaff? Driver { get; set; } + /// <summary> + /// 澶� 娉�:绉讳氦鐘舵�� 杩愯緭鐘舵�� 2绉讳氦 1 鏈Щ浜� + /// 榛樿鍊�: + ///</summary> + [SugarColumn(ColumnName = "Transferstatus")] + public int? Transferstatus { get; set; } + + /// <summary> + /// 澶� 娉�:绉讳氦鏃堕棿 + /// 榛樿鍊�: + ///</summary> + [SugarColumn(ColumnName = "TransfersTime")] + public DateTime? TransfersTime { get; set; } + + /// <summary> + /// 澶� 娉�: + /// 榛樿鍊�: + ///</summary> + [SugarColumn(ColumnName = "Sort")] + public int? Sort { get; set; } + + /// <summary> + /// 澶� 娉�: + /// 榛樿鍊�: + ///</summary> + [SugarColumn(ColumnName = "Creater")] + public Guid? Creater { get; set; } + + /// <summary> + /// 鍛樺伐 + /// </summary> + [Navigate(NavigateType.OneToOne, nameof(Creater), nameof(OaStaff.MemberId))] + public OaStaff? SentStaff { get; set; } + /// <summary> + /// 澶� 娉�: + /// 榛樿鍊�: + ///</summary> + [SugarColumn(ColumnName = "CreateTime")] + public DateTime? CreateTime { get; set; } + + /// <summary> + /// 澶� 娉�: + /// 榛樿鍊�: + ///</summary> + [SugarColumn(ColumnName = "Updater")] + public Guid? Updater { get; set; } + + /// <summary> + /// 澶� 娉�: + /// 榛樿鍊�: + ///</summary> + [SugarColumn(ColumnName = "LastUpdateTime")] + public DateTime? LastUpdateTime { get; set; } + + /// <summary> + /// 澶� 娉�:鎰忚鍙嶉 + /// 榛樿鍊�: + ///</summary> + [SugarColumn(ColumnName = "wentifankui")] + public string? Wentifankui { get; set; } + + /// <summary> + /// 澶� 娉�: + /// 榛樿鍊�: + ///</summary> + [SugarColumn(ColumnName = "Yichangchuli")] + public string? Yichangchuli { get; set; } + + /// <summary> + /// 澶� 娉�: + /// 榛樿鍊�: + ///</summary> + [SugarColumn(ColumnName = "Xingzhengzhuize")] + public string? Xingzhengzhuize { get; set; } + + /// <summary> + /// 澶� 娉�:閫佽揣鍗曞彿 + /// 榛樿鍊�: + ///</summary> + [SugarColumn(ColumnName = "SellerOrderId")] + public string? SellerOrderId { get; set; } + + /// <summary> + /// 澶� 娉�:鐢佃瘽 + /// 榛樿鍊�: + ///</summary> + [SugarColumn(ColumnName = "Dianhua")] + public string? Dianhua { get; set; } + + /// <summary> + /// 澶� 娉�:鍦板潃 + /// 榛樿鍊�: + ///</summary> + [SugarColumn(ColumnName = "Dizhi")] + public string? Dizhi { get; set; } + + /// <summary> + /// 澶� 娉�: + /// 榛樿鍊�: + ///</summary> + [SugarColumn(ColumnName = "Remark")] + public string? Remark { get; set; } + + /// <summary> + /// 澶� 娉�:椤圭洰缁忕悊 ID + /// 榛樿鍊�: + ///</summary> + [SugarColumn(ColumnName = "BusinessManagerId")] + public int? BusinessManagerId { get; set; } + + + /// <summary> + /// 瀹㈡埛缁忕悊 + /// </summary> + [Navigate(NavigateType.OneToOne, nameof(BusinessManagerId), nameof(OaStaff.Keyid))] + public OaStaff? Manager { get; set; } + /// <summary> + /// 澶� 娉�: + /// 榛樿鍊�: + ///</summary> + [SugarColumn(ColumnName = "Biddingcompany")] + public int? Biddingcompany { get; set; } + + /// <summary> + /// 澶� 娉�: 2蹇界暐 + /// 榛樿鍊�: + ///</summary> + [SugarColumn(ColumnName = "shifouDelivery")] + public int? ShifouDelivery { get; set; } + + /// <summary> + /// 澶� 娉�:鑱旂郴浜� + /// 榛樿鍊�: + ///</summary> + [SugarColumn(ColumnName = "Lianxiren")] + public string? Lianxiren { get; set; } + + /// <summary> + /// 澶� 娉�: + /// 榛樿鍊�: 鏂板鐨勶紝涓嶅叧鑱斿叕鍙� + ///</summary> + [SugarColumn(ColumnName = "CompanyName")] + public string? CompanyName { get; set; } + + /// <summary> + /// 澶� 娉�: + /// 榛樿鍊�: + ///</summary> + [SugarColumn(ColumnName = "TransferType")] + public int? TransferType { get; set; } + + /// <summary> + /// 澶� 娉�: + /// 榛樿鍊�: + ///</summary> + [SugarColumn(ColumnName = "TransferName")] + public string? TransferName { get; set; } + + + /// <summary> + /// 鍏宠仈閰嶉�佸崟 + /// </summary> + [Navigate(NavigateType.OneToMany, nameof(OA_DeliverPlan.DeliverPlanPaicheid), nameof(Keyid))] + public List<OA_DeliverPlan>? DeliverPlans { get; set; } + + + /// <summary> + /// 鍏宠仈璇锋眰鍗� + /// </summary> + [Navigate(NavigateType.OneToOne, nameof(Keyid),nameof(OA_DeliverTixing.DeliverPlanPaicheId))] + public OA_DeliverTixing? DelvceTiXing { get; set; } + /// <summary> + /// 澶� 娉�: + /// 榛樿鍊�: 鏂板鐨勶紝涓嶅叧鑱斿叕鍙� + ///</summary> + + public DeliveredType? Deliveredstatus { get; set; } = DeliveredType.Undeliver; + + /// <summary> + /// 闄勪欢鍒楄〃 3 + /// </summary> + [Navigate(NavigateType.OneToMany, nameof(OA_attachment.OA_Id), nameof(Keyid), "AttachmentType=3")] + public List<OA_attachment> Attachments { get; set; } + + + /// <summary> + /// 鎻愰啋鐨刱eyID 鏄彁閱掍紶閫掕繃鏉ョ殑闇�瑕佷紶閫掓瀛楁锛屽惁鍒欎负绌� + /// </summary> + [SugarColumn(IsIgnore =true)] + public int? DeliverTixingId { get; set; } + + + } + +} \ No newline at end of file diff --git a/cylsg/cylsg.Model/ECTEModel/OA_DeliverTixing.cs b/cylsg/cylsg.Model/ECTEModel/OA_DeliverTixing.cs index 1e9a2a9..704b946 100644 --- a/cylsg/cylsg.Model/ECTEModel/OA_DeliverTixing.cs +++ b/cylsg/cylsg.Model/ECTEModel/OA_DeliverTixing.cs @@ -29,7 +29,7 @@ /// <summary> /// 鍛樺伐 /// </summary> - [Navigate(NavigateType.OneToOne, nameof(FirmId), nameof(OaStaff.MemberId))] + [Navigate(NavigateType.OneToOne, nameof(Creater), nameof(OaStaff.MemberId))] public OaStaff? SentStaff { get; set; } /// <summary> @@ -87,7 +87,19 @@ ///</summary> [SugarColumn(ColumnName="LastUpdateTime" ) ] public DateTime? LastUpdateTime { get; set; } - + + /// <summary> + /// 娲捐溅ID + /// </summary> + public Guid? DeliverPlanPaicheId { get; set; } + + + /// <summary> + /// 娲捐溅鍗� + /// </summary> + [Navigate(NavigateType.OneToOne, nameof(DeliverPlanPaicheId), nameof(OA_DeliverPlanPaiche.Keyid))] + public OA_DeliverPlanPaiche? Paiche { get; set; } + } /// <summary> diff --git a/cylsg/cylsg.Model/TransferOrder/WeChartTransferOrder.cs b/cylsg/cylsg.Model/TransferOrder/WeChartTransferOrder.cs index bec1437..b1bf166 100644 --- a/cylsg/cylsg.Model/TransferOrder/WeChartTransferOrder.cs +++ b/cylsg/cylsg.Model/TransferOrder/WeChartTransferOrder.cs @@ -180,6 +180,37 @@ [SugarColumn(ColumnDescription = "鏄惁宸茬粡瀹屾垚澶勭悊", DefaultValue ="0")] public bool IsSetOK { get; set; }= false; + /// <summary> + /// 鍚嶅瓧 + /// </summary> + [SugarColumn(IsIgnore = true)] + public string? UserName { get; set; } + + /// <summary> + /// 鐢ㄦ埛韬唤璇� + /// </summary> + [SugarColumn(IsIgnore = true)] + public string? UserIDCode { get; set; } + + + /// <summary> + /// 宸叉彁鐜板伐璧� + /// </summary> + [SugarColumn(IsIgnore = true)] + public decimal? YiTiXianGz { get; set; } + + /// <summary> + /// 鎬诲伐璧� + /// </summary> + [SugarColumn(IsIgnore = true)] + public decimal? ZhongGz { get; set; } + + /// <summary> + /// 鐢佃瘽鍙风爜 + /// </summary> + [SugarColumn(IsIgnore = true)] + public string? ItCode { get; set; } + } diff --git a/cylsg/cylsg.Model/UserModel/User.cs b/cylsg/cylsg.Model/UserModel/User.cs index 739353a..1c4d35b 100644 --- a/cylsg/cylsg.Model/UserModel/User.cs +++ b/cylsg/cylsg.Model/UserModel/User.cs @@ -43,7 +43,7 @@ /// <summary> /// 鏄电О /// </summary> - [SugarColumn(ColumnDescription = "鐢ㄦ埛ID", ColumnDataType = "nvarchar(100)", IsNullable = true)] + [SugarColumn(ColumnDescription = "鐢ㄦ埛鏄电О", ColumnDataType = "nvarchar(100)", IsNullable = true)] public string? Nickname { get; set; } @@ -63,5 +63,12 @@ /// </summary> [SugarColumn(ColumnDescription = "WxOpenId", ColumnDataType = "nvarchar(100)", IsNullable = true)] public string? WxOpenId { get; set; } + + + /// <summary> + /// 鐢ㄦ埛琛ㄦ儏銆� + /// </summary> + [Navigate(NavigateType.OneToOne, nameof(Id),nameof(UserWorker.UserId))] + public UserWorker Worek { get; set; } } } diff --git a/cylsg/cylsg.Model/utilityViewModel/ECTESTOAPermissions.cs b/cylsg/cylsg.Model/utilityViewModel/ECTESTOAPermissions.cs index df66ddd..3f1ccde 100644 --- a/cylsg/cylsg.Model/utilityViewModel/ECTESTOAPermissions.cs +++ b/cylsg/cylsg.Model/utilityViewModel/ECTESTOAPermissions.cs @@ -75,4 +75,60 @@ } + + /// <summary> + /// 鏍规嵁where鏌ヨ鏉′欢鍜宱rder鎺掑簭鑾峰彇鍒楄〃 + /// </summary> + public class SSPageByWhereOrder + { + /// <summary> + /// 椤甸潰鍙傛暟 + /// </summary> + public PageModel Page { get; set; } + + /// <summary> + /// 鍒ゆ柇鏉′欢 蹇呴』鏄痡son鏍煎紡鐨勫瓧绗︿覆{xxx:ddd} + /// </summary> + public string? Where { get; set; } + + /// <summary> + /// 鎺掑簭 + /// </summary> + + public SSOrder? Order { get; set; } + + } + + /// <summary> + /// 鎺掑簭鏂瑰紡 + /// </summary> + public class SSOrder + { + /// <summary> + /// 灞炴�у悕绉� + /// </summary> + public string Name { get; set; } + /// <summary> + /// 鎺掑簭绫诲瀷 + /// </summary> + public OrderByType Des { get; set; } + } + /// <summary> + /// 閫氱敤杩斿洖鍙傛暟 + /// </summary> + /// <typeparam name="T"></typeparam> + public class RetPageData<T> + { + /// <summary> + /// 鏁版嵁 + /// </summary> + public List<T> data { get; set; } + /// <summary> + /// 椤甸潰鍙傛暟 + /// </summary> + public PageModel Page { get; set; } + + } + + } diff --git a/cylsg/cylsg.utility/CommonHelper.cs b/cylsg/cylsg.utility/CommonHelper.cs index 978d033..9ad189f 100644 --- a/cylsg/cylsg.utility/CommonHelper.cs +++ b/cylsg/cylsg.utility/CommonHelper.cs @@ -1,15 +1,22 @@ -锘縰sing System; +锘縰sing cylsg.utility.Extend; +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; +using System; using System.Collections.Generic; using System.ComponentModel; using System.ComponentModel.DataAnnotations; using System.Globalization; using System.Linq; +using System.Linq.Expressions; +using System.Net.Http.Json; using System.Reflection; using System.Runtime.Loader; using System.Security.Cryptography; using System.Text; +using System.Text.Json.Serialization; using System.Text.RegularExpressions; using System.Threading.Tasks; +using static cylsg.utility.untilityModels; namespace cylsg.utility { @@ -818,12 +825,165 @@ #endregion + /// <summary> + /// 鏍规嵁json瀛楃绌垮鐞� + /// </summary> + /// <typeparam name="T"></typeparam> + /// <param name="jsonString"></param> + /// <param name="parameter"></param> + /// <returns></returns> + private static Expression<Func<T, bool>> CreateWhereExpressionRecursive<T>(string jsonString, ParameterExpression parameter) + { + var conditions = new List<Expression>(); + + JObject jsonObject = JObject.Parse(jsonString); + + foreach (var property in jsonObject.Properties()) + { + var propertyName = property.Name; + var propertyValue = property.Value.ToString(); + if (propertyValue == "") //绌哄�间笉澶勭悊 + continue; + var propertyInfo = typeof(T).GetProperty(propertyName); + + if (propertyInfo == null) + { + propertyInfo = typeof(T).GetProperty(propertyName.FirstToCapitalize()); + if (propertyInfo == null) + continue; // 濡傛灉灞炴�т笉瀛樺湪锛岃烦杩� + } + + var propertyType = propertyInfo.PropertyType; + var TypeName = propertyType.GenericTypeArguments.Length > 0 ? propertyType.GenericTypeArguments[0].Name + "?" : propertyType.Name; + if (propertyType.IsClass && TypeName != "String") + { + // 閫掑綊澶勭悊宓屽妯″瀷 + var nestedParameter = Expression.Parameter(propertyType, propertyName); + var nestedJsonString = property.Value.ToString(); + + // 浣跨敤 MakeGenericType 鍔ㄦ�佸垱寤烘硾鍨嬫柟娉� + var genericMethod = typeof(CommonHelper).GetMethod("CreateWhereExpressionRecursive", BindingFlags.Static | BindingFlags.NonPublic) + .MakeGenericMethod(propertyType); + + // 璋冪敤娉涘瀷鏂规硶骞惰幏鍙栬繑鍥炵殑琛ㄨ揪寮� + var nestedConditions = (Expression<Func<object, bool>>)genericMethod.Invoke(null, new object[] { nestedJsonString, nestedParameter }); + + var propExpr = Expression.Property(parameter, propertyName); + var lambda = Expression.Lambda(nestedConditions.Body, nestedParameter); + var invoke = Expression.Invoke(lambda, propExpr); + conditions.Add(invoke); + } + else if (propertyType == typeof(string)) + { + var propExpr = Expression.Property(parameter, propertyName); + var constant = Expression.Constant(propertyValue); + + var containsMethod = typeof(string).GetMethod("Contains", new[] { typeof(string) }); + var containsExpression = Expression.Call(propExpr, containsMethod, constant); + conditions.Add(containsExpression); + } + else if (TypeName.Contains( "DateTime")) //鍏煎DateTime锛� + { + var dateRange = propertyValue.Split('~'); + if (dateRange.Length == 2) + { + var startDate = DateTime.Parse(dateRange[0]); + var endDate = DateTime.Parse(dateRange[1]); + + var propExpr = Expression.Property(parameter, propertyName); + var startConstant = Expression.Constant(startDate); + var endConstant = Expression.Constant(endDate); + if (TypeName == "DateTime?") + // 灏嗗父閲忚〃杈惧紡杞崲涓� Nullable<DateTime> + { + var startNullableConstant = Expression.Convert(startConstant, typeof(DateTime?)); + var endNullableConstant = Expression.Convert(endConstant, typeof(DateTime?)); + + + var greaterThanOrEqual = Expression.GreaterThanOrEqual(propExpr, startNullableConstant); + var lessThanOrEqual = Expression.LessThanOrEqual(propExpr, endNullableConstant); + + + var andExpression = Expression.AndAlso(greaterThanOrEqual, lessThanOrEqual); + conditions.Add(andExpression); + } + else + { + + var greaterThanOrEqual = Expression.GreaterThanOrEqual(propExpr, startConstant); + var lessThanOrEqual = Expression.LessThanOrEqual(propExpr, endConstant); + + + var andExpression = Expression.AndAlso(greaterThanOrEqual, lessThanOrEqual); + conditions.Add(andExpression); + + } + } + else if (DateTime.TryParse(propertyValue, out var dateTime)) + { + var propExpr = Expression.Property(parameter, propertyName); + var constant = Expression.Constant(dateTime); + var equalExpression = Expression.Equal(propExpr, constant); + conditions.Add(equalExpression); + } + } + else + { + var propExpr = Expression.Property(parameter, propertyName); + var constant = Expression.Constant(Convert.ChangeType(propertyValue, propertyType)); + var equalExpression = Expression.Equal(propExpr, constant); + conditions.Add(equalExpression); + } + } + + var body = conditions.Count > 1 ? conditions.Aggregate(Expression.AndAlso) : conditions.FirstOrDefault(); + return Expression.Lambda<Func<T, bool>>(body ?? Expression.Constant(true), parameter); + } + + /// <summary> + /// json鏍煎紡鍖栦负琛ㄨ揪寮忔爲 + /// </summary> + /// <typeparam name="T"></typeparam> + /// <param name="jsonString"></param> + /// <returns></returns> + public static Expression<Func<T, bool>> FormatWhereExpression<T>(string jsonString) + { + var parameter = Expression.Parameter(typeof(T), "x"); + return CreateWhereExpressionRecursive<T>(jsonString, parameter); + } + + /// <summary> + /// 鏇村叿灞炴�у悕绉扮敓鎴愯〃杈惧紡鏍戯紝濡倄.id + /// </summary> + /// <typeparam name="T"></typeparam> + /// <param name="propertyName"></param> + /// <returns></returns> + public static Expression<Func<T, object>> FormatPropertyExpression<T>(string propertyName) + { + // 鑾峰彇鍙傛暟琛ㄨ揪寮� + var parameter = Expression.Parameter(typeof(T), "x"); + + // 鑾峰彇灞炴�ц〃杈惧紡 + var propertyAccess = Expression.PropertyOrField(parameter, propertyName); + if (propertyAccess == null) + { + ///棣栧瓧姣嶈浆澶у啓 + propertyAccess = Expression.PropertyOrField(parameter, propertyName.FirstToCapitalize()); + } + + + // 鍒涘缓 Lambda 琛ㄨ揪寮忥紝骞跺湪杩斿洖鍊间腑杩涜绫诲瀷杞崲 + return Expression.Lambda<Func<T, object>>( + Expression.Convert(propertyAccess, typeof(object)), + parameter); + } + + + } - - } /// <summary> /// 鏋氫妇椤瑰睘鎬� @@ -847,4 +1007,9 @@ [Description("鏋氫妇椤瑰睘鎬�")] public string? Description { get; set; } } + + + + + } diff --git a/cylsg/cylsg.utility/Extend/StringEx.cs b/cylsg/cylsg.utility/Extend/StringEx.cs index d6e261a..095dbcc 100644 --- a/cylsg/cylsg.utility/Extend/StringEx.cs +++ b/cylsg/cylsg.utility/Extend/StringEx.cs @@ -232,5 +232,20 @@ } #endregion + /// <summary> + /// 棣栧瓧姣嶈浆澶у啓 + /// </summary> + /// <param name="input"></param> + /// <returns></returns> + public static string FirstToCapitalize(this string input) + { + if (string.IsNullOrEmpty(input)) + { + return input; + } + + TextInfo textInfo = new CultureInfo("en-US", false).TextInfo; + return textInfo.ToTitleCase(input.ToLower()).Substring(0, 1) + input.Substring(1); + } } } diff --git a/cylsg/cylsg.utility/cylsg.utility.csproj b/cylsg/cylsg.utility/cylsg.utility.csproj index 3cb2bf4..1dad6ca 100644 --- a/cylsg/cylsg.utility/cylsg.utility.csproj +++ b/cylsg/cylsg.utility/cylsg.utility.csproj @@ -8,6 +8,7 @@ <ItemGroup> <PackageReference Include="Microsoft.Extensions.Primitives" Version="8.0.0" /> + <PackageReference Include="Newtonsoft.Json" Version="13.0.3" /> </ItemGroup> </Project> diff --git a/cylsg/cylsg.utility/untilityModels.cs b/cylsg/cylsg.utility/untilityModels.cs new file mode 100644 index 0000000..b1ab056 --- /dev/null +++ b/cylsg/cylsg.utility/untilityModels.cs @@ -0,0 +1,16 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace cylsg.utility +{ + /// <summary> + /// 閫氱敤妯″瀷 + /// </summary> + public class untilityModels + { + + } +} -- Gitblit v1.9.1