diff --git a/src/demo/manage/LICENSE b/src/demo/manage/LICENSE
new file mode 100644
index 00000000..f33b1eed
--- /dev/null
+++ b/src/demo/manage/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2016-2023 vue-manage-system
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
\ No newline at end of file
diff --git a/src/demo/manage/auto-imports.d.ts b/src/demo/manage/auto-imports.d.ts
new file mode 100644
index 00000000..08908edd
--- /dev/null
+++ b/src/demo/manage/auto-imports.d.ts
@@ -0,0 +1,5 @@
+// Generated by 'unplugin-auto-import'
+export {}
+declare global {
+
+}
diff --git a/src/demo/manage/components.d.ts b/src/demo/manage/components.d.ts
new file mode 100644
index 00000000..25a75fb9
--- /dev/null
+++ b/src/demo/manage/components.d.ts
@@ -0,0 +1,53 @@
+// generated by unplugin-vue-components
+// We suggest you to commit this file into source control
+// Read more: https://github.com/vuejs/core/pull/3399
+import '@vue/runtime-core'
+
+export {}
+
+declare module '@vue/runtime-core' {
+ export interface GlobalComponents {
+ ElAvatar: typeof import('element-plus/es')['ElAvatar']
+ ElButton: typeof import('element-plus/es')['ElButton']
+ ElCard: typeof import('element-plus/es')['ElCard']
+ ElCascader: typeof import('element-plus/es')['ElCascader']
+ ElCheckbox: typeof import('element-plus/es')['ElCheckbox']
+ ElCheckboxGroup: typeof import('element-plus/es')['ElCheckboxGroup']
+ ElCol: typeof import('element-plus/es')['ElCol']
+ ElDatePicker: typeof import('element-plus/es')['ElDatePicker']
+ ElDialog: typeof import('element-plus/es')['ElDialog']
+ ElDropdown: typeof import('element-plus/es')['ElDropdown']
+ ElDropdownItem: typeof import('element-plus/es')['ElDropdownItem']
+ ElDropdownMenu: typeof import('element-plus/es')['ElDropdownMenu']
+ ElForm: typeof import('element-plus/es')['ElForm']
+ ElFormItem: typeof import('element-plus/es')['ElFormItem']
+ ElIcon: typeof import('element-plus/es')['ElIcon']
+ ElImage: typeof import('element-plus/es')['ElImage']
+ ElInput: typeof import('element-plus/es')['ElInput']
+ ElLink: typeof import('element-plus/es')['ElLink']
+ ElMenu: typeof import('element-plus/es')['ElMenu']
+ ElMenuItem: typeof import('element-plus/es')['ElMenuItem']
+ ElOption: typeof import('element-plus/es')['ElOption']
+ ElPagination: typeof import('element-plus/es')['ElPagination']
+ ElProgress: typeof import('element-plus/es')['ElProgress']
+ ElRadio: typeof import('element-plus/es')['ElRadio']
+ ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup']
+ ElRow: typeof import('element-plus/es')['ElRow']
+ ElSelect: typeof import('element-plus/es')['ElSelect']
+ ElSubMenu: typeof import('element-plus/es')['ElSubMenu']
+ ElSwitch: typeof import('element-plus/es')['ElSwitch']
+ ElTable: typeof import('element-plus/es')['ElTable']
+ ElTableColumn: typeof import('element-plus/es')['ElTableColumn']
+ ElTabPane: typeof import('element-plus/es')['ElTabPane']
+ ElTabs: typeof import('element-plus/es')['ElTabs']
+ ElTag: typeof import('element-plus/es')['ElTag']
+ ElTimePicker: typeof import('element-plus/es')['ElTimePicker']
+ ElTooltip: typeof import('element-plus/es')['ElTooltip']
+ ElUpload: typeof import('element-plus/es')['ElUpload']
+ Header: typeof import('./src/components/header.vue')['default']
+ RouterLink: typeof import('vue-router')['RouterLink']
+ RouterView: typeof import('vue-router')['RouterView']
+ Sidebar: typeof import('./src/components/sidebar.vue')['default']
+ Tags: typeof import('./src/components/tags.vue')['default']
+ }
+}
diff --git a/src/demo/manage/index.html b/src/demo/manage/index.html
new file mode 100644
index 00000000..d0cedf2a
--- /dev/null
+++ b/src/demo/manage/index.html
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+ vue-manage-system
+
+
+
+
+
+ We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled.
+ Please enable it to continue.
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/demo/manage/package-lock.json b/src/demo/manage/package-lock.json
new file mode 100644
index 00000000..eeec21e2
--- /dev/null
+++ b/src/demo/manage/package-lock.json
@@ -0,0 +1,1298 @@
+{
+ "name": "vue-manage-system",
+ "version": "5.3.0",
+ "lockfileVersion": 1,
+ "requires": true,
+ "dependencies": {
+ "@antfu/utils": {
+ "version": "0.5.2",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/@antfu/utils/-/utils-0.5.2.tgz",
+ "integrity": "sha512-CQkeV+oJxUazwjlHD0/3ZD08QWKuGQkhnrKo3e6ly5pd48VUpXbb77q0xMU4+vc2CkJnDS02Eq/M9ugyX20XZA==",
+ "dev": true
+ },
+ "@babel/parser": {
+ "version": "7.18.11",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/parser/-/parser-7.18.11.tgz",
+ "integrity": "sha512-9JKn5vN+hDt0Hdqn1PiJ2guflwP+B6Ga8qbDuoF0PzzVhrzsKIJo8yGqVk6CmMHiMei9w1C1Bp9IMJSIK+HPIQ=="
+ },
+ "@babel/runtime": {
+ "version": "7.18.9",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/runtime/-/runtime-7.18.9.tgz",
+ "integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==",
+ "requires": {
+ "regenerator-runtime": "^0.13.4"
+ }
+ },
+ "@babel/runtime-corejs3": {
+ "version": "7.18.9",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/runtime-corejs3/-/runtime-corejs3-7.18.9.tgz",
+ "integrity": "sha512-qZEWeccZCrHA2Au4/X05QW5CMdm4VjUDCrGq5gf1ZDcM4hRqreKrtwAn7yci9zfgAS9apvnsFXiGBHBAxZdK9A==",
+ "requires": {
+ "core-js-pure": "^3.20.2",
+ "regenerator-runtime": "^0.13.4"
+ }
+ },
+ "@ctrl/tinycolor": {
+ "version": "3.4.1",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/@ctrl/tinycolor/-/tinycolor-3.4.1.tgz",
+ "integrity": "sha512-ej5oVy6lykXsvieQtqZxCOaLT+xD4+QNarq78cIYISHmZXshCvROLudpQN3lfL8G0NL7plMSSK+zlyvCaIJ4Iw=="
+ },
+ "@element-plus/icons-vue": {
+ "version": "2.0.9",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/@element-plus/icons-vue/-/icons-vue-2.0.9.tgz",
+ "integrity": "sha512-okdrwiVeKBmW41Hkl0eMrXDjzJwhQMuKiBOu17rOszqM+LS/yBYpNQNV5Jvoh06Wc+89fMmb/uhzf8NZuDuUaQ=="
+ },
+ "@esbuild/linux-loong64": {
+ "version": "0.14.54",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/@esbuild/linux-loong64/-/linux-loong64-0.14.54.tgz",
+ "integrity": "sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==",
+ "dev": true,
+ "optional": true
+ },
+ "@floating-ui/core": {
+ "version": "0.7.3",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/@floating-ui/core/-/core-0.7.3.tgz",
+ "integrity": "sha512-buc8BXHmG9l82+OQXOFU3Kr2XQx9ys01U/Q9HMIrZ300iLc8HLMgh7dcCqgYzAzf4BkoQvDcXf5Y+CuEZ5JBYg=="
+ },
+ "@floating-ui/dom": {
+ "version": "0.5.4",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/@floating-ui/dom/-/dom-0.5.4.tgz",
+ "integrity": "sha512-419BMceRLq0RrmTSDxn8hf9R3VCJv2K9PUfugh5JyEFmdjzDo+e8U5EdR8nzKq8Yj1htzLm3b6eQEEam3/rrtg==",
+ "requires": {
+ "@floating-ui/core": "^0.7.3"
+ }
+ },
+ "@nodelib/fs.scandir": {
+ "version": "2.1.5",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
+ "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
+ "dev": true,
+ "requires": {
+ "@nodelib/fs.stat": "2.0.5",
+ "run-parallel": "^1.1.9"
+ }
+ },
+ "@nodelib/fs.stat": {
+ "version": "2.0.5",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
+ "dev": true
+ },
+ "@nodelib/fs.walk": {
+ "version": "1.2.8",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
+ "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
+ "dev": true,
+ "requires": {
+ "@nodelib/fs.scandir": "2.1.5",
+ "fastq": "^1.6.0"
+ }
+ },
+ "@rollup/pluginutils": {
+ "version": "4.2.1",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/@rollup/pluginutils/-/pluginutils-4.2.1.tgz",
+ "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==",
+ "dev": true,
+ "requires": {
+ "estree-walker": "^2.0.1",
+ "picomatch": "^2.2.2"
+ }
+ },
+ "@types/lodash": {
+ "version": "4.14.184",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/@types/lodash/-/lodash-4.14.184.tgz",
+ "integrity": "sha512-RoZphVtHbxPZizt4IcILciSWiC6dcn+eZ8oX9IWEYfDMcocdd42f7NPI6fQj+6zI8y4E0L7gu2pcZKLGTRaV9Q=="
+ },
+ "@types/lodash-es": {
+ "version": "4.17.6",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/@types/lodash-es/-/lodash-es-4.17.6.tgz",
+ "integrity": "sha512-R+zTeVUKDdfoRxpAryaQNRKk3105Rrgx2CFRClIgRGaqDTdjsm8h6IYA8ir584W3ePzkZfst5xIgDwYrlh9HLg==",
+ "requires": {
+ "@types/lodash": "*"
+ }
+ },
+ "@types/marked": {
+ "version": "4.0.5",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/@types/marked/-/marked-4.0.5.tgz",
+ "integrity": "sha512-jMN2moJ+lSf1VZXQo3VXeMCjoXuciVONig8+U0YNBop5aBvQw4qkolx1Nzn1i0T8L2l9IZ3jju6bS1pPwlaY1w=="
+ },
+ "@types/web-bluetooth": {
+ "version": "0.0.15",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/@types/web-bluetooth/-/web-bluetooth-0.0.15.tgz",
+ "integrity": "sha512-w7hEHXnPMEZ+4nGKl/KDRVpxkwYxYExuHOYXyzIzCDzEZ9ZCGMAewulr9IqJu2LR4N37fcnb1XVeuZ09qgOxhA=="
+ },
+ "@vitejs/plugin-vue": {
+ "version": "3.0.3",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/@vitejs/plugin-vue/-/plugin-vue-3.0.3.tgz",
+ "integrity": "sha512-U4zNBlz9mg+TA+i+5QPc3N5lQvdUXENZLO2h0Wdzp56gI1MWhqJOv+6R+d4kOzoaSSq6TnGPBdZAXKOe4lXy6g==",
+ "dev": true
+ },
+ "@volar/code-gen": {
+ "version": "0.38.9",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/@volar/code-gen/-/code-gen-0.38.9.tgz",
+ "integrity": "sha512-n6LClucfA+37rQeskvh9vDoZV1VvCVNy++MAPKj2dT4FT+Fbmty/SDQqnsEBtdEe6E3OQctFvA/IcKsx3Mns0A==",
+ "dev": true,
+ "requires": {
+ "@volar/source-map": "0.38.9"
+ }
+ },
+ "@volar/source-map": {
+ "version": "0.38.9",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/@volar/source-map/-/source-map-0.38.9.tgz",
+ "integrity": "sha512-ba0UFoHDYry+vwKdgkWJ6xlQT+8TFtZg1zj9tSjj4PykW1JZDuM0xplMotLun4h3YOoYfY9K1huY5gvxmrNLIw==",
+ "dev": true
+ },
+ "@volar/vue-code-gen": {
+ "version": "0.38.9",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/@volar/vue-code-gen/-/vue-code-gen-0.38.9.tgz",
+ "integrity": "sha512-tzj7AoarFBKl7e41MR006ncrEmNPHALuk8aG4WdDIaG387X5//5KhWC5Ff3ZfB2InGSeNT+CVUd74M0gS20rjA==",
+ "dev": true,
+ "requires": {
+ "@volar/code-gen": "0.38.9",
+ "@volar/source-map": "0.38.9",
+ "@vue/compiler-core": "^3.2.37",
+ "@vue/compiler-dom": "^3.2.37",
+ "@vue/shared": "^3.2.37"
+ }
+ },
+ "@volar/vue-typescript": {
+ "version": "0.38.9",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/@volar/vue-typescript/-/vue-typescript-0.38.9.tgz",
+ "integrity": "sha512-iJMQGU91ADi98u8V1vXd2UBmELDAaeSP0ZJaFjwosClQdKlJQYc6MlxxKfXBZisHqfbhdtrGRyaryulnYtliZw==",
+ "dev": true,
+ "requires": {
+ "@volar/code-gen": "0.38.9",
+ "@volar/source-map": "0.38.9",
+ "@volar/vue-code-gen": "0.38.9",
+ "@vue/compiler-sfc": "^3.2.37",
+ "@vue/reactivity": "^3.2.37"
+ }
+ },
+ "@vue/compiler-core": {
+ "version": "3.2.37",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/@vue/compiler-core/-/compiler-core-3.2.37.tgz",
+ "integrity": "sha512-81KhEjo7YAOh0vQJoSmAD68wLfYqJvoiD4ulyedzF+OEk/bk6/hx3fTNVfuzugIIaTrOx4PGx6pAiBRe5e9Zmg==",
+ "requires": {
+ "@babel/parser": "^7.16.4",
+ "@vue/shared": "3.2.37",
+ "estree-walker": "^2.0.2",
+ "source-map": "^0.6.1"
+ }
+ },
+ "@vue/compiler-dom": {
+ "version": "3.2.37",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/@vue/compiler-dom/-/compiler-dom-3.2.37.tgz",
+ "integrity": "sha512-yxJLH167fucHKxaqXpYk7x8z7mMEnXOw3G2q62FTkmsvNxu4FQSu5+3UMb+L7fjKa26DEzhrmCxAgFLLIzVfqQ==",
+ "requires": {
+ "@vue/compiler-core": "3.2.37",
+ "@vue/shared": "3.2.37"
+ }
+ },
+ "@vue/compiler-sfc": {
+ "version": "3.2.37",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/@vue/compiler-sfc/-/compiler-sfc-3.2.37.tgz",
+ "integrity": "sha512-+7i/2+9LYlpqDv+KTtWhOZH+pa8/HnX/905MdVmAcI/mPQOBwkHHIzrsEsucyOIZQYMkXUiTkmZq5am/NyXKkg==",
+ "requires": {
+ "@babel/parser": "^7.16.4",
+ "@vue/compiler-core": "3.2.37",
+ "@vue/compiler-dom": "3.2.37",
+ "@vue/compiler-ssr": "3.2.37",
+ "@vue/reactivity-transform": "3.2.37",
+ "@vue/shared": "3.2.37",
+ "estree-walker": "^2.0.2",
+ "magic-string": "^0.25.7",
+ "postcss": "^8.1.10",
+ "source-map": "^0.6.1"
+ },
+ "dependencies": {
+ "magic-string": {
+ "version": "0.25.9",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/magic-string/-/magic-string-0.25.9.tgz",
+ "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==",
+ "requires": {
+ "sourcemap-codec": "^1.4.8"
+ }
+ }
+ }
+ },
+ "@vue/compiler-ssr": {
+ "version": "3.2.37",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/@vue/compiler-ssr/-/compiler-ssr-3.2.37.tgz",
+ "integrity": "sha512-7mQJD7HdXxQjktmsWp/J67lThEIcxLemz1Vb5I6rYJHR5vI+lON3nPGOH3ubmbvYGt8xEUaAr1j7/tIFWiEOqw==",
+ "requires": {
+ "@vue/compiler-dom": "3.2.37",
+ "@vue/shared": "3.2.37"
+ }
+ },
+ "@vue/devtools-api": {
+ "version": "6.2.1",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/@vue/devtools-api/-/devtools-api-6.2.1.tgz",
+ "integrity": "sha512-OEgAMeQXvCoJ+1x8WyQuVZzFo0wcyCmUR3baRVLmKBo1LmYZWMlRiXlux5jd0fqVJu6PfDbOrZItVqUEzLobeQ=="
+ },
+ "@vue/reactivity": {
+ "version": "3.2.37",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/@vue/reactivity/-/reactivity-3.2.37.tgz",
+ "integrity": "sha512-/7WRafBOshOc6m3F7plwzPeCu/RCVv9uMpOwa/5PiY1Zz+WLVRWiy0MYKwmg19KBdGtFWsmZ4cD+LOdVPcs52A==",
+ "requires": {
+ "@vue/shared": "3.2.37"
+ }
+ },
+ "@vue/reactivity-transform": {
+ "version": "3.2.37",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/@vue/reactivity-transform/-/reactivity-transform-3.2.37.tgz",
+ "integrity": "sha512-IWopkKEb+8qpu/1eMKVeXrK0NLw9HicGviJzhJDEyfxTR9e1WtpnnbYkJWurX6WwoFP0sz10xQg8yL8lgskAZg==",
+ "requires": {
+ "@babel/parser": "^7.16.4",
+ "@vue/compiler-core": "3.2.37",
+ "@vue/shared": "3.2.37",
+ "estree-walker": "^2.0.2",
+ "magic-string": "^0.25.7"
+ },
+ "dependencies": {
+ "magic-string": {
+ "version": "0.25.9",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/magic-string/-/magic-string-0.25.9.tgz",
+ "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==",
+ "requires": {
+ "sourcemap-codec": "^1.4.8"
+ }
+ }
+ }
+ },
+ "@vue/runtime-core": {
+ "version": "3.2.37",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/@vue/runtime-core/-/runtime-core-3.2.37.tgz",
+ "integrity": "sha512-JPcd9kFyEdXLl/i0ClS7lwgcs0QpUAWj+SKX2ZC3ANKi1U4DOtiEr6cRqFXsPwY5u1L9fAjkinIdB8Rz3FoYNQ==",
+ "requires": {
+ "@vue/reactivity": "3.2.37",
+ "@vue/shared": "3.2.37"
+ }
+ },
+ "@vue/runtime-dom": {
+ "version": "3.2.37",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/@vue/runtime-dom/-/runtime-dom-3.2.37.tgz",
+ "integrity": "sha512-HimKdh9BepShW6YozwRKAYjYQWg9mQn63RGEiSswMbW+ssIht1MILYlVGkAGGQbkhSh31PCdoUcfiu4apXJoPw==",
+ "requires": {
+ "@vue/runtime-core": "3.2.37",
+ "@vue/shared": "3.2.37",
+ "csstype": "^2.6.8"
+ }
+ },
+ "@vue/server-renderer": {
+ "version": "3.2.37",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/@vue/server-renderer/-/server-renderer-3.2.37.tgz",
+ "integrity": "sha512-kLITEJvaYgZQ2h47hIzPh2K3jG8c1zCVbp/o/bzQOyvzaKiCquKS7AaioPI28GNxIsE/zSx+EwWYsNxDCX95MA==",
+ "requires": {
+ "@vue/compiler-ssr": "3.2.37",
+ "@vue/shared": "3.2.37"
+ }
+ },
+ "@vue/shared": {
+ "version": "3.2.37",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/@vue/shared/-/shared-3.2.37.tgz",
+ "integrity": "sha512-4rSJemR2NQIo9Klm1vabqWjD8rs/ZaJSzMxkMNeJS6lHiUjjUeYFbooN19NgFjztubEKh3WlZUeOLVdbbUWHsw=="
+ },
+ "@vueuse/core": {
+ "version": "9.1.0",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/@vueuse/core/-/core-9.1.0.tgz",
+ "integrity": "sha512-BIroqvXEqt826aE9r3K5cox1zobuPuAzdYJ36kouC2TVhlXvFKIILgFVWrpp9HZPwB3aLzasmG3K87q7TSyXZg==",
+ "requires": {
+ "@types/web-bluetooth": "^0.0.15",
+ "@vueuse/metadata": "9.1.0",
+ "@vueuse/shared": "9.1.0",
+ "vue-demi": "*"
+ }
+ },
+ "@vueuse/metadata": {
+ "version": "9.1.0",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/@vueuse/metadata/-/metadata-9.1.0.tgz",
+ "integrity": "sha512-8OEhlog1iaAGTD3LICZ8oBGQdYeMwByvXetOtAOZCJOzyCRSwqwdggTsmVZZ1rkgYIEqgUBk942AsAPwM21s6A=="
+ },
+ "@vueuse/shared": {
+ "version": "9.1.0",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/@vueuse/shared/-/shared-9.1.0.tgz",
+ "integrity": "sha512-pB/3njQu4tfJJ78ajELNda0yMG6lKfpToQW7Soe09CprF1k3QuyoNi1tBNvo75wBDJWD+LOnr+c4B5HZ39jY/Q==",
+ "requires": {
+ "vue-demi": "*"
+ }
+ },
+ "acorn": {
+ "version": "8.8.0",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/acorn/-/acorn-8.8.0.tgz",
+ "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==",
+ "dev": true
+ },
+ "adler-32": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.3.1.tgz",
+ "integrity": "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A=="
+ },
+ "anymatch": {
+ "version": "3.1.2",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/anymatch/-/anymatch-3.1.2.tgz",
+ "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
+ "dev": true,
+ "requires": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ }
+ },
+ "async-validator": {
+ "version": "4.2.5",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/async-validator/-/async-validator-4.2.5.tgz",
+ "integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg=="
+ },
+ "asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
+ },
+ "axios": {
+ "version": "0.27.2",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/axios/-/axios-0.27.2.tgz",
+ "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==",
+ "requires": {
+ "follow-redirects": "^1.14.9",
+ "form-data": "^4.0.0"
+ }
+ },
+ "balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "dev": true
+ },
+ "binary-extensions": {
+ "version": "2.2.0",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/binary-extensions/-/binary-extensions-2.2.0.tgz",
+ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
+ "dev": true
+ },
+ "brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dev": true,
+ "requires": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dev": true,
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
+ },
+ "cfb": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/cfb/-/cfb-1.2.2.tgz",
+ "integrity": "sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==",
+ "requires": {
+ "adler-32": "~1.3.0",
+ "crc-32": "~1.2.0"
+ }
+ },
+ "chokidar": {
+ "version": "3.5.3",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/chokidar/-/chokidar-3.5.3.tgz",
+ "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
+ "dev": true,
+ "requires": {
+ "anymatch": "~3.1.2",
+ "braces": "~3.0.2",
+ "fsevents": "~2.3.2",
+ "glob-parent": "~5.1.2",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.6.0"
+ }
+ },
+ "codepage": {
+ "version": "1.15.0",
+ "resolved": "https://registry.npmjs.org/codepage/-/codepage-1.15.0.tgz",
+ "integrity": "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA=="
+ },
+ "combined-stream": {
+ "version": "1.0.8",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+ "requires": {
+ "delayed-stream": "~1.0.0"
+ }
+ },
+ "core-js-pure": {
+ "version": "3.24.1",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/core-js-pure/-/core-js-pure-3.24.1.tgz",
+ "integrity": "sha512-r1nJk41QLLPyozHUUPmILCEMtMw24NG4oWK6RbsDdjzQgg9ZvrUsPBj1MnG0wXXp1DCDU6j+wUvEmBSrtRbLXg=="
+ },
+ "crc-32": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz",
+ "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ=="
+ },
+ "cropperjs": {
+ "version": "1.5.12",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/cropperjs/-/cropperjs-1.5.12.tgz",
+ "integrity": "sha512-re7UdjE5UnwdrovyhNzZ6gathI4Rs3KGCBSc8HCIjUo5hO42CtzyblmWLj6QWVw7huHyDMfpKxhiO2II77nhDw=="
+ },
+ "csstype": {
+ "version": "2.6.20",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/csstype/-/csstype-2.6.20.tgz",
+ "integrity": "sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA=="
+ },
+ "dayjs": {
+ "version": "1.11.5",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/dayjs/-/dayjs-1.11.5.tgz",
+ "integrity": "sha512-CAdX5Q3YW3Gclyo5Vpqkgpj8fSdLQcRuzfX6mC6Phy0nfJ0eGYOeS7m4mt2plDWLAtA4TqTakvbboHvUxfe4iA=="
+ },
+ "debug": {
+ "version": "4.3.4",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "dev": true,
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="
+ },
+ "element-plus": {
+ "version": "2.2.14",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/element-plus/-/element-plus-2.2.14.tgz",
+ "integrity": "sha512-V5Pis0OHhePg1RgVogZrcefaVl8vjVn4Pn9Qsh/t2CbFgjg9kKOYFqf/tuP3ObSXGm3X89hpe0W+nLVAsaFnpw==",
+ "requires": {
+ "@ctrl/tinycolor": "^3.4.1",
+ "@element-plus/icons-vue": "^2.0.6",
+ "@floating-ui/dom": "^0.5.4",
+ "@popperjs/core": "npm:@sxzz/popperjs-es@^2.11.7",
+ "@types/lodash": "^4.14.182",
+ "@types/lodash-es": "^4.17.6",
+ "@vueuse/core": "^9.1.0",
+ "async-validator": "^4.2.5",
+ "dayjs": "^1.11.3",
+ "escape-html": "^1.0.3",
+ "lodash": "^4.17.21",
+ "lodash-es": "^4.17.21",
+ "lodash-unified": "^1.0.2",
+ "memoize-one": "^6.0.0",
+ "normalize-wheel-es": "^1.2.0"
+ },
+ "dependencies": {
+ "@popperjs/core": {
+ "version": "npm:@sxzz/popperjs-es@2.11.7",
+ "resolved": "https://registry.npmjs.org/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz",
+ "integrity": "sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ=="
+ }
+ }
+ },
+ "esbuild": {
+ "version": "0.14.54",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/esbuild/-/esbuild-0.14.54.tgz",
+ "integrity": "sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==",
+ "dev": true,
+ "requires": {
+ "@esbuild/linux-loong64": "0.14.54",
+ "esbuild-android-64": "0.14.54",
+ "esbuild-android-arm64": "0.14.54",
+ "esbuild-darwin-64": "0.14.54",
+ "esbuild-darwin-arm64": "0.14.54",
+ "esbuild-freebsd-64": "0.14.54",
+ "esbuild-freebsd-arm64": "0.14.54",
+ "esbuild-linux-32": "0.14.54",
+ "esbuild-linux-64": "0.14.54",
+ "esbuild-linux-arm": "0.14.54",
+ "esbuild-linux-arm64": "0.14.54",
+ "esbuild-linux-mips64le": "0.14.54",
+ "esbuild-linux-ppc64le": "0.14.54",
+ "esbuild-linux-riscv64": "0.14.54",
+ "esbuild-linux-s390x": "0.14.54",
+ "esbuild-netbsd-64": "0.14.54",
+ "esbuild-openbsd-64": "0.14.54",
+ "esbuild-sunos-64": "0.14.54",
+ "esbuild-windows-32": "0.14.54",
+ "esbuild-windows-64": "0.14.54",
+ "esbuild-windows-arm64": "0.14.54"
+ }
+ },
+ "esbuild-android-64": {
+ "version": "0.14.54",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/esbuild-android-64/-/esbuild-android-64-0.14.54.tgz",
+ "integrity": "sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-android-arm64": {
+ "version": "0.14.54",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/esbuild-android-arm64/-/esbuild-android-arm64-0.14.54.tgz",
+ "integrity": "sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-darwin-64": {
+ "version": "0.14.54",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/esbuild-darwin-64/-/esbuild-darwin-64-0.14.54.tgz",
+ "integrity": "sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-darwin-arm64": {
+ "version": "0.14.54",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.54.tgz",
+ "integrity": "sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-freebsd-64": {
+ "version": "0.14.54",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.54.tgz",
+ "integrity": "sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-freebsd-arm64": {
+ "version": "0.14.54",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.54.tgz",
+ "integrity": "sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-linux-32": {
+ "version": "0.14.54",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/esbuild-linux-32/-/esbuild-linux-32-0.14.54.tgz",
+ "integrity": "sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-linux-64": {
+ "version": "0.14.54",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/esbuild-linux-64/-/esbuild-linux-64-0.14.54.tgz",
+ "integrity": "sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-linux-arm": {
+ "version": "0.14.54",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/esbuild-linux-arm/-/esbuild-linux-arm-0.14.54.tgz",
+ "integrity": "sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-linux-arm64": {
+ "version": "0.14.54",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.54.tgz",
+ "integrity": "sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-linux-mips64le": {
+ "version": "0.14.54",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.54.tgz",
+ "integrity": "sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-linux-ppc64le": {
+ "version": "0.14.54",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.54.tgz",
+ "integrity": "sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-linux-riscv64": {
+ "version": "0.14.54",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.54.tgz",
+ "integrity": "sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-linux-s390x": {
+ "version": "0.14.54",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.54.tgz",
+ "integrity": "sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-netbsd-64": {
+ "version": "0.14.54",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.54.tgz",
+ "integrity": "sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-openbsd-64": {
+ "version": "0.14.54",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.54.tgz",
+ "integrity": "sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-sunos-64": {
+ "version": "0.14.54",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/esbuild-sunos-64/-/esbuild-sunos-64-0.14.54.tgz",
+ "integrity": "sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-windows-32": {
+ "version": "0.14.54",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/esbuild-windows-32/-/esbuild-windows-32-0.14.54.tgz",
+ "integrity": "sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-windows-64": {
+ "version": "0.14.54",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/esbuild-windows-64/-/esbuild-windows-64-0.14.54.tgz",
+ "integrity": "sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-windows-arm64": {
+ "version": "0.14.54",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.54.tgz",
+ "integrity": "sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==",
+ "dev": true,
+ "optional": true
+ },
+ "escape-html": {
+ "version": "1.0.3",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/escape-html/-/escape-html-1.0.3.tgz",
+ "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
+ },
+ "escape-string-regexp": {
+ "version": "5.0.0",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz",
+ "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==",
+ "dev": true
+ },
+ "estree-walker": {
+ "version": "2.0.2",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/estree-walker/-/estree-walker-2.0.2.tgz",
+ "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
+ },
+ "fast-glob": {
+ "version": "3.2.11",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/fast-glob/-/fast-glob-3.2.11.tgz",
+ "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==",
+ "dev": true,
+ "requires": {
+ "@nodelib/fs.stat": "^2.0.2",
+ "@nodelib/fs.walk": "^1.2.3",
+ "glob-parent": "^5.1.2",
+ "merge2": "^1.3.0",
+ "micromatch": "^4.0.4"
+ }
+ },
+ "fastq": {
+ "version": "1.13.0",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/fastq/-/fastq-1.13.0.tgz",
+ "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==",
+ "dev": true,
+ "requires": {
+ "reusify": "^1.0.4"
+ }
+ },
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dev": true,
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "follow-redirects": {
+ "version": "1.15.1",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/follow-redirects/-/follow-redirects-1.15.1.tgz",
+ "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA=="
+ },
+ "form-data": {
+ "version": "4.0.0",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/form-data/-/form-data-4.0.0.tgz",
+ "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
+ "requires": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "mime-types": "^2.1.12"
+ }
+ },
+ "frac": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/frac/-/frac-1.1.2.tgz",
+ "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA=="
+ },
+ "fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "dev": true,
+ "optional": true
+ },
+ "function-bind": {
+ "version": "1.1.1",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
+ "dev": true
+ },
+ "glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
+ "requires": {
+ "is-glob": "^4.0.1"
+ }
+ },
+ "has": {
+ "version": "1.0.3",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/has/-/has-1.0.3.tgz",
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+ "dev": true,
+ "requires": {
+ "function-bind": "^1.1.1"
+ }
+ },
+ "is-binary-path": {
+ "version": "2.1.0",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/is-binary-path/-/is-binary-path-2.1.0.tgz",
+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+ "dev": true,
+ "requires": {
+ "binary-extensions": "^2.0.0"
+ }
+ },
+ "is-core-module": {
+ "version": "2.10.0",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/is-core-module/-/is-core-module-2.10.0.tgz",
+ "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==",
+ "dev": true,
+ "requires": {
+ "has": "^1.0.3"
+ }
+ },
+ "is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+ "dev": true
+ },
+ "is-glob": {
+ "version": "4.0.3",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+ "dev": true,
+ "requires": {
+ "is-extglob": "^2.1.1"
+ }
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true
+ },
+ "jsonc-parser": {
+ "version": "3.1.0",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/jsonc-parser/-/jsonc-parser-3.1.0.tgz",
+ "integrity": "sha512-DRf0QjnNeCUds3xTjKlQQ3DpJD51GvDjJfnxUVWg6PZTo2otSm+slzNAxU/35hF8/oJIKoG9slq30JYOsF2azg==",
+ "dev": true
+ },
+ "local-pkg": {
+ "version": "0.4.2",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/local-pkg/-/local-pkg-0.4.2.tgz",
+ "integrity": "sha512-mlERgSPrbxU3BP4qBqAvvwlgW4MTg78iwJdGGnv7kibKjWcJksrG3t6LB5lXI93wXRDvG4NpUgJFmTG4T6rdrg==",
+ "dev": true
+ },
+ "lodash": {
+ "version": "4.17.21",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/lodash/-/lodash-4.17.21.tgz",
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
+ },
+ "lodash-es": {
+ "version": "4.17.21",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/lodash-es/-/lodash-es-4.17.21.tgz",
+ "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw=="
+ },
+ "lodash-unified": {
+ "version": "1.0.2",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/lodash-unified/-/lodash-unified-1.0.2.tgz",
+ "integrity": "sha512-OGbEy+1P+UT26CYi4opY4gebD8cWRDxAT6MAObIVQMiqYdxZr1g3QHWCToVsm31x2NkLS4K3+MC2qInaRMa39g=="
+ },
+ "magic-string": {
+ "version": "0.26.2",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/magic-string/-/magic-string-0.26.2.tgz",
+ "integrity": "sha512-NzzlXpclt5zAbmo6h6jNc8zl2gNRGHvmsZW4IvZhTC4W7k4OlLP+S5YLussa/r3ixNT66KOQfNORlXHSOy/X4A==",
+ "dev": true,
+ "requires": {
+ "sourcemap-codec": "^1.4.8"
+ }
+ },
+ "md-editor-v3": {
+ "version": "2.2.1",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/md-editor-v3/-/md-editor-v3-2.2.1.tgz",
+ "integrity": "sha512-nOd8mlEhvC99l9Y8pDMwEi6EdCAeBp88Ffl24We+2uz3/Iympctm92L1qyNicONJRhtZJacQ4oWTQGMYKGAxVg==",
+ "requires": {
+ "@types/marked": "^4.0.3"
+ }
+ },
+ "memoize-one": {
+ "version": "6.0.0",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/memoize-one/-/memoize-one-6.0.0.tgz",
+ "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw=="
+ },
+ "merge2": {
+ "version": "1.4.1",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/merge2/-/merge2-1.4.1.tgz",
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+ "dev": true
+ },
+ "micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "dev": true,
+ "requires": {
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ }
+ },
+ "mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
+ },
+ "mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "requires": {
+ "mime-db": "1.52.0"
+ }
+ },
+ "minimatch": {
+ "version": "5.1.0",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/minimatch/-/minimatch-5.1.0.tgz",
+ "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^2.0.1"
+ }
+ },
+ "mlly": {
+ "version": "0.5.13",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/mlly/-/mlly-0.5.13.tgz",
+ "integrity": "sha512-0SK2fqoan+PMjADs4I2egAtrtNtpjqRez6PDTCeAdGjUQNJCvO5o9v2NEq52WA1jFmMU97qBr/JgdvCquehDbA==",
+ "dev": true,
+ "requires": {
+ "acorn": "^8.8.0",
+ "pathe": "^0.3.4",
+ "pkg-types": "^0.3.3",
+ "ufo": "^0.8.5"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ },
+ "nanoid": {
+ "version": "3.3.4",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/nanoid/-/nanoid-3.3.4.tgz",
+ "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw=="
+ },
+ "normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "dev": true
+ },
+ "normalize-wheel-es": {
+ "version": "1.2.0",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/normalize-wheel-es/-/normalize-wheel-es-1.2.0.tgz",
+ "integrity": "sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw=="
+ },
+ "path-parse": {
+ "version": "1.0.7",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/path-parse/-/path-parse-1.0.7.tgz",
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
+ "dev": true
+ },
+ "pathe": {
+ "version": "0.3.5",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/pathe/-/pathe-0.3.5.tgz",
+ "integrity": "sha512-grU/QeYP0ChuE5kjU2/k8VtAeODzbernHlue0gTa27+ayGIu3wqYBIPGfP9r5xSqgCgDd4nWrjKXEfxMillByg==",
+ "dev": true
+ },
+ "picocolors": {
+ "version": "1.0.0",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/picocolors/-/picocolors-1.0.0.tgz",
+ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
+ },
+ "picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "dev": true
+ },
+ "pinia": {
+ "version": "2.0.20",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/pinia/-/pinia-2.0.20.tgz",
+ "integrity": "sha512-fdHHumXW/0U5HhxmY1emo3I4z85p8NJPdbtFQSlmJXFe3ktuF0pYNVgVtk2q+j2zCtTufY763xzaEMx0t6T59g==",
+ "requires": {
+ "@vue/devtools-api": "^6.2.1",
+ "vue-demi": "*"
+ }
+ },
+ "pkg-types": {
+ "version": "0.3.4",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/pkg-types/-/pkg-types-0.3.4.tgz",
+ "integrity": "sha512-s214f/xkRpwlwVBToWq9Mu0XlU3HhZMYCnr2var8+jjbavBHh/VCh4pBLsJW29rJ//B1jb4HlpMIaNIMH+W2/w==",
+ "dev": true,
+ "requires": {
+ "jsonc-parser": "^3.1.0",
+ "mlly": "^0.5.13",
+ "pathe": "^0.3.5"
+ }
+ },
+ "postcss": {
+ "version": "8.4.16",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/postcss/-/postcss-8.4.16.tgz",
+ "integrity": "sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==",
+ "requires": {
+ "nanoid": "^3.3.4",
+ "picocolors": "^1.0.0",
+ "source-map-js": "^1.0.2"
+ }
+ },
+ "queue-microtask": {
+ "version": "1.2.3",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/queue-microtask/-/queue-microtask-1.2.3.tgz",
+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
+ "dev": true
+ },
+ "readdirp": {
+ "version": "3.6.0",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/readdirp/-/readdirp-3.6.0.tgz",
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+ "dev": true,
+ "requires": {
+ "picomatch": "^2.2.1"
+ }
+ },
+ "regenerator-runtime": {
+ "version": "0.13.9",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
+ "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA=="
+ },
+ "resolve": {
+ "version": "1.22.1",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/resolve/-/resolve-1.22.1.tgz",
+ "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
+ "dev": true,
+ "requires": {
+ "is-core-module": "^2.9.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ }
+ },
+ "reusify": {
+ "version": "1.0.4",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/reusify/-/reusify-1.0.4.tgz",
+ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
+ "dev": true
+ },
+ "rollup": {
+ "version": "2.77.3",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/rollup/-/rollup-2.77.3.tgz",
+ "integrity": "sha512-/qxNTG7FbmefJWoeeYJFbHehJ2HNWnjkAFRKzWN/45eNBBF/r8lo992CwcJXEzyVxs5FmfId+vTSTQDb+bxA+g==",
+ "dev": true,
+ "requires": {
+ "fsevents": "~2.3.2"
+ }
+ },
+ "run-parallel": {
+ "version": "1.2.0",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/run-parallel/-/run-parallel-1.2.0.tgz",
+ "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
+ "dev": true,
+ "requires": {
+ "queue-microtask": "^1.2.2"
+ }
+ },
+ "schart.js": {
+ "version": "3.0.4",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/schart.js/-/schart.js-3.0.4.tgz",
+ "integrity": "sha512-uylb2u9rrHX1jyAuSAJUQON8XTfyDKI9kWj1J3fUlCQCkLVZ4HG4+IiV8qm//Z71dqvLI78QZ/fCBw0reB22Zw=="
+ },
+ "scule": {
+ "version": "0.3.2",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/scule/-/scule-0.3.2.tgz",
+ "integrity": "sha512-zIvPdjOH8fv8CgrPT5eqtxHQXmPNnV/vHJYffZhE43KZkvULvpCTvOt1HPlFaCZx287INL9qaqrZg34e8NgI4g==",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
+ },
+ "source-map-js": {
+ "version": "1.0.2",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/source-map-js/-/source-map-js-1.0.2.tgz",
+ "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw=="
+ },
+ "sourcemap-codec": {
+ "version": "1.4.8",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
+ "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA=="
+ },
+ "ssf": {
+ "version": "0.11.2",
+ "resolved": "https://registry.npmjs.org/ssf/-/ssf-0.11.2.tgz",
+ "integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==",
+ "requires": {
+ "frac": "~1.1.2"
+ }
+ },
+ "strip-literal": {
+ "version": "0.4.0",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/strip-literal/-/strip-literal-0.4.0.tgz",
+ "integrity": "sha512-ql/sBDoJOybTKSIOWrrh8kgUEMjXMwRAkZTD0EwiwxQH/6tTPkZvMIEjp0CRlpi6V5FMiJyvxeRkEi1KrGISoA==",
+ "dev": true,
+ "requires": {
+ "acorn": "^8.7.1"
+ }
+ },
+ "supports-preserve-symlinks-flag": {
+ "version": "1.0.0",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+ "dev": true
+ },
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ },
+ "tslib": {
+ "version": "2.4.0",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/tslib/-/tslib-2.4.0.tgz",
+ "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
+ },
+ "typescript": {
+ "version": "4.7.4",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/typescript/-/typescript-4.7.4.tgz",
+ "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==",
+ "dev": true
+ },
+ "ufo": {
+ "version": "0.8.5",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/ufo/-/ufo-0.8.5.tgz",
+ "integrity": "sha512-e4+UtA5IRO+ha6hYklwj6r7BjiGMxS0O+UaSg9HbaTefg4kMkzj4tXzEBajRR+wkxf+golgAWKzLbytCUDMJAA==",
+ "dev": true
+ },
+ "unimport": {
+ "version": "0.6.7",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/unimport/-/unimport-0.6.7.tgz",
+ "integrity": "sha512-EMoVqDjswHkU+nD098QYHXH7Mkw7KwGDQAyeRF2lgairJnuO+wpkhIcmCqrD1OPJmsjkTbJ2tW6Ap8St0PuWZA==",
+ "dev": true,
+ "requires": {
+ "@rollup/pluginutils": "^4.2.1",
+ "escape-string-regexp": "^5.0.0",
+ "fast-glob": "^3.2.11",
+ "local-pkg": "^0.4.2",
+ "magic-string": "^0.26.2",
+ "mlly": "^0.5.7",
+ "pathe": "^0.3.3",
+ "scule": "^0.3.2",
+ "strip-literal": "^0.4.0",
+ "unplugin": "^0.9.0"
+ }
+ },
+ "unplugin": {
+ "version": "0.9.3",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/unplugin/-/unplugin-0.9.3.tgz",
+ "integrity": "sha512-GWXxizZG+tobNs8fuGTCeilerkkfZTZax2iivuE4pxLaF9wTnPJHOq8tbLKDb5ohVb+2BXNjrU9xx59yWTUnuw==",
+ "dev": true,
+ "requires": {
+ "acorn": "^8.8.0",
+ "chokidar": "^3.5.3",
+ "webpack-sources": "^3.2.3",
+ "webpack-virtual-modules": "^0.4.4"
+ }
+ },
+ "unplugin-auto-import": {
+ "version": "0.11.2",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/unplugin-auto-import/-/unplugin-auto-import-0.11.2.tgz",
+ "integrity": "sha512-1+VwBfn9dtiYv9SQLKP1AvZolUbK9xTVeAT+iOcEk4EHSFUlmIqBVLEKI76cifSQTLOJ3rZyPrEgptf3SZNLlQ==",
+ "dev": true,
+ "requires": {
+ "@antfu/utils": "^0.5.2",
+ "@rollup/pluginutils": "^4.2.1",
+ "local-pkg": "^0.4.2",
+ "magic-string": "^0.26.2",
+ "unimport": "^0.6.7",
+ "unplugin": "^0.9.3"
+ }
+ },
+ "unplugin-vue-components": {
+ "version": "0.22.4",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/unplugin-vue-components/-/unplugin-vue-components-0.22.4.tgz",
+ "integrity": "sha512-2rRZcM9OnJGXnYxQNfaceEYuPeVACcWySIjy8WBwIiN3onr980TmA3XE5pRJFt8zoQrUA+c46oyIq96noLqrEQ==",
+ "dev": true,
+ "requires": {
+ "@antfu/utils": "^0.5.2",
+ "@rollup/pluginutils": "^4.2.1",
+ "chokidar": "^3.5.3",
+ "debug": "^4.3.4",
+ "fast-glob": "^3.2.11",
+ "local-pkg": "^0.4.2",
+ "magic-string": "^0.26.2",
+ "minimatch": "^5.1.0",
+ "resolve": "^1.22.1",
+ "unplugin": "^0.9.0"
+ }
+ },
+ "vite": {
+ "version": "3.0.9",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/vite/-/vite-3.0.9.tgz",
+ "integrity": "sha512-waYABTM+G6DBTCpYAxvevpG50UOlZuynR0ckTK5PawNVt7ebX6X7wNXHaGIO6wYYFXSM7/WcuFuO2QzhBB6aMw==",
+ "dev": true,
+ "requires": {
+ "esbuild": "^0.14.47",
+ "fsevents": "~2.3.2",
+ "postcss": "^8.4.16",
+ "resolve": "^1.22.1",
+ "rollup": ">=2.75.6 <2.77.0 || ~2.77.0"
+ }
+ },
+ "vite-plugin-vue-setup-extend": {
+ "version": "0.4.0",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/vite-plugin-vue-setup-extend/-/vite-plugin-vue-setup-extend-0.4.0.tgz",
+ "integrity": "sha512-WMbjPCui75fboFoUTHhdbXzu4Y/bJMv5N9QT9a7do3wNMNHHqrk+Tn2jrSJU0LS5fGl/EG+FEDBYVUeWIkDqXQ==",
+ "dev": true,
+ "requires": {
+ "@vue/compiler-sfc": "^3.2.29",
+ "magic-string": "^0.25.7"
+ },
+ "dependencies": {
+ "magic-string": {
+ "version": "0.25.9",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/magic-string/-/magic-string-0.25.9.tgz",
+ "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==",
+ "dev": true,
+ "requires": {
+ "sourcemap-codec": "^1.4.8"
+ }
+ }
+ }
+ },
+ "vue": {
+ "version": "3.2.37",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/vue/-/vue-3.2.37.tgz",
+ "integrity": "sha512-bOKEZxrm8Eh+fveCqS1/NkG/n6aMidsI6hahas7pa0w/l7jkbssJVsRhVDs07IdDq7h9KHswZOgItnwJAgtVtQ==",
+ "requires": {
+ "@vue/compiler-dom": "3.2.37",
+ "@vue/compiler-sfc": "3.2.37",
+ "@vue/runtime-dom": "3.2.37",
+ "@vue/server-renderer": "3.2.37",
+ "@vue/shared": "3.2.37"
+ }
+ },
+ "vue-cropperjs": {
+ "version": "5.0.0",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/vue-cropperjs/-/vue-cropperjs-5.0.0.tgz",
+ "integrity": "sha512-RhnC8O33uRZNkn74aiHZwNHnBJOXWlS4P6gsRI0lw4cZlWjKSCywZI9oSI9POlIPI6OYv30jvnHMXGch85tw7w==",
+ "requires": {
+ "cropperjs": "^1.5.6"
+ }
+ },
+ "vue-demi": {
+ "version": "0.13.8",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/vue-demi/-/vue-demi-0.13.8.tgz",
+ "integrity": "sha512-Vy1zbZhCOdsmvGR6tJhAvO5vhP7eiS8xkbYQSoVa7o6KlIy3W8Rc53ED4qI4qpeRDjv3mLfXSEpYU6Yq4pgXRg=="
+ },
+ "vue-router": {
+ "version": "4.1.3",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/vue-router/-/vue-router-4.1.3.tgz",
+ "integrity": "sha512-XvK81bcYglKiayT7/vYAg/f36ExPC4t90R/HIpzrZ5x+17BOWptXLCrEPufGgZeuq68ww4ekSIMBZY1qdUdfjA==",
+ "requires": {
+ "@vue/devtools-api": "^6.1.4"
+ }
+ },
+ "vue-schart": {
+ "version": "2.0.0",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/vue-schart/-/vue-schart-2.0.0.tgz",
+ "integrity": "sha512-qAu3e5wfMcq26wK1xeHExEWfGpnjfoN1R/9QXblNi+AsU/p52X7tTwhi+Fw7H/otfEufhEY2X7z7emaoF4QO+g==",
+ "requires": {
+ "schart.js": "^3.0.0"
+ }
+ },
+ "vue-tsc": {
+ "version": "0.38.9",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/vue-tsc/-/vue-tsc-0.38.9.tgz",
+ "integrity": "sha512-Yoy5phgvGqyF98Fb4mYqboR4Q149jrdcGv5kSmufXJUq++RZJ2iMVG0g6zl+v3t4ORVWkQmRpsV4x2szufZ0LQ==",
+ "dev": true,
+ "requires": {
+ "@volar/vue-typescript": "0.38.9"
+ }
+ },
+ "wangeditor": {
+ "version": "4.7.15",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/wangeditor/-/wangeditor-4.7.15.tgz",
+ "integrity": "sha512-aPTdREd8BxXVyJ5MI+LU83FQ7u1EPd341iXIorRNYSOvoimNoZ4nPg+yn3FGbB93/owEa6buLw8wdhYnMCJQLg==",
+ "requires": {
+ "@babel/runtime": "^7.11.2",
+ "@babel/runtime-corejs3": "^7.11.2",
+ "tslib": "^2.1.0"
+ }
+ },
+ "webpack-sources": {
+ "version": "3.2.3",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/webpack-sources/-/webpack-sources-3.2.3.tgz",
+ "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==",
+ "dev": true
+ },
+ "webpack-virtual-modules": {
+ "version": "0.4.4",
+ "resolved": "https://repo.huaweicloud.com/repository/npm/webpack-virtual-modules/-/webpack-virtual-modules-0.4.4.tgz",
+ "integrity": "sha512-h9atBP/bsZohWpHnr+2sic8Iecb60GxftXsWNLLLSqewgIsGzByd2gcIID4nXcG+3tNe4GQG3dLcff3kXupdRA==",
+ "dev": true
+ },
+ "wmf": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wmf/-/wmf-1.0.2.tgz",
+ "integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw=="
+ },
+ "word": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/word/-/word-0.3.0.tgz",
+ "integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA=="
+ },
+ "xlsx": {
+ "version": "0.18.5",
+ "resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.18.5.tgz",
+ "integrity": "sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==",
+ "requires": {
+ "adler-32": "~1.3.0",
+ "cfb": "~1.2.1",
+ "codepage": "~1.15.0",
+ "crc-32": "~1.2.1",
+ "ssf": "~0.11.2",
+ "wmf": "~1.0.1",
+ "word": "~0.3.0"
+ }
+ }
+ }
+}
diff --git a/src/demo/manage/package.json b/src/demo/manage/package.json
new file mode 100644
index 00000000..e0fad80b
--- /dev/null
+++ b/src/demo/manage/package.json
@@ -0,0 +1,38 @@
+{
+ "name": "vue-manage-system",
+ "version": "5.3.0",
+ "private": true,
+ "scripts": {
+ "dev": "vite",
+ "build": "vue-tsc --noEmit && vite build",
+ "serve": "vite preview"
+ },
+ "dependencies": {
+ "@element-plus/icons-vue": "^2.0.9",
+ "axios": "^0.27.2",
+ "element-plus": "^2.2.14",
+ "md-editor-v3": "^2.2.1",
+ "pinia": "^2.0.20",
+ "vue": "^3.2.37",
+ "vue-cropperjs": "^5.0.0",
+ "vue-router": "^4.1.3",
+ "vue-schart": "^2.0.0",
+ "wangeditor": "^4.7.15",
+ "xlsx": "^0.18.5"
+ },
+ "devDependencies": {
+ "@vitejs/plugin-vue": "^3.0.0",
+ "@vue/compiler-sfc": "^3.1.2",
+ "typescript": "^4.6.4",
+ "unplugin-auto-import": "^0.11.2",
+ "unplugin-vue-components": "^0.22.4",
+ "vite": "^3.0.0",
+ "vite-plugin-vue-setup-extend": "^0.4.0",
+ "vue-tsc": "^0.38.4"
+ },
+ "browserslist": [
+ "> 1%",
+ "last 2 versions",
+ "not dead"
+ ]
+}
diff --git a/src/demo/manage/public/table.json b/src/demo/manage/public/table.json
new file mode 100644
index 00000000..ddd2e322
--- /dev/null
+++ b/src/demo/manage/public/table.json
@@ -0,0 +1,40 @@
+{
+ "list": [{
+ "id": 1,
+ "name": "张三",
+ "money": 123,
+ "address": "广东省东莞市长安镇",
+ "state": "成功",
+ "date": "2019-11-1",
+ "thumb": "https://lin-xin.gitee.io/images/post/wms.png"
+ },
+ {
+ "id": 2,
+ "name": "李四",
+ "money": 456,
+ "address": "广东省广州市白云区",
+ "state": "成功",
+ "date": "2019-10-11",
+ "thumb": "https://lin-xin.gitee.io/images/post/node3.png"
+ },
+ {
+ "id": 3,
+ "name": "王五",
+ "money": 789,
+ "address": "湖南省长沙市",
+ "state": "失败",
+ "date": "2019-11-11",
+ "thumb": "https://lin-xin.gitee.io/images/post/parcel.png"
+ },
+ {
+ "id": 4,
+ "name": "赵六",
+ "money": 1011,
+ "address": "福建省厦门市鼓浪屿",
+ "state": "成功",
+ "date": "2019-10-20",
+ "thumb": "https://lin-xin.gitee.io/images/post/notice.png"
+ }
+ ],
+ "pageTotal": 4
+}
\ No newline at end of file
diff --git a/src/demo/manage/public/template.xlsx b/src/demo/manage/public/template.xlsx
new file mode 100644
index 00000000..5d17cf71
Binary files /dev/null and b/src/demo/manage/public/template.xlsx differ
diff --git a/src/demo/manage/src/App.vue b/src/demo/manage/src/App.vue
new file mode 100644
index 00000000..f0fca28d
--- /dev/null
+++ b/src/demo/manage/src/App.vue
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
diff --git a/src/demo/manage/src/api/index.ts b/src/demo/manage/src/api/index.ts
new file mode 100644
index 00000000..fbe9e904
--- /dev/null
+++ b/src/demo/manage/src/api/index.ts
@@ -0,0 +1,8 @@
+import request from '../utils/request';
+
+export const fetchData = () => {
+ return request({
+ url: './table.json',
+ method: 'get'
+ });
+};
diff --git a/src/demo/manage/src/assets/css/color-dark.css b/src/demo/manage/src/assets/css/color-dark.css
new file mode 100644
index 00000000..0d8409a1
--- /dev/null
+++ b/src/demo/manage/src/assets/css/color-dark.css
@@ -0,0 +1,23 @@
+.header{
+ background-color: #242f42;
+}
+.login-wrap{
+ background: #324157;
+}
+.plugins-tips{
+ background: #eef1f6;
+}
+.plugins-tips a{
+ color: #20a0ff;
+}
+
+.tags-li.active {
+ border: 1px solid #409EFF;
+ background-color: #409EFF;
+}
+.message-title{
+ color: #20a0ff;
+}
+.collapse-btn:hover{
+ background: rgb(40,52,70);
+}
\ No newline at end of file
diff --git a/src/demo/manage/src/assets/css/icon.css b/src/demo/manage/src/assets/css/icon.css
new file mode 100644
index 00000000..3ea036ac
--- /dev/null
+++ b/src/demo/manage/src/assets/css/icon.css
@@ -0,0 +1,4 @@
+[class*=" el-icon-lx"],
+[class^=el-icon-lx] {
+ font-family: lx-iconfont !important;
+}
\ No newline at end of file
diff --git a/src/demo/manage/src/assets/css/main.css b/src/demo/manage/src/assets/css/main.css
new file mode 100644
index 00000000..34acd553
--- /dev/null
+++ b/src/demo/manage/src/assets/css/main.css
@@ -0,0 +1,137 @@
+* {
+ margin: 0;
+ padding: 0;
+}
+
+html,
+body,
+#app,
+.wrapper {
+ width: 100%;
+ height: 100%;
+ overflow: hidden;
+}
+
+body {
+ font-family: 'PingFang SC', "Helvetica Neue", Helvetica, "microsoft yahei", arial, STHeiTi, sans-serif;
+}
+
+a {
+ text-decoration: none
+}
+
+
+.content-box {
+ position: absolute;
+ left: 250px;
+ right: 0;
+ top: 70px;
+ bottom: 0;
+ padding-bottom: 30px;
+ -webkit-transition: left .3s ease-in-out;
+ transition: left .3s ease-in-out;
+ background: #f0f0f0;
+}
+
+.content {
+ width: auto;
+ height: 100%;
+ padding: 10px;
+ overflow-y: scroll;
+ box-sizing: border-box;
+}
+
+.content-collapse {
+ left: 65px;
+}
+
+.container {
+ padding: 30px;
+ background: #fff;
+ border: 1px solid #ddd;
+ border-radius: 5px;
+}
+
+.crumbs {
+ margin: 10px 0;
+}
+
+.el-table th {
+ background-color: #f5f7fa !important;
+}
+
+.pagination {
+ margin: 20px 0;
+ text-align: right;
+}
+
+.plugins-tips {
+ padding: 20px 10px;
+ margin-bottom: 20px;
+}
+
+.el-button+.el-tooltip {
+ margin-left: 10px;
+}
+
+.el-table tr:hover {
+ background: #f6faff;
+}
+
+.mgb20 {
+ margin-bottom: 20px;
+}
+
+.move-enter-active,
+.move-leave-active {
+ transition: opacity .1s ease;
+}
+
+.move-enter-from,
+.move-leave-to {
+ opacity: 0;
+}
+
+/*BaseForm*/
+
+.form-box {
+ width: 600px;
+}
+
+.form-box .line {
+ text-align: center;
+}
+
+.el-time-panel__content::after,
+.el-time-panel__content::before {
+ margin-top: -7px;
+}
+
+.el-time-spinner__wrapper .el-scrollbar__wrap:not(.el-scrollbar__wrap--hidden-default) {
+ padding-bottom: 0;
+}
+
+
+[class*=" el-icon-"], [class^=el-icon-] {
+ speak: none;
+ font-style: normal;
+ font-weight: 400;
+ font-variant: normal;
+ text-transform: none;
+ line-height: 1;
+ vertical-align: baseline;
+ display: inline-block;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+.el-sub-menu [class^=el-icon-] {
+ vertical-align: middle;
+ margin-right: 5px;
+ width: 24px;
+ text-align: center;
+ font-size: 18px;
+}
+
+[hidden]{
+ display: none !important;
+}
\ No newline at end of file
diff --git a/src/demo/manage/src/assets/img/img.jpg b/src/demo/manage/src/assets/img/img.jpg
new file mode 100644
index 00000000..cbe6c002
Binary files /dev/null and b/src/demo/manage/src/assets/img/img.jpg differ
diff --git a/src/demo/manage/src/assets/img/login-bg.jpg b/src/demo/manage/src/assets/img/login-bg.jpg
new file mode 100644
index 00000000..bd2ba254
Binary files /dev/null and b/src/demo/manage/src/assets/img/login-bg.jpg differ
diff --git a/src/demo/manage/src/components/header.vue b/src/demo/manage/src/components/header.vue
new file mode 100644
index 00000000..2c14ace0
--- /dev/null
+++ b/src/demo/manage/src/components/header.vue
@@ -0,0 +1,154 @@
+
+
+
+
+
diff --git a/src/demo/manage/src/components/sidebar.vue b/src/demo/manage/src/components/sidebar.vue
new file mode 100644
index 00000000..1bfd9b5f
--- /dev/null
+++ b/src/demo/manage/src/components/sidebar.vue
@@ -0,0 +1,181 @@
+
+
+
+
+
+
+
diff --git a/src/demo/manage/src/components/tags.vue b/src/demo/manage/src/components/tags.vue
new file mode 100644
index 00000000..79a4887b
--- /dev/null
+++ b/src/demo/manage/src/components/tags.vue
@@ -0,0 +1,168 @@
+
+
+
+
+
+
+
diff --git a/src/demo/manage/src/main.ts b/src/demo/manage/src/main.ts
new file mode 100644
index 00000000..43ae5c79
--- /dev/null
+++ b/src/demo/manage/src/main.ts
@@ -0,0 +1,28 @@
+import { createApp } from 'vue';
+import { createPinia } from 'pinia';
+import * as ElementPlusIconsVue from '@element-plus/icons-vue';
+import App from './App.vue';
+import router from './router';
+import { usePermissStore } from './store/permiss';
+import 'element-plus/dist/index.css';
+import './assets/css/icon.css';
+
+const app = createApp(App);
+app.use(createPinia());
+app.use(router);
+
+// 注册elementplus图标
+for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
+ app.component(key, component);
+}
+// 自定义权限指令
+const permiss = usePermissStore();
+app.directive('permiss', {
+ mounted(el, binding) {
+ if (!permiss.key.includes(String(binding.value))) {
+ el['hidden'] = true;
+ }
+ },
+});
+
+app.mount('#app');
diff --git a/src/demo/manage/src/router/index.ts b/src/demo/manage/src/router/index.ts
new file mode 100644
index 00000000..02e9668a
--- /dev/null
+++ b/src/demo/manage/src/router/index.ts
@@ -0,0 +1,179 @@
+import { createRouter, createWebHashHistory, RouteRecordRaw } from 'vue-router';
+import { usePermissStore } from '../store/permiss';
+import Home from '../views/home.vue';
+
+const routes: RouteRecordRaw[] = [
+ {
+ path: '/',
+ redirect: '/dashboard',
+ },
+ {
+ path: '/',
+ name: 'Home',
+ component: Home,
+ children: [
+ {
+ path: '/dashboard',
+ name: 'dashboard',
+ meta: {
+ title: '系统首页',
+ permiss: '1',
+ },
+ component: () => import(/* webpackChunkName: "dashboard" */ '../views/dashboard.vue'),
+ },
+ {
+ path: '/table',
+ name: 'basetable',
+ meta: {
+ title: '表格',
+ permiss: '2',
+ },
+ component: () => import(/* webpackChunkName: "table" */ '../views/table.vue'),
+ },
+ {
+ path: '/charts',
+ name: 'basecharts',
+ meta: {
+ title: '图表',
+ permiss: '11',
+ },
+ component: () => import(/* webpackChunkName: "charts" */ '../views/charts.vue'),
+ },
+ {
+ path: '/form',
+ name: 'baseform',
+ meta: {
+ title: '表单',
+ permiss: '5',
+ },
+ component: () => import(/* webpackChunkName: "form" */ '../views/form.vue'),
+ },
+ {
+ path: '/tabs',
+ name: 'tabs',
+ meta: {
+ title: 'tab标签',
+ permiss: '3',
+ },
+ component: () => import(/* webpackChunkName: "tabs" */ '../views/tabs.vue'),
+ },
+ {
+ path: '/donate',
+ name: 'donate',
+ meta: {
+ title: '鼓励作者',
+ permiss: '14',
+ },
+ component: () => import(/* webpackChunkName: "donate" */ '../views/donate.vue'),
+ },
+ {
+ path: '/permission',
+ name: 'permission',
+ meta: {
+ title: '权限管理',
+ permiss: '13',
+ },
+ component: () => import(/* webpackChunkName: "permission" */ '../views/permission.vue'),
+ },
+ {
+ path: '/upload',
+ name: 'upload',
+ meta: {
+ title: '上传插件',
+ permiss: '6',
+ },
+ component: () => import(/* webpackChunkName: "upload" */ '../views/upload.vue'),
+ },
+ {
+ path: '/icon',
+ name: 'icon',
+ meta: {
+ title: '自定义图标',
+ permiss: '10',
+ },
+ component: () => import(/* webpackChunkName: "icon" */ '../views/icon.vue'),
+ },
+ {
+ path: '/user',
+ name: 'user',
+ meta: {
+ title: '个人中心',
+ },
+ component: () => import(/* webpackChunkName: "user" */ '../views/user.vue'),
+ },
+ {
+ path: '/editor',
+ name: 'editor',
+ meta: {
+ title: '富文本编辑器',
+ permiss: '8',
+ },
+ component: () => import(/* webpackChunkName: "editor" */ '../views/editor.vue'),
+ },
+ {
+ path: '/markdown',
+ name: 'markdown',
+ meta: {
+ title: 'markdown编辑器',
+ permiss: '9',
+ },
+ component: () => import(/* webpackChunkName: "markdown" */ '../views/markdown.vue'),
+ },
+ {
+ path: '/export',
+ name: 'export',
+ meta: {
+ title: '导出Excel',
+ permiss: '2',
+ },
+ component: () => import(/* webpackChunkName: "export" */ '../views/export.vue'),
+ },
+ {
+ path: '/import',
+ name: 'import',
+ meta: {
+ title: '导入Excel',
+ permiss: '2',
+ },
+ component: () => import(/* webpackChunkName: "import" */ '../views/import.vue'),
+ },
+ ],
+ },
+ {
+ path: '/login',
+ name: 'Login',
+ meta: {
+ title: '登录',
+ },
+ component: () => import(/* webpackChunkName: "login" */ '../views/login.vue'),
+ },
+ {
+ path: '/403',
+ name: '403',
+ meta: {
+ title: '没有权限',
+ },
+ component: () => import(/* webpackChunkName: "403" */ '../views/403.vue'),
+ },
+];
+
+const router = createRouter({
+ history: createWebHashHistory(),
+ routes,
+});
+
+router.beforeEach((to, from, next) => {
+ document.title = `${to.meta.title} | vue-manage-system`;
+ const role = localStorage.getItem('ms_username');
+ const permiss = usePermissStore();
+ if (!role && to.path !== '/login') {
+ next('/login');
+ } else if (to.meta.permiss && !permiss.key.includes(to.meta.permiss)) {
+ // 如果没有权限,则进入403
+ next('/403');
+ } else {
+ next();
+ }
+});
+
+export default router;
diff --git a/src/demo/manage/src/store/permiss.ts b/src/demo/manage/src/store/permiss.ts
new file mode 100644
index 00000000..504d78ff
--- /dev/null
+++ b/src/demo/manage/src/store/permiss.ts
@@ -0,0 +1,23 @@
+import { defineStore } from 'pinia';
+
+interface ObjectList {
+ [key: string]: string[];
+}
+
+export const usePermissStore = defineStore('permiss', {
+ state: () => {
+ const keys = localStorage.getItem('ms_keys');
+ return {
+ key: keys ? JSON.parse(keys) : [],
+ defaultList: {
+ admin: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16'],
+ user: ['1', '2', '3', '11', '13', '14', '15']
+ }
+ };
+ },
+ actions: {
+ handleSet(val: string[]) {
+ this.key = val;
+ }
+ }
+});
diff --git a/src/demo/manage/src/store/sidebar.ts b/src/demo/manage/src/store/sidebar.ts
new file mode 100644
index 00000000..ab7a146d
--- /dev/null
+++ b/src/demo/manage/src/store/sidebar.ts
@@ -0,0 +1,15 @@
+import { defineStore } from 'pinia';
+
+export const useSidebarStore = defineStore('sidebar', {
+ state: () => {
+ return {
+ collapse: false
+ };
+ },
+ getters: {},
+ actions: {
+ handleCollapse() {
+ this.collapse = !this.collapse;
+ }
+ }
+});
diff --git a/src/demo/manage/src/store/tags.ts b/src/demo/manage/src/store/tags.ts
new file mode 100644
index 00000000..7f8ff18b
--- /dev/null
+++ b/src/demo/manage/src/store/tags.ts
@@ -0,0 +1,53 @@
+import { defineStore } from 'pinia';
+
+interface ListItem {
+ name: string;
+ path: string;
+ title: string;
+}
+
+export const useTagsStore = defineStore('tags', {
+ state: () => {
+ return {
+ list: []
+ };
+ },
+ getters: {
+ show: state => {
+ return state.list.length > 0;
+ },
+ nameList: state => {
+ return state.list.map(item => item.name);
+ }
+ },
+ actions: {
+ delTagsItem(index: number) {
+ this.list.splice(index, 1);
+ },
+ setTagsItem(data: ListItem) {
+ this.list.push(data);
+ },
+ clearTags() {
+ this.list = [];
+ },
+ closeTagsOther(data: ListItem[]) {
+ this.list = data;
+ },
+ closeCurrentTag(data: any) {
+ for (let i = 0, len = this.list.length; i < len; i++) {
+ const item = this.list[i];
+ if (item.path === data.$route.fullPath) {
+ if (i < len - 1) {
+ data.$router.push(this.list[i + 1].path);
+ } else if (i > 0) {
+ data.$router.push(this.list[i - 1].path);
+ } else {
+ data.$router.push('/');
+ }
+ this.list.splice(i, 1);
+ break;
+ }
+ }
+ }
+ }
+});
diff --git a/src/demo/manage/src/utils/request.ts b/src/demo/manage/src/utils/request.ts
new file mode 100644
index 00000000..f90bc899
--- /dev/null
+++ b/src/demo/manage/src/utils/request.ts
@@ -0,0 +1,31 @@
+import axios, {AxiosInstance, AxiosError, AxiosResponse, AxiosRequestConfig} from 'axios';
+
+const service:AxiosInstance = axios.create({
+ timeout: 5000
+});
+
+service.interceptors.request.use(
+ (config: AxiosRequestConfig) => {
+ return config;
+ },
+ (error: AxiosError) => {
+ console.log(error);
+ return Promise.reject();
+ }
+);
+
+service.interceptors.response.use(
+ (response: AxiosResponse) => {
+ if (response.status === 200) {
+ return response;
+ } else {
+ Promise.reject();
+ }
+ },
+ (error: AxiosError) => {
+ console.log(error);
+ return Promise.reject();
+ }
+);
+
+export default service;
diff --git a/src/demo/manage/src/views/403.vue b/src/demo/manage/src/views/403.vue
new file mode 100644
index 00000000..c7132708
--- /dev/null
+++ b/src/demo/manage/src/views/403.vue
@@ -0,0 +1,54 @@
+
+
+
40 3
+
啊哦~ 你没有权限访问该页面哦
+
+
+ 返回首页
+
+ 返回上一页
+
+
+
+
+
+
+
diff --git a/src/demo/manage/src/views/404.vue b/src/demo/manage/src/views/404.vue
new file mode 100644
index 00000000..a4dfcf20
--- /dev/null
+++ b/src/demo/manage/src/views/404.vue
@@ -0,0 +1,54 @@
+
+
+
40 4
+
啊哦~ 你所访问的页面不存在
+
+
+ 返回首页
+
+ 返回上一页
+
+
+
+
+
+
+
diff --git a/src/demo/manage/src/views/charts.vue b/src/demo/manage/src/views/charts.vue
new file mode 100644
index 00000000..7e4df52a
--- /dev/null
+++ b/src/demo/manage/src/views/charts.vue
@@ -0,0 +1,127 @@
+
+
+
+ vue-schart:vue.js封装sChart.js的图表组件。 访问地址:
+
vue-schart
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/demo/manage/src/views/dashboard.vue b/src/demo/manage/src/views/dashboard.vue
new file mode 100644
index 00000000..5e6d0391
--- /dev/null
+++ b/src/demo/manage/src/views/dashboard.vue
@@ -0,0 +1,301 @@
+
+
+
+
+
+
+
+
+
{{ name }}
+
{{ role }}
+
+
+
+ 上次登录时间:
+ 2022-10-01
+
+
+ 上次登录地点:
+ 东莞
+
+
+
+
+
+ 语言详情
+
+
+ Vue
+
+ TypeScript
+
+ CSS
+
+ HTML
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 待办事项
+ 添加
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ scope.row.title }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/demo/manage/src/views/donate.vue b/src/demo/manage/src/views/donate.vue
new file mode 100644
index 00000000..c127e30d
--- /dev/null
+++ b/src/demo/manage/src/views/donate.vue
@@ -0,0 +1,14 @@
+
+
+
+ 如果该框架对你有帮助,那就请作者喝杯饮料吧! 加微信号linxin_20探讨问题。
+
+
+
+
+
+
+
+
+
+
diff --git a/src/demo/manage/src/views/editor.vue b/src/demo/manage/src/views/editor.vue
new file mode 100644
index 00000000..c08d55be
--- /dev/null
+++ b/src/demo/manage/src/views/editor.vue
@@ -0,0 +1,37 @@
+
+
+
+ wangEditor:轻量级 web 富文本编辑器,配置方便,使用简单。 访问地址:
+
wangEditor
+
+
+
提交
+
+
+
+
+
+
diff --git a/src/demo/manage/src/views/export.vue b/src/demo/manage/src/views/export.vue
new file mode 100644
index 00000000..21ecf6b2
--- /dev/null
+++ b/src/demo/manage/src/views/export.vue
@@ -0,0 +1,98 @@
+
+
+
+
+ 导出Excel
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/demo/manage/src/views/form.vue b/src/demo/manage/src/views/form.vue
new file mode 100644
index 00000000..75609aeb
--- /dev/null
+++ b/src/demo/manage/src/views/form.vue
@@ -0,0 +1,156 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 表单提交
+ 重置表单
+
+
+
+
+
+
+
diff --git a/src/demo/manage/src/views/home.vue b/src/demo/manage/src/views/home.vue
new file mode 100644
index 00000000..e8ba189a
--- /dev/null
+++ b/src/demo/manage/src/views/home.vue
@@ -0,0 +1,26 @@
+
+
+
+
+
+
diff --git a/src/demo/manage/src/views/icon.vue b/src/demo/manage/src/views/icon.vue
new file mode 100644
index 00000000..0b01ff3d
--- /dev/null
+++ b/src/demo/manage/src/views/icon.vue
@@ -0,0 +1,212 @@
+
+
+
使用方法
+
+ 直接通过设置类名为 el-icon-lx-iconName 来使用即可。例如:(共{{ iconList.length }}个图标)
+
+
+
+ <i class="el-icon-lx-redpacket_fill"></i>
+
+
+
+ <i class="el-icon-lx-weibo"></i>
+
+
+
+ <i class="el-icon-lx-emojifill"></i>
+
+
+
图标
+
+
+
+
+
+
+
+
+
+
diff --git a/src/demo/manage/src/views/import.vue b/src/demo/manage/src/views/import.vue
new file mode 100644
index 00000000..e0ca8c3d
--- /dev/null
+++ b/src/demo/manage/src/views/import.vue
@@ -0,0 +1,118 @@
+
+
+
+
+
+ 批量导入
+
+ 下载模板
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/demo/manage/src/views/login.vue b/src/demo/manage/src/views/login.vue
new file mode 100644
index 00000000..da669ebf
--- /dev/null
+++ b/src/demo/manage/src/views/login.vue
@@ -0,0 +1,129 @@
+
+
+
+
后台管理系统
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 登录
+
+ Tips : 用户名和密码随便填。
+
+
+
+
+
+
+
+
diff --git a/src/demo/manage/src/views/markdown.vue b/src/demo/manage/src/views/markdown.vue
new file mode 100644
index 00000000..d435f9ca
--- /dev/null
+++ b/src/demo/manage/src/views/markdown.vue
@@ -0,0 +1,21 @@
+
+
+
+ md-editor-v3:vue3版本的 markdown 编辑器,配置丰富,请详看文档。 访问地址:
+
md-editor-v3
+
+
+
提交
+
+
+
+
diff --git a/src/demo/manage/src/views/permission.vue b/src/demo/manage/src/views/permission.vue
new file mode 100644
index 00000000..bf83327e
--- /dev/null
+++ b/src/demo/manage/src/views/permission.vue
@@ -0,0 +1,137 @@
+
+
+
通过 v-permiss 自定义指令实现权限管理,使用非 admin 账号登录,可查看效果。
+
+ 角色:
+
+
+
+
+
+
+
+
+
保存权限
+
+
+
+
+
+
diff --git a/src/demo/manage/src/views/table.vue b/src/demo/manage/src/views/table.vue
new file mode 100644
index 00000000..6888ccb9
--- /dev/null
+++ b/src/demo/manage/src/views/table.vue
@@ -0,0 +1,191 @@
+
+
+
+
+
+
+
+
+
+ 搜索
+ 新增
+
+
+
+
+
+ ¥{{ scope.row.money }}
+
+
+
+
+
+
+
+
+
+
+
+ {{ scope.row.state }}
+
+
+
+
+
+
+
+
+ 编辑
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/demo/manage/src/views/tabs.vue b/src/demo/manage/src/views/tabs.vue
new file mode 100644
index 00000000..849a131f
--- /dev/null
+++ b/src/demo/manage/src/views/tabs.vue
@@ -0,0 +1,116 @@
+
+
+
+
+
+
+
+ {{ scope.row.title }}
+
+
+
+
+
+ 标为已读
+
+
+
+
+ 全部标为已读
+
+
+
+
+
+
+
+ {{ scope.row.title }}
+
+
+
+
+
+ 删除
+
+
+
+
+ 删除全部
+
+
+
+
+
+
+
+
+ {{ scope.row.title }}
+
+
+
+
+
+ 还原
+
+
+
+
+ 清空回收站
+
+
+
+
+
+
+
+
+
+
diff --git a/src/demo/manage/src/views/upload.vue b/src/demo/manage/src/views/upload.vue
new file mode 100644
index 00000000..960edc3f
--- /dev/null
+++ b/src/demo/manage/src/views/upload.vue
@@ -0,0 +1,48 @@
+
+
+
支持拖拽
+
+
+
+
+ 将文件拖到此处,或
+ 点击上传
+
+
+
+
支持裁剪
+
+ vue-cropperjs:一个封装了 cropperjs 的 Vue 组件。 访问地址:
+
vue-cropperjs 。 示例请查看
+
个人中心
+
+
+
+
+
+
+
diff --git a/src/demo/manage/src/views/user.vue b/src/demo/manage/src/views/user.vue
new file mode 100644
index 00000000..c0728dab
--- /dev/null
+++ b/src/demo/manage/src/views/user.vue
@@ -0,0 +1,174 @@
+
+
+
+
+
+
+
+ 基础信息
+
+
+
+
+
+
+
+
+
+
{{ name }}
+
不可能!我的代码怎么可能会有bug!
+
+
+
+
+
+
+
+ 账户编辑
+
+
+
+ {{ name }}
+
+
+
+
+
+
+
+
+
+
+ 保存
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/demo/manage/src/vite-env.d.ts b/src/demo/manage/src/vite-env.d.ts
new file mode 100644
index 00000000..ff773960
--- /dev/null
+++ b/src/demo/manage/src/vite-env.d.ts
@@ -0,0 +1,10 @@
+///
+
+declare module '*.vue' {
+ import type { DefineComponent } from 'vue'
+ const component: DefineComponent<{}, {}, any>
+ export default component
+}
+
+declare module 'vue-schart';
+declare module 'vue-cropperjs';
\ No newline at end of file
diff --git a/src/demo/manage/tsconfig.json b/src/demo/manage/tsconfig.json
new file mode 100644
index 00000000..49c50ade
--- /dev/null
+++ b/src/demo/manage/tsconfig.json
@@ -0,0 +1,18 @@
+{
+ "compilerOptions": {
+ "target": "ESNext",
+ "useDefineForClassFields": true,
+ "module": "ESNext",
+ "moduleResolution": "Node",
+ "strict": true,
+ "jsx": "preserve",
+ "sourceMap": true,
+ "resolveJsonModule": true,
+ "isolatedModules": true,
+ "esModuleInterop": true,
+ "lib": ["ESNext", "DOM"],
+ "skipLibCheck": true
+ },
+ "include": ["src/**/*.ts", "src/**/*.d.ts","src/**/*.vue"],
+ "references": [{ "path": "./tsconfig.node.json" }]
+}
diff --git a/src/demo/manage/tsconfig.node.json b/src/demo/manage/tsconfig.node.json
new file mode 100644
index 00000000..9d31e2ae
--- /dev/null
+++ b/src/demo/manage/tsconfig.node.json
@@ -0,0 +1,9 @@
+{
+ "compilerOptions": {
+ "composite": true,
+ "module": "ESNext",
+ "moduleResolution": "Node",
+ "allowSyntheticDefaultImports": true
+ },
+ "include": ["vite.config.ts"]
+}
diff --git a/src/demo/manage/vite.config.ts b/src/demo/manage/vite.config.ts
new file mode 100644
index 00000000..30ed7089
--- /dev/null
+++ b/src/demo/manage/vite.config.ts
@@ -0,0 +1,22 @@
+import { defineConfig } from 'vite';
+import vue from '@vitejs/plugin-vue';
+import VueSetupExtend from 'vite-plugin-vue-setup-extend';
+import AutoImport from 'unplugin-auto-import/vite';
+import Components from 'unplugin-vue-components/vite';
+import { ElementPlusResolver } from 'unplugin-vue-components/resolvers';
+export default defineConfig({
+ base: './',
+ plugins: [
+ vue(),
+ VueSetupExtend(),
+ AutoImport({
+ resolvers: [ElementPlusResolver()]
+ }),
+ Components({
+ resolvers: [ElementPlusResolver()]
+ })
+ ],
+ optimizeDeps: {
+ include: ['schart.js']
+ }
+});