Compare commits
2 Commits
68c96919bb
...
e736f95419
| Author | SHA1 | Date | |
|---|---|---|---|
| e736f95419 | |||
| 448de52596 |
73
src/components/TransferUnits.tsx
Normal file
73
src/components/TransferUnits.tsx
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
import { Apis } from '@/gen/Apis';
|
||||||
|
import { Transfer } from 'antd';
|
||||||
|
import { useEffect, useState } from 'react';
|
||||||
|
const MyTransferUnits = (props: any) => {
|
||||||
|
const [dataSource, setTransferData] = useState<any[]>([]);
|
||||||
|
const [targetKeys, setTargetKeys] = useState<string[]>([]);
|
||||||
|
useEffect(() => {
|
||||||
|
if (props?.item?.asset_projects_id) {
|
||||||
|
Apis.Asset.AssetUnits.GridSelect({
|
||||||
|
asset_projects_id: props?.item?.asset_projects_id,
|
||||||
|
})
|
||||||
|
.then((res) => {
|
||||||
|
const data =
|
||||||
|
res.data?.map((item: any) => ({
|
||||||
|
key: item.value?.toString(),
|
||||||
|
title: item?.asset_building?.name + item.label,
|
||||||
|
asset_buildings_id: item.asset_buildings_id,
|
||||||
|
})) || [];
|
||||||
|
setTransferData(data);
|
||||||
|
})
|
||||||
|
.catch(() => {
|
||||||
|
setTransferData([]);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}, [props?.item?.asset_projects_id]);
|
||||||
|
return (
|
||||||
|
<Transfer
|
||||||
|
dataSource={dataSource}
|
||||||
|
targetKeys={targetKeys}
|
||||||
|
onChange={(targetKeys) => {
|
||||||
|
let dataIds: any = [];
|
||||||
|
targetKeys?.forEach((res: any) => {
|
||||||
|
dataSource?.forEach((k: any) => {
|
||||||
|
if (res === k.key) {
|
||||||
|
dataIds?.push({
|
||||||
|
asset_projects_id: props?.item?.asset_projects_id,
|
||||||
|
asset_buildings_id: k?.asset_buildings_id,
|
||||||
|
asset_units_id: k?.key,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
setTargetKeys(targetKeys as string[]);
|
||||||
|
props?.onChange?.(dataIds);
|
||||||
|
}}
|
||||||
|
render={(item) => item.title}
|
||||||
|
titles={['可选单元', '已选单元']}
|
||||||
|
showSearch
|
||||||
|
listStyle={{
|
||||||
|
width: 250,
|
||||||
|
height: 300,
|
||||||
|
}}
|
||||||
|
operations={['选择', '移除']}
|
||||||
|
operationStyle={{ marginTop: 20 }}
|
||||||
|
locale={{
|
||||||
|
itemUnit: '项',
|
||||||
|
itemsUnit: '项',
|
||||||
|
searchPlaceholder: '请输入搜索内容',
|
||||||
|
notFoundContent: '列表为空',
|
||||||
|
}}
|
||||||
|
onSelectChange={(sourceSelectedKeys, targetSelectedKeys) => {
|
||||||
|
console.log(
|
||||||
|
sourceSelectedKeys,
|
||||||
|
targetSelectedKeys,
|
||||||
|
'sourceSelectedKeys',
|
||||||
|
);
|
||||||
|
// 处理选择变化,但不触发表单提交
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default MyTransferUnits;
|
||||||
@ -5,45 +5,20 @@ import {
|
|||||||
rulesHelper,
|
rulesHelper,
|
||||||
} from '@/common';
|
} from '@/common';
|
||||||
import { Selects } from '@/components/Select';
|
import { Selects } from '@/components/Select';
|
||||||
import { Apis } from '@/gen/Apis';
|
import MyTransferUnits from '@/components/TransferUnits';
|
||||||
import { BetaSchemaForm } from '@ant-design/pro-components';
|
import { BetaSchemaForm } from '@ant-design/pro-components';
|
||||||
import { Form, message, Transfer } from 'antd';
|
import { Form } from 'antd';
|
||||||
import { useEffect, useState } from 'react';
|
|
||||||
|
|
||||||
export default function Create(props: MyBetaModalFormProps) {
|
export default function Create(props: MyBetaModalFormProps) {
|
||||||
const [form] = Form.useForm();
|
const [form] = Form.useForm();
|
||||||
const [transferData, setTransferData] = useState<any[]>([]);
|
|
||||||
const [targetKeys, setTargetKeys] = useState<string[]>([]);
|
|
||||||
|
|
||||||
// 获取Transfer数据源
|
|
||||||
useEffect(() => {
|
|
||||||
const asset_projects_id = props?.item?.id || 0;
|
|
||||||
if (asset_projects_id) {
|
|
||||||
Apis.Asset.AssetUnits.GridSelect({ asset_projects_id })
|
|
||||||
.then((res) => {
|
|
||||||
const data =
|
|
||||||
res.data?.map((item: any) => ({
|
|
||||||
key: item.value?.toString(),
|
|
||||||
title: item?.asset_building?.name + item.label,
|
|
||||||
})) || [];
|
|
||||||
setTransferData(data);
|
|
||||||
})
|
|
||||||
.catch(() => {
|
|
||||||
setTransferData([]);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}, [props?.item?.id]);
|
|
||||||
|
|
||||||
console.log(props.item, 'pppp');
|
console.log(props.item, 'pppp');
|
||||||
return (
|
return (
|
||||||
<BetaSchemaForm<ApiTypes.Grid.Grids.Store>
|
<BetaSchemaForm<ApiTypes.Grid.Grids.Store>
|
||||||
{...MyModalFormProps.props}
|
{...MyModalFormProps.props}
|
||||||
title={`范围添加`}
|
title={`范围添加`}
|
||||||
width="700px"
|
width="800px"
|
||||||
layout="horizontal"
|
layout="horizontal"
|
||||||
labelCol={{ span: 4 }}
|
|
||||||
wrapperCol={{ span: 24 }}
|
|
||||||
labelAlign="right"
|
|
||||||
trigger={
|
trigger={
|
||||||
<MyButtons.Create
|
<MyButtons.Create
|
||||||
title={`${props.title}`}
|
title={`${props.title}`}
|
||||||
@ -52,32 +27,33 @@ export default function Create(props: MyBetaModalFormProps) {
|
|||||||
}
|
}
|
||||||
form={form}
|
form={form}
|
||||||
key={new Date().getTime()}
|
key={new Date().getTime()}
|
||||||
onOpenChange={(open: any) => {
|
// onOpenChange={(open: any) => {
|
||||||
if (open) {
|
// if (open) {
|
||||||
form.resetFields(); // 清空表单数据
|
// form.resetFields(); // 清空表单数据
|
||||||
form.setFieldsValue({
|
// form.setFieldsValue({
|
||||||
asset_projects_id: props?.item?.id,
|
// asset_projects_id: props?.item?.id,
|
||||||
});
|
// });
|
||||||
}
|
// }
|
||||||
}}
|
// }}
|
||||||
onFinish={async (values: any) => {
|
onFinish={async (values: any) => {
|
||||||
(values.asset_projects_id =
|
console.log(values, 'values');
|
||||||
values?.asset_projects_id || props?.item?.id),
|
// (values.asset_projects_id =
|
||||||
values?.grid_ranges?.map((res: { asset_projects_id: string }) => {
|
// values?.asset_projects_id || props?.item?.id),
|
||||||
res.asset_projects_id = props?.item?.id;
|
// values?.grid_ranges?.map(
|
||||||
});
|
// (res: { asset_projects_id: string }) => {
|
||||||
return Apis.Grid.Grids.Store({
|
// res.asset_projects_id = props?.item?.id;
|
||||||
...values,
|
// },
|
||||||
})
|
// );
|
||||||
.then(() => {
|
// return Apis.Grid.Grids.Store({
|
||||||
props.reload?.();
|
// ...values,
|
||||||
message.success('网格添加成功');
|
// })
|
||||||
return true;
|
// .then(() => {
|
||||||
})
|
// props.reload?.();
|
||||||
.catch(() => false);
|
// message.success('网格添加成功');
|
||||||
|
// return true;
|
||||||
|
// })
|
||||||
|
// .catch(() => false);
|
||||||
}}
|
}}
|
||||||
submitter={false}
|
|
||||||
footer={[<MyButtons.Default key="submit" title="添加" />]}
|
|
||||||
columns={[
|
columns={[
|
||||||
...(props?.item?.id
|
...(props?.item?.id
|
||||||
? []
|
? []
|
||||||
@ -107,7 +83,6 @@ export default function Create(props: MyBetaModalFormProps) {
|
|||||||
colProps: { span: 24 },
|
colProps: { span: 24 },
|
||||||
formItemProps: { ...rulesHelper.text },
|
formItemProps: { ...rulesHelper.text },
|
||||||
}),
|
}),
|
||||||
|
|
||||||
{
|
{
|
||||||
valueType: 'formItem',
|
valueType: 'formItem',
|
||||||
dataIndex: 'grid_units_id',
|
dataIndex: 'grid_units_id',
|
||||||
@ -115,37 +90,12 @@ export default function Create(props: MyBetaModalFormProps) {
|
|||||||
colProps: { span: 24 },
|
colProps: { span: 24 },
|
||||||
formItemProps: { ...rulesHelper.text },
|
formItemProps: { ...rulesHelper.text },
|
||||||
renderFormItem: () => (
|
renderFormItem: () => (
|
||||||
<div onClick={(e) => e.stopPropagation()}>
|
<MyTransferUnits
|
||||||
<Transfer
|
item={{
|
||||||
dataSource={transferData}
|
asset_projects_id:
|
||||||
targetKeys={targetKeys}
|
props?.item?.id || asset_projects_id,
|
||||||
onChange={(nextTargetKeys) => {
|
}}
|
||||||
setTargetKeys(nextTargetKeys as string[]);
|
/>
|
||||||
form.setFieldValue('grid_units_id', nextTargetKeys);
|
|
||||||
}}
|
|
||||||
render={(item) => item.title}
|
|
||||||
titles={['可选单元', '已选单元']}
|
|
||||||
showSearch
|
|
||||||
listStyle={{
|
|
||||||
width: 250,
|
|
||||||
height: 300,
|
|
||||||
}}
|
|
||||||
operations={['选择', '移除']}
|
|
||||||
operationStyle={{ marginTop: 20 }}
|
|
||||||
locale={{
|
|
||||||
itemUnit: '项',
|
|
||||||
itemsUnit: '项',
|
|
||||||
searchPlaceholder: '请输入搜索内容',
|
|
||||||
notFoundContent: '列表为空',
|
|
||||||
}}
|
|
||||||
onSelectChange={(
|
|
||||||
sourceSelectedKeys,
|
|
||||||
targetSelectedKeys,
|
|
||||||
) => {
|
|
||||||
// 处理选择变化,但不触发表单提交
|
|
||||||
}}
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
),
|
),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user