diff --git a/src/components/Select.tsx b/src/components/Select.tsx index 3e7ae47..9bc320e 100644 --- a/src/components/Select.tsx +++ b/src/components/Select.tsx @@ -110,6 +110,78 @@ export const Selects = { }, }; }, + + //网格标识 + GetGridMark(props?: PropsType): ReturnType { + const { + title = '网格标识', + key = 'grid_mark', + required = false, + hideInTable = true, + ...rest + } = props ?? {}; + + return { + title: title, + key: key, + valueType: 'select', + hideInTable: hideInTable, + formItemProps: { ...(required ? rulesHelper.number : {}) }, + request: async (params) => + ( + await Apis.Grid.Grids.GetGridMark({ + keywords: params?.KeyWords, + asset_projects_id: params?.asset_projects_id, + ...params, + }) + ).data, + ...rest, + fieldProps: { + showSearch: true, + fieldNames: { + label: 'label', + value: 'value', + }, + ...rest?.fieldProps, + }, + }; + }, + // 楼栋树形 + GetBuildingTree(props?: PropsType): ReturnType { + const { + title = '网格标识', + key = 'grid_mark', + required = false, + hideInTable = true, + ...rest + } = props ?? {}; + + return { + title: title, + key: key, + valueType: 'treeSelect', + hideInTable: hideInTable, + formItemProps: { ...(required ? rulesHelper.number : {}) }, + request: async (params) => + ( + await Apis.Asset.AssetBuildings.GetBuildingTree({ + keywords: params?.KeyWords, + asset_projects_id: params?.asset_projects_id, + ...params, + }) + ).data, + ...rest, + fieldProps: { + showSearch: true, + fieldNames: { + label: 'name', + value: 'id', + children: 'children', + }, + ...rest?.fieldProps, + }, + }; + }, //组织 Organizations(props?: PropsType): ReturnType { const { diff --git a/src/gen/ApiTypes.d.ts b/src/gen/ApiTypes.d.ts index 86a161b..c6f53ee 100644 --- a/src/gen/ApiTypes.d.ts +++ b/src/gen/ApiTypes.d.ts @@ -26,6 +26,9 @@ declare namespace ApiTypes { "asset_projects_id"?: number; // 所属项目id,[ref:asset_projects] "keywords"?: string; // 关键词 }; + type GetBuildingTree = { + "asset_projects_id": number; // 所属项目id + }; } namespace AssetHouses { type List = { @@ -472,6 +475,32 @@ declare namespace ApiTypes { }; } } + namespace Grid { + namespace Grids { + type List = { + "name"?: string; // 模糊搜索:名称 + }; + type Store = { + "asset_projects_id": number; // 所属项目id,[ref:asset_projects] + "grid_mark": string; // 网格标识 + "grid_range": string[]; // 网格范围 + }; + type Update = { + "id": number; // id + "grid_mark": string; // 网格标识 + "grid_range": string[]; // 网格范围 + }; + type Show = { + "id": number; // id + }; + type Delete = { + "id": number; // id + }; + type GetGridMark = { + "asset_projects_id": number; // - + }; + } + } namespace Permission { namespace SysPermissions { type List = { diff --git a/src/gen/Apis.ts b/src/gen/Apis.ts index 193ae6d..be72609 100644 --- a/src/gen/Apis.ts +++ b/src/gen/Apis.ts @@ -7,21 +7,36 @@ export const Apis = { List(data?: ApiTypes.Asset.AssetBuildings.List): Promise { return request('admin/asset/asset_buildings/list', { data }); }, - Store(data: ApiTypes.Asset.AssetBuildings.Store): Promise { + Store( + data: ApiTypes.Asset.AssetBuildings.Store, + ): Promise { return request('admin/asset/asset_buildings/store', { data }); }, - Update(data: ApiTypes.Asset.AssetBuildings.Update): Promise { + Update( + data: ApiTypes.Asset.AssetBuildings.Update, + ): Promise { return request('admin/asset/asset_buildings/update', { data }); }, Show(data: ApiTypes.Asset.AssetBuildings.Show): Promise { return request('admin/asset/asset_buildings/show', { data }); }, - Delete(data: ApiTypes.Asset.AssetBuildings.Delete): Promise { + Delete( + data: ApiTypes.Asset.AssetBuildings.Delete, + ): Promise { return request('admin/asset/asset_buildings/delete', { data }); }, - Select(data?: ApiTypes.Asset.AssetBuildings.Select): Promise { + Select( + data?: ApiTypes.Asset.AssetBuildings.Select, + ): Promise { return request('admin/asset/asset_buildings/select', { data }); }, + GetBuildingTree( + data: ApiTypes.Asset.AssetBuildings.GetBuildingTree, + ): Promise { + return request('admin/asset/asset_buildings/get_building_tree', { + data, + }); + }, }, AssetHouses: { List(data?: ApiTypes.Asset.AssetHouses.List): Promise { @@ -47,22 +62,32 @@ export const Apis = { Store(data: ApiTypes.Asset.AssetProjects.Store): Promise { return request('admin/asset/asset_projects/store', { data }); }, - Update(data: ApiTypes.Asset.AssetProjects.Update): Promise { + Update( + data: ApiTypes.Asset.AssetProjects.Update, + ): Promise { return request('admin/asset/asset_projects/update', { data }); }, Show(data: ApiTypes.Asset.AssetProjects.Show): Promise { return request('admin/asset/asset_projects/show', { data }); }, - SoftDelete(data: ApiTypes.Asset.AssetProjects.SoftDelete): Promise { + SoftDelete( + data: ApiTypes.Asset.AssetProjects.SoftDelete, + ): Promise { return request('admin/asset/asset_projects/soft_delete', { data }); }, - Restore(data: ApiTypes.Asset.AssetProjects.Restore): Promise { + Restore( + data: ApiTypes.Asset.AssetProjects.Restore, + ): Promise { return request('admin/asset/asset_projects/restore', { data }); }, - Delete(data: ApiTypes.Asset.AssetProjects.Delete): Promise { + Delete( + data: ApiTypes.Asset.AssetProjects.Delete, + ): Promise { return request('admin/asset/asset_projects/delete', { data }); }, - Select(data?: ApiTypes.Asset.AssetProjects.Select): Promise { + Select( + data?: ApiTypes.Asset.AssetProjects.Select, + ): Promise { return request('admin/asset/asset_projects/select', { data }); }, }, @@ -118,13 +143,17 @@ export const Apis = { Me(): Promise { return request('admin/common/auth/me', {}); }, - ChangePassword(data: ApiTypes.Common.Auth.ChangePassword): Promise { + ChangePassword( + data: ApiTypes.Common.Auth.ChangePassword, + ): Promise { return request('admin/common/auth/change_password', { data }); }, PreUpload(data: ApiTypes.Common.Auth.PreUpload): Promise { return request('admin/common/auth/pre_upload', { data }); }, - TemporaryUrl(data: ApiTypes.Common.Auth.TemporaryUrl): Promise { + TemporaryUrl( + data: ApiTypes.Common.Auth.TemporaryUrl, + ): Promise { return request('admin/common/auth/temporary_url', { data }); }, }, @@ -143,96 +172,160 @@ export const Apis = { Show(data: ApiTypes.Company.Companies.Show): Promise { return request('admin/company/companies/show', { data }); }, - SoftDelete(data: ApiTypes.Company.Companies.SoftDelete): Promise { + SoftDelete( + data: ApiTypes.Company.Companies.SoftDelete, + ): Promise { return request('admin/company/companies/soft_delete', { data }); }, - Restore(data: ApiTypes.Company.Companies.Restore): Promise { + Restore( + data: ApiTypes.Company.Companies.Restore, + ): Promise { return request('admin/company/companies/restore', { data }); }, Delete(data: ApiTypes.Company.Companies.Delete): Promise { return request('admin/company/companies/delete', { data }); }, - Select(data?: ApiTypes.Company.Companies.Select): Promise { + Select( + data?: ApiTypes.Company.Companies.Select, + ): Promise { return request('admin/company/companies/select', { data }); }, }, CompanyEmployees: { - List(data?: ApiTypes.Company.CompanyEmployees.List): Promise { + List( + data?: ApiTypes.Company.CompanyEmployees.List, + ): Promise { return request('admin/company/company_employees/list', { data }); }, - Store(data: ApiTypes.Company.CompanyEmployees.Store): Promise { + Store( + data: ApiTypes.Company.CompanyEmployees.Store, + ): Promise { return request('admin/company/company_employees/store', { data }); }, - Update(data: ApiTypes.Company.CompanyEmployees.Update): Promise { + Update( + data: ApiTypes.Company.CompanyEmployees.Update, + ): Promise { return request('admin/company/company_employees/update', { data }); }, - Show(data: ApiTypes.Company.CompanyEmployees.Show): Promise { + Show( + data: ApiTypes.Company.CompanyEmployees.Show, + ): Promise { return request('admin/company/company_employees/show', { data }); }, - SoftDelete(data: ApiTypes.Company.CompanyEmployees.SoftDelete): Promise { + SoftDelete( + data: ApiTypes.Company.CompanyEmployees.SoftDelete, + ): Promise { return request('admin/company/company_employees/soft_delete', { data }); }, - Restore(data: ApiTypes.Company.CompanyEmployees.Restore): Promise { + Restore( + data: ApiTypes.Company.CompanyEmployees.Restore, + ): Promise { return request('admin/company/company_employees/restore', { data }); }, - Delete(data: ApiTypes.Company.CompanyEmployees.Delete): Promise { + Delete( + data: ApiTypes.Company.CompanyEmployees.Delete, + ): Promise { return request('admin/company/company_employees/delete', { data }); }, - Select(data?: ApiTypes.Company.CompanyEmployees.Select): Promise { + Select( + data?: ApiTypes.Company.CompanyEmployees.Select, + ): Promise { return request('admin/company/company_employees/select', { data }); }, }, CompanyPositions: { - List(data?: ApiTypes.Company.CompanyPositions.List): Promise { + List( + data?: ApiTypes.Company.CompanyPositions.List, + ): Promise { return request('admin/company/company_positions/list', { data }); }, - Store(data: ApiTypes.Company.CompanyPositions.Store): Promise { + Store( + data: ApiTypes.Company.CompanyPositions.Store, + ): Promise { return request('admin/company/company_positions/store', { data }); }, - Update(data: ApiTypes.Company.CompanyPositions.Update): Promise { + Update( + data: ApiTypes.Company.CompanyPositions.Update, + ): Promise { return request('admin/company/company_positions/update', { data }); }, - Show(data: ApiTypes.Company.CompanyPositions.Show): Promise { + Show( + data: ApiTypes.Company.CompanyPositions.Show, + ): Promise { return request('admin/company/company_positions/show', { data }); }, - Delete(data: ApiTypes.Company.CompanyPositions.Delete): Promise { + Delete( + data: ApiTypes.Company.CompanyPositions.Delete, + ): Promise { return request('admin/company/company_positions/delete', { data }); }, - Select(data?: ApiTypes.Company.CompanyPositions.Select): Promise { + Select( + data?: ApiTypes.Company.CompanyPositions.Select, + ): Promise { return request('admin/company/company_positions/select', { data }); }, }, CompanyReceiptAccounts: { - List(data?: ApiTypes.Company.CompanyReceiptAccounts.List): Promise { + List( + data?: ApiTypes.Company.CompanyReceiptAccounts.List, + ): Promise { return request('admin/company/company_receipt_accounts/list', { data }); }, - Store(data: ApiTypes.Company.CompanyReceiptAccounts.Store): Promise { - return request('admin/company/company_receipt_accounts/store', { data }); + Store( + data: ApiTypes.Company.CompanyReceiptAccounts.Store, + ): Promise { + return request('admin/company/company_receipt_accounts/store', { + data, + }); }, - Update(data: ApiTypes.Company.CompanyReceiptAccounts.Update): Promise { - return request('admin/company/company_receipt_accounts/update', { data }); + Update( + data: ApiTypes.Company.CompanyReceiptAccounts.Update, + ): Promise { + return request('admin/company/company_receipt_accounts/update', { + data, + }); }, - Show(data: ApiTypes.Company.CompanyReceiptAccounts.Show): Promise { + Show( + data: ApiTypes.Company.CompanyReceiptAccounts.Show, + ): Promise { return request('admin/company/company_receipt_accounts/show', { data }); }, - SoftDelete(data: ApiTypes.Company.CompanyReceiptAccounts.SoftDelete): Promise { - return request('admin/company/company_receipt_accounts/soft_delete', { data }); + SoftDelete( + data: ApiTypes.Company.CompanyReceiptAccounts.SoftDelete, + ): Promise { + return request('admin/company/company_receipt_accounts/soft_delete', { + data, + }); }, - Restore(data: ApiTypes.Company.CompanyReceiptAccounts.Restore): Promise { - return request('admin/company/company_receipt_accounts/restore', { data }); + Restore( + data: ApiTypes.Company.CompanyReceiptAccounts.Restore, + ): Promise { + return request('admin/company/company_receipt_accounts/restore', { + data, + }); }, - Delete(data: ApiTypes.Company.CompanyReceiptAccounts.Delete): Promise { - return request('admin/company/company_receipt_accounts/delete', { data }); + Delete( + data: ApiTypes.Company.CompanyReceiptAccounts.Delete, + ): Promise { + return request('admin/company/company_receipt_accounts/delete', { + data, + }); }, }, Organizations: { - List(data?: ApiTypes.Company.Organizations.List): Promise { + List( + data?: ApiTypes.Company.Organizations.List, + ): Promise { return request('admin/company/organizations/list', { data }); }, - Store(data: ApiTypes.Company.Organizations.Store): Promise { + Store( + data: ApiTypes.Company.Organizations.Store, + ): Promise { return request('admin/company/organizations/store', { data }); }, - Update(data: ApiTypes.Company.Organizations.Update): Promise { + Update( + data: ApiTypes.Company.Organizations.Update, + ): Promise { return request('admin/company/organizations/update', { data }); }, Move(data: ApiTypes.Company.Organizations.Move): Promise { @@ -241,41 +334,87 @@ export const Apis = { Show(data: ApiTypes.Company.Organizations.Show): Promise { return request('admin/company/organizations/show', { data }); }, - SoftDelete(data: ApiTypes.Company.Organizations.SoftDelete): Promise { + SoftDelete( + data: ApiTypes.Company.Organizations.SoftDelete, + ): Promise { return request('admin/company/organizations/soft_delete', { data }); }, - Restore(data: ApiTypes.Company.Organizations.Restore): Promise { + Restore( + data: ApiTypes.Company.Organizations.Restore, + ): Promise { return request('admin/company/organizations/restore', { data }); }, - Delete(data: ApiTypes.Company.Organizations.Delete): Promise { + Delete( + data: ApiTypes.Company.Organizations.Delete, + ): Promise { return request('admin/company/organizations/delete', { data }); }, - Select(data?: ApiTypes.Company.Organizations.Select): Promise { + Select( + data?: ApiTypes.Company.Organizations.Select, + ): Promise { return request('admin/company/organizations/select', { data }); }, - SelectTree(data?: ApiTypes.Company.Organizations.SelectTree): Promise { + SelectTree( + data?: ApiTypes.Company.Organizations.SelectTree, + ): Promise { return request('admin/company/organizations/select_tree', { data }); }, }, }, + Grid: { + Grids: { + List(data?: ApiTypes.Grid.Grids.List): Promise { + return request('admin/grid/grids/list', { data }); + }, + Store(data: ApiTypes.Grid.Grids.Store): Promise { + return request('admin/grid/grids/store', { data }); + }, + Update(data: ApiTypes.Grid.Grids.Update): Promise { + return request('admin/grid/grids/update', { data }); + }, + Show(data: ApiTypes.Grid.Grids.Show): Promise { + return request('admin/grid/grids/show', { data }); + }, + Delete(data: ApiTypes.Grid.Grids.Delete): Promise { + return request('admin/grid/grids/delete', { data }); + }, + GetGridMark( + data: ApiTypes.Grid.Grids.GetGridMark, + ): Promise { + return request('admin/grid/grids/get_grid_mark', { data }); + }, + }, + }, Permission: { SysPermissions: { - List(data: ApiTypes.Permission.SysPermissions.List): Promise { + List( + data: ApiTypes.Permission.SysPermissions.List, + ): Promise { return request('admin/permission/sys_permissions/list', { data }); }, - Tree(data: ApiTypes.Permission.SysPermissions.Tree): Promise { + Tree( + data: ApiTypes.Permission.SysPermissions.Tree, + ): Promise { return request('admin/permission/sys_permissions/tree', { data }); }, - Store(data: ApiTypes.Permission.SysPermissions.Store): Promise { + Store( + data: ApiTypes.Permission.SysPermissions.Store, + ): Promise { return request('admin/permission/sys_permissions/store', { data }); }, - Update(data: ApiTypes.Permission.SysPermissions.Update): Promise { + Update( + data: ApiTypes.Permission.SysPermissions.Update, + ): Promise { return request('admin/permission/sys_permissions/update', { data }); }, - Delete(data: ApiTypes.Permission.SysPermissions.Delete): Promise { + Delete( + data: ApiTypes.Permission.SysPermissions.Delete, + ): Promise { return request('admin/permission/sys_permissions/delete', { data }); }, - Move(data: ApiTypes.Permission.SysPermissions.Move): Promise { + Move( + data: ApiTypes.Permission.SysPermissions.Move, + ): Promise { return request('admin/permission/sys_permissions/move', { data }); }, SelectApi(): Promise { @@ -289,21 +428,29 @@ export const Apis = { Store(data: ApiTypes.Permission.SysRoles.Store): Promise { return request('admin/permission/sys_roles/store', { data }); }, - Update(data: ApiTypes.Permission.SysRoles.Update): Promise { + Update( + data: ApiTypes.Permission.SysRoles.Update, + ): Promise { return request('admin/permission/sys_roles/update', { data }); }, - Delete(data: ApiTypes.Permission.SysRoles.Delete): Promise { + Delete( + data: ApiTypes.Permission.SysRoles.Delete, + ): Promise { return request('admin/permission/sys_roles/delete', { data }); }, Select(): Promise { return request('admin/permission/sys_roles/select', {}); }, - GetPermissions(data: ApiTypes.Permission.SysRoles.GetPermissions): Promise { + GetPermissions( + data: ApiTypes.Permission.SysRoles.GetPermissions, + ): Promise { return request('admin/permission/sys_roles/get_permissions', { data }); }, - SetPermissions(data: ApiTypes.Permission.SysRoles.SetPermissions): Promise { + SetPermissions( + data: ApiTypes.Permission.SysRoles.SetPermissions, + ): Promise { return request('admin/permission/sys_roles/set_permissions', { data }); }, }, }, -} \ No newline at end of file +}; diff --git a/src/pages/asset/asset_projects/$id.tsx b/src/pages/asset/asset_projects/$id.tsx index 7231ad2..2134e1f 100644 --- a/src/pages/asset/asset_projects/$id.tsx +++ b/src/pages/asset/asset_projects/$id.tsx @@ -5,7 +5,9 @@ import { useParams } from '@umijs/max'; import { Tabs } from 'antd'; import { useEffect, useState } from 'react'; import MyAssetBuildings from './components/AssetBuildings'; +import AssetGrid from './components/AssetGrid'; import AssetInfo from './components/AssetInfo'; + export default function Show({ title = '项目详情' }) { const { id } = useParams<{ id: string }>(); const [data, setShow] = useState({}); @@ -33,12 +35,12 @@ export default function Show({ title = '项目详情' }) { closable: false, children: , }, - // { - // label: '车场管理', - // key: 'car', - // closable: false, - // children: , - // }, + { + label: '网格管理', + key: 'grid', + closable: false, + children: , + }, // { // label: '车位管理', // key: 'carport', diff --git a/src/pages/asset/asset_projects/components/AssetBuildings.tsx b/src/pages/asset/asset_projects/components/AssetBuildings.tsx index 18daa4b..99a10cd 100644 --- a/src/pages/asset/asset_projects/components/AssetBuildings.tsx +++ b/src/pages/asset/asset_projects/components/AssetBuildings.tsx @@ -13,13 +13,13 @@ import { import { ProCard, ProTable } from '@ant-design/pro-components'; import { Space } from 'antd'; import { useRef, useState } from 'react'; -import BuildingsCreate from '../modals/AssetBuildingsCreate'; -import AssetBuildingsUpdate from '../modals/AssetBuildingsUpdate'; -import AssetHousesCreate from '../modals/AssetHousesCreate'; -import AssetHousesShow from '../modals/AssetHousesShow'; -import AssetHousesUpdate from '../modals/AssetHousesUpdate'; -import AssetUnitsCreate from '../modals/AssetUnitsCreate'; -import AssetUnitsUpdate from '../modals/AssetUnitsUpdate'; +import BuildingsCreate from '../modals/BuildingsCreate'; +import AssetBuildingsUpdate from '../modals/BuildingsUpdate'; +import AssetHousesCreate from '../modals/HousesCreate'; +import AssetHousesShow from '../modals/HousesShow'; +import AssetHousesUpdate from '../modals/HousesUpdate'; +import AssetUnitsCreate from '../modals/UnitsCreate'; +import AssetUnitsUpdate from '../modals/UnitsUpdate'; export default function AssetBuildings(props: MyBetaModalFormProps) { const actionBuildingsRef: any = useRef(); diff --git a/src/pages/asset/asset_projects/components/AssetGrid.tsx b/src/pages/asset/asset_projects/components/AssetGrid.tsx new file mode 100644 index 0000000..9871751 --- /dev/null +++ b/src/pages/asset/asset_projects/components/AssetGrid.tsx @@ -0,0 +1,66 @@ +import { MyButtons, MyColumns, MyProTableProps } from '@/common'; +import { Apis } from '@/gen/Apis'; +import { ProTable } from '@ant-design/pro-components'; +import { useNavigate } from '@umijs/max'; +import { Space } from 'antd'; +import { useEffect, useRef } from 'react'; +import GridCreate from '../modals/GridCreate'; +import GridCreateUpdate from '../modals/GridUpdate'; + +export default function Index({ ...rest }) { + const navigate = useNavigate(); + const actionLooks = useRef(); + useEffect(() => { + actionLooks?.current.reloadAndRest(); + }, [rest.loadmore]); + + return ( + <> + > + {...MyProTableProps.props} + actionRef={actionLooks} + request={async (params, sort) => + MyProTableProps.request( + { ...params, asset_projects_id: rest.item?.asset_projects_id }, + sort, + Apis.Grid.Grids.List, + ) + } + toolBarRender={(action) => [ + , + ]} + search={false} + columns={[ + { + title: '网格ID', + dataIndex: 'id', + }, + { + title: '网格名称', + dataIndex: 'name', + }, + { + title: '网格标识', + dataIndex: 'grid_mark', + }, + MyColumns.CreatedAt(), + MyColumns.UpdatedAt(), + MyColumns.Option({ + render: (_, item: any, index, action) => ( + + + + Apis.Asset.AssetBuildings.Delete({ id: item.id }).then(() => + action?.reload(), + ) + } + /> + + ), + }), + ]} + /> + + ); +} diff --git a/src/pages/asset/asset_projects/components/AssetInfo.tsx b/src/pages/asset/asset_projects/components/AssetInfo.tsx index c2b9cd7..b33829d 100644 --- a/src/pages/asset/asset_projects/components/AssetInfo.tsx +++ b/src/pages/asset/asset_projects/components/AssetInfo.tsx @@ -14,7 +14,7 @@ export default function info(props: MyBetaModalFormProps) { - + {props?.item?.name} {props?.item?.alias_name} - + {/* {props?.item?.code} - + */} + {...MyModalFormProps.props} + title={`创建网格`} + wrapperCol={{ span: 24 }} + width="700px" + trigger={} + form={form} + onOpenChange={(open: any) => { + if (open) { + form.resetFields(); // 清空表单数据 + } + }} + onFinish={async (values: any) => { + values?.grid_ranges?.map((res: { asset_projects_id: string }) => { + res.asset_projects_id = props?.item?.id; + }); + Apis.Grid.Grids.Store({ + ...values, + asset_projects_id: props?.item?.id, + }) + .then(() => { + props.reload?.(); + message.success(props.title + '成功'); + return true; + }) + .catch(() => false); + }} + columns={[ + Selects?.GetGridMark({ + key: 'grid_mark', + title: '网格标识', + params: { + asset_projects_id: props?.item?.id, + }, + colProps: { span: 24 }, + formItemProps: { ...rulesHelper.text }, + }), + { + valueType: 'formList', + dataIndex: 'grid_ranges', + colProps: { span: 24 }, + initialValue: [''], + formItemProps: { ...rulesHelper.array }, + fieldProps: { + copyIconProps: false, + creatorButtonProps: { + creatorButtonText: '添加楼栋单元', + }, + itemRender: ( + { listDom, action }: any, + { index }: { index: number }, + ) => { + return ( + + {listDom} + + ); + }, + }, + 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: () => { + form.setFieldsValue({ + asset_units_id: undefined, + asset_floors_id: undefined, + }); + }, + }, + }), + Selects?.AssetUnits({ + key: 'asset_units_id', + title: '选择单元', + params: { + asset_projects_id: props?.item?.id, + asset_buildings_id: asset_buildings_id, + }, + colProps: { span: 12 }, + formItemProps: { ...rulesHelper.text }, + fieldProps: { + showSearch: true, + }, + }), + ], + }, + ]; + }, + }, + ], + }, + ]} + /> + ); +} diff --git a/src/pages/asset/asset_projects/modals/GridUpdate.tsx b/src/pages/asset/asset_projects/modals/GridUpdate.tsx new file mode 100644 index 0000000..c279cb2 --- /dev/null +++ b/src/pages/asset/asset_projects/modals/GridUpdate.tsx @@ -0,0 +1,133 @@ +import { + MyBetaModalFormProps, + MyButtons, + MyModalFormProps, + rulesHelper, +} from '@/common'; +import { Selects } from '@/components/Select'; +import { Apis } from '@/gen/Apis'; +import { BetaSchemaForm, ProCard } from '@ant-design/pro-components'; +import { Form, message } from 'antd'; + +export default function Update(props: MyBetaModalFormProps) { + const [form] = Form.useForm(); + + return ( + + {...MyModalFormProps.props} + title={`编辑`} + wrapperCol={{ span: 24 }} + width="700px" + trigger={} + form={form} + onOpenChange={(open: any) => { + if (open) { + Apis.Grid.Grids.Show({ id: props?.item?.id }).then((res) => { + form.setFieldsValue(res?.data); + }); + } + }} + onFinish={async (values: any) => { + values?.grid_ranges?.map((res: { asset_projects_id: string }) => { + res.asset_projects_id = props?.item?.id; + }); + return Apis.Grid.Grids.Update({ + ...values, + id: props?.item?.id, + }) + .then(() => { + props.reload?.(); + message.success('单元编辑成功'); + return true; + }) + .catch(() => false); + }} + columns={[ + Selects?.GetGridMark({ + key: 'grid_mark', + title: '网格标识', + params: { + asset_projects_id: props?.item?.id, + }, + colProps: { span: 24 }, + formItemProps: { ...rulesHelper.text }, + }), + { + valueType: 'formList', + dataIndex: 'grid_ranges', + colProps: { span: 24 }, + initialValue: [''], + formItemProps: { ...rulesHelper.array }, + fieldProps: { + copyIconProps: false, + creatorButtonProps: { + creatorButtonText: '添加楼栋-单元', + }, + itemRender: ( + { listDom, action }: any, + { index }: { index: number }, + ) => { + return ( + + {listDom} + + ); + }, + }, + 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: () => { + form.setFieldsValue({ + asset_units_id: undefined, + asset_floors_id: undefined, + }); + }, + }, + }), + Selects?.AssetUnits({ + key: 'asset_units_id', + title: '选择单元', + params: { + asset_projects_id: props?.item?.id, + asset_buildings_id: asset_buildings_id, + }, + colProps: { span: 12 }, + formItemProps: { ...rulesHelper.text }, + fieldProps: { + showSearch: true, + }, + }), + ], + }, + ]; + }, + }, + ], + }, + ]} + /> + ); +} diff --git a/src/pages/asset/asset_projects/modals/AssetHousesCreate.tsx b/src/pages/asset/asset_projects/modals/HousesCreate.tsx similarity index 100% rename from src/pages/asset/asset_projects/modals/AssetHousesCreate.tsx rename to src/pages/asset/asset_projects/modals/HousesCreate.tsx diff --git a/src/pages/asset/asset_projects/modals/AssetHousesShow.tsx b/src/pages/asset/asset_projects/modals/HousesShow.tsx similarity index 100% rename from src/pages/asset/asset_projects/modals/AssetHousesShow.tsx rename to src/pages/asset/asset_projects/modals/HousesShow.tsx diff --git a/src/pages/asset/asset_projects/modals/AssetHousesUpdate.tsx b/src/pages/asset/asset_projects/modals/HousesUpdate.tsx similarity index 99% rename from src/pages/asset/asset_projects/modals/AssetHousesUpdate.tsx rename to src/pages/asset/asset_projects/modals/HousesUpdate.tsx index 31eb384..77adbdf 100644 --- a/src/pages/asset/asset_projects/modals/AssetHousesUpdate.tsx +++ b/src/pages/asset/asset_projects/modals/HousesUpdate.tsx @@ -22,7 +22,7 @@ export default function Update(props: MyBetaModalFormProps) { return ( {...MyModalFormProps.props} - title={`编辑`} + title={`编辑房屋`} wrapperCol={{ span: 24 }} width="800px" trigger={} diff --git a/src/pages/asset/asset_projects/modals/AssetUnitsCreate.tsx b/src/pages/asset/asset_projects/modals/UnitsCreate.tsx similarity index 100% rename from src/pages/asset/asset_projects/modals/AssetUnitsCreate.tsx rename to src/pages/asset/asset_projects/modals/UnitsCreate.tsx diff --git a/src/pages/asset/asset_projects/modals/AssetUnitsUpdate.tsx b/src/pages/asset/asset_projects/modals/UnitsUpdate.tsx similarity index 100% rename from src/pages/asset/asset_projects/modals/AssetUnitsUpdate.tsx rename to src/pages/asset/asset_projects/modals/UnitsUpdate.tsx