133 lines
4.2 KiB
TypeScript
Raw Normal View History

2025-06-30 18:42:21 +08:00
import {
MyBetaModalFormProps,
MyButtons,
MyModalFormProps,
rulesHelper,
} from '@/common';
import { Selects } from '@/components/Select';
import { Apis } from '@/gen/Apis';
import { BetaSchemaForm, ProCard } from '@ant-design/pro-components';
import { Form, message } from 'antd';
export default function Create(props: MyBetaModalFormProps) {
const [form] = Form.useForm();
console.log(props?.item, 'item');
return (
<BetaSchemaForm<ApiTypes.Grid.Grids.Store>
{...MyModalFormProps.props}
title={`创建网格`}
wrapperCol={{ span: 24 }}
width="700px"
trigger={<MyButtons.Create title={`创建网格`} />}
form={form}
key={new Date().getTime()}
2025-06-30 18:42:21 +08:00
onOpenChange={(open: any) => {
if (open) {
form.resetFields(); // 清空表单数据
}
}}
onFinish={async (values: any) => {
2025-07-02 16:43:04 +08:00
values?.grid_ranges?.forEach((res: { asset_projects_id: string }) => {
2025-06-30 18:42:21 +08:00
res.asset_projects_id = props?.item?.id;
});
2025-07-01 10:40:00 +08:00
return Apis.Grid.Grids.Store({
2025-06-30 18:42:21 +08:00
...values,
asset_projects_id: props?.item?.id,
})
.then(() => {
props.reload?.();
2025-07-17 13:58:54 +08:00
message.success('网格创建成功');
2025-06-30 18:42:21 +08:00
return true;
})
.catch(() => false);
}}
columns={[
Selects?.GetGridMark({
key: 'grid_mark',
title: '网格标识',
params: {
asset_projects_id: props?.item?.id,
},
colProps: { span: 24 },
formItemProps: { ...rulesHelper.text },
}),
{
valueType: 'formList',
dataIndex: 'grid_ranges',
colProps: { span: 24 },
initialValue: [''],
formItemProps: { ...rulesHelper.array },
fieldProps: {
copyIconProps: false,
creatorButtonProps: {
creatorButtonText: '添加楼栋单元',
},
itemRender: (
{ listDom, action }: any,
{ index }: { index: number },
) => {
return (
<ProCard
bordered
style={{ marginBlockEnd: 0 }}
2025-06-30 18:42:21 +08:00
title={`添加单元${index + 1}`}
extra={action}
bodyStyle={{ paddingBlockEnd: 0 }}
>
{listDom}
</ProCard>
);
},
},
columns: [
{
valueType: 'dependency',
name: ['asset_buildings_id', 'asset_units_id'],
columns: ({ asset_buildings_id }) => {
return [
{
valueType: 'group',
columns: [
Selects?.AssetBuildings({
key: 'asset_buildings_id',
title: '选择楼栋',
params: {
asset_projects_id: props?.item?.id,
},
colProps: { span: 12 },
formItemProps: { ...rulesHelper.number },
fieldProps: {
showSearch: true,
onChange: () => {
form.setFieldsValue({
asset_units_id: undefined,
asset_floors_id: undefined,
});
},
},
}),
2025-07-17 13:58:54 +08:00
Selects?.GridUnits({
2025-06-30 18:42:21 +08:00
key: 'asset_units_id',
title: '选择单元',
params: {
asset_projects_id: props?.item?.id,
asset_buildings_id: asset_buildings_id,
},
colProps: { span: 12 },
formItemProps: { ...rulesHelper.text },
fieldProps: {
showSearch: true,
},
}),
],
},
];
},
},
],
},
]}
/>
);
}