pay-admin/src/pages/asset/grids/modals/GridUpdate.tsx
uiuJun 3350f99f61
Some checks failed
Build and Push Docker Image / build (push) Failing after 3m51s
fix:楼栋划分 bug、调整房屋 show 页面实现方式
2025-10-04 22:22:41 +08:00

102 lines
3.1 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import {
MyBetaModalFormProps,
MyButtons,
MyModalFormProps,
rulesHelper,
} from '@/common';
import { Selects } from '@/components/Select';
import MyTransferUnits from '@/components/TransferUnits';
import { Apis } from '@/gen/Apis';
import { BetaSchemaForm } from '@ant-design/pro-components';
import { Form, message } from 'antd';
export default function Update(props: MyBetaModalFormProps) {
const [form] = Form.useForm();
return (
<BetaSchemaForm<ApiTypes.Grid.Grids.Update>
{...MyModalFormProps.props}
title={`网格编辑`}
width="700px"
layout="horizontal"
labelCol={{ span: 4 }}
wrapperCol={{ span: 24 }}
labelAlign="right"
trigger={<MyButtons.Default title={`编辑`} size="small" type="link" />}
form={form}
key={new Date().getTime()}
onOpenChange={(open: any) => {
if (open) {
let arr: any = [];
Apis.Grid.Grids.Show({ id: props?.item?.id }).then((res) => {
if (res?.data?.grid_ranges) {
res?.data?.grid_ranges?.forEach((k: any) => {
arr.push(k.asset_units_id);
});
}
form.setFieldsValue({ ...res?.data, grid_ranges: arr });
});
}
}}
onFinish={async (values: any) => {
console.log(values);
// 确保grid_ranges是正确的对象数组格式
if (
values.grid_ranges &&
Array.isArray(values.grid_ranges) &&
typeof values.grid_ranges[0] === 'number'
) {
// 如果是ID数组需要转换为对象数组
const dataSource = form.getFieldValue('_dataSource') || [];
const grid_ranges = values.grid_ranges.map((id: any) => {
const unit = dataSource.find(
(item: any) => item.asset_units_id === id.toString(),
);
return {
asset_projects_id: props?.item?.asset_projects_id,
asset_buildings_id: unit?.asset_buildings_id,
asset_units_id: id.toString(),
};
});
values.grid_ranges = grid_ranges;
}
return Apis.Grid.Grids.Update({
...values,
asset_projects_id: props?.item?.asset_projects_id,
id: props?.item?.id,
})
.then(() => {
props.reload?.();
message.success('网格编辑成功');
return true;
})
.catch(() => false);
}}
columns={[
Selects?.GetGridMark({
key: 'grid_mark',
title: '范围标识',
params: {
asset_projects_id: props?.item?.id,
},
colProps: { span: 24 },
formItemProps: { ...rulesHelper.text },
}),
{
key: 'grid_ranges',
title: '选择单元',
colProps: { span: 24 },
formItemProps: { ...rulesHelper.array },
renderFormItem: () => (
<MyTransferUnits
item={{
asset_projects_id: props?.item?.asset_projects_id,
}}
/>
),
},
]}
/>
);
}