feat: post

This commit is contained in:
dap 2024-10-05 22:20:00 +08:00
parent bd340e63b7
commit fdd1d19c8e
2 changed files with 37 additions and 16 deletions

View File

@ -74,8 +74,8 @@ export const drawerSchema: FormSchemaGetter = () => [
show: () => false, show: () => false,
triggerFields: [''], triggerFields: [''],
}, },
fieldName: 'id', fieldName: 'postId',
label: 'id', label: 'postId',
}, },
{ {
component: 'TreeSelect', component: 'TreeSelect',

View File

@ -16,21 +16,28 @@ import DeptTree from '#/views/system/user/dept-tree.vue';
import { columns, querySchema } from './data'; import { columns, querySchema } from './data';
import postDrawer from './post-drawer.vue'; import postDrawer from './post-drawer.vue';
const formOptions: VbenFormProps = {
schema: querySchema(),
wrapperClass: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4',
};
// //
const selectDeptId = ref<string[]>([]); const selectDeptId = ref<string[]>([]);
const formOptions: VbenFormProps = {
commonConfig: {
labelWidth: 80,
},
schema: querySchema(),
wrapperClass: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4',
handleReset: async () => {
selectDeptId.value = [];
// eslint-disable-next-line no-use-before-define
await tableApi.query();
},
};
const gridOptions: VxeGridProps = { const gridOptions: VxeGridProps = {
checkboxConfig: { checkboxConfig: {
// //
highlight: true, highlight: true,
// //
reserve: true, reserve: true,
// trigger: 'cell',
// trigger: 'row',
}, },
columns, columns,
height: 'auto', height: 'auto',
@ -78,7 +85,20 @@ 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 [PostDrawer, drawerApi] = useVbenDrawer({ const [PostDrawer, drawerApi] = useVbenDrawer({
connectedComponent: postDrawer, connectedComponent: postDrawer,
}); });
@ -95,7 +115,7 @@ async function handleEdit(record: Recordable<any>) {
async function handleDelete(row: Recordable<any>) { async function handleDelete(row: Recordable<any>) {
await postRemove(row.postId); await postRemove(row.postId);
await tableApi.reload(); await tableApi.query();
} }
function handleMultiDelete() { function handleMultiDelete() {
@ -119,9 +139,9 @@ 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 overflow-hidden">
<template #toolbar-actions> <template #toolbar-actions>
<span class="pl-[7px] text-[16px]">岗位列表</span> <span class="pl-[7px] text-[16px]">岗位列表</span>
</template> </template>
@ -134,9 +154,10 @@ function handleMultiDelete() {
{{ $t('pages.common.export') }} {{ $t('pages.common.export') }}
</a-button> </a-button>
<a-button <a-button
:disabled="!checked"
danger danger
type="primary" type="primary"
v-access:code="['system:post:delete']" v-access:code="['system:post:remove']"
@click="handleMultiDelete" @click="handleMultiDelete"
> >
{{ $t('pages.common.delete') }} {{ $t('pages.common.delete') }}
@ -169,7 +190,7 @@ function handleMultiDelete() {
danger danger
size="small" size="small"
type="link" type="link"
v-access:code="['system:post:delete']" v-access:code="['system:post:remove']"
@click.stop="" @click.stop=""
> >
{{ $t('pages.common.delete') }} {{ $t('pages.common.delete') }}
@ -178,6 +199,6 @@ function handleMultiDelete() {
</Space> </Space>
</template> </template>
</BasicTable> </BasicTable>
<PostDrawer @reload="tableApi.reload()" /> <PostDrawer @reload="tableApi.query()" />
</Page> </Page>
</template> </template>