Merge branch 'develop' of ssh://code.juyouwu.cn:2222/pay/pay-admin into develop
This commit is contained in:
commit
24e19ac9db
@ -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) => {
|
|||||||
// 处理选择变化,但不触发表单提交
|
// 处理选择变化,但不触发表单提交
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
|
)
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -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 },
|
||||||
|
|||||||
@ -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,
|
/>
|
||||||
},
|
),
|
||||||
}),
|
|
||||||
]
|
|
||||||
: []),
|
|
||||||
],
|
|
||||||
},
|
|
||||||
];
|
|
||||||
},
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
},
|
||||||
]}
|
]}
|
||||||
/>
|
/>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user