diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 54aa4d4..7ea5d12 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -22,7 +22,7 @@ jobs: - name: Setup pnpm uses: pnpm/action-setup@v2 with: - version: "8.3.1" + version: "8.5.0" - name: Build run: pnpm install && pnpm build:prod diff --git a/package.json b/package.json index 933fc00..35b65ae 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "v3-admin-vite", - "version": "3.4.0-beta", + "version": "3.4.0", "description": "一个免费开源的中后台管理系统基础解决方案,基于 Vue3、TypeScript、Element Plus、Pinia 和 Vite 等主流技术.", "author": { "name": "pany", @@ -37,7 +37,7 @@ "pinia": "^2.0.36", "screenfull": "^6.0.2", "vue": "^3.3.1", - "vue-router": "^4.1.6", + "vue-router": "^4.2.0", "vxe-table": "^4.3.12", "vxe-table-plugin-element": "^3.0.6", "xe-utils": "^3.5.7" @@ -45,7 +45,7 @@ "devDependencies": { "@types/js-cookie": "^3.0.3", "@types/lodash-es": "^4.17.7", - "@types/node": "^20.1.2", + "@types/node": "^20.1.3", "@types/nprogress": "^0.2.0", "@types/path-browserify": "^1.0.0", "@typescript-eslint/eslint-plugin": "^5.59.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fff3a1e..86441bb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -41,8 +41,8 @@ dependencies: specifier: ^3.3.1 version: 3.3.1 vue-router: - specifier: ^4.1.6 - version: 4.1.6(vue@3.3.1) + specifier: ^4.2.0 + version: 4.2.0(vue@3.3.1) vxe-table: specifier: ^4.3.12 version: 4.3.12(vue@3.3.1)(xe-utils@3.5.7) @@ -61,8 +61,8 @@ devDependencies: specifier: ^4.17.7 version: 4.17.7 '@types/node': - specifier: ^20.1.2 - version: 20.1.2 + specifier: ^20.1.3 + version: 20.1.3 '@types/nprogress': specifier: ^0.2.0 version: 0.2.0 @@ -125,7 +125,7 @@ devDependencies: version: 0.51.12(postcss@8.4.23)(vite@4.3.5) vite: specifier: ^4.3.5 - version: 4.3.5(@types/node@20.1.2)(sass@1.62.1)(terser@5.17.3) + version: 4.3.5(@types/node@20.1.3)(sass@1.62.1)(terser@5.17.3) vite-plugin-svg-icons: specifier: ^2.0.1 version: 2.0.1(vite@4.3.5) @@ -878,8 +878,8 @@ packages: /@types/lodash@4.14.194: resolution: {integrity: sha512-r22s9tAS7imvBt2lyHC9B8AGwWnXaYb1tY09oyLkXDs4vArpYJzw09nj8MLx5VfciBPGIb+ZwG0ssYnEPJxn/g==} - /@types/node@20.1.2: - resolution: {integrity: sha512-CTO/wa8x+rZU626cL2BlbCDzydgnFNgc19h4YvizpTO88MFQxab8wqisxaofQJ/9bLGugRdWIuX/TbIs6VVF6g==} + /@types/node@20.1.3: + resolution: {integrity: sha512-NP2yfZpgmf2eDRPmgGq+fjGjSwFgYbihA8/gK+ey23qT9RkxsgNTZvGOEpXgzIGqesTYkElELLgtKoMQTys5vA==} dev: true /@types/nprogress@0.2.0: @@ -897,7 +897,7 @@ packages: /@types/svgo@2.6.4: resolution: {integrity: sha512-l4cmyPEckf8moNYHdJ+4wkHvFxjyW6ulm9l4YGaOxeyBWPhBOT0gvni1InpFPdzx1dKf/2s62qGITwxNWnPQng==} dependencies: - '@types/node': 20.1.2 + '@types/node': 20.1.3 dev: true /@types/web-bluetooth@0.0.16: @@ -1218,7 +1218,7 @@ packages: chokidar: 3.5.3 fast-glob: 3.2.12 magic-string: 0.30.0 - vite: 4.3.5(@types/node@20.1.2)(sass@1.62.1)(terser@5.17.3) + vite: 4.3.5(@types/node@20.1.3)(sass@1.62.1)(terser@5.17.3) transitivePeerDependencies: - rollup dev: true @@ -1233,7 +1233,7 @@ packages: '@babel/core': 7.21.8 '@babel/plugin-transform-typescript': 7.21.3(@babel/core@7.21.8) '@vue/babel-plugin-jsx': 1.1.1(@babel/core@7.21.8) - vite: 4.3.5(@types/node@20.1.2)(sass@1.62.1)(terser@5.17.3) + vite: 4.3.5(@types/node@20.1.3)(sass@1.62.1)(terser@5.17.3) vue: 3.3.1 transitivePeerDependencies: - supports-color @@ -1246,7 +1246,7 @@ packages: vite: ^4.0.0 vue: ^3.2.25 dependencies: - vite: 4.3.5(@types/node@20.1.2)(sass@1.62.1)(terser@5.17.3) + vite: 4.3.5(@types/node@20.1.3)(sass@1.62.1)(terser@5.17.3) vue: 3.3.1 dev: true @@ -1762,7 +1762,7 @@ packages: hasBin: true dependencies: caniuse-lite: 1.0.30001486 - electron-to-chromium: 1.4.391 + electron-to-chromium: 1.4.392 node-releases: 2.0.10 update-browserslist-db: 1.0.11(browserslist@4.21.5) dev: true @@ -2318,8 +2318,8 @@ packages: sigmund: 1.0.1 dev: true - /electron-to-chromium@1.4.391: - resolution: {integrity: sha512-GqydVV1+kUWY5qlEzaw34/hyWTApuQrHiGrcGA2Kk/56nEK44i+YUW45VH43JuZT0Oo7uY8aVtpPhBBZXEWtSA==} + /electron-to-chromium@1.4.392: + resolution: {integrity: sha512-TXQOMW9tnhIms3jGy/lJctLjICOgyueZFJ1KUtm6DTQ+QpxX3p7ZBwB6syuZ9KBuT5S4XX7bgY1ECPgfxKUdOg==} dev: true /element-plus@2.3.4(vue@3.3.1): @@ -3635,8 +3635,8 @@ packages: is-extendable: 1.0.1 dev: true - /mlly@1.2.0: - resolution: {integrity: sha512-+c7A3CV0KGdKcylsI6khWyts/CYrGTrRVo4R/I7u/cUsy0Conxa6LUhiEzVKIw14lc2L5aiO4+SeVe4TeGRKww==} + /mlly@1.2.1: + resolution: {integrity: sha512-1aMEByaWgBPEbWV2BOPEMySRrzl7rIHXmQxam4DM8jVjalTQDjpN2ZKOLUrwyhfZQO7IXHml2StcHMhooDeEEQ==} dependencies: acorn: 8.8.2 pathe: 1.1.0 @@ -3953,7 +3953,7 @@ packages: resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} dependencies: jsonc-parser: 3.2.0 - mlly: 1.2.0 + mlly: 1.2.1 pathe: 1.1.0 dev: true @@ -4846,17 +4846,17 @@ packages: engines: {node: '>= 0.8'} dev: true - /vite-node@0.31.0(@types/node@20.1.2)(sass@1.62.1)(terser@5.17.3): + /vite-node@0.31.0(@types/node@20.1.3)(sass@1.62.1)(terser@5.17.3): resolution: {integrity: sha512-8x1x1LNuPvE2vIvkSB7c1mApX5oqlgsxzHQesYF7l5n1gKrEmrClIiZuOFbFDQcjLsmcWSwwmrWrcGWm9Fxc/g==} engines: {node: '>=v14.18.0'} hasBin: true dependencies: cac: 6.7.14 debug: 4.3.4 - mlly: 1.2.0 + mlly: 1.2.1 pathe: 1.1.0 picocolors: 1.0.0 - vite: 4.3.5(@types/node@20.1.2)(sass@1.62.1)(terser@5.17.3) + vite: 4.3.5(@types/node@20.1.3)(sass@1.62.1)(terser@5.17.3) transitivePeerDependencies: - '@types/node' - less @@ -4880,7 +4880,7 @@ packages: pathe: 0.2.0 svg-baker: 1.7.0 svgo: 2.8.0 - vite: 4.3.5(@types/node@20.1.2)(sass@1.62.1)(terser@5.17.3) + vite: 4.3.5(@types/node@20.1.3)(sass@1.62.1)(terser@5.17.3) transitivePeerDependencies: - supports-color dev: true @@ -4892,7 +4892,7 @@ packages: svgo: 3.0.2 dev: true - /vite@4.3.5(@types/node@20.1.2)(sass@1.62.1)(terser@5.17.3): + /vite@4.3.5(@types/node@20.1.3)(sass@1.62.1)(terser@5.17.3): resolution: {integrity: sha512-0gEnL9wiRFxgz40o/i/eTBwm+NEbpUeTWhzKrZDSdKm6nplj+z4lKz8ANDgildxHm47Vg8EUia0aicKbawUVVA==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true @@ -4917,7 +4917,7 @@ packages: terser: optional: true dependencies: - '@types/node': 20.1.2 + '@types/node': 20.1.3 esbuild: 0.17.18 postcss: 8.4.23 rollup: 3.21.6 @@ -4960,7 +4960,7 @@ packages: dependencies: '@types/chai': 4.3.5 '@types/chai-subset': 1.3.3 - '@types/node': 20.1.2 + '@types/node': 20.1.3 '@vitest/expect': 0.31.0 '@vitest/runner': 0.31.0 '@vitest/snapshot': 0.31.0 @@ -4981,8 +4981,8 @@ packages: strip-literal: 1.0.1 tinybench: 2.5.0 tinypool: 0.5.0 - vite: 4.3.5(@types/node@20.1.2)(sass@1.62.1)(terser@5.17.3) - vite-node: 0.31.0(@types/node@20.1.2)(sass@1.62.1)(terser@5.17.3) + vite: 4.3.5(@types/node@20.1.3)(sass@1.62.1)(terser@5.17.3) + vite-node: 0.31.0(@types/node@20.1.3)(sass@1.62.1)(terser@5.17.3) why-is-node-running: 2.2.2 transitivePeerDependencies: - less @@ -5026,8 +5026,8 @@ packages: - supports-color dev: true - /vue-router@4.1.6(vue@3.3.1): - resolution: {integrity: sha512-DYWYwsG6xNPmLq/FmZn8Ip+qrhFEzA14EI12MsMgVxvHFDYvlr4NXpVF5hrRH1wVcDP8fGi5F4rxuJSl8/r+EQ==} + /vue-router@4.2.0(vue@3.3.1): + resolution: {integrity: sha512-c+usESa6ZoWsm4PPdzRSyenp5A4dsUtnDJnrI03fY1IpIihA9TK3x5ffgkFDpjhLJZewsXoKURapNLFdZjuqTg==} peerDependencies: vue: ^3.2.0 dependencies: diff --git a/types/element-plus.d.ts b/types/element-plus.d.ts new file mode 100644 index 0000000..00f045d --- /dev/null +++ b/types/element-plus.d.ts @@ -0,0 +1,113 @@ +/** Copy https://github.com/element-plus/element-plus/blob/dev/global.d.ts#L2 */ + +declare module 'vue' { + export interface GlobalComponents { + ElAffix: typeof import('element-plus')['ElAffix'] + ElAlert: typeof import('element-plus')['ElAlert'] + ElAside: typeof import('element-plus')['ElAside'] + ElAutocomplete: typeof import('element-plus')['ElAutocomplete'] + ElAvatar: typeof import('element-plus')['ElAvatar'] + ElBacktop: typeof import('element-plus')['ElBacktop'] + ElBadge: typeof import('element-plus')['ElBadge'] + ElBreadcrumb: typeof import('element-plus')['ElBreadcrumb'] + ElBreadcrumbItem: typeof import('element-plus')['ElBreadcrumbItem'] + ElButton: typeof import('element-plus')['ElButton'] + ElButtonGroup: typeof import('element-plus')['ElButtonGroup'] + ElCalendar: typeof import('element-plus')['ElCalendar'] + ElCard: typeof import('element-plus')['ElCard'] + ElCarousel: typeof import('element-plus')['ElCarousel'] + ElCarouselItem: typeof import('element-plus')['ElCarouselItem'] + ElCascader: typeof import('element-plus')['ElCascader'] + ElCascaderPanel: typeof import('element-plus')['ElCascaderPanel'] + ElCheckbox: typeof import('element-plus')['ElCheckbox'] + ElCheckboxButton: typeof import('element-plus')['ElCheckboxButton'] + ElCheckboxGroup: typeof import('element-plus')['ElCheckboxGroup'] + ElCol: typeof import('element-plus')['ElCol'] + ElCollapse: typeof import('element-plus')['ElCollapse'] + ElCollapseItem: typeof import('element-plus')['ElCollapseItem'] + ElCollapseTransition: typeof import('element-plus')['ElCollapseTransition'] + ElColorPicker: typeof import('element-plus')['ElColorPicker'] + ElContainer: typeof import('element-plus')['ElContainer'] + ElConfigProvider: typeof import('element-plus')['ElConfigProvider'] + ElDatePicker: typeof import('element-plus')['ElDatePicker'] + ElDialog: typeof import('element-plus')['ElDialog'] + ElDivider: typeof import('element-plus')['ElDivider'] + ElDrawer: typeof import('element-plus')['ElDrawer'] + ElDropdown: typeof import('element-plus')['ElDropdown'] + ElDropdownItem: typeof import('element-plus')['ElDropdownItem'] + ElDropdownMenu: typeof import('element-plus')['ElDropdownMenu'] + ElEmpty: typeof import('element-plus')['ElEmpty'] + ElFooter: typeof import('element-plus')['ElFooter'] + ElForm: typeof import('element-plus')['ElForm'] + ElFormItem: typeof import('element-plus')['ElFormItem'] + ElHeader: typeof import('element-plus')['ElHeader'] + ElIcon: typeof import('element-plus')['ElIcon'] + ElImage: typeof import('element-plus')['ElImage'] + ElImageViewer: typeof import('element-plus')['ElImageViewer'] + ElInput: typeof import('element-plus')['ElInput'] + ElInputNumber: typeof import('element-plus')['ElInputNumber'] + ElLink: typeof import('element-plus')['ElLink'] + ElMain: typeof import('element-plus')['ElMain'] + ElMenu: typeof import('element-plus')['ElMenu'] + ElMenuItem: typeof import('element-plus')['ElMenuItem'] + ElMenuItemGroup: typeof import('element-plus')['ElMenuItemGroup'] + ElOption: typeof import('element-plus')['ElOption'] + ElOptionGroup: typeof import('element-plus')['ElOptionGroup'] + ElPageHeader: typeof import('element-plus')['ElPageHeader'] + ElPagination: typeof import('element-plus')['ElPagination'] + ElPopconfirm: typeof import('element-plus')['ElPopconfirm'] + ElPopper: typeof import('element-plus')['ElPopper'] + ElPopover: typeof import('element-plus')['ElPopover'] + ElProgress: typeof import('element-plus')['ElProgress'] + ElRadio: typeof import('element-plus')['ElRadio'] + ElRadioButton: typeof import('element-plus')['ElRadioButton'] + ElRadioGroup: typeof import('element-plus')['ElRadioGroup'] + ElRate: typeof import('element-plus')['ElRate'] + ElRow: typeof import('element-plus')['ElRow'] + ElScrollbar: typeof import('element-plus')['ElScrollbar'] + ElSelect: typeof import('element-plus')['ElSelect'] + ElSlider: typeof import('element-plus')['ElSlider'] + ElStep: typeof import('element-plus')['ElStep'] + ElSteps: typeof import('element-plus')['ElSteps'] + ElSubMenu: typeof import('element-plus')['ElSubMenu'] + ElSwitch: typeof import('element-plus')['ElSwitch'] + ElTabPane: typeof import('element-plus')['ElTabPane'] + ElTable: typeof import('element-plus')['ElTable'] + ElTableColumn: typeof import('element-plus')['ElTableColumn'] + ElTabs: typeof import('element-plus')['ElTabs'] + ElTag: typeof import('element-plus')['ElTag'] + ElText: typeof import('element-plus')['ElText'] + ElTimePicker: typeof import('element-plus')['ElTimePicker'] + ElTimeSelect: typeof import('element-plus')['ElTimeSelect'] + ElTimeline: typeof import('element-plus')['ElTimeline'] + ElTimelineItem: typeof import('element-plus')['ElTimelineItem'] + ElTooltip: typeof import('element-plus')['ElTooltip'] + ElTransfer: typeof import('element-plus')['ElTransfer'] + ElTree: typeof import('element-plus')['ElTree'] + ElTreeV2: typeof import('element-plus')['ElTreeV2'] + ElTreeSelect: typeof import('element-plus')['ElTreeSelect'] + ElUpload: typeof import('element-plus')['ElUpload'] + ElSpace: typeof import('element-plus')['ElSpace'] + ElSkeleton: typeof import('element-plus')['ElSkeleton'] + ElSkeletonItem: typeof import('element-plus')['ElSkeletonItem'] + ElStatistic: typeof import('element-plus')['ElStatistic'] + ElCheckTag: typeof import('element-plus')['ElCheckTag'] + ElDescriptions: typeof import('element-plus')['ElDescriptions'] + ElDescriptionsItem: typeof import('element-plus')['ElDescriptionsItem'] + ElResult: typeof import('element-plus')['ElResult'] + ElSelectV2: typeof import('element-plus')['ElSelectV2'] + } + + interface ComponentCustomProperties { + $message: typeof import('element-plus')['ElMessage'] + $notify: typeof import('element-plus')['ElNotification'] + $msgbox: typeof import('element-plus')['ElMessageBox'] + $messageBox: typeof import('element-plus')['ElMessageBox'] + $alert: typeof import('element-plus')['ElMessageBox']['alert'] + $confirm: typeof import('element-plus')['ElMessageBox']['confirm'] + $prompt: typeof import('element-plus')['ElMessageBox']['prompt'] + $loading: typeof import('element-plus')['ElLoadingService'] + } +} + +export {}