From 5312951359b5d919b6c1a03783aa6bbaf8ec0044 Mon Sep 17 00:00:00 2001 From: kailong321200875 <321200875@qq.com> Date: Mon, 10 Jul 2023 20:40:36 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=99=BB=E5=BD=95=E9=A1=B5=E6=94=B9?= =?UTF-8?q?=E9=80=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Table/index.ts | 1 - src/components/Table/src/Table.vue | 14 +- src/hooks/web/useTable.ts | 9 -- src/locales/en.ts | 3 +- src/locales/zh-CN.ts | 3 +- src/permission.ts | 80 +++++----- src/views/Components/Table/UseTableDemo.vue | 8 + src/views/Login/components/LoginForm.vue | 155 ++++++++++++-------- src/views/Login/components/RegisterForm.vue | 82 +++++++---- 9 files changed, 194 insertions(+), 161 deletions(-) diff --git a/src/components/Table/index.ts b/src/components/Table/index.ts index 17995968b..472ae5dc0 100644 --- a/src/components/Table/index.ts +++ b/src/components/Table/index.ts @@ -15,7 +15,6 @@ export interface TableExpose { setColumn: (columnProps: TableSetProps[]) => void addColumn: (column: TableColumn, index?: number) => void delColumn: (field: string) => void - selections: Recordable[] elTableRef: ComponentRef } diff --git a/src/components/Table/src/Table.vue b/src/components/Table/src/Table.vue index 0ea708cf1..cb5f09fed 100644 --- a/src/components/Table/src/Table.vue +++ b/src/components/Table/src/Table.vue @@ -230,18 +230,11 @@ export default defineComponent({ } } - const selections = ref([]) - - const selectionChange = (selection: Recordable[]) => { - selections.value = selection - } - expose({ setProps, setColumn, delColumn, addColumn, - selections, elTableRef }) @@ -409,12 +402,7 @@ export default defineComponent({ return () => (
- + {{ default: () => renderTableColumn(), empty: () => getSlot(slots, 'empty') || unref(getProps).emptyText, diff --git a/src/hooks/web/useTable.ts b/src/hooks/web/useTable.ts index e1fa3f9d2..ec8b46cf2 100644 --- a/src/hooks/web/useTable.ts +++ b/src/hooks/web/useTable.ts @@ -143,15 +143,6 @@ export const useTable = (config: UseTableConfig) => { table?.delColumn(field) }, - /** - * @description 获取全选数据 - * @returns - */ - getSelections: async () => { - const table = await getTable() - return table?.selections || [] - }, - /** * @description 获取ElTable组件的实例 * @returns ElTable instance diff --git a/src/locales/en.ts b/src/locales/en.ts index 51eb88288..dce73655d 100644 --- a/src/locales/en.ts +++ b/src/locales/en.ts @@ -421,7 +421,8 @@ export default { delOrAddAction: 'Delete or add action', showOrHiddenStripe: 'Show or hidden stripe', showOrHiddenBorder: 'Show or hidden border', - fixedHeaderOrAuto: 'Fixed header or auto' + fixedHeaderOrAuto: 'Fixed header or auto', + getSelections: 'Get selections' }, richText: { richText: 'Rich text', diff --git a/src/locales/zh-CN.ts b/src/locales/zh-CN.ts index 494da9f43..3fda1f904 100644 --- a/src/locales/zh-CN.ts +++ b/src/locales/zh-CN.ts @@ -416,7 +416,8 @@ export default { delOrAddAction: '删除/添加操作列', showOrHiddenStripe: '显示/隐藏斑马纹', showOrHiddenBorder: '显示/隐藏边框', - fixedHeaderOrAuto: '固定头部/自动' + fixedHeaderOrAuto: '固定头部/自动', + getSelections: '获取多选数据' }, richText: { richText: '富文本', diff --git a/src/permission.ts b/src/permission.ts index 0f3dfacf9..98f99a29f 100644 --- a/src/permission.ts +++ b/src/permission.ts @@ -26,52 +26,52 @@ const whiteList = ['/login'] // 不重定向白名单 router.beforeEach(async (to, from, next) => { start() loadStart() - // if (!wsCache.get(appStore.getUserInfo)) { - if (to.path === '/login') { - next({ path: '/' }) - } else { - if (!dictStore.getIsSetDict) { - // 获取所有字典 - const res = await getDictApi() - if (res) { - dictStore.setDictObj(res.data) - dictStore.setIsSetDict(true) + if (wsCache.get(appStore.getUserInfo)) { + if (to.path === '/login') { + next({ path: '/' }) + } else { + if (!dictStore.getIsSetDict) { + // 获取所有字典 + const res = await getDictApi() + if (res) { + dictStore.setDictObj(res.data) + dictStore.setIsSetDict(true) + } + } + if (permissionStore.getIsAddRouters) { + next() + return } - } - if (permissionStore.getIsAddRouters) { - next() - return - } - // 开发者可根据实际情况进行修改 - const roleRouters = wsCache.get('roleRouters') || [] - const userInfo = wsCache.get(appStore.getUserInfo) + // 开发者可根据实际情况进行修改 + const roleRouters = wsCache.get('roleRouters') || [] + const userInfo = wsCache.get(appStore.getUserInfo) - // 是否使用动态路由 - if (appStore.getDynamicRouter) { - userInfo.role === 'admin' - ? await permissionStore.generateRoutes('admin', roleRouters as AppCustomRouteRecordRaw[]) - : await permissionStore.generateRoutes('test', roleRouters as string[]) + // 是否使用动态路由 + if (appStore.getDynamicRouter) { + userInfo.role === 'admin' + ? await permissionStore.generateRoutes('admin', roleRouters as AppCustomRouteRecordRaw[]) + : await permissionStore.generateRoutes('test', roleRouters as string[]) + } else { + await permissionStore.generateRoutes('none') + } + + permissionStore.getAddRouters.forEach((route) => { + router.addRoute(route as unknown as RouteRecordRaw) // 动态添加可访问路由表 + }) + const redirectPath = from.query.redirect || to.path + const redirect = decodeURIComponent(redirectPath as string) + const nextData = to.path === redirect ? { ...to, replace: true } : { path: redirect } + permissionStore.setIsAddRouters(true) + next(nextData) + } + } else { + if (whiteList.indexOf(to.path) !== -1) { + next() } else { - await permissionStore.generateRoutes('none') + next(`/login?redirect=${to.path}`) // 否则全部重定向到登录页 } - - permissionStore.getAddRouters.forEach((route) => { - router.addRoute(route as unknown as RouteRecordRaw) // 动态添加可访问路由表 - }) - const redirectPath = from.query.redirect || to.path - const redirect = decodeURIComponent(redirectPath as string) - const nextData = to.path === redirect ? { ...to, replace: true } : { path: redirect } - permissionStore.setIsAddRouters(true) - next(nextData) } - // } else { - // if (whiteList.indexOf(to.path) !== -1) { - // next() - // } else { - // next(`/login?redirect=${to.path}`) // 否则全部重定向到登录页 - // } - // } }) router.afterEach((to) => { diff --git a/src/views/Components/Table/UseTableDemo.vue b/src/views/Components/Table/UseTableDemo.vue index 7575d21a4..6ea3831fb 100644 --- a/src/views/Components/Table/UseTableDemo.vue +++ b/src/views/Components/Table/UseTableDemo.vue @@ -207,6 +207,12 @@ const fixedHeaderOrAuto = () => { height.value = 'auto' } } + +const getSelections = async () => { + const elTableRef = await getElTableExpose() + const selections = elTableRef?.getSelectionRows() + console.log(selections) +}