宿舍列表优化

This commit is contained in:
Qi 2025-06-09 15:34:00 +08:00
parent 658eed3c2d
commit 02df9af20b
2 changed files with 29 additions and 8 deletions

View File

@ -6,10 +6,17 @@ import { usePermission } from '/@/hooks/web/usePermission';
const { hasPermission } = usePermission(); const { hasPermission } = usePermission();
//列表数据 //列表数据
export const columns: BasicColumn[] = [ export const columns: BasicColumn[] = [
{
title: '公寓',
align: 'center',
dataIndex: 'apartment',
sorter: true,
width: 100,
},
{ {
title: '宿舍信息', title: '宿舍信息',
align: 'center', align: 'center',
dataIndex: 'dormitory', dataIndex: 'dormitoryRoom',
width: 100, width: 100,
}, },
{ {
@ -66,6 +73,17 @@ export const searchFormSchema: FormSchema[] = [
return hasPermission('dormitory:majorId:select'); return hasPermission('dormitory:majorId:select');
}, },
}, },
{
label: '宿舍类型',
field: 'dormitoryType',
component: 'Select',
componentProps: {
options: [
{ label: '女', value: 1 },
{ label: '男', value: 0 },
],
},
},
]; ];
//表单数据 //表单数据
export const formSchema: FormSchema[] = [ export const formSchema: FormSchema[] = [
@ -87,7 +105,7 @@ export const formSchema: FormSchema[] = [
{ label: '女', value: 1 }, { label: '女', value: 1 },
], ],
}, },
defaultValue: 1, //defaultValue: 1,
dynamicRules: ({ model, schema }) => { dynamicRules: ({ model, schema }) => {
return [{ required: true, message: '请选择男/女!' }]; return [{ required: true, message: '请选择男/女!' }];
}, },
@ -96,7 +114,7 @@ export const formSchema: FormSchema[] = [
label: '宿舍人数', label: '宿舍人数',
field: 'dormitoryNum', field: 'dormitoryNum',
component: 'InputNumber', component: 'InputNumber',
defaultValue: 4, //defaultValue: 4,
dynamicRules: ({ model, schema }) => { dynamicRules: ({ model, schema }) => {
return [{ required: true, message: '请输入宿舍人数!' }]; return [{ required: true, message: '请输入宿舍人数!' }];
}, },
@ -123,11 +141,13 @@ export const formSchema: FormSchema[] = [
component: 'Select', component: 'Select',
componentProps: { componentProps: {
options: [ options: [
{ label: '不分配学科', value: null }, // 👈 空值选项
{ label: '语文', value: 1 }, { label: '语文', value: 1 },
{ label: '地理', value: 4 }, { label: '地理', value: 4 },
{ label: '历史', value: 7 }, { label: '历史', value: 7 },
{ label: '政治', value: 8 }, { label: '政治', value: 8 },
], ],
allowClear: true, // 👈 可选加上后可以清除已选项ant-design-vue 支持)
}, },
//dynamicRules: ({ model, schema }) => { //dynamicRules: ({ model, schema }) => {
// return [{ required: true, message: '请选择所属学科!' }]; // return [{ required: true, message: '请选择所属学科!' }];

View File

@ -16,7 +16,7 @@
</a-menu-item> </a-menu-item>
<a-modal title="批量设置宿舍学科" v-model:visible="visible" @ok="handleOk" @cancel="handleCancel" width="400"> <a-modal title="批量设置宿舍学科" v-model:visible="visible" @ok="handleOk" @cancel="handleCancel" width="400">
<a-form :model="form" :label-col="{ span: 6 }" :wrapper-col="{ span: 16 }" label-align="left"> <a-form :model="form" :label-col="{ span: 6 }" :wrapper-col="{ span: 16 }" label-align="left">
<a-form-item label="所属学科" name="majorId" :rules="[{ required: true, message: '请选择学科' }]"> <a-form-item label="所属学科" name="majorId">
<a-select v-model:value="form.majorId" placeholder="请选择学科" style="width: 100%"> <a-select v-model:value="form.majorId" placeholder="请选择学科" style="width: 100%">
<a-select-option v-for="item in options" :key="item.value" :value="item.value"> <a-select-option v-for="item in options" :key="item.value" :value="item.value">
{{ item.label }} {{ item.label }}
@ -123,6 +123,7 @@
}); });
const options = [ const options = [
{ label: '不分配学科', value: '' },
{ label: '语文', value: 1 }, { label: '语文', value: 1 },
{ label: '地理', value: 4 }, { label: '地理', value: 4 },
{ label: '历史', value: 7 }, { label: '历史', value: 7 },
@ -138,10 +139,10 @@
}; };
const handleOk = async () => { const handleOk = async () => {
if (!form.majorId) { //if (!form.majorId) {
message.warning('请选择学科'); // message.warning('');
return; // return;
} //}
console.log('选择的学科 ID', form.majorId); console.log('选择的学科 ID', form.majorId);
// //
await setDormAndSubject({ ids: selectedRowKeys.value, majorId: form.majorId }, handleSuccess); await setDormAndSubject({ ids: selectedRowKeys.value, majorId: form.majorId }, handleSuccess);