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,
|
||||
} from '@/common';
|
||||
import { Selects } from '@/components/Select';
|
||||
import { Apis } from '@/gen/Apis';
|
||||
import MyTransferUnits from '@/components/TransferUnits';
|
||||
import { BetaSchemaForm } from '@ant-design/pro-components';
|
||||
import { Form, message, Transfer } from 'antd';
|
||||
import { useEffect, useState } from 'react';
|
||||
import { Form } from 'antd';
|
||||
|
||||
export default function Create(props: MyBetaModalFormProps) {
|
||||
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');
|
||||
return (
|
||||
<BetaSchemaForm<ApiTypes.Grid.Grids.Store>
|
||||
{...MyModalFormProps.props}
|
||||
title={`范围添加`}
|
||||
width="700px"
|
||||
width="800px"
|
||||
layout="horizontal"
|
||||
labelCol={{ span: 4 }}
|
||||
wrapperCol={{ span: 24 }}
|
||||
labelAlign="right"
|
||||
trigger={
|
||||
<MyButtons.Create
|
||||
title={`${props.title}`}
|
||||
@ -52,32 +27,33 @@ export default function Create(props: MyBetaModalFormProps) {
|
||||
}
|
||||
form={form}
|
||||
key={new Date().getTime()}
|
||||
onOpenChange={(open: any) => {
|
||||
if (open) {
|
||||
form.resetFields(); // 清空表单数据
|
||||
form.setFieldsValue({
|
||||
asset_projects_id: props?.item?.id,
|
||||
});
|
||||
}
|
||||
}}
|
||||
// onOpenChange={(open: any) => {
|
||||
// if (open) {
|
||||
// form.resetFields(); // 清空表单数据
|
||||
// form.setFieldsValue({
|
||||
// asset_projects_id: props?.item?.id,
|
||||
// });
|
||||
// }
|
||||
// }}
|
||||
onFinish={async (values: any) => {
|
||||
(values.asset_projects_id =
|
||||
values?.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.Store({
|
||||
...values,
|
||||
})
|
||||
.then(() => {
|
||||
props.reload?.();
|
||||
message.success('网格添加成功');
|
||||
return true;
|
||||
})
|
||||
.catch(() => false);
|
||||
console.log(values, 'values');
|
||||
// (values.asset_projects_id =
|
||||
// values?.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.Store({
|
||||
// ...values,
|
||||
// })
|
||||
// .then(() => {
|
||||
// props.reload?.();
|
||||
// message.success('网格添加成功');
|
||||
// return true;
|
||||
// })
|
||||
// .catch(() => false);
|
||||
}}
|
||||
submitter={false}
|
||||
footer={[<MyButtons.Default key="submit" title="添加" />]}
|
||||
columns={[
|
||||
...(props?.item?.id
|
||||
? []
|
||||
@ -107,7 +83,6 @@ export default function Create(props: MyBetaModalFormProps) {
|
||||
colProps: { span: 24 },
|
||||
formItemProps: { ...rulesHelper.text },
|
||||
}),
|
||||
|
||||
{
|
||||
valueType: 'formItem',
|
||||
dataIndex: 'grid_units_id',
|
||||
@ -115,37 +90,12 @@ export default function Create(props: MyBetaModalFormProps) {
|
||||
colProps: { span: 24 },
|
||||
formItemProps: { ...rulesHelper.text },
|
||||
renderFormItem: () => (
|
||||
<div onClick={(e) => e.stopPropagation()}>
|
||||
<Transfer
|
||||
dataSource={transferData}
|
||||
targetKeys={targetKeys}
|
||||
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,
|
||||
) => {
|
||||
// 处理选择变化,但不触发表单提交
|
||||
<MyTransferUnits
|
||||
item={{
|
||||
asset_projects_id:
|
||||
props?.item?.id || asset_projects_id,
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
),
|
||||
},
|
||||
],
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user