no message

This commit is contained in:
uiujun 2025-06-30 18:42:21 +08:00
parent 1cdddded82
commit 3431a7da42
18 changed files with 663 additions and 83 deletions

View File

@ -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 {

29
src/gen/ApiTypes.d.ts vendored
View File

@ -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 = {

View File

@ -7,21 +7,36 @@ export const Apis = {
List(data?: ApiTypes.Asset.AssetBuildings.List): Promise<MyResponseType> {
return request('admin/asset/asset_buildings/list', { data });
},
Store(data: ApiTypes.Asset.AssetBuildings.Store): Promise<MyResponseType> {
Store(
data: ApiTypes.Asset.AssetBuildings.Store,
): Promise<MyResponseType> {
return request('admin/asset/asset_buildings/store', { data });
},
Update(data: ApiTypes.Asset.AssetBuildings.Update): Promise<MyResponseType> {
Update(
data: ApiTypes.Asset.AssetBuildings.Update,
): Promise<MyResponseType> {
return request('admin/asset/asset_buildings/update', { data });
},
Show(data: ApiTypes.Asset.AssetBuildings.Show): Promise<MyResponseType> {
return request('admin/asset/asset_buildings/show', { data });
},
Delete(data: ApiTypes.Asset.AssetBuildings.Delete): Promise<MyResponseType> {
Delete(
data: ApiTypes.Asset.AssetBuildings.Delete,
): Promise<MyResponseType> {
return request('admin/asset/asset_buildings/delete', { data });
},
Select(data?: ApiTypes.Asset.AssetBuildings.Select): Promise<MyResponseType> {
Select(
data?: ApiTypes.Asset.AssetBuildings.Select,
): Promise<MyResponseType> {
return request('admin/asset/asset_buildings/select', { data });
},
GetBuildingTree(
data: ApiTypes.Asset.AssetBuildings.GetBuildingTree,
): Promise<MyResponseType> {
return request('admin/asset/asset_buildings/get_building_tree', {
data,
});
},
},
AssetHouses: {
List(data?: ApiTypes.Asset.AssetHouses.List): Promise<MyResponseType> {
@ -47,22 +62,32 @@ export const Apis = {
Store(data: ApiTypes.Asset.AssetProjects.Store): Promise<MyResponseType> {
return request('admin/asset/asset_projects/store', { data });
},
Update(data: ApiTypes.Asset.AssetProjects.Update): Promise<MyResponseType> {
Update(
data: ApiTypes.Asset.AssetProjects.Update,
): Promise<MyResponseType> {
return request('admin/asset/asset_projects/update', { data });
},
Show(data: ApiTypes.Asset.AssetProjects.Show): Promise<MyResponseType> {
return request('admin/asset/asset_projects/show', { data });
},
SoftDelete(data: ApiTypes.Asset.AssetProjects.SoftDelete): Promise<MyResponseType> {
SoftDelete(
data: ApiTypes.Asset.AssetProjects.SoftDelete,
): Promise<MyResponseType> {
return request('admin/asset/asset_projects/soft_delete', { data });
},
Restore(data: ApiTypes.Asset.AssetProjects.Restore): Promise<MyResponseType> {
Restore(
data: ApiTypes.Asset.AssetProjects.Restore,
): Promise<MyResponseType> {
return request('admin/asset/asset_projects/restore', { data });
},
Delete(data: ApiTypes.Asset.AssetProjects.Delete): Promise<MyResponseType> {
Delete(
data: ApiTypes.Asset.AssetProjects.Delete,
): Promise<MyResponseType> {
return request('admin/asset/asset_projects/delete', { data });
},
Select(data?: ApiTypes.Asset.AssetProjects.Select): Promise<MyResponseType> {
Select(
data?: ApiTypes.Asset.AssetProjects.Select,
): Promise<MyResponseType> {
return request('admin/asset/asset_projects/select', { data });
},
},
@ -118,13 +143,17 @@ export const Apis = {
Me(): Promise<MyResponseType> {
return request('admin/common/auth/me', {});
},
ChangePassword(data: ApiTypes.Common.Auth.ChangePassword): Promise<MyResponseType> {
ChangePassword(
data: ApiTypes.Common.Auth.ChangePassword,
): Promise<MyResponseType> {
return request('admin/common/auth/change_password', { data });
},
PreUpload(data: ApiTypes.Common.Auth.PreUpload): Promise<MyResponseType> {
return request('admin/common/auth/pre_upload', { data });
},
TemporaryUrl(data: ApiTypes.Common.Auth.TemporaryUrl): Promise<MyResponseType> {
TemporaryUrl(
data: ApiTypes.Common.Auth.TemporaryUrl,
): Promise<MyResponseType> {
return request('admin/common/auth/temporary_url', { data });
},
},
@ -143,96 +172,160 @@ export const Apis = {
Show(data: ApiTypes.Company.Companies.Show): Promise<MyResponseType> {
return request('admin/company/companies/show', { data });
},
SoftDelete(data: ApiTypes.Company.Companies.SoftDelete): Promise<MyResponseType> {
SoftDelete(
data: ApiTypes.Company.Companies.SoftDelete,
): Promise<MyResponseType> {
return request('admin/company/companies/soft_delete', { data });
},
Restore(data: ApiTypes.Company.Companies.Restore): Promise<MyResponseType> {
Restore(
data: ApiTypes.Company.Companies.Restore,
): Promise<MyResponseType> {
return request('admin/company/companies/restore', { data });
},
Delete(data: ApiTypes.Company.Companies.Delete): Promise<MyResponseType> {
return request('admin/company/companies/delete', { data });
},
Select(data?: ApiTypes.Company.Companies.Select): Promise<MyResponseType> {
Select(
data?: ApiTypes.Company.Companies.Select,
): Promise<MyResponseType> {
return request('admin/company/companies/select', { data });
},
},
CompanyEmployees: {
List(data?: ApiTypes.Company.CompanyEmployees.List): Promise<MyResponseType> {
List(
data?: ApiTypes.Company.CompanyEmployees.List,
): Promise<MyResponseType> {
return request('admin/company/company_employees/list', { data });
},
Store(data: ApiTypes.Company.CompanyEmployees.Store): Promise<MyResponseType> {
Store(
data: ApiTypes.Company.CompanyEmployees.Store,
): Promise<MyResponseType> {
return request('admin/company/company_employees/store', { data });
},
Update(data: ApiTypes.Company.CompanyEmployees.Update): Promise<MyResponseType> {
Update(
data: ApiTypes.Company.CompanyEmployees.Update,
): Promise<MyResponseType> {
return request('admin/company/company_employees/update', { data });
},
Show(data: ApiTypes.Company.CompanyEmployees.Show): Promise<MyResponseType> {
Show(
data: ApiTypes.Company.CompanyEmployees.Show,
): Promise<MyResponseType> {
return request('admin/company/company_employees/show', { data });
},
SoftDelete(data: ApiTypes.Company.CompanyEmployees.SoftDelete): Promise<MyResponseType> {
SoftDelete(
data: ApiTypes.Company.CompanyEmployees.SoftDelete,
): Promise<MyResponseType> {
return request('admin/company/company_employees/soft_delete', { data });
},
Restore(data: ApiTypes.Company.CompanyEmployees.Restore): Promise<MyResponseType> {
Restore(
data: ApiTypes.Company.CompanyEmployees.Restore,
): Promise<MyResponseType> {
return request('admin/company/company_employees/restore', { data });
},
Delete(data: ApiTypes.Company.CompanyEmployees.Delete): Promise<MyResponseType> {
Delete(
data: ApiTypes.Company.CompanyEmployees.Delete,
): Promise<MyResponseType> {
return request('admin/company/company_employees/delete', { data });
},
Select(data?: ApiTypes.Company.CompanyEmployees.Select): Promise<MyResponseType> {
Select(
data?: ApiTypes.Company.CompanyEmployees.Select,
): Promise<MyResponseType> {
return request('admin/company/company_employees/select', { data });
},
},
CompanyPositions: {
List(data?: ApiTypes.Company.CompanyPositions.List): Promise<MyResponseType> {
List(
data?: ApiTypes.Company.CompanyPositions.List,
): Promise<MyResponseType> {
return request('admin/company/company_positions/list', { data });
},
Store(data: ApiTypes.Company.CompanyPositions.Store): Promise<MyResponseType> {
Store(
data: ApiTypes.Company.CompanyPositions.Store,
): Promise<MyResponseType> {
return request('admin/company/company_positions/store', { data });
},
Update(data: ApiTypes.Company.CompanyPositions.Update): Promise<MyResponseType> {
Update(
data: ApiTypes.Company.CompanyPositions.Update,
): Promise<MyResponseType> {
return request('admin/company/company_positions/update', { data });
},
Show(data: ApiTypes.Company.CompanyPositions.Show): Promise<MyResponseType> {
Show(
data: ApiTypes.Company.CompanyPositions.Show,
): Promise<MyResponseType> {
return request('admin/company/company_positions/show', { data });
},
Delete(data: ApiTypes.Company.CompanyPositions.Delete): Promise<MyResponseType> {
Delete(
data: ApiTypes.Company.CompanyPositions.Delete,
): Promise<MyResponseType> {
return request('admin/company/company_positions/delete', { data });
},
Select(data?: ApiTypes.Company.CompanyPositions.Select): Promise<MyResponseType> {
Select(
data?: ApiTypes.Company.CompanyPositions.Select,
): Promise<MyResponseType> {
return request('admin/company/company_positions/select', { data });
},
},
CompanyReceiptAccounts: {
List(data?: ApiTypes.Company.CompanyReceiptAccounts.List): Promise<MyResponseType> {
List(
data?: ApiTypes.Company.CompanyReceiptAccounts.List,
): Promise<MyResponseType> {
return request('admin/company/company_receipt_accounts/list', { data });
},
Store(data: ApiTypes.Company.CompanyReceiptAccounts.Store): Promise<MyResponseType> {
return request('admin/company/company_receipt_accounts/store', { data });
Store(
data: ApiTypes.Company.CompanyReceiptAccounts.Store,
): Promise<MyResponseType> {
return request('admin/company/company_receipt_accounts/store', {
data,
});
},
Update(data: ApiTypes.Company.CompanyReceiptAccounts.Update): Promise<MyResponseType> {
return request('admin/company/company_receipt_accounts/update', { data });
Update(
data: ApiTypes.Company.CompanyReceiptAccounts.Update,
): Promise<MyResponseType> {
return request('admin/company/company_receipt_accounts/update', {
data,
});
},
Show(data: ApiTypes.Company.CompanyReceiptAccounts.Show): Promise<MyResponseType> {
Show(
data: ApiTypes.Company.CompanyReceiptAccounts.Show,
): Promise<MyResponseType> {
return request('admin/company/company_receipt_accounts/show', { data });
},
SoftDelete(data: ApiTypes.Company.CompanyReceiptAccounts.SoftDelete): Promise<MyResponseType> {
return request('admin/company/company_receipt_accounts/soft_delete', { data });
SoftDelete(
data: ApiTypes.Company.CompanyReceiptAccounts.SoftDelete,
): Promise<MyResponseType> {
return request('admin/company/company_receipt_accounts/soft_delete', {
data,
});
},
Restore(data: ApiTypes.Company.CompanyReceiptAccounts.Restore): Promise<MyResponseType> {
return request('admin/company/company_receipt_accounts/restore', { data });
Restore(
data: ApiTypes.Company.CompanyReceiptAccounts.Restore,
): Promise<MyResponseType> {
return request('admin/company/company_receipt_accounts/restore', {
data,
});
},
Delete(data: ApiTypes.Company.CompanyReceiptAccounts.Delete): Promise<MyResponseType> {
return request('admin/company/company_receipt_accounts/delete', { data });
Delete(
data: ApiTypes.Company.CompanyReceiptAccounts.Delete,
): Promise<MyResponseType> {
return request('admin/company/company_receipt_accounts/delete', {
data,
});
},
},
Organizations: {
List(data?: ApiTypes.Company.Organizations.List): Promise<MyResponseType> {
List(
data?: ApiTypes.Company.Organizations.List,
): Promise<MyResponseType> {
return request('admin/company/organizations/list', { data });
},
Store(data: ApiTypes.Company.Organizations.Store): Promise<MyResponseType> {
Store(
data: ApiTypes.Company.Organizations.Store,
): Promise<MyResponseType> {
return request('admin/company/organizations/store', { data });
},
Update(data: ApiTypes.Company.Organizations.Update): Promise<MyResponseType> {
Update(
data: ApiTypes.Company.Organizations.Update,
): Promise<MyResponseType> {
return request('admin/company/organizations/update', { data });
},
Move(data: ApiTypes.Company.Organizations.Move): Promise<MyResponseType> {
@ -241,41 +334,87 @@ export const Apis = {
Show(data: ApiTypes.Company.Organizations.Show): Promise<MyResponseType> {
return request('admin/company/organizations/show', { data });
},
SoftDelete(data: ApiTypes.Company.Organizations.SoftDelete): Promise<MyResponseType> {
SoftDelete(
data: ApiTypes.Company.Organizations.SoftDelete,
): Promise<MyResponseType> {
return request('admin/company/organizations/soft_delete', { data });
},
Restore(data: ApiTypes.Company.Organizations.Restore): Promise<MyResponseType> {
Restore(
data: ApiTypes.Company.Organizations.Restore,
): Promise<MyResponseType> {
return request('admin/company/organizations/restore', { data });
},
Delete(data: ApiTypes.Company.Organizations.Delete): Promise<MyResponseType> {
Delete(
data: ApiTypes.Company.Organizations.Delete,
): Promise<MyResponseType> {
return request('admin/company/organizations/delete', { data });
},
Select(data?: ApiTypes.Company.Organizations.Select): Promise<MyResponseType> {
Select(
data?: ApiTypes.Company.Organizations.Select,
): Promise<MyResponseType> {
return request('admin/company/organizations/select', { data });
},
SelectTree(data?: ApiTypes.Company.Organizations.SelectTree): Promise<MyResponseType> {
SelectTree(
data?: ApiTypes.Company.Organizations.SelectTree,
): Promise<MyResponseType> {
return request('admin/company/organizations/select_tree', { data });
},
},
},
Grid: {
Grids: {
List(data?: ApiTypes.Grid.Grids.List): Promise<MyResponseType> {
return request('admin/grid/grids/list', { data });
},
Store(data: ApiTypes.Grid.Grids.Store): Promise<MyResponseType> {
return request('admin/grid/grids/store', { data });
},
Update(data: ApiTypes.Grid.Grids.Update): Promise<MyResponseType> {
return request('admin/grid/grids/update', { data });
},
Show(data: ApiTypes.Grid.Grids.Show): Promise<MyResponseType> {
return request('admin/grid/grids/show', { data });
},
Delete(data: ApiTypes.Grid.Grids.Delete): Promise<MyResponseType> {
return request('admin/grid/grids/delete', { data });
},
GetGridMark(
data: ApiTypes.Grid.Grids.GetGridMark,
): Promise<MyResponseType> {
return request('admin/grid/grids/get_grid_mark', { data });
},
},
},
Permission: {
SysPermissions: {
List(data: ApiTypes.Permission.SysPermissions.List): Promise<MyResponseType> {
List(
data: ApiTypes.Permission.SysPermissions.List,
): Promise<MyResponseType> {
return request('admin/permission/sys_permissions/list', { data });
},
Tree(data: ApiTypes.Permission.SysPermissions.Tree): Promise<MyResponseType> {
Tree(
data: ApiTypes.Permission.SysPermissions.Tree,
): Promise<MyResponseType> {
return request('admin/permission/sys_permissions/tree', { data });
},
Store(data: ApiTypes.Permission.SysPermissions.Store): Promise<MyResponseType> {
Store(
data: ApiTypes.Permission.SysPermissions.Store,
): Promise<MyResponseType> {
return request('admin/permission/sys_permissions/store', { data });
},
Update(data: ApiTypes.Permission.SysPermissions.Update): Promise<MyResponseType> {
Update(
data: ApiTypes.Permission.SysPermissions.Update,
): Promise<MyResponseType> {
return request('admin/permission/sys_permissions/update', { data });
},
Delete(data: ApiTypes.Permission.SysPermissions.Delete): Promise<MyResponseType> {
Delete(
data: ApiTypes.Permission.SysPermissions.Delete,
): Promise<MyResponseType> {
return request('admin/permission/sys_permissions/delete', { data });
},
Move(data: ApiTypes.Permission.SysPermissions.Move): Promise<MyResponseType> {
Move(
data: ApiTypes.Permission.SysPermissions.Move,
): Promise<MyResponseType> {
return request('admin/permission/sys_permissions/move', { data });
},
SelectApi(): Promise<MyResponseType> {
@ -289,21 +428,29 @@ export const Apis = {
Store(data: ApiTypes.Permission.SysRoles.Store): Promise<MyResponseType> {
return request('admin/permission/sys_roles/store', { data });
},
Update(data: ApiTypes.Permission.SysRoles.Update): Promise<MyResponseType> {
Update(
data: ApiTypes.Permission.SysRoles.Update,
): Promise<MyResponseType> {
return request('admin/permission/sys_roles/update', { data });
},
Delete(data: ApiTypes.Permission.SysRoles.Delete): Promise<MyResponseType> {
Delete(
data: ApiTypes.Permission.SysRoles.Delete,
): Promise<MyResponseType> {
return request('admin/permission/sys_roles/delete', { data });
},
Select(): Promise<MyResponseType> {
return request('admin/permission/sys_roles/select', {});
},
GetPermissions(data: ApiTypes.Permission.SysRoles.GetPermissions): Promise<MyResponseType> {
GetPermissions(
data: ApiTypes.Permission.SysRoles.GetPermissions,
): Promise<MyResponseType> {
return request('admin/permission/sys_roles/get_permissions', { data });
},
SetPermissions(data: ApiTypes.Permission.SysRoles.SetPermissions): Promise<MyResponseType> {
SetPermissions(
data: ApiTypes.Permission.SysRoles.SetPermissions,
): Promise<MyResponseType> {
return request('admin/permission/sys_roles/set_permissions', { data });
},
},
},
}
};

View File

@ -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<any>({});
@ -33,12 +35,12 @@ export default function Show({ title = '项目详情' }) {
closable: false,
children: <MyAssetBuildings item={data} />,
},
// {
// label: '车场管理',
// key: 'car',
// closable: false,
// children: <MyAssetBuildings item={data} />,
// },
{
label: '网格管理',
key: 'grid',
closable: false,
children: <AssetGrid item={data} />,
},
// {
// label: '车位管理',
// key: 'carport',

View File

@ -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();

View File

@ -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<any>();
useEffect(() => {
actionLooks?.current.reloadAndRest();
}, [rest.loadmore]);
return (
<>
<ProTable<Record<any, any>>
{...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) => [
<GridCreate key="Create" item={rest.item} reload={action?.reload} />,
]}
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) => (
<Space key={index}>
<GridCreateUpdate item={item} reload={action?.reload} />
<MyButtons.Delete
onConfirm={() =>
Apis.Asset.AssetBuildings.Delete({ id: item.id }).then(() =>
action?.reload(),
)
}
/>
</Space>
),
}),
]}
/>
</>
);
}

View File

@ -14,7 +14,7 @@ export default function info(props: MyBetaModalFormProps) {
<Space direction="vertical" style={{ width: '100%' }}>
<ProCard extra={props.extra}>
<ProDescriptions bordered>
<ProDescriptions.Item label="项目名称">
<ProDescriptions.Item label="项目名称" span={2}>
<Space>
{props?.item?.name}
<AssetUpdate
@ -27,9 +27,9 @@ export default function info(props: MyBetaModalFormProps) {
<ProDescriptions.Item label="项目别名">
{props?.item?.alias_name}
</ProDescriptions.Item>
<ProDescriptions.Item label="项目编码">
{/* <ProDescriptions.Item label="">
{props?.item?.code}
</ProDescriptions.Item>
</ProDescriptions.Item> */}
<ProDescriptions.Item label="项目状态">
<renderTextHelper.Tag
Enums={AssetProjectsStatusEnum}

View File

@ -14,7 +14,7 @@ import {
import { ProTable } from '@ant-design/pro-components';
import { Space } from 'antd';
import { useNavigate } from 'react-router-dom';
import Create from './modals/Create';
import Create from './modals/AssetCreate';
export default function Index({ title = '项目管理' }) {
const navigate = useNavigate();
@ -57,7 +57,7 @@ export default function Index({ title = '项目管理' }) {
i?.address || ''
}`;
},
search:false,
search: false,
},
MyColumns.EnumTag({
title: '项目状态',

View File

@ -0,0 +1,131 @@
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 Create(props: MyBetaModalFormProps) {
const [form] = Form.useForm();
console.log(props?.item, 'item');
return (
<BetaSchemaForm<ApiTypes.Grid.Grids.Store>
{...MyModalFormProps.props}
title={`创建网格`}
wrapperCol={{ span: 24 }}
width="700px"
trigger={<MyButtons.Create title={`创建网格`} />}
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 (
<ProCard
bordered
style={{ marginBlockEnd: 8 }}
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: () => {
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,
},
}),
],
},
];
},
},
],
},
]}
/>
);
}

View File

@ -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 (
<BetaSchemaForm<ApiTypes.Grid.Grids.Update>
{...MyModalFormProps.props}
title={`编辑`}
wrapperCol={{ span: 24 }}
width="700px"
trigger={<MyButtons.Default title={`编辑`} size="small" type="link" />}
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 (
<ProCard
bordered
style={{ marginBlockEnd: 8 }}
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: () => {
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,
},
}),
],
},
];
},
},
],
},
]}
/>
);
}

View File

@ -22,7 +22,7 @@ export default function Update(props: MyBetaModalFormProps) {
return (
<BetaSchemaForm<ApiTypes.Asset.AssetHouses.Update>
{...MyModalFormProps.props}
title={`编辑`}
title={`编辑房屋`}
wrapperCol={{ span: 24 }}
width="800px"
trigger={<MyButtons.Default title={`编辑`} size="small" type="link" />}