From 7129cf3b56edf1c1f524b9a3ebe3ef09b3df3d73 Mon Sep 17 00:00:00 2001 From: 91zhangliying <1663782157@qq.com> Date: Sun, 24 Jul 2022 20:04:03 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E8=A7=92=E8=89=B2=E5=88=86=E9=85=8D?= =?UTF-8?q?=E7=94=A8=E6=88=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/role.ts | 12 ++ src/components/QuickCrud/index.vue | 6 + src/components/QuickTable/index.vue | 19 ++- src/router/index.ts | 4 + src/types/options.ts | 4 +- src/views/assignUser/index.vue | 221 ++++++++++++++++++++++++++++ src/views/rolePermission/index.vue | 21 +-- src/views/user/index.vue | 1 + 8 files changed, 276 insertions(+), 12 deletions(-) create mode 100644 src/views/assignUser/index.vue diff --git a/src/api/role.ts b/src/api/role.ts index 0c70ab8..c253c89 100644 --- a/src/api/role.ts +++ b/src/api/role.ts @@ -1,4 +1,5 @@ import { Menu } from '@/types/menu' +import { User } from '@/types/user' import { Role } from '../types/role' import request, { QuickResponseData } from '../utils/request' @@ -23,6 +24,17 @@ export const getMenuPermission = ( }, }) } +export const getUserPermission = ( + roleId: string +): Promise>> => { + return request>>({ + url: Api.userList, + method: 'GET', + params: { + id: roleId, + }, + }) +} export const getRoleList = (): Promise>> => { return request>>({ diff --git a/src/components/QuickCrud/index.vue b/src/components/QuickCrud/index.vue index 92cd07a..cf5fbdc 100644 --- a/src/components/QuickCrud/index.vue +++ b/src/components/QuickCrud/index.vue @@ -159,6 +159,7 @@ const emits = defineEmits([ 'onSizeChange', 'onCurrentChange', 'onSelectionChange', + 'onTableRef', ]) /** * 常规属性 @@ -377,6 +378,7 @@ const handleCustomToolbarClick = (done: any) => { const handleSelectionChange = (userList: Array) => { checkDataList.length = 0 checkDataList.push(...userList) + emits('onSelectionChange', checkDataList) } /** * 分页 @@ -394,6 +396,9 @@ const handleCurrentChange = (val: number) => { const handleDone = () => { load() } +const handleTbaleRef = (tableRef: any): void => { + emits('onTableRef', tableRef) +} onMounted(() => { if (leftTree.value) { treeLoad() @@ -473,6 +478,7 @@ onActivated(() => { @on-row-detail="handleDetail" @on-selection-change="handleSelectionChange" @on-done="handleDone" + @on-table-ref="handleTbaleRef" > -import { defineProps, defineEmits, toRefs, Ref } from 'vue' +import { ElTable } from 'element-plus' +import { + defineProps, + defineEmits, + toRefs, + Ref, + ref, + onMounted, + nextTick, +} from 'vue' import { Column, Actionbar } from '../../types/table' /** * props @@ -86,6 +95,7 @@ const { * 类型转换 */ const actionbar = tableActionbar.value as Actionbar +const tableRef = ref>() /** * emits */ @@ -95,6 +105,7 @@ const emits = defineEmits([ 'onRowDelete', 'onRowDetail', 'onDone', + 'onTableRef', ]) /** *函数 @@ -108,9 +119,15 @@ const getActionbarWidth = () => { const handleSelectionChange = (val: any) => { emits('onSelectionChange', val) } +onMounted(() => { + nextTick(() => { + emits('onTableRef', tableRef) + }) +})