Commit 135ee3f39d918bdfd31949dc43f8ed6f89b2aef8
Committed by
Gitee
!349 vue3 XTable 组件
Merge pull request !349 from xingyu/dev
Showing
45 changed files
with
996 additions
and
597 deletions
README.md
| @@ -223,7 +223,7 @@ ps:核心功能已经实现,正在对接微信小程序中... | @@ -223,7 +223,7 @@ ps:核心功能已经实现,正在对接微信小程序中... | ||
| 223 | |----------------------------------------------------------------------|:------------:|:------:| | 223 | |----------------------------------------------------------------------|:------------:|:------:| |
| 224 | | [Vue](https://staging-cn.vuejs.org/) | Vue 框架 | 3.2.45 | | 224 | | [Vue](https://staging-cn.vuejs.org/) | Vue 框架 | 3.2.45 | |
| 225 | | [Vite](https://cn.vitejs.dev//) | 开发与构建工具 | 4.0.3 | | 225 | | [Vite](https://cn.vitejs.dev//) | 开发与构建工具 | 4.0.3 | |
| 226 | -| [Element Plus](https://element-plus.org/zh-CN/) | Element Plus | 2.2.27 | | 226 | +| [Element Plus](https://element-plus.org/zh-CN/) | Element Plus | 2.2.28 | |
| 227 | | [TypeScript](https://www.typescriptlang.org/docs/) | TypeScript | 4.9.4 | | 227 | | [TypeScript](https://www.typescriptlang.org/docs/) | TypeScript | 4.9.4 | |
| 228 | | [pinia](https://pinia.vuejs.org/) | vuex5 | 2.0.28 | | 228 | | [pinia](https://pinia.vuejs.org/) | vuex5 | 2.0.28 | |
| 229 | | [vue-i18n](https://kazupon.github.io/vue-i18n/zh/introduction.html/) | 国际化 | 9.2.2 | | 229 | | [vue-i18n](https://kazupon.github.io/vue-i18n/zh/introduction.html/) | 国际化 | 9.2.2 | |
yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3/views/index.vue.vm
| 1 | <template> | 1 | <template> |
| 2 | <ContentWrap> | 2 | <ContentWrap> |
| 3 | <!-- 列表 --> | 3 | <!-- 列表 --> |
| 4 | - <vxe-grid ref="xGrid" v-bind="gridOptions" class="xtable-scrollbar"> | 4 | + <XTable @register="registerTable"> |
| 5 | <template #toolbar_buttons> | 5 | <template #toolbar_buttons> |
| 6 | <!-- 操作:新增 --> | 6 | <!-- 操作:新增 --> |
| 7 | <XButton | 7 | <XButton |
| @@ -43,7 +43,7 @@ | @@ -43,7 +43,7 @@ | ||
| 43 | @click="handleDelete(row.id)" | 43 | @click="handleDelete(row.id)" |
| 44 | /> | 44 | /> |
| 45 | </template> | 45 | </template> |
| 46 | - </vxe-grid> | 46 | + </XTable> |
| 47 | </ContentWrap> | 47 | </ContentWrap> |
| 48 | <!-- 弹窗 --> | 48 | <!-- 弹窗 --> |
| 49 | <XModal id="${classNameVar}Model" :loading="modelLoading" v-model="modelVisible" :title="modelTitle"> | 49 | <XModal id="${classNameVar}Model" :loading="modelLoading" v-model="modelVisible" :title="modelTitle"> |
| @@ -79,8 +79,7 @@ | @@ -79,8 +79,7 @@ | ||
| 79 | import { ref, unref } from 'vue' | 79 | import { ref, unref } from 'vue' |
| 80 | import { useI18n } from '@/hooks/web/useI18n' | 80 | import { useI18n } from '@/hooks/web/useI18n' |
| 81 | import { useMessage } from '@/hooks/web/useMessage' | 81 | import { useMessage } from '@/hooks/web/useMessage' |
| 82 | -import { useVxeGrid } from '@/hooks/web/useVxeGrid' | ||
| 83 | -import { VxeGridInstance } from 'vxe-table' | 82 | +import { useXTable } from '@/hooks/web/useXTable' |
| 84 | import { FormExpose } from '@/components/Form' | 83 | import { FormExpose } from '@/components/Form' |
| 85 | // 业务相关的 import | 84 | // 业务相关的 import |
| 86 | import { rules, allSchemas } from './${classNameVar}.data' | 85 | import { rules, allSchemas } from './${classNameVar}.data' |
| @@ -90,8 +89,7 @@ const { t } = useI18n() // 国际化 | @@ -90,8 +89,7 @@ const { t } = useI18n() // 国际化 | ||
| 90 | const message = useMessage() // 消息弹窗 | 89 | const message = useMessage() // 消息弹窗 |
| 91 | 90 | ||
| 92 | // 列表相关的变量 | 91 | // 列表相关的变量 |
| 93 | -const xGrid = ref<VxeGridInstance>() // 列表 Grid Ref | ||
| 94 | -const { gridOptions, getList, deleteData, exportList } = useVxeGrid<${simpleClassName}Api.${simpleClassName}VO>({ | 92 | +const [registerTable, { reload, deleteData, exportList }] = useXTable({ |
| 95 | allSchemas: allSchemas, | 93 | allSchemas: allSchemas, |
| 96 | getListApi: ${simpleClassName}Api.get${simpleClassName}PageApi, | 94 | getListApi: ${simpleClassName}Api.get${simpleClassName}PageApi, |
| 97 | deleteApi: ${simpleClassName}Api.delete${simpleClassName}Api, | 95 | deleteApi: ${simpleClassName}Api.delete${simpleClassName}Api, |
| @@ -123,7 +121,7 @@ const handleCreate = () => { | @@ -123,7 +121,7 @@ const handleCreate = () => { | ||
| 123 | 121 | ||
| 124 | // 导出操作 | 122 | // 导出操作 |
| 125 | const handleExport = async () => { | 123 | const handleExport = async () => { |
| 126 | - await exportList(xGrid, '${table.classComment}.xls') | 124 | + await exportList('${table.classComment}.xls') |
| 127 | } | 125 | } |
| 128 | 126 | ||
| 129 | // 修改操作 | 127 | // 修改操作 |
| @@ -145,7 +143,7 @@ const handleDetail = async (rowId: number) => { | @@ -145,7 +143,7 @@ const handleDetail = async (rowId: number) => { | ||
| 145 | 143 | ||
| 146 | // 删除操作 | 144 | // 删除操作 |
| 147 | const handleDelete = async (rowId: number) => { | 145 | const handleDelete = async (rowId: number) => { |
| 148 | - await deleteData(xGrid, rowId) | 146 | + await deleteData(rowId) |
| 149 | } | 147 | } |
| 150 | 148 | ||
| 151 | // 提交按钮 | 149 | // 提交按钮 |
| @@ -169,7 +167,7 @@ const submitForm = async () => { | @@ -169,7 +167,7 @@ const submitForm = async () => { | ||
| 169 | } finally { | 167 | } finally { |
| 170 | actionLoading.value = false | 168 | actionLoading.value = false |
| 171 | // 刷新列表 | 169 | // 刷新列表 |
| 172 | - await getList(xGrid) | 170 | + await reload() |
| 173 | } | 171 | } |
| 174 | } | 172 | } |
| 175 | }) | 173 | }) |
yudao-ui-admin-vue3/README.md
| @@ -26,19 +26,19 @@ | @@ -26,19 +26,19 @@ | ||
| 26 | 26 | ||
| 27 | ### 前端依赖 | 27 | ### 前端依赖 |
| 28 | 28 | ||
| 29 | -| 框架 | 说明 | 版本 | | ||
| 30 | -| --- | --- | --- | | 29 | +| 框架 | 说明 | 版本 | |
| 30 | +| --- | --- |--------| | ||
| 31 | | [Vue](https://staging-cn.vuejs.org/) | vue 框架 | 3.2.45 | | 31 | | [Vue](https://staging-cn.vuejs.org/) | vue 框架 | 3.2.45 | |
| 32 | -| [Vite](https://cn.vitejs.dev//) | 开发与构建工具 | 4.0.3 | | ||
| 33 | -| [Element Plus](https://element-plus.org/zh-CN/) | Element Plus | 2.2.27 | | ||
| 34 | -| [TypeScript](https://www.typescriptlang.org/docs/) | JavaScript 的超集 | 4.9.4 | | 32 | +| [Vite](https://cn.vitejs.dev//) | 开发与构建工具 | 4.0.3 | |
| 33 | +| [Element Plus](https://element-plus.org/zh-CN/) | Element Plus | 2.2.28 | | ||
| 34 | +| [TypeScript](https://www.typescriptlang.org/docs/) | JavaScript 的超集 | 4.9.4 | | ||
| 35 | | [pinia](https://pinia.vuejs.org/) | Vue 存储库 替代 vuex5 | 2.0.28 | | 35 | | [pinia](https://pinia.vuejs.org/) | Vue 存储库 替代 vuex5 | 2.0.28 | |
| 36 | -| [vueuse](https://vueuse.org/) | 常用工具集 | 9.8.2 | | ||
| 37 | -| [vxe-table](https://vxetable.cn/) | vue 最强表单 | 4.3.7 | | ||
| 38 | -| [vue-i18n](https://kazupon.github.io/vue-i18n/zh/introduction.html/) | 国际化 | 9.2.2 | | ||
| 39 | -| [vue-router](https://router.vuejs.org/) | vue 路由 | 4.1.6 | | ||
| 40 | -| [windicss](https://cn.windicss.org/) | 下一代工具优先的 CSS 框架 | 3.5.6 | | ||
| 41 | -| [iconify](https://icon-sets.iconify.design/) | 在线图标库 | 3.0.0 | | 36 | +| [vueuse](https://vueuse.org/) | 常用工具集 | 9.8.2 | |
| 37 | +| [vxe-table](https://vxetable.cn/) | vue 最强表单 | 4.3.7 | | ||
| 38 | +| [vue-i18n](https://kazupon.github.io/vue-i18n/zh/introduction.html/) | 国际化 | 9.2.2 | | ||
| 39 | +| [vue-router](https://router.vuejs.org/) | vue 路由 | 4.1.6 | | ||
| 40 | +| [windicss](https://cn.windicss.org/) | 下一代工具优先的 CSS 框架 | 3.5.6 | | ||
| 41 | +| [iconify](https://icon-sets.iconify.design/) | 在线图标库 | 3.0.1 | | ||
| 42 | | [wangeditor](https://www.wangeditor.com/) | 富文本编辑器 | 5.1.23 | | 42 | | [wangeditor](https://www.wangeditor.com/) | 富文本编辑器 | 5.1.23 | |
| 43 | 43 | ||
| 44 | ### 推荐 VScode 开发,插件如下 | 44 | ### 推荐 VScode 开发,插件如下 |
yudao-ui-admin-vue3/package.json
| 1 | { | 1 | { |
| 2 | "name": "yudao-ui-admin-vue3", | 2 | "name": "yudao-ui-admin-vue3", |
| 3 | - "version": "1.6.5.1879", | 3 | + "version": "1.6.5.1901", |
| 4 | "description": "基于vue3、vite4、element-plus、typesScript", | 4 | "description": "基于vue3、vite4、element-plus、typesScript", |
| 5 | "author": "xingyu", | 5 | "author": "xingyu", |
| 6 | "private": false, | 6 | "private": false, |
| @@ -30,13 +30,13 @@ | @@ -30,13 +30,13 @@ | ||
| 30 | "@wangeditor/editor-for-vue": "^5.1.10", | 30 | "@wangeditor/editor-for-vue": "^5.1.10", |
| 31 | "@zxcvbn-ts/core": "^2.1.0", | 31 | "@zxcvbn-ts/core": "^2.1.0", |
| 32 | "animate.css": "^4.1.1", | 32 | "animate.css": "^4.1.1", |
| 33 | - "axios": "^1.2.1", | 33 | + "axios": "^1.2.2", |
| 34 | "cropperjs": "^1.5.13", | 34 | "cropperjs": "^1.5.13", |
| 35 | "crypto-js": "^4.1.1", | 35 | "crypto-js": "^4.1.1", |
| 36 | "dayjs": "^1.11.7", | 36 | "dayjs": "^1.11.7", |
| 37 | "echarts": "^5.4.1", | 37 | "echarts": "^5.4.1", |
| 38 | "echarts-wordcloud": "^2.1.0", | 38 | "echarts-wordcloud": "^2.1.0", |
| 39 | - "element-plus": "2.2.27", | 39 | + "element-plus": "2.2.28", |
| 40 | "intro.js": "^6.0.0", | 40 | "intro.js": "^6.0.0", |
| 41 | "jsencrypt": "^3.3.1", | 41 | "jsencrypt": "^3.3.1", |
| 42 | "lodash-es": "^4.17.21", | 42 | "lodash-es": "^4.17.21", |
| @@ -57,25 +57,25 @@ | @@ -57,25 +57,25 @@ | ||
| 57 | "devDependencies": { | 57 | "devDependencies": { |
| 58 | "@commitlint/cli": "^17.3.0", | 58 | "@commitlint/cli": "^17.3.0", |
| 59 | "@commitlint/config-conventional": "^17.3.0", | 59 | "@commitlint/config-conventional": "^17.3.0", |
| 60 | - "@iconify/json": "^2.1.157", | 60 | + "@iconify/json": "^2.2.1", |
| 61 | "@intlify/unplugin-vue-i18n": "^0.8.1", | 61 | "@intlify/unplugin-vue-i18n": "^0.8.1", |
| 62 | "@purge-icons/generated": "^0.9.0", | 62 | "@purge-icons/generated": "^0.9.0", |
| 63 | "@types/intro.js": "^5.1.0", | 63 | "@types/intro.js": "^5.1.0", |
| 64 | "@types/lodash-es": "^4.17.6", | 64 | "@types/lodash-es": "^4.17.6", |
| 65 | - "@types/node": "^18.11.17", | 65 | + "@types/node": "^18.11.18", |
| 66 | "@types/nprogress": "^0.2.0", | 66 | "@types/nprogress": "^0.2.0", |
| 67 | "@types/qrcode": "^1.5.0", | 67 | "@types/qrcode": "^1.5.0", |
| 68 | "@types/qs": "^6.9.7", | 68 | "@types/qs": "^6.9.7", |
| 69 | - "@typescript-eslint/eslint-plugin": "^5.47.0", | ||
| 70 | - "@typescript-eslint/parser": "^5.47.0", | 69 | + "@typescript-eslint/eslint-plugin": "^5.48.0", |
| 70 | + "@typescript-eslint/parser": "^5.48.0", | ||
| 71 | "@vitejs/plugin-legacy": "^3.0.1", | 71 | "@vitejs/plugin-legacy": "^3.0.1", |
| 72 | "@vitejs/plugin-vue": "^4.0.0", | 72 | "@vitejs/plugin-vue": "^4.0.0", |
| 73 | "@vitejs/plugin-vue-jsx": "^3.0.0", | 73 | "@vitejs/plugin-vue-jsx": "^3.0.0", |
| 74 | "autoprefixer": "^10.4.13", | 74 | "autoprefixer": "^10.4.13", |
| 75 | "consola": "^2.15.3", | 75 | "consola": "^2.15.3", |
| 76 | - "eslint": "^8.30.0", | ||
| 77 | - "eslint-config-prettier": "^8.5.0", | ||
| 78 | - "eslint-define-config": "^1.12.0", | 76 | + "eslint": "^8.31.0", |
| 77 | + "eslint-config-prettier": "^8.6.0", | ||
| 78 | + "eslint-define-config": "^1.13.0", | ||
| 79 | "eslint-plugin-prettier": "^4.2.1", | 79 | "eslint-plugin-prettier": "^4.2.1", |
| 80 | "eslint-plugin-vue": "^9.8.0", | 80 | "eslint-plugin-vue": "^9.8.0", |
| 81 | "lint-staged": "^13.1.0", | 81 | "lint-staged": "^13.1.0", |
| @@ -84,9 +84,9 @@ | @@ -84,9 +84,9 @@ | ||
| 84 | "postcss-scss": "^4.0.6", | 84 | "postcss-scss": "^4.0.6", |
| 85 | "prettier": "^2.8.1", | 85 | "prettier": "^2.8.1", |
| 86 | "rimraf": "^3.0.2", | 86 | "rimraf": "^3.0.2", |
| 87 | - "rollup": "^3.8.1", | 87 | + "rollup": "^3.9.1", |
| 88 | "sass": "^1.57.1", | 88 | "sass": "^1.57.1", |
| 89 | - "stylelint": "^14.16.0", | 89 | + "stylelint": "^14.16.1", |
| 90 | "stylelint-config-html": "^1.1.0", | 90 | "stylelint-config-html": "^1.1.0", |
| 91 | "stylelint-config-prettier": "^9.0.4", | 91 | "stylelint-config-prettier": "^9.0.4", |
| 92 | "stylelint-config-recommended": "^9.0.0", | 92 | "stylelint-config-recommended": "^9.0.0", |
| @@ -104,7 +104,7 @@ | @@ -104,7 +104,7 @@ | ||
| 104 | "vite-plugin-svg-icons": "^2.0.1", | 104 | "vite-plugin-svg-icons": "^2.0.1", |
| 105 | "vite-plugin-vue-setup-extend": "^0.4.0", | 105 | "vite-plugin-vue-setup-extend": "^0.4.0", |
| 106 | "vite-plugin-windicss": "^1.8.10", | 106 | "vite-plugin-windicss": "^1.8.10", |
| 107 | - "vue-tsc": "^1.0.17", | 107 | + "vue-tsc": "^1.0.19", |
| 108 | "windicss": "^3.5.6" | 108 | "windicss": "^3.5.6" |
| 109 | }, | 109 | }, |
| 110 | "engines": { | 110 | "engines": { |
yudao-ui-admin-vue3/pnpm-lock.yaml
| @@ -4,37 +4,37 @@ specifiers: | @@ -4,37 +4,37 @@ specifiers: | ||
| 4 | '@commitlint/cli': ^17.3.0 | 4 | '@commitlint/cli': ^17.3.0 |
| 5 | '@commitlint/config-conventional': ^17.3.0 | 5 | '@commitlint/config-conventional': ^17.3.0 |
| 6 | '@iconify/iconify': ^3.0.1 | 6 | '@iconify/iconify': ^3.0.1 |
| 7 | - '@iconify/json': ^2.1.156 | 7 | + '@iconify/json': ^2.2.1 |
| 8 | '@intlify/unplugin-vue-i18n': ^0.8.1 | 8 | '@intlify/unplugin-vue-i18n': ^0.8.1 |
| 9 | '@purge-icons/generated': ^0.9.0 | 9 | '@purge-icons/generated': ^0.9.0 |
| 10 | '@types/intro.js': ^5.1.0 | 10 | '@types/intro.js': ^5.1.0 |
| 11 | '@types/lodash-es': ^4.17.6 | 11 | '@types/lodash-es': ^4.17.6 |
| 12 | - '@types/node': ^18.11.17 | 12 | + '@types/node': ^18.11.18 |
| 13 | '@types/nprogress': ^0.2.0 | 13 | '@types/nprogress': ^0.2.0 |
| 14 | '@types/qrcode': ^1.5.0 | 14 | '@types/qrcode': ^1.5.0 |
| 15 | '@types/qs': ^6.9.7 | 15 | '@types/qs': ^6.9.7 |
| 16 | - '@typescript-eslint/eslint-plugin': ^5.47.0 | ||
| 17 | - '@typescript-eslint/parser': ^5.47.0 | 16 | + '@typescript-eslint/eslint-plugin': ^5.48.0 |
| 17 | + '@typescript-eslint/parser': ^5.48.0 | ||
| 18 | '@vitejs/plugin-legacy': ^3.0.1 | 18 | '@vitejs/plugin-legacy': ^3.0.1 |
| 19 | '@vitejs/plugin-vue': ^4.0.0 | 19 | '@vitejs/plugin-vue': ^4.0.0 |
| 20 | '@vitejs/plugin-vue-jsx': ^3.0.0 | 20 | '@vitejs/plugin-vue-jsx': ^3.0.0 |
| 21 | - '@vueuse/core': ^9.8.2 | 21 | + '@vueuse/core': ^9.9.0 |
| 22 | '@wangeditor/editor': ^5.1.23 | 22 | '@wangeditor/editor': ^5.1.23 |
| 23 | '@wangeditor/editor-for-vue': ^5.1.10 | 23 | '@wangeditor/editor-for-vue': ^5.1.10 |
| 24 | '@zxcvbn-ts/core': ^2.1.0 | 24 | '@zxcvbn-ts/core': ^2.1.0 |
| 25 | animate.css: ^4.1.1 | 25 | animate.css: ^4.1.1 |
| 26 | autoprefixer: ^10.4.13 | 26 | autoprefixer: ^10.4.13 |
| 27 | - axios: ^1.2.1 | 27 | + axios: ^1.2.2 |
| 28 | consola: ^2.15.3 | 28 | consola: ^2.15.3 |
| 29 | cropperjs: ^1.5.13 | 29 | cropperjs: ^1.5.13 |
| 30 | crypto-js: ^4.1.1 | 30 | crypto-js: ^4.1.1 |
| 31 | dayjs: ^1.11.7 | 31 | dayjs: ^1.11.7 |
| 32 | echarts: ^5.4.1 | 32 | echarts: ^5.4.1 |
| 33 | echarts-wordcloud: ^2.1.0 | 33 | echarts-wordcloud: ^2.1.0 |
| 34 | - element-plus: 2.2.27 | ||
| 35 | - eslint: ^8.30.0 | ||
| 36 | - eslint-config-prettier: ^8.5.0 | ||
| 37 | - eslint-define-config: ^1.12.0 | 34 | + element-plus: 2.2.28 |
| 35 | + eslint: ^8.31.0 | ||
| 36 | + eslint-config-prettier: ^8.6.0 | ||
| 37 | + eslint-define-config: ^1.13.0 | ||
| 38 | eslint-plugin-prettier: ^4.2.1 | 38 | eslint-plugin-prettier: ^4.2.1 |
| 39 | eslint-plugin-vue: ^9.8.0 | 39 | eslint-plugin-vue: ^9.8.0 |
| 40 | intro.js: ^6.0.0 | 40 | intro.js: ^6.0.0 |
| @@ -51,9 +51,9 @@ specifiers: | @@ -51,9 +51,9 @@ specifiers: | ||
| 51 | qrcode: ^1.5.1 | 51 | qrcode: ^1.5.1 |
| 52 | qs: ^6.11.0 | 52 | qs: ^6.11.0 |
| 53 | rimraf: ^3.0.2 | 53 | rimraf: ^3.0.2 |
| 54 | - rollup: ^3.8.1 | 54 | + rollup: ^3.9.1 |
| 55 | sass: ^1.57.1 | 55 | sass: ^1.57.1 |
| 56 | - stylelint: ^14.16.0 | 56 | + stylelint: ^14.16.1 |
| 57 | stylelint-config-html: ^1.1.0 | 57 | stylelint-config-html: ^1.1.0 |
| 58 | stylelint-config-prettier: ^9.0.4 | 58 | stylelint-config-prettier: ^9.0.4 |
| 59 | stylelint-config-recommended: ^9.0.0 | 59 | stylelint-config-recommended: ^9.0.0 |
| @@ -75,7 +75,7 @@ specifiers: | @@ -75,7 +75,7 @@ specifiers: | ||
| 75 | vue: 3.2.45 | 75 | vue: 3.2.45 |
| 76 | vue-i18n: 9.2.2 | 76 | vue-i18n: 9.2.2 |
| 77 | vue-router: ^4.1.6 | 77 | vue-router: ^4.1.6 |
| 78 | - vue-tsc: ^1.0.16 | 78 | + vue-tsc: ^1.0.19 |
| 79 | vue-types: ^5.0.2 | 79 | vue-types: ^5.0.2 |
| 80 | vxe-table: ^4.3.7 | 80 | vxe-table: ^4.3.7 |
| 81 | web-storage-cache: ^1.1.1 | 81 | web-storage-cache: ^1.1.1 |
| @@ -84,18 +84,18 @@ specifiers: | @@ -84,18 +84,18 @@ specifiers: | ||
| 84 | 84 | ||
| 85 | dependencies: | 85 | dependencies: |
| 86 | '@iconify/iconify': 3.0.1 | 86 | '@iconify/iconify': 3.0.1 |
| 87 | - '@vueuse/core': 9.8.2_vue@3.2.45 | 87 | + '@vueuse/core': 9.9.0_vue@3.2.45 |
| 88 | '@wangeditor/editor': 5.1.23 | 88 | '@wangeditor/editor': 5.1.23 |
| 89 | '@wangeditor/editor-for-vue': 5.1.12_3apfu3xbp6awzuex7ed3sbrv6y | 89 | '@wangeditor/editor-for-vue': 5.1.12_3apfu3xbp6awzuex7ed3sbrv6y |
| 90 | '@zxcvbn-ts/core': 2.1.0 | 90 | '@zxcvbn-ts/core': 2.1.0 |
| 91 | animate.css: 4.1.1 | 91 | animate.css: 4.1.1 |
| 92 | - axios: 1.2.1 | 92 | + axios: 1.2.2 |
| 93 | cropperjs: 1.5.13 | 93 | cropperjs: 1.5.13 |
| 94 | crypto-js: 4.1.1 | 94 | crypto-js: 4.1.1 |
| 95 | dayjs: 1.11.7 | 95 | dayjs: 1.11.7 |
| 96 | echarts: registry.npmmirror.com/echarts/5.4.1 | 96 | echarts: registry.npmmirror.com/echarts/5.4.1 |
| 97 | echarts-wordcloud: 2.1.0_echarts@5.4.1 | 97 | echarts-wordcloud: 2.1.0_echarts@5.4.1 |
| 98 | - element-plus: 2.2.27_vue@3.2.45 | 98 | + element-plus: 2.2.28_vue@3.2.45 |
| 99 | intro.js: 6.0.0 | 99 | intro.js: 6.0.0 |
| 100 | jsencrypt: 3.3.1 | 100 | jsencrypt: 3.3.1 |
| 101 | lodash-es: 4.17.21 | 101 | lodash-es: 4.17.21 |
| @@ -116,58 +116,79 @@ dependencies: | @@ -116,58 +116,79 @@ dependencies: | ||
| 116 | devDependencies: | 116 | devDependencies: |
| 117 | '@commitlint/cli': 17.3.0 | 117 | '@commitlint/cli': 17.3.0 |
| 118 | '@commitlint/config-conventional': 17.3.0 | 118 | '@commitlint/config-conventional': 17.3.0 |
| 119 | - '@iconify/json': 2.1.156 | 119 | + '@iconify/json': 2.2.1 |
| 120 | '@intlify/unplugin-vue-i18n': 0.8.1_vue-i18n@9.2.2 | 120 | '@intlify/unplugin-vue-i18n': 0.8.1_vue-i18n@9.2.2 |
| 121 | '@purge-icons/generated': 0.9.0 | 121 | '@purge-icons/generated': 0.9.0 |
| 122 | '@types/intro.js': 5.1.0 | 122 | '@types/intro.js': 5.1.0 |
| 123 | '@types/lodash-es': 4.17.6 | 123 | '@types/lodash-es': 4.17.6 |
| 124 | - '@types/node': 18.11.17 | 124 | + '@types/node': 18.11.18 |
| 125 | '@types/nprogress': 0.2.0 | 125 | '@types/nprogress': 0.2.0 |
| 126 | '@types/qrcode': 1.5.0 | 126 | '@types/qrcode': 1.5.0 |
| 127 | '@types/qs': 6.9.7 | 127 | '@types/qs': 6.9.7 |
| 128 | - '@typescript-eslint/eslint-plugin': 5.47.0_ncmi6noazr3nzas7jxykisekym | ||
| 129 | - '@typescript-eslint/parser': 5.47.0_lzzuuodtsqwxnvqeq4g4likcqa | 128 | + '@typescript-eslint/eslint-plugin': 5.48.0_k73wpmdolxikpyqun3p36akaaq |
| 129 | + '@typescript-eslint/parser': 5.48.0_iukboom6ndih5an6iafl45j2fe | ||
| 130 | '@vitejs/plugin-legacy': registry.npmmirror.com/@vitejs/plugin-legacy/3.0.1_terser@5.16.1+vite@4.0.3 | 130 | '@vitejs/plugin-legacy': registry.npmmirror.com/@vitejs/plugin-legacy/3.0.1_terser@5.16.1+vite@4.0.3 |
| 131 | '@vitejs/plugin-vue': registry.npmmirror.com/@vitejs/plugin-vue/4.0.0_vite@4.0.3+vue@3.2.45 | 131 | '@vitejs/plugin-vue': registry.npmmirror.com/@vitejs/plugin-vue/4.0.0_vite@4.0.3+vue@3.2.45 |
| 132 | '@vitejs/plugin-vue-jsx': registry.npmmirror.com/@vitejs/plugin-vue-jsx/3.0.0_vite@4.0.3+vue@3.2.45 | 132 | '@vitejs/plugin-vue-jsx': registry.npmmirror.com/@vitejs/plugin-vue-jsx/3.0.0_vite@4.0.3+vue@3.2.45 |
| 133 | autoprefixer: 10.4.13_postcss@8.4.20 | 133 | autoprefixer: 10.4.13_postcss@8.4.20 |
| 134 | consola: 2.15.3 | 134 | consola: 2.15.3 |
| 135 | - eslint: 8.30.0 | ||
| 136 | - eslint-config-prettier: 8.5.0_eslint@8.30.0 | ||
| 137 | - eslint-define-config: 1.12.0 | ||
| 138 | - eslint-plugin-prettier: 4.2.1_kl4pe43v5b43npmso5hoplpbyi | ||
| 139 | - eslint-plugin-vue: 9.8.0_eslint@8.30.0 | 135 | + eslint: 8.31.0 |
| 136 | + eslint-config-prettier: 8.6.0_eslint@8.31.0 | ||
| 137 | + eslint-define-config: 1.13.0 | ||
| 138 | + eslint-plugin-prettier: 4.2.1_32m5uc2milwdw3tnkcq5del26y | ||
| 139 | + eslint-plugin-vue: 9.8.0_eslint@8.31.0 | ||
| 140 | lint-staged: 13.1.0 | 140 | lint-staged: 13.1.0 |
| 141 | postcss: registry.npmmirror.com/postcss/8.4.20 | 141 | postcss: registry.npmmirror.com/postcss/8.4.20 |
| 142 | postcss-html: 1.5.0 | 142 | postcss-html: 1.5.0 |
| 143 | postcss-scss: 4.0.6_postcss@8.4.20 | 143 | postcss-scss: 4.0.6_postcss@8.4.20 |
| 144 | prettier: 2.8.1 | 144 | prettier: 2.8.1 |
| 145 | rimraf: 3.0.2 | 145 | rimraf: 3.0.2 |
| 146 | - rollup: 3.8.1 | 146 | + rollup: 3.9.1 |
| 147 | sass: 1.57.1 | 147 | sass: 1.57.1 |
| 148 | - stylelint: 14.16.0 | ||
| 149 | - stylelint-config-html: 1.1.0_bto6pmslw3cibsiuq6smxboytq | ||
| 150 | - stylelint-config-prettier: 9.0.4_stylelint@14.16.0 | ||
| 151 | - stylelint-config-recommended: 9.0.0_stylelint@14.16.0 | ||
| 152 | - stylelint-config-standard: 29.0.0_stylelint@14.16.0 | ||
| 153 | - stylelint-order: 5.0.0_stylelint@14.16.0 | 148 | + stylelint: 14.16.1 |
| 149 | + stylelint-config-html: 1.1.0_kbto3rg3njmczth2rrsgfnlsqa | ||
| 150 | + stylelint-config-prettier: 9.0.4_stylelint@14.16.1 | ||
| 151 | + stylelint-config-recommended: 9.0.0_stylelint@14.16.1 | ||
| 152 | + stylelint-config-standard: 29.0.0_stylelint@14.16.1 | ||
| 153 | + stylelint-order: 5.0.0_stylelint@14.16.1 | ||
| 154 | terser: 5.16.1 | 154 | terser: 5.16.1 |
| 155 | typescript: 4.9.4 | 155 | typescript: 4.9.4 |
| 156 | - vite: 4.0.3_amyfslv6hdwxqbf7f4ldebbtce | 156 | + vite: 4.0.3_zxbrnrc4iyldik6mikh3pswz4i |
| 157 | vite-plugin-compression: 0.5.1_vite@4.0.3 | 157 | vite-plugin-compression: 0.5.1_vite@4.0.3 |
| 158 | vite-plugin-ejs: 1.6.4 | 158 | vite-plugin-ejs: 1.6.4 |
| 159 | - vite-plugin-eslint: 1.8.1_eslint@8.30.0+vite@4.0.3 | 159 | + vite-plugin-eslint: 1.8.1_eslint@8.31.0+vite@4.0.3 |
| 160 | vite-plugin-progress: 0.0.6_vite@4.0.3 | 160 | vite-plugin-progress: 0.0.6_vite@4.0.3 |
| 161 | vite-plugin-purge-icons: registry.npmmirror.com/vite-plugin-purge-icons/0.9.2_vite@4.0.3 | 161 | vite-plugin-purge-icons: registry.npmmirror.com/vite-plugin-purge-icons/0.9.2_vite@4.0.3 |
| 162 | vite-plugin-style-import: 2.0.0_vite@4.0.3 | 162 | vite-plugin-style-import: 2.0.0_vite@4.0.3 |
| 163 | vite-plugin-svg-icons: 2.0.1_vite@4.0.3 | 163 | vite-plugin-svg-icons: 2.0.1_vite@4.0.3 |
| 164 | vite-plugin-vue-setup-extend: 0.4.0_vite@4.0.3 | 164 | vite-plugin-vue-setup-extend: 0.4.0_vite@4.0.3 |
| 165 | vite-plugin-windicss: registry.npmmirror.com/vite-plugin-windicss/1.8.10_vite@4.0.3 | 165 | vite-plugin-windicss: registry.npmmirror.com/vite-plugin-windicss/1.8.10_vite@4.0.3 |
| 166 | - vue-tsc: 1.0.16_typescript@4.9.4 | 166 | + vue-tsc: 1.0.19_typescript@4.9.4 |
| 167 | windicss: 3.5.6 | 167 | windicss: 3.5.6 |
| 168 | 168 | ||
| 169 | packages: | 169 | packages: |
| 170 | 170 | ||
| 171 | + /@babel/code-frame/7.18.6: | ||
| 172 | + resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==} | ||
| 173 | + engines: {node: '>=6.9.0'} | ||
| 174 | + dependencies: | ||
| 175 | + '@babel/highlight': 7.18.6 | ||
| 176 | + dev: true | ||
| 177 | + | ||
| 178 | + /@babel/helper-validator-identifier/7.19.1: | ||
| 179 | + resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} | ||
| 180 | + engines: {node: '>=6.9.0'} | ||
| 181 | + dev: true | ||
| 182 | + | ||
| 183 | + /@babel/highlight/7.18.6: | ||
| 184 | + resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} | ||
| 185 | + engines: {node: '>=6.9.0'} | ||
| 186 | + dependencies: | ||
| 187 | + '@babel/helper-validator-identifier': 7.19.1 | ||
| 188 | + chalk: 2.4.2 | ||
| 189 | + js-tokens: 4.0.0 | ||
| 190 | + dev: true | ||
| 191 | + | ||
| 171 | /@babel/parser/7.20.3: | 192 | /@babel/parser/7.20.3: |
| 172 | resolution: {integrity: sha512-OP/s5a94frIPXwjzEcv5S/tpQfc6XhxYUnmWpgdqMWGgYCuErA3SzozaRAMQgSZWKeTJxht9aWAkUY+0UzvOFg==} | 193 | resolution: {integrity: sha512-OP/s5a94frIPXwjzEcv5S/tpQfc6XhxYUnmWpgdqMWGgYCuErA3SzozaRAMQgSZWKeTJxht9aWAkUY+0UzvOFg==} |
| 173 | engines: {node: '>=6.0.0'} | 194 | engines: {node: '>=6.0.0'} |
| @@ -364,7 +385,7 @@ packages: | @@ -364,7 +385,7 @@ packages: | ||
| 364 | postcss: ^8.2 | 385 | postcss: ^8.2 |
| 365 | postcss-selector-parser: ^6.0.10 | 386 | postcss-selector-parser: ^6.0.10 |
| 366 | dependencies: | 387 | dependencies: |
| 367 | - postcss: registry.npmmirror.com/postcss/8.4.20 | 388 | + postcss: 8.4.20 |
| 368 | postcss-selector-parser: 6.0.11 | 389 | postcss-selector-parser: 6.0.11 |
| 369 | dev: true | 390 | dev: true |
| 370 | 391 | ||
| @@ -579,8 +600,8 @@ packages: | @@ -579,8 +600,8 @@ packages: | ||
| 579 | dev: true | 600 | dev: true |
| 580 | optional: true | 601 | optional: true |
| 581 | 602 | ||
| 582 | - /@eslint/eslintrc/1.4.0: | ||
| 583 | - resolution: {integrity: sha512-7yfvXy6MWLgWSFsLhz5yH3iQ52St8cdUY6FoGieKkRDVxuxmrNuUetIuu6cmjNWwniUHiWXjxCr5tTXDrbYS5A==} | 603 | + /@eslint/eslintrc/1.4.1: |
| 604 | + resolution: {integrity: sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==} | ||
| 584 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} | 605 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} |
| 585 | dependencies: | 606 | dependencies: |
| 586 | ajv: 6.12.6 | 607 | ajv: 6.12.6 |
| @@ -631,11 +652,11 @@ packages: | @@ -631,11 +652,11 @@ packages: | ||
| 631 | dependencies: | 652 | dependencies: |
| 632 | '@iconify/types': 2.0.0 | 653 | '@iconify/types': 2.0.0 |
| 633 | 654 | ||
| 634 | - /@iconify/json/2.1.156: | ||
| 635 | - resolution: {integrity: sha512-QaLf/XSPRe6i35Z9WIRBxlWOLykDXNnEGYFf+9E+GWLmRqVQ2VNyTsEo6CNZqP5eGQRDPJyNhd+2vH+gbehGDg==} | 655 | + /@iconify/json/2.2.1: |
| 656 | + resolution: {integrity: sha512-h6QAV4i0B/QdpJRWExgE5am3WtmNAy/NucsAGNtYsNzeLBa+TVig4QpO9nQrX172tQvEZAfSqUkvCx/y7GN0GQ==} | ||
| 636 | dependencies: | 657 | dependencies: |
| 637 | '@iconify/types': 2.0.0 | 658 | '@iconify/types': 2.0.0 |
| 638 | - pathe: 0.3.9 | 659 | + pathe: 1.0.0 |
| 639 | dev: true | 660 | dev: true |
| 640 | 661 | ||
| 641 | /@iconify/types/2.0.0: | 662 | /@iconify/types/2.0.0: |
| @@ -653,8 +674,8 @@ packages: | @@ -653,8 +674,8 @@ packages: | ||
| 653 | vue-i18n: | 674 | vue-i18n: |
| 654 | optional: true | 675 | optional: true |
| 655 | dependencies: | 676 | dependencies: |
| 656 | - '@intlify/message-compiler': 9.3.0-beta.11 | ||
| 657 | - '@intlify/shared': 9.3.0-beta.11 | 677 | + '@intlify/message-compiler': 9.3.0-beta.12 |
| 678 | + '@intlify/shared': 9.3.0-beta.12 | ||
| 658 | jsonc-eslint-parser: 1.4.1 | 679 | jsonc-eslint-parser: 1.4.1 |
| 659 | source-map: 0.6.1 | 680 | source-map: 0.6.1 |
| 660 | vue-i18n: 9.2.2_vue@3.2.45 | 681 | vue-i18n: 9.2.2_vue@3.2.45 |
| @@ -683,8 +704,8 @@ packages: | @@ -683,8 +704,8 @@ packages: | ||
| 683 | '@intlify/shared': 9.2.2 | 704 | '@intlify/shared': 9.2.2 |
| 684 | source-map: 0.6.1 | 705 | source-map: 0.6.1 |
| 685 | 706 | ||
| 686 | - /@intlify/message-compiler/9.3.0-beta.11: | ||
| 687 | - resolution: {integrity: sha512-gGGfBGzM7JBXp1Q9gbDAy5jELz9ho3ILqnpxp2yp64+gkqohrqc2YXIvCdwZoc6AtKIh/Zmv4sWVqxkvMsBWtQ==} | 707 | + /@intlify/message-compiler/9.3.0-beta.12: |
| 708 | + resolution: {integrity: sha512-A8/s7pb3v8nf6HG77qFPJntxgQKI9GXxGnkn7aO+b03/X/GkF/4WceDSAIk3i+yLeIgszeBn9GZ23tSg4sTEHA==} | ||
| 688 | engines: {node: '>= 14'} | 709 | engines: {node: '>= 14'} |
| 689 | dependencies: | 710 | dependencies: |
| 690 | '@intlify/shared': 9.3.0-beta.11 | 711 | '@intlify/shared': 9.3.0-beta.11 |
| @@ -700,6 +721,11 @@ packages: | @@ -700,6 +721,11 @@ packages: | ||
| 700 | engines: {node: '>= 14'} | 721 | engines: {node: '>= 14'} |
| 701 | dev: true | 722 | dev: true |
| 702 | 723 | ||
| 724 | + /@intlify/shared/9.3.0-beta.12: | ||
| 725 | + resolution: {integrity: sha512-WsmaS54sA8xuwezPKpa/OMoaX1v2VF2fCgAmYS6prDr2ir0CkUFWPm9A8ilmxzv4nkS61/v8+vf4lGGkn5uBdA==} | ||
| 726 | + engines: {node: '>= 14'} | ||
| 727 | + dev: true | ||
| 728 | + | ||
| 703 | /@intlify/unplugin-vue-i18n/0.8.1_vue-i18n@9.2.2: | 729 | /@intlify/unplugin-vue-i18n/0.8.1_vue-i18n@9.2.2: |
| 704 | resolution: {integrity: sha512-BhigujPmP6JL1FSxmpogCaL+REozncHCVkJuUnefz4GWBu3X+pRe5O7PeJn8/g+Iml2ieQJz4ISPMmEbuGQjqQ==} | 730 | resolution: {integrity: sha512-BhigujPmP6JL1FSxmpogCaL+REozncHCVkJuUnefz4GWBu3X+pRe5O7PeJn8/g+Iml2ieQJz4ISPMmEbuGQjqQ==} |
| 705 | engines: {node: '>= 14.16'} | 731 | engines: {node: '>= 14.16'} |
| @@ -716,7 +742,7 @@ packages: | @@ -716,7 +742,7 @@ packages: | ||
| 716 | optional: true | 742 | optional: true |
| 717 | dependencies: | 743 | dependencies: |
| 718 | '@intlify/bundle-utils': 3.4.0_vue-i18n@9.2.2 | 744 | '@intlify/bundle-utils': 3.4.0_vue-i18n@9.2.2 |
| 719 | - '@intlify/shared': 9.3.0-beta.11 | 745 | + '@intlify/shared': 9.3.0-beta.12 |
| 720 | '@rollup/pluginutils': 4.2.1 | 746 | '@rollup/pluginutils': 4.2.1 |
| 721 | '@vue/compiler-sfc': 3.2.45 | 747 | '@vue/compiler-sfc': 3.2.45 |
| 722 | debug: 4.3.4 | 748 | debug: 4.3.4 |
| @@ -869,8 +895,8 @@ packages: | @@ -869,8 +895,8 @@ packages: | ||
| 869 | resolution: {integrity: sha512-qelS/Ra6sacc4loe/3MSjXNL1dNQ/GjxNHVzuChwMfmk7HuycRLVQN2qNY3XahK+fZc5E2szqQSKUyAF0E+2bg==} | 895 | resolution: {integrity: sha512-qelS/Ra6sacc4loe/3MSjXNL1dNQ/GjxNHVzuChwMfmk7HuycRLVQN2qNY3XahK+fZc5E2szqQSKUyAF0E+2bg==} |
| 870 | dev: true | 896 | dev: true |
| 871 | 897 | ||
| 872 | - /@types/node/18.11.17: | ||
| 873 | - resolution: {integrity: sha512-HJSUJmni4BeDHhfzn6nF0sVmd1SMezP7/4F0Lq+aXzmp2xm9O7WXrUtHW/CHlYVtZUbByEvWidHqRtcJXGF2Ng==} | 898 | + /@types/node/18.11.18: |
| 899 | + resolution: {integrity: sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==} | ||
| 874 | dev: true | 900 | dev: true |
| 875 | 901 | ||
| 876 | /@types/normalize-package-data/2.4.1: | 902 | /@types/normalize-package-data/2.4.1: |
| @@ -888,7 +914,7 @@ packages: | @@ -888,7 +914,7 @@ packages: | ||
| 888 | /@types/qrcode/1.5.0: | 914 | /@types/qrcode/1.5.0: |
| 889 | resolution: {integrity: sha512-x5ilHXRxUPIMfjtM+1vf/GPTRWZ81nqscursm5gMznJeK9M0YnZ1c3bEvRLQ0zSSgedLx1J6MGL231ObQGGhaA==} | 915 | resolution: {integrity: sha512-x5ilHXRxUPIMfjtM+1vf/GPTRWZ81nqscursm5gMznJeK9M0YnZ1c3bEvRLQ0zSSgedLx1J6MGL231ObQGGhaA==} |
| 890 | dependencies: | 916 | dependencies: |
| 891 | - '@types/node': 18.11.17 | 917 | + '@types/node': 18.11.18 |
| 892 | dev: true | 918 | dev: true |
| 893 | 919 | ||
| 894 | /@types/qs/6.9.7: | 920 | /@types/qs/6.9.7: |
| @@ -902,15 +928,15 @@ packages: | @@ -902,15 +928,15 @@ packages: | ||
| 902 | /@types/svgo/2.6.4: | 928 | /@types/svgo/2.6.4: |
| 903 | resolution: {integrity: sha512-l4cmyPEckf8moNYHdJ+4wkHvFxjyW6ulm9l4YGaOxeyBWPhBOT0gvni1InpFPdzx1dKf/2s62qGITwxNWnPQng==} | 929 | resolution: {integrity: sha512-l4cmyPEckf8moNYHdJ+4wkHvFxjyW6ulm9l4YGaOxeyBWPhBOT0gvni1InpFPdzx1dKf/2s62qGITwxNWnPQng==} |
| 904 | dependencies: | 930 | dependencies: |
| 905 | - '@types/node': 18.11.17 | 931 | + '@types/node': 18.11.18 |
| 906 | dev: true | 932 | dev: true |
| 907 | 933 | ||
| 908 | /@types/web-bluetooth/0.0.16: | 934 | /@types/web-bluetooth/0.0.16: |
| 909 | resolution: {integrity: sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==} | 935 | resolution: {integrity: sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==} |
| 910 | dev: false | 936 | dev: false |
| 911 | 937 | ||
| 912 | - /@typescript-eslint/eslint-plugin/5.47.0_ncmi6noazr3nzas7jxykisekym: | ||
| 913 | - resolution: {integrity: sha512-AHZtlXAMGkDmyLuLZsRpH3p4G/1iARIwc/T0vIem2YB+xW6pZaXYXzCBnZSF/5fdM97R9QqZWZ+h3iW10XgevQ==} | 938 | + /@typescript-eslint/eslint-plugin/5.48.0_k73wpmdolxikpyqun3p36akaaq: |
| 939 | + resolution: {integrity: sha512-SVLafp0NXpoJY7ut6VFVUU9I+YeFsDzeQwtK0WZ+xbRN3mtxJ08je+6Oi2N89qDn087COdO0u3blKZNv9VetRQ==} | ||
| 914 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} | 940 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} |
| 915 | peerDependencies: | 941 | peerDependencies: |
| 916 | '@typescript-eslint/parser': ^5.0.0 | 942 | '@typescript-eslint/parser': ^5.0.0 |
| @@ -920,12 +946,12 @@ packages: | @@ -920,12 +946,12 @@ packages: | ||
| 920 | typescript: | 946 | typescript: |
| 921 | optional: true | 947 | optional: true |
| 922 | dependencies: | 948 | dependencies: |
| 923 | - '@typescript-eslint/parser': 5.47.0_lzzuuodtsqwxnvqeq4g4likcqa | ||
| 924 | - '@typescript-eslint/scope-manager': 5.47.0 | ||
| 925 | - '@typescript-eslint/type-utils': 5.47.0_lzzuuodtsqwxnvqeq4g4likcqa | ||
| 926 | - '@typescript-eslint/utils': 5.47.0_lzzuuodtsqwxnvqeq4g4likcqa | 949 | + '@typescript-eslint/parser': 5.48.0_iukboom6ndih5an6iafl45j2fe |
| 950 | + '@typescript-eslint/scope-manager': 5.48.0 | ||
| 951 | + '@typescript-eslint/type-utils': 5.48.0_iukboom6ndih5an6iafl45j2fe | ||
| 952 | + '@typescript-eslint/utils': 5.48.0_iukboom6ndih5an6iafl45j2fe | ||
| 927 | debug: 4.3.4 | 953 | debug: 4.3.4 |
| 928 | - eslint: 8.30.0 | 954 | + eslint: 8.31.0 |
| 929 | ignore: 5.2.1 | 955 | ignore: 5.2.1 |
| 930 | natural-compare-lite: 1.4.0 | 956 | natural-compare-lite: 1.4.0 |
| 931 | regexpp: 3.2.0 | 957 | regexpp: 3.2.0 |
| @@ -936,8 +962,8 @@ packages: | @@ -936,8 +962,8 @@ packages: | ||
| 936 | - supports-color | 962 | - supports-color |
| 937 | dev: true | 963 | dev: true |
| 938 | 964 | ||
| 939 | - /@typescript-eslint/parser/5.47.0_lzzuuodtsqwxnvqeq4g4likcqa: | ||
| 940 | - resolution: {integrity: sha512-udPU4ckK+R1JWCGdQC4Qa27NtBg7w020ffHqGyAK8pAgOVuNw7YaKXGChk+udh+iiGIJf6/E/0xhVXyPAbsczw==} | 965 | + /@typescript-eslint/parser/5.48.0_iukboom6ndih5an6iafl45j2fe: |
| 966 | + resolution: {integrity: sha512-1mxNA8qfgxX8kBvRDIHEzrRGrKHQfQlbW6iHyfHYS0Q4X1af+S6mkLNtgCOsGVl8+/LUPrqdHMssAemkrQ01qg==} | ||
| 941 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} | 967 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} |
| 942 | peerDependencies: | 968 | peerDependencies: |
| 943 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 | 969 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 |
| @@ -946,26 +972,26 @@ packages: | @@ -946,26 +972,26 @@ packages: | ||
| 946 | typescript: | 972 | typescript: |
| 947 | optional: true | 973 | optional: true |
| 948 | dependencies: | 974 | dependencies: |
| 949 | - '@typescript-eslint/scope-manager': 5.47.0 | ||
| 950 | - '@typescript-eslint/types': 5.47.0 | ||
| 951 | - '@typescript-eslint/typescript-estree': 5.47.0_typescript@4.9.4 | 975 | + '@typescript-eslint/scope-manager': 5.48.0 |
| 976 | + '@typescript-eslint/types': 5.48.0 | ||
| 977 | + '@typescript-eslint/typescript-estree': 5.48.0_typescript@4.9.4 | ||
| 952 | debug: 4.3.4 | 978 | debug: 4.3.4 |
| 953 | - eslint: 8.30.0 | 979 | + eslint: 8.31.0 |
| 954 | typescript: 4.9.4 | 980 | typescript: 4.9.4 |
| 955 | transitivePeerDependencies: | 981 | transitivePeerDependencies: |
| 956 | - supports-color | 982 | - supports-color |
| 957 | dev: true | 983 | dev: true |
| 958 | 984 | ||
| 959 | - /@typescript-eslint/scope-manager/5.47.0: | ||
| 960 | - resolution: {integrity: sha512-dvJab4bFf7JVvjPuh3sfBUWsiD73aiftKBpWSfi3sUkysDQ4W8x+ZcFpNp7Kgv0weldhpmMOZBjx1wKN8uWvAw==} | 985 | + /@typescript-eslint/scope-manager/5.48.0: |
| 986 | + resolution: {integrity: sha512-0AA4LviDtVtZqlyUQnZMVHydDATpD9SAX/RC5qh6cBd3xmyWvmXYF+WT1oOmxkeMnWDlUVTwdODeucUnjz3gow==} | ||
| 961 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} | 987 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} |
| 962 | dependencies: | 988 | dependencies: |
| 963 | - '@typescript-eslint/types': 5.47.0 | ||
| 964 | - '@typescript-eslint/visitor-keys': 5.47.0 | 989 | + '@typescript-eslint/types': 5.48.0 |
| 990 | + '@typescript-eslint/visitor-keys': 5.48.0 | ||
| 965 | dev: true | 991 | dev: true |
| 966 | 992 | ||
| 967 | - /@typescript-eslint/type-utils/5.47.0_lzzuuodtsqwxnvqeq4g4likcqa: | ||
| 968 | - resolution: {integrity: sha512-1J+DFFrYoDUXQE1b7QjrNGARZE6uVhBqIvdaXTe5IN+NmEyD68qXR1qX1g2u4voA+nCaelQyG8w30SAOihhEYg==} | 993 | + /@typescript-eslint/type-utils/5.48.0_iukboom6ndih5an6iafl45j2fe: |
| 994 | + resolution: {integrity: sha512-vbtPO5sJyFjtHkGlGK4Sthmta0Bbls4Onv0bEqOGm7hP9h8UpRsHJwsrCiWtCUndTRNQO/qe6Ijz9rnT/DB+7g==} | ||
| 969 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} | 995 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} |
| 970 | peerDependencies: | 996 | peerDependencies: |
| 971 | eslint: '*' | 997 | eslint: '*' |
| @@ -974,23 +1000,23 @@ packages: | @@ -974,23 +1000,23 @@ packages: | ||
| 974 | typescript: | 1000 | typescript: |
| 975 | optional: true | 1001 | optional: true |
| 976 | dependencies: | 1002 | dependencies: |
| 977 | - '@typescript-eslint/typescript-estree': 5.47.0_typescript@4.9.4 | ||
| 978 | - '@typescript-eslint/utils': 5.47.0_lzzuuodtsqwxnvqeq4g4likcqa | 1003 | + '@typescript-eslint/typescript-estree': 5.48.0_typescript@4.9.4 |
| 1004 | + '@typescript-eslint/utils': 5.48.0_iukboom6ndih5an6iafl45j2fe | ||
| 979 | debug: 4.3.4 | 1005 | debug: 4.3.4 |
| 980 | - eslint: 8.30.0 | 1006 | + eslint: 8.31.0 |
| 981 | tsutils: 3.21.0_typescript@4.9.4 | 1007 | tsutils: 3.21.0_typescript@4.9.4 |
| 982 | typescript: 4.9.4 | 1008 | typescript: 4.9.4 |
| 983 | transitivePeerDependencies: | 1009 | transitivePeerDependencies: |
| 984 | - supports-color | 1010 | - supports-color |
| 985 | dev: true | 1011 | dev: true |
| 986 | 1012 | ||
| 987 | - /@typescript-eslint/types/5.47.0: | ||
| 988 | - resolution: {integrity: sha512-eslFG0Qy8wpGzDdYKu58CEr3WLkjwC5Usa6XbuV89ce/yN5RITLe1O8e+WFEuxnfftHiJImkkOBADj58ahRxSg==} | 1013 | + /@typescript-eslint/types/5.48.0: |
| 1014 | + resolution: {integrity: sha512-UTe67B0Ypius0fnEE518NB2N8gGutIlTojeTg4nt0GQvikReVkurqxd2LvYa9q9M5MQ6rtpNyWTBxdscw40Xhw==} | ||
| 989 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} | 1015 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} |
| 990 | dev: true | 1016 | dev: true |
| 991 | 1017 | ||
| 992 | - /@typescript-eslint/typescript-estree/5.47.0_typescript@4.9.4: | ||
| 993 | - resolution: {integrity: sha512-LxfKCG4bsRGq60Sqqu+34QT5qT2TEAHvSCCJ321uBWywgE2dS0LKcu5u+3sMGo+Vy9UmLOhdTw5JHzePV/1y4Q==} | 1018 | + /@typescript-eslint/typescript-estree/5.48.0_typescript@4.9.4: |
| 1019 | + resolution: {integrity: sha512-7pjd94vvIjI1zTz6aq/5wwE/YrfIyEPLtGJmRfyNR9NYIW+rOvzzUv3Cmq2hRKpvt6e9vpvPUQ7puzX7VSmsEw==} | ||
| 994 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} | 1020 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} |
| 995 | peerDependencies: | 1021 | peerDependencies: |
| 996 | typescript: '*' | 1022 | typescript: '*' |
| @@ -998,8 +1024,8 @@ packages: | @@ -998,8 +1024,8 @@ packages: | ||
| 998 | typescript: | 1024 | typescript: |
| 999 | optional: true | 1025 | optional: true |
| 1000 | dependencies: | 1026 | dependencies: |
| 1001 | - '@typescript-eslint/types': 5.47.0 | ||
| 1002 | - '@typescript-eslint/visitor-keys': 5.47.0 | 1027 | + '@typescript-eslint/types': 5.48.0 |
| 1028 | + '@typescript-eslint/visitor-keys': 5.48.0 | ||
| 1003 | debug: 4.3.4 | 1029 | debug: 4.3.4 |
| 1004 | globby: 11.1.0 | 1030 | globby: 11.1.0 |
| 1005 | is-glob: 4.0.3 | 1031 | is-glob: 4.0.3 |
| @@ -1010,31 +1036,31 @@ packages: | @@ -1010,31 +1036,31 @@ packages: | ||
| 1010 | - supports-color | 1036 | - supports-color |
| 1011 | dev: true | 1037 | dev: true |
| 1012 | 1038 | ||
| 1013 | - /@typescript-eslint/utils/5.47.0_lzzuuodtsqwxnvqeq4g4likcqa: | ||
| 1014 | - resolution: {integrity: sha512-U9xcc0N7xINrCdGVPwABjbAKqx4GK67xuMV87toI+HUqgXj26m6RBp9UshEXcTrgCkdGYFzgKLt8kxu49RilDw==} | 1039 | + /@typescript-eslint/utils/5.48.0_iukboom6ndih5an6iafl45j2fe: |
| 1040 | + resolution: {integrity: sha512-x2jrMcPaMfsHRRIkL+x96++xdzvrdBCnYRd5QiW5Wgo1OB4kDYPbC1XjWP/TNqlfK93K/lUL92erq5zPLgFScQ==} | ||
| 1015 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} | 1041 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} |
| 1016 | peerDependencies: | 1042 | peerDependencies: |
| 1017 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 | 1043 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 |
| 1018 | dependencies: | 1044 | dependencies: |
| 1019 | '@types/json-schema': 7.0.11 | 1045 | '@types/json-schema': 7.0.11 |
| 1020 | '@types/semver': 7.3.13 | 1046 | '@types/semver': 7.3.13 |
| 1021 | - '@typescript-eslint/scope-manager': 5.47.0 | ||
| 1022 | - '@typescript-eslint/types': 5.47.0 | ||
| 1023 | - '@typescript-eslint/typescript-estree': 5.47.0_typescript@4.9.4 | ||
| 1024 | - eslint: 8.30.0 | 1047 | + '@typescript-eslint/scope-manager': 5.48.0 |
| 1048 | + '@typescript-eslint/types': 5.48.0 | ||
| 1049 | + '@typescript-eslint/typescript-estree': 5.48.0_typescript@4.9.4 | ||
| 1050 | + eslint: 8.31.0 | ||
| 1025 | eslint-scope: 5.1.1 | 1051 | eslint-scope: 5.1.1 |
| 1026 | - eslint-utils: 3.0.0_eslint@8.30.0 | 1052 | + eslint-utils: 3.0.0_eslint@8.31.0 |
| 1027 | semver: 7.3.8 | 1053 | semver: 7.3.8 |
| 1028 | transitivePeerDependencies: | 1054 | transitivePeerDependencies: |
| 1029 | - supports-color | 1055 | - supports-color |
| 1030 | - typescript | 1056 | - typescript |
| 1031 | dev: true | 1057 | dev: true |
| 1032 | 1058 | ||
| 1033 | - /@typescript-eslint/visitor-keys/5.47.0: | ||
| 1034 | - resolution: {integrity: sha512-ByPi5iMa6QqDXe/GmT/hR6MZtVPi0SqMQPDx15FczCBXJo/7M8T88xReOALAfpBLm+zxpPfmhuEvPb577JRAEg==} | 1059 | + /@typescript-eslint/visitor-keys/5.48.0: |
| 1060 | + resolution: {integrity: sha512-5motVPz5EgxQ0bHjut3chzBkJ3Z3sheYVcSwS5BpHZpLqSptSmELNtGixmgj65+rIfhvtQTz5i9OP2vtzdDH7Q==} | ||
| 1035 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} | 1061 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} |
| 1036 | dependencies: | 1062 | dependencies: |
| 1037 | - '@typescript-eslint/types': 5.47.0 | 1063 | + '@typescript-eslint/types': 5.48.0 |
| 1038 | eslint-visitor-keys: 3.3.0 | 1064 | eslint-visitor-keys: 3.3.0 |
| 1039 | dev: true | 1065 | dev: true |
| 1040 | 1066 | ||
| @@ -1079,31 +1105,30 @@ packages: | @@ -1079,31 +1105,30 @@ packages: | ||
| 1079 | nanoid: registry.npmmirror.com/nanoid/3.3.4 | 1105 | nanoid: registry.npmmirror.com/nanoid/3.3.4 |
| 1080 | dev: false | 1106 | dev: false |
| 1081 | 1107 | ||
| 1082 | - /@volar/language-core/1.0.16: | ||
| 1083 | - resolution: {integrity: sha512-IGnOxWTs4DZ81TDcmxBAkCBxs97hUblwcjpBsTx/pOGGaSSDQRJPn0wL8NYTybEObU0i7lhEpKZ+0vJfdIy1Kg==} | 1108 | + /@volar/language-core/1.0.19: |
| 1109 | + resolution: {integrity: sha512-BRxhwqn66VHeLIxxgV4ybY9NDtwMp2bl1w7085qlK7i1pa4jeFR5lJG2U5qd0oI3e0PIWML+PryxSrKNd3+SZw==} | ||
| 1084 | dependencies: | 1110 | dependencies: |
| 1085 | - '@volar/source-map': 1.0.16 | ||
| 1086 | - '@vue/reactivity': 3.2.45 | 1111 | + '@volar/source-map': 1.0.19 |
| 1087 | muggle-string: 0.1.0 | 1112 | muggle-string: 0.1.0 |
| 1088 | dev: true | 1113 | dev: true |
| 1089 | 1114 | ||
| 1090 | - /@volar/source-map/1.0.16: | ||
| 1091 | - resolution: {integrity: sha512-PKjzmQcg8QOGC/1V9tmGh2jcy6bKLhkW5bGidElSr83iDbCzLvldt2/La/QlDxaRCHYLT0MeyuGJBZIChB1dYQ==} | 1115 | + /@volar/source-map/1.0.19: |
| 1116 | + resolution: {integrity: sha512-5fYKsl1evR/QAZ9LADto3kzbYKfpjZLWS9reNpxGR3ODPFTpaJgYk4lqghFyq4yU7/e/ZPZ1zLXjEsnL526URw==} | ||
| 1092 | dependencies: | 1117 | dependencies: |
| 1093 | muggle-string: 0.1.0 | 1118 | muggle-string: 0.1.0 |
| 1094 | dev: true | 1119 | dev: true |
| 1095 | 1120 | ||
| 1096 | - /@volar/typescript/1.0.16: | ||
| 1097 | - resolution: {integrity: sha512-Yov+n4oO3iYnuMt9QJAFpJabfTRCzc7KvjlAwBaSuZy+Gc/f9611MgtqAh5/SIGmltFN8dXn1Ijno8ro8I4lyw==} | 1121 | + /@volar/typescript/1.0.19: |
| 1122 | + resolution: {integrity: sha512-S6n945uhpc5J1qCVXVV4tz4k1nyxWaoG+wqy9TYdRDazPHeq9l45WDg58g/ehblUWux85TZN8i3zdsLRLkFrdw==} | ||
| 1098 | dependencies: | 1123 | dependencies: |
| 1099 | - '@volar/language-core': 1.0.16 | 1124 | + '@volar/language-core': 1.0.19 |
| 1100 | dev: true | 1125 | dev: true |
| 1101 | 1126 | ||
| 1102 | - /@volar/vue-language-core/1.0.16: | ||
| 1103 | - resolution: {integrity: sha512-sQ/aW1Vuiyy4OQuh2lthyYicruM3qh9VSk/aDh8/bFvM8GoohHZqVpMN3LYldEJ9eT/rN6u4xmYP54vc/EjX4Q==} | 1127 | + /@volar/vue-language-core/1.0.19: |
| 1128 | + resolution: {integrity: sha512-3mIjJvQ+0tNOp+U9+Nggy92HYIqnltf882UMG9RuNHrd0Jn/rdvjRBs0jNTzwYDV9tn3tjDHGIfQak9XrUCaRg==} | ||
| 1104 | dependencies: | 1129 | dependencies: |
| 1105 | - '@volar/language-core': 1.0.16 | ||
| 1106 | - '@volar/source-map': 1.0.16 | 1130 | + '@volar/language-core': 1.0.19 |
| 1131 | + '@volar/source-map': 1.0.19 | ||
| 1107 | '@vue/compiler-dom': 3.2.45 | 1132 | '@vue/compiler-dom': 3.2.45 |
| 1108 | '@vue/compiler-sfc': 3.2.45 | 1133 | '@vue/compiler-sfc': 3.2.45 |
| 1109 | '@vue/reactivity': 3.2.45 | 1134 | '@vue/reactivity': 3.2.45 |
| @@ -1112,11 +1137,11 @@ packages: | @@ -1112,11 +1137,11 @@ packages: | ||
| 1112 | vue-template-compiler: 2.7.14 | 1137 | vue-template-compiler: 2.7.14 |
| 1113 | dev: true | 1138 | dev: true |
| 1114 | 1139 | ||
| 1115 | - /@volar/vue-typescript/1.0.16: | ||
| 1116 | - resolution: {integrity: sha512-M018Ulg/o2FVktAdlr5b/z4K69bYzekxNUA1o39y5Ur6CObc/o+5eDCCS7gIYijWnx9iNKkSQpWWWblJFv7kHQ==} | 1140 | + /@volar/vue-typescript/1.0.19: |
| 1141 | + resolution: {integrity: sha512-HKaLCz/lb5xkJ1SyaMmms0Ww/OVStQ16qWttSbHRnnyRV/IDMFrwlovA/bIAPzHUq8EVoDAznRVsCysr2QCOGA==} | ||
| 1117 | dependencies: | 1142 | dependencies: |
| 1118 | - '@volar/typescript': 1.0.16 | ||
| 1119 | - '@volar/vue-language-core': 1.0.16 | 1143 | + '@volar/typescript': 1.0.19 |
| 1144 | + '@volar/vue-language-core': 1.0.19 | ||
| 1120 | dev: true | 1145 | dev: true |
| 1121 | 1146 | ||
| 1122 | /@vue/compiler-core/3.2.45: | 1147 | /@vue/compiler-core/3.2.45: |
| @@ -1196,24 +1221,24 @@ packages: | @@ -1196,24 +1221,24 @@ packages: | ||
| 1196 | /@vue/shared/3.2.45: | 1221 | /@vue/shared/3.2.45: |
| 1197 | resolution: {integrity: sha512-Ewzq5Yhimg7pSztDV+RH1UDKBzmtqieXQlpTVm2AwraoRL/Rks96mvd8Vgi7Lj+h+TH8dv7mXD3FRZR3TUvbSg==} | 1222 | resolution: {integrity: sha512-Ewzq5Yhimg7pSztDV+RH1UDKBzmtqieXQlpTVm2AwraoRL/Rks96mvd8Vgi7Lj+h+TH8dv7mXD3FRZR3TUvbSg==} |
| 1198 | 1223 | ||
| 1199 | - /@vueuse/core/9.8.2_vue@3.2.45: | ||
| 1200 | - resolution: {integrity: sha512-aWiCmcYIpPt7xjuqYiceODEMHchDYthrJ4AqI+FXPZrR23PZOqdiktbUVyQl2kGlR3H4i9UJ/uimQrwhz9UouQ==} | 1224 | + /@vueuse/core/9.9.0_vue@3.2.45: |
| 1225 | + resolution: {integrity: sha512-JdDb7TrE0imZnwBhMF4+0PCJqGD3AxzH8S2sfk54P0rqvklK+EAtAR/mPb1HwV/JPujQFQJhghQ190Yq03YpVw==} | ||
| 1201 | dependencies: | 1226 | dependencies: |
| 1202 | '@types/web-bluetooth': 0.0.16 | 1227 | '@types/web-bluetooth': 0.0.16 |
| 1203 | - '@vueuse/metadata': 9.8.2 | ||
| 1204 | - '@vueuse/shared': 9.8.2_vue@3.2.45 | 1228 | + '@vueuse/metadata': 9.9.0 |
| 1229 | + '@vueuse/shared': 9.9.0_vue@3.2.45 | ||
| 1205 | vue-demi: 0.13.11_vue@3.2.45 | 1230 | vue-demi: 0.13.11_vue@3.2.45 |
| 1206 | transitivePeerDependencies: | 1231 | transitivePeerDependencies: |
| 1207 | - '@vue/composition-api' | 1232 | - '@vue/composition-api' |
| 1208 | - vue | 1233 | - vue |
| 1209 | dev: false | 1234 | dev: false |
| 1210 | 1235 | ||
| 1211 | - /@vueuse/metadata/9.8.2: | ||
| 1212 | - resolution: {integrity: sha512-N4E/BKS+9VsUeD4WLVRU1J2kCOLh+iikBcMtipFcTyL204132vDYHs27zLAVabJYGnhC0dIVGdhg9pbOZiY2TQ==} | 1236 | + /@vueuse/metadata/9.9.0: |
| 1237 | + resolution: {integrity: sha512-pgxsUJv/d7IjKpLeB6TthggEsaBwM3ffc5jPrr5TmxAm/fup0mGR5VTzrdA/PSx85tpb+CIvP92D+55qBNc8ag==} | ||
| 1213 | dev: false | 1238 | dev: false |
| 1214 | 1239 | ||
| 1215 | - /@vueuse/shared/9.8.2_vue@3.2.45: | ||
| 1216 | - resolution: {integrity: sha512-ACjrPQzowd5dnabNJt9EoGVobco9/ENiA5qP53vjiuxndlJYuc/UegwhXC7KdQbPX4F45a50+45K3g1wNqOzmA==} | 1240 | + /@vueuse/shared/9.9.0_vue@3.2.45: |
| 1241 | + resolution: {integrity: sha512-+D0XFwHG0T+uaIbCSlROBwm1wzs71B7n3KyDOxnvfEMMHDOzl09rYKwaE2AENmYwYPXfHPbSBRDD2gBVHbvTcg==} | ||
| 1217 | dependencies: | 1242 | dependencies: |
| 1218 | vue-demi: 0.13.11_vue@3.2.45 | 1243 | vue-demi: 0.13.11_vue@3.2.45 |
| 1219 | transitivePeerDependencies: | 1244 | transitivePeerDependencies: |
| @@ -1503,6 +1528,18 @@ packages: | @@ -1503,6 +1528,18 @@ packages: | ||
| 1503 | engines: {node: '>=12'} | 1528 | engines: {node: '>=12'} |
| 1504 | dev: true | 1529 | dev: true |
| 1505 | 1530 | ||
| 1531 | + /ansi-styles/2.2.1: | ||
| 1532 | + resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==} | ||
| 1533 | + engines: {node: '>=0.10.0'} | ||
| 1534 | + dev: true | ||
| 1535 | + | ||
| 1536 | + /ansi-styles/3.2.1: | ||
| 1537 | + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} | ||
| 1538 | + engines: {node: '>=4'} | ||
| 1539 | + dependencies: | ||
| 1540 | + color-convert: registry.npmmirror.com/color-convert/1.9.3 | ||
| 1541 | + dev: true | ||
| 1542 | + | ||
| 1506 | /ansi-styles/4.3.0: | 1543 | /ansi-styles/4.3.0: |
| 1507 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} | 1544 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} |
| 1508 | engines: {node: '>=8'} | 1545 | engines: {node: '>=8'} |
| @@ -1609,8 +1646,16 @@ packages: | @@ -1609,8 +1646,16 @@ packages: | ||
| 1609 | postcss-value-parser: 4.2.0 | 1646 | postcss-value-parser: 4.2.0 |
| 1610 | dev: true | 1647 | dev: true |
| 1611 | 1648 | ||
| 1612 | - /axios/1.2.1: | ||
| 1613 | - resolution: {integrity: sha512-I88cFiGu9ryt/tfVEi4kX2SITsvDddTajXTOFmt2uK1ZVA8LytjtdeyefdQWEf5PU8w+4SSJDoYnggflB5tW4A==} | 1649 | + /axios/0.26.1_debug@4.3.4: |
| 1650 | + resolution: {integrity: sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==} | ||
| 1651 | + dependencies: | ||
| 1652 | + follow-redirects: 1.15.2 | ||
| 1653 | + transitivePeerDependencies: | ||
| 1654 | + - debug | ||
| 1655 | + dev: true | ||
| 1656 | + | ||
| 1657 | + /axios/1.2.2: | ||
| 1658 | + resolution: {integrity: sha512-bz/J4gS2S3I7mpN/YZfGFTqhXTYzRho8Ay38w2otuuDR322KzFIWm/4W2K6gIwvWaws5n+mnb7D1lN9uD+QH6Q==} | ||
| 1614 | dependencies: | 1659 | dependencies: |
| 1615 | follow-redirects: 1.15.2 | 1660 | follow-redirects: 1.15.2 |
| 1616 | form-data: 4.0.0 | 1661 | form-data: 4.0.0 |
| @@ -1751,20 +1796,20 @@ packages: | @@ -1751,20 +1796,20 @@ packages: | ||
| 1751 | resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==} | 1796 | resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==} |
| 1752 | engines: {node: '>=0.10.0'} | 1797 | engines: {node: '>=0.10.0'} |
| 1753 | dependencies: | 1798 | dependencies: |
| 1754 | - ansi-styles: registry.npmmirror.com/ansi-styles/2.2.1 | 1799 | + ansi-styles: 2.2.1 |
| 1755 | escape-string-regexp: 1.0.5 | 1800 | escape-string-regexp: 1.0.5 |
| 1756 | has-ansi: 2.0.0 | 1801 | has-ansi: 2.0.0 |
| 1757 | strip-ansi: 3.0.1 | 1802 | strip-ansi: 3.0.1 |
| 1758 | - supports-color: registry.npmmirror.com/supports-color/2.0.0 | 1803 | + supports-color: 2.0.0 |
| 1759 | dev: true | 1804 | dev: true |
| 1760 | 1805 | ||
| 1761 | /chalk/2.4.2: | 1806 | /chalk/2.4.2: |
| 1762 | resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} | 1807 | resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} |
| 1763 | engines: {node: '>=4'} | 1808 | engines: {node: '>=4'} |
| 1764 | dependencies: | 1809 | dependencies: |
| 1765 | - ansi-styles: registry.npmmirror.com/ansi-styles/3.2.1 | 1810 | + ansi-styles: 3.2.1 |
| 1766 | escape-string-regexp: 1.0.5 | 1811 | escape-string-regexp: 1.0.5 |
| 1767 | - supports-color: registry.npmmirror.com/supports-color/5.5.0 | 1812 | + supports-color: 5.5.0 |
| 1768 | dev: true | 1813 | dev: true |
| 1769 | 1814 | ||
| 1770 | /chalk/4.1.2: | 1815 | /chalk/4.1.2: |
| @@ -2312,8 +2357,8 @@ packages: | @@ -2312,8 +2357,8 @@ packages: | ||
| 2312 | resolution: {integrity: sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==} | 2357 | resolution: {integrity: sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==} |
| 2313 | dev: true | 2358 | dev: true |
| 2314 | 2359 | ||
| 2315 | - /element-plus/2.2.27_vue@3.2.45: | ||
| 2316 | - resolution: {integrity: sha512-P04HDOZBYDdvlYuleuCZRULzAc5xJVOBfLDK9xWxVo0vyo8ntdaXS5sTU+/76vrNzuO3FhLn9kvrsbiJEVa1jg==} | 2360 | + /element-plus/2.2.28_vue@3.2.45: |
| 2361 | + resolution: {integrity: sha512-BsxF7iEaBydmRfw1Tt++EO9jRBjbtJr7ZRIrnEwz4J3Cwa1IzHCNCcx3ZwcYTlJq9CYFxv94JnbNr1EbkTou3A==} | ||
| 2317 | peerDependencies: | 2362 | peerDependencies: |
| 2318 | vue: ^3.2.0 | 2363 | vue: ^3.2.0 |
| 2319 | dependencies: | 2364 | dependencies: |
| @@ -2323,7 +2368,7 @@ packages: | @@ -2323,7 +2368,7 @@ packages: | ||
| 2323 | '@popperjs/core': /@sxzz/popperjs-es/2.11.7 | 2368 | '@popperjs/core': /@sxzz/popperjs-es/2.11.7 |
| 2324 | '@types/lodash': 4.14.189 | 2369 | '@types/lodash': 4.14.189 |
| 2325 | '@types/lodash-es': 4.17.6 | 2370 | '@types/lodash-es': 4.17.6 |
| 2326 | - '@vueuse/core': 9.8.2_vue@3.2.45 | 2371 | + '@vueuse/core': 9.9.0_vue@3.2.45 |
| 2327 | async-validator: 4.2.5 | 2372 | async-validator: 4.2.5 |
| 2328 | dayjs: 1.11.7 | 2373 | dayjs: 1.11.7 |
| 2329 | escape-html: 1.0.3 | 2374 | escape-html: 1.0.3 |
| @@ -2450,21 +2495,21 @@ packages: | @@ -2450,21 +2495,21 @@ packages: | ||
| 2450 | engines: {node: '>=10'} | 2495 | engines: {node: '>=10'} |
| 2451 | dev: true | 2496 | dev: true |
| 2452 | 2497 | ||
| 2453 | - /eslint-config-prettier/8.5.0_eslint@8.30.0: | ||
| 2454 | - resolution: {integrity: sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==} | 2498 | + /eslint-config-prettier/8.6.0_eslint@8.31.0: |
| 2499 | + resolution: {integrity: sha512-bAF0eLpLVqP5oEVUFKpMA+NnRFICwn9X8B5jrR9FcqnYBuPbqWEjTEspPWMj5ye6czoSLDweCzSo3Ko7gGrZaA==} | ||
| 2455 | hasBin: true | 2500 | hasBin: true |
| 2456 | peerDependencies: | 2501 | peerDependencies: |
| 2457 | eslint: '>=7.0.0' | 2502 | eslint: '>=7.0.0' |
| 2458 | dependencies: | 2503 | dependencies: |
| 2459 | - eslint: 8.30.0 | 2504 | + eslint: 8.31.0 |
| 2460 | dev: true | 2505 | dev: true |
| 2461 | 2506 | ||
| 2462 | - /eslint-define-config/1.12.0: | ||
| 2463 | - resolution: {integrity: sha512-Kt9TcMbgsY9VRt7jIuw76KE/2RuD31eWB4Ubv6btXgU8NTSsbT6gZ8qzeiU+rAih/8sOl8Kt89spAZBMElu6qQ==} | 2507 | + /eslint-define-config/1.13.0: |
| 2508 | + resolution: {integrity: sha512-d0BfmPGBcMusfiz6QY/piAhWaEyJriJtvk9SHfuJzI7am9k4ce07SfmPkpcR0ckXNyu4FBons10akOO2Tx+X+Q==} | ||
| 2464 | engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0, npm: '>=6.14.13', pnpm: '>= 7.0.0'} | 2509 | engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0, npm: '>=6.14.13', pnpm: '>= 7.0.0'} |
| 2465 | dev: true | 2510 | dev: true |
| 2466 | 2511 | ||
| 2467 | - /eslint-plugin-prettier/4.2.1_kl4pe43v5b43npmso5hoplpbyi: | 2512 | + /eslint-plugin-prettier/4.2.1_32m5uc2milwdw3tnkcq5del26y: |
| 2468 | resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==} | 2513 | resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==} |
| 2469 | engines: {node: '>=12.0.0'} | 2514 | engines: {node: '>=12.0.0'} |
| 2470 | peerDependencies: | 2515 | peerDependencies: |
| @@ -2475,25 +2520,25 @@ packages: | @@ -2475,25 +2520,25 @@ packages: | ||
| 2475 | eslint-config-prettier: | 2520 | eslint-config-prettier: |
| 2476 | optional: true | 2521 | optional: true |
| 2477 | dependencies: | 2522 | dependencies: |
| 2478 | - eslint: 8.30.0 | ||
| 2479 | - eslint-config-prettier: 8.5.0_eslint@8.30.0 | 2523 | + eslint: 8.31.0 |
| 2524 | + eslint-config-prettier: 8.6.0_eslint@8.31.0 | ||
| 2480 | prettier: 2.8.1 | 2525 | prettier: 2.8.1 |
| 2481 | prettier-linter-helpers: 1.0.0 | 2526 | prettier-linter-helpers: 1.0.0 |
| 2482 | dev: true | 2527 | dev: true |
| 2483 | 2528 | ||
| 2484 | - /eslint-plugin-vue/9.8.0_eslint@8.30.0: | 2529 | + /eslint-plugin-vue/9.8.0_eslint@8.31.0: |
| 2485 | resolution: {integrity: sha512-E/AXwcTzunyzM83C2QqDHxepMzvI2y6x+mmeYHbVDQlKFqmKYvRrhaVixEeeG27uI44p9oKDFiyCRw4XxgtfHA==} | 2530 | resolution: {integrity: sha512-E/AXwcTzunyzM83C2QqDHxepMzvI2y6x+mmeYHbVDQlKFqmKYvRrhaVixEeeG27uI44p9oKDFiyCRw4XxgtfHA==} |
| 2486 | engines: {node: ^14.17.0 || >=16.0.0} | 2531 | engines: {node: ^14.17.0 || >=16.0.0} |
| 2487 | peerDependencies: | 2532 | peerDependencies: |
| 2488 | eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 | 2533 | eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 |
| 2489 | dependencies: | 2534 | dependencies: |
| 2490 | - eslint: 8.30.0 | ||
| 2491 | - eslint-utils: 3.0.0_eslint@8.30.0 | 2535 | + eslint: 8.31.0 |
| 2536 | + eslint-utils: 3.0.0_eslint@8.31.0 | ||
| 2492 | natural-compare: 1.4.0 | 2537 | natural-compare: 1.4.0 |
| 2493 | nth-check: 2.1.1 | 2538 | nth-check: 2.1.1 |
| 2494 | postcss-selector-parser: 6.0.10 | 2539 | postcss-selector-parser: 6.0.10 |
| 2495 | semver: 7.3.8 | 2540 | semver: 7.3.8 |
| 2496 | - vue-eslint-parser: 9.1.0_eslint@8.30.0 | 2541 | + vue-eslint-parser: 9.1.0_eslint@8.31.0 |
| 2497 | xml-name-validator: 4.0.0 | 2542 | xml-name-validator: 4.0.0 |
| 2498 | transitivePeerDependencies: | 2543 | transitivePeerDependencies: |
| 2499 | - supports-color | 2544 | - supports-color |
| @@ -2522,13 +2567,13 @@ packages: | @@ -2522,13 +2567,13 @@ packages: | ||
| 2522 | eslint-visitor-keys: 1.3.0 | 2567 | eslint-visitor-keys: 1.3.0 |
| 2523 | dev: true | 2568 | dev: true |
| 2524 | 2569 | ||
| 2525 | - /eslint-utils/3.0.0_eslint@8.30.0: | 2570 | + /eslint-utils/3.0.0_eslint@8.31.0: |
| 2526 | resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} | 2571 | resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} |
| 2527 | engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} | 2572 | engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} |
| 2528 | peerDependencies: | 2573 | peerDependencies: |
| 2529 | eslint: '>=5' | 2574 | eslint: '>=5' |
| 2530 | dependencies: | 2575 | dependencies: |
| 2531 | - eslint: 8.30.0 | 2576 | + eslint: 8.31.0 |
| 2532 | eslint-visitor-keys: 2.1.0 | 2577 | eslint-visitor-keys: 2.1.0 |
| 2533 | dev: true | 2578 | dev: true |
| 2534 | 2579 | ||
| @@ -2547,12 +2592,12 @@ packages: | @@ -2547,12 +2592,12 @@ packages: | ||
| 2547 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} | 2592 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} |
| 2548 | dev: true | 2593 | dev: true |
| 2549 | 2594 | ||
| 2550 | - /eslint/8.30.0: | ||
| 2551 | - resolution: {integrity: sha512-MGADB39QqYuzEGov+F/qb18r4i7DohCDOfatHaxI2iGlPuC65bwG2gxgO+7DkyL38dRFaRH7RaRAgU6JKL9rMQ==} | 2595 | + /eslint/8.31.0: |
| 2596 | + resolution: {integrity: sha512-0tQQEVdmPZ1UtUKXjX7EMm9BlgJ08G90IhWh0PKDCb3ZLsgAOHI8fYSIzYVZej92zsgq+ft0FGsxhJ3xo2tbuA==} | ||
| 2552 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} | 2597 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} |
| 2553 | hasBin: true | 2598 | hasBin: true |
| 2554 | dependencies: | 2599 | dependencies: |
| 2555 | - '@eslint/eslintrc': 1.4.0 | 2600 | + '@eslint/eslintrc': 1.4.1 |
| 2556 | '@humanwhocodes/config-array': 0.11.8 | 2601 | '@humanwhocodes/config-array': 0.11.8 |
| 2557 | '@humanwhocodes/module-importer': 1.0.1 | 2602 | '@humanwhocodes/module-importer': 1.0.1 |
| 2558 | '@nodelib/fs.walk': 1.2.8 | 2603 | '@nodelib/fs.walk': 1.2.8 |
| @@ -2563,7 +2608,7 @@ packages: | @@ -2563,7 +2608,7 @@ packages: | ||
| 2563 | doctrine: 3.0.0 | 2608 | doctrine: 3.0.0 |
| 2564 | escape-string-regexp: 4.0.0 | 2609 | escape-string-regexp: 4.0.0 |
| 2565 | eslint-scope: 7.1.1 | 2610 | eslint-scope: 7.1.1 |
| 2566 | - eslint-utils: 3.0.0_eslint@8.30.0 | 2611 | + eslint-utils: 3.0.0_eslint@8.31.0 |
| 2567 | eslint-visitor-keys: 3.3.0 | 2612 | eslint-visitor-keys: 3.3.0 |
| 2568 | espree: 9.4.1 | 2613 | espree: 9.4.1 |
| 2569 | esquery: 1.4.0 | 2614 | esquery: 1.4.0 |
| @@ -2787,7 +2832,7 @@ packages: | @@ -2787,7 +2832,7 @@ packages: | ||
| 2787 | /filelist/1.0.4: | 2832 | /filelist/1.0.4: |
| 2788 | resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} | 2833 | resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} |
| 2789 | dependencies: | 2834 | dependencies: |
| 2790 | - minimatch: 5.1.0 | 2835 | + minimatch: 5.1.2 |
| 2791 | dev: true | 2836 | dev: true |
| 2792 | 2837 | ||
| 2793 | /find-up/4.1.0: | 2838 | /find-up/4.1.0: |
| @@ -2825,7 +2870,6 @@ packages: | @@ -2825,7 +2870,6 @@ packages: | ||
| 2825 | peerDependenciesMeta: | 2870 | peerDependenciesMeta: |
| 2826 | debug: | 2871 | debug: |
| 2827 | optional: true | 2872 | optional: true |
| 2828 | - dev: false | ||
| 2829 | 2873 | ||
| 2830 | /for-in/1.0.2: | 2874 | /for-in/1.0.2: |
| 2831 | resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==} | 2875 | resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==} |
| @@ -3007,6 +3051,16 @@ packages: | @@ -3007,6 +3051,16 @@ packages: | ||
| 3007 | ansi-regex: 2.1.1 | 3051 | ansi-regex: 2.1.1 |
| 3008 | dev: true | 3052 | dev: true |
| 3009 | 3053 | ||
| 3054 | + /has-flag/1.0.0: | ||
| 3055 | + resolution: {integrity: sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==} | ||
| 3056 | + engines: {node: '>=0.10.0'} | ||
| 3057 | + dev: true | ||
| 3058 | + | ||
| 3059 | + /has-flag/3.0.0: | ||
| 3060 | + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} | ||
| 3061 | + engines: {node: '>=4'} | ||
| 3062 | + dev: true | ||
| 3063 | + | ||
| 3010 | /has-flag/4.0.0: | 3064 | /has-flag/4.0.0: |
| 3011 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} | 3065 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} |
| 3012 | engines: {node: '>=8'} | 3066 | engines: {node: '>=8'} |
| @@ -3379,6 +3433,10 @@ packages: | @@ -3379,6 +3433,10 @@ packages: | ||
| 3379 | resolution: {integrity: sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q==} | 3433 | resolution: {integrity: sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q==} |
| 3380 | dev: true | 3434 | dev: true |
| 3381 | 3435 | ||
| 3436 | + /js-tokens/4.0.0: | ||
| 3437 | + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} | ||
| 3438 | + dev: true | ||
| 3439 | + | ||
| 3382 | /js-tokens/8.0.0: | 3440 | /js-tokens/8.0.0: |
| 3383 | resolution: {integrity: sha512-PC7MzqInq9OqKyTXfIvQNcjMkODJYC8A17kAaQgeW79yfhqTWSOfjHYQ2mDDcwJ96Iibtwkfh0C7R/OvqPlgVA==} | 3441 | resolution: {integrity: sha512-PC7MzqInq9OqKyTXfIvQNcjMkODJYC8A17kAaQgeW79yfhqTWSOfjHYQ2mDDcwJ96Iibtwkfh0C7R/OvqPlgVA==} |
| 3384 | dev: true | 3442 | dev: true |
| @@ -3828,13 +3886,6 @@ packages: | @@ -3828,13 +3886,6 @@ packages: | ||
| 3828 | brace-expansion: 1.1.11 | 3886 | brace-expansion: 1.1.11 |
| 3829 | dev: true | 3887 | dev: true |
| 3830 | 3888 | ||
| 3831 | - /minimatch/5.1.0: | ||
| 3832 | - resolution: {integrity: sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==} | ||
| 3833 | - engines: {node: '>=10'} | ||
| 3834 | - dependencies: | ||
| 3835 | - brace-expansion: 2.0.1 | ||
| 3836 | - dev: true | ||
| 3837 | - | ||
| 3838 | /minimatch/5.1.2: | 3889 | /minimatch/5.1.2: |
| 3839 | resolution: {integrity: sha512-bNH9mmM9qsJ2X4r2Nat1B//1dJVcn3+iBLa3IgqJ7EbGaDNepL9QSHOxN4ng33s52VMMhhIfgCYDk3C4ZmlDAg==} | 3890 | resolution: {integrity: sha512-bNH9mmM9qsJ2X4r2Nat1B//1dJVcn3+iBLa3IgqJ7EbGaDNepL9QSHOxN4ng33s52VMMhhIfgCYDk3C4ZmlDAg==} |
| 3840 | engines: {node: '>=10'} | 3891 | engines: {node: '>=10'} |
| @@ -4105,7 +4156,7 @@ packages: | @@ -4105,7 +4156,7 @@ packages: | ||
| 4105 | resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} | 4156 | resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} |
| 4106 | engines: {node: '>=8'} | 4157 | engines: {node: '>=8'} |
| 4107 | dependencies: | 4158 | dependencies: |
| 4108 | - '@babel/code-frame': registry.npmmirror.com/@babel/code-frame/7.18.6 | 4159 | + '@babel/code-frame': 7.18.6 |
| 4109 | error-ex: 1.3.2 | 4160 | error-ex: 1.3.2 |
| 4110 | json-parse-even-better-errors: 2.3.1 | 4161 | json-parse-even-better-errors: 2.3.1 |
| 4111 | lines-and-columns: 1.2.4 | 4162 | lines-and-columns: 1.2.4 |
| @@ -4162,10 +4213,6 @@ packages: | @@ -4162,10 +4213,6 @@ packages: | ||
| 4162 | resolution: {integrity: sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==} | 4213 | resolution: {integrity: sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==} |
| 4163 | dev: true | 4214 | dev: true |
| 4164 | 4215 | ||
| 4165 | - /pathe/0.3.9: | ||
| 4166 | - resolution: {integrity: sha512-6Y6s0vT112P3jD8dGfuS6r+lpa0qqNrLyHPOwvXMnyNTQaYiwgau2DP3aNDsR13xqtGj7rrPo+jFUATpU6/s+g==} | ||
| 4167 | - dev: true | ||
| 4168 | - | ||
| 4169 | /pathe/1.0.0: | 4216 | /pathe/1.0.0: |
| 4170 | resolution: {integrity: sha512-nPdMG0Pd09HuSsr7QOKUXO2Jr9eqaDiZvDwdyIhNG5SHYujkQHYKDfGQkulBxvbDHz8oHLsTgKN86LSwYzSHAg==} | 4217 | resolution: {integrity: sha512-nPdMG0Pd09HuSsr7QOKUXO2Jr9eqaDiZvDwdyIhNG5SHYujkQHYKDfGQkulBxvbDHz8oHLsTgKN86LSwYzSHAg==} |
| 4171 | dev: true | 4218 | dev: true |
| @@ -4555,8 +4602,8 @@ packages: | @@ -4555,8 +4602,8 @@ packages: | ||
| 4555 | fsevents: 2.3.2 | 4602 | fsevents: 2.3.2 |
| 4556 | dev: true | 4603 | dev: true |
| 4557 | 4604 | ||
| 4558 | - /rollup/3.8.1: | ||
| 4559 | - resolution: {integrity: sha512-4yh9eMW7byOroYcN8DlF9P/2jCpu6txVIHjEqquQVSx7DI0RgyCCN3tjrcy4ra6yVtV336aLBB3v2AarYAxePQ==} | 4605 | + /rollup/3.9.1: |
| 4606 | + resolution: {integrity: sha512-GswCYHXftN8ZKGVgQhTFUJB/NBXxrRGgO2NCy6E8s1rwEJ4Q9/VttNqcYfEvx4dTo4j58YqdC3OVztPzlKSX8w==} | ||
| 4560 | engines: {node: '>=14.18.0', npm: '>=8.0.0'} | 4607 | engines: {node: '>=14.18.0', npm: '>=8.0.0'} |
| 4561 | hasBin: true | 4608 | hasBin: true |
| 4562 | optionalDependencies: | 4609 | optionalDependencies: |
| @@ -4691,7 +4738,7 @@ packages: | @@ -4691,7 +4738,7 @@ packages: | ||
| 4691 | resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} | 4738 | resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} |
| 4692 | engines: {node: '>=8'} | 4739 | engines: {node: '>=8'} |
| 4693 | dependencies: | 4740 | dependencies: |
| 4694 | - ansi-styles: registry.npmmirror.com/ansi-styles/4.3.0 | 4741 | + ansi-styles: 4.3.0 |
| 4695 | astral-regex: 2.0.0 | 4742 | astral-regex: 2.0.0 |
| 4696 | is-fullwidth-code-point: 3.0.0 | 4743 | is-fullwidth-code-point: 3.0.0 |
| 4697 | dev: true | 4744 | dev: true |
| @@ -4929,7 +4976,7 @@ packages: | @@ -4929,7 +4976,7 @@ packages: | ||
| 4929 | resolution: {integrity: sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==} | 4976 | resolution: {integrity: sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==} |
| 4930 | dev: true | 4977 | dev: true |
| 4931 | 4978 | ||
| 4932 | - /stylelint-config-html/1.1.0_bto6pmslw3cibsiuq6smxboytq: | 4979 | + /stylelint-config-html/1.1.0_kbto3rg3njmczth2rrsgfnlsqa: |
| 4933 | resolution: {integrity: sha512-IZv4IVESjKLumUGi+HWeb7skgO6/g4VMuAYrJdlqQFndgbj6WJAXPhaysvBiXefX79upBdQVumgYcdd17gCpjQ==} | 4980 | resolution: {integrity: sha512-IZv4IVESjKLumUGi+HWeb7skgO6/g4VMuAYrJdlqQFndgbj6WJAXPhaysvBiXefX79upBdQVumgYcdd17gCpjQ==} |
| 4934 | engines: {node: ^12 || >=14} | 4981 | engines: {node: ^12 || >=14} |
| 4935 | peerDependencies: | 4982 | peerDependencies: |
| @@ -4937,48 +4984,48 @@ packages: | @@ -4937,48 +4984,48 @@ packages: | ||
| 4937 | stylelint: '>=14.0.0' | 4984 | stylelint: '>=14.0.0' |
| 4938 | dependencies: | 4985 | dependencies: |
| 4939 | postcss-html: 1.5.0 | 4986 | postcss-html: 1.5.0 |
| 4940 | - stylelint: 14.16.0 | 4987 | + stylelint: 14.16.1 |
| 4941 | dev: true | 4988 | dev: true |
| 4942 | 4989 | ||
| 4943 | - /stylelint-config-prettier/9.0.4_stylelint@14.16.0: | 4990 | + /stylelint-config-prettier/9.0.4_stylelint@14.16.1: |
| 4944 | resolution: {integrity: sha512-38nIGTGpFOiK5LjJ8Ma1yUgpKENxoKSOhbDNSemY7Ep0VsJoXIW9Iq/2hSt699oB9tReynfWicTAoIHiq8Rvbg==} | 4991 | resolution: {integrity: sha512-38nIGTGpFOiK5LjJ8Ma1yUgpKENxoKSOhbDNSemY7Ep0VsJoXIW9Iq/2hSt699oB9tReynfWicTAoIHiq8Rvbg==} |
| 4945 | engines: {node: '>= 12'} | 4992 | engines: {node: '>= 12'} |
| 4946 | hasBin: true | 4993 | hasBin: true |
| 4947 | peerDependencies: | 4994 | peerDependencies: |
| 4948 | stylelint: '>=11.0.0' | 4995 | stylelint: '>=11.0.0' |
| 4949 | dependencies: | 4996 | dependencies: |
| 4950 | - stylelint: 14.16.0 | 4997 | + stylelint: 14.16.1 |
| 4951 | dev: true | 4998 | dev: true |
| 4952 | 4999 | ||
| 4953 | - /stylelint-config-recommended/9.0.0_stylelint@14.16.0: | 5000 | + /stylelint-config-recommended/9.0.0_stylelint@14.16.1: |
| 4954 | resolution: {integrity: sha512-9YQSrJq4NvvRuTbzDsWX3rrFOzOlYBmZP+o513BJN/yfEmGSr0AxdvrWs0P/ilSpVV/wisamAHu5XSk8Rcf4CQ==} | 5001 | resolution: {integrity: sha512-9YQSrJq4NvvRuTbzDsWX3rrFOzOlYBmZP+o513BJN/yfEmGSr0AxdvrWs0P/ilSpVV/wisamAHu5XSk8Rcf4CQ==} |
| 4955 | peerDependencies: | 5002 | peerDependencies: |
| 4956 | stylelint: ^14.10.0 | 5003 | stylelint: ^14.10.0 |
| 4957 | dependencies: | 5004 | dependencies: |
| 4958 | - stylelint: 14.16.0 | 5005 | + stylelint: 14.16.1 |
| 4959 | dev: true | 5006 | dev: true |
| 4960 | 5007 | ||
| 4961 | - /stylelint-config-standard/29.0.0_stylelint@14.16.0: | 5008 | + /stylelint-config-standard/29.0.0_stylelint@14.16.1: |
| 4962 | resolution: {integrity: sha512-uy8tZLbfq6ZrXy4JKu3W+7lYLgRQBxYTUUB88vPgQ+ZzAxdrvcaSUW9hOMNLYBnwH+9Kkj19M2DHdZ4gKwI7tg==} | 5009 | resolution: {integrity: sha512-uy8tZLbfq6ZrXy4JKu3W+7lYLgRQBxYTUUB88vPgQ+ZzAxdrvcaSUW9hOMNLYBnwH+9Kkj19M2DHdZ4gKwI7tg==} |
| 4963 | peerDependencies: | 5010 | peerDependencies: |
| 4964 | stylelint: ^14.14.0 | 5011 | stylelint: ^14.14.0 |
| 4965 | dependencies: | 5012 | dependencies: |
| 4966 | - stylelint: 14.16.0 | ||
| 4967 | - stylelint-config-recommended: 9.0.0_stylelint@14.16.0 | 5013 | + stylelint: 14.16.1 |
| 5014 | + stylelint-config-recommended: 9.0.0_stylelint@14.16.1 | ||
| 4968 | dev: true | 5015 | dev: true |
| 4969 | 5016 | ||
| 4970 | - /stylelint-order/5.0.0_stylelint@14.16.0: | 5017 | + /stylelint-order/5.0.0_stylelint@14.16.1: |
| 4971 | resolution: {integrity: sha512-OWQ7pmicXufDw5BlRqzdz3fkGKJPgLyDwD1rFY3AIEfIH/LQY38Vu/85v8/up0I+VPiuGRwbc2Hg3zLAsJaiyw==} | 5018 | resolution: {integrity: sha512-OWQ7pmicXufDw5BlRqzdz3fkGKJPgLyDwD1rFY3AIEfIH/LQY38Vu/85v8/up0I+VPiuGRwbc2Hg3zLAsJaiyw==} |
| 4972 | peerDependencies: | 5019 | peerDependencies: |
| 4973 | stylelint: ^14.0.0 | 5020 | stylelint: ^14.0.0 |
| 4974 | dependencies: | 5021 | dependencies: |
| 4975 | postcss: registry.npmmirror.com/postcss/8.4.20 | 5022 | postcss: registry.npmmirror.com/postcss/8.4.20 |
| 4976 | postcss-sorting: 7.0.1_postcss@8.4.20 | 5023 | postcss-sorting: 7.0.1_postcss@8.4.20 |
| 4977 | - stylelint: 14.16.0 | 5024 | + stylelint: 14.16.1 |
| 4978 | dev: true | 5025 | dev: true |
| 4979 | 5026 | ||
| 4980 | - /stylelint/14.16.0: | ||
| 4981 | - resolution: {integrity: sha512-X6uTi9DcxjzLV8ZUAjit1vsRtSwcls0nl07c9rqOPzvpA8IvTX/xWEkBRowS0ffevRrqkHa/ThDEu86u73FQDg==} | 5027 | + /stylelint/14.16.1: |
| 5028 | + resolution: {integrity: sha512-ErlzR/T3hhbV+a925/gbfc3f3Fep9/bnspMiJPorfGEmcBbXdS+oo6LrVtoUZ/w9fqD6o6k7PtUlCOsCRdjX/A==} | ||
| 4982 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} | 5029 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} |
| 4983 | hasBin: true | 5030 | hasBin: true |
| 4984 | dependencies: | 5031 | dependencies: |
| @@ -5005,7 +5052,7 @@ packages: | @@ -5005,7 +5052,7 @@ packages: | ||
| 5005 | micromatch: 4.0.5 | 5052 | micromatch: 4.0.5 |
| 5006 | normalize-path: 3.0.0 | 5053 | normalize-path: 3.0.0 |
| 5007 | picocolors: 1.0.0 | 5054 | picocolors: 1.0.0 |
| 5008 | - postcss: registry.npmmirror.com/postcss/8.4.20 | 5055 | + postcss: 8.4.20 |
| 5009 | postcss-media-query-parser: 0.2.3 | 5056 | postcss-media-query-parser: 0.2.3 |
| 5010 | postcss-resolve-nested-selector: 0.1.1 | 5057 | postcss-resolve-nested-selector: 0.1.1 |
| 5011 | postcss-safe-parser: 6.0.0_postcss@8.4.20 | 5058 | postcss-safe-parser: 6.0.0_postcss@8.4.20 |
| @@ -5024,6 +5071,18 @@ packages: | @@ -5024,6 +5071,18 @@ packages: | ||
| 5024 | - supports-color | 5071 | - supports-color |
| 5025 | dev: true | 5072 | dev: true |
| 5026 | 5073 | ||
| 5074 | + /supports-color/2.0.0: | ||
| 5075 | + resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==} | ||
| 5076 | + engines: {node: '>=0.8.0'} | ||
| 5077 | + dev: true | ||
| 5078 | + | ||
| 5079 | + /supports-color/5.5.0: | ||
| 5080 | + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} | ||
| 5081 | + engines: {node: '>=4'} | ||
| 5082 | + dependencies: | ||
| 5083 | + has-flag: 3.0.0 | ||
| 5084 | + dev: true | ||
| 5085 | + | ||
| 5027 | /supports-color/7.2.0: | 5086 | /supports-color/7.2.0: |
| 5028 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} | 5087 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} |
| 5029 | engines: {node: '>=8'} | 5088 | engines: {node: '>=8'} |
| @@ -5357,7 +5416,7 @@ packages: | @@ -5357,7 +5416,7 @@ packages: | ||
| 5357 | chalk: 4.1.2 | 5416 | chalk: 4.1.2 |
| 5358 | debug: 4.3.4 | 5417 | debug: 4.3.4 |
| 5359 | fs-extra: 10.1.0 | 5418 | fs-extra: 10.1.0 |
| 5360 | - vite: 4.0.3_amyfslv6hdwxqbf7f4ldebbtce | 5419 | + vite: 4.0.3_zxbrnrc4iyldik6mikh3pswz4i |
| 5361 | transitivePeerDependencies: | 5420 | transitivePeerDependencies: |
| 5362 | - supports-color | 5421 | - supports-color |
| 5363 | dev: true | 5422 | dev: true |
| @@ -5368,7 +5427,7 @@ packages: | @@ -5368,7 +5427,7 @@ packages: | ||
| 5368 | ejs: 3.1.8 | 5427 | ejs: 3.1.8 |
| 5369 | dev: true | 5428 | dev: true |
| 5370 | 5429 | ||
| 5371 | - /vite-plugin-eslint/1.8.1_eslint@8.30.0+vite@4.0.3: | 5430 | + /vite-plugin-eslint/1.8.1_eslint@8.31.0+vite@4.0.3: |
| 5372 | resolution: {integrity: sha512-PqdMf3Y2fLO9FsNPmMX+//2BF5SF8nEWspZdgl4kSt7UvHDRHVVfHvxsD7ULYzZrJDGRxR81Nq7TOFgwMnUang==} | 5431 | resolution: {integrity: sha512-PqdMf3Y2fLO9FsNPmMX+//2BF5SF8nEWspZdgl4kSt7UvHDRHVVfHvxsD7ULYzZrJDGRxR81Nq7TOFgwMnUang==} |
| 5373 | peerDependencies: | 5432 | peerDependencies: |
| 5374 | eslint: '>=7' | 5433 | eslint: '>=7' |
| @@ -5376,9 +5435,9 @@ packages: | @@ -5376,9 +5435,9 @@ packages: | ||
| 5376 | dependencies: | 5435 | dependencies: |
| 5377 | '@rollup/pluginutils': 4.2.1 | 5436 | '@rollup/pluginutils': 4.2.1 |
| 5378 | '@types/eslint': 8.4.10 | 5437 | '@types/eslint': 8.4.10 |
| 5379 | - eslint: 8.30.0 | 5438 | + eslint: 8.31.0 |
| 5380 | rollup: 2.79.1 | 5439 | rollup: 2.79.1 |
| 5381 | - vite: 4.0.3_amyfslv6hdwxqbf7f4ldebbtce | 5440 | + vite: 4.0.3_zxbrnrc4iyldik6mikh3pswz4i |
| 5382 | dev: true | 5441 | dev: true |
| 5383 | 5442 | ||
| 5384 | /vite-plugin-progress/0.0.6_vite@4.0.3: | 5443 | /vite-plugin-progress/0.0.6_vite@4.0.3: |
| @@ -5390,7 +5449,7 @@ packages: | @@ -5390,7 +5449,7 @@ packages: | ||
| 5390 | picocolors: 1.0.0 | 5449 | picocolors: 1.0.0 |
| 5391 | progress: 2.0.3 | 5450 | progress: 2.0.3 |
| 5392 | rd: 2.0.1 | 5451 | rd: 2.0.1 |
| 5393 | - vite: 4.0.3_amyfslv6hdwxqbf7f4ldebbtce | 5452 | + vite: 4.0.3_zxbrnrc4iyldik6mikh3pswz4i |
| 5394 | dev: true | 5453 | dev: true |
| 5395 | 5454 | ||
| 5396 | /vite-plugin-style-import/2.0.0_vite@4.0.3: | 5455 | /vite-plugin-style-import/2.0.0_vite@4.0.3: |
| @@ -5405,7 +5464,7 @@ packages: | @@ -5405,7 +5464,7 @@ packages: | ||
| 5405 | fs-extra: 10.1.0 | 5464 | fs-extra: 10.1.0 |
| 5406 | magic-string: 0.25.9 | 5465 | magic-string: 0.25.9 |
| 5407 | pathe: 0.2.0 | 5466 | pathe: 0.2.0 |
| 5408 | - vite: 4.0.3_amyfslv6hdwxqbf7f4ldebbtce | 5467 | + vite: 4.0.3_zxbrnrc4iyldik6mikh3pswz4i |
| 5409 | dev: true | 5468 | dev: true |
| 5410 | 5469 | ||
| 5411 | /vite-plugin-svg-icons/2.0.1_vite@4.0.3: | 5470 | /vite-plugin-svg-icons/2.0.1_vite@4.0.3: |
| @@ -5421,7 +5480,7 @@ packages: | @@ -5421,7 +5480,7 @@ packages: | ||
| 5421 | pathe: 0.2.0 | 5480 | pathe: 0.2.0 |
| 5422 | svg-baker: 1.7.0 | 5481 | svg-baker: 1.7.0 |
| 5423 | svgo: 2.8.0 | 5482 | svgo: 2.8.0 |
| 5424 | - vite: 4.0.3_amyfslv6hdwxqbf7f4ldebbtce | 5483 | + vite: 4.0.3_zxbrnrc4iyldik6mikh3pswz4i |
| 5425 | transitivePeerDependencies: | 5484 | transitivePeerDependencies: |
| 5426 | - supports-color | 5485 | - supports-color |
| 5427 | dev: true | 5486 | dev: true |
| @@ -5433,10 +5492,10 @@ packages: | @@ -5433,10 +5492,10 @@ packages: | ||
| 5433 | dependencies: | 5492 | dependencies: |
| 5434 | '@vue/compiler-sfc': 3.2.45 | 5493 | '@vue/compiler-sfc': 3.2.45 |
| 5435 | magic-string: 0.25.9 | 5494 | magic-string: 0.25.9 |
| 5436 | - vite: 4.0.3_amyfslv6hdwxqbf7f4ldebbtce | 5495 | + vite: 4.0.3_zxbrnrc4iyldik6mikh3pswz4i |
| 5437 | dev: true | 5496 | dev: true |
| 5438 | 5497 | ||
| 5439 | - /vite/4.0.3_amyfslv6hdwxqbf7f4ldebbtce: | 5498 | + /vite/4.0.3_zxbrnrc4iyldik6mikh3pswz4i: |
| 5440 | resolution: {integrity: sha512-HvuNv1RdE7deIfQb8mPk51UKjqptO/4RXZ5yXSAvurd5xOckwS/gg8h9Tky3uSbnjYTgUm0hVCet1cyhKd73ZA==} | 5499 | resolution: {integrity: sha512-HvuNv1RdE7deIfQb8mPk51UKjqptO/4RXZ5yXSAvurd5xOckwS/gg8h9Tky3uSbnjYTgUm0hVCet1cyhKd73ZA==} |
| 5441 | engines: {node: ^14.18.0 || >=16.0.0} | 5500 | engines: {node: ^14.18.0 || >=16.0.0} |
| 5442 | hasBin: true | 5501 | hasBin: true |
| @@ -5461,11 +5520,11 @@ packages: | @@ -5461,11 +5520,11 @@ packages: | ||
| 5461 | terser: | 5520 | terser: |
| 5462 | optional: true | 5521 | optional: true |
| 5463 | dependencies: | 5522 | dependencies: |
| 5464 | - '@types/node': 18.11.17 | 5523 | + '@types/node': 18.11.18 |
| 5465 | esbuild: 0.16.5 | 5524 | esbuild: 0.16.5 |
| 5466 | postcss: 8.4.20 | 5525 | postcss: 8.4.20 |
| 5467 | resolve: 1.22.1 | 5526 | resolve: 1.22.1 |
| 5468 | - rollup: 3.8.1 | 5527 | + rollup: 3.9.1 |
| 5469 | sass: 1.57.1 | 5528 | sass: 1.57.1 |
| 5470 | terser: 5.16.1 | 5529 | terser: 5.16.1 |
| 5471 | optionalDependencies: | 5530 | optionalDependencies: |
| @@ -5487,14 +5546,14 @@ packages: | @@ -5487,14 +5546,14 @@ packages: | ||
| 5487 | vue: 3.2.45 | 5546 | vue: 3.2.45 |
| 5488 | dev: false | 5547 | dev: false |
| 5489 | 5548 | ||
| 5490 | - /vue-eslint-parser/9.1.0_eslint@8.30.0: | 5549 | + /vue-eslint-parser/9.1.0_eslint@8.31.0: |
| 5491 | resolution: {integrity: sha512-NGn/iQy8/Wb7RrRa4aRkokyCZfOUWk19OP5HP6JEozQFX5AoS/t+Z0ZN7FY4LlmWc4FNI922V7cvX28zctN8dQ==} | 5550 | resolution: {integrity: sha512-NGn/iQy8/Wb7RrRa4aRkokyCZfOUWk19OP5HP6JEozQFX5AoS/t+Z0ZN7FY4LlmWc4FNI922V7cvX28zctN8dQ==} |
| 5492 | engines: {node: ^14.17.0 || >=16.0.0} | 5551 | engines: {node: ^14.17.0 || >=16.0.0} |
| 5493 | peerDependencies: | 5552 | peerDependencies: |
| 5494 | eslint: '>=6.0.0' | 5553 | eslint: '>=6.0.0' |
| 5495 | dependencies: | 5554 | dependencies: |
| 5496 | debug: 4.3.4 | 5555 | debug: 4.3.4 |
| 5497 | - eslint: 8.30.0 | 5556 | + eslint: 8.31.0 |
| 5498 | eslint-scope: 7.1.1 | 5557 | eslint-scope: 7.1.1 |
| 5499 | eslint-visitor-keys: 3.3.0 | 5558 | eslint-visitor-keys: 3.3.0 |
| 5500 | espree: 9.4.1 | 5559 | espree: 9.4.1 |
| @@ -5533,14 +5592,14 @@ packages: | @@ -5533,14 +5592,14 @@ packages: | ||
| 5533 | he: 1.2.0 | 5592 | he: 1.2.0 |
| 5534 | dev: true | 5593 | dev: true |
| 5535 | 5594 | ||
| 5536 | - /vue-tsc/1.0.16_typescript@4.9.4: | ||
| 5537 | - resolution: {integrity: sha512-yZaiJBbcKR1rSLhiF9KryAFH7R63po+N/invr2EAHGXxMzZksE5j1zyQKvrYiqK47ZHLAlCR+re/PHqWp/UzTg==} | 5595 | + /vue-tsc/1.0.19_typescript@4.9.4: |
| 5596 | + resolution: {integrity: sha512-UuI4G9PwV07Q2U+xYDLP5y3aUXTfuIF0Exy0qXT8+BbLlahubQ2r2PGSodSBnHxAhm/XsrD0KleC2rSzLKXDfQ==} | ||
| 5538 | hasBin: true | 5597 | hasBin: true |
| 5539 | peerDependencies: | 5598 | peerDependencies: |
| 5540 | typescript: '*' | 5599 | typescript: '*' |
| 5541 | dependencies: | 5600 | dependencies: |
| 5542 | - '@volar/vue-language-core': 1.0.16 | ||
| 5543 | - '@volar/vue-typescript': 1.0.16 | 5601 | + '@volar/vue-language-core': 1.0.19 |
| 5602 | + '@volar/vue-typescript': 1.0.19 | ||
| 5544 | typescript: 4.9.4 | 5603 | typescript: 4.9.4 |
| 5545 | dev: true | 5604 | dev: true |
| 5546 | 5605 | ||
| @@ -6229,7 +6288,7 @@ packages: | @@ -6229,7 +6288,7 @@ packages: | ||
| 6229 | version: 0.9.1 | 6288 | version: 0.9.1 |
| 6230 | dependencies: | 6289 | dependencies: |
| 6231 | '@iconify/iconify': registry.npmmirror.com/@iconify/iconify/2.1.2 | 6290 | '@iconify/iconify': registry.npmmirror.com/@iconify/iconify/2.1.2 |
| 6232 | - axios: registry.npmmirror.com/axios/0.26.1_debug@4.3.4 | 6291 | + axios: 0.26.1_debug@4.3.4 |
| 6233 | debug: 4.3.4 | 6292 | debug: 4.3.4 |
| 6234 | fast-glob: registry.npmmirror.com/fast-glob/3.2.12 | 6293 | fast-glob: registry.npmmirror.com/fast-glob/3.2.12 |
| 6235 | fs-extra: registry.npmmirror.com/fs-extra/10.1.0 | 6294 | fs-extra: registry.npmmirror.com/fs-extra/10.1.0 |
| @@ -6262,7 +6321,7 @@ packages: | @@ -6262,7 +6321,7 @@ packages: | ||
| 6262 | regenerator-runtime: registry.npmmirror.com/regenerator-runtime/0.13.11 | 6321 | regenerator-runtime: registry.npmmirror.com/regenerator-runtime/0.13.11 |
| 6263 | systemjs: registry.npmmirror.com/systemjs/6.13.0 | 6322 | systemjs: registry.npmmirror.com/systemjs/6.13.0 |
| 6264 | terser: 5.16.1 | 6323 | terser: 5.16.1 |
| 6265 | - vite: 4.0.3_amyfslv6hdwxqbf7f4ldebbtce | 6324 | + vite: 4.0.3_zxbrnrc4iyldik6mikh3pswz4i |
| 6266 | dev: true | 6325 | dev: true |
| 6267 | 6326 | ||
| 6268 | registry.npmmirror.com/@vitejs/plugin-vue-jsx/3.0.0_vite@4.0.3+vue@3.2.45: | 6327 | registry.npmmirror.com/@vitejs/plugin-vue-jsx/3.0.0_vite@4.0.3+vue@3.2.45: |
| @@ -6278,7 +6337,7 @@ packages: | @@ -6278,7 +6337,7 @@ packages: | ||
| 6278 | '@babel/core': registry.npmmirror.com/@babel/core/7.20.5 | 6337 | '@babel/core': registry.npmmirror.com/@babel/core/7.20.5 |
| 6279 | '@babel/plugin-transform-typescript': registry.npmmirror.com/@babel/plugin-transform-typescript/7.20.2_@babel+core@7.20.5 | 6338 | '@babel/plugin-transform-typescript': registry.npmmirror.com/@babel/plugin-transform-typescript/7.20.2_@babel+core@7.20.5 |
| 6280 | '@vue/babel-plugin-jsx': registry.npmmirror.com/@vue/babel-plugin-jsx/1.1.1_@babel+core@7.20.5 | 6339 | '@vue/babel-plugin-jsx': registry.npmmirror.com/@vue/babel-plugin-jsx/1.1.1_@babel+core@7.20.5 |
| 6281 | - vite: 4.0.3_amyfslv6hdwxqbf7f4ldebbtce | 6340 | + vite: 4.0.3_zxbrnrc4iyldik6mikh3pswz4i |
| 6282 | vue: 3.2.45 | 6341 | vue: 3.2.45 |
| 6283 | transitivePeerDependencies: | 6342 | transitivePeerDependencies: |
| 6284 | - supports-color | 6343 | - supports-color |
| @@ -6294,7 +6353,7 @@ packages: | @@ -6294,7 +6353,7 @@ packages: | ||
| 6294 | vite: ^4.0.0 | 6353 | vite: ^4.0.0 |
| 6295 | vue: ^3.2.25 | 6354 | vue: ^3.2.25 |
| 6296 | dependencies: | 6355 | dependencies: |
| 6297 | - vite: 4.0.3_amyfslv6hdwxqbf7f4ldebbtce | 6356 | + vite: 4.0.3_zxbrnrc4iyldik6mikh3pswz4i |
| 6298 | vue: 3.2.45 | 6357 | vue: 3.2.45 |
| 6299 | dev: true | 6358 | dev: true |
| 6300 | 6359 | ||
| @@ -6388,22 +6447,6 @@ packages: | @@ -6388,22 +6447,6 @@ packages: | ||
| 6388 | - supports-color | 6447 | - supports-color |
| 6389 | dev: true | 6448 | dev: true |
| 6390 | 6449 | ||
| 6391 | - registry.npmmirror.com/ansi-styles/2.2.1: | ||
| 6392 | - resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ansi-styles/-/ansi-styles-2.2.1.tgz} | ||
| 6393 | - name: ansi-styles | ||
| 6394 | - version: 2.2.1 | ||
| 6395 | - engines: {node: '>=0.10.0'} | ||
| 6396 | - dev: true | ||
| 6397 | - | ||
| 6398 | - registry.npmmirror.com/ansi-styles/3.2.1: | ||
| 6399 | - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz} | ||
| 6400 | - name: ansi-styles | ||
| 6401 | - version: 3.2.1 | ||
| 6402 | - engines: {node: '>=4'} | ||
| 6403 | - dependencies: | ||
| 6404 | - color-convert: registry.npmmirror.com/color-convert/1.9.3 | ||
| 6405 | - dev: true | ||
| 6406 | - | ||
| 6407 | registry.npmmirror.com/ansi-styles/4.3.0: | 6450 | registry.npmmirror.com/ansi-styles/4.3.0: |
| 6408 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz} | 6451 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz} |
| 6409 | name: ansi-styles | 6452 | name: ansi-styles |
| @@ -6412,17 +6455,6 @@ packages: | @@ -6412,17 +6455,6 @@ packages: | ||
| 6412 | dependencies: | 6455 | dependencies: |
| 6413 | color-convert: registry.npmmirror.com/color-convert/2.0.1 | 6456 | color-convert: registry.npmmirror.com/color-convert/2.0.1 |
| 6414 | 6457 | ||
| 6415 | - registry.npmmirror.com/axios/0.26.1_debug@4.3.4: | ||
| 6416 | - resolution: {integrity: sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/axios/-/axios-0.26.1.tgz} | ||
| 6417 | - id: registry.npmmirror.com/axios/0.26.1 | ||
| 6418 | - name: axios | ||
| 6419 | - version: 0.26.1 | ||
| 6420 | - dependencies: | ||
| 6421 | - follow-redirects: registry.npmmirror.com/follow-redirects/1.15.2_debug@4.3.4 | ||
| 6422 | - transitivePeerDependencies: | ||
| 6423 | - - debug | ||
| 6424 | - dev: true | ||
| 6425 | - | ||
| 6426 | registry.npmmirror.com/braces/2.3.2: | 6458 | registry.npmmirror.com/braces/2.3.2: |
| 6427 | resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/braces/-/braces-2.3.2.tgz} | 6459 | resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/braces/-/braces-2.3.2.tgz} |
| 6428 | name: braces | 6460 | name: braces |
| @@ -6585,7 +6617,7 @@ packages: | @@ -6585,7 +6617,7 @@ packages: | ||
| 6585 | '@nodelib/fs.walk': 1.2.8 | 6617 | '@nodelib/fs.walk': 1.2.8 |
| 6586 | glob-parent: 5.1.2 | 6618 | glob-parent: 5.1.2 |
| 6587 | merge2: registry.npmmirror.com/merge2/1.4.1 | 6619 | merge2: registry.npmmirror.com/merge2/1.4.1 |
| 6588 | - micromatch: registry.npmmirror.com/micromatch/4.0.5 | 6620 | + micromatch: 4.0.5 |
| 6589 | dev: true | 6621 | dev: true |
| 6590 | 6622 | ||
| 6591 | registry.npmmirror.com/fill-range/4.0.0: | 6623 | registry.npmmirror.com/fill-range/4.0.0: |
| @@ -6609,21 +6641,6 @@ packages: | @@ -6609,21 +6641,6 @@ packages: | ||
| 6609 | to-regex-range: registry.npmmirror.com/to-regex-range/5.0.1 | 6641 | to-regex-range: registry.npmmirror.com/to-regex-range/5.0.1 |
| 6610 | dev: true | 6642 | dev: true |
| 6611 | 6643 | ||
| 6612 | - registry.npmmirror.com/follow-redirects/1.15.2_debug@4.3.4: | ||
| 6613 | - resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.2.tgz} | ||
| 6614 | - id: registry.npmmirror.com/follow-redirects/1.15.2 | ||
| 6615 | - name: follow-redirects | ||
| 6616 | - version: 1.15.2 | ||
| 6617 | - engines: {node: '>=4.0'} | ||
| 6618 | - peerDependencies: | ||
| 6619 | - debug: '*' | ||
| 6620 | - peerDependenciesMeta: | ||
| 6621 | - debug: | ||
| 6622 | - optional: true | ||
| 6623 | - dependencies: | ||
| 6624 | - debug: 4.3.4 | ||
| 6625 | - dev: true | ||
| 6626 | - | ||
| 6627 | registry.npmmirror.com/fs-extra/10.1.0: | 6644 | registry.npmmirror.com/fs-extra/10.1.0: |
| 6628 | resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fs-extra/-/fs-extra-10.1.0.tgz} | 6645 | resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fs-extra/-/fs-extra-10.1.0.tgz} |
| 6629 | name: fs-extra | 6646 | name: fs-extra |
| @@ -6653,20 +6670,6 @@ packages: | @@ -6653,20 +6670,6 @@ packages: | ||
| 6653 | version: 4.2.10 | 6670 | version: 4.2.10 |
| 6654 | dev: true | 6671 | dev: true |
| 6655 | 6672 | ||
| 6656 | - registry.npmmirror.com/has-flag/1.0.0: | ||
| 6657 | - resolution: {integrity: sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has-flag/-/has-flag-1.0.0.tgz} | ||
| 6658 | - name: has-flag | ||
| 6659 | - version: 1.0.0 | ||
| 6660 | - engines: {node: '>=0.10.0'} | ||
| 6661 | - dev: true | ||
| 6662 | - | ||
| 6663 | - registry.npmmirror.com/has-flag/3.0.0: | ||
| 6664 | - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz} | ||
| 6665 | - name: has-flag | ||
| 6666 | - version: 3.0.0 | ||
| 6667 | - engines: {node: '>=4'} | ||
| 6668 | - dev: true | ||
| 6669 | - | ||
| 6670 | registry.npmmirror.com/has/1.0.3: | 6673 | registry.npmmirror.com/has/1.0.3: |
| 6671 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has/-/has-1.0.3.tgz} | 6674 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has/-/has-1.0.3.tgz} |
| 6672 | name: has | 6675 | name: has |
| @@ -6932,29 +6935,13 @@ packages: | @@ -6932,29 +6935,13 @@ packages: | ||
| 6932 | version: 1.0.2 | 6935 | version: 1.0.2 |
| 6933 | engines: {node: '>=0.10.0'} | 6936 | engines: {node: '>=0.10.0'} |
| 6934 | 6937 | ||
| 6935 | - registry.npmmirror.com/supports-color/2.0.0: | ||
| 6936 | - resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/supports-color/-/supports-color-2.0.0.tgz} | ||
| 6937 | - name: supports-color | ||
| 6938 | - version: 2.0.0 | ||
| 6939 | - engines: {node: '>=0.8.0'} | ||
| 6940 | - dev: true | ||
| 6941 | - | ||
| 6942 | registry.npmmirror.com/supports-color/3.2.3: | 6938 | registry.npmmirror.com/supports-color/3.2.3: |
| 6943 | resolution: {integrity: sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/supports-color/-/supports-color-3.2.3.tgz} | 6939 | resolution: {integrity: sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/supports-color/-/supports-color-3.2.3.tgz} |
| 6944 | name: supports-color | 6940 | name: supports-color |
| 6945 | version: 3.2.3 | 6941 | version: 3.2.3 |
| 6946 | engines: {node: '>=0.8.0'} | 6942 | engines: {node: '>=0.8.0'} |
| 6947 | dependencies: | 6943 | dependencies: |
| 6948 | - has-flag: registry.npmmirror.com/has-flag/1.0.0 | ||
| 6949 | - dev: true | ||
| 6950 | - | ||
| 6951 | - registry.npmmirror.com/supports-color/5.5.0: | ||
| 6952 | - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz} | ||
| 6953 | - name: supports-color | ||
| 6954 | - version: 5.5.0 | ||
| 6955 | - engines: {node: '>=4'} | ||
| 6956 | - dependencies: | ||
| 6957 | - has-flag: registry.npmmirror.com/has-flag/3.0.0 | 6944 | + has-flag: 1.0.0 |
| 6958 | dev: true | 6945 | dev: true |
| 6959 | 6946 | ||
| 6960 | registry.npmmirror.com/svg-tags/1.0.0: | 6947 | registry.npmmirror.com/svg-tags/1.0.0: |
| @@ -7045,7 +7032,7 @@ packages: | @@ -7045,7 +7032,7 @@ packages: | ||
| 7045 | '@purge-icons/core': registry.npmmirror.com/@purge-icons/core/0.9.1 | 7032 | '@purge-icons/core': registry.npmmirror.com/@purge-icons/core/0.9.1 |
| 7046 | '@purge-icons/generated': registry.npmmirror.com/@purge-icons/generated/0.9.0 | 7033 | '@purge-icons/generated': registry.npmmirror.com/@purge-icons/generated/0.9.0 |
| 7047 | rollup-plugin-purge-icons: registry.npmmirror.com/rollup-plugin-purge-icons/0.9.1 | 7034 | rollup-plugin-purge-icons: registry.npmmirror.com/rollup-plugin-purge-icons/0.9.1 |
| 7048 | - vite: 4.0.3_amyfslv6hdwxqbf7f4ldebbtce | 7035 | + vite: 4.0.3_zxbrnrc4iyldik6mikh3pswz4i |
| 7049 | transitivePeerDependencies: | 7036 | transitivePeerDependencies: |
| 7050 | - encoding | 7037 | - encoding |
| 7051 | - supports-color | 7038 | - supports-color |
| @@ -7062,7 +7049,7 @@ packages: | @@ -7062,7 +7049,7 @@ packages: | ||
| 7062 | '@windicss/plugin-utils': registry.npmmirror.com/@windicss/plugin-utils/1.8.10 | 7049 | '@windicss/plugin-utils': registry.npmmirror.com/@windicss/plugin-utils/1.8.10 |
| 7063 | debug: registry.npmmirror.com/debug/4.3.4 | 7050 | debug: registry.npmmirror.com/debug/4.3.4 |
| 7064 | kolorist: registry.npmmirror.com/kolorist/1.6.0 | 7051 | kolorist: registry.npmmirror.com/kolorist/1.6.0 |
| 7065 | - vite: 4.0.3_amyfslv6hdwxqbf7f4ldebbtce | 7052 | + vite: 4.0.3_zxbrnrc4iyldik6mikh3pswz4i |
| 7066 | windicss: registry.npmmirror.com/windicss/3.5.6 | 7053 | windicss: registry.npmmirror.com/windicss/3.5.6 |
| 7067 | transitivePeerDependencies: | 7054 | transitivePeerDependencies: |
| 7068 | - supports-color | 7055 | - supports-color |
yudao-ui-admin-vue3/src/components/XTable/index.ts
0 → 100644
yudao-ui-admin-vue3/src/components/XTable/src/XTable.vue
0 → 100644
| 1 | +<template> | ||
| 2 | + <VxeGrid v-bind="getProps" ref="xGrid" :class="`${prefixCls}`" class="xtable-scrollbar"> | ||
| 3 | + <template #[item]="data" v-for="item in Object.keys($slots)" :key="item"> | ||
| 4 | + <slot :name="item" v-bind="data || {}"></slot> | ||
| 5 | + </template> | ||
| 6 | + </VxeGrid> | ||
| 7 | +</template> | ||
| 8 | +<script lang="ts" setup name="XTable"> | ||
| 9 | +import { computed, PropType, ref, unref, useAttrs, watch } from 'vue' | ||
| 10 | +import { SizeType, VxeGridInstance } from 'vxe-table' | ||
| 11 | +import { useAppStore } from '@/store/modules/app' | ||
| 12 | +import { useDesign } from '@/hooks/web/useDesign' | ||
| 13 | +import { XTableProps } from './type' | ||
| 14 | +import { isBoolean, isFunction } from '@/utils/is' | ||
| 15 | +import { useMessage } from '@/hooks/web/useMessage' | ||
| 16 | +import download from '@/utils/download' | ||
| 17 | +import { useI18n } from '@/hooks/web/useI18n' | ||
| 18 | + | ||
| 19 | +const { t } = useI18n() | ||
| 20 | +const message = useMessage() // 消息弹窗 | ||
| 21 | + | ||
| 22 | +const appStore = useAppStore() | ||
| 23 | + | ||
| 24 | +const { getPrefixCls } = useDesign() | ||
| 25 | +const prefixCls = getPrefixCls('x-vxe-table') | ||
| 26 | + | ||
| 27 | +const attrs = useAttrs() | ||
| 28 | +const emit = defineEmits(['register']) | ||
| 29 | + | ||
| 30 | +watch( | ||
| 31 | + () => appStore.getIsDark, | ||
| 32 | + () => { | ||
| 33 | + if (appStore.getIsDark == true) { | ||
| 34 | + import('./style/dark.scss') | ||
| 35 | + } | ||
| 36 | + if (appStore.getIsDark == false) { | ||
| 37 | + import('./style/light.scss') | ||
| 38 | + } | ||
| 39 | + }, | ||
| 40 | + { immediate: true } | ||
| 41 | +) | ||
| 42 | + | ||
| 43 | +const currentSize = computed(() => { | ||
| 44 | + let resSize: SizeType = 'small' | ||
| 45 | + const appsize = appStore.getCurrentSize | ||
| 46 | + switch (appsize) { | ||
| 47 | + case 'large': | ||
| 48 | + resSize = 'medium' | ||
| 49 | + break | ||
| 50 | + case 'default': | ||
| 51 | + resSize = 'small' | ||
| 52 | + break | ||
| 53 | + case 'small': | ||
| 54 | + resSize = 'mini' | ||
| 55 | + break | ||
| 56 | + } | ||
| 57 | + return resSize | ||
| 58 | +}) | ||
| 59 | + | ||
| 60 | +const props = defineProps({ | ||
| 61 | + options: { | ||
| 62 | + type: Object as PropType<XTableProps>, | ||
| 63 | + default: () => {} | ||
| 64 | + } | ||
| 65 | +}) | ||
| 66 | +const innerProps = ref<Partial<XTableProps>>() | ||
| 67 | + | ||
| 68 | +const getProps = computed(() => { | ||
| 69 | + const options = innerProps.value || props.options | ||
| 70 | + options.size = currentSize as any | ||
| 71 | + options.height = 700 | ||
| 72 | + getOptionInitConfig(options) | ||
| 73 | + getColumnsConfig(options) | ||
| 74 | + getProxyConfig(options) | ||
| 75 | + getPageConfig(options) | ||
| 76 | + getToolBarConfig(options) | ||
| 77 | + // console.log(options); | ||
| 78 | + return { | ||
| 79 | + ...options, | ||
| 80 | + ...attrs | ||
| 81 | + } | ||
| 82 | +}) | ||
| 83 | + | ||
| 84 | +const xGrid = ref<VxeGridInstance>() // 列表 Grid Ref | ||
| 85 | + | ||
| 86 | +let proxyForm = false | ||
| 87 | + | ||
| 88 | +const getOptionInitConfig = (options: XTableProps) => { | ||
| 89 | + options.size = currentSize as any | ||
| 90 | + options.rowConfig = { | ||
| 91 | + isCurrent: true, // 当鼠标点击行时,是否要高亮当前行 | ||
| 92 | + isHover: true // 当鼠标移到行时,是否要高亮当前行 | ||
| 93 | + } | ||
| 94 | +} | ||
| 95 | + | ||
| 96 | +// columns | ||
| 97 | +const getColumnsConfig = (options: XTableProps) => { | ||
| 98 | + const { allSchemas } = options | ||
| 99 | + if (!allSchemas) return | ||
| 100 | + if (allSchemas.printSchema) { | ||
| 101 | + options.printConfig = { | ||
| 102 | + columns: allSchemas.printSchema | ||
| 103 | + } | ||
| 104 | + } | ||
| 105 | + if (allSchemas.formSchema) { | ||
| 106 | + proxyForm = true | ||
| 107 | + options.formConfig = { | ||
| 108 | + enabled: true, | ||
| 109 | + titleWidth: 100, | ||
| 110 | + titleAlign: 'right', | ||
| 111 | + items: allSchemas.searchSchema | ||
| 112 | + } | ||
| 113 | + } | ||
| 114 | + if (allSchemas.tableSchema) { | ||
| 115 | + options.columns = allSchemas.tableSchema | ||
| 116 | + } | ||
| 117 | +} | ||
| 118 | + | ||
| 119 | +// 动态请求 | ||
| 120 | +const getProxyConfig = (options: XTableProps) => { | ||
| 121 | + const { getListApi, proxyConfig, data, isList } = options | ||
| 122 | + if (proxyConfig || data) return | ||
| 123 | + if (getListApi && isFunction(getListApi) && !isList) { | ||
| 124 | + if (!isList) { | ||
| 125 | + options.proxyConfig = { | ||
| 126 | + seq: true, // 启用动态序号代理(分页之后索引自动计算为当前页的起始序号) | ||
| 127 | + form: proxyForm, // 启用表单代理,当点击表单提交按钮时会自动触发 reload 行为 | ||
| 128 | + props: { result: 'list', total: 'total' }, | ||
| 129 | + ajax: { | ||
| 130 | + query: async ({ page, form }) => { | ||
| 131 | + let queryParams: any = Object.assign({}, JSON.parse(JSON.stringify(form))) | ||
| 132 | + if (options.params) { | ||
| 133 | + queryParams = Object.assign(queryParams, options.params) | ||
| 134 | + } | ||
| 135 | + if (!options?.treeConfig) { | ||
| 136 | + queryParams.pageSize = page.pageSize | ||
| 137 | + queryParams.pageNo = page.currentPage | ||
| 138 | + } | ||
| 139 | + return new Promise(async (resolve) => { | ||
| 140 | + resolve(await getListApi(queryParams)) | ||
| 141 | + }) | ||
| 142 | + }, | ||
| 143 | + delete: ({ body }) => { | ||
| 144 | + return new Promise(async (resolve) => { | ||
| 145 | + if (options.deleteApi) { | ||
| 146 | + resolve(await options.deleteApi(JSON.stringify(body))) | ||
| 147 | + } else { | ||
| 148 | + Promise.reject('未设置deleteApi') | ||
| 149 | + } | ||
| 150 | + }) | ||
| 151 | + }, | ||
| 152 | + queryAll: ({ form }) => { | ||
| 153 | + const queryParams = Object.assign({}, JSON.parse(JSON.stringify(form))) | ||
| 154 | + return new Promise(async (resolve) => { | ||
| 155 | + if (options.getAllListApi) { | ||
| 156 | + resolve(await options.getAllListApi(queryParams)) | ||
| 157 | + } else { | ||
| 158 | + resolve(await getListApi(queryParams)) | ||
| 159 | + } | ||
| 160 | + }) | ||
| 161 | + } | ||
| 162 | + } | ||
| 163 | + } | ||
| 164 | + } else { | ||
| 165 | + options.proxyConfig = { | ||
| 166 | + seq: true, // 启用动态序号代理(分页之后索引自动计算为当前页的起始序号) | ||
| 167 | + form: true, // 启用表单代理,当点击表单提交按钮时会自动触发 reload 行为 | ||
| 168 | + props: { result: 'data' }, | ||
| 169 | + ajax: { | ||
| 170 | + query: ({ form }) => { | ||
| 171 | + let queryParams: any = Object.assign({}, JSON.parse(JSON.stringify(form))) | ||
| 172 | + if (options?.params) { | ||
| 173 | + queryParams = Object.assign(queryParams, options.params) | ||
| 174 | + } | ||
| 175 | + return new Promise(async (resolve) => { | ||
| 176 | + resolve(await getListApi(queryParams)) | ||
| 177 | + }) | ||
| 178 | + } | ||
| 179 | + } | ||
| 180 | + } | ||
| 181 | + } | ||
| 182 | + } | ||
| 183 | + if (options.exportListApi) { | ||
| 184 | + options.exportConfig = { | ||
| 185 | + filename: options?.exportName, | ||
| 186 | + // 默认选中类型 | ||
| 187 | + type: 'csv', | ||
| 188 | + // 自定义数据量列表 | ||
| 189 | + modes: options?.getAllListApi ? ['current', 'all'] : ['current'], | ||
| 190 | + columns: options?.allSchemas?.printSchema | ||
| 191 | + } | ||
| 192 | + } | ||
| 193 | +} | ||
| 194 | + | ||
| 195 | +// 分页 | ||
| 196 | +const getPageConfig = (options: XTableProps) => { | ||
| 197 | + const { pagination, pagerConfig, treeConfig } = options | ||
| 198 | + if (treeConfig) { | ||
| 199 | + options.treeConfig = options.treeConfig | ||
| 200 | + return | ||
| 201 | + } | ||
| 202 | + if (pagerConfig) return | ||
| 203 | + if (pagination) { | ||
| 204 | + if (isBoolean(pagination)) { | ||
| 205 | + options.pagerConfig = { | ||
| 206 | + border: false, // 带边框 | ||
| 207 | + background: true, // 带背景颜色 | ||
| 208 | + perfect: false, // 配套的样式 | ||
| 209 | + pageSize: 10, // 每页大小 | ||
| 210 | + pagerCount: 7, // 显示页码按钮的数量 | ||
| 211 | + autoHidden: false, // 当只有一页时自动隐藏 | ||
| 212 | + pageSizes: [5, 10, 20, 30, 50, 100], // 每页大小选项列表 | ||
| 213 | + layouts: [ | ||
| 214 | + 'PrevJump', | ||
| 215 | + 'PrevPage', | ||
| 216 | + 'JumpNumber', | ||
| 217 | + 'NextPage', | ||
| 218 | + 'NextJump', | ||
| 219 | + 'Sizes', | ||
| 220 | + 'FullJump', | ||
| 221 | + 'Total' | ||
| 222 | + ] | ||
| 223 | + } | ||
| 224 | + return | ||
| 225 | + } | ||
| 226 | + options.pagerConfig = pagination | ||
| 227 | + } else { | ||
| 228 | + if (pagination != false) { | ||
| 229 | + options.pagerConfig = { | ||
| 230 | + border: false, // 带边框 | ||
| 231 | + background: true, // 带背景颜色 | ||
| 232 | + perfect: false, // 配套的样式 | ||
| 233 | + pageSize: 10, // 每页大小 | ||
| 234 | + pagerCount: 7, // 显示页码按钮的数量 | ||
| 235 | + autoHidden: false, // 当只有一页时自动隐藏 | ||
| 236 | + pageSizes: [5, 10, 20, 30, 50, 100], // 每页大小选项列表 | ||
| 237 | + layouts: [ | ||
| 238 | + 'PrevJump', | ||
| 239 | + 'PrevPage', | ||
| 240 | + 'JumpNumber', | ||
| 241 | + 'NextPage', | ||
| 242 | + 'NextJump', | ||
| 243 | + 'Sizes', | ||
| 244 | + 'FullJump', | ||
| 245 | + 'Total' | ||
| 246 | + ] | ||
| 247 | + } | ||
| 248 | + } | ||
| 249 | + } | ||
| 250 | +} | ||
| 251 | + | ||
| 252 | +// tool bar | ||
| 253 | +const getToolBarConfig = (options: XTableProps) => { | ||
| 254 | + const { toolBar, toolbarConfig, topActionSlots } = options | ||
| 255 | + if (toolbarConfig) return | ||
| 256 | + if (toolBar) { | ||
| 257 | + if (!isBoolean(toolBar)) { | ||
| 258 | + options.toolbarConfig = toolBar | ||
| 259 | + return | ||
| 260 | + } | ||
| 261 | + } else if (!topActionSlots) { | ||
| 262 | + options.toolbarConfig = { | ||
| 263 | + slots: { buttons: 'toolbar_buttons' } | ||
| 264 | + } | ||
| 265 | + } | ||
| 266 | +} | ||
| 267 | + | ||
| 268 | +// 刷新列表 | ||
| 269 | +const reload = () => { | ||
| 270 | + const g = unref(xGrid) | ||
| 271 | + if (!g) { | ||
| 272 | + return | ||
| 273 | + } | ||
| 274 | + g.commitProxy('query') | ||
| 275 | +} | ||
| 276 | + | ||
| 277 | +// 删除 | ||
| 278 | +const deleteData = async (ids: string | number) => { | ||
| 279 | + const g = unref(xGrid) | ||
| 280 | + if (!g) { | ||
| 281 | + return | ||
| 282 | + } | ||
| 283 | + const options = innerProps.value || props.options | ||
| 284 | + if (!options.deleteApi) { | ||
| 285 | + console.error('未传入delListApi') | ||
| 286 | + return | ||
| 287 | + } | ||
| 288 | + return new Promise(async () => { | ||
| 289 | + message.delConfirm().then(async () => { | ||
| 290 | + await (options?.deleteApi && options?.deleteApi(ids)) | ||
| 291 | + message.success(t('common.delSuccess')) | ||
| 292 | + // 刷新列表 | ||
| 293 | + reload() | ||
| 294 | + }) | ||
| 295 | + }) | ||
| 296 | +} | ||
| 297 | + | ||
| 298 | +// 导出 | ||
| 299 | +const exportList = async (fileName?: string) => { | ||
| 300 | + const g = unref(xGrid) | ||
| 301 | + if (!g) { | ||
| 302 | + return | ||
| 303 | + } | ||
| 304 | + const options = innerProps.value || props.options | ||
| 305 | + if (!options?.exportListApi) { | ||
| 306 | + console.error('未传入exportListApi') | ||
| 307 | + return | ||
| 308 | + } | ||
| 309 | + const queryParams = Object.assign({}, JSON.parse(JSON.stringify(g.getProxyInfo()?.form))) | ||
| 310 | + message.exportConfirm().then(async () => { | ||
| 311 | + const res = await (options?.exportListApi && options?.exportListApi(queryParams)) | ||
| 312 | + download.excel(res as unknown as Blob, fileName ? fileName : 'excel.xls') | ||
| 313 | + }) | ||
| 314 | +} | ||
| 315 | + | ||
| 316 | +// 获取查询参数 | ||
| 317 | +const getSearchData = () => { | ||
| 318 | + const g = unref(xGrid) | ||
| 319 | + if (!g) { | ||
| 320 | + return | ||
| 321 | + } | ||
| 322 | + const queryParams = Object.assign({}, JSON.parse(JSON.stringify(g.getProxyInfo()?.form))) | ||
| 323 | + return queryParams | ||
| 324 | +} | ||
| 325 | + | ||
| 326 | +const setProps = (prop: Partial<XTableProps>) => { | ||
| 327 | + innerProps.value = { ...unref(innerProps), ...prop } | ||
| 328 | +} | ||
| 329 | + | ||
| 330 | +defineExpose({ reload, Ref: xGrid, getSearchData, deleteData, exportList }) | ||
| 331 | +emit('register', { reload, getSearchData, setProps, deleteData, exportList }) | ||
| 332 | +</script> | ||
| 333 | +<style lang="scss"> | ||
| 334 | +@import './style/index.scss'; | ||
| 335 | +</style> |
yudao-ui-admin-vue3/src/components/XTable/src/style/dark.scss
0 → 100644
| 1 | +// 修改样式变量 | ||
| 2 | +//@import 'vxe-table/styles/variable.scss'; | ||
| 3 | + | ||
| 4 | +/*font*/ | ||
| 5 | +$vxe-font-color: #e5e7eb; | ||
| 6 | +// $vxe-font-size: 14px !default; | ||
| 7 | +// $vxe-font-size-medium: 16px !default; | ||
| 8 | +// $vxe-font-size-small: 14px !default; | ||
| 9 | +// $vxe-font-size-mini: 12px !default; | ||
| 10 | + | ||
| 11 | +/*color*/ | ||
| 12 | +$vxe-primary-color: #409eff !default; | ||
| 13 | +$vxe-success-color: #67c23a !default; | ||
| 14 | +$vxe-info-color: #909399 !default; | ||
| 15 | +$vxe-warning-color: #e6a23c !default; | ||
| 16 | +$vxe-danger-color: #f56c6c !default; | ||
| 17 | +$vxe-disabled-color: #bfbfbf !default; | ||
| 18 | +$vxe-primary-disabled-color: #c0c4cc !default; | ||
| 19 | + | ||
| 20 | +/*loading*/ | ||
| 21 | +$vxe-loading-color: $vxe-primary-color !default; | ||
| 22 | +$vxe-loading-background-color: #1d1e1f !default; | ||
| 23 | +$vxe-loading-z-index: 999 !default; | ||
| 24 | + | ||
| 25 | +/*icon*/ | ||
| 26 | +$vxe-icon-font-family: Verdana, Arial, Tahoma !default; | ||
| 27 | +$vxe-icon-background-color: #e5e7eb !default; | ||
| 28 | + | ||
| 29 | +/*toolbar*/ | ||
| 30 | +$vxe-toolbar-background-color: #1d1e1f !default; | ||
| 31 | +$vxe-toolbar-button-border: #dcdfe6 !default; | ||
| 32 | +$vxe-toolbar-custom-active-background-color: #d9dadb !default; | ||
| 33 | +$vxe-toolbar-panel-background-color: #e5e7eb !default; | ||
| 34 | + | ||
| 35 | +$vxe-table-font-color: #e5e7eb; | ||
| 36 | +$vxe-table-header-background-color: #1d1e1f; | ||
| 37 | +$vxe-table-body-background-color: #141414; | ||
| 38 | +$vxe-table-row-striped-background-color: #1d1d1d; | ||
| 39 | +$vxe-table-row-hover-background-color: #1d1e1f; | ||
| 40 | +$vxe-table-row-hover-striped-background-color: #1e1e1e; | ||
| 41 | +$vxe-table-footer-background-color: #1d1e1f; | ||
| 42 | +$vxe-table-row-current-background-color: #302d2d; | ||
| 43 | +$vxe-table-column-current-background-color: #302d2d; | ||
| 44 | +$vxe-table-column-hover-background-color: #302d2d; | ||
| 45 | +$vxe-table-row-hover-current-background-color: #302d2d; | ||
| 46 | +$vxe-table-row-checkbox-checked-background-color: #3e3c37 !default; | ||
| 47 | +$vxe-table-row-hover-checkbox-checked-background-color: #615a4a !default; | ||
| 48 | +$vxe-table-menu-background-color: #1d1e1f; | ||
| 49 | +$vxe-table-border-width: 1px !default; | ||
| 50 | +$vxe-table-border-color: #4c4d4f !default; | ||
| 51 | +$vxe-table-fixed-left-scrolling-box-shadow: 8px 0px 10px -5px rgba(0, 0, 0, 0.12) !default; | ||
| 52 | +$vxe-table-fixed-right-scrolling-box-shadow: -8px 0px 10px -5px rgba(0, 0, 0, 0.12) !default; | ||
| 53 | + | ||
| 54 | +$vxe-form-background-color: #141414; | ||
| 55 | + | ||
| 56 | +/*pager*/ | ||
| 57 | +$vxe-pager-background-color: #1d1e1f !default; | ||
| 58 | +$vxe-pager-perfect-background-color: #262727 !default; | ||
| 59 | +$vxe-pager-perfect-button-background-color: #a7a3a3 !default; | ||
| 60 | + | ||
| 61 | +$vxe-input-background-color: #141414; | ||
| 62 | +$vxe-input-border-color: #4c4d4f !default; | ||
| 63 | + | ||
| 64 | +$vxe-select-option-hover-background-color: #262626 !default; | ||
| 65 | +$vxe-select-panel-background-color: #141414 !default; | ||
| 66 | +$vxe-select-empty-color: #262626 !default; | ||
| 67 | +$vxe-optgroup-title-color: #909399 !default; | ||
| 68 | + | ||
| 69 | +/*button*/ | ||
| 70 | +$vxe-button-default-background-color: #262626; | ||
| 71 | +$vxe-button-dropdown-panel-background-color: #141414; | ||
| 72 | + | ||
| 73 | +/*modal*/ | ||
| 74 | +$vxe-modal-header-background-color: #141414; | ||
| 75 | +$vxe-modal-body-background-color: #141414; | ||
| 76 | +$vxe-modal-border-color: #3b3b3b; | ||
| 77 | + | ||
| 78 | +/*pulldown*/ | ||
| 79 | +$vxe-pulldown-panel-background-color: #262626 !default; | ||
| 80 | + | ||
| 81 | +@import 'vxe-table/styles/index'; |
yudao-ui-admin-vue3/src/components/XTable/src/style/index.scss
0 → 100644
yudao-ui-admin-vue3/src/components/XTable/src/style/light.scss
0 → 100644
| 1 | +// 修改样式变量 | ||
| 2 | +// /*font*/ | ||
| 3 | +// $vxe-font-size: 12px !default; | ||
| 4 | +// $vxe-font-size-medium: 16px !default; | ||
| 5 | +// $vxe-font-size-small: 14px !default; | ||
| 6 | +// $vxe-font-size-mini: 12px !default; | ||
| 7 | +/*color*/ | ||
| 8 | +$vxe-primary-color: #409eff !default; | ||
| 9 | +$vxe-success-color: #67c23a !default; | ||
| 10 | +$vxe-info-color: #909399 !default; | ||
| 11 | +$vxe-warning-color: #e6a23c !default; | ||
| 12 | +$vxe-danger-color: #f56c6c !default; | ||
| 13 | +$vxe-disabled-color: #bfbfbf !default; | ||
| 14 | +$vxe-primary-disabled-color: #c0c4cc !default; | ||
| 15 | + | ||
| 16 | +@import 'vxe-table/styles/index.scss'; |
yudao-ui-admin-vue3/src/components/XTable/src/type.ts
0 → 100644
| 1 | +import { CrudSchema } from '@/hooks/web/useCrudSchemas' | ||
| 2 | +import type { VxeGridProps, VxeGridPropTypes, VxeTablePropTypes } from 'vxe-table' | ||
| 3 | + | ||
| 4 | +export type XTableProps<D = any> = VxeGridProps<D> & { | ||
| 5 | + allSchemas?: CrudSchema | ||
| 6 | + height?: number // 高度 默认730 | ||
| 7 | + topActionSlots?: boolean // 是否开启表格内顶部操作栏插槽 | ||
| 8 | + treeConfig?: VxeTablePropTypes.TreeConfig // 树形表单配置 | ||
| 9 | + isList?: boolean // 是否不带分页的list | ||
| 10 | + getListApi?: Function | ||
| 11 | + getAllListApi?: Function | ||
| 12 | + deleteApi?: Function | ||
| 13 | + exportListApi?: Function | ||
| 14 | + exportName?: string // 导出文件夹名称 | ||
| 15 | + params?: any | ||
| 16 | + pagination?: boolean | VxeGridPropTypes.PagerConfig | ||
| 17 | + toolBar?: boolean | VxeGridPropTypes.ToolbarConfig | ||
| 18 | + afterFetch?: Function | ||
| 19 | +} | ||
| 20 | +export type XColumns = VxeGridPropTypes.Columns | ||
| 21 | + | ||
| 22 | +export type VxeTableColumn = { | ||
| 23 | + field: string | ||
| 24 | + title?: string | ||
| 25 | + children?: VxeTableColumn[] | ||
| 26 | +} & Recordable |
yudao-ui-admin-vue3/src/components/index.ts
| @@ -4,6 +4,7 @@ import { Form } from '@/components/Form' | @@ -4,6 +4,7 @@ import { Form } from '@/components/Form' | ||
| 4 | import { Table } from '@/components/Table' | 4 | import { Table } from '@/components/Table' |
| 5 | import { Search } from '@/components/Search' | 5 | import { Search } from '@/components/Search' |
| 6 | import { XModal } from '@/components/XModal' | 6 | import { XModal } from '@/components/XModal' |
| 7 | +import { XTable } from '@/components/XTable' | ||
| 7 | import { XButton, XTextButton } from '@/components/XButton' | 8 | import { XButton, XTextButton } from '@/components/XButton' |
| 8 | import { DictTag } from '@/components/DictTag' | 9 | import { DictTag } from '@/components/DictTag' |
| 9 | import { ContentWrap } from '@/components/ContentWrap' | 10 | import { ContentWrap } from '@/components/ContentWrap' |
| @@ -15,6 +16,7 @@ export const setupGlobCom = (app: App<Element>): void => { | @@ -15,6 +16,7 @@ export const setupGlobCom = (app: App<Element>): void => { | ||
| 15 | app.component('Table', Table) | 16 | app.component('Table', Table) |
| 16 | app.component('Search', Search) | 17 | app.component('Search', Search) |
| 17 | app.component('XModal', XModal) | 18 | app.component('XModal', XModal) |
| 19 | + app.component('XTable', XTable) | ||
| 18 | app.component('XButton', XButton) | 20 | app.component('XButton', XButton) |
| 19 | app.component('XTextButton', XTextButton) | 21 | app.component('XTextButton', XTextButton) |
| 20 | app.component('DictTag', DictTag) | 22 | app.component('DictTag', DictTag) |
yudao-ui-admin-vue3/src/hooks/web/useXTable.ts
0 → 100644
| 1 | +import { ref, unref } from 'vue' | ||
| 2 | +import { XTableProps } from '@/components/XTable/src/type' | ||
| 3 | + | ||
| 4 | +export interface tableMethod { | ||
| 5 | + reload: () => void | ||
| 6 | + setProps: (props: XTableProps) => void | ||
| 7 | + deleteData: (ids: string | number) => void | ||
| 8 | + exportList: (fileName?: string) => void | ||
| 9 | +} | ||
| 10 | + | ||
| 11 | +export const useXTable = (props: XTableProps): [Function, tableMethod] => { | ||
| 12 | + const tableRef = ref<Nullable<tableMethod>>(null) | ||
| 13 | + | ||
| 14 | + const register = (instance) => { | ||
| 15 | + tableRef.value = instance | ||
| 16 | + props && instance.setProps(props) | ||
| 17 | + } | ||
| 18 | + const getInstance = (): tableMethod => { | ||
| 19 | + const table = unref(tableRef) | ||
| 20 | + if (!table) { | ||
| 21 | + console.error('表格实例不存在') | ||
| 22 | + } | ||
| 23 | + return table as tableMethod | ||
| 24 | + } | ||
| 25 | + const methods: tableMethod = { | ||
| 26 | + reload: () => getInstance().reload(), | ||
| 27 | + setProps: (props) => getInstance().setProps(props), | ||
| 28 | + deleteData: (ids: string | number) => getInstance().deleteData(ids), | ||
| 29 | + exportList: (fileName?: string) => getInstance().exportList(fileName) | ||
| 30 | + } | ||
| 31 | + return [register, methods] | ||
| 32 | +} |
yudao-ui-admin-vue3/src/plugins/vxeTable/index.ts
| 1 | -import { App, unref, watch } from 'vue' | 1 | +import { App, unref } from 'vue' |
| 2 | import XEUtils from 'xe-utils' | 2 | import XEUtils from 'xe-utils' |
| 3 | -import './index.scss' | ||
| 4 | import './renderer' | 3 | import './renderer' |
| 5 | import { i18n } from '@/plugins/vueI18n' | 4 | import { i18n } from '@/plugins/vueI18n' |
| 6 | -import { useAppStore } from '@/store/modules/app' | ||
| 7 | import zhCN from 'vxe-table/lib/locale/lang/zh-CN' | 5 | import zhCN from 'vxe-table/lib/locale/lang/zh-CN' |
| 8 | import enUS from 'vxe-table/lib/locale/lang/en-US' | 6 | import enUS from 'vxe-table/lib/locale/lang/en-US' |
| 9 | import { | 7 | import { |
| @@ -46,21 +44,6 @@ import { | @@ -46,21 +44,6 @@ import { | ||
| 46 | Table | 44 | Table |
| 47 | } from 'vxe-table' | 45 | } from 'vxe-table' |
| 48 | 46 | ||
| 49 | -const appStore = useAppStore() | ||
| 50 | -watch( | ||
| 51 | - () => appStore.getIsDark, | ||
| 52 | - () => { | ||
| 53 | - if (appStore.getIsDark) { | ||
| 54 | - import('./theme/dark.scss') | ||
| 55 | - } else { | ||
| 56 | - import('./theme/light.scss') | ||
| 57 | - } | ||
| 58 | - }, | ||
| 59 | - { | ||
| 60 | - deep: true, | ||
| 61 | - immediate: true | ||
| 62 | - } | ||
| 63 | -) | ||
| 64 | // 全局默认参数 | 47 | // 全局默认参数 |
| 65 | VXETable.setup({ | 48 | VXETable.setup({ |
| 66 | size: 'medium', // 全局尺寸 | 49 | size: 'medium', // 全局尺寸 |
yudao-ui-admin-vue3/src/views/infra/apiAccessLog/index.vue
| 1 | <template> | 1 | <template> |
| 2 | <ContentWrap> | 2 | <ContentWrap> |
| 3 | <!-- 列表 --> | 3 | <!-- 列表 --> |
| 4 | - <vxe-grid ref="xGrid" v-bind="gridOptions" class="xtable-scrollbar"> | 4 | + <XTable @register="registerTable"> |
| 5 | <template #duration_default="{ row }"> | 5 | <template #duration_default="{ row }"> |
| 6 | <span>{{ row.duration + 'ms' }}</span> | 6 | <span>{{ row.duration + 'ms' }}</span> |
| 7 | </template> | 7 | </template> |
| @@ -17,7 +17,7 @@ | @@ -17,7 +17,7 @@ | ||
| 17 | @click="handleDetail(row)" | 17 | @click="handleDetail(row)" |
| 18 | /> | 18 | /> |
| 19 | </template> | 19 | </template> |
| 20 | - </vxe-grid> | 20 | + </XTable> |
| 21 | </ContentWrap> | 21 | </ContentWrap> |
| 22 | <XModal v-model="dialogVisible" :title="dialogTitle"> | 22 | <XModal v-model="dialogVisible" :title="dialogTitle"> |
| 23 | <!-- 对话框(详情) --> | 23 | <!-- 对话框(详情) --> |
| @@ -38,15 +38,14 @@ | @@ -38,15 +38,14 @@ | ||
| 38 | <script setup lang="ts" name="ApiAccessLog"> | 38 | <script setup lang="ts" name="ApiAccessLog"> |
| 39 | import { ref } from 'vue' | 39 | import { ref } from 'vue' |
| 40 | import { useI18n } from '@/hooks/web/useI18n' | 40 | import { useI18n } from '@/hooks/web/useI18n' |
| 41 | -import { useVxeGrid } from '@/hooks/web/useVxeGrid' | ||
| 42 | -import { VxeGridInstance } from 'vxe-table' | 41 | +import { useXTable } from '@/hooks/web/useXTable' |
| 43 | import { allSchemas } from './apiAccessLog.data' | 42 | import { allSchemas } from './apiAccessLog.data' |
| 44 | import * as ApiAccessLogApi from '@/api/infra/apiAccessLog' | 43 | import * as ApiAccessLogApi from '@/api/infra/apiAccessLog' |
| 44 | + | ||
| 45 | const { t } = useI18n() // 国际化 | 45 | const { t } = useI18n() // 国际化 |
| 46 | 46 | ||
| 47 | // 列表相关的变量 | 47 | // 列表相关的变量 |
| 48 | -const xGrid = ref<VxeGridInstance>() // 列表 Grid Ref | ||
| 49 | -const { gridOptions } = useVxeGrid<ApiAccessLogApi.ApiAccessLogVO>({ | 48 | +const [registerTable] = useXTable({ |
| 50 | allSchemas: allSchemas, | 49 | allSchemas: allSchemas, |
| 51 | topActionSlots: false, | 50 | topActionSlots: false, |
| 52 | getListApi: ApiAccessLogApi.getApiAccessLogPageApi | 51 | getListApi: ApiAccessLogApi.getApiAccessLogPageApi |
yudao-ui-admin-vue3/src/views/infra/apiErrorLog/index.vue
| 1 | <template> | 1 | <template> |
| 2 | <ContentWrap> | 2 | <ContentWrap> |
| 3 | <!-- 列表 --> | 3 | <!-- 列表 --> |
| 4 | - <vxe-grid ref="xGrid" v-bind="gridOptions" class="xtable-scrollbar"> | 4 | + <XTable @register="registerTable"> |
| 5 | <!-- 操作:导出 --> | 5 | <!-- 操作:导出 --> |
| 6 | <template #toolbar_buttons> | 6 | <template #toolbar_buttons> |
| 7 | <XButton | 7 | <XButton |
| @@ -40,7 +40,7 @@ | @@ -40,7 +40,7 @@ | ||
| 40 | @click="handleProcessClick(row, InfraApiErrorLogProcessStatusEnum.IGNORE, '已忽略')" | 40 | @click="handleProcessClick(row, InfraApiErrorLogProcessStatusEnum.IGNORE, '已忽略')" |
| 41 | /> | 41 | /> |
| 42 | </template> | 42 | </template> |
| 43 | - </vxe-grid> | 43 | + </XTable> |
| 44 | </ContentWrap> | 44 | </ContentWrap> |
| 45 | <XModal v-model="dialogVisible" :title="dialogTitle"> | 45 | <XModal v-model="dialogVisible" :title="dialogTitle"> |
| 46 | <!-- 对话框(详情) --> | 46 | <!-- 对话框(详情) --> |
| @@ -54,18 +54,17 @@ | @@ -54,18 +54,17 @@ | ||
| 54 | <script setup lang="ts" name="ApiErrorLog"> | 54 | <script setup lang="ts" name="ApiErrorLog"> |
| 55 | import { ref } from 'vue' | 55 | import { ref } from 'vue' |
| 56 | import { useI18n } from '@/hooks/web/useI18n' | 56 | import { useI18n } from '@/hooks/web/useI18n' |
| 57 | -import { useVxeGrid } from '@/hooks/web/useVxeGrid' | ||
| 58 | -import { VxeGridInstance } from 'vxe-table' | 57 | +import { useXTable } from '@/hooks/web/useXTable' |
| 59 | import { allSchemas } from './apiErrorLog.data' | 58 | import { allSchemas } from './apiErrorLog.data' |
| 60 | import * as ApiErrorLogApi from '@/api/infra/apiErrorLog' | 59 | import * as ApiErrorLogApi from '@/api/infra/apiErrorLog' |
| 61 | import { InfraApiErrorLogProcessStatusEnum } from '@/utils/constants' | 60 | import { InfraApiErrorLogProcessStatusEnum } from '@/utils/constants' |
| 62 | import { useMessage } from '@/hooks/web/useMessage' | 61 | import { useMessage } from '@/hooks/web/useMessage' |
| 63 | -const message = useMessage() | 62 | + |
| 64 | const { t } = useI18n() // 国际化 | 63 | const { t } = useI18n() // 国际化 |
| 64 | +const message = useMessage() | ||
| 65 | 65 | ||
| 66 | // ========== 列表相关 ========== | 66 | // ========== 列表相关 ========== |
| 67 | -const xGrid = ref<VxeGridInstance>() // 列表 Grid Ref | ||
| 68 | -const { gridOptions, getList, exportList } = useVxeGrid<ApiErrorLogApi.ApiErrorLogVO>({ | 67 | +const [registerTable, { reload, exportList }] = useXTable({ |
| 69 | allSchemas: allSchemas, | 68 | allSchemas: allSchemas, |
| 70 | getListApi: ApiErrorLogApi.getApiErrorLogPageApi, | 69 | getListApi: ApiErrorLogApi.getApiErrorLogPageApi, |
| 71 | exportListApi: ApiErrorLogApi.exportApiErrorLogApi | 70 | exportListApi: ApiErrorLogApi.exportApiErrorLogApi |
| @@ -84,7 +83,7 @@ const handleDetail = (row: ApiErrorLogApi.ApiErrorLogVO) => { | @@ -84,7 +83,7 @@ const handleDetail = (row: ApiErrorLogApi.ApiErrorLogVO) => { | ||
| 84 | } | 83 | } |
| 85 | // 导出 | 84 | // 导出 |
| 86 | const handleExport = async () => { | 85 | const handleExport = async () => { |
| 87 | - await exportList(xGrid, '错误数据.xls') | 86 | + await exportList('错误数据.xls') |
| 88 | } | 87 | } |
| 89 | // 异常处理操作 | 88 | // 异常处理操作 |
| 90 | const handleProcessClick = ( | 89 | const handleProcessClick = ( |
| @@ -100,7 +99,7 @@ const handleProcessClick = ( | @@ -100,7 +99,7 @@ const handleProcessClick = ( | ||
| 100 | }) | 99 | }) |
| 101 | .finally(async () => { | 100 | .finally(async () => { |
| 102 | // 刷新列表 | 101 | // 刷新列表 |
| 103 | - await getList(xGrid) | 102 | + await reload() |
| 104 | }) | 103 | }) |
| 105 | .catch(() => {}) | 104 | .catch(() => {}) |
| 106 | } | 105 | } |
yudao-ui-admin-vue3/src/views/infra/codegen/index.vue
| 1 | <template> | 1 | <template> |
| 2 | <ContentWrap> | 2 | <ContentWrap> |
| 3 | <!-- 列表 --> | 3 | <!-- 列表 --> |
| 4 | - <vxe-grid ref="xGrid" v-bind="gridOptions" class="xtable-scrollbar"> | 4 | + <XTable @register="registerTable"> |
| 5 | <template #toolbar_buttons> | 5 | <template #toolbar_buttons> |
| 6 | <!-- 操作:导入 --> | 6 | <!-- 操作:导入 --> |
| 7 | <XButton | 7 | <XButton |
| @@ -49,7 +49,7 @@ | @@ -49,7 +49,7 @@ | ||
| 49 | @click="handleGenTable(row)" | 49 | @click="handleGenTable(row)" |
| 50 | /> | 50 | /> |
| 51 | </template> | 51 | </template> |
| 52 | - </vxe-grid> | 52 | + </XTable> |
| 53 | </ContentWrap> | 53 | </ContentWrap> |
| 54 | <!-- 弹窗:导入表 --> | 54 | <!-- 弹窗:导入表 --> |
| 55 | <ImportTable ref="importRef" @ok="handleQuery()" /> | 55 | <ImportTable ref="importRef" @ok="handleQuery()" /> |
| @@ -59,10 +59,9 @@ | @@ -59,10 +59,9 @@ | ||
| 59 | <script setup lang="ts" name="Codegen"> | 59 | <script setup lang="ts" name="Codegen"> |
| 60 | import { ref } from 'vue' | 60 | import { ref } from 'vue' |
| 61 | import { useRouter } from 'vue-router' | 61 | import { useRouter } from 'vue-router' |
| 62 | -import { VxeGridInstance } from 'vxe-table' | ||
| 63 | import { useI18n } from '@/hooks/web/useI18n' | 62 | import { useI18n } from '@/hooks/web/useI18n' |
| 64 | import { useMessage } from '@/hooks/web/useMessage' | 63 | import { useMessage } from '@/hooks/web/useMessage' |
| 65 | -import { useVxeGrid } from '@/hooks/web/useVxeGrid' | 64 | +import { useXTable } from '@/hooks/web/useXTable' |
| 66 | import download from '@/utils/download' | 65 | import download from '@/utils/download' |
| 67 | import * as CodegenApi from '@/api/infra/codegen' | 66 | import * as CodegenApi from '@/api/infra/codegen' |
| 68 | import { CodegenTableVO } from '@/api/infra/codegen/types' | 67 | import { CodegenTableVO } from '@/api/infra/codegen/types' |
| @@ -73,8 +72,7 @@ const { t } = useI18n() // 国际化 | @@ -73,8 +72,7 @@ const { t } = useI18n() // 国际化 | ||
| 73 | const message = useMessage() // 消息弹窗 | 72 | const message = useMessage() // 消息弹窗 |
| 74 | const { push } = useRouter() // 路由跳转 | 73 | const { push } = useRouter() // 路由跳转 |
| 75 | // 列表相关的变量 | 74 | // 列表相关的变量 |
| 76 | -const xGrid = ref<VxeGridInstance>() // 列表 Grid Ref | ||
| 77 | -const { gridOptions, getList, deleteData } = useVxeGrid<CodegenTableVO>({ | 75 | +const [registerTable, { reload, deleteData }] = useXTable({ |
| 78 | allSchemas: allSchemas, | 76 | allSchemas: allSchemas, |
| 79 | getListApi: CodegenApi.getCodegenTablePageApi, | 77 | getListApi: CodegenApi.getCodegenTablePageApi, |
| 80 | deleteApi: CodegenApi.deleteCodegenTableApi | 78 | deleteApi: CodegenApi.deleteCodegenTableApi |
| @@ -112,10 +110,10 @@ const handleGenTable = async (row: CodegenTableVO) => { | @@ -112,10 +110,10 @@ const handleGenTable = async (row: CodegenTableVO) => { | ||
| 112 | } | 110 | } |
| 113 | // 删除操作 | 111 | // 删除操作 |
| 114 | const handleDelete = async (rowId: number) => { | 112 | const handleDelete = async (rowId: number) => { |
| 115 | - await deleteData(xGrid, rowId) | 113 | + await deleteData(rowId) |
| 116 | } | 114 | } |
| 117 | // 查询操作 | 115 | // 查询操作 |
| 118 | const handleQuery = async () => { | 116 | const handleQuery = async () => { |
| 119 | - await getList(xGrid) | 117 | + await reload() |
| 120 | } | 118 | } |
| 121 | </script> | 119 | </script> |
yudao-ui-admin-vue3/src/views/infra/config/index.vue
| 1 | <template> | 1 | <template> |
| 2 | <ContentWrap> | 2 | <ContentWrap> |
| 3 | <!-- 列表 --> | 3 | <!-- 列表 --> |
| 4 | - <vxe-grid ref="xGrid" v-bind="gridOptions" class="xtable-scrollbar"> | 4 | + <XTable @register="registerTable"> |
| 5 | <template #toolbar_buttons> | 5 | <template #toolbar_buttons> |
| 6 | <!-- 操作:新增 --> | 6 | <!-- 操作:新增 --> |
| 7 | <XButton | 7 | <XButton |
| @@ -46,7 +46,7 @@ | @@ -46,7 +46,7 @@ | ||
| 46 | @click="handleDelete(row.id)" | 46 | @click="handleDelete(row.id)" |
| 47 | /> | 47 | /> |
| 48 | </template> | 48 | </template> |
| 49 | - </vxe-grid> | 49 | + </XTable> |
| 50 | </ContentWrap> | 50 | </ContentWrap> |
| 51 | 51 | ||
| 52 | <XModal v-model="dialogVisible" :title="dialogTitle"> | 52 | <XModal v-model="dialogVisible" :title="dialogTitle"> |
| @@ -87,8 +87,7 @@ | @@ -87,8 +87,7 @@ | ||
| 87 | import { ref, unref } from 'vue' | 87 | import { ref, unref } from 'vue' |
| 88 | import { useI18n } from '@/hooks/web/useI18n' | 88 | import { useI18n } from '@/hooks/web/useI18n' |
| 89 | import { useMessage } from '@/hooks/web/useMessage' | 89 | import { useMessage } from '@/hooks/web/useMessage' |
| 90 | -import { useVxeGrid } from '@/hooks/web/useVxeGrid' | ||
| 91 | -import { VxeGridInstance } from 'vxe-table' | 90 | +import { useXTable } from '@/hooks/web/useXTable' |
| 92 | import { FormExpose } from '@/components/Form' | 91 | import { FormExpose } from '@/components/Form' |
| 93 | // 业务相关的 import | 92 | // 业务相关的 import |
| 94 | import * as ConfigApi from '@/api/infra/config' | 93 | import * as ConfigApi from '@/api/infra/config' |
| @@ -97,8 +96,7 @@ import { rules, allSchemas } from './config.data' | @@ -97,8 +96,7 @@ import { rules, allSchemas } from './config.data' | ||
| 97 | const { t } = useI18n() // 国际化 | 96 | const { t } = useI18n() // 国际化 |
| 98 | const message = useMessage() // 消息弹窗 | 97 | const message = useMessage() // 消息弹窗 |
| 99 | // 列表相关的变量 | 98 | // 列表相关的变量 |
| 100 | -const xGrid = ref<VxeGridInstance>() // 列表 Grid Ref | ||
| 101 | -const { gridOptions, getList, deleteData, exportList } = useVxeGrid<ConfigApi.ConfigVO>({ | 99 | +const [registerTable, { reload, deleteData, exportList }] = useXTable({ |
| 102 | allSchemas: allSchemas, | 100 | allSchemas: allSchemas, |
| 103 | getListApi: ConfigApi.getConfigPageApi, | 101 | getListApi: ConfigApi.getConfigPageApi, |
| 104 | deleteApi: ConfigApi.deleteConfigApi, | 102 | deleteApi: ConfigApi.deleteConfigApi, |
| @@ -127,7 +125,7 @@ const handleCreate = () => { | @@ -127,7 +125,7 @@ const handleCreate = () => { | ||
| 127 | 125 | ||
| 128 | // 导出操作 | 126 | // 导出操作 |
| 129 | const handleExport = async () => { | 127 | const handleExport = async () => { |
| 130 | - await exportList(xGrid, '配置.xls') | 128 | + await exportList('配置.xls') |
| 131 | } | 129 | } |
| 132 | 130 | ||
| 133 | // 修改操作 | 131 | // 修改操作 |
| @@ -147,7 +145,7 @@ const handleDetail = async (rowId: number) => { | @@ -147,7 +145,7 @@ const handleDetail = async (rowId: number) => { | ||
| 147 | 145 | ||
| 148 | // 删除操作 | 146 | // 删除操作 |
| 149 | const handleDelete = async (rowId: number) => { | 147 | const handleDelete = async (rowId: number) => { |
| 150 | - await deleteData(xGrid, rowId) | 148 | + await deleteData(rowId) |
| 151 | } | 149 | } |
| 152 | 150 | ||
| 153 | // 提交按钮 | 151 | // 提交按钮 |
| @@ -171,7 +169,7 @@ const submitForm = async () => { | @@ -171,7 +169,7 @@ const submitForm = async () => { | ||
| 171 | } finally { | 169 | } finally { |
| 172 | actionLoading.value = false | 170 | actionLoading.value = false |
| 173 | // 刷新列表 | 171 | // 刷新列表 |
| 174 | - await getList(xGrid) | 172 | + await reload() |
| 175 | } | 173 | } |
| 176 | } | 174 | } |
| 177 | }) | 175 | }) |
yudao-ui-admin-vue3/src/views/infra/dataSourceConfig/index.vue
| 1 | <template> | 1 | <template> |
| 2 | <ContentWrap> | 2 | <ContentWrap> |
| 3 | <!-- 列表 --> | 3 | <!-- 列表 --> |
| 4 | - <vxe-grid ref="xGrid" v-bind="gridOptions" class="xtable-scrollbar"> | 4 | + <XTable @register="registerTable"> |
| 5 | <template #toolbar_buttons> | 5 | <template #toolbar_buttons> |
| 6 | <XButton | 6 | <XButton |
| 7 | type="primary" | 7 | type="primary" |
| @@ -34,7 +34,7 @@ | @@ -34,7 +34,7 @@ | ||
| 34 | @click="handleDelete(row.id)" | 34 | @click="handleDelete(row.id)" |
| 35 | /> | 35 | /> |
| 36 | </template> | 36 | </template> |
| 37 | - </vxe-grid> | 37 | + </XTable> |
| 38 | </ContentWrap> | 38 | </ContentWrap> |
| 39 | <XModal v-model="dialogVisible" :title="dialogTitle"> | 39 | <XModal v-model="dialogVisible" :title="dialogTitle"> |
| 40 | <!-- 对话框(添加 / 修改) --> | 40 | <!-- 对话框(添加 / 修改) --> |
| @@ -69,9 +69,8 @@ | @@ -69,9 +69,8 @@ | ||
| 69 | // 全局相关的 import | 69 | // 全局相关的 import |
| 70 | import { ref, unref } from 'vue' | 70 | import { ref, unref } from 'vue' |
| 71 | import { useI18n } from '@/hooks/web/useI18n' | 71 | import { useI18n } from '@/hooks/web/useI18n' |
| 72 | +import { useXTable } from '@/hooks/web/useXTable' | ||
| 72 | import { useMessage } from '@/hooks/web/useMessage' | 73 | import { useMessage } from '@/hooks/web/useMessage' |
| 73 | -import { useVxeGrid } from '@/hooks/web/useVxeGrid' | ||
| 74 | -import { VxeGridInstance } from 'vxe-table' | ||
| 75 | import { FormExpose } from '@/components/Form' | 74 | import { FormExpose } from '@/components/Form' |
| 76 | // 业务相关的 import | 75 | // 业务相关的 import |
| 77 | import * as DataSourceConfiggApi from '@/api/infra/dataSourceConfig' | 76 | import * as DataSourceConfiggApi from '@/api/infra/dataSourceConfig' |
| @@ -80,8 +79,7 @@ import { rules, allSchemas } from './dataSourceConfig.data' | @@ -80,8 +79,7 @@ import { rules, allSchemas } from './dataSourceConfig.data' | ||
| 80 | const { t } = useI18n() // 国际化 | 79 | const { t } = useI18n() // 国际化 |
| 81 | const message = useMessage() // 消息弹窗 | 80 | const message = useMessage() // 消息弹窗 |
| 82 | // 列表相关的变量 | 81 | // 列表相关的变量 |
| 83 | -const xGrid = ref<VxeGridInstance>() // 列表 Grid Ref | ||
| 84 | -const { gridOptions, getList, deleteData } = useVxeGrid<DataSourceConfiggApi.DataSourceConfigVO>({ | 82 | +const [registerTable, { reload, deleteData }] = useXTable({ |
| 85 | allSchemas: allSchemas, | 83 | allSchemas: allSchemas, |
| 86 | isList: true, | 84 | isList: true, |
| 87 | getListApi: DataSourceConfiggApi.getDataSourceConfigListApi, | 85 | getListApi: DataSourceConfiggApi.getDataSourceConfigListApi, |
| @@ -125,7 +123,7 @@ const handleDetail = async (rowId: number) => { | @@ -125,7 +123,7 @@ const handleDetail = async (rowId: number) => { | ||
| 125 | 123 | ||
| 126 | // 删除操作 | 124 | // 删除操作 |
| 127 | const handleDelete = async (rowId: number) => { | 125 | const handleDelete = async (rowId: number) => { |
| 128 | - await deleteData(xGrid, rowId) | 126 | + await deleteData(rowId) |
| 129 | } | 127 | } |
| 130 | 128 | ||
| 131 | // 提交按钮 | 129 | // 提交按钮 |
| @@ -149,7 +147,7 @@ const submitForm = async () => { | @@ -149,7 +147,7 @@ const submitForm = async () => { | ||
| 149 | } finally { | 147 | } finally { |
| 150 | loading.value = false | 148 | loading.value = false |
| 151 | // 刷新列表 | 149 | // 刷新列表 |
| 152 | - await getList(xGrid) | 150 | + await reload() |
| 153 | } | 151 | } |
| 154 | } | 152 | } |
| 155 | }) | 153 | }) |
yudao-ui-admin-vue3/src/views/infra/fileConfig/index.vue
| 1 | <template> | 1 | <template> |
| 2 | <ContentWrap> | 2 | <ContentWrap> |
| 3 | <!-- 列表 --> | 3 | <!-- 列表 --> |
| 4 | - <vxe-grid ref="xGrid" v-bind="gridOptions" class="xtable-scrollbar"> | 4 | + <XTable @register="registerTable"> |
| 5 | <template #toolbar_buttons> | 5 | <template #toolbar_buttons> |
| 6 | <!-- 操作:新增 --> | 6 | <!-- 操作:新增 --> |
| 7 | <XButton | 7 | <XButton |
| @@ -44,7 +44,7 @@ | @@ -44,7 +44,7 @@ | ||
| 44 | @click="handleDelete(row.id)" | 44 | @click="handleDelete(row.id)" |
| 45 | /> | 45 | /> |
| 46 | </template> | 46 | </template> |
| 47 | - </vxe-grid> | 47 | + </XTable> |
| 48 | </ContentWrap> | 48 | </ContentWrap> |
| 49 | <XModal v-model="dialogVisible" :title="dialogTitle"> | 49 | <XModal v-model="dialogVisible" :title="dialogTitle"> |
| 50 | <!-- 对话框(添加 / 修改) --> | 50 | <!-- 对话框(添加 / 修改) --> |
| @@ -173,8 +173,7 @@ import { | @@ -173,8 +173,7 @@ import { | ||
| 173 | } from 'element-plus' | 173 | } from 'element-plus' |
| 174 | import { useI18n } from '@/hooks/web/useI18n' | 174 | import { useI18n } from '@/hooks/web/useI18n' |
| 175 | import { useMessage } from '@/hooks/web/useMessage' | 175 | import { useMessage } from '@/hooks/web/useMessage' |
| 176 | -import { useVxeGrid } from '@/hooks/web/useVxeGrid' | ||
| 177 | -import { VxeGridInstance } from 'vxe-table' | 176 | +import { useXTable } from '@/hooks/web/useXTable' |
| 178 | // 业务相关的 import | 177 | // 业务相关的 import |
| 179 | import * as FileConfigApi from '@/api/infra/fileConfig' | 178 | import * as FileConfigApi from '@/api/infra/fileConfig' |
| 180 | import { rules, allSchemas } from './fileConfig.data' | 179 | import { rules, allSchemas } from './fileConfig.data' |
| @@ -183,8 +182,7 @@ import { getIntDictOptions, DICT_TYPE } from '@/utils/dict' | @@ -183,8 +182,7 @@ import { getIntDictOptions, DICT_TYPE } from '@/utils/dict' | ||
| 183 | const { t } = useI18n() // 国际化 | 182 | const { t } = useI18n() // 国际化 |
| 184 | const message = useMessage() // 消息弹窗 | 183 | const message = useMessage() // 消息弹窗 |
| 185 | // 列表相关的变量 | 184 | // 列表相关的变量 |
| 186 | -const xGrid = ref<VxeGridInstance>() // 列表 Grid Ref | ||
| 187 | -const { gridOptions, getList, deleteData } = useVxeGrid<FileConfigApi.FileConfigVO>({ | 185 | +const [registerTable, { reload, deleteData }] = useXTable({ |
| 188 | allSchemas: allSchemas, | 186 | allSchemas: allSchemas, |
| 189 | getListApi: FileConfigApi.getFileConfigPageApi, | 187 | getListApi: FileConfigApi.getFileConfigPageApi, |
| 190 | deleteApi: FileConfigApi.deleteFileConfigApi | 188 | deleteApi: FileConfigApi.deleteFileConfigApi |
| @@ -276,7 +274,7 @@ const handleMaster = (row: FileConfigApi.FileConfigVO) => { | @@ -276,7 +274,7 @@ const handleMaster = (row: FileConfigApi.FileConfigVO) => { | ||
| 276 | .confirm('是否确认修改配置【 ' + row.name + ' 】为主配置?', t('common.reminder')) | 274 | .confirm('是否确认修改配置【 ' + row.name + ' 】为主配置?', t('common.reminder')) |
| 277 | .then(async () => { | 275 | .then(async () => { |
| 278 | await FileConfigApi.updateFileConfigMasterApi(row.id) | 276 | await FileConfigApi.updateFileConfigMasterApi(row.id) |
| 279 | - await getList(xGrid) | 277 | + await reload() |
| 280 | }) | 278 | }) |
| 281 | } | 279 | } |
| 282 | 280 | ||
| @@ -287,7 +285,7 @@ const handleTest = async (rowId: number) => { | @@ -287,7 +285,7 @@ const handleTest = async (rowId: number) => { | ||
| 287 | 285 | ||
| 288 | // 删除操作 | 286 | // 删除操作 |
| 289 | const handleDelete = async (rowId: number) => { | 287 | const handleDelete = async (rowId: number) => { |
| 290 | - await deleteData(xGrid, rowId) | 288 | + await deleteData(rowId) |
| 291 | } | 289 | } |
| 292 | 290 | ||
| 293 | // 提交按钮 | 291 | // 提交按钮 |
| @@ -308,7 +306,7 @@ const submitForm = async (formEl: FormInstance | undefined) => { | @@ -308,7 +306,7 @@ const submitForm = async (formEl: FormInstance | undefined) => { | ||
| 308 | dialogVisible.value = false | 306 | dialogVisible.value = false |
| 309 | } finally { | 307 | } finally { |
| 310 | actionLoading.value = false | 308 | actionLoading.value = false |
| 311 | - await getList(xGrid) | 309 | + await reload() |
| 312 | } | 310 | } |
| 313 | } | 311 | } |
| 314 | }) | 312 | }) |
yudao-ui-admin-vue3/src/views/infra/fileList/index.vue
| 1 | <template> | 1 | <template> |
| 2 | <ContentWrap> | 2 | <ContentWrap> |
| 3 | <!-- 列表 --> | 3 | <!-- 列表 --> |
| 4 | - <vxe-grid ref="xGrid" v-bind="gridOptions" class="xtable-scrollbar"> | 4 | + <XTable @register="registerTable"> |
| 5 | <template #toolbar_buttons> | 5 | <template #toolbar_buttons> |
| 6 | <XButton | 6 | <XButton |
| 7 | type="primary" | 7 | type="primary" |
| @@ -24,7 +24,7 @@ | @@ -24,7 +24,7 @@ | ||
| 24 | @click="handleDelete(row.id)" | 24 | @click="handleDelete(row.id)" |
| 25 | /> | 25 | /> |
| 26 | </template> | 26 | </template> |
| 27 | - </vxe-grid> | 27 | + </XTable> |
| 28 | </ContentWrap> | 28 | </ContentWrap> |
| 29 | <XModal v-model="dialogVisible" :title="dialogTitle"> | 29 | <XModal v-model="dialogVisible" :title="dialogTitle"> |
| 30 | <!-- 对话框(详情) --> | 30 | <!-- 对话框(详情) --> |
| @@ -85,8 +85,7 @@ | @@ -85,8 +85,7 @@ | ||
| 85 | import { ref, unref } from 'vue' | 85 | import { ref, unref } from 'vue' |
| 86 | import { useI18n } from '@/hooks/web/useI18n' | 86 | import { useI18n } from '@/hooks/web/useI18n' |
| 87 | import { useMessage } from '@/hooks/web/useMessage' | 87 | import { useMessage } from '@/hooks/web/useMessage' |
| 88 | -import { useVxeGrid } from '@/hooks/web/useVxeGrid' | ||
| 89 | -import { VxeGridInstance } from 'vxe-table' | 88 | +import { useXTable } from '@/hooks/web/useXTable' |
| 90 | import { ElUpload, ElImage, UploadInstance, UploadRawFile } from 'element-plus' | 89 | import { ElUpload, ElImage, UploadInstance, UploadRawFile } from 'element-plus' |
| 91 | // 业务相关的 import | 90 | // 业务相关的 import |
| 92 | import { allSchemas } from './fileList.data' | 91 | import { allSchemas } from './fileList.data' |
| @@ -98,8 +97,7 @@ const { t } = useI18n() // 国际化 | @@ -98,8 +97,7 @@ const { t } = useI18n() // 国际化 | ||
| 98 | const message = useMessage() // 消息弹窗 | 97 | const message = useMessage() // 消息弹窗 |
| 99 | 98 | ||
| 100 | // 列表相关的变量 | 99 | // 列表相关的变量 |
| 101 | -const xGrid = ref<VxeGridInstance>() // 列表 Grid Ref | ||
| 102 | -const { gridOptions, getList, deleteData } = useVxeGrid<FileApi.FileVO>({ | 100 | +const [registerTable, { reload, deleteData }] = useXTable({ |
| 103 | allSchemas: allSchemas, | 101 | allSchemas: allSchemas, |
| 104 | getListApi: FileApi.getFilePageApi, | 102 | getListApi: FileApi.getFilePageApi, |
| 105 | deleteApi: FileApi.deleteFileApi | 103 | deleteApi: FileApi.deleteFileApi |
| @@ -145,7 +143,7 @@ const handleFileSuccess = async (response: any): Promise<void> => { | @@ -145,7 +143,7 @@ const handleFileSuccess = async (response: any): Promise<void> => { | ||
| 145 | message.success('上传成功') | 143 | message.success('上传成功') |
| 146 | uploadDialogVisible.value = false | 144 | uploadDialogVisible.value = false |
| 147 | uploadDisabled.value = false | 145 | uploadDisabled.value = false |
| 148 | - await getList(xGrid) | 146 | + await reload() |
| 149 | } | 147 | } |
| 150 | // 文件数超出提示 | 148 | // 文件数超出提示 |
| 151 | const handleExceed = (): void => { | 149 | const handleExceed = (): void => { |
| @@ -166,7 +164,7 @@ const handleDetail = (row: FileApi.FileVO) => { | @@ -166,7 +164,7 @@ const handleDetail = (row: FileApi.FileVO) => { | ||
| 166 | 164 | ||
| 167 | // 删除操作 | 165 | // 删除操作 |
| 168 | const handleDelete = async (rowId: number) => { | 166 | const handleDelete = async (rowId: number) => { |
| 169 | - await deleteData(xGrid, rowId) | 167 | + await deleteData(rowId) |
| 170 | } | 168 | } |
| 171 | 169 | ||
| 172 | // ========== 复制相关 ========== | 170 | // ========== 复制相关 ========== |
yudao-ui-admin-vue3/src/views/infra/job/JobLog.vue
| 1 | <template> | 1 | <template> |
| 2 | <ContentWrap> | 2 | <ContentWrap> |
| 3 | <!-- 列表 --> | 3 | <!-- 列表 --> |
| 4 | - <vxe-grid ref="xGrid" v-bind="gridOptions" class="xtable-scrollbar"> | 4 | + <XTable @register="registerTable"> |
| 5 | <template #toolbar_buttons> | 5 | <template #toolbar_buttons> |
| 6 | <XButton | 6 | <XButton |
| 7 | type="warning" | 7 | type="warning" |
| @@ -29,7 +29,7 @@ | @@ -29,7 +29,7 @@ | ||
| 29 | @click="handleDetail(row)" | 29 | @click="handleDetail(row)" |
| 30 | /> | 30 | /> |
| 31 | </template> | 31 | </template> |
| 32 | - </vxe-grid> | 32 | + </XTable> |
| 33 | </ContentWrap> | 33 | </ContentWrap> |
| 34 | <XModal v-model="dialogVisible" :title="dialogTitle"> | 34 | <XModal v-model="dialogVisible" :title="dialogTitle"> |
| 35 | <!-- 对话框(详情) --> | 35 | <!-- 对话框(详情) --> |
| @@ -51,15 +51,13 @@ | @@ -51,15 +51,13 @@ | ||
| 51 | import { ref } from 'vue' | 51 | import { ref } from 'vue' |
| 52 | import dayjs from 'dayjs' | 52 | import dayjs from 'dayjs' |
| 53 | import { useI18n } from '@/hooks/web/useI18n' | 53 | import { useI18n } from '@/hooks/web/useI18n' |
| 54 | -import { useVxeGrid } from '@/hooks/web/useVxeGrid' | ||
| 55 | -import { VxeGridInstance } from 'vxe-table' | 54 | +import { useXTable } from '@/hooks/web/useXTable' |
| 56 | import * as JobLogApi from '@/api/infra/jobLog' | 55 | import * as JobLogApi from '@/api/infra/jobLog' |
| 57 | import { allSchemas } from './jobLog.data' | 56 | import { allSchemas } from './jobLog.data' |
| 58 | 57 | ||
| 59 | const { t } = useI18n() // 国际化 | 58 | const { t } = useI18n() // 国际化 |
| 60 | // 列表相关的变量 | 59 | // 列表相关的变量 |
| 61 | -const xGrid = ref<VxeGridInstance>() // 列表 Grid Ref | ||
| 62 | -const { gridOptions, exportList } = useVxeGrid<JobLogApi.JobLogVO>({ | 60 | +const [registerTable, { exportList }] = useXTable({ |
| 63 | allSchemas: allSchemas, | 61 | allSchemas: allSchemas, |
| 64 | getListApi: JobLogApi.getJobLogPageApi, | 62 | getListApi: JobLogApi.getJobLogPageApi, |
| 65 | exportListApi: JobLogApi.exportJobLogApi | 63 | exportListApi: JobLogApi.exportJobLogApi |
| @@ -81,6 +79,6 @@ const handleDetail = async (row: JobLogApi.JobLogVO) => { | @@ -81,6 +79,6 @@ const handleDetail = async (row: JobLogApi.JobLogVO) => { | ||
| 81 | } | 79 | } |
| 82 | // 导出操作 | 80 | // 导出操作 |
| 83 | const handleExport = async () => { | 81 | const handleExport = async () => { |
| 84 | - await exportList(xGrid, '定时任务详情.xls') | 82 | + await exportList('定时任务详情.xls') |
| 85 | } | 83 | } |
| 86 | </script> | 84 | </script> |
yudao-ui-admin-vue3/src/views/infra/job/index.vue
| 1 | <template> | 1 | <template> |
| 2 | <ContentWrap> | 2 | <ContentWrap> |
| 3 | <!-- 列表 --> | 3 | <!-- 列表 --> |
| 4 | - <vxe-grid ref="xGrid" v-bind="gridOptions" class="xtable-scrollbar"> | 4 | + <XTable @register="registerTable"> |
| 5 | <template #toolbar_buttons> | 5 | <template #toolbar_buttons> |
| 6 | <!-- 操作:新增 --> | 6 | <!-- 操作:新增 --> |
| 7 | <XButton | 7 | <XButton |
| @@ -83,7 +83,7 @@ | @@ -83,7 +83,7 @@ | ||
| 83 | </template> | 83 | </template> |
| 84 | </el-dropdown> | 84 | </el-dropdown> |
| 85 | </template> | 85 | </template> |
| 86 | - </vxe-grid> | 86 | + </XTable> |
| 87 | </ContentWrap> | 87 | </ContentWrap> |
| 88 | <XModal v-model="dialogVisible" :title="dialogTitle"> | 88 | <XModal v-model="dialogVisible" :title="dialogTitle"> |
| 89 | <!-- 对话框(添加 / 修改) --> | 89 | <!-- 对话框(添加 / 修改) --> |
| @@ -134,8 +134,7 @@ import { useRouter } from 'vue-router' | @@ -134,8 +134,7 @@ import { useRouter } from 'vue-router' | ||
| 134 | import { ElDropdown, ElDropdownMenu, ElDropdownItem } from 'element-plus' | 134 | import { ElDropdown, ElDropdownMenu, ElDropdownItem } from 'element-plus' |
| 135 | import { useI18n } from '@/hooks/web/useI18n' | 135 | import { useI18n } from '@/hooks/web/useI18n' |
| 136 | import { useMessage } from '@/hooks/web/useMessage' | 136 | import { useMessage } from '@/hooks/web/useMessage' |
| 137 | -import { useVxeGrid } from '@/hooks/web/useVxeGrid' | ||
| 138 | -import { VxeGridInstance } from 'vxe-table' | 137 | +import { useXTable } from '@/hooks/web/useXTable' |
| 139 | import { FormExpose } from '@/components/Form' | 138 | import { FormExpose } from '@/components/Form' |
| 140 | import { Crontab } from '@/components/Crontab' | 139 | import { Crontab } from '@/components/Crontab' |
| 141 | import * as JobApi from '@/api/infra/job' | 140 | import * as JobApi from '@/api/infra/job' |
| @@ -147,8 +146,7 @@ const message = useMessage() // 消息弹窗 | @@ -147,8 +146,7 @@ const message = useMessage() // 消息弹窗 | ||
| 147 | const { push } = useRouter() | 146 | const { push } = useRouter() |
| 148 | 147 | ||
| 149 | // 列表相关的变量 | 148 | // 列表相关的变量 |
| 150 | -const xGrid = ref<VxeGridInstance>() // 列表 Grid Ref | ||
| 151 | -const { gridOptions, getList, deleteData, exportList } = useVxeGrid<JobApi.JobVO>({ | 149 | +const [registerTable, { reload, deleteData, exportList }] = useXTable({ |
| 152 | allSchemas: allSchemas, | 150 | allSchemas: allSchemas, |
| 153 | getListApi: JobApi.getJobPageApi, | 151 | getListApi: JobApi.getJobPageApi, |
| 154 | deleteApi: JobApi.deleteJobApi, | 152 | deleteApi: JobApi.deleteJobApi, |
| @@ -183,7 +181,7 @@ const handleCreate = () => { | @@ -183,7 +181,7 @@ const handleCreate = () => { | ||
| 183 | 181 | ||
| 184 | // 导出操作 | 182 | // 导出操作 |
| 185 | const handleExport = async () => { | 183 | const handleExport = async () => { |
| 186 | - await exportList(xGrid, '定时任务.xls') | 184 | + await exportList('定时任务.xls') |
| 187 | } | 185 | } |
| 188 | 186 | ||
| 189 | // 修改操作 | 187 | // 修改操作 |
| @@ -252,7 +250,7 @@ const parseTime = (time) => { | @@ -252,7 +250,7 @@ const parseTime = (time) => { | ||
| 252 | 250 | ||
| 253 | // 删除操作 | 251 | // 删除操作 |
| 254 | const handleDelete = async (rowId: number) => { | 252 | const handleDelete = async (rowId: number) => { |
| 255 | - await deleteData(xGrid, rowId) | 253 | + await deleteData(rowId) |
| 256 | } | 254 | } |
| 257 | const handleChangeStatus = async (row: JobApi.JobVO) => { | 255 | const handleChangeStatus = async (row: JobApi.JobVO) => { |
| 258 | const text = row.status === InfraJobStatusEnum.STOP ? '开启' : '关闭' | 256 | const text = row.status === InfraJobStatusEnum.STOP ? '开启' : '关闭' |
| @@ -267,7 +265,7 @@ const handleChangeStatus = async (row: JobApi.JobVO) => { | @@ -267,7 +265,7 @@ const handleChangeStatus = async (row: JobApi.JobVO) => { | ||
| 267 | : InfraJobStatusEnum.STOP | 265 | : InfraJobStatusEnum.STOP |
| 268 | await JobApi.updateJobStatusApi(row.id, status) | 266 | await JobApi.updateJobStatusApi(row.id, status) |
| 269 | message.success(text + '成功') | 267 | message.success(text + '成功') |
| 270 | - await getList(xGrid) | 268 | + await reload() |
| 271 | }) | 269 | }) |
| 272 | .catch(() => { | 270 | .catch(() => { |
| 273 | row.status = | 271 | row.status = |
| @@ -289,7 +287,7 @@ const handleRun = (row: JobApi.JobVO) => { | @@ -289,7 +287,7 @@ const handleRun = (row: JobApi.JobVO) => { | ||
| 289 | message.confirm('确认要立即执行一次' + row.name + '?', t('common.reminder')).then(async () => { | 287 | message.confirm('确认要立即执行一次' + row.name + '?', t('common.reminder')).then(async () => { |
| 290 | await JobApi.runJobApi(row.id) | 288 | await JobApi.runJobApi(row.id) |
| 291 | message.success('执行成功') | 289 | message.success('执行成功') |
| 292 | - await getList(xGrid) | 290 | + await reload() |
| 293 | }) | 291 | }) |
| 294 | } | 292 | } |
| 295 | // 提交按钮 | 293 | // 提交按钮 |
| @@ -312,7 +310,7 @@ const submitForm = async () => { | @@ -312,7 +310,7 @@ const submitForm = async () => { | ||
| 312 | dialogVisible.value = false | 310 | dialogVisible.value = false |
| 313 | } finally { | 311 | } finally { |
| 314 | actionLoading.value = false | 312 | actionLoading.value = false |
| 315 | - await getList(xGrid) | 313 | + await reload() |
| 316 | } | 314 | } |
| 317 | } | 315 | } |
| 318 | }) | 316 | }) |
yudao-ui-admin-vue3/src/views/pay/app/index.vue
| 1 | <template> | 1 | <template> |
| 2 | <ContentWrap> | 2 | <ContentWrap> |
| 3 | <!-- 列表 --> | 3 | <!-- 列表 --> |
| 4 | - <vxe-grid ref="xGrid" v-bind="gridOptions" class="xtable-scrollbar"> | 4 | + <XTable @register="registerTable"> |
| 5 | <template #toolbar_buttons> | 5 | <template #toolbar_buttons> |
| 6 | <!-- 操作:新增 --> | 6 | <!-- 操作:新增 --> |
| 7 | <XButton | 7 | <XButton |
| @@ -43,7 +43,7 @@ | @@ -43,7 +43,7 @@ | ||
| 43 | @click="handleDelete(row.id)" | 43 | @click="handleDelete(row.id)" |
| 44 | /> | 44 | /> |
| 45 | </template> | 45 | </template> |
| 46 | - </vxe-grid> | 46 | + </XTable> |
| 47 | </ContentWrap> | 47 | </ContentWrap> |
| 48 | 48 | ||
| 49 | <XModal v-model="dialogVisible" :title="dialogTitle"> | 49 | <XModal v-model="dialogVisible" :title="dialogTitle"> |
| @@ -79,8 +79,7 @@ | @@ -79,8 +79,7 @@ | ||
| 79 | import { ref, unref } from 'vue' | 79 | import { ref, unref } from 'vue' |
| 80 | import { useI18n } from '@/hooks/web/useI18n' | 80 | import { useI18n } from '@/hooks/web/useI18n' |
| 81 | import { useMessage } from '@/hooks/web/useMessage' | 81 | import { useMessage } from '@/hooks/web/useMessage' |
| 82 | -import { useVxeGrid } from '@/hooks/web/useVxeGrid' | ||
| 83 | -import { VxeGridInstance } from 'vxe-table' | 82 | +import { useXTable } from '@/hooks/web/useXTable' |
| 84 | import { FormExpose } from '@/components/Form' | 83 | import { FormExpose } from '@/components/Form' |
| 85 | import { rules, allSchemas } from './app.data' | 84 | import { rules, allSchemas } from './app.data' |
| 86 | import * as AppApi from '@/api/pay/app' | 85 | import * as AppApi from '@/api/pay/app' |
| @@ -89,8 +88,7 @@ const { t } = useI18n() // 国际化 | @@ -89,8 +88,7 @@ const { t } = useI18n() // 国际化 | ||
| 89 | const message = useMessage() // 消息弹窗 | 88 | const message = useMessage() // 消息弹窗 |
| 90 | 89 | ||
| 91 | // 列表相关的变量 | 90 | // 列表相关的变量 |
| 92 | -const xGrid = ref<VxeGridInstance>() // 列表 Grid Ref | ||
| 93 | -const { gridOptions, getList, deleteData, exportList } = useVxeGrid<AppApi.AppVO>({ | 91 | +const [registerTable, { reload, deleteData, exportList }] = useXTable({ |
| 94 | allSchemas: allSchemas, | 92 | allSchemas: allSchemas, |
| 95 | getListApi: AppApi.getAppPageApi, | 93 | getListApi: AppApi.getAppPageApi, |
| 96 | deleteApi: AppApi.deleteAppApi, | 94 | deleteApi: AppApi.deleteAppApi, |
| @@ -119,7 +117,7 @@ const handleCreate = () => { | @@ -119,7 +117,7 @@ const handleCreate = () => { | ||
| 119 | 117 | ||
| 120 | // 导出操作 | 118 | // 导出操作 |
| 121 | const handleExport = async () => { | 119 | const handleExport = async () => { |
| 122 | - await exportList(xGrid, '应用信息.xls') | 120 | + await exportList('应用信息.xls') |
| 123 | } | 121 | } |
| 124 | 122 | ||
| 125 | // 修改操作 | 123 | // 修改操作 |
| @@ -139,7 +137,7 @@ const handleDetail = async (rowId: number) => { | @@ -139,7 +137,7 @@ const handleDetail = async (rowId: number) => { | ||
| 139 | 137 | ||
| 140 | // 删除操作 | 138 | // 删除操作 |
| 141 | const handleDelete = async (rowId: number) => { | 139 | const handleDelete = async (rowId: number) => { |
| 142 | - await deleteData(xGrid, rowId) | 140 | + await deleteData(rowId) |
| 143 | } | 141 | } |
| 144 | 142 | ||
| 145 | // 提交按钮 | 143 | // 提交按钮 |
| @@ -163,7 +161,7 @@ const submitForm = async () => { | @@ -163,7 +161,7 @@ const submitForm = async () => { | ||
| 163 | } finally { | 161 | } finally { |
| 164 | actionLoading.value = false | 162 | actionLoading.value = false |
| 165 | // 刷新列表 | 163 | // 刷新列表 |
| 166 | - await getList(xGrid) | 164 | + await reload() |
| 167 | } | 165 | } |
| 168 | } | 166 | } |
| 169 | }) | 167 | }) |
yudao-ui-admin-vue3/src/views/pay/merchant/index.vue
| 1 | <template> | 1 | <template> |
| 2 | <ContentWrap> | 2 | <ContentWrap> |
| 3 | <!-- 列表 --> | 3 | <!-- 列表 --> |
| 4 | - <vxe-grid ref="xGrid" v-bind="gridOptions" class="xtable-scrollbar"> | 4 | + <XTable @register="registerTable"> |
| 5 | <template #toolbar_buttons> | 5 | <template #toolbar_buttons> |
| 6 | <!-- 操作:新增 --> | 6 | <!-- 操作:新增 --> |
| 7 | <XButton | 7 | <XButton |
| @@ -43,7 +43,7 @@ | @@ -43,7 +43,7 @@ | ||
| 43 | @click="handleDelete(row.id)" | 43 | @click="handleDelete(row.id)" |
| 44 | /> | 44 | /> |
| 45 | </template> | 45 | </template> |
| 46 | - </vxe-grid> | 46 | + </XTable> |
| 47 | </ContentWrap> | 47 | </ContentWrap> |
| 48 | <XModal v-model="dialogVisible" :title="dialogTitle"> | 48 | <XModal v-model="dialogVisible" :title="dialogTitle"> |
| 49 | <!-- 对话框(添加 / 修改) --> | 49 | <!-- 对话框(添加 / 修改) --> |
| @@ -78,8 +78,7 @@ | @@ -78,8 +78,7 @@ | ||
| 78 | import { ref, unref } from 'vue' | 78 | import { ref, unref } from 'vue' |
| 79 | import { useI18n } from '@/hooks/web/useI18n' | 79 | import { useI18n } from '@/hooks/web/useI18n' |
| 80 | import { useMessage } from '@/hooks/web/useMessage' | 80 | import { useMessage } from '@/hooks/web/useMessage' |
| 81 | -import { useVxeGrid } from '@/hooks/web/useVxeGrid' | ||
| 82 | -import { VxeGridInstance } from 'vxe-table' | 81 | +import { useXTable } from '@/hooks/web/useXTable' |
| 83 | import { FormExpose } from '@/components/Form' | 82 | import { FormExpose } from '@/components/Form' |
| 84 | import { rules, allSchemas } from './merchant.data' | 83 | import { rules, allSchemas } from './merchant.data' |
| 85 | import * as MerchantApi from '@/api/pay/merchant' | 84 | import * as MerchantApi from '@/api/pay/merchant' |
| @@ -87,8 +86,7 @@ import * as MerchantApi from '@/api/pay/merchant' | @@ -87,8 +86,7 @@ import * as MerchantApi from '@/api/pay/merchant' | ||
| 87 | const { t } = useI18n() // 国际化 | 86 | const { t } = useI18n() // 国际化 |
| 88 | const message = useMessage() // 消息弹窗 | 87 | const message = useMessage() // 消息弹窗 |
| 89 | // 列表相关的变量 | 88 | // 列表相关的变量 |
| 90 | -const xGrid = ref<VxeGridInstance>() // 列表 Grid Ref | ||
| 91 | -const { gridOptions, getList, deleteData, exportList } = useVxeGrid<MerchantApi.MerchantVO>({ | 89 | +const [registerTable, { reload, deleteData, exportList }] = useXTable({ |
| 92 | allSchemas: allSchemas, | 90 | allSchemas: allSchemas, |
| 93 | getListApi: MerchantApi.getMerchantPageApi, | 91 | getListApi: MerchantApi.getMerchantPageApi, |
| 94 | deleteApi: MerchantApi.deleteMerchantApi, | 92 | deleteApi: MerchantApi.deleteMerchantApi, |
| @@ -117,7 +115,7 @@ const handleCreate = () => { | @@ -117,7 +115,7 @@ const handleCreate = () => { | ||
| 117 | 115 | ||
| 118 | // 导出操作 | 116 | // 导出操作 |
| 119 | const handleExport = async () => { | 117 | const handleExport = async () => { |
| 120 | - await exportList(xGrid, '商户列表.xls') | 118 | + await exportList('商户列表.xls') |
| 121 | } | 119 | } |
| 122 | 120 | ||
| 123 | // 修改操作 | 121 | // 修改操作 |
| @@ -137,7 +135,7 @@ const handleDetail = async (rowId: number) => { | @@ -137,7 +135,7 @@ const handleDetail = async (rowId: number) => { | ||
| 137 | 135 | ||
| 138 | // 删除操作 | 136 | // 删除操作 |
| 139 | const handleDelete = async (rowId: number) => { | 137 | const handleDelete = async (rowId: number) => { |
| 140 | - await deleteData(xGrid, rowId) | 138 | + await deleteData(rowId) |
| 141 | } | 139 | } |
| 142 | 140 | ||
| 143 | // 提交按钮 | 141 | // 提交按钮 |
| @@ -161,7 +159,7 @@ const submitForm = async () => { | @@ -161,7 +159,7 @@ const submitForm = async () => { | ||
| 161 | } finally { | 159 | } finally { |
| 162 | actionLoading.value = false | 160 | actionLoading.value = false |
| 163 | // 刷新列表 | 161 | // 刷新列表 |
| 164 | - await getList(xGrid) | 162 | + await reload() |
| 165 | } | 163 | } |
| 166 | } | 164 | } |
| 167 | }) | 165 | }) |
yudao-ui-admin-vue3/src/views/pay/order/index.vue
| 1 | <template> | 1 | <template> |
| 2 | <ContentWrap> | 2 | <ContentWrap> |
| 3 | <!-- 列表 --> | 3 | <!-- 列表 --> |
| 4 | - <vxe-grid ref="xGrid" v-bind="gridOptions" class="xtable-scrollbar"> | 4 | + <XTable @register="registerTable"> |
| 5 | <template #toolbar_buttons> | 5 | <template #toolbar_buttons> |
| 6 | <!-- 操作:新增 --> | 6 | <!-- 操作:新增 --> |
| 7 | <XButton | 7 | <XButton |
| @@ -29,7 +29,7 @@ | @@ -29,7 +29,7 @@ | ||
| 29 | @click="handleDetail(row.id)" | 29 | @click="handleDetail(row.id)" |
| 30 | /> | 30 | /> |
| 31 | </template> | 31 | </template> |
| 32 | - </vxe-grid> | 32 | + </XTable> |
| 33 | </ContentWrap> | 33 | </ContentWrap> |
| 34 | <XModal v-model="dialogVisible" :title="dialogTitle"> | 34 | <XModal v-model="dialogVisible" :title="dialogTitle"> |
| 35 | <!-- 对话框(详情) --> | 35 | <!-- 对话框(详情) --> |
| @@ -44,15 +44,13 @@ | @@ -44,15 +44,13 @@ | ||
| 44 | <script setup lang="ts" name="Order"> | 44 | <script setup lang="ts" name="Order"> |
| 45 | import { ref } from 'vue' | 45 | import { ref } from 'vue' |
| 46 | import { useI18n } from '@/hooks/web/useI18n' | 46 | import { useI18n } from '@/hooks/web/useI18n' |
| 47 | -import { useVxeGrid } from '@/hooks/web/useVxeGrid' | ||
| 48 | -import { VxeGridInstance } from 'vxe-table' | 47 | +import { useXTable } from '@/hooks/web/useXTable' |
| 49 | import { allSchemas } from './order.data' | 48 | import { allSchemas } from './order.data' |
| 50 | import * as OrderApi from '@/api/pay/order' | 49 | import * as OrderApi from '@/api/pay/order' |
| 51 | 50 | ||
| 52 | const { t } = useI18n() // 国际化 | 51 | const { t } = useI18n() // 国际化 |
| 53 | // 列表相关的变量 | 52 | // 列表相关的变量 |
| 54 | -const xGrid = ref<VxeGridInstance>() // 列表 Grid Ref | ||
| 55 | -const { gridOptions, exportList } = useVxeGrid<OrderApi.OrderVO>({ | 53 | +const [registerTable, { exportList }] = useXTable({ |
| 56 | allSchemas: allSchemas, | 54 | allSchemas: allSchemas, |
| 57 | getListApi: OrderApi.getOrderPageApi, | 55 | getListApi: OrderApi.getOrderPageApi, |
| 58 | exportListApi: OrderApi.exportOrderApi | 56 | exportListApi: OrderApi.exportOrderApi |
| @@ -76,7 +74,7 @@ const handleCreate = () => { | @@ -76,7 +74,7 @@ const handleCreate = () => { | ||
| 76 | } | 74 | } |
| 77 | // 导出操作 | 75 | // 导出操作 |
| 78 | const handleExport = async () => { | 76 | const handleExport = async () => { |
| 79 | - await exportList(xGrid, '订单数据.xls') | 77 | + await exportList('订单数据.xls') |
| 80 | } | 78 | } |
| 81 | 79 | ||
| 82 | // 详情操作 | 80 | // 详情操作 |
yudao-ui-admin-vue3/src/views/pay/refund/index.vue
| 1 | <template> | 1 | <template> |
| 2 | <ContentWrap> | 2 | <ContentWrap> |
| 3 | <!-- 列表 --> | 3 | <!-- 列表 --> |
| 4 | - <vxe-grid ref="xGrid" v-bind="gridOptions" class="xtable-scrollbar"> | 4 | + <XTable @register="registerTable"> |
| 5 | <template #toolbar_buttons> | 5 | <template #toolbar_buttons> |
| 6 | <!-- 操作:导出 --> | 6 | <!-- 操作:导出 --> |
| 7 | <XButton | 7 | <XButton |
| @@ -21,7 +21,7 @@ | @@ -21,7 +21,7 @@ | ||
| 21 | @click="handleDetail(row.id)" | 21 | @click="handleDetail(row.id)" |
| 22 | /> | 22 | /> |
| 23 | </template> | 23 | </template> |
| 24 | - </vxe-grid> | 24 | + </XTable> |
| 25 | </ContentWrap> | 25 | </ContentWrap> |
| 26 | 26 | ||
| 27 | <XModal v-model="dialogVisible" :title="t('action.detail')"> | 27 | <XModal v-model="dialogVisible" :title="t('action.detail')"> |
| @@ -36,16 +36,14 @@ | @@ -36,16 +36,14 @@ | ||
| 36 | <script setup lang="ts" name="Refund"> | 36 | <script setup lang="ts" name="Refund"> |
| 37 | import { ref } from 'vue' | 37 | import { ref } from 'vue' |
| 38 | import { useI18n } from '@/hooks/web/useI18n' | 38 | import { useI18n } from '@/hooks/web/useI18n' |
| 39 | -import { useVxeGrid } from '@/hooks/web/useVxeGrid' | ||
| 40 | -import { VxeGridInstance } from 'vxe-table' | 39 | +import { useXTable } from '@/hooks/web/useXTable' |
| 41 | import { allSchemas } from './refund.data' | 40 | import { allSchemas } from './refund.data' |
| 42 | import * as RefundApi from '@/api/pay/refund' | 41 | import * as RefundApi from '@/api/pay/refund' |
| 43 | 42 | ||
| 44 | const { t } = useI18n() // 国际化 | 43 | const { t } = useI18n() // 国际化 |
| 45 | 44 | ||
| 46 | // 列表相关的变量 | 45 | // 列表相关的变量 |
| 47 | -const xGrid = ref<VxeGridInstance>() // 列表 Grid Ref | ||
| 48 | -const { gridOptions, exportList } = useVxeGrid<RefundApi.RefundVO>({ | 46 | +const [registerTable, { exportList }] = useXTable({ |
| 49 | allSchemas: allSchemas, | 47 | allSchemas: allSchemas, |
| 50 | getListApi: RefundApi.getRefundPageApi, | 48 | getListApi: RefundApi.getRefundPageApi, |
| 51 | exportListApi: RefundApi.exportRefundApi | 49 | exportListApi: RefundApi.exportRefundApi |
| @@ -53,7 +51,7 @@ const { gridOptions, exportList } = useVxeGrid<RefundApi.RefundVO>({ | @@ -53,7 +51,7 @@ const { gridOptions, exportList } = useVxeGrid<RefundApi.RefundVO>({ | ||
| 53 | 51 | ||
| 54 | // 导出操作 | 52 | // 导出操作 |
| 55 | const handleExport = async () => { | 53 | const handleExport = async () => { |
| 56 | - await exportList(xGrid, '退款订单.xls') | 54 | + await exportList('退款订单.xls') |
| 57 | } | 55 | } |
| 58 | 56 | ||
| 59 | // ========== CRUD 相关 ========== | 57 | // ========== CRUD 相关 ========== |
yudao-ui-admin-vue3/src/views/system/dept/index.vue
| 1 | <template> | 1 | <template> |
| 2 | <ContentWrap> | 2 | <ContentWrap> |
| 3 | <!-- 列表 --> | 3 | <!-- 列表 --> |
| 4 | - <vxe-grid ref="xGrid" v-bind="gridOptions" show-overflow class="xtable-scrollbar"> | 4 | + <XTable @register="registerTable" show-overflow> |
| 5 | <template #toolbar_buttons> | 5 | <template #toolbar_buttons> |
| 6 | <!-- 操作:新增 --> | 6 | <!-- 操作:新增 --> |
| 7 | <XButton | 7 | <XButton |
| @@ -33,7 +33,7 @@ | @@ -33,7 +33,7 @@ | ||
| 33 | @click="handleDelete(row.id)" | 33 | @click="handleDelete(row.id)" |
| 34 | /> | 34 | /> |
| 35 | </template> | 35 | </template> |
| 36 | - </vxe-grid> | 36 | + </XTable> |
| 37 | </ContentWrap> | 37 | </ContentWrap> |
| 38 | <!-- 添加或修改菜单对话框 --> | 38 | <!-- 添加或修改菜单对话框 --> |
| 39 | <XModal id="deptModel" v-model="dialogVisible" :title="dialogTitle"> | 39 | <XModal id="deptModel" v-model="dialogVisible" :title="dialogTitle"> |
| @@ -81,7 +81,7 @@ import { VxeGridInstance } from 'vxe-table' | @@ -81,7 +81,7 @@ import { VxeGridInstance } from 'vxe-table' | ||
| 81 | import { handleTree, defaultProps } from '@/utils/tree' | 81 | import { handleTree, defaultProps } from '@/utils/tree' |
| 82 | import { useI18n } from '@/hooks/web/useI18n' | 82 | import { useI18n } from '@/hooks/web/useI18n' |
| 83 | import { useMessage } from '@/hooks/web/useMessage' | 83 | import { useMessage } from '@/hooks/web/useMessage' |
| 84 | -import { useVxeGrid } from '@/hooks/web/useVxeGrid' | 84 | +import { useXTable } from '@/hooks/web/useXTable' |
| 85 | import { FormExpose } from '@/components/Form' | 85 | import { FormExpose } from '@/components/Form' |
| 86 | import { allSchemas, rules } from './dept.data' | 86 | import { allSchemas, rules } from './dept.data' |
| 87 | import * as DeptApi from '@/api/system/dept' | 87 | import * as DeptApi from '@/api/system/dept' |
| @@ -119,7 +119,7 @@ const getTree = async () => { | @@ -119,7 +119,7 @@ const getTree = async () => { | ||
| 119 | dept.children = handleTree(res) | 119 | dept.children = handleTree(res) |
| 120 | deptOptions.value.push(dept) | 120 | deptOptions.value.push(dept) |
| 121 | } | 121 | } |
| 122 | -const { gridOptions, getList, deleteData } = useVxeGrid<DeptApi.DeptVO>({ | 122 | +const [registerTable, { reload, deleteData }] = useXTable({ |
| 123 | allSchemas: allSchemas, | 123 | allSchemas: allSchemas, |
| 124 | treeConfig: treeConfig, | 124 | treeConfig: treeConfig, |
| 125 | getListApi: DeptApi.getDeptPageApi, | 125 | getListApi: DeptApi.getDeptPageApi, |
| @@ -168,7 +168,7 @@ const submitForm = async () => { | @@ -168,7 +168,7 @@ const submitForm = async () => { | ||
| 168 | dialogVisible.value = false | 168 | dialogVisible.value = false |
| 169 | } finally { | 169 | } finally { |
| 170 | actionLoading.value = false | 170 | actionLoading.value = false |
| 171 | - await getList(xGrid) | 171 | + await reload() |
| 172 | } | 172 | } |
| 173 | } | 173 | } |
| 174 | }) | 174 | }) |
| @@ -176,7 +176,7 @@ const submitForm = async () => { | @@ -176,7 +176,7 @@ const submitForm = async () => { | ||
| 176 | 176 | ||
| 177 | // 删除操作 | 177 | // 删除操作 |
| 178 | const handleDelete = async (rowId: number) => { | 178 | const handleDelete = async (rowId: number) => { |
| 179 | - await deleteData(xGrid, rowId) | 179 | + await deleteData(rowId) |
| 180 | } | 180 | } |
| 181 | 181 | ||
| 182 | const userNicknameFormat = (row) => { | 182 | const userNicknameFormat = (row) => { |
yudao-ui-admin-vue3/src/views/system/dict/index.vue
| @@ -7,12 +7,7 @@ | @@ -7,12 +7,7 @@ | ||
| 7 | <span>字典分类</span> | 7 | <span>字典分类</span> |
| 8 | </div> | 8 | </div> |
| 9 | </template> | 9 | </template> |
| 10 | - <vxe-grid | ||
| 11 | - ref="xTypeGrid" | ||
| 12 | - v-bind="typeGridOptions" | ||
| 13 | - @cell-click="cellClickEvent" | ||
| 14 | - class="xtable-scrollbar" | ||
| 15 | - > | 10 | + <XTable @register="registerType" @cell-click="cellClickEvent"> |
| 16 | <!-- 操作:新增类型 --> | 11 | <!-- 操作:新增类型 --> |
| 17 | <template #toolbar_buttons> | 12 | <template #toolbar_buttons> |
| 18 | <XButton | 13 | <XButton |
| @@ -39,7 +34,7 @@ | @@ -39,7 +34,7 @@ | ||
| 39 | @click="handleTypeDelete(row.id)" | 34 | @click="handleTypeDelete(row.id)" |
| 40 | /> | 35 | /> |
| 41 | </template> | 36 | </template> |
| 42 | - </vxe-grid> | 37 | + </XTable> |
| 43 | <!-- @星语:分页和列表重叠在一起了 --> | 38 | <!-- @星语:分页和列表重叠在一起了 --> |
| 44 | </el-card> | 39 | </el-card> |
| 45 | <!-- ====== 字典数据 ====== --> | 40 | <!-- ====== 字典数据 ====== --> |
| @@ -55,7 +50,7 @@ | @@ -55,7 +50,7 @@ | ||
| 55 | </div> | 50 | </div> |
| 56 | <div v-if="tableTypeSelect"> | 51 | <div v-if="tableTypeSelect"> |
| 57 | <!-- 列表 --> | 52 | <!-- 列表 --> |
| 58 | - <vxe-grid ref="xDataGrid" v-bind="dataGridOptions" class="xtable-scrollbar"> | 53 | + <XTable @register="registerData"> |
| 59 | <!-- 操作:新增数据 --> | 54 | <!-- 操作:新增数据 --> |
| 60 | <template #toolbar_buttons> | 55 | <template #toolbar_buttons> |
| 61 | <XButton | 56 | <XButton |
| @@ -82,7 +77,7 @@ | @@ -82,7 +77,7 @@ | ||
| 82 | @click="handleDataDelete(row.id)" | 77 | @click="handleDataDelete(row.id)" |
| 83 | /> | 78 | /> |
| 84 | </template> | 79 | </template> |
| 85 | - </vxe-grid> | 80 | + </XTable> |
| 86 | </div> | 81 | </div> |
| 87 | </el-card> | 82 | </el-card> |
| 88 | <XModal id="dictModel" v-model="dialogVisible" :title="dialogTitle"> | 83 | <XModal id="dictModel" v-model="dialogVisible" :title="dialogTitle"> |
| @@ -130,8 +125,8 @@ | @@ -130,8 +125,8 @@ | ||
| 130 | import { ref, unref, reactive } from 'vue' | 125 | import { ref, unref, reactive } from 'vue' |
| 131 | import { useI18n } from '@/hooks/web/useI18n' | 126 | import { useI18n } from '@/hooks/web/useI18n' |
| 132 | import { useMessage } from '@/hooks/web/useMessage' | 127 | import { useMessage } from '@/hooks/web/useMessage' |
| 133 | -import { useVxeGrid } from '@/hooks/web/useVxeGrid' | ||
| 134 | -import { VxeGridInstance, VxeTableEvents } from 'vxe-table' | 128 | +import { useXTable } from '@/hooks/web/useXTable' |
| 129 | +import { VxeTableEvents } from 'vxe-table' | ||
| 135 | import { FormExpose } from '@/components/Form' | 130 | import { FormExpose } from '@/components/Form' |
| 136 | import { ElInput, ElTag, ElCard } from 'element-plus' | 131 | import { ElInput, ElTag, ElCard } from 'element-plus' |
| 137 | import * as DictTypeSchemas from './dict.type' | 132 | import * as DictTypeSchemas from './dict.type' |
| @@ -143,28 +138,18 @@ import { DictDataVO, DictTypeVO } from '@/api/system/dict/types' | @@ -143,28 +138,18 @@ import { DictDataVO, DictTypeVO } from '@/api/system/dict/types' | ||
| 143 | const { t } = useI18n() // 国际化 | 138 | const { t } = useI18n() // 国际化 |
| 144 | const message = useMessage() // 消息弹窗 | 139 | const message = useMessage() // 消息弹窗 |
| 145 | 140 | ||
| 146 | -const xTypeGrid = ref<VxeGridInstance>() // 列表 Grid Ref | ||
| 147 | -const { | ||
| 148 | - gridOptions: typeGridOptions, | ||
| 149 | - getList: typeGetList, | ||
| 150 | - deleteData: typeDeleteData | ||
| 151 | -} = useVxeGrid<DictTypeVO>({ | 141 | +const [registerType, { reload: typeGetList, deleteData: typeDeleteData }] = useXTable({ |
| 152 | allSchemas: DictTypeSchemas.allSchemas, | 142 | allSchemas: DictTypeSchemas.allSchemas, |
| 153 | getListApi: DictTypeApi.getDictTypePageApi, | 143 | getListApi: DictTypeApi.getDictTypePageApi, |
| 154 | deleteApi: DictTypeApi.deleteDictTypeApi | 144 | deleteApi: DictTypeApi.deleteDictTypeApi |
| 155 | }) | 145 | }) |
| 156 | 146 | ||
| 157 | -const xDataGrid = ref<VxeGridInstance>() // 列表 Grid Ref | ||
| 158 | const queryParams = reactive({ | 147 | const queryParams = reactive({ |
| 159 | dictType: null | 148 | dictType: null |
| 160 | }) | 149 | }) |
| 161 | -const { | ||
| 162 | - gridOptions: dataGridOptions, | ||
| 163 | - getList: dataGetList, | ||
| 164 | - deleteData: dataDeleteData | ||
| 165 | -} = useVxeGrid<DictDataVO>({ | 150 | +const [registerData, { reload: dataGetList, deleteData: dataDeleteData }] = useXTable({ |
| 166 | allSchemas: DictDataSchemas.allSchemas, | 151 | allSchemas: DictDataSchemas.allSchemas, |
| 167 | - queryParams: queryParams, | 152 | + params: queryParams, |
| 168 | getListApi: DictDataApi.getDictDataPageApi, | 153 | getListApi: DictDataApi.getDictDataPageApi, |
| 169 | deleteApi: DictDataApi.deleteDictDataApi | 154 | deleteApi: DictDataApi.deleteDictDataApi |
| 170 | }) | 155 | }) |
| @@ -199,7 +184,7 @@ const tableTypeSelect = ref(false) | @@ -199,7 +184,7 @@ const tableTypeSelect = ref(false) | ||
| 199 | const cellClickEvent: VxeTableEvents.CellClick = async ({ row }) => { | 184 | const cellClickEvent: VxeTableEvents.CellClick = async ({ row }) => { |
| 200 | tableTypeSelect.value = true | 185 | tableTypeSelect.value = true |
| 201 | queryParams.dictType = row['type'] | 186 | queryParams.dictType = row['type'] |
| 202 | - await dataGetList(xDataGrid) | 187 | + await dataGetList() |
| 203 | parentType.value = row['type'] | 188 | parentType.value = row['type'] |
| 204 | } | 189 | } |
| 205 | // 弹出框 | 190 | // 弹出框 |
| @@ -219,11 +204,11 @@ const setDialogTile = (type: string) => { | @@ -219,11 +204,11 @@ const setDialogTile = (type: string) => { | ||
| 219 | 204 | ||
| 220 | // 删除操作 | 205 | // 删除操作 |
| 221 | const handleTypeDelete = async (rowId: number) => { | 206 | const handleTypeDelete = async (rowId: number) => { |
| 222 | - await typeDeleteData(xTypeGrid, rowId) | 207 | + await typeDeleteData(rowId) |
| 223 | } | 208 | } |
| 224 | 209 | ||
| 225 | const handleDataDelete = async (rowId: number) => { | 210 | const handleDataDelete = async (rowId: number) => { |
| 226 | - await dataDeleteData(xDataGrid, rowId) | 211 | + await dataDeleteData(rowId) |
| 227 | } | 212 | } |
| 228 | 213 | ||
| 229 | // 提交按钮 | 214 | // 提交按钮 |
| @@ -247,7 +232,7 @@ const submitTypeForm = async () => { | @@ -247,7 +232,7 @@ const submitTypeForm = async () => { | ||
| 247 | dialogVisible.value = false | 232 | dialogVisible.value = false |
| 248 | } finally { | 233 | } finally { |
| 249 | actionLoading.value = false | 234 | actionLoading.value = false |
| 250 | - typeGetList(xTypeGrid) | 235 | + typeGetList() |
| 251 | } | 236 | } |
| 252 | } | 237 | } |
| 253 | }) | 238 | }) |
| @@ -272,7 +257,7 @@ const submitDataForm = async () => { | @@ -272,7 +257,7 @@ const submitDataForm = async () => { | ||
| 272 | dialogVisible.value = false | 257 | dialogVisible.value = false |
| 273 | } finally { | 258 | } finally { |
| 274 | actionLoading.value = false | 259 | actionLoading.value = false |
| 275 | - dataGetList(xDataGrid) | 260 | + dataGetList() |
| 276 | } | 261 | } |
| 277 | } | 262 | } |
| 278 | }) | 263 | }) |
yudao-ui-admin-vue3/src/views/system/errorCode/index.vue
| 1 | <template> | 1 | <template> |
| 2 | <ContentWrap> | 2 | <ContentWrap> |
| 3 | <!-- 列表 --> | 3 | <!-- 列表 --> |
| 4 | - <vxe-grid ref="xGrid" v-bind="gridOptions" class="xtable-scrollbar"> | 4 | + <XTable @register="registerTable"> |
| 5 | <!-- 操作:新增 --> | 5 | <!-- 操作:新增 --> |
| 6 | <template #toolbar_buttons> | 6 | <template #toolbar_buttons> |
| 7 | <XButton | 7 | <XButton |
| @@ -35,7 +35,7 @@ | @@ -35,7 +35,7 @@ | ||
| 35 | @click="handleDelete(row.id)" | 35 | @click="handleDelete(row.id)" |
| 36 | /> | 36 | /> |
| 37 | </template> | 37 | </template> |
| 38 | - </vxe-grid> | 38 | + </XTable> |
| 39 | </ContentWrap> | 39 | </ContentWrap> |
| 40 | <!-- 弹窗 --> | 40 | <!-- 弹窗 --> |
| 41 | <XModal id="errorCodeModel" v-model="dialogVisible" :title="dialogTitle"> | 41 | <XModal id="errorCodeModel" v-model="dialogVisible" :title="dialogTitle"> |
| @@ -71,8 +71,7 @@ | @@ -71,8 +71,7 @@ | ||
| 71 | import { ref, unref } from 'vue' | 71 | import { ref, unref } from 'vue' |
| 72 | import { useI18n } from '@/hooks/web/useI18n' | 72 | import { useI18n } from '@/hooks/web/useI18n' |
| 73 | import { useMessage } from '@/hooks/web/useMessage' | 73 | import { useMessage } from '@/hooks/web/useMessage' |
| 74 | -import { useVxeGrid } from '@/hooks/web/useVxeGrid' | ||
| 75 | -import { VxeGridInstance } from 'vxe-table' | 74 | +import { useXTable } from '@/hooks/web/useXTable' |
| 76 | import { FormExpose } from '@/components/Form' | 75 | import { FormExpose } from '@/components/Form' |
| 77 | // 业务相关的 import | 76 | // 业务相关的 import |
| 78 | import { rules, allSchemas } from './errorCode.data' | 77 | import { rules, allSchemas } from './errorCode.data' |
| @@ -81,8 +80,7 @@ import * as ErrorCodeApi from '@/api/system/errorCode' | @@ -81,8 +80,7 @@ import * as ErrorCodeApi from '@/api/system/errorCode' | ||
| 81 | const { t } = useI18n() // 国际化 | 80 | const { t } = useI18n() // 国际化 |
| 82 | const message = useMessage() // 消息弹窗 | 81 | const message = useMessage() // 消息弹窗 |
| 83 | // 列表相关的变量 | 82 | // 列表相关的变量 |
| 84 | -const xGrid = ref<VxeGridInstance>() // grid Ref | ||
| 85 | -const { gridOptions, getList, deleteData } = useVxeGrid<ErrorCodeApi.ErrorCodeVO>({ | 83 | +const [registerTable, { reload, deleteData }] = useXTable({ |
| 86 | allSchemas: allSchemas, | 84 | allSchemas: allSchemas, |
| 87 | getListApi: ErrorCodeApi.getErrorCodePageApi, | 85 | getListApi: ErrorCodeApi.getErrorCodePageApi, |
| 88 | deleteApi: ErrorCodeApi.deleteErrorCodeApi | 86 | deleteApi: ErrorCodeApi.deleteErrorCodeApi |
| @@ -125,7 +123,7 @@ const handleDetail = async (rowId: number) => { | @@ -125,7 +123,7 @@ const handleDetail = async (rowId: number) => { | ||
| 125 | 123 | ||
| 126 | // 删除操作 | 124 | // 删除操作 |
| 127 | const handleDelete = async (rowId: number) => { | 125 | const handleDelete = async (rowId: number) => { |
| 128 | - await deleteData(xGrid, rowId) | 126 | + await deleteData(rowId) |
| 129 | } | 127 | } |
| 130 | 128 | ||
| 131 | // 提交新增/修改的表单 | 129 | // 提交新增/修改的表单 |
| @@ -149,7 +147,7 @@ const submitForm = async () => { | @@ -149,7 +147,7 @@ const submitForm = async () => { | ||
| 149 | } finally { | 147 | } finally { |
| 150 | actionLoading.value = false | 148 | actionLoading.value = false |
| 151 | // 刷新列表 | 149 | // 刷新列表 |
| 152 | - await getList(xGrid) | 150 | + await reload() |
| 153 | } | 151 | } |
| 154 | } | 152 | } |
| 155 | }) | 153 | }) |
yudao-ui-admin-vue3/src/views/system/loginlog/index.vue
| 1 | <template> | 1 | <template> |
| 2 | <ContentWrap> | 2 | <ContentWrap> |
| 3 | <!-- 列表 --> | 3 | <!-- 列表 --> |
| 4 | - <vxe-grid ref="xGrid" v-bind="gridOptions" class="xtable-scrollbar"> | 4 | + <XTable @register="registerTable"> |
| 5 | <!-- 操作:导出 --> | 5 | <!-- 操作:导出 --> |
| 6 | <template #toolbar_buttons> | 6 | <template #toolbar_buttons> |
| 7 | <XButton | 7 | <XButton |
| @@ -15,7 +15,7 @@ | @@ -15,7 +15,7 @@ | ||
| 15 | <!-- 操作:详情 --> | 15 | <!-- 操作:详情 --> |
| 16 | <XTextButton preIcon="ep:view" :title="t('action.detail')" @click="handleDetail(row)" /> | 16 | <XTextButton preIcon="ep:view" :title="t('action.detail')" @click="handleDetail(row)" /> |
| 17 | </template> | 17 | </template> |
| 18 | - </vxe-grid> | 18 | + </XTable> |
| 19 | </ContentWrap> | 19 | </ContentWrap> |
| 20 | <!-- 弹窗 --> | 20 | <!-- 弹窗 --> |
| 21 | <XModal id="postModel" v-model="dialogVisible" :title="dialogTitle"> | 21 | <XModal id="postModel" v-model="dialogVisible" :title="dialogTitle"> |
| @@ -31,16 +31,14 @@ | @@ -31,16 +31,14 @@ | ||
| 31 | // 全局相关的 import | 31 | // 全局相关的 import |
| 32 | import { ref } from 'vue' | 32 | import { ref } from 'vue' |
| 33 | import { useI18n } from '@/hooks/web/useI18n' | 33 | import { useI18n } from '@/hooks/web/useI18n' |
| 34 | -import { useVxeGrid } from '@/hooks/web/useVxeGrid' | ||
| 35 | -import { VxeGridInstance } from 'vxe-table' | 34 | +import { useXTable } from '@/hooks/web/useXTable' |
| 36 | // 业务相关的 import | 35 | // 业务相关的 import |
| 37 | import { allSchemas } from './loginLog.data' | 36 | import { allSchemas } from './loginLog.data' |
| 38 | import { getLoginLogPageApi, exportLoginLogApi, LoginLogVO } from '@/api/system/loginLog' | 37 | import { getLoginLogPageApi, exportLoginLogApi, LoginLogVO } from '@/api/system/loginLog' |
| 39 | 38 | ||
| 40 | const { t } = useI18n() // 国际化 | 39 | const { t } = useI18n() // 国际化 |
| 41 | // 列表相关的变量 | 40 | // 列表相关的变量 |
| 42 | -const xGrid = ref<VxeGridInstance>() // 列表 Grid Ref | ||
| 43 | -const { gridOptions, exportList } = useVxeGrid<LoginLogVO>({ | 41 | +const [registerTable, { exportList }] = useXTable({ |
| 44 | allSchemas: allSchemas, | 42 | allSchemas: allSchemas, |
| 45 | getListApi: getLoginLogPageApi, | 43 | getListApi: getLoginLogPageApi, |
| 46 | exportListApi: exportLoginLogApi | 44 | exportListApi: exportLoginLogApi |
| @@ -59,6 +57,6 @@ const handleDetail = async (row: LoginLogVO) => { | @@ -59,6 +57,6 @@ const handleDetail = async (row: LoginLogVO) => { | ||
| 59 | 57 | ||
| 60 | // 导出操作 | 58 | // 导出操作 |
| 61 | const handleExport = async () => { | 59 | const handleExport = async () => { |
| 62 | - await exportList(xGrid, '登录列表.xls') | 60 | + await exportList('登录列表.xls') |
| 63 | } | 61 | } |
| 64 | </script> | 62 | </script> |
yudao-ui-admin-vue3/src/views/system/menu/index.vue
| 1 | <template> | 1 | <template> |
| 2 | <ContentWrap> | 2 | <ContentWrap> |
| 3 | <!-- 列表 --> | 3 | <!-- 列表 --> |
| 4 | - <vxe-grid ref="xGrid" v-bind="gridOptions" show-overflow class="xtable-scrollbar"> | 4 | + <XTable @register="registerTable" show-overflow> |
| 5 | <template #toolbar_buttons> | 5 | <template #toolbar_buttons> |
| 6 | <!-- 操作:新增 --> | 6 | <!-- 操作:新增 --> |
| 7 | <XButton | 7 | <XButton |
| @@ -34,7 +34,7 @@ | @@ -34,7 +34,7 @@ | ||
| 34 | @click="handleDelete(row.id)" | 34 | @click="handleDelete(row.id)" |
| 35 | /> | 35 | /> |
| 36 | </template> | 36 | </template> |
| 37 | - </vxe-grid> | 37 | + </XTable> |
| 38 | </ContentWrap> | 38 | </ContentWrap> |
| 39 | <!-- 添加或修改菜单对话框 --> | 39 | <!-- 添加或修改菜单对话框 --> |
| 40 | <XModal id="menuModel" v-model="dialogVisible" :title="dialogTitle"> | 40 | <XModal id="menuModel" v-model="dialogVisible" :title="dialogTitle"> |
| @@ -201,7 +201,7 @@ import { SystemMenuTypeEnum, CommonStatusEnum } from '@/utils/constants' | @@ -201,7 +201,7 @@ import { SystemMenuTypeEnum, CommonStatusEnum } from '@/utils/constants' | ||
| 201 | import { handleTree, defaultProps } from '@/utils/tree' | 201 | import { handleTree, defaultProps } from '@/utils/tree' |
| 202 | import * as MenuApi from '@/api/system/menu' | 202 | import * as MenuApi from '@/api/system/menu' |
| 203 | import { allSchemas, rules } from './menu.data' | 203 | import { allSchemas, rules } from './menu.data' |
| 204 | -import { useVxeGrid } from '@/hooks/web/useVxeGrid' | 204 | +import { useXTable } from '@/hooks/web/useXTable' |
| 205 | 205 | ||
| 206 | const { t } = useI18n() // 国际化 | 206 | const { t } = useI18n() // 国际化 |
| 207 | const message = useMessage() // 消息弹窗 | 207 | const message = useMessage() // 消息弹窗 |
| @@ -215,7 +215,7 @@ const treeConfig = { | @@ -215,7 +215,7 @@ const treeConfig = { | ||
| 215 | parentField: 'parentId', | 215 | parentField: 'parentId', |
| 216 | expandAll: false | 216 | expandAll: false |
| 217 | } | 217 | } |
| 218 | -const { gridOptions, getList, deleteData } = useVxeGrid<MenuApi.MenuVO>({ | 218 | +const [registerTable, { reload, deleteData }] = useXTable({ |
| 219 | allSchemas: allSchemas, | 219 | allSchemas: allSchemas, |
| 220 | treeConfig: treeConfig, | 220 | treeConfig: treeConfig, |
| 221 | getListApi: MenuApi.getMenuListApi, | 221 | getListApi: MenuApi.getMenuListApi, |
| @@ -326,7 +326,7 @@ const submitForm = async () => { | @@ -326,7 +326,7 @@ const submitForm = async () => { | ||
| 326 | actionLoading.value = false | 326 | actionLoading.value = false |
| 327 | wsCache.delete(CACHE_KEY.ROLE_ROUTERS) | 327 | wsCache.delete(CACHE_KEY.ROLE_ROUTERS) |
| 328 | // 操作成功,重新加载列表 | 328 | // 操作成功,重新加载列表 |
| 329 | - await getList(xGrid) | 329 | + await reload() |
| 330 | } | 330 | } |
| 331 | } | 331 | } |
| 332 | 332 | ||
| @@ -338,6 +338,6 @@ const isExternal = (path: string) => { | @@ -338,6 +338,6 @@ const isExternal = (path: string) => { | ||
| 338 | // ========== 删除 ========== | 338 | // ========== 删除 ========== |
| 339 | // 删除操作 | 339 | // 删除操作 |
| 340 | const handleDelete = async (rowId: number) => { | 340 | const handleDelete = async (rowId: number) => { |
| 341 | - await deleteData(xGrid, rowId) | 341 | + await deleteData(rowId) |
| 342 | } | 342 | } |
| 343 | </script> | 343 | </script> |
yudao-ui-admin-vue3/src/views/system/notice/index.vue
| 1 | <template> | 1 | <template> |
| 2 | <ContentWrap> | 2 | <ContentWrap> |
| 3 | <!-- 列表 --> | 3 | <!-- 列表 --> |
| 4 | - <vxe-grid ref="xGrid" v-bind="gridOptions" class="xtable-scrollbar"> | 4 | + <XTable @register="registerTable"> |
| 5 | <!-- 操作:新增 --> | 5 | <!-- 操作:新增 --> |
| 6 | <template #toolbar_buttons> | 6 | <template #toolbar_buttons> |
| 7 | <XButton | 7 | <XButton |
| @@ -35,7 +35,7 @@ | @@ -35,7 +35,7 @@ | ||
| 35 | @click="handleDelete(row.id)" | 35 | @click="handleDelete(row.id)" |
| 36 | /> | 36 | /> |
| 37 | </template> | 37 | </template> |
| 38 | - </vxe-grid> | 38 | + </XTable> |
| 39 | </ContentWrap> | 39 | </ContentWrap> |
| 40 | <!-- 弹窗 --> | 40 | <!-- 弹窗 --> |
| 41 | <XModal id="noticeModel" v-model="dialogVisible" :title="dialogTitle"> | 41 | <XModal id="noticeModel" v-model="dialogVisible" :title="dialogTitle"> |
| @@ -75,8 +75,7 @@ | @@ -75,8 +75,7 @@ | ||
| 75 | import { ref, unref } from 'vue' | 75 | import { ref, unref } from 'vue' |
| 76 | import { useI18n } from '@/hooks/web/useI18n' | 76 | import { useI18n } from '@/hooks/web/useI18n' |
| 77 | import { useMessage } from '@/hooks/web/useMessage' | 77 | import { useMessage } from '@/hooks/web/useMessage' |
| 78 | -import { useVxeGrid } from '@/hooks/web/useVxeGrid' | ||
| 79 | -import { VxeGridInstance } from 'vxe-table' | 78 | +import { useXTable } from '@/hooks/web/useXTable' |
| 80 | import { FormExpose } from '@/components/Form' | 79 | import { FormExpose } from '@/components/Form' |
| 81 | // 业务相关的 import | 80 | // 业务相关的 import |
| 82 | import * as NoticeApi from '@/api/system/notice' | 81 | import * as NoticeApi from '@/api/system/notice' |
| @@ -86,8 +85,7 @@ import { Editor } from '@/components/Editor' | @@ -86,8 +85,7 @@ import { Editor } from '@/components/Editor' | ||
| 86 | const { t } = useI18n() // 国际化 | 85 | const { t } = useI18n() // 国际化 |
| 87 | const message = useMessage() // 消息弹窗 | 86 | const message = useMessage() // 消息弹窗 |
| 88 | // 列表相关的变量 | 87 | // 列表相关的变量 |
| 89 | -const xGrid = ref<VxeGridInstance>() // 列表 Grid Ref | ||
| 90 | -const { gridOptions, getList, deleteData } = useVxeGrid<NoticeApi.NoticeVO>({ | 88 | +const [registerTable, { reload, deleteData }] = useXTable({ |
| 91 | allSchemas: allSchemas, | 89 | allSchemas: allSchemas, |
| 92 | getListApi: NoticeApi.getNoticePageApi, | 90 | getListApi: NoticeApi.getNoticePageApi, |
| 93 | deleteApi: NoticeApi.deleteNoticeApi | 91 | deleteApi: NoticeApi.deleteNoticeApi |
| @@ -130,7 +128,7 @@ const handleDetail = async (rowId: number) => { | @@ -130,7 +128,7 @@ const handleDetail = async (rowId: number) => { | ||
| 130 | 128 | ||
| 131 | // 删除操作 | 129 | // 删除操作 |
| 132 | const handleDelete = async (rowId: number) => { | 130 | const handleDelete = async (rowId: number) => { |
| 133 | - await deleteData(xGrid, rowId) | 131 | + await deleteData(rowId) |
| 134 | } | 132 | } |
| 135 | 133 | ||
| 136 | // 提交新增/修改的表单 | 134 | // 提交新增/修改的表单 |
| @@ -153,7 +151,7 @@ const submitForm = async () => { | @@ -153,7 +151,7 @@ const submitForm = async () => { | ||
| 153 | dialogVisible.value = false | 151 | dialogVisible.value = false |
| 154 | } finally { | 152 | } finally { |
| 155 | actionLoading.value = false | 153 | actionLoading.value = false |
| 156 | - await getList(xGrid) | 154 | + await reload() |
| 157 | } | 155 | } |
| 158 | } | 156 | } |
| 159 | }) | 157 | }) |
yudao-ui-admin-vue3/src/views/system/oauth2/client/index.vue
| 1 | <template> | 1 | <template> |
| 2 | <ContentWrap> | 2 | <ContentWrap> |
| 3 | <!-- 列表 --> | 3 | <!-- 列表 --> |
| 4 | - <vxe-grid ref="xGrid" v-bind="gridOptions" class="xtable-scrollbar"> | 4 | + <XTable @register="registerTable"> |
| 5 | <template #toolbar_buttons> | 5 | <template #toolbar_buttons> |
| 6 | <!-- 操作:新增 --> | 6 | <!-- 操作:新增 --> |
| 7 | <XButton | 7 | <XButton |
| @@ -51,7 +51,7 @@ | @@ -51,7 +51,7 @@ | ||
| 51 | @click="handleDelete(row.id)" | 51 | @click="handleDelete(row.id)" |
| 52 | /> | 52 | /> |
| 53 | </template> | 53 | </template> |
| 54 | - </vxe-grid> | 54 | + </XTable> |
| 55 | </ContentWrap> | 55 | </ContentWrap> |
| 56 | <!-- 弹窗 --> | 56 | <!-- 弹窗 --> |
| 57 | <XModal id="postModel" v-model="dialogVisible" :title="dialogTitle"> | 57 | <XModal id="postModel" v-model="dialogVisible" :title="dialogTitle"> |
| @@ -135,8 +135,7 @@ import { ref, unref } from 'vue' | @@ -135,8 +135,7 @@ import { ref, unref } from 'vue' | ||
| 135 | import { ElTag } from 'element-plus' | 135 | import { ElTag } from 'element-plus' |
| 136 | import { useI18n } from '@/hooks/web/useI18n' | 136 | import { useI18n } from '@/hooks/web/useI18n' |
| 137 | import { useMessage } from '@/hooks/web/useMessage' | 137 | import { useMessage } from '@/hooks/web/useMessage' |
| 138 | -import { useVxeGrid } from '@/hooks/web/useVxeGrid' | ||
| 139 | -import { VxeGridInstance } from 'vxe-table' | 138 | +import { useXTable } from '@/hooks/web/useXTable' |
| 140 | import { FormExpose } from '@/components/Form' | 139 | import { FormExpose } from '@/components/Form' |
| 141 | // 业务相关的 import | 140 | // 业务相关的 import |
| 142 | import * as ClientApi from '@/api/system/oauth2/client' | 141 | import * as ClientApi from '@/api/system/oauth2/client' |
| @@ -146,8 +145,7 @@ const { t } = useI18n() // 国际化 | @@ -146,8 +145,7 @@ const { t } = useI18n() // 国际化 | ||
| 146 | const message = useMessage() // 消息弹窗 | 145 | const message = useMessage() // 消息弹窗 |
| 147 | 146 | ||
| 148 | // 列表相关的变量 | 147 | // 列表相关的变量 |
| 149 | -const xGrid = ref<VxeGridInstance>() // 列表 Grid Ref | ||
| 150 | -const { gridOptions, getList, deleteData } = useVxeGrid<ClientApi.OAuth2ClientVO>({ | 148 | +const [registerTable, { reload, deleteData }] = useXTable({ |
| 151 | allSchemas: allSchemas, | 149 | allSchemas: allSchemas, |
| 152 | getListApi: ClientApi.getOAuth2ClientPageApi, | 150 | getListApi: ClientApi.getOAuth2ClientPageApi, |
| 153 | deleteApi: ClientApi.deleteOAuth2ClientApi | 151 | deleteApi: ClientApi.deleteOAuth2ClientApi |
| @@ -188,7 +186,7 @@ const handleDetail = async (rowId: number) => { | @@ -188,7 +186,7 @@ const handleDetail = async (rowId: number) => { | ||
| 188 | 186 | ||
| 189 | // 删除操作 | 187 | // 删除操作 |
| 190 | const handleDelete = async (rowId: number) => { | 188 | const handleDelete = async (rowId: number) => { |
| 191 | - await deleteData(xGrid, rowId) | 189 | + await deleteData(rowId) |
| 192 | } | 190 | } |
| 193 | 191 | ||
| 194 | // 提交新增/修改的表单 | 192 | // 提交新增/修改的表单 |
| @@ -212,7 +210,7 @@ const submitForm = async () => { | @@ -212,7 +210,7 @@ const submitForm = async () => { | ||
| 212 | } finally { | 210 | } finally { |
| 213 | actionLoading.value = false | 211 | actionLoading.value = false |
| 214 | // 刷新列表 | 212 | // 刷新列表 |
| 215 | - await getList(xGrid) | 213 | + await reload() |
| 216 | } | 214 | } |
| 217 | } | 215 | } |
| 218 | }) | 216 | }) |
yudao-ui-admin-vue3/src/views/system/oauth2/token/index.vue
| 1 | <template> | 1 | <template> |
| 2 | <ContentWrap> | 2 | <ContentWrap> |
| 3 | <!-- 列表 --> | 3 | <!-- 列表 --> |
| 4 | - <vxe-grid ref="xGrid" v-bind="gridOptions" class="xtable-scrollbar"> | 4 | + <XTable @register="registerTable"> |
| 5 | <template #actionbtns_default="{ row }"> | 5 | <template #actionbtns_default="{ row }"> |
| 6 | <!-- 操作:详情 --> | 6 | <!-- 操作:详情 --> |
| 7 | <XTextButton preIcon="ep:view" :title="t('action.detail')" @click="handleDetail(row)" /> | 7 | <XTextButton preIcon="ep:view" :title="t('action.detail')" @click="handleDetail(row)" /> |
| @@ -13,7 +13,7 @@ | @@ -13,7 +13,7 @@ | ||
| 13 | @click="handleForceLogout(row.id)" | 13 | @click="handleForceLogout(row.id)" |
| 14 | /> | 14 | /> |
| 15 | </template> | 15 | </template> |
| 16 | - </vxe-grid> | 16 | + </XTable> |
| 17 | </ContentWrap> | 17 | </ContentWrap> |
| 18 | <XModal v-model="dialogVisible" :title="dialogTitle"> | 18 | <XModal v-model="dialogVisible" :title="dialogTitle"> |
| 19 | <!-- 对话框(详情) --> | 19 | <!-- 对话框(详情) --> |
| @@ -28,8 +28,7 @@ | @@ -28,8 +28,7 @@ | ||
| 28 | import { ref } from 'vue' | 28 | import { ref } from 'vue' |
| 29 | import { useI18n } from '@/hooks/web/useI18n' | 29 | import { useI18n } from '@/hooks/web/useI18n' |
| 30 | import { useMessage } from '@/hooks/web/useMessage' | 30 | import { useMessage } from '@/hooks/web/useMessage' |
| 31 | -import { useVxeGrid } from '@/hooks/web/useVxeGrid' | ||
| 32 | -import { VxeGridInstance } from 'vxe-table' | 31 | +import { useXTable } from '@/hooks/web/useXTable' |
| 33 | 32 | ||
| 34 | import { allSchemas } from './token.data' | 33 | import { allSchemas } from './token.data' |
| 35 | import * as TokenApi from '@/api/system/oauth2/token' | 34 | import * as TokenApi from '@/api/system/oauth2/token' |
| @@ -37,8 +36,7 @@ import * as TokenApi from '@/api/system/oauth2/token' | @@ -37,8 +36,7 @@ import * as TokenApi from '@/api/system/oauth2/token' | ||
| 37 | const { t } = useI18n() // 国际化 | 36 | const { t } = useI18n() // 国际化 |
| 38 | const message = useMessage() // 消息弹窗 | 37 | const message = useMessage() // 消息弹窗 |
| 39 | // 列表相关的变量 | 38 | // 列表相关的变量 |
| 40 | -const xGrid = ref<VxeGridInstance>() // 列表 Grid Ref | ||
| 41 | -const { gridOptions, getList } = useVxeGrid<TokenApi.OAuth2TokenVO>({ | 39 | +const [registerTable, { reload }] = useXTable({ |
| 42 | allSchemas: allSchemas, | 40 | allSchemas: allSchemas, |
| 43 | topActionSlots: false, | 41 | topActionSlots: false, |
| 44 | getListApi: TokenApi.getAccessTokenPageApi | 42 | getListApi: TokenApi.getAccessTokenPageApi |
| @@ -65,7 +63,7 @@ const handleForceLogout = (rowId: number) => { | @@ -65,7 +63,7 @@ const handleForceLogout = (rowId: number) => { | ||
| 65 | }) | 63 | }) |
| 66 | .finally(async () => { | 64 | .finally(async () => { |
| 67 | // 刷新列表 | 65 | // 刷新列表 |
| 68 | - await getList(xGrid) | 66 | + await reload() |
| 69 | }) | 67 | }) |
| 70 | } | 68 | } |
| 71 | </script> | 69 | </script> |
yudao-ui-admin-vue3/src/views/system/operatelog/index.vue
| 1 | <template> | 1 | <template> |
| 2 | <ContentWrap> | 2 | <ContentWrap> |
| 3 | <!-- 列表 --> | 3 | <!-- 列表 --> |
| 4 | - <vxe-grid ref="xGrid" v-bind="gridOptions" class="xtable-scrollbar"> | 4 | + <XTable @register="registerTable"> |
| 5 | <template #toolbar_buttons> | 5 | <template #toolbar_buttons> |
| 6 | <!-- 操作:新增 --> | 6 | <!-- 操作:新增 --> |
| 7 | <XButton | 7 | <XButton |
| @@ -22,7 +22,7 @@ | @@ -22,7 +22,7 @@ | ||
| 22 | <!-- 操作:详情 --> | 22 | <!-- 操作:详情 --> |
| 23 | <XTextButton preIcon="ep:view" :title="t('action.detail')" @click="handleDetail(row)" /> | 23 | <XTextButton preIcon="ep:view" :title="t('action.detail')" @click="handleDetail(row)" /> |
| 24 | </template> | 24 | </template> |
| 25 | - </vxe-grid> | 25 | + </XTable> |
| 26 | </ContentWrap> | 26 | </ContentWrap> |
| 27 | <!-- 弹窗 --> | 27 | <!-- 弹窗 --> |
| 28 | <XModal id="postModel" v-model="dialogVisible" :title="t('action.detail')"> | 28 | <XModal id="postModel" v-model="dialogVisible" :title="t('action.detail')"> |
| @@ -45,16 +45,14 @@ | @@ -45,16 +45,14 @@ | ||
| 45 | // 全局相关的 import | 45 | // 全局相关的 import |
| 46 | import { ref } from 'vue' | 46 | import { ref } from 'vue' |
| 47 | import { useI18n } from '@/hooks/web/useI18n' | 47 | import { useI18n } from '@/hooks/web/useI18n' |
| 48 | -import { useVxeGrid } from '@/hooks/web/useVxeGrid' | ||
| 49 | -import { VxeGridInstance } from 'vxe-table' | 48 | +import { useXTable } from '@/hooks/web/useXTable' |
| 50 | // 业务相关的 import | 49 | // 业务相关的 import |
| 51 | import * as OperateLogApi from '@/api/system/operatelog' | 50 | import * as OperateLogApi from '@/api/system/operatelog' |
| 52 | import { allSchemas } from './operatelog.data' | 51 | import { allSchemas } from './operatelog.data' |
| 53 | 52 | ||
| 54 | const { t } = useI18n() // 国际化 | 53 | const { t } = useI18n() // 国际化 |
| 55 | // 列表相关的变量 | 54 | // 列表相关的变量 |
| 56 | -const xGrid = ref<VxeGridInstance>() // 列表 Grid Ref | ||
| 57 | -const { gridOptions, exportList } = useVxeGrid<OperateLogApi.OperateLogVO>({ | 55 | +const [registerTable, { exportList }] = useXTable({ |
| 58 | allSchemas: allSchemas, | 56 | allSchemas: allSchemas, |
| 59 | getListApi: OperateLogApi.getOperateLogPageApi, | 57 | getListApi: OperateLogApi.getOperateLogPageApi, |
| 60 | exportListApi: OperateLogApi.exportOperateLogApi | 58 | exportListApi: OperateLogApi.exportOperateLogApi |
| @@ -73,6 +71,6 @@ const handleDetail = (row: OperateLogApi.OperateLogVO) => { | @@ -73,6 +71,6 @@ const handleDetail = (row: OperateLogApi.OperateLogVO) => { | ||
| 73 | 71 | ||
| 74 | // 导出操作 | 72 | // 导出操作 |
| 75 | const handleExport = async () => { | 73 | const handleExport = async () => { |
| 76 | - await exportList(xGrid, '操作日志.xls') | 74 | + await exportList('操作日志.xls') |
| 77 | } | 75 | } |
| 78 | </script> | 76 | </script> |
yudao-ui-admin-vue3/src/views/system/post/index.vue
| 1 | <template> | 1 | <template> |
| 2 | <ContentWrap> | 2 | <ContentWrap> |
| 3 | <!-- 列表 --> | 3 | <!-- 列表 --> |
| 4 | - <vxe-grid ref="xGrid" v-bind="gridOptions" class="xtable-scrollbar"> | 4 | + <XTable @register="registerTable"> |
| 5 | <template #toolbar_buttons> | 5 | <template #toolbar_buttons> |
| 6 | <!-- 操作:新增 --> | 6 | <!-- 操作:新增 --> |
| 7 | <XButton | 7 | <XButton |
| @@ -43,7 +43,7 @@ | @@ -43,7 +43,7 @@ | ||
| 43 | @click="handleDelete(row.id)" | 43 | @click="handleDelete(row.id)" |
| 44 | /> | 44 | /> |
| 45 | </template> | 45 | </template> |
| 46 | - </vxe-grid> | 46 | + </XTable> |
| 47 | </ContentWrap> | 47 | </ContentWrap> |
| 48 | <!-- 弹窗 --> | 48 | <!-- 弹窗 --> |
| 49 | <XModal id="postModel" :loading="modelLoading" v-model="modelVisible" :title="modelTitle"> | 49 | <XModal id="postModel" :loading="modelLoading" v-model="modelVisible" :title="modelTitle"> |
| @@ -79,8 +79,7 @@ | @@ -79,8 +79,7 @@ | ||
| 79 | import { ref, unref } from 'vue' | 79 | import { ref, unref } from 'vue' |
| 80 | import { useI18n } from '@/hooks/web/useI18n' | 80 | import { useI18n } from '@/hooks/web/useI18n' |
| 81 | import { useMessage } from '@/hooks/web/useMessage' | 81 | import { useMessage } from '@/hooks/web/useMessage' |
| 82 | -import { useVxeGrid } from '@/hooks/web/useVxeGrid' | ||
| 83 | -import { VxeGridInstance } from 'vxe-table' | 82 | +import { useXTable } from '@/hooks/web/useXTable' |
| 84 | import { FormExpose } from '@/components/Form' | 83 | import { FormExpose } from '@/components/Form' |
| 85 | // 业务相关的 import | 84 | // 业务相关的 import |
| 86 | import * as PostApi from '@/api/system/post' | 85 | import * as PostApi from '@/api/system/post' |
| @@ -89,8 +88,7 @@ import { rules, allSchemas } from './post.data' | @@ -89,8 +88,7 @@ import { rules, allSchemas } from './post.data' | ||
| 89 | const { t } = useI18n() // 国际化 | 88 | const { t } = useI18n() // 国际化 |
| 90 | const message = useMessage() // 消息弹窗 | 89 | const message = useMessage() // 消息弹窗 |
| 91 | // 列表相关的变量 | 90 | // 列表相关的变量 |
| 92 | -const xGrid = ref<VxeGridInstance>() // 列表 Grid Ref | ||
| 93 | -const { gridOptions, getList, deleteData, exportList } = useVxeGrid<PostApi.PostVO>({ | 91 | +const [registerTable, { reload, deleteData, exportList }] = useXTable({ |
| 94 | allSchemas: allSchemas, | 92 | allSchemas: allSchemas, |
| 95 | getListApi: PostApi.getPostPageApi, | 93 | getListApi: PostApi.getPostPageApi, |
| 96 | deleteApi: PostApi.deletePostApi, | 94 | deleteApi: PostApi.deletePostApi, |
| @@ -121,7 +119,7 @@ const handleCreate = () => { | @@ -121,7 +119,7 @@ const handleCreate = () => { | ||
| 121 | 119 | ||
| 122 | // 导出操作 | 120 | // 导出操作 |
| 123 | const handleExport = async () => { | 121 | const handleExport = async () => { |
| 124 | - await exportList(xGrid, '岗位列表.xls') | 122 | + await exportList('岗位列表.xls') |
| 125 | } | 123 | } |
| 126 | 124 | ||
| 127 | // 修改操作 | 125 | // 修改操作 |
| @@ -143,7 +141,7 @@ const handleDetail = async (rowId: number) => { | @@ -143,7 +141,7 @@ const handleDetail = async (rowId: number) => { | ||
| 143 | 141 | ||
| 144 | // 删除操作 | 142 | // 删除操作 |
| 145 | const handleDelete = async (rowId: number) => { | 143 | const handleDelete = async (rowId: number) => { |
| 146 | - await deleteData(xGrid, rowId) | 144 | + await deleteData(rowId) |
| 147 | } | 145 | } |
| 148 | 146 | ||
| 149 | // 提交新增/修改的表单 | 147 | // 提交新增/修改的表单 |
| @@ -167,7 +165,7 @@ const submitForm = async () => { | @@ -167,7 +165,7 @@ const submitForm = async () => { | ||
| 167 | } finally { | 165 | } finally { |
| 168 | actionLoading.value = false | 166 | actionLoading.value = false |
| 169 | // 刷新列表 | 167 | // 刷新列表 |
| 170 | - await getList(xGrid) | 168 | + await reload() |
| 171 | } | 169 | } |
| 172 | } | 170 | } |
| 173 | }) | 171 | }) |
yudao-ui-admin-vue3/src/views/system/role/index.vue
| 1 | <template> | 1 | <template> |
| 2 | <ContentWrap> | 2 | <ContentWrap> |
| 3 | <!-- 列表 --> | 3 | <!-- 列表 --> |
| 4 | - <vxe-grid ref="xGrid" v-bind="gridOptions" class="xtable-scrollbar"> | 4 | + <XTable @register="registerTable"> |
| 5 | <!-- 操作:新增 --> | 5 | <!-- 操作:新增 --> |
| 6 | <template #toolbar_buttons> | 6 | <template #toolbar_buttons> |
| 7 | <XButton | 7 | <XButton |
| @@ -49,7 +49,7 @@ | @@ -49,7 +49,7 @@ | ||
| 49 | @click="handleDelete(row.id)" | 49 | @click="handleDelete(row.id)" |
| 50 | /> | 50 | /> |
| 51 | </template> | 51 | </template> |
| 52 | - </vxe-grid> | 52 | + </XTable> |
| 53 | </ContentWrap> | 53 | </ContentWrap> |
| 54 | 54 | ||
| 55 | <XModal v-model="dialogVisible" :title="dialogTitle"> | 55 | <XModal v-model="dialogVisible" :title="dialogTitle"> |
| @@ -159,11 +159,10 @@ import { | @@ -159,11 +159,10 @@ import { | ||
| 159 | ElSwitch, | 159 | ElSwitch, |
| 160 | ElTag | 160 | ElTag |
| 161 | } from 'element-plus' | 161 | } from 'element-plus' |
| 162 | -import { VxeGridInstance } from 'vxe-table' | ||
| 163 | import { FormExpose } from '@/components/Form' | 162 | import { FormExpose } from '@/components/Form' |
| 164 | import { useI18n } from '@/hooks/web/useI18n' | 163 | import { useI18n } from '@/hooks/web/useI18n' |
| 165 | import { useMessage } from '@/hooks/web/useMessage' | 164 | import { useMessage } from '@/hooks/web/useMessage' |
| 166 | -import { useVxeGrid } from '@/hooks/web/useVxeGrid' | 165 | +import { useXTable } from '@/hooks/web/useXTable' |
| 167 | import { handleTree, defaultProps } from '@/utils/tree' | 166 | import { handleTree, defaultProps } from '@/utils/tree' |
| 168 | import { SystemDataScopeEnum } from '@/utils/constants' | 167 | import { SystemDataScopeEnum } from '@/utils/constants' |
| 169 | import { DICT_TYPE, getIntDictOptions } from '@/utils/dict' | 168 | import { DICT_TYPE, getIntDictOptions } from '@/utils/dict' |
| @@ -176,8 +175,7 @@ import * as PermissionApi from '@/api/system/permission' | @@ -176,8 +175,7 @@ import * as PermissionApi from '@/api/system/permission' | ||
| 176 | const { t } = useI18n() // 国际化 | 175 | const { t } = useI18n() // 国际化 |
| 177 | const message = useMessage() // 消息弹窗 | 176 | const message = useMessage() // 消息弹窗 |
| 178 | // 列表相关的变量 | 177 | // 列表相关的变量 |
| 179 | -const xGrid = ref<VxeGridInstance>() // 列表 Grid Ref | ||
| 180 | -const { gridOptions, getList, deleteData } = useVxeGrid<RoleApi.RoleVO>({ | 178 | +const [registerTable, { reload, deleteData }] = useXTable({ |
| 181 | allSchemas: allSchemas, | 179 | allSchemas: allSchemas, |
| 182 | getListApi: RoleApi.getRolePageApi, | 180 | getListApi: RoleApi.getRolePageApi, |
| 183 | deleteApi: RoleApi.deleteRoleApi | 181 | deleteApi: RoleApi.deleteRoleApi |
| @@ -221,7 +219,7 @@ const handleDetail = async (rowId: number) => { | @@ -221,7 +219,7 @@ const handleDetail = async (rowId: number) => { | ||
| 221 | 219 | ||
| 222 | // 删除操作 | 220 | // 删除操作 |
| 223 | const handleDelete = async (rowId: number) => { | 221 | const handleDelete = async (rowId: number) => { |
| 224 | - await deleteData(xGrid, rowId) | 222 | + await deleteData(rowId) |
| 225 | } | 223 | } |
| 226 | 224 | ||
| 227 | // 提交按钮 | 225 | // 提交按钮 |
| @@ -245,7 +243,7 @@ const submitForm = async () => { | @@ -245,7 +243,7 @@ const submitForm = async () => { | ||
| 245 | } finally { | 243 | } finally { |
| 246 | actionLoading.value = false | 244 | actionLoading.value = false |
| 247 | // 刷新列表 | 245 | // 刷新列表 |
| 248 | - await getList(xGrid) | 246 | + await reload() |
| 249 | } | 247 | } |
| 250 | } | 248 | } |
| 251 | }) | 249 | }) |
yudao-ui-admin-vue3/src/views/system/sensitiveWord/index.vue
| 1 | <template> | 1 | <template> |
| 2 | <ContentWrap> | 2 | <ContentWrap> |
| 3 | <!-- 列表 --> | 3 | <!-- 列表 --> |
| 4 | - <vxe-grid ref="xGrid" v-bind="gridOptions" class="xtable-scrollbar"> | 4 | + <XTable @register="registerTable"> |
| 5 | <template #toolbar_buttons> | 5 | <template #toolbar_buttons> |
| 6 | <!-- 操作:新增 --> | 6 | <!-- 操作:新增 --> |
| 7 | <XButton | 7 | <XButton |
| @@ -53,7 +53,7 @@ | @@ -53,7 +53,7 @@ | ||
| 53 | @click="handleDelete(row.id)" | 53 | @click="handleDelete(row.id)" |
| 54 | /> | 54 | /> |
| 55 | </template> | 55 | </template> |
| 56 | - </vxe-grid> | 56 | + </XTable> |
| 57 | </ContentWrap> | 57 | </ContentWrap> |
| 58 | 58 | ||
| 59 | <XModal v-model="dialogVisible" :title="dialogTitle"> | 59 | <XModal v-model="dialogVisible" :title="dialogTitle"> |
| @@ -106,8 +106,7 @@ | @@ -106,8 +106,7 @@ | ||
| 106 | import { onMounted, ref, unref } from 'vue' | 106 | import { onMounted, ref, unref } from 'vue' |
| 107 | import { useI18n } from '@/hooks/web/useI18n' | 107 | import { useI18n } from '@/hooks/web/useI18n' |
| 108 | import { useMessage } from '@/hooks/web/useMessage' | 108 | import { useMessage } from '@/hooks/web/useMessage' |
| 109 | -import { useVxeGrid } from '@/hooks/web/useVxeGrid' | ||
| 110 | -import { VxeGridInstance } from 'vxe-table' | 109 | +import { useXTable } from '@/hooks/web/useXTable' |
| 111 | import { FormExpose } from '@/components/Form' | 110 | import { FormExpose } from '@/components/Form' |
| 112 | import { ElTag, ElSelect, ElOption } from 'element-plus' | 111 | import { ElTag, ElSelect, ElOption } from 'element-plus' |
| 113 | import * as SensitiveWordApi from '@/api/system/sensitiveWord' | 112 | import * as SensitiveWordApi from '@/api/system/sensitiveWord' |
| @@ -116,14 +115,12 @@ import { rules, allSchemas } from './sensitiveWord.data' | @@ -116,14 +115,12 @@ import { rules, allSchemas } from './sensitiveWord.data' | ||
| 116 | const { t } = useI18n() // 国际化 | 115 | const { t } = useI18n() // 国际化 |
| 117 | const message = useMessage() // 消息弹窗 | 116 | const message = useMessage() // 消息弹窗 |
| 118 | // 列表相关的变量 | 117 | // 列表相关的变量 |
| 119 | -const xGrid = ref<VxeGridInstance>() // 列表 Grid Ref | ||
| 120 | -const { gridOptions, getList, deleteData, exportList } = | ||
| 121 | - useVxeGrid<SensitiveWordApi.SensitiveWordVO>({ | ||
| 122 | - allSchemas: allSchemas, | ||
| 123 | - getListApi: SensitiveWordApi.getSensitiveWordPageApi, | ||
| 124 | - deleteApi: SensitiveWordApi.deleteSensitiveWordApi, | ||
| 125 | - exportListApi: SensitiveWordApi.exportSensitiveWordApi | ||
| 126 | - }) | 118 | +const [registerTable, { reload, deleteData, exportList }] = useXTable({ |
| 119 | + allSchemas: allSchemas, | ||
| 120 | + getListApi: SensitiveWordApi.getSensitiveWordPageApi, | ||
| 121 | + deleteApi: SensitiveWordApi.deleteSensitiveWordApi, | ||
| 122 | + exportListApi: SensitiveWordApi.exportSensitiveWordApi | ||
| 123 | +}) | ||
| 127 | const actionLoading = ref(false) // 遮罩层 | 124 | const actionLoading = ref(false) // 遮罩层 |
| 128 | const actionType = ref('') // 操作按钮的类型 | 125 | const actionType = ref('') // 操作按钮的类型 |
| 129 | const dialogVisible = ref(false) // 是否显示弹出层 | 126 | const dialogVisible = ref(false) // 是否显示弹出层 |
| @@ -152,7 +149,7 @@ const handleCreate = () => { | @@ -152,7 +149,7 @@ const handleCreate = () => { | ||
| 152 | 149 | ||
| 153 | // 导出操作 | 150 | // 导出操作 |
| 154 | const handleExport = async () => { | 151 | const handleExport = async () => { |
| 155 | - await exportList(xGrid, '敏感词数据.xls') | 152 | + await exportList('敏感词数据.xls') |
| 156 | } | 153 | } |
| 157 | 154 | ||
| 158 | // 修改操作 | 155 | // 修改操作 |
| @@ -172,7 +169,7 @@ const handleDetail = async (rowId: number) => { | @@ -172,7 +169,7 @@ const handleDetail = async (rowId: number) => { | ||
| 172 | 169 | ||
| 173 | // 删除操作 | 170 | // 删除操作 |
| 174 | const handleDelete = async (rowId: number) => { | 171 | const handleDelete = async (rowId: number) => { |
| 175 | - await deleteData(xGrid, rowId) | 172 | + await deleteData(rowId) |
| 176 | } | 173 | } |
| 177 | 174 | ||
| 178 | // 提交按钮 | 175 | // 提交按钮 |
| @@ -196,7 +193,7 @@ const submitForm = async () => { | @@ -196,7 +193,7 @@ const submitForm = async () => { | ||
| 196 | } finally { | 193 | } finally { |
| 197 | actionLoading.value = false | 194 | actionLoading.value = false |
| 198 | // 刷新列表 | 195 | // 刷新列表 |
| 199 | - await getList(xGrid) | 196 | + await reload() |
| 200 | } | 197 | } |
| 201 | } | 198 | } |
| 202 | }) | 199 | }) |
yudao-ui-admin-vue3/src/views/system/sms/smsChannel/index.vue
| 1 | <template> | 1 | <template> |
| 2 | <ContentWrap> | 2 | <ContentWrap> |
| 3 | <!-- 列表 --> | 3 | <!-- 列表 --> |
| 4 | - <vxe-grid ref="xGrid" v-bind="gridOptions" class="xtable-scrollbar"> | 4 | + <XTable @register="registerTable"> |
| 5 | <!-- 操作:新增 --> | 5 | <!-- 操作:新增 --> |
| 6 | <template #toolbar_buttons> | 6 | <template #toolbar_buttons> |
| 7 | <XButton | 7 | <XButton |
| @@ -35,7 +35,7 @@ | @@ -35,7 +35,7 @@ | ||
| 35 | @click="handleDelete(row.id)" | 35 | @click="handleDelete(row.id)" |
| 36 | /> | 36 | /> |
| 37 | </template> | 37 | </template> |
| 38 | - </vxe-grid> | 38 | + </XTable> |
| 39 | </ContentWrap> | 39 | </ContentWrap> |
| 40 | 40 | ||
| 41 | <XModal id="smsChannel" v-model="dialogVisible" :title="dialogTitle"> | 41 | <XModal id="smsChannel" v-model="dialogVisible" :title="dialogTitle"> |
| @@ -72,8 +72,7 @@ | @@ -72,8 +72,7 @@ | ||
| 72 | import { ref, unref } from 'vue' | 72 | import { ref, unref } from 'vue' |
| 73 | import { useI18n } from '@/hooks/web/useI18n' | 73 | import { useI18n } from '@/hooks/web/useI18n' |
| 74 | import { useMessage } from '@/hooks/web/useMessage' | 74 | import { useMessage } from '@/hooks/web/useMessage' |
| 75 | -import { useVxeGrid } from '@/hooks/web/useVxeGrid' | ||
| 76 | -import { VxeGridInstance } from 'vxe-table' | 75 | +import { useXTable } from '@/hooks/web/useXTable' |
| 77 | import { FormExpose } from '@/components/Form' | 76 | import { FormExpose } from '@/components/Form' |
| 78 | // 业务相关的 import | 77 | // 业务相关的 import |
| 79 | import * as SmsChannelApi from '@/api/system/sms/smsChannel' | 78 | import * as SmsChannelApi from '@/api/system/sms/smsChannel' |
| @@ -83,8 +82,7 @@ const { t } = useI18n() // 国际化 | @@ -83,8 +82,7 @@ const { t } = useI18n() // 国际化 | ||
| 83 | const message = useMessage() // 消息弹窗 | 82 | const message = useMessage() // 消息弹窗 |
| 84 | 83 | ||
| 85 | // 列表相关的变量 | 84 | // 列表相关的变量 |
| 86 | -const xGrid = ref<VxeGridInstance>() // 列表 Grid Ref | ||
| 87 | -const { gridOptions, getList, deleteData } = useVxeGrid<SmsChannelApi.SmsChannelVO>({ | 85 | +const [registerTable, { reload, deleteData }] = useXTable({ |
| 88 | allSchemas: allSchemas, | 86 | allSchemas: allSchemas, |
| 89 | getListApi: SmsChannelApi.getSmsChannelPageApi, | 87 | getListApi: SmsChannelApi.getSmsChannelPageApi, |
| 90 | deleteApi: SmsChannelApi.deleteSmsChannelApi | 88 | deleteApi: SmsChannelApi.deleteSmsChannelApi |
| @@ -127,7 +125,7 @@ const handleDetail = async (rowId: number) => { | @@ -127,7 +125,7 @@ const handleDetail = async (rowId: number) => { | ||
| 127 | 125 | ||
| 128 | // 删除操作 | 126 | // 删除操作 |
| 129 | const handleDelete = async (rowId: number) => { | 127 | const handleDelete = async (rowId: number) => { |
| 130 | - await deleteData(xGrid, rowId) | 128 | + await deleteData(rowId) |
| 131 | } | 129 | } |
| 132 | 130 | ||
| 133 | // 提交按钮 | 131 | // 提交按钮 |
| @@ -151,7 +149,7 @@ const submitForm = async () => { | @@ -151,7 +149,7 @@ const submitForm = async () => { | ||
| 151 | } finally { | 149 | } finally { |
| 152 | actionLoading.value = false | 150 | actionLoading.value = false |
| 153 | // 刷新列表 | 151 | // 刷新列表 |
| 154 | - await getList(xGrid) | 152 | + await reload() |
| 155 | } | 153 | } |
| 156 | } | 154 | } |
| 157 | }) | 155 | }) |
yudao-ui-admin-vue3/src/views/system/sms/smsLog/index.vue
| 1 | <template> | 1 | <template> |
| 2 | <ContentWrap> | 2 | <ContentWrap> |
| 3 | <!-- 列表 --> | 3 | <!-- 列表 --> |
| 4 | - <vxe-grid ref="xGrid" v-bind="gridOptions" class="xtable-scrollbar"> | 4 | + <XTable @register="registerTable"> |
| 5 | <!-- 操作:导出 --> | 5 | <!-- 操作:导出 --> |
| 6 | <template #toolbar_buttons> | 6 | <template #toolbar_buttons> |
| 7 | <XButton | 7 | <XButton |
| @@ -14,7 +14,7 @@ | @@ -14,7 +14,7 @@ | ||
| 14 | <template #actionbtns_default="{ row }"> | 14 | <template #actionbtns_default="{ row }"> |
| 15 | <XTextButton preIcon="ep:view" :title="t('action.detail')" @click="handleDetail(row)" /> | 15 | <XTextButton preIcon="ep:view" :title="t('action.detail')" @click="handleDetail(row)" /> |
| 16 | </template> | 16 | </template> |
| 17 | - </vxe-grid> | 17 | + </XTable> |
| 18 | </ContentWrap> | 18 | </ContentWrap> |
| 19 | 19 | ||
| 20 | <XModal id="smsLog" v-model="dialogVisible" :title="dialogTitle"> | 20 | <XModal id="smsLog" v-model="dialogVisible" :title="dialogTitle"> |
| @@ -34,15 +34,13 @@ | @@ -34,15 +34,13 @@ | ||
| 34 | // 全局相关的 import | 34 | // 全局相关的 import |
| 35 | import { ref } from 'vue' | 35 | import { ref } from 'vue' |
| 36 | import { useI18n } from '@/hooks/web/useI18n' | 36 | import { useI18n } from '@/hooks/web/useI18n' |
| 37 | -import { useVxeGrid } from '@/hooks/web/useVxeGrid' | ||
| 38 | -import { VxeGridInstance } from 'vxe-table' | 37 | +import { useXTable } from '@/hooks/web/useXTable' |
| 39 | import { allSchemas } from './sms.log.data' | 38 | import { allSchemas } from './sms.log.data' |
| 40 | import * as SmsLoglApi from '@/api/system/sms/smsLog' | 39 | import * as SmsLoglApi from '@/api/system/sms/smsLog' |
| 41 | const { t } = useI18n() // 国际化 | 40 | const { t } = useI18n() // 国际化 |
| 42 | 41 | ||
| 43 | // 列表相关的变量 | 42 | // 列表相关的变量 |
| 44 | -const xGrid = ref<VxeGridInstance>() // 列表 Grid Ref | ||
| 45 | -const { gridOptions, exportList } = useVxeGrid<SmsLoglApi.SmsLogVO>({ | 43 | +const [registerTable, { exportList }] = useXTable({ |
| 46 | allSchemas: allSchemas, | 44 | allSchemas: allSchemas, |
| 47 | getListApi: SmsLoglApi.getSmsLogPageApi, | 45 | getListApi: SmsLoglApi.getSmsLogPageApi, |
| 48 | exportListApi: SmsLoglApi.exportSmsLogApi | 46 | exportListApi: SmsLoglApi.exportSmsLogApi |
| @@ -62,6 +60,6 @@ const handleDetail = (row: SmsLoglApi.SmsLogVO) => { | @@ -62,6 +60,6 @@ const handleDetail = (row: SmsLoglApi.SmsLogVO) => { | ||
| 62 | 60 | ||
| 63 | // 导出操作 | 61 | // 导出操作 |
| 64 | const handleExport = async () => { | 62 | const handleExport = async () => { |
| 65 | - await exportList(xGrid, '短信日志.xls') | 63 | + await exportList('短信日志.xls') |
| 66 | } | 64 | } |
| 67 | </script> | 65 | </script> |
yudao-ui-admin-vue3/src/views/system/sms/smsTemplate/index.vue
| 1 | <template> | 1 | <template> |
| 2 | <ContentWrap> | 2 | <ContentWrap> |
| 3 | <!-- 列表 --> | 3 | <!-- 列表 --> |
| 4 | - <vxe-grid ref="xGrid" v-bind="gridOptions" class="xtable-scrollbar"> | 4 | + <XTable @register="registerTable"> |
| 5 | <!-- 操作:新增 --> | 5 | <!-- 操作:新增 --> |
| 6 | <template #toolbar_buttons> | 6 | <template #toolbar_buttons> |
| 7 | <XButton | 7 | <XButton |
| @@ -41,7 +41,7 @@ | @@ -41,7 +41,7 @@ | ||
| 41 | @click="handleDelete(row.id)" | 41 | @click="handleDelete(row.id)" |
| 42 | /> | 42 | /> |
| 43 | </template> | 43 | </template> |
| 44 | - </vxe-grid> | 44 | + </XTable> |
| 45 | </ContentWrap> | 45 | </ContentWrap> |
| 46 | <XModal id="smsTemplate" v-model="dialogVisible" :title="dialogTitle"> | 46 | <XModal id="smsTemplate" v-model="dialogVisible" :title="dialogTitle"> |
| 47 | <!-- 对话框(添加 / 修改) --> | 47 | <!-- 对话框(添加 / 修改) --> |
| @@ -113,8 +113,7 @@ | @@ -113,8 +113,7 @@ | ||
| 113 | import { ref, unref } from 'vue' | 113 | import { ref, unref } from 'vue' |
| 114 | import { useI18n } from '@/hooks/web/useI18n' | 114 | import { useI18n } from '@/hooks/web/useI18n' |
| 115 | import { useMessage } from '@/hooks/web/useMessage' | 115 | import { useMessage } from '@/hooks/web/useMessage' |
| 116 | -import { useVxeGrid } from '@/hooks/web/useVxeGrid' | ||
| 117 | -import { VxeGridInstance } from 'vxe-table' | 116 | +import { useXTable } from '@/hooks/web/useXTable' |
| 118 | import { FormExpose } from '@/components/Form' | 117 | import { FormExpose } from '@/components/Form' |
| 119 | import { ElForm, ElFormItem, ElInput } from 'element-plus' | 118 | import { ElForm, ElFormItem, ElInput } from 'element-plus' |
| 120 | // 业务相关的 import | 119 | // 业务相关的 import |
| @@ -125,8 +124,7 @@ const { t } = useI18n() // 国际化 | @@ -125,8 +124,7 @@ const { t } = useI18n() // 国际化 | ||
| 125 | const message = useMessage() // 消息弹窗 | 124 | const message = useMessage() // 消息弹窗 |
| 126 | 125 | ||
| 127 | // 列表相关的变量 | 126 | // 列表相关的变量 |
| 128 | -const xGrid = ref<VxeGridInstance>() // 列表 Grid Ref | ||
| 129 | -const { gridOptions, getList, deleteData } = useVxeGrid<SmsTemplateApi.SmsTemplateVO>({ | 127 | +const [registerTable, { reload, deleteData }] = useXTable({ |
| 130 | allSchemas: allSchemas, | 128 | allSchemas: allSchemas, |
| 131 | getListApi: SmsTemplateApi.getSmsTemplatePageApi, | 129 | getListApi: SmsTemplateApi.getSmsTemplatePageApi, |
| 132 | deleteApi: SmsTemplateApi.deleteSmsTemplateApi | 130 | deleteApi: SmsTemplateApi.deleteSmsTemplateApi |
| @@ -170,7 +168,7 @@ const handleDetail = async (rowId: number) => { | @@ -170,7 +168,7 @@ const handleDetail = async (rowId: number) => { | ||
| 170 | 168 | ||
| 171 | // 删除操作 | 169 | // 删除操作 |
| 172 | const handleDelete = async (rowId: number) => { | 170 | const handleDelete = async (rowId: number) => { |
| 173 | - await deleteData(xGrid, rowId) | 171 | + await deleteData(rowId) |
| 174 | } | 172 | } |
| 175 | 173 | ||
| 176 | // 提交按钮 | 174 | // 提交按钮 |
| @@ -194,7 +192,7 @@ const submitForm = async () => { | @@ -194,7 +192,7 @@ const submitForm = async () => { | ||
| 194 | } finally { | 192 | } finally { |
| 195 | actionLoading.value = false | 193 | actionLoading.value = false |
| 196 | // 刷新列表 | 194 | // 刷新列表 |
| 197 | - await getList(xGrid) | 195 | + await reload() |
| 198 | } | 196 | } |
| 199 | } | 197 | } |
| 200 | }) | 198 | }) |
yudao-ui-admin-vue3/src/views/system/tenant/index.vue
| 1 | <template> | 1 | <template> |
| 2 | <ContentWrap> | 2 | <ContentWrap> |
| 3 | <!-- 列表 --> | 3 | <!-- 列表 --> |
| 4 | - <vxe-grid ref="xGrid" v-bind="gridOptions" class="xtable-scrollbar"> | 4 | + <XTable @register="registerTable"> |
| 5 | <template #toolbar_buttons> | 5 | <template #toolbar_buttons> |
| 6 | <!-- 操作:新增 --> | 6 | <!-- 操作:新增 --> |
| 7 | <XButton | 7 | <XButton |
| @@ -49,7 +49,7 @@ | @@ -49,7 +49,7 @@ | ||
| 49 | @click="handleDelete(row.id)" | 49 | @click="handleDelete(row.id)" |
| 50 | /> | 50 | /> |
| 51 | </template> | 51 | </template> |
| 52 | - </vxe-grid> | 52 | + </XTable> |
| 53 | </ContentWrap> | 53 | </ContentWrap> |
| 54 | <XModal v-model="dialogVisible" :title="dialogTitle"> | 54 | <XModal v-model="dialogVisible" :title="dialogTitle"> |
| 55 | <!-- 对话框(添加 / 修改) --> | 55 | <!-- 对话框(添加 / 修改) --> |
| @@ -89,8 +89,7 @@ | @@ -89,8 +89,7 @@ | ||
| 89 | import { ref, unref } from 'vue' | 89 | import { ref, unref } from 'vue' |
| 90 | import { useI18n } from '@/hooks/web/useI18n' | 90 | import { useI18n } from '@/hooks/web/useI18n' |
| 91 | import { useMessage } from '@/hooks/web/useMessage' | 91 | import { useMessage } from '@/hooks/web/useMessage' |
| 92 | -import { useVxeGrid } from '@/hooks/web/useVxeGrid' | ||
| 93 | -import { VxeGridInstance } from 'vxe-table' | 92 | +import { useXTable } from '@/hooks/web/useXTable' |
| 94 | import { ElTag } from 'element-plus' | 93 | import { ElTag } from 'element-plus' |
| 95 | import { FormExpose } from '@/components/Form' | 94 | import { FormExpose } from '@/components/Form' |
| 96 | import * as TenantApi from '@/api/system/tenant' | 95 | import * as TenantApi from '@/api/system/tenant' |
| @@ -99,8 +98,7 @@ import { rules, allSchemas, tenantPackageOption } from './tenant.data' | @@ -99,8 +98,7 @@ import { rules, allSchemas, tenantPackageOption } from './tenant.data' | ||
| 99 | const { t } = useI18n() // 国际化 | 98 | const { t } = useI18n() // 国际化 |
| 100 | const message = useMessage() // 消息弹窗 | 99 | const message = useMessage() // 消息弹窗 |
| 101 | // 列表相关的变量 | 100 | // 列表相关的变量 |
| 102 | -const xGrid = ref<VxeGridInstance>() // 列表 Grid Ref | ||
| 103 | -const { gridOptions, getList, deleteData, exportList } = useVxeGrid<TenantApi.TenantVO>({ | 101 | +const [registerTable, { reload, deleteData, exportList }] = useXTable({ |
| 104 | allSchemas: allSchemas, | 102 | allSchemas: allSchemas, |
| 105 | getListApi: TenantApi.getTenantPageApi, | 103 | getListApi: TenantApi.getTenantPageApi, |
| 106 | deleteApi: TenantApi.deleteTenantApi, | 104 | deleteApi: TenantApi.deleteTenantApi, |
| @@ -153,12 +151,12 @@ const handleDetail = async (rowId: number) => { | @@ -153,12 +151,12 @@ const handleDetail = async (rowId: number) => { | ||
| 153 | 151 | ||
| 154 | // 删除操作 | 152 | // 删除操作 |
| 155 | const handleDelete = async (rowId: number) => { | 153 | const handleDelete = async (rowId: number) => { |
| 156 | - await deleteData(xGrid, rowId) | 154 | + await deleteData(rowId) |
| 157 | } | 155 | } |
| 158 | 156 | ||
| 159 | // 导出操作 | 157 | // 导出操作 |
| 160 | const handleExport = async () => { | 158 | const handleExport = async () => { |
| 161 | - await exportList(xGrid, '租户列表.xls') | 159 | + await exportList('租户列表.xls') |
| 162 | } | 160 | } |
| 163 | 161 | ||
| 164 | // 提交按钮 | 162 | // 提交按钮 |
| @@ -183,7 +181,7 @@ const submitForm = async () => { | @@ -183,7 +181,7 @@ const submitForm = async () => { | ||
| 183 | } finally { | 181 | } finally { |
| 184 | actionLoading.value = false | 182 | actionLoading.value = false |
| 185 | // 刷新列表 | 183 | // 刷新列表 |
| 186 | - await getList(xGrid) | 184 | + await reload() |
| 187 | } | 185 | } |
| 188 | } | 186 | } |
| 189 | }) | 187 | }) |
yudao-ui-admin-vue3/src/views/system/tenantPackage/index.vue
| 1 | <template> | 1 | <template> |
| 2 | <ContentWrap> | 2 | <ContentWrap> |
| 3 | <!-- 列表 --> | 3 | <!-- 列表 --> |
| 4 | - <vxe-grid ref="xGrid" v-bind="gridOptions" class="xtable-scrollbar"> | 4 | + <XTable @register="registerTable"> |
| 5 | <template #toolbar_buttons> | 5 | <template #toolbar_buttons> |
| 6 | <XButton | 6 | <XButton |
| 7 | type="primary" | 7 | type="primary" |
| @@ -14,7 +14,7 @@ | @@ -14,7 +14,7 @@ | ||
| 14 | <XTextButton preIcon="ep:edit" :title="t('action.edit')" @click="handleUpdate(row.id)" /> | 14 | <XTextButton preIcon="ep:edit" :title="t('action.edit')" @click="handleUpdate(row.id)" /> |
| 15 | <XTextButton preIcon="ep:delete" :title="t('action.del')" @click="handleDelete(row.id)" /> | 15 | <XTextButton preIcon="ep:delete" :title="t('action.del')" @click="handleDelete(row.id)" /> |
| 16 | </template> | 16 | </template> |
| 17 | - </vxe-grid> | 17 | + </XTable> |
| 18 | </ContentWrap> | 18 | </ContentWrap> |
| 19 | <XModal v-model="dialogVisible" :title="dialogTitle"> | 19 | <XModal v-model="dialogVisible" :title="dialogTitle"> |
| 20 | <!-- 对话框(添加 / 修改) --> | 20 | <!-- 对话框(添加 / 修改) --> |
| @@ -69,8 +69,7 @@ import { onMounted, ref, unref } from 'vue' | @@ -69,8 +69,7 @@ import { onMounted, ref, unref } from 'vue' | ||
| 69 | import { handleTree, defaultProps } from '@/utils/tree' | 69 | import { handleTree, defaultProps } from '@/utils/tree' |
| 70 | import { useI18n } from '@/hooks/web/useI18n' | 70 | import { useI18n } from '@/hooks/web/useI18n' |
| 71 | import { useMessage } from '@/hooks/web/useMessage' | 71 | import { useMessage } from '@/hooks/web/useMessage' |
| 72 | -import { useVxeGrid } from '@/hooks/web/useVxeGrid' | ||
| 73 | -import { VxeGridInstance } from 'vxe-table' | 72 | +import { useXTable } from '@/hooks/web/useXTable' |
| 74 | import { FormExpose } from '@/components/Form' | 73 | import { FormExpose } from '@/components/Form' |
| 75 | import { ElCard, ElSwitch, ElTree } from 'element-plus' | 74 | import { ElCard, ElSwitch, ElTree } from 'element-plus' |
| 76 | // 业务相关的 import | 75 | // 业务相关的 import |
| @@ -86,7 +85,6 @@ const menuExpand = ref(false) | @@ -86,7 +85,6 @@ const menuExpand = ref(false) | ||
| 86 | const menuNodeAll = ref(false) | 85 | const menuNodeAll = ref(false) |
| 87 | const treeRef = ref<InstanceType<typeof ElTree>>() | 86 | const treeRef = ref<InstanceType<typeof ElTree>>() |
| 88 | const treeNodeAll = ref(false) | 87 | const treeNodeAll = ref(false) |
| 89 | -const xGrid = ref<VxeGridInstance>() // 列表 Grid Ref | ||
| 90 | const formRef = ref<FormExpose>() // 表单 Ref | 88 | const formRef = ref<FormExpose>() // 表单 Ref |
| 91 | const loading = ref(false) // 遮罩层 | 89 | const loading = ref(false) // 遮罩层 |
| 92 | const actionType = ref('') // 操作按钮的类型 | 90 | const actionType = ref('') // 操作按钮的类型 |
| @@ -102,7 +100,7 @@ const getTree = async () => { | @@ -102,7 +100,7 @@ const getTree = async () => { | ||
| 102 | menuOptions.value = handleTree(res) | 100 | menuOptions.value = handleTree(res) |
| 103 | } | 101 | } |
| 104 | 102 | ||
| 105 | -const { gridOptions, getList, deleteData } = useVxeGrid<TenantPackageApi.TenantPackageVO>({ | 103 | +const [registerTable, { reload, deleteData }] = useXTable({ |
| 106 | allSchemas: allSchemas, | 104 | allSchemas: allSchemas, |
| 107 | getListApi: TenantPackageApi.getTenantPackageTypePageApi, | 105 | getListApi: TenantPackageApi.getTenantPackageTypePageApi, |
| 108 | deleteApi: TenantPackageApi.deleteTenantPackageTypeApi | 106 | deleteApi: TenantPackageApi.deleteTenantPackageTypeApi |
| @@ -136,7 +134,7 @@ const handleUpdate = async (rowId: number) => { | @@ -136,7 +134,7 @@ const handleUpdate = async (rowId: number) => { | ||
| 136 | 134 | ||
| 137 | // 删除操作 | 135 | // 删除操作 |
| 138 | const handleDelete = async (rowId: number) => { | 136 | const handleDelete = async (rowId: number) => { |
| 139 | - await deleteData(xGrid, rowId) | 137 | + await deleteData(rowId) |
| 140 | } | 138 | } |
| 141 | 139 | ||
| 142 | // 提交按钮 | 140 | // 提交按钮 |
| @@ -162,7 +160,7 @@ const submitForm = async () => { | @@ -162,7 +160,7 @@ const submitForm = async () => { | ||
| 162 | } finally { | 160 | } finally { |
| 163 | loading.value = false | 161 | loading.value = false |
| 164 | // 刷新列表 | 162 | // 刷新列表 |
| 165 | - await getList(xGrid) | 163 | + await reload() |
| 166 | } | 164 | } |
| 167 | } | 165 | } |
| 168 | }) | 166 | }) |
yudao-ui-admin-vue3/src/views/system/user/index.vue
| @@ -27,7 +27,7 @@ | @@ -27,7 +27,7 @@ | ||
| 27 | </div> | 27 | </div> |
| 28 | </template> | 28 | </template> |
| 29 | <!-- 列表 --> | 29 | <!-- 列表 --> |
| 30 | - <vxe-grid ref="xGrid" v-bind="gridOptions" class="xtable-scrollbar"> | 30 | + <XTable @register="registerTable"> |
| 31 | <template #toolbar_buttons> | 31 | <template #toolbar_buttons> |
| 32 | <!-- 操作:新增 --> | 32 | <!-- 操作:新增 --> |
| 33 | <XButton | 33 | <XButton |
| @@ -119,7 +119,7 @@ | @@ -119,7 +119,7 @@ | ||
| 119 | </template> | 119 | </template> |
| 120 | </el-dropdown> | 120 | </el-dropdown> |
| 121 | </template> | 121 | </template> |
| 122 | - </vxe-grid> | 122 | + </XTable> |
| 123 | </el-card> | 123 | </el-card> |
| 124 | </div> | 124 | </div> |
| 125 | <XModal v-model="dialogVisible" :title="dialogTitle"> | 125 | <XModal v-model="dialogVisible" :title="dialogTitle"> |
| @@ -283,14 +283,13 @@ import { | @@ -283,14 +283,13 @@ import { | ||
| 283 | UploadRawFile | 283 | UploadRawFile |
| 284 | } from 'element-plus' | 284 | } from 'element-plus' |
| 285 | import { useRouter } from 'vue-router' | 285 | import { useRouter } from 'vue-router' |
| 286 | -import { VxeGridInstance } from 'vxe-table' | ||
| 287 | import { handleTree, defaultProps } from '@/utils/tree' | 286 | import { handleTree, defaultProps } from '@/utils/tree' |
| 288 | import download from '@/utils/download' | 287 | import download from '@/utils/download' |
| 289 | import { CommonStatusEnum } from '@/utils/constants' | 288 | import { CommonStatusEnum } from '@/utils/constants' |
| 290 | import { getAccessToken, getTenantId } from '@/utils/auth' | 289 | import { getAccessToken, getTenantId } from '@/utils/auth' |
| 291 | import { useI18n } from '@/hooks/web/useI18n' | 290 | import { useI18n } from '@/hooks/web/useI18n' |
| 292 | import { useMessage } from '@/hooks/web/useMessage' | 291 | import { useMessage } from '@/hooks/web/useMessage' |
| 293 | -import { useVxeGrid } from '@/hooks/web/useVxeGrid' | 292 | +import { useXTable } from '@/hooks/web/useXTable' |
| 294 | import { FormExpose } from '@/components/Form' | 293 | import { FormExpose } from '@/components/Form' |
| 295 | import { rules, allSchemas } from './user.data' | 294 | import { rules, allSchemas } from './user.data' |
| 296 | import * as UserApi from '@/api/system/user' | 295 | import * as UserApi from '@/api/system/user' |
| @@ -312,10 +311,9 @@ const queryParams = reactive({ | @@ -312,10 +311,9 @@ const queryParams = reactive({ | ||
| 312 | // ========== 列表相关 ========== | 311 | // ========== 列表相关 ========== |
| 313 | const tableTitle = ref('用户列表') | 312 | const tableTitle = ref('用户列表') |
| 314 | // 列表相关的变量 | 313 | // 列表相关的变量 |
| 315 | -const xGrid = ref<VxeGridInstance>() // 列表 Grid Ref | ||
| 316 | -const { gridOptions, getList, deleteData, exportList } = useVxeGrid<UserApi.UserVO>({ | 314 | +const [registerTable, { reload, deleteData, exportList }] = useXTable({ |
| 317 | allSchemas: allSchemas, | 315 | allSchemas: allSchemas, |
| 318 | - queryParams: queryParams, | 316 | + params: queryParams, |
| 319 | getListApi: UserApi.getUserPageApi, | 317 | getListApi: UserApi.getUserPageApi, |
| 320 | deleteApi: UserApi.deleteUserApi, | 318 | deleteApi: UserApi.deleteUserApi, |
| 321 | exportListApi: UserApi.exportUserApi | 319 | exportListApi: UserApi.exportUserApi |
| @@ -334,7 +332,7 @@ const filterNode = (value: string, data: Tree) => { | @@ -334,7 +332,7 @@ const filterNode = (value: string, data: Tree) => { | ||
| 334 | } | 332 | } |
| 335 | const handleDeptNodeClick = async (row: { [key: string]: any }) => { | 333 | const handleDeptNodeClick = async (row: { [key: string]: any }) => { |
| 336 | queryParams.deptId = row.id | 334 | queryParams.deptId = row.id |
| 337 | - await getList(xGrid) | 335 | + await reload() |
| 338 | } | 336 | } |
| 339 | const { push } = useRouter() | 337 | const { push } = useRouter() |
| 340 | const handleDeptEdit = () => { | 338 | const handleDeptEdit = () => { |
| @@ -409,7 +407,7 @@ const handleDetail = async (rowId: number) => { | @@ -409,7 +407,7 @@ const handleDetail = async (rowId: number) => { | ||
| 409 | } | 407 | } |
| 410 | // 删除操作 | 408 | // 删除操作 |
| 411 | const handleDelete = async (rowId: number) => { | 409 | const handleDelete = async (rowId: number) => { |
| 412 | - await deleteData(xGrid, rowId) | 410 | + await deleteData(rowId) |
| 413 | } | 411 | } |
| 414 | // 提交按钮 | 412 | // 提交按钮 |
| 415 | const submitForm = async () => { | 413 | const submitForm = async () => { |
| @@ -428,7 +426,7 @@ const submitForm = async () => { | @@ -428,7 +426,7 @@ const submitForm = async () => { | ||
| 428 | } finally { | 426 | } finally { |
| 429 | // unref(formRef)?.setSchema(allSchemas.formSchema) | 427 | // unref(formRef)?.setSchema(allSchemas.formSchema) |
| 430 | // 刷新列表 | 428 | // 刷新列表 |
| 431 | - await getList(xGrid) | 429 | + await reload() |
| 432 | loading.value = false | 430 | loading.value = false |
| 433 | } | 431 | } |
| 434 | } | 432 | } |
| @@ -443,7 +441,7 @@ const handleStatusChange = async (row: UserApi.UserVO) => { | @@ -443,7 +441,7 @@ const handleStatusChange = async (row: UserApi.UserVO) => { | ||
| 443 | await UserApi.updateUserStatusApi(row.id, row.status) | 441 | await UserApi.updateUserStatusApi(row.id, row.status) |
| 444 | message.success(text + '成功') | 442 | message.success(text + '成功') |
| 445 | // 刷新列表 | 443 | // 刷新列表 |
| 446 | - await getList(xGrid) | 444 | + await reload() |
| 447 | }) | 445 | }) |
| 448 | .catch(() => { | 446 | .catch(() => { |
| 449 | row.status = | 447 | row.status = |
| @@ -544,7 +542,7 @@ const handleFileSuccess = async (response: any): Promise<void> => { | @@ -544,7 +542,7 @@ const handleFileSuccess = async (response: any): Promise<void> => { | ||
| 544 | text += '< ' + username + ': ' + data.failureUsernames[username] + ' >' | 542 | text += '< ' + username + ': ' + data.failureUsernames[username] + ' >' |
| 545 | } | 543 | } |
| 546 | message.alert(text) | 544 | message.alert(text) |
| 547 | - await getList(xGrid) | 545 | + await reload() |
| 548 | } | 546 | } |
| 549 | // 文件数超出提示 | 547 | // 文件数超出提示 |
| 550 | const handleExceed = (): void => { | 548 | const handleExceed = (): void => { |