diff --git a/src/components/TransferUnits.tsx b/src/components/TransferUnits.tsx new file mode 100644 index 0000000..10bd90b --- /dev/null +++ b/src/components/TransferUnits.tsx @@ -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([]); + const [targetKeys, setTargetKeys] = useState([]); + 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 ( + { + 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; diff --git a/src/pages/asset/grids/modals/GridCreate.tsx b/src/pages/asset/grids/modals/GridCreate.tsx index f1a4fbc..e590e2b 100644 --- a/src/pages/asset/grids/modals/GridCreate.tsx +++ b/src/pages/asset/grids/modals/GridCreate.tsx @@ -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([]); - const [targetKeys, setTargetKeys] = useState([]); - - // 获取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 ( {...MyModalFormProps.props} title={`范围添加`} - width="700px" + width="800px" layout="horizontal" - labelCol={{ span: 4 }} - wrapperCol={{ span: 24 }} - labelAlign="right" trigger={ { - 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={[]} 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: () => ( -
e.stopPropagation()}> - { - 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, - ) => { - // 处理选择变化,但不触发表单提交 - }} - /> -
+ ), }, ],