refactor: resolve remaining field audit issues

This commit is contained in:
2026-07-13 15:12:36 +08:00
parent 0533c30ece
commit aa1ed7db56
34 changed files with 953 additions and 263 deletions

View File

@@ -159,13 +159,17 @@ const RoomsPage: React.FC = () => {
const handleSave = async () => {
const values = await form.validateFields();
const payload = {
...values,
gender: values.gender === '__unset__' ? null : values.gender,
};
setSaving(true);
try {
if (editing) {
await api.put(`/rooms/${editing.id}`, values);
await api.put(`/rooms/${editing.id}`, payload);
message.success('更新成功');
} else {
await api.post('/rooms', values);
await api.post('/rooms', payload);
message.success('创建成功');
}
setModalOpen(false);
@@ -341,7 +345,8 @@ const RoomsPage: React.FC = () => {
title: '性别',
dataIndex: 'gender',
width: 80,
render: (v: any) => (v ? <Tag color={v === '男' ? 'blue' : 'pink'}>{v}</Tag> : '-'),
render: (v: string | null) =>
v ? <Tag color={v === '男' ? 'blue' : 'pink'}>{v}宿</Tag> : '未指定',
},
{
title: '状态',
@@ -386,7 +391,7 @@ const RoomsPage: React.FC = () => {
onClick={() => {
const rec = record as { id: number };
setEditing(rec);
form.setFieldsValue(rec);
form.setFieldsValue({ ...rec, gender: (record as any).gender ?? '__unset__' });
setModalOpen(true);
}}
>
@@ -468,6 +473,7 @@ const RoomsPage: React.FC = () => {
onClick={() => {
setEditing(null);
form.resetFields();
form.setFieldsValue({ gender: '__unset__' });
setModalOpen(true);
}}
>
@@ -571,6 +577,15 @@ const RoomsPage: React.FC = () => {
placeholder="留空自动解析"
/>
</Form.Item>
<Form.Item name="gender" label="宿舍性别">
<Select
options={[
{ value: '男', label: '男生宿舍' },
{ value: '女', label: '女生宿舍' },
{ value: '__unset__', label: '未指定(首位入住者确定)' },
]}
/>
</Form.Item>
<Form.Item name="rentalCategory" label="租赁类别">
<Select
allowClear
@@ -617,6 +632,7 @@ const RoomsPage: React.FC = () => {
<div><strong></strong>{drawerRoom.building || '-'}</div>
<div><strong></strong>{drawerRoom.floor ?? '-'}</div>
<div><strong></strong>{drawerRoom.roomType || '-'}</div>
<div><strong>宿</strong>{drawerRoom.gender ? `${drawerRoom.gender}生宿舍` : '未指定'}</div>
<div><strong></strong>{drawerRoom.capacity}</div>
<div><strong></strong>{drawerRoom.rentalCategory === 'long' ? '长租' : '短租'}</div>
<div><strong></strong>{drawerRoom.monthlyRate ? `¥${drawerRoom.monthlyRate}` : '-'}</div>