Merge branch 'develop' of ssh://code.juyouwu.cn:2222/pay/pay-admin into develop

This commit is contained in:
uiuJun 2025-09-19 11:32:42 +08:00
commit 24e19ac9db
3 changed files with 105 additions and 138 deletions

View File

@ -2,6 +2,7 @@ import { Apis } from '@/gen/Apis';
import { Transfer } from 'antd';
import { useEffect, useState } from 'react';
const MyTransferUnits = (props: any) => {
const [getLoading, setLoading] = useState(false);
const [dataSource, setTransferData] = useState<any[]>([]);
const [targetKeys, setTargetKeys] = useState<string[]>([]);
useEffect(() => {
@ -10,6 +11,7 @@ const MyTransferUnits = (props: any) => {
asset_projects_id: props?.item?.asset_projects_id,
})
.then((res) => {
setLoading(true);
const data =
res.data?.map((item: any) => ({
key: item.value?.toString(),
@ -23,12 +25,47 @@ const MyTransferUnits = (props: any) => {
});
}
}, [props?.item?.asset_projects_id]);
useEffect(() => {
console.log(props.value, 'props.value');
if (props.value?.length && !props.value[0]?.asset_units_id) {
let dataIds: any = [];
props.value?.forEach((res: any) => {
dataIds?.push(res?.toString());
});
setTargetKeys(dataIds);
}
}, [props.value]);
useEffect(() => {
if (dataSource?.length && props?.value?.length) {
let dataIds: any = [];
props.value?.forEach((res: any) => {
dataSource?.forEach((k: any) => {
if (res?.toString() === k.key) {
dataIds?.push({
asset_projects_id: props?.item?.asset_projects_id,
asset_buildings_id: k?.asset_buildings_id,
asset_units_id: k?.key,
});
}
});
});
console.log(dataIds, '22');
console.log(props.value, 'props.value');
console.log(dataSource, 'dataSource');
props?.onChange?.(dataIds);
}
}, [getLoading]);
return (
getLoading && (
<Transfer
dataSource={dataSource}
targetKeys={targetKeys}
onChange={(targetKeys) => {
let dataIds: any = [];
console.log(targetKeys, 'targetKeys', props.value);
targetKeys?.forEach((res: any) => {
dataSource?.forEach((k: any) => {
if (res === k.key) {
@ -67,6 +104,7 @@ const MyTransferUnits = (props: any) => {
// 处理选择变化,但不触发表单提交
}}
/>
)
);
};

View File

@ -76,7 +76,7 @@ export default function Create(props: MyBetaModalFormProps) {
formItemProps: { ...rulesHelper.text },
}),
{
dataIndex: 'grid_ranges',
key: 'grid_ranges',
title: '选择单元',
colProps: { span: 24 },
formItemProps: { ...rulesHelper.array },

View File

@ -5,13 +5,13 @@ import {
rulesHelper,
} from '@/common';
import { Selects } from '@/components/Select';
import MyTransferUnits from '@/components/TransferUnits';
import { Apis } from '@/gen/Apis';
import { BetaSchemaForm, ProCard } from '@ant-design/pro-components';
import { BetaSchemaForm } from '@ant-design/pro-components';
import { Form, message } from 'antd';
export default function Update(props: MyBetaModalFormProps) {
const [form] = Form.useForm();
console.log(props.item, 'pppp');
return (
<BetaSchemaForm<ApiTypes.Grid.Grids.Update>
{...MyModalFormProps.props}
@ -26,17 +26,25 @@ export default function Update(props: MyBetaModalFormProps) {
key={new Date().getTime()}
onOpenChange={(open: any) => {
if (open) {
let arr: any = [];
Apis.Grid.Grids.Show({ id: props?.item?.id }).then((res) => {
form.setFieldsValue(res?.data);
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) => {
values?.grid_ranges?.map((res: { asset_projects_id: string }) => {
res.asset_projects_id = props?.item?.id;
});
console.log(values);
// values?.grid_ranges?.map((res: { asset_projects_id: string }) => {
// res.asset_projects_id = props?.item?.id;
// });
return Apis.Grid.Grids.Update({
...values,
asset_projects_id: props?.item?.id || values?.asset_projects_id,
id: props?.item?.id,
})
.then(() => {
@ -57,96 +65,17 @@ export default function Update(props: MyBetaModalFormProps) {
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: 5 }}
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: (value: any) => {
// 获取当前表单的所有值
const formValues = form.getFieldsValue();
const gridRanges = formValues.grid_ranges || [];
// 清空所有行的asset_units_id因为楼栋变化会影响所有单元选择
const updatedGridRanges = gridRanges.map(
(item: any, index: number) => {
if (item.asset_buildings_id === value) {
return { ...item, asset_units_id: undefined };
}
return item;
},
);
// 更新表单值
form.setFieldsValue({
grid_ranges: updatedGridRanges,
});
},
},
}),
...(asset_buildings_id
? [
Selects?.GridUnits({
key: 'asset_units_id',
key: 'grid_ranges',
title: '选择单元',
params: {
asset_projects_id: props?.item?.id,
asset_buildings_id: asset_buildings_id,
},
colProps: { span: 12 },
formItemProps: { ...rulesHelper.text },
fieldProps: {
showSearch: true,
},
}),
]
: []),
],
},
];
},
},
],
colProps: { span: 24 },
formItemProps: { ...rulesHelper.array },
renderFormItem: () => (
<MyTransferUnits
item={{
asset_projects_id: props?.item?.asset_projects_id,
}}
/>
),
},
]}
/>