chore: user

This commit is contained in:
dap 2024-10-05 20:46:31 +08:00
parent 107035a9d9
commit d965ea6d1e
4 changed files with 51 additions and 8 deletions

View File

@ -25,6 +25,17 @@ setupVbenVxeTable({
showActiveMsg: true, showActiveMsg: true,
showResponseMsg: false, showResponseMsg: false,
}, },
columnConfig: {
resizable: true,
},
toolbarConfig: {
// 自定义列
custom: true,
// 最大化
zoom: true,
// 刷新
refresh: true,
},
round: true, round: true,
size: 'medium', size: 'medium',
}, },

View File

@ -124,6 +124,7 @@ export const drawerSchema: FormSchemaGetter = () => [
component: 'Input', component: 'Input',
fieldName: 'phone', fieldName: 'phone',
label: '手机号码', label: '手机号码',
defaultValue: undefined,
rules: z rules: z
.string() .string()
.regex(/^1[3-9]\d{9}$/, '请输入正确的手机号码') .regex(/^1[3-9]\d{9}$/, '请输入正确的手机号码')
@ -132,6 +133,7 @@ export const drawerSchema: FormSchemaGetter = () => [
{ {
component: 'Input', component: 'Input',
fieldName: 'email', fieldName: 'email',
defaultValue: undefined,
label: '邮箱', label: '邮箱',
// TODO: 这里非必填未生效 // TODO: 这里非必填未生效
rules: z.string().email('请输入正确的邮箱').optional(), rules: z.string().email('请输入正确的邮箱').optional(),

View File

@ -45,6 +45,9 @@ const selectDeptId = ref<string[]>([]);
const formOptions: VbenFormProps = { const formOptions: VbenFormProps = {
schema: querySchema(), schema: querySchema(),
commonConfig: {
labelWidth: 80,
},
wrapperClass: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4', 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, 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({ const [UserDrawer, userDrawerApi] = useVbenDrawer({
connectedComponent: userDrawer, connectedComponent: userDrawer,
@ -121,7 +136,7 @@ function handleEdit(row: Recordable<any>) {
async function handleDelete(row: Recordable<any>) { async function handleDelete(row: Recordable<any>) {
await userRemove(row.userId); await userRemove(row.userId);
await tableApi.reload(); await tableApi.query();
} }
function handleMultiDelete() { function handleMultiDelete() {
@ -133,7 +148,7 @@ function handleMultiDelete() {
content: `确认删除选中的${ids.length}条记录吗?`, content: `确认删除选中的${ids.length}条记录吗?`,
onOk: async () => { onOk: async () => {
await userRemove(ids); await userRemove(ids);
await tableApi.reload(); await tableApi.query();
}, },
}); });
} }
@ -145,7 +160,7 @@ function handleMultiDelete() {
v-model:select-dept-id="selectDeptId" v-model:select-dept-id="selectDeptId"
:height="300" :height="300"
class="w-[260px]" class="w-[260px]"
@select="() => tableApi.reload()" @select="() => tableApi.query()"
/> />
<BasicTable class="flex-1"> <BasicTable class="flex-1">
<template #toolbar-actions> <template #toolbar-actions>
@ -166,9 +181,10 @@ function handleMultiDelete() {
{{ $t('pages.common.import') }} {{ $t('pages.common.import') }}
</a-button> </a-button>
<a-button <a-button
:disabled="!checked"
danger danger
type="primary" type="primary"
v-access:code="['system:user:delete']" v-access:code="['system:user:remove']"
@click="handleMultiDelete" @click="handleMultiDelete"
> >
{{ $t('pages.common.delete') }} {{ $t('pages.common.delete') }}
@ -194,7 +210,7 @@ function handleMultiDelete() {
v-model="row.status" v-model="row.status"
:api="() => userStatusChange(row)" :api="() => userStatusChange(row)"
:disabled="row.userId === 1" :disabled="row.userId === 1"
:reload="() => tableApi.reload()" :reload="() => tableApi.query()"
/> />
</template> </template>
<template #action="{ row }"> <template #action="{ row }">
@ -215,7 +231,7 @@ function handleMultiDelete() {
<a-button <a-button
danger danger
size="small" size="small"
v-access:code="['system:user:delete']" v-access:code="['system:user:remove']"
@click.stop="" @click.stop=""
> >
{{ $t('pages.common.delete') }} {{ $t('pages.common.delete') }}
@ -225,6 +241,6 @@ function handleMultiDelete() {
</template> </template>
</BasicTable> </BasicTable>
<UserImpotModal /> <UserImpotModal />
<UserDrawer @reload="tableApi.reload()" /> <UserDrawer @reload="tableApi.query()" />
</Page> </Page>
</template> </template>

View File

@ -63,3 +63,17 @@
.dot-before-green { .dot-before-green {
@apply dot-before-common before:bg-green-500; @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;
}