From d965ea6d1e5d9adc0f80ad38385c587d767037b1 Mon Sep 17 00:00:00 2001 From: dap <15891557205@163.com> Date: Sat, 5 Oct 2024 20:46:31 +0800 Subject: [PATCH] chore: user --- apps/web-antd/src/adapter/vxe-table.ts | 11 +++++++ apps/web-antd/src/views/system/user/data.tsx | 2 ++ apps/web-antd/src/views/system/user/index.vue | 32 ++++++++++++++----- packages/styles/src/antd/index.css | 14 ++++++++ 4 files changed, 51 insertions(+), 8 deletions(-) diff --git a/apps/web-antd/src/adapter/vxe-table.ts b/apps/web-antd/src/adapter/vxe-table.ts index 716d3c38..2a2d56b8 100644 --- a/apps/web-antd/src/adapter/vxe-table.ts +++ b/apps/web-antd/src/adapter/vxe-table.ts @@ -25,6 +25,17 @@ setupVbenVxeTable({ showActiveMsg: true, showResponseMsg: false, }, + columnConfig: { + resizable: true, + }, + toolbarConfig: { + // 自定义列 + custom: true, + // 最大化 + zoom: true, + // 刷新 + refresh: true, + }, round: true, size: 'medium', }, diff --git a/apps/web-antd/src/views/system/user/data.tsx b/apps/web-antd/src/views/system/user/data.tsx index a34bd88e..5251f14d 100644 --- a/apps/web-antd/src/views/system/user/data.tsx +++ b/apps/web-antd/src/views/system/user/data.tsx @@ -124,6 +124,7 @@ export const drawerSchema: FormSchemaGetter = () => [ component: 'Input', fieldName: 'phone', label: '手机号码', + defaultValue: undefined, rules: z .string() .regex(/^1[3-9]\d{9}$/, '请输入正确的手机号码') @@ -132,6 +133,7 @@ export const drawerSchema: FormSchemaGetter = () => [ { component: 'Input', fieldName: 'email', + defaultValue: undefined, label: '邮箱', // TODO: 这里非必填未生效 rules: z.string().email('请输入正确的邮箱').optional(), diff --git a/apps/web-antd/src/views/system/user/index.vue b/apps/web-antd/src/views/system/user/index.vue index 7cea44e5..3a82df07 100644 --- a/apps/web-antd/src/views/system/user/index.vue +++ b/apps/web-antd/src/views/system/user/index.vue @@ -45,6 +45,9 @@ const selectDeptId = ref([]); const formOptions: VbenFormProps = { schema: querySchema(), + commonConfig: { + labelWidth: 80, + }, wrapperClass: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4', }; @@ -103,7 +106,19 @@ const gridOptions: VxeGridProps = { showOverflow: true, }; -const [BasicTable, tableApi] = useVbenVxeGrid({ formOptions, gridOptions }); +const checked = ref(false); +const [BasicTable, tableApi] = useVbenVxeGrid({ + formOptions, + gridOptions, + gridEvents: { + checkboxChange: (e: any) => { + checked.value = e.records.length > 0; + }, + checkboxAll: (e: any) => { + checked.value = e.records.length > 0; + }, + }, +}); const [UserDrawer, userDrawerApi] = useVbenDrawer({ connectedComponent: userDrawer, @@ -121,7 +136,7 @@ function handleEdit(row: Recordable) { async function handleDelete(row: Recordable) { await userRemove(row.userId); - await tableApi.reload(); + await tableApi.query(); } function handleMultiDelete() { @@ -133,7 +148,7 @@ function handleMultiDelete() { content: `确认删除选中的${ids.length}条记录吗?`, onOk: async () => { await userRemove(ids); - await tableApi.reload(); + await tableApi.query(); }, }); } @@ -145,7 +160,7 @@ function handleMultiDelete() { v-model:select-dept-id="selectDeptId" :height="300" class="w-[260px]" - @select="() => tableApi.reload()" + @select="() => tableApi.query()" /> - + diff --git a/packages/styles/src/antd/index.css b/packages/styles/src/antd/index.css index b82f3e57..2935f9b5 100644 --- a/packages/styles/src/antd/index.css +++ b/packages/styles/src/antd/index.css @@ -63,3 +63,17 @@ .dot-before-green { @apply dot-before-common before:bg-green-500; } + +/** +vxe表格右上角toolbar 间距 +*/ +.vxe-button + .vxe-button.type--button { + margin-left: 8px !important; +} + +/** +vxe表格右上角toolbar和左边元素的间距 +*/ +.vxe-tools--operate { + margin-left: 8px; +}