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 { Transfer } from 'antd';
import { useEffect, useState } from 'react'; import { useEffect, useState } from 'react';
const MyTransferUnits = (props: any) => { const MyTransferUnits = (props: any) => {
const [getLoading, setLoading] = useState(false);
const [dataSource, setTransferData] = useState<any[]>([]); const [dataSource, setTransferData] = useState<any[]>([]);
const [targetKeys, setTargetKeys] = useState<string[]>([]); const [targetKeys, setTargetKeys] = useState<string[]>([]);
useEffect(() => { useEffect(() => {
@ -10,6 +11,7 @@ const MyTransferUnits = (props: any) => {
asset_projects_id: props?.item?.asset_projects_id, asset_projects_id: props?.item?.asset_projects_id,
}) })
.then((res) => { .then((res) => {
setLoading(true);
const data = const data =
res.data?.map((item: any) => ({ res.data?.map((item: any) => ({
key: item.value?.toString(), key: item.value?.toString(),
@ -23,12 +25,47 @@ const MyTransferUnits = (props: any) => {
}); });
} }
}, [props?.item?.asset_projects_id]); }, [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 ( return (
getLoading && (
<Transfer <Transfer
dataSource={dataSource} dataSource={dataSource}
targetKeys={targetKeys} targetKeys={targetKeys}
onChange={(targetKeys) => { onChange={(targetKeys) => {
let dataIds: any = []; let dataIds: any = [];
console.log(targetKeys, 'targetKeys', props.value);
targetKeys?.forEach((res: any) => { targetKeys?.forEach((res: any) => {
dataSource?.forEach((k: any) => { dataSource?.forEach((k: any) => {
if (res === k.key) { 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 }, formItemProps: { ...rulesHelper.text },
}), }),
{ {
dataIndex: 'grid_ranges', key: 'grid_ranges',
title: '选择单元', title: '选择单元',
colProps: { span: 24 }, colProps: { span: 24 },
formItemProps: { ...rulesHelper.array }, formItemProps: { ...rulesHelper.array },

View File

@ -5,13 +5,13 @@ import {
rulesHelper, rulesHelper,
} from '@/common'; } from '@/common';
import { Selects } from '@/components/Select'; import { Selects } from '@/components/Select';
import MyTransferUnits from '@/components/TransferUnits';
import { Apis } from '@/gen/Apis'; 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'; import { Form, message } from 'antd';
export default function Update(props: MyBetaModalFormProps) { export default function Update(props: MyBetaModalFormProps) {
const [form] = Form.useForm(); const [form] = Form.useForm();
console.log(props.item, 'pppp');
return ( return (
<BetaSchemaForm<ApiTypes.Grid.Grids.Update> <BetaSchemaForm<ApiTypes.Grid.Grids.Update>
{...MyModalFormProps.props} {...MyModalFormProps.props}
@ -26,17 +26,25 @@ export default function Update(props: MyBetaModalFormProps) {
key={new Date().getTime()} key={new Date().getTime()}
onOpenChange={(open: any) => { onOpenChange={(open: any) => {
if (open) { if (open) {
let arr: any = [];
Apis.Grid.Grids.Show({ id: props?.item?.id }).then((res) => { 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) => { onFinish={async (values: any) => {
values?.grid_ranges?.map((res: { asset_projects_id: string }) => { console.log(values);
res.asset_projects_id = props?.item?.id; // values?.grid_ranges?.map((res: { asset_projects_id: string }) => {
}); // res.asset_projects_id = props?.item?.id;
// });
return Apis.Grid.Grids.Update({ return Apis.Grid.Grids.Update({
...values, ...values,
asset_projects_id: props?.item?.id || values?.asset_projects_id,
id: props?.item?.id, id: props?.item?.id,
}) })
.then(() => { .then(() => {
@ -57,96 +65,17 @@ export default function Update(props: MyBetaModalFormProps) {
formItemProps: { ...rulesHelper.text }, formItemProps: { ...rulesHelper.text },
}), }),
{ {
valueType: 'formList', key: 'grid_ranges',
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',
title: '选择单元', title: '选择单元',
params: { colProps: { span: 24 },
asset_projects_id: props?.item?.id, formItemProps: { ...rulesHelper.array },
asset_buildings_id: asset_buildings_id, renderFormItem: () => (
}, <MyTransferUnits
colProps: { span: 12 }, item={{
formItemProps: { ...rulesHelper.text }, asset_projects_id: props?.item?.asset_projects_id,
fieldProps: { }}
showSearch: true, />
}, ),
}),
]
: []),
],
},
];
},
},
],
}, },
]} ]}
/> />