使用tanstack/vue-query

This commit is contained in:
2024-09-19 19:27:55 +08:00
parent 13b57fa2ed
commit 2866a07493
12 changed files with 440 additions and 337 deletions

View File

@@ -148,7 +148,7 @@
</div> </div>
</div> </div>
<script type="module" src="/src/main.js"></script> <script type="module" src="/src/main.ts"></script>
</body> </body>
</html> </html>

482
cdTMP/package-lock.json generated
View File

@@ -9,9 +9,10 @@
"version": "0.0.3", "version": "0.0.3",
"dependencies": { "dependencies": {
"@arco-design/color": "^0.4.0", "@arco-design/color": "^0.4.0",
"@arco-design/web-vue": "^2.56.1", "@arco-design/web-vue": "^2.56.2",
"@tanstack/vue-query": "^5.56.2",
"@tinymce/tinymce-vue": "^6.0.1", "@tinymce/tinymce-vue": "^6.0.1",
"@vueuse/core": "^11.0.3", "@vueuse/core": "^11.1.0",
"axios": "^1.7.7", "axios": "^1.7.7",
"dayjs": "^1.11.13", "dayjs": "^1.11.13",
"echarts": "^5.5.1", "echarts": "^5.5.1",
@@ -25,34 +26,34 @@
"postcss-import": "^16.1.0", "postcss-import": "^16.1.0",
"qs": "^6.13.0", "qs": "^6.13.0",
"tinymce": "^7.3.0", "tinymce": "^7.3.0",
"vue": "^3.5.2", "vue": "^3.5.6",
"vue-clipboard3": "^2.0.0", "vue-clipboard3": "^2.0.0",
"vue-color-kit": "^1.0.6", "vue-color-kit": "^1.0.6",
"vue-echarts": "^7.0.3", "vue-echarts": "^7.0.3",
"vue-router": "^4.4.3", "vue-router": "^4.4.5",
"vuedraggable": "^2.24.3" "vuedraggable": "^2.24.3"
}, },
"devDependencies": { "devDependencies": {
"@types/lodash-es": "^4.17.12", "@types/lodash-es": "^4.17.12",
"@types/node": "^22.5.4", "@types/node": "^22.5.5",
"@types/nprogress": "^0.2.3", "@types/nprogress": "^0.2.3",
"@types/qs": "^6.9.15", "@types/qs": "^6.9.16",
"@vitejs/plugin-vue": "^5.1.3", "@vitejs/plugin-vue": "^5.1.4",
"@vitejs/plugin-vue-jsx": "^4.0.1", "@vitejs/plugin-vue-jsx": "^4.0.1",
"@vue/babel-plugin-jsx": "^1.1.1", "@vue/babel-plugin-jsx": "^1.2.5",
"autoprefixer": "^10.4.20", "autoprefixer": "^10.4.20",
"browserslist": "^4.23.0", "browserslist": "^4.23.0",
"caniuse-lite": "^1.0.30001657", "caniuse-lite": "^1.0.30001662",
"eslint": "^9.9.1", "eslint": "^9.10.0",
"eslint-plugin-vue": "^9.28.0", "eslint-plugin-vue": "^9.28.0",
"less": "^4.2.0", "less": "^4.2.0",
"less-loader": "^12.2.0", "less-loader": "^12.2.0",
"postcss": "^8.4.45", "postcss": "^8.4.47",
"prettier": "^3.3.3", "prettier": "^3.3.3",
"rollup-plugin-visualizer": "^5.12.0", "rollup-plugin-visualizer": "^5.12.0",
"tailwindcss": "^3.4.10", "tailwindcss": "^3.4.12",
"typescript": "^5.5.3", "typescript": "^5.6.2",
"vite": "^5.4.3" "vite": "^5.4.6"
} }
}, },
"node_modules/@alloc/quick-lru": { "node_modules/@alloc/quick-lru": {
@@ -86,9 +87,9 @@
} }
}, },
"node_modules/@arco-design/web-vue": { "node_modules/@arco-design/web-vue": {
"version": "2.56.1", "version": "2.56.2",
"resolved": "https://registry.npmmirror.com/@arco-design/web-vue/-/web-vue-2.56.1.tgz", "resolved": "https://registry.npmmirror.com/@arco-design/web-vue/-/web-vue-2.56.2.tgz",
"integrity": "sha512-RHIG7DXpCJrpxCKXdxZMzsGvMPCUott57soXW3aHJfxOcf+I2rdX8/UTAt2ka5MyRLUZ4B90B1LKyUgLChGklg==", "integrity": "sha512-tKSED9mGWaaJ1QUHhJtk0o/N9LHMiShVJwZRUynk2UxEnwMpQ81rI5LRDE0DbJl9GEIRMEiXVP3scp7g3Oe8yA==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@arco-design/color": "^0.4.0", "@arco-design/color": "^0.4.0",
@@ -160,13 +161,13 @@
} }
}, },
"node_modules/@babel/generator": { "node_modules/@babel/generator": {
"version": "7.25.0", "version": "7.25.6",
"resolved": "https://registry.npmmirror.com/@babel/generator/-/generator-7.25.0.tgz", "resolved": "https://registry.npmmirror.com/@babel/generator/-/generator-7.25.6.tgz",
"integrity": "sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==", "integrity": "sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@babel/types": "^7.25.0", "@babel/types": "^7.25.6",
"@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/gen-mapping": "^0.3.5",
"@jridgewell/trace-mapping": "^0.3.25", "@jridgewell/trace-mapping": "^0.3.25",
"jsesc": "^2.5.1" "jsesc": "^2.5.1"
@@ -402,12 +403,12 @@
} }
}, },
"node_modules/@babel/parser": { "node_modules/@babel/parser": {
"version": "7.25.3", "version": "7.25.6",
"resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.25.3.tgz", "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.25.6.tgz",
"integrity": "sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==", "integrity": "sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@babel/types": "^7.25.2" "@babel/types": "^7.25.6"
}, },
"bin": { "bin": {
"parser": "bin/babel-parser.js" "parser": "bin/babel-parser.js"
@@ -417,12 +418,13 @@
} }
}, },
"node_modules/@babel/plugin-syntax-jsx": { "node_modules/@babel/plugin-syntax-jsx": {
"version": "7.24.6", "version": "7.24.7",
"resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.6.tgz", "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz",
"integrity": "sha512-lWfvAIFNWMlCsU0DRUun2GpFwZdGTukLaHJqRh1JRb80NdAP5Sb1HDHB5X9P9OtgZHQl089UzQkpYlBq2VTPRw==", "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==",
"dev": true, "dev": true,
"license": "MIT",
"dependencies": { "dependencies": {
"@babel/helper-plugin-utils": "^7.24.6" "@babel/helper-plugin-utils": "^7.24.7"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
@@ -483,17 +485,17 @@
} }
}, },
"node_modules/@babel/traverse": { "node_modules/@babel/traverse": {
"version": "7.25.3", "version": "7.25.6",
"resolved": "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.25.3.tgz", "resolved": "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.25.6.tgz",
"integrity": "sha512-HefgyP1x754oGCsKmV5reSmtV7IXj/kpaE1XYY+D9G5PvKKoFfSbiS4M77MdjuwlZKDIKFCffq9rPU+H/s3ZdQ==", "integrity": "sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@babel/code-frame": "^7.24.7", "@babel/code-frame": "^7.24.7",
"@babel/generator": "^7.25.0", "@babel/generator": "^7.25.6",
"@babel/parser": "^7.25.3", "@babel/parser": "^7.25.6",
"@babel/template": "^7.25.0", "@babel/template": "^7.25.0",
"@babel/types": "^7.25.2", "@babel/types": "^7.25.6",
"debug": "^4.3.1", "debug": "^4.3.1",
"globals": "^11.1.0" "globals": "^11.1.0"
}, },
@@ -502,9 +504,9 @@
} }
}, },
"node_modules/@babel/types": { "node_modules/@babel/types": {
"version": "7.25.2", "version": "7.25.6",
"resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.25.2.tgz", "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.25.6.tgz",
"integrity": "sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==", "integrity": "sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@babel/helper-string-parser": "^7.24.8", "@babel/helper-string-parser": "^7.24.8",
@@ -992,9 +994,9 @@
} }
}, },
"node_modules/@eslint/js": { "node_modules/@eslint/js": {
"version": "9.9.1", "version": "9.10.0",
"resolved": "https://registry.npmmirror.com/@eslint/js/-/js-9.9.1.tgz", "resolved": "https://registry.npmmirror.com/@eslint/js/-/js-9.10.0.tgz",
"integrity": "sha512-xIDQRsfg5hNBqHz04H1R3scSVwmI+KUbqjsQKHKQ1DAUSaUjYPReZZmS/5PNiKu1fUvzDd6H7DEDKACSEhu+TQ==", "integrity": "sha512-fuXtbiP5GWIn8Fz+LWoOMVf/Jxm+aajZYkhi6CuEm4SxymFM+eUWzbO9qXT+L0iCkL5+KGYMCSGxo686H19S1g==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"engines": { "engines": {
@@ -1011,6 +1013,19 @@
"node": "^18.18.0 || ^20.9.0 || >=21.1.0" "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
} }
}, },
"node_modules/@eslint/plugin-kit": {
"version": "0.1.0",
"resolved": "https://registry.npmmirror.com/@eslint/plugin-kit/-/plugin-kit-0.1.0.tgz",
"integrity": "sha512-autAXT203ixhqei9xt+qkYOvY8l6LAFIdT2UXc/RPNeUVfqRF1BV94GTJyVPFKT8nFM6MyVJhjLj9E8JWvf5zQ==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
"levn": "^0.4.1"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
}
},
"node_modules/@humanwhocodes/module-importer": { "node_modules/@humanwhocodes/module-importer": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmmirror.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", "resolved": "https://registry.npmmirror.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
@@ -1353,6 +1368,83 @@
"win32" "win32"
] ]
}, },
"node_modules/@tanstack/match-sorter-utils": {
"version": "8.19.4",
"resolved": "https://registry.npmmirror.com/@tanstack/match-sorter-utils/-/match-sorter-utils-8.19.4.tgz",
"integrity": "sha512-Wo1iKt2b9OT7d+YGhvEPD3DXvPv2etTusIMhMUoG7fbhmxcXCtIjJDEygy91Y2JFlwGyjqiBPRozme7UD8hoqg==",
"license": "MIT",
"dependencies": {
"remove-accents": "0.5.0"
},
"engines": {
"node": ">=12"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/tannerlinsley"
}
},
"node_modules/@tanstack/query-core": {
"version": "5.56.2",
"resolved": "https://registry.npmmirror.com/@tanstack/query-core/-/query-core-5.56.2.tgz",
"integrity": "sha512-gor0RI3/R5rVV3gXfddh1MM+hgl0Z4G7tj6Xxpq6p2I03NGPaJ8dITY9Gz05zYYb/EJq9vPas/T4wn9EaDPd4Q==",
"license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/tannerlinsley"
}
},
"node_modules/@tanstack/vue-query": {
"version": "5.56.2",
"resolved": "https://registry.npmmirror.com/@tanstack/vue-query/-/vue-query-5.56.2.tgz",
"integrity": "sha512-VW7qS8JXwC3SZpawJHxQ+mWwWa5WVIQUUOh/OD6WI85eLcbJPg83ezjGupPXGKF9h31gl7CIRrnJDi4g5pK3Jg==",
"license": "MIT",
"dependencies": {
"@tanstack/match-sorter-utils": "^8.15.1",
"@tanstack/query-core": "5.56.2",
"@vue/devtools-api": "^6.6.3",
"vue-demi": "^0.14.10"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/tannerlinsley"
},
"peerDependencies": {
"@vue/composition-api": "^1.1.2",
"vue": "^2.6.0 || ^3.3.0"
},
"peerDependenciesMeta": {
"@vue/composition-api": {
"optional": true
}
}
},
"node_modules/@tanstack/vue-query/node_modules/vue-demi": {
"version": "0.14.10",
"resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.10.tgz",
"integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==",
"hasInstallScript": true,
"license": "MIT",
"bin": {
"vue-demi-fix": "bin/vue-demi-fix.js",
"vue-demi-switch": "bin/vue-demi-switch.js"
},
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/antfu"
},
"peerDependencies": {
"@vue/composition-api": "^1.0.0-rc.1",
"vue": "^3.0.0-0 || ^2.6.0"
},
"peerDependenciesMeta": {
"@vue/composition-api": {
"optional": true
}
}
},
"node_modules/@tinymce/tinymce-vue": { "node_modules/@tinymce/tinymce-vue": {
"version": "6.0.1", "version": "6.0.1",
"resolved": "https://registry.npmmirror.com/@tinymce/tinymce-vue/-/tinymce-vue-6.0.1.tgz", "resolved": "https://registry.npmmirror.com/@tinymce/tinymce-vue/-/tinymce-vue-6.0.1.tgz",
@@ -1421,9 +1513,9 @@
} }
}, },
"node_modules/@types/node": { "node_modules/@types/node": {
"version": "22.5.4", "version": "22.5.5",
"resolved": "https://registry.npmmirror.com/@types/node/-/node-22.5.4.tgz", "resolved": "https://registry.npmmirror.com/@types/node/-/node-22.5.5.tgz",
"integrity": "sha512-FDuKUJQm/ju9fT/SeX/6+gBzoPzlVCzfzmGkwKvRHQVxi4BntVbyIwf6a4Xn62mrvndLiml6z/UBXIdEVjQLXg==", "integrity": "sha512-Xjs4y5UPO/CLdzpgR6GirZJx36yScjh73+2NlLlkFRSoQN8B0DpfXPdZGnvVmLRLOsqDpOfTNv7D9trgGhmOIA==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
@@ -1438,9 +1530,9 @@
"license": "MIT" "license": "MIT"
}, },
"node_modules/@types/qs": { "node_modules/@types/qs": {
"version": "6.9.15", "version": "6.9.16",
"resolved": "https://registry.npmmirror.com/@types/qs/-/qs-6.9.15.tgz", "resolved": "https://registry.npmmirror.com/@types/qs/-/qs-6.9.16.tgz",
"integrity": "sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==", "integrity": "sha512-7i+zxXdPD0T4cKDuxCUXJ4wHcsJLwENa6Z3dCu8cfCK743OGy5Nu1RmAGqDPsoTDINVEcdXKRvR/zre+P2Ku1A==",
"dev": true, "dev": true,
"license": "MIT" "license": "MIT"
}, },
@@ -1450,9 +1542,9 @@
"integrity": "sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==" "integrity": "sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow=="
}, },
"node_modules/@vitejs/plugin-vue": { "node_modules/@vitejs/plugin-vue": {
"version": "5.1.3", "version": "5.1.4",
"resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-5.1.3.tgz", "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-5.1.4.tgz",
"integrity": "sha512-3xbWsKEKXYlmX82aOHufFQVnkbMC/v8fLpWwh6hWOUrK5fbbtBh9Q/WWse27BFgSy2/e2c0fz5Scgya9h2GLhw==", "integrity": "sha512-N2XSI2n3sQqp5w7Y/AN/L2XDjBIRGqXko+eDp42sydYSBeJuSm5a1sLf8zakmo8u7tA8NmBgoDLA1HeOESjp9A==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"engines": { "engines": {
@@ -1483,26 +1575,27 @@
} }
}, },
"node_modules/@vue/babel-helper-vue-transform-on": { "node_modules/@vue/babel-helper-vue-transform-on": {
"version": "1.2.2", "version": "1.2.5",
"resolved": "https://registry.npmmirror.com/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.2.2.tgz", "resolved": "https://registry.npmmirror.com/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.2.5.tgz",
"integrity": "sha512-nOttamHUR3YzdEqdM/XXDyCSdxMA9VizUKoroLX6yTyRtggzQMHXcmwh8a7ZErcJttIBIc9s68a1B8GZ+Dmvsw==", "integrity": "sha512-lOz4t39ZdmU4DJAa2hwPYmKc8EsuGa2U0L9KaZaOJUt0UwQNjNA3AZTq6uEivhOKhhG1Wvy96SvYBoFmCg3uuw==",
"dev": true "dev": true,
"license": "MIT"
}, },
"node_modules/@vue/babel-plugin-jsx": { "node_modules/@vue/babel-plugin-jsx": {
"version": "1.2.2", "version": "1.2.5",
"resolved": "https://registry.npmmirror.com/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.2.2.tgz", "resolved": "https://registry.npmmirror.com/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.2.5.tgz",
"integrity": "sha512-nYTkZUVTu4nhP199UoORePsql0l+wj7v/oyQjtThUVhJl1U+6qHuoVhIvR3bf7eVKjbCK+Cs2AWd7mi9Mpz9rA==", "integrity": "sha512-zTrNmOd4939H9KsRIGmmzn3q2zvv1mjxkYZHgqHZgDrXz5B1Q3WyGEjO2f+JrmKghvl1JIRcvo63LgM1kH5zFg==",
"dev": true, "dev": true,
"license": "MIT",
"dependencies": { "dependencies": {
"@babel/helper-module-imports": "~7.22.15", "@babel/helper-module-imports": "^7.24.7",
"@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-plugin-utils": "^7.24.8",
"@babel/plugin-syntax-jsx": "^7.23.3", "@babel/plugin-syntax-jsx": "^7.24.7",
"@babel/template": "^7.23.9", "@babel/template": "^7.25.0",
"@babel/traverse": "^7.23.9", "@babel/traverse": "^7.25.6",
"@babel/types": "^7.23.9", "@babel/types": "^7.25.6",
"@vue/babel-helper-vue-transform-on": "1.2.2", "@vue/babel-helper-vue-transform-on": "1.2.5",
"@vue/babel-plugin-resolve-type": "1.2.2", "@vue/babel-plugin-resolve-type": "1.2.5",
"camelcase": "^6.3.0",
"html-tags": "^3.3.1", "html-tags": "^3.3.1",
"svg-tags": "^1.0.0" "svg-tags": "^1.0.0"
}, },
@@ -1515,161 +1608,138 @@
} }
} }
}, },
"node_modules/@vue/babel-plugin-jsx/node_modules/@babel/helper-module-imports": {
"version": "7.22.15",
"resolved": "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz",
"integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==",
"dev": true,
"dependencies": {
"@babel/types": "^7.22.15"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@vue/babel-plugin-resolve-type": { "node_modules/@vue/babel-plugin-resolve-type": {
"version": "1.2.2", "version": "1.2.5",
"resolved": "https://registry.npmmirror.com/@vue/babel-plugin-resolve-type/-/babel-plugin-resolve-type-1.2.2.tgz", "resolved": "https://registry.npmmirror.com/@vue/babel-plugin-resolve-type/-/babel-plugin-resolve-type-1.2.5.tgz",
"integrity": "sha512-EntyroPwNg5IPVdUJupqs0CFzuf6lUrVvCspmv2J1FITLeGnUCuoGNNk78dgCusxEiYj6RMkTJflGSxk5aIC4A==", "integrity": "sha512-U/ibkQrf5sx0XXRnUZD1mo5F7PkpKyTbfXM3a3rC4YnUz6crHEz9Jg09jzzL6QYlXNto/9CePdOg/c87O4Nlfg==",
"dev": true, "dev": true,
"license": "MIT",
"dependencies": { "dependencies": {
"@babel/code-frame": "^7.23.5", "@babel/code-frame": "^7.24.7",
"@babel/helper-module-imports": "~7.22.15", "@babel/helper-module-imports": "^7.24.7",
"@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-plugin-utils": "^7.24.8",
"@babel/parser": "^7.23.9", "@babel/parser": "^7.25.6",
"@vue/compiler-sfc": "^3.4.15" "@vue/compiler-sfc": "^3.5.3"
}, },
"peerDependencies": { "peerDependencies": {
"@babel/core": "^7.0.0-0" "@babel/core": "^7.0.0-0"
} }
}, },
"node_modules/@vue/babel-plugin-resolve-type/node_modules/@babel/helper-module-imports": {
"version": "7.22.15",
"resolved": "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz",
"integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==",
"dev": true,
"dependencies": {
"@babel/types": "^7.22.15"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@vue/compiler-core": { "node_modules/@vue/compiler-core": {
"version": "3.5.2", "version": "3.5.6",
"resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.5.2.tgz", "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.5.6.tgz",
"integrity": "sha512-1aP7FL2GkqfcskHWGg3lfWQpJnrmewKc+rNJ/hq9WNaAw4BEyJ5QbNChnqmbw+tJ409zdy1XWmUeXXMrCKJcQQ==", "integrity": "sha512-r+gNu6K4lrvaQLQGmf+1gc41p3FO2OUJyWmNqaIITaJU6YFiV5PtQSFZt8jfztYyARwqhoCayjprC7KMvT3nRA==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@babel/parser": "^7.25.3", "@babel/parser": "^7.25.3",
"@vue/shared": "3.5.2", "@vue/shared": "3.5.6",
"entities": "^4.5.0", "entities": "^4.5.0",
"estree-walker": "^2.0.2", "estree-walker": "^2.0.2",
"source-map-js": "^1.2.0" "source-map-js": "^1.2.0"
} }
}, },
"node_modules/@vue/compiler-dom": { "node_modules/@vue/compiler-dom": {
"version": "3.5.2", "version": "3.5.6",
"resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.5.2.tgz", "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.5.6.tgz",
"integrity": "sha512-QY4DpT8ZIUyu/ZA5gErpSEDocGNEbHmpkZIC/d5jbp/rUF0iOJNigAy3HCCKc0PMMhDlrcysO3ufQ6Ab4MpEcQ==", "integrity": "sha512-xRXqxDrIqK8v8sSScpistyYH0qYqxakpsIvqMD2e5sV/PXQ1mTwtXp4k42yHK06KXxKSmitop9e45Ui/3BrTEw==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@vue/compiler-core": "3.5.2", "@vue/compiler-core": "3.5.6",
"@vue/shared": "3.5.2" "@vue/shared": "3.5.6"
} }
}, },
"node_modules/@vue/compiler-sfc": { "node_modules/@vue/compiler-sfc": {
"version": "3.5.2", "version": "3.5.6",
"resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.5.2.tgz", "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.5.6.tgz",
"integrity": "sha512-vErEtybSU290LbMW+ChYllI9tNJEdTW1oU+8cZWINZyjlWeTSa9YqDl4/pZJSnozOI+HmcaC1Vz2eFKmXNSXZA==", "integrity": "sha512-pjWJ8Kj9TDHlbF5LywjVso+BIxCY5wVOLhkEXRhuCHDxPFIeX1zaFefKs8RYoHvkSMqRWt93a0f2gNJVJixHwg==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@babel/parser": "^7.25.3", "@babel/parser": "^7.25.3",
"@vue/compiler-core": "3.5.2", "@vue/compiler-core": "3.5.6",
"@vue/compiler-dom": "3.5.2", "@vue/compiler-dom": "3.5.6",
"@vue/compiler-ssr": "3.5.2", "@vue/compiler-ssr": "3.5.6",
"@vue/shared": "3.5.2", "@vue/shared": "3.5.6",
"estree-walker": "^2.0.2", "estree-walker": "^2.0.2",
"magic-string": "^0.30.11", "magic-string": "^0.30.11",
"postcss": "^8.4.44", "postcss": "^8.4.47",
"source-map-js": "^1.2.0" "source-map-js": "^1.2.0"
} }
}, },
"node_modules/@vue/compiler-ssr": { "node_modules/@vue/compiler-ssr": {
"version": "3.5.2", "version": "3.5.6",
"resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.5.2.tgz", "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.5.6.tgz",
"integrity": "sha512-vMtA4tQK/AM3UAYJsmouQzQpgG+h9TKiD5BV+Zt+ZyAMdicxzSEEFGWf/CykRnDpqj9fMfIHPhOezJVNxiXe2A==", "integrity": "sha512-VpWbaZrEOCqnmqjE83xdwegtr5qO/2OPUC6veWgvNqTJ3bYysz6vY3VqMuOijubuUYPRpG3OOKIh9TD0Stxb9A==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@vue/compiler-dom": "3.5.2", "@vue/compiler-dom": "3.5.6",
"@vue/shared": "3.5.2" "@vue/shared": "3.5.6"
} }
}, },
"node_modules/@vue/devtools-api": { "node_modules/@vue/devtools-api": {
"version": "6.6.3", "version": "6.6.4",
"resolved": "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.6.3.tgz", "resolved": "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.6.4.tgz",
"integrity": "sha512-0MiMsFma/HqA6g3KLKn+AGpL1kgKhFWszC9U29NfpWK5LE7bjeXxySWJrOJ77hBz+TBrBQ7o4QJqbPbqbs8rJw==", "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==",
"license": "MIT" "license": "MIT"
}, },
"node_modules/@vue/reactivity": { "node_modules/@vue/reactivity": {
"version": "3.5.2", "version": "3.5.6",
"resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.5.2.tgz", "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.5.6.tgz",
"integrity": "sha512-lJwWL5bNht+2vIwU/+lnGdH+FKFxzz6z8WkoIJityPLiasWU+HDUvEsC7gm3JFwbTf7Kk+Nr9kJMaPy0HXwwxQ==", "integrity": "sha512-shZ+KtBoHna5GyUxWfoFVBCVd7k56m6lGhk5e+J9AKjheHF6yob5eukssHRI+rzvHBiU1sWs/1ZhNbLExc5oYQ==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@vue/shared": "3.5.2" "@vue/shared": "3.5.6"
} }
}, },
"node_modules/@vue/runtime-core": { "node_modules/@vue/runtime-core": {
"version": "3.5.2", "version": "3.5.6",
"resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.5.2.tgz", "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.5.6.tgz",
"integrity": "sha512-oU+i9sJjGEMfEhlrJ7SZv7CdSIgUNyBHnWHa0SqU2RF48V3/ATajzpWq1/DkiVJ1mtx+cQFAMKs8s/3cB3YlLQ==", "integrity": "sha512-FpFULR6+c2lI+m1fIGONLDqPQO34jxV8g6A4wBOgne8eSRHP6PQL27+kWFIx5wNhhjkO7B4rgtsHAmWv7qKvbg==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@vue/reactivity": "3.5.2", "@vue/reactivity": "3.5.6",
"@vue/shared": "3.5.2" "@vue/shared": "3.5.6"
} }
}, },
"node_modules/@vue/runtime-dom": { "node_modules/@vue/runtime-dom": {
"version": "3.5.2", "version": "3.5.6",
"resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.5.2.tgz", "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.5.6.tgz",
"integrity": "sha512-2qvysn+oR0QnFKaWZxQ90iVpWAK/WPpYmODHCv24IDXjsBrdHbjLBj9s6YBdPaMuQhs0LNsmhsgZYZBkszLg6g==", "integrity": "sha512-SDPseWre45G38ENH2zXRAHL1dw/rr5qp91lS4lt/nHvMr0MhsbCbihGAWLXNB/6VfFOJe2O+RBRkXU+CJF7/sw==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@vue/reactivity": "3.5.2", "@vue/reactivity": "3.5.6",
"@vue/runtime-core": "3.5.2", "@vue/runtime-core": "3.5.6",
"@vue/shared": "3.5.2", "@vue/shared": "3.5.6",
"csstype": "^3.1.3" "csstype": "^3.1.3"
} }
}, },
"node_modules/@vue/server-renderer": { "node_modules/@vue/server-renderer": {
"version": "3.5.2", "version": "3.5.6",
"resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.5.2.tgz", "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.5.6.tgz",
"integrity": "sha512-3POhYCA8KfbmuDuUiNbMXnpdh9pwE4SvAqo7VvACjklLkf3AaMkY3TvV7APeEa/WQezrnL+E4X2ASpJsKeS4cQ==", "integrity": "sha512-zivnxQnOnwEXVaT9CstJ64rZFXMS5ZkKxCjDQKiMSvUhXRzFLWZVbaBiNF4HGDqGNNsTgmjcCSmU6TB/0OOxLA==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@vue/compiler-ssr": "3.5.2", "@vue/compiler-ssr": "3.5.6",
"@vue/shared": "3.5.2" "@vue/shared": "3.5.6"
}, },
"peerDependencies": { "peerDependencies": {
"vue": "3.5.2" "vue": "3.5.6"
} }
}, },
"node_modules/@vue/shared": { "node_modules/@vue/shared": {
"version": "3.5.2", "version": "3.5.6",
"resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.5.2.tgz", "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.5.6.tgz",
"integrity": "sha512-Ce89WNFBzcDca/AgFTxgX4/K4iAyF7oFIp8Z5aBbFBNbtpwnQr+5pZOoHndxnjE2h+YFcipVMzs9UL11XB6dwA==", "integrity": "sha512-eidH0HInnL39z6wAt6SFIwBrvGOpDWsDxlw3rCgo1B+CQ1781WzQUSU3YjxgdkcJo9Q8S6LmXTkvI+cLHGkQfA==",
"license": "MIT" "license": "MIT"
}, },
"node_modules/@vueuse/core": { "node_modules/@vueuse/core": {
"version": "11.0.3", "version": "11.1.0",
"resolved": "https://registry.npmmirror.com/@vueuse/core/-/core-11.0.3.tgz", "resolved": "https://registry.npmmirror.com/@vueuse/core/-/core-11.1.0.tgz",
"integrity": "sha512-RENlh64+SYA9XMExmmH1a3TPqeIuJBNNB/63GT35MZI+zpru3oMRUA6cEFr9HmGqEgUisurwGwnIieF6qu3aXw==", "integrity": "sha512-P6dk79QYA6sKQnghrUz/1tHi0n9mrb/iO1WTMk/ElLmTyNqgDeSZ3wcDf6fRBGzRJbeG1dxzEOvLENMjr+E3fg==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@types/web-bluetooth": "^0.0.20", "@types/web-bluetooth": "^0.0.20",
"@vueuse/metadata": "11.0.3", "@vueuse/metadata": "11.1.0",
"@vueuse/shared": "11.0.3", "@vueuse/shared": "11.1.0",
"vue-demi": ">=0.14.10" "vue-demi": ">=0.14.10"
}, },
"funding": { "funding": {
@@ -1703,18 +1773,18 @@
} }
}, },
"node_modules/@vueuse/metadata": { "node_modules/@vueuse/metadata": {
"version": "11.0.3", "version": "11.1.0",
"resolved": "https://registry.npmmirror.com/@vueuse/metadata/-/metadata-11.0.3.tgz", "resolved": "https://registry.npmmirror.com/@vueuse/metadata/-/metadata-11.1.0.tgz",
"integrity": "sha512-+FtbO4SD5WpsOcQTcC0hAhNlOid6QNLzqedtquTtQ+CRNBoAt9GuV07c6KNHK1wCmlq8DFPwgiLF2rXwgSHX5Q==", "integrity": "sha512-l9Q502TBTaPYGanl1G+hPgd3QX5s4CGnpXriVBR5fEZ/goI6fvDaVmIl3Td8oKFurOxTmbXvBPSsgrd6eu6HYg==",
"license": "MIT", "license": "MIT",
"funding": { "funding": {
"url": "https://github.com/sponsors/antfu" "url": "https://github.com/sponsors/antfu"
} }
}, },
"node_modules/@vueuse/shared": { "node_modules/@vueuse/shared": {
"version": "11.0.3", "version": "11.1.0",
"resolved": "https://registry.npmmirror.com/@vueuse/shared/-/shared-11.0.3.tgz", "resolved": "https://registry.npmmirror.com/@vueuse/shared/-/shared-11.1.0.tgz",
"integrity": "sha512-0rY2m6HS5t27n/Vp5cTDsKTlNnimCqsbh/fmT2LgE+aaU42EMfXo8+bNX91W9I7DDmxfuACXMmrd7d79JxkqWA==", "integrity": "sha512-YUtIpY122q7osj+zsNMFAfMTubGz0sn5QzE5gPzAIiCmtt2ha3uQUY1+JPyL4gRCTsLPX82Y9brNbo/aqlA91w==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"vue-demi": ">=0.14.10" "vue-demi": ">=0.14.10"
@@ -2247,15 +2317,6 @@
"node": ">=6" "node": ">=6"
} }
}, },
"node_modules/camelcase": {
"version": "6.3.0",
"resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-6.3.0.tgz",
"integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
"dev": true,
"engines": {
"node": ">=10"
}
},
"node_modules/camelcase-css": { "node_modules/camelcase-css": {
"version": "2.0.1", "version": "2.0.1",
"resolved": "https://registry.npmmirror.com/camelcase-css/-/camelcase-css-2.0.1.tgz", "resolved": "https://registry.npmmirror.com/camelcase-css/-/camelcase-css-2.0.1.tgz",
@@ -2266,9 +2327,9 @@
} }
}, },
"node_modules/caniuse-lite": { "node_modules/caniuse-lite": {
"version": "1.0.30001657", "version": "1.0.30001662",
"resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001657.tgz", "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001662.tgz",
"integrity": "sha512-DPbJAlP8/BAXy3IgiWmZKItubb3TYGP0WscQQlVGIfT4s/YlFYVuJgyOsQNP7rJRChx/qdMeLJQJP0Sgg2yjNA==", "integrity": "sha512-sgMUVwLmGseH8ZIrm1d51UbrhqMCH3jvS7gF/M6byuHOnKyLOBL7W8yz5V02OHwgLGA36o/AFhWzzh4uc5aqTA==",
"dev": true, "dev": true,
"funding": [ "funding": [
{ {
@@ -2730,9 +2791,9 @@
} }
}, },
"node_modules/eslint": { "node_modules/eslint": {
"version": "9.9.1", "version": "9.10.0",
"resolved": "https://registry.npmmirror.com/eslint/-/eslint-9.9.1.tgz", "resolved": "https://registry.npmmirror.com/eslint/-/eslint-9.10.0.tgz",
"integrity": "sha512-dHvhrbfr4xFQ9/dq+jcVneZMyRYLjggWjk6RVsIiHsP8Rz6yZ8LvZ//iU4TrZF+SXWG+JkNF2OyiZRvzgRDqMg==", "integrity": "sha512-Y4D0IgtBZfOcOUAIQTSXBKoNGfY0REGqHJG6+Q81vNippW5YlKjHFj4soMxamKK1NXHUWuBZTLdU3Km+L/pcHw==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
@@ -2740,7 +2801,8 @@
"@eslint-community/regexpp": "^4.11.0", "@eslint-community/regexpp": "^4.11.0",
"@eslint/config-array": "^0.18.0", "@eslint/config-array": "^0.18.0",
"@eslint/eslintrc": "^3.1.0", "@eslint/eslintrc": "^3.1.0",
"@eslint/js": "9.9.1", "@eslint/js": "9.10.0",
"@eslint/plugin-kit": "^0.1.0",
"@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/module-importer": "^1.0.1",
"@humanwhocodes/retry": "^0.3.0", "@humanwhocodes/retry": "^0.3.0",
"@nodelib/fs.walk": "^1.2.8", "@nodelib/fs.walk": "^1.2.8",
@@ -2763,7 +2825,6 @@
"is-glob": "^4.0.0", "is-glob": "^4.0.0",
"is-path-inside": "^3.0.3", "is-path-inside": "^3.0.3",
"json-stable-stringify-without-jsonify": "^1.0.1", "json-stable-stringify-without-jsonify": "^1.0.1",
"levn": "^0.4.1",
"lodash.merge": "^4.6.2", "lodash.merge": "^4.6.2",
"minimatch": "^3.1.2", "minimatch": "^3.1.2",
"natural-compare": "^1.4.0", "natural-compare": "^1.4.0",
@@ -4370,9 +4431,9 @@
"integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
}, },
"node_modules/picocolors": { "node_modules/picocolors": {
"version": "1.0.1", "version": "1.1.0",
"resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.1.tgz", "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.1.0.tgz",
"integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==",
"license": "ISC" "license": "ISC"
}, },
"node_modules/picomatch": { "node_modules/picomatch": {
@@ -4462,9 +4523,9 @@
} }
}, },
"node_modules/postcss": { "node_modules/postcss": {
"version": "8.4.45", "version": "8.4.47",
"resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.45.tgz", "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.47.tgz",
"integrity": "sha512-7KTLTdzdZZYscUc65XmjFiB73vBhBfbPztCYdUNvlaso9PrzjzcmjqBPR0lNGkcVlcO4BjiO5rK/qNz+XAen1Q==", "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==",
"funding": [ "funding": [
{ {
"type": "opencollective", "type": "opencollective",
@@ -4482,8 +4543,8 @@
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"nanoid": "^3.3.7", "nanoid": "^3.3.7",
"picocolors": "^1.0.1", "picocolors": "^1.1.0",
"source-map-js": "^1.2.0" "source-map-js": "^1.2.1"
}, },
"engines": { "engines": {
"node": "^10 || ^12 || >=14" "node": "^10 || ^12 || >=14"
@@ -4709,6 +4770,12 @@
"node": ">=8.10.0" "node": ">=8.10.0"
} }
}, },
"node_modules/remove-accents": {
"version": "0.5.0",
"resolved": "https://registry.npmmirror.com/remove-accents/-/remove-accents-0.5.0.tgz",
"integrity": "sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A==",
"license": "MIT"
},
"node_modules/require-directory": { "node_modules/require-directory": {
"version": "2.1.1", "version": "2.1.1",
"resolved": "https://registry.npmmirror.com/require-directory/-/require-directory-2.1.1.tgz", "resolved": "https://registry.npmmirror.com/require-directory/-/require-directory-2.1.1.tgz",
@@ -4991,9 +5058,10 @@
} }
}, },
"node_modules/source-map-js": { "node_modules/source-map-js": {
"version": "1.2.0", "version": "1.2.1",
"resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.0.tgz", "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.1.tgz",
"integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
"license": "BSD-3-Clause",
"engines": { "engines": {
"node": ">=0.10.0" "node": ">=0.10.0"
} }
@@ -5140,9 +5208,9 @@
"dev": true "dev": true
}, },
"node_modules/tailwindcss": { "node_modules/tailwindcss": {
"version": "3.4.10", "version": "3.4.12",
"resolved": "https://registry.npmmirror.com/tailwindcss/-/tailwindcss-3.4.10.tgz", "resolved": "https://registry.npmmirror.com/tailwindcss/-/tailwindcss-3.4.12.tgz",
"integrity": "sha512-KWZkVPm7yJRhdu4SRSl9d4AK2wM3a50UsvgHZO7xY77NQr2V+fIrEuoDGQcbvswWvFGbS2f6e+jC/6WJm1Dl0w==", "integrity": "sha512-Htf/gHj2+soPb9UayUNci/Ja3d8pTmu9ONTfh4QY8r3MATTZOzmv6UYWF7ZwikEIC8okpfqmGqrmDehua8mF8w==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
@@ -5358,9 +5426,9 @@
} }
}, },
"node_modules/typescript": { "node_modules/typescript": {
"version": "5.5.4", "version": "5.6.2",
"resolved": "https://registry.npmmirror.com/typescript/-/typescript-5.5.4.tgz", "resolved": "https://registry.npmmirror.com/typescript/-/typescript-5.6.2.tgz",
"integrity": "sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==", "integrity": "sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==",
"devOptional": true, "devOptional": true,
"license": "Apache-2.0", "license": "Apache-2.0",
"bin": { "bin": {
@@ -5429,9 +5497,9 @@
"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
}, },
"node_modules/vite": { "node_modules/vite": {
"version": "5.4.3", "version": "5.4.6",
"resolved": "https://registry.npmmirror.com/vite/-/vite-5.4.3.tgz", "resolved": "https://registry.npmmirror.com/vite/-/vite-5.4.6.tgz",
"integrity": "sha512-IH+nl64eq9lJjFqU+/yrRnrHPVTlgy42/+IzbOdaFDVlyLgI/wDlf+FCobXLX1cT0X5+7LMyH1mIy2xJdLfo8Q==", "integrity": "sha512-IeL5f8OO5nylsgzd9tq4qD2QqI0k2CQLGrWD0rCN0EQJZpBK5vJAx0I+GDkMOXxQX/OfFHMuLIx6ddAxGX/k+Q==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
@@ -5489,16 +5557,16 @@
} }
}, },
"node_modules/vue": { "node_modules/vue": {
"version": "3.5.2", "version": "3.5.6",
"resolved": "https://registry.npmmirror.com/vue/-/vue-3.5.2.tgz", "resolved": "https://registry.npmmirror.com/vue/-/vue-3.5.6.tgz",
"integrity": "sha512-w1YB4lAwC9ByH6AnFY0JvZF+y70Usul9jDfKIKtM5xA97q/JPS5R7mqq0fhA6D2PQxYPZdgb5jzFKLyOga5pnw==", "integrity": "sha512-zv+20E2VIYbcJOzJPUWp03NOGFhMmpCKOfSxVTmCYyYFFko48H9tmuQFzYj7tu4qX1AeXlp9DmhIP89/sSxxhw==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@vue/compiler-dom": "3.5.2", "@vue/compiler-dom": "3.5.6",
"@vue/compiler-sfc": "3.5.2", "@vue/compiler-sfc": "3.5.6",
"@vue/runtime-dom": "3.5.2", "@vue/runtime-dom": "3.5.6",
"@vue/server-renderer": "3.5.2", "@vue/server-renderer": "3.5.6",
"@vue/shared": "3.5.2" "@vue/shared": "3.5.6"
}, },
"peerDependencies": { "peerDependencies": {
"typescript": "*" "typescript": "*"
@@ -5604,12 +5672,12 @@
} }
}, },
"node_modules/vue-router": { "node_modules/vue-router": {
"version": "4.4.3", "version": "4.4.5",
"resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-4.4.3.tgz", "resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-4.4.5.tgz",
"integrity": "sha512-sv6wmNKx2j3aqJQDMxLFzs/u/mjA9Z5LCgy6BE0f7yFWMjrPLnS/sPNn8ARY/FXw6byV18EFutn5lTO6+UsV5A==", "integrity": "sha512-4fKZygS8cH1yCyuabAXGUAsyi1b2/o/OKgu/RUb+znIYOxPRxdkytJEx+0wGcpBE1pX6vUgh5jwWOKRGvuA/7Q==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@vue/devtools-api": "^6.6.3" "@vue/devtools-api": "^6.6.4"
}, },
"funding": { "funding": {
"url": "https://github.com/sponsors/posva" "url": "https://github.com/sponsors/posva"

View File

@@ -12,9 +12,10 @@
}, },
"dependencies": { "dependencies": {
"@arco-design/color": "^0.4.0", "@arco-design/color": "^0.4.0",
"@arco-design/web-vue": "^2.56.1", "@arco-design/web-vue": "^2.56.2",
"@tanstack/vue-query": "^5.56.2",
"@tinymce/tinymce-vue": "^6.0.1", "@tinymce/tinymce-vue": "^6.0.1",
"@vueuse/core": "^11.0.3", "@vueuse/core": "^11.1.0",
"axios": "^1.7.7", "axios": "^1.7.7",
"dayjs": "^1.11.13", "dayjs": "^1.11.13",
"echarts": "^5.5.1", "echarts": "^5.5.1",
@@ -28,33 +29,33 @@
"postcss-import": "^16.1.0", "postcss-import": "^16.1.0",
"qs": "^6.13.0", "qs": "^6.13.0",
"tinymce": "^7.3.0", "tinymce": "^7.3.0",
"vue": "^3.5.2", "vue": "^3.5.6",
"vue-clipboard3": "^2.0.0", "vue-clipboard3": "^2.0.0",
"vue-color-kit": "^1.0.6", "vue-color-kit": "^1.0.6",
"vue-echarts": "^7.0.3", "vue-echarts": "^7.0.3",
"vue-router": "^4.4.3", "vue-router": "^4.4.5",
"vuedraggable": "^2.24.3" "vuedraggable": "^2.24.3"
}, },
"devDependencies": { "devDependencies": {
"@types/lodash-es": "^4.17.12", "@types/lodash-es": "^4.17.12",
"@types/node": "^22.5.4", "@types/node": "^22.5.5",
"@types/nprogress": "^0.2.3", "@types/nprogress": "^0.2.3",
"@types/qs": "^6.9.15", "@types/qs": "^6.9.16",
"@vitejs/plugin-vue": "^5.1.3", "@vitejs/plugin-vue": "^5.1.4",
"@vitejs/plugin-vue-jsx": "^4.0.1", "@vitejs/plugin-vue-jsx": "^4.0.1",
"@vue/babel-plugin-jsx": "^1.1.1", "@vue/babel-plugin-jsx": "^1.2.5",
"autoprefixer": "^10.4.20", "autoprefixer": "^10.4.20",
"browserslist": "^4.23.0", "browserslist": "^4.23.0",
"caniuse-lite": "^1.0.30001657", "caniuse-lite": "^1.0.30001662",
"eslint": "^9.9.1", "eslint": "^9.10.0",
"eslint-plugin-vue": "^9.28.0", "eslint-plugin-vue": "^9.28.0",
"less": "^4.2.0", "less": "^4.2.0",
"less-loader": "^12.2.0", "less-loader": "^12.2.0",
"postcss": "^8.4.45", "postcss": "^8.4.47",
"prettier": "^3.3.3", "prettier": "^3.3.3",
"rollup-plugin-visualizer": "^5.12.0", "rollup-plugin-visualizer": "^5.12.0",
"tailwindcss": "^3.4.10", "tailwindcss": "^3.4.12",
"typescript": "^5.5.3", "typescript": "^5.6.2",
"vite": "^5.4.3" "vite": "^5.4.6"
} }
} }

View File

@@ -64,7 +64,7 @@ export interface BasicCrud {
isFull?: boolean; isFull?: boolean;
}; };
//新增确定之前修改form值 //新增确定之前修改form值
beforeAdd?: (form) => void; beforeAdd?: (form) => boolean;
//新增确定之后调用,返回接口response和form值 //新增确定之后调用,返回接口response和form值
afterAdd?: (response, form) => void; afterAdd?: (response, form) => void;
//编辑确定之前修改form值 //编辑确定之前修改form值
@@ -113,7 +113,7 @@ export interface BasicCrud {
realRole?: string[]; realRole?: string[];
// 真实按钮文案 // 真实按钮文案
realText?: string; realText?: string;
// 是否显示 // 是否显示
show?: boolean; show?: boolean;
}; };

View File

@@ -38,6 +38,17 @@
> >
<template #extra> <template #extra>
<a-space> <a-space>
<a-tooltip content="复制该项添加" v-if="!(props.component.hideAdd ?? false)">
<a-button
@click.stop="addItem(item)"
type="primary"
size="small"
shape="round"
status="warning"
>
<template #icon><icon-copy /></template>
</a-button>
</a-tooltip>
<a-tooltip content="添加新子项" v-if="!(props.component.hideAdd ?? false)"> <a-tooltip content="添加新子项" v-if="!(props.component.hideAdd ?? false)">
<a-button @click.stop="addItem()" type="primary" size="small" shape="round"> <a-button @click.stop="addItem()" type="primary" size="small" shape="round">
<template #icon><icon-plus /></template> <template #icon><icon-plus /></template>

View File

@@ -1,122 +1,142 @@
<template> <template>
<a-space direction="vertical" size="large" fill> <a-space direction="vertical" size="large" fill>
<a-descriptions <a-descriptions
:data="descriptions" :data="descriptions"
:column="props.column" :column="props.column"
:title="props.title" :title="props.title"
:layout="props.layout" :layout="props.layout"
:bordered="props.bordered" :bordered="props.bordered"
table-layout="fixed" table-layout="fixed"
:size="props.size" :size="props.size"
:label-style="props.labelStyle" :label-style="props.labelStyle"
:value-style="props.valueStyle" :value-style="props.valueStyle"
> >
<a-descriptions-item v-for="item in descriptions" :label="item.label"> <a-descriptions-item
<template v-if="item.formType === 'upload'"> v-for="item in descriptions"
<a-image-preview-group infinite v-if="isArray(item.value)"> :label="item.label"
<a-space> :span="isArray(item.value) ? props.column : 1"
<a-image v-for="src in item.value" :src="tool.viewImage(src)" width="50" /> >
</a-space> <template v-if="item.formType === 'upload'">
</a-image-preview-group> <a-image-preview-group infinite v-if="isArray(item.value)">
<a-image v-else :src="tool.viewImage(item.value)" width="50"></a-image> <a-space>
</template> <a-image v-for="src in item.value" :src="tool.viewImage(src)" width="50" />
<template v-else-if="item.infoSlot"> </a-space>
<slot :name="item.dataIndex" :row="item" :data="data"></slot> </a-image-preview-group>
</template> <a-image v-else :src="tool.viewImage(item.value)" width="50"></a-image>
<template v-else-if="item.formType === 'radio' || item.formType === 'select'"> </template>
<a-tag color="blue">{{ <template v-else-if="item.infoSlot">
item.dict.data.find((row) => row.value == item.value)?.label <slot :name="item.dataIndex" :row="item" :data="data"></slot>
}}</a-tag> </template>
</template> <template
<div v-else>{{ item.value }} {{ item?.textAppend }}</div> v-else-if="item.formType === 'radio' || item.formType === 'select' || item.formType === 'checkbox'"
</a-descriptions-item> >
</a-descriptions> <template v-if="isArray(item.value)">
</a-space> <!-- 修改源码 -->
<a-space>
<a-tag v-for="v in item.value" color="magenta">
<template v-if="v.length > 0">
{{ item.dict.data.find((row) => row.value == v)?.label }}
</template>
</a-tag>
</a-space>
</template>
<template v-else>
<a-tag color="blue">
{{ item.dict.data.find((row) => row.value == item.value)?.label }}
</a-tag>
</template>
</template>
<div v-else>{{ item.value }} {{ item?.textAppend }}</div>
</a-descriptions-item>
</a-descriptions>
</a-space>
</template> </template>
<script setup> <script setup>
import { getCurrentInstance, inject, provide, ref, watch } from "vue"; import { getCurrentInstance, inject, provide, ref, watch } from "vue"
import tool from "@/utils/tool"; import tool from "@/utils/tool"
import { get, isArray, isBoolean, isEmpty, isFunction } from "lodash-es"; import { get, isArray, isBoolean, isEmpty, isFunction } from "lodash-es"
import { loadDict } from "@cps/ma-form/js/networkRequest.js"; import { loadDict } from "@cps/ma-form/js/networkRequest.js"
import globalColumn from "@/config/column.js"; import globalColumn from "@/config/column.js"
const dictList = {}; const dictList = {}
const app = getCurrentInstance().appContext.app; const app = getCurrentInstance().appContext.app
const columns = ref([]); const columns = ref([])
const data = ref({}); const data = ref({})
const descriptions = ref([]); const descriptions = ref([])
const dictData = ref([]); const dictData = ref([])
const props = defineProps({ const props = defineProps({
columns: { type: Array, default: [] }, columns: { type: Array, default: [] },
data: {}, data: {},
column: { default: 3 }, column: { default: 3 },
title: { title: {
default: "", default: ""
}, },
bordered: { bordered: {
default: true, default: true
}, },
layout: { layout: {
default: "vertical", default: "vertical"
}, },
labelStyle: { labelStyle: {
default: {}, default: {}
}, },
valueStyle: { valueStyle: {
default: {}, default: {}
}, },
size: { size: {
default: "large", default: "large"
}, }
}); })
watch( watch(
() => props.columns, () => props.columns,
(vl) => { (vl) => {
columns.value = vl; columns.value = vl
}, },
{ deep: true, immediate: true } { deep: true, immediate: true }
); )
const reset = async (vl) => { const reset = async (vl) => {
data.value = vl; data.value = vl
descriptions.value = []; descriptions.value = []
if (!columns.value) { if (!columns.value) {
return; return
}
for (let item of columns.value) {
let value = null;
if (isEmpty(item) || item.dataIndex === "__operation" || item.infoShow === false) {
return;
} }
if (isBoolean(item.common) && item.common && globalColumn[item.dataIndex]) { for (let item of columns.value) {
item = globalColumn[item.dataIndex]; let value = null
if (isEmpty(item) || item.dataIndex === "__operation" || item.infoShow === false) {
// return
// 上面是源码 -> 修改源码:源码错误!
continue
}
if (isBoolean(item.common) && item.common && globalColumn[item.dataIndex]) {
item = globalColumn[item.dataIndex]
}
if (item.dict) {
await loadDict(dictList, item)
item.dict.data = dictList[item.dataIndex] ?? []
}
if (isFunction(item.customRender)) {
value = item.customRender({ record: data.value })
}
descriptions.value.push({
...item,
label: item.title,
value: value ?? get(data.value, item.dataIndex)
})
} }
if (item.dict) { }
await loadDict(dictList, item);
item.dict.data = dictList[item.dataIndex] ?? [];
}
if (isFunction(item.customRender)) {
value = item.customRender({ record: data.value });
}
descriptions.value.push({
...item,
label: item.title,
value: value ?? get(data.value, item.dataIndex),
});
};
};
watch( watch(
() => props.data, () => props.data,
(vl) => { (vl) => {
reset(vl); reset(vl)
}, },
{ deep: true, immediate: true } { deep: true, immediate: true }
); )
defineExpose({ reset }); defineExpose({ reset })
</script> </script>
<style scoped></style> <style scoped></style>

View File

@@ -5,7 +5,6 @@ import globalComponents from "@/components"
import App from "./App.vue" import App from "./App.vue"
import router from "./router" import router from "./router"
import pinia from "@/store" import pinia from "@/store"
// import directive from './directive'
// arcodesign的样式全局引入 // arcodesign的样式全局引入
import "@arco-design/web-vue/dist/arco.css" import "@arco-design/web-vue/dist/arco.css"
@@ -24,15 +23,18 @@ app.use(ArcoVueIcon)
app.use(router) app.use(router)
app.use(pinia) app.use(pinia)
app.use(globalComponents) app.use(globalComponents)
// 使用服务端请求数据管理库
import { VueQueryPlugin } from "@tanstack/vue-query"
app.use(VueQueryPlugin)
import directives from "@/directives" import directives from "@/directives"
app.use(directives) app.use(directives)
// 注册ma-icon图标 // 注册ma-icon图标
const modules = import.meta.glob("./assets/ma-icons/*.vue", { eager: true }) const modules = import.meta.glob("./assets/ma-icons/*.vue", { eager: true })
for (const path in modules) { for (const path in modules) {
const name = path.match(/([A-Za-z0-9_-]+)/g)[2] const name = path.match(/([A-Za-z0-9_-]+)/g)![2]
const componentName = `MaIcon${name}` const componentName = `MaIcon${name}`
app.component(componentName, modules[path].default) app.component(componentName, (modules[path] as any).default)
} }
// 全局注册变量和工具 // 全局注册变量和工具

View File

@@ -17,11 +17,12 @@ export default function useCrudRef(currentRow: Ref<{ id: number | string; name:
showTools: false, showTools: false,
beforeAdd: (form: any) => { beforeAdd: (form: any) => {
form.id = currentRow.value?.id form.id = currentRow.value?.id
return true
}, },
add: { show: true, api: dictApi.saveDictItem }, add: { show: true, api: dictApi.saveDictItem },
edit: { show: true, api: dictApi.updateDictItemData }, edit: { show: true, api: dictApi.updateDictItemData },
delete: { show: true, api: dictApi.realDeleteItem }, delete: { show: true, api: dictApi.realDeleteItem },
afterDelete(response) { afterDelete() {
crudRef.value.tableRef.selectAll(false) crudRef.value.tableRef.selectAll(false)
} }
}) })

View File

@@ -289,7 +289,7 @@ const crudColumns = ref([
{ {
title: "闭环方式", title: "闭环方式",
align: "center", align: "center",
width: 160, width: 200,
dataIndex: "closeMethod", dataIndex: "closeMethod",
addDefaultValue: [], addDefaultValue: [],
search: true, search: true,

View File

@@ -6,14 +6,14 @@
class="my-custom-class" class="my-custom-class"
:columns="props.columns" :columns="props.columns"
:data="previewRecord" :data="previewRecord"
:column="1" :column="3"
size="mini" size="mini"
></ma-info> ></ma-info>
</a-modal> </a-modal>
</template> </template>
<script setup> <script setup>
import { ref, reactive } from "vue" import { ref } from "vue"
import MaInfo from "@/components/ma-info/index.vue" import MaInfo from "@/components/ma-info/index.vue"
// 提供open方法给外界并获取整行数据 // 提供open方法给外界并获取整行数据
const visible = ref(false) const visible = ref(false)

View File

@@ -199,7 +199,6 @@ const useCrudInit = function () {
} }
] ]
}, },
// 这是只为了搜索的字段
{ {
title: "时间范围", title: "时间范围",
hide: true, hide: true,
@@ -261,6 +260,7 @@ const useCrudInit = function () {
hide: true, hide: true,
search: false, search: false,
formType: "select", formType: "select",
allowCreate: true,
dict: { name: "devplant", props: { label: "title", value: "key" } } dict: { name: "devplant", props: { label: "title", value: "key" } }
}, },
{ {

File diff suppressed because one or more lines are too long