fix:项目调整,机构
This commit is contained in:
commit
a5e51a0305
@ -14,8 +14,8 @@ export default defineConfig({
|
||||
},
|
||||
proxy: {
|
||||
'/api/': {
|
||||
// target: 'http://yt:8003',
|
||||
target: 'http://10.39.13.80:8003',
|
||||
target: 'http://yt:8003',
|
||||
// target: 'http://10.39.13.80:8003',
|
||||
// target: 'http://we6f9c65.natappfree.cc',
|
||||
// target: 'https://loanos-test.nchl.net/',
|
||||
changeOrigin: true,
|
||||
|
||||
4
.vscode/settings.json
vendored
Normal file
4
.vscode/settings.json
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"editor.formatOnSave": true,
|
||||
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
||||
}
|
||||
@ -77,7 +77,7 @@ export const MyButtons = {
|
||||
return (
|
||||
<Popconfirm
|
||||
title="删除提示"
|
||||
description="确定要删除,将不可恢复?"
|
||||
description="是否确定要删除,将不可恢复?"
|
||||
okText="是"
|
||||
cancelText="否"
|
||||
onConfirm={onConfirm}
|
||||
|
||||
@ -59,8 +59,8 @@ export const MyColumns = {
|
||||
onConfirm={() => {
|
||||
onRestore?.({ id: item.id }).then(() => action?.reload());
|
||||
}}
|
||||
okText="Yes"
|
||||
cancelText="No"
|
||||
okText="是"
|
||||
cancelText="否"
|
||||
>
|
||||
<Tag color="gray" style={{ cursor: 'pointer' }}>
|
||||
已禁用
|
||||
@ -73,8 +73,8 @@ export const MyColumns = {
|
||||
onConfirm={() => {
|
||||
onSoftDelete?.({ id: item.id }).then(() => action?.reload());
|
||||
}}
|
||||
okText="Yes"
|
||||
cancelText="No"
|
||||
okText="是"
|
||||
cancelText="否"
|
||||
>
|
||||
<Tag color="green" style={{ cursor: 'pointer' }}>
|
||||
已启用
|
||||
|
||||
@ -38,4 +38,73 @@ export const SysSelects = {
|
||||
...rest,
|
||||
};
|
||||
},
|
||||
// 楼栋下拉框
|
||||
AssetBuildings(props?: PropsType): ReturnType {
|
||||
const {
|
||||
title = '楼栋',
|
||||
key = 'asset_buildings_id',
|
||||
required = false,
|
||||
hideInTable = true,
|
||||
...rest
|
||||
} = props ?? {};
|
||||
|
||||
return {
|
||||
title: title,
|
||||
key: key,
|
||||
valueType: 'select',
|
||||
hideInTable: hideInTable,
|
||||
formItemProps: { ...(required ? rulesHelper.number : {}) },
|
||||
fieldProps: {
|
||||
showSearch: true,
|
||||
fieldNames: {
|
||||
label: 'label',
|
||||
value: 'value',
|
||||
},
|
||||
},
|
||||
request: async (params) =>
|
||||
(
|
||||
await Apis.Asset.AssetBuildings.Select({
|
||||
keywords: params?.KeyWords,
|
||||
asset_projects_id: params?.asset_projects_id,
|
||||
...params,
|
||||
})
|
||||
).data,
|
||||
...rest,
|
||||
};
|
||||
},
|
||||
// 单元下拉框
|
||||
AssetUnits(props?: PropsType): ReturnType {
|
||||
const {
|
||||
title = '单元',
|
||||
key = 'asset_buildings_id',
|
||||
required = false,
|
||||
hideInTable = true,
|
||||
...rest
|
||||
} = props ?? {};
|
||||
|
||||
return {
|
||||
title: title,
|
||||
key: key,
|
||||
valueType: 'select',
|
||||
hideInTable: hideInTable,
|
||||
formItemProps: { ...(required ? rulesHelper.number : {}) },
|
||||
fieldProps: {
|
||||
showSearch: true,
|
||||
fieldNames: {
|
||||
label: 'label',
|
||||
value: 'value',
|
||||
},
|
||||
},
|
||||
request: async (params) =>
|
||||
(
|
||||
await Apis.Asset.AssetUnits.Select({
|
||||
keywords: params?.KeyWords,
|
||||
asset_projects_id: params?.asset_projects_id,
|
||||
asset_buildings_id: params?.asset_buildings_id,
|
||||
...params,
|
||||
})
|
||||
).data,
|
||||
...rest,
|
||||
};
|
||||
},
|
||||
};
|
||||
|
||||
@ -5,8 +5,7 @@ import { useParams } from '@umijs/max';
|
||||
import { Tabs } from 'antd';
|
||||
import { useEffect, useState } from 'react';
|
||||
import MyAssetBuildings from './components/AssetBuildings';
|
||||
import MyInfo from './components/info';
|
||||
import Update from './modals/Update';
|
||||
import AssetInfo from './components/AssetInfo';
|
||||
export default function Show({ title = '项目详情' }) {
|
||||
const { id } = useParams<{ id: string }>();
|
||||
const [data, setShow] = useState<any>({});
|
||||
@ -22,19 +21,37 @@ export default function Show({ title = '项目详情' }) {
|
||||
}, [id]);
|
||||
|
||||
let items = [
|
||||
{
|
||||
label: '基本信息',
|
||||
key: 'info',
|
||||
closable: false,
|
||||
children: <AssetInfo item={data} reload={() => loadShow()} />,
|
||||
},
|
||||
{
|
||||
label: '楼栋管理',
|
||||
key: 'asset_buildings',
|
||||
closable: false,
|
||||
children: <MyAssetBuildings item={data} />,
|
||||
},
|
||||
// {
|
||||
// label: '车场管理',
|
||||
// key: 'car',
|
||||
// closable: false,
|
||||
// children: <MyAssetBuildings item={data} />,
|
||||
// },
|
||||
// {
|
||||
// label: '车位管理',
|
||||
// key: 'carport',
|
||||
// closable: false,
|
||||
// children: <MyAssetBuildings item={data} />,
|
||||
// },
|
||||
];
|
||||
return (
|
||||
<MyPageContainer title={title}>
|
||||
<MyInfo
|
||||
{/* <Info
|
||||
item={data}
|
||||
extra={<Update item={data} reload={() => loadShow()} title="项目" />}
|
||||
/>
|
||||
/> */}
|
||||
<ProCard>
|
||||
<Tabs type="card" items={data?.id ? items : []} />
|
||||
</ProCard>
|
||||
|
||||
@ -1,7 +1,11 @@
|
||||
import { MyBetaModalFormProps, MyColumns, MyProTableProps } from '@/common';
|
||||
import {
|
||||
MyBetaModalFormProps,
|
||||
MyButtons,
|
||||
MyColumns,
|
||||
MyProTableProps,
|
||||
} from '@/common';
|
||||
import { Apis } from '@/gen/Apis';
|
||||
import {
|
||||
AssetHousesOrientationEnum,
|
||||
AssetHousesOwnershipTypeEnum,
|
||||
AssetHousesStatusEnum,
|
||||
AssetHousesUsageEnum,
|
||||
@ -10,8 +14,12 @@ 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';
|
||||
|
||||
export default function AssetBuildings(props: MyBetaModalFormProps) {
|
||||
const actionBuildingsRef: any = useRef();
|
||||
@ -21,7 +29,7 @@ export default function AssetBuildings(props: MyBetaModalFormProps) {
|
||||
const [selectKeyUnits, setSelectKeyUnits] = useState<any>({});
|
||||
return (
|
||||
<ProCard
|
||||
extra={
|
||||
title={
|
||||
<Space>
|
||||
<BuildingsCreate
|
||||
key="BuildingsCreate"
|
||||
@ -33,7 +41,7 @@ export default function AssetBuildings(props: MyBetaModalFormProps) {
|
||||
key="UnitsCreate"
|
||||
item={{
|
||||
...props?.item,
|
||||
asset_buildings_id: selectKey?.id || undefined,
|
||||
// asset_buildings_id: selectKey?.id || undefined,
|
||||
}}
|
||||
reload={() => actionUnitsRef?.current?.reload()}
|
||||
title="单元"
|
||||
@ -42,11 +50,11 @@ export default function AssetBuildings(props: MyBetaModalFormProps) {
|
||||
key="HousesCreate"
|
||||
item={{
|
||||
...props?.item,
|
||||
asset_buildings_id: selectKey?.id || undefined,
|
||||
asset_units_id: selectKeyUnits?.id || undefined,
|
||||
// asset_buildings_id: selectKey?.id || undefined,
|
||||
// asset_units_id: selectKeyUnits?.id || undefined,
|
||||
}}
|
||||
reload={() => actionHousesRef?.current?.reload()}
|
||||
title="房源"
|
||||
title="房屋"
|
||||
/>
|
||||
</Space>
|
||||
}
|
||||
@ -84,136 +92,150 @@ export default function AssetBuildings(props: MyBetaModalFormProps) {
|
||||
columns={[
|
||||
MyColumns.ID(),
|
||||
{
|
||||
title: '楼栋',
|
||||
width: '250px',
|
||||
title: '楼栋名称',
|
||||
dataIndex: 'name',
|
||||
},
|
||||
MyColumns.Option({
|
||||
render: (_, item: any, index, action) => (
|
||||
<Space key={index}>
|
||||
<AssetBuildingsUpdate item={item} reload={action?.reload} />
|
||||
<MyButtons.Delete
|
||||
size="small"
|
||||
onConfirm={() =>
|
||||
Apis.Asset.AssetBuildings.Delete({ id: item.id }).then(
|
||||
() => action?.reload(),
|
||||
)
|
||||
}
|
||||
/>
|
||||
</Space>
|
||||
),
|
||||
}),
|
||||
]}
|
||||
/>
|
||||
|
||||
<ProTable
|
||||
{...MyProTableProps.props}
|
||||
search={false}
|
||||
actionRef={actionUnitsRef}
|
||||
request={async (params, sort) =>
|
||||
MyProTableProps.request(
|
||||
{selectKey?.id && (
|
||||
<ProTable
|
||||
{...MyProTableProps.props}
|
||||
search={false}
|
||||
actionRef={actionUnitsRef}
|
||||
request={async (params, sort) =>
|
||||
MyProTableProps.request(
|
||||
{
|
||||
...params,
|
||||
asset_projects_id: props?.item?.id,
|
||||
asset_buildings_id: selectKey?.id,
|
||||
},
|
||||
sort,
|
||||
Apis.Asset.AssetUnits.List,
|
||||
)
|
||||
}
|
||||
rowClassName={(record: any) => {
|
||||
return selectKeyUnits?.id === record?.id
|
||||
? 'ant-table-row-selected'
|
||||
: '';
|
||||
}}
|
||||
onRow={(record: any) => {
|
||||
return {
|
||||
onClick: () => {
|
||||
setSelectKeyUnits(record);
|
||||
actionHousesRef?.current?.reload();
|
||||
},
|
||||
style: {
|
||||
cursor: 'pointer',
|
||||
},
|
||||
};
|
||||
}}
|
||||
options={false}
|
||||
columns={[
|
||||
MyColumns.ID(),
|
||||
{
|
||||
...params,
|
||||
asset_projects_id: props?.item?.id,
|
||||
asset_buildings_id: selectKey?.id,
|
||||
title: '单元名称',
|
||||
dataIndex: 'name',
|
||||
},
|
||||
sort,
|
||||
Apis.Asset.AssetUnits.List,
|
||||
)
|
||||
}
|
||||
rowClassName={(record: any) => {
|
||||
return selectKeyUnits?.id === record?.id
|
||||
? 'ant-table-row-selected'
|
||||
: '';
|
||||
}}
|
||||
onRow={(record: any) => {
|
||||
return {
|
||||
onClick: () => {
|
||||
setSelectKeyUnits(record);
|
||||
actionHousesRef?.current?.reload();
|
||||
},
|
||||
style: {
|
||||
cursor: 'pointer',
|
||||
},
|
||||
};
|
||||
}}
|
||||
options={false}
|
||||
columns={[
|
||||
MyColumns.ID(),
|
||||
{
|
||||
title: '单元',
|
||||
width: '250px',
|
||||
dataIndex: 'name',
|
||||
},
|
||||
]}
|
||||
/>
|
||||
MyColumns.Option({
|
||||
render: (_, item: any, index, action) => (
|
||||
<Space key={index}>
|
||||
<AssetUnitsUpdate item={item} reload={action?.reload} />
|
||||
<MyButtons.Delete
|
||||
size="small"
|
||||
onConfirm={() =>
|
||||
Apis.Asset.AssetUnits.Delete({ id: item.id }).then(() =>
|
||||
action?.reload(),
|
||||
)
|
||||
}
|
||||
/>
|
||||
</Space>
|
||||
),
|
||||
}),
|
||||
]}
|
||||
/>
|
||||
)}
|
||||
|
||||
<ProTable
|
||||
{...MyProTableProps.props}
|
||||
search={false}
|
||||
actionRef={actionHousesRef}
|
||||
request={async (params, sort) =>
|
||||
MyProTableProps.request(
|
||||
{selectKeyUnits?.id && (
|
||||
<ProTable
|
||||
{...MyProTableProps.props}
|
||||
search={false}
|
||||
actionRef={actionHousesRef}
|
||||
request={async (params, sort) =>
|
||||
MyProTableProps.request(
|
||||
{
|
||||
...params,
|
||||
asset_projects_id: props?.item?.id,
|
||||
asset_buildings_id: selectKey?.id,
|
||||
asset_units_id: selectKeyUnits?.id,
|
||||
},
|
||||
sort,
|
||||
Apis.Asset.AssetHouses.List,
|
||||
)
|
||||
}
|
||||
options={false}
|
||||
columns={[
|
||||
MyColumns.ID(),
|
||||
|
||||
MyColumns.EnumTag({
|
||||
title: '用途',
|
||||
dataIndex: 'usage',
|
||||
valueEnum: AssetHousesUsageEnum,
|
||||
}),
|
||||
{
|
||||
...params,
|
||||
asset_projects_id: props?.item?.id,
|
||||
asset_buildings_id: selectKey?.id,
|
||||
asset_units_id: selectKeyUnits?.id,
|
||||
title: '房号',
|
||||
dataIndex: 'name',
|
||||
},
|
||||
sort,
|
||||
Apis.Asset.AssetHouses.List,
|
||||
)
|
||||
}
|
||||
options={false}
|
||||
columns={[
|
||||
MyColumns.ID(),
|
||||
MyColumns.EnumTag({
|
||||
title: '用途',
|
||||
dataIndex: 'usage',
|
||||
valueEnum: AssetHousesUsageEnum,
|
||||
}),
|
||||
{
|
||||
title: '房号',
|
||||
dataIndex: 'name',
|
||||
},
|
||||
MyColumns.EnumTag({
|
||||
title: '产权性质',
|
||||
dataIndex: 'ownership_type',
|
||||
valueEnum: AssetHousesOwnershipTypeEnum,
|
||||
}),
|
||||
MyColumns.EnumTag({
|
||||
title: '朝向',
|
||||
dataIndex: 'orientation',
|
||||
valueEnum: AssetHousesOrientationEnum,
|
||||
}),
|
||||
MyColumns.EnumTag({
|
||||
title: '房屋状态',
|
||||
dataIndex: 'status',
|
||||
valueEnum: AssetHousesStatusEnum,
|
||||
}),
|
||||
{
|
||||
title: '房',
|
||||
dataIndex: 'room',
|
||||
},
|
||||
{
|
||||
title: '厅',
|
||||
dataIndex: 'hall',
|
||||
},
|
||||
{
|
||||
title: '厨',
|
||||
dataIndex: 'kitchen',
|
||||
},
|
||||
{
|
||||
title: '卫',
|
||||
dataIndex: 'bathroom',
|
||||
},
|
||||
{
|
||||
title: '阳台',
|
||||
dataIndex: 'balcony',
|
||||
},
|
||||
{
|
||||
title: '产权年限',
|
||||
dataIndex: 'ownership_term',
|
||||
},
|
||||
{
|
||||
title: '建筑面积',
|
||||
dataIndex: 'built_area',
|
||||
},
|
||||
{
|
||||
title: '套内面积',
|
||||
dataIndex: 'inside_area',
|
||||
},
|
||||
{
|
||||
title: '计费面积',
|
||||
dataIndex: 'chargeable_area',
|
||||
},
|
||||
]}
|
||||
/>
|
||||
{
|
||||
title: '楼层',
|
||||
dataIndex: 'floor',
|
||||
render(_, record) {
|
||||
return `${record?.floor}层`;
|
||||
},
|
||||
},
|
||||
MyColumns.EnumTag({
|
||||
title: '产权性质',
|
||||
dataIndex: 'ownership_type',
|
||||
valueEnum: AssetHousesOwnershipTypeEnum,
|
||||
}),
|
||||
MyColumns.EnumTag({
|
||||
title: '房屋状态',
|
||||
dataIndex: 'status',
|
||||
valueEnum: AssetHousesStatusEnum,
|
||||
}),
|
||||
MyColumns.Option({
|
||||
render: (_, item: any, index, action) => (
|
||||
<Space key={index}>
|
||||
<AssetHousesShow item={item} reload={action?.reload} />
|
||||
<AssetHousesUpdate item={item} reload={action?.reload} />
|
||||
<MyButtons.Delete
|
||||
onConfirm={() =>
|
||||
Apis.Asset.AssetBuildings.Delete({ id: item.id }).then(
|
||||
() => action?.reload(),
|
||||
)
|
||||
}
|
||||
/>
|
||||
</Space>
|
||||
),
|
||||
}),
|
||||
]}
|
||||
/>
|
||||
)}
|
||||
</Space>
|
||||
</ProCard>
|
||||
);
|
||||
|
||||
95
src/pages/asset/asset_projects/components/AssetInfo.tsx
Normal file
95
src/pages/asset/asset_projects/components/AssetInfo.tsx
Normal file
@ -0,0 +1,95 @@
|
||||
import { MyBetaModalFormProps, renderTextHelper } from '@/common';
|
||||
import {
|
||||
AssetProjectsChargeEnum,
|
||||
AssetProjectsEntrustTypeEnum,
|
||||
AssetProjectsPropertyTypeEnum,
|
||||
AssetProjectsStatusEnum,
|
||||
} from '@/gen/Enums';
|
||||
import { ProCard, ProDescriptions } from '@ant-design/pro-components';
|
||||
import { Space } from 'antd';
|
||||
import AssetUpdate from '../modals/AssetUpdate';
|
||||
|
||||
export default function info(props: MyBetaModalFormProps) {
|
||||
return (
|
||||
<Space direction="vertical" style={{ width: '100%' }}>
|
||||
<ProCard extra={props.extra}>
|
||||
<ProDescriptions bordered>
|
||||
<ProDescriptions.Item label="项目名称">
|
||||
<Space>
|
||||
{props?.item?.name}
|
||||
<AssetUpdate
|
||||
item={props?.item}
|
||||
title="项目"
|
||||
reload={props?.reload}
|
||||
/>
|
||||
</Space>
|
||||
</ProDescriptions.Item>
|
||||
<ProDescriptions.Item label="项目别名">
|
||||
{props?.item?.alias_name}
|
||||
</ProDescriptions.Item>
|
||||
<ProDescriptions.Item label="项目编码">
|
||||
{props?.item?.code}
|
||||
</ProDescriptions.Item>
|
||||
<ProDescriptions.Item label="项目状态">
|
||||
<renderTextHelper.Tag
|
||||
Enums={AssetProjectsStatusEnum}
|
||||
value={props?.item?.status}
|
||||
key="status"
|
||||
/>
|
||||
</ProDescriptions.Item>
|
||||
<ProDescriptions.Item label="项目类型">
|
||||
<renderTextHelper.Tag
|
||||
Enums={AssetProjectsPropertyTypeEnum}
|
||||
value={props?.item?.property_type}
|
||||
key="property_type"
|
||||
/>
|
||||
</ProDescriptions.Item>
|
||||
<ProDescriptions.Item label="收费方式">
|
||||
<renderTextHelper.Tag
|
||||
Enums={AssetProjectsChargeEnum}
|
||||
value={props?.item?.charge}
|
||||
key="charge"
|
||||
/>
|
||||
</ProDescriptions.Item>
|
||||
<ProDescriptions.Item label="委托类型">
|
||||
<renderTextHelper.Tag
|
||||
Enums={AssetProjectsEntrustTypeEnum}
|
||||
value={props?.item?.entrust_type}
|
||||
key="entrust_type"
|
||||
/>
|
||||
</ProDescriptions.Item>
|
||||
<ProDescriptions.Item label="接管日期">
|
||||
{props?.item?.takeover_date}
|
||||
</ProDescriptions.Item>
|
||||
<ProDescriptions.Item label="封园日期">
|
||||
{props?.item?.closure_date}
|
||||
</ProDescriptions.Item>
|
||||
<ProDescriptions.Item label="项目地址" span={3}>
|
||||
{props?.item?.province || ''}
|
||||
{props?.item?.city || ''}
|
||||
{props?.item?.district || ''}
|
||||
{props?.item?.address || ''}
|
||||
</ProDescriptions.Item>
|
||||
<ProDescriptions.Item label="创建日期" span={3}>
|
||||
{props?.item?.created_at}
|
||||
</ProDescriptions.Item>
|
||||
<ProDescriptions.Item label="最近修改" span={3}>
|
||||
{props?.item?.updated_at}
|
||||
</ProDescriptions.Item>
|
||||
</ProDescriptions>
|
||||
</ProCard>
|
||||
<ProCard extra={props.extra}>
|
||||
<ProDescriptions bordered>
|
||||
<ProDescriptions.Item label="关联机构" span={3}>
|
||||
<Space>
|
||||
<div>
|
||||
【{props?.item?.company?.id}】{props?.item?.company?.name}
|
||||
</div>
|
||||
<AssetUpdate item={props?.item} title="项目" />
|
||||
</Space>
|
||||
</ProDescriptions.Item>
|
||||
</ProDescriptions>
|
||||
</ProCard>
|
||||
</Space>
|
||||
);
|
||||
}
|
||||
@ -1,67 +0,0 @@
|
||||
import { MyBetaModalFormProps, renderTextHelper } from '@/common';
|
||||
import {
|
||||
AssetProjectsChargeEnum,
|
||||
AssetProjectsEntrustTypeEnum,
|
||||
AssetProjectsPropertyTypeEnum,
|
||||
AssetProjectsStatusEnum,
|
||||
} from '@/gen/Enums';
|
||||
import { ProCard, ProDescriptions } from '@ant-design/pro-components';
|
||||
|
||||
export default function info(props: MyBetaModalFormProps) {
|
||||
return (
|
||||
<ProCard extra={props.extra}>
|
||||
<ProDescriptions bordered>
|
||||
<ProDescriptions.Item label="项目名称">
|
||||
{props?.item?.name}
|
||||
</ProDescriptions.Item>
|
||||
<ProDescriptions.Item label="项目别名">
|
||||
{props?.item?.alias_name}
|
||||
</ProDescriptions.Item>
|
||||
<ProDescriptions.Item label="项目编码">
|
||||
{props?.item?.code}
|
||||
</ProDescriptions.Item>
|
||||
|
||||
<ProDescriptions.Item label="状态">
|
||||
<renderTextHelper.Tag
|
||||
Enums={AssetProjectsStatusEnum}
|
||||
value={props?.item?.status}
|
||||
key="status"
|
||||
/>
|
||||
</ProDescriptions.Item>
|
||||
<ProDescriptions.Item label="物业类型">
|
||||
<renderTextHelper.Tag
|
||||
Enums={AssetProjectsPropertyTypeEnum}
|
||||
value={props?.item?.property_type}
|
||||
key="property_type"
|
||||
/>
|
||||
</ProDescriptions.Item>
|
||||
<ProDescriptions.Item label="收费方式">
|
||||
<renderTextHelper.Tag
|
||||
Enums={AssetProjectsChargeEnum}
|
||||
value={props?.item?.charge}
|
||||
key="charge"
|
||||
/>
|
||||
</ProDescriptions.Item>
|
||||
<ProDescriptions.Item label="委托类型">
|
||||
<renderTextHelper.Tag
|
||||
Enums={AssetProjectsEntrustTypeEnum}
|
||||
value={props?.item?.entrust_type}
|
||||
key="entrust_type"
|
||||
/>
|
||||
</ProDescriptions.Item>
|
||||
<ProDescriptions.Item label="接管日期">
|
||||
{props?.item?.takeover_date}
|
||||
</ProDescriptions.Item>
|
||||
<ProDescriptions.Item label="封园日期">
|
||||
{props?.item?.closure_date}
|
||||
</ProDescriptions.Item>
|
||||
<ProDescriptions.Item label="地址">
|
||||
{props?.item?.province || ''}
|
||||
{props?.item?.city || ''}
|
||||
{props?.item?.district || ''}
|
||||
{props?.item?.address || ''}
|
||||
</ProDescriptions.Item>
|
||||
</ProDescriptions>
|
||||
</ProCard>
|
||||
);
|
||||
}
|
||||
@ -22,15 +22,21 @@ export default function Index({ title = '项目管理' }) {
|
||||
<MyPageContainer title={title}>
|
||||
<ProTable
|
||||
{...MyProTableProps.props}
|
||||
search={false}
|
||||
// search={false}
|
||||
request={async (params, sort) =>
|
||||
MyProTableProps.request(params, sort, Apis.Asset.AssetProjects.List)
|
||||
}
|
||||
toolBarRender={(action) => [
|
||||
<Create key="Create" reload={action?.reload} title={title} />,
|
||||
<Create key="Create" reload={action?.reload} title={'项目'} />,
|
||||
]}
|
||||
columns={[
|
||||
MyColumns.ID(),
|
||||
MyColumns.EnumTag({
|
||||
title: '项目类型',
|
||||
dataIndex: 'property_type',
|
||||
valueEnum: AssetProjectsPropertyTypeEnum,
|
||||
search: false,
|
||||
}),
|
||||
{
|
||||
title: '项目名称',
|
||||
dataIndex: 'name',
|
||||
@ -39,30 +45,11 @@ export default function Index({ title = '项目管理' }) {
|
||||
title: '项目别名',
|
||||
dataIndex: 'alias_name',
|
||||
},
|
||||
{
|
||||
title: '项目编码',
|
||||
dataIndex: 'code',
|
||||
},
|
||||
MyColumns.EnumTag({
|
||||
title: '类型',
|
||||
dataIndex: 'property_type',
|
||||
valueEnum: AssetProjectsPropertyTypeEnum,
|
||||
}),
|
||||
MyColumns.EnumTag({
|
||||
title: '状态',
|
||||
dataIndex: 'status',
|
||||
valueEnum: AssetProjectsStatusEnum,
|
||||
}),
|
||||
MyColumns.EnumTag({
|
||||
title: '收费方式',
|
||||
dataIndex: 'charge',
|
||||
valueEnum: AssetProjectsChargeEnum,
|
||||
}),
|
||||
MyColumns.EnumTag({
|
||||
title: '委托类型',
|
||||
dataIndex: 'entrust_type',
|
||||
valueEnum: AssetProjectsEntrustTypeEnum,
|
||||
}),
|
||||
// {
|
||||
// title: '项目编码',
|
||||
// dataIndex: 'code',
|
||||
// search: false,
|
||||
// },
|
||||
{
|
||||
title: '地址',
|
||||
render: (_, i: any) => {
|
||||
@ -70,15 +57,43 @@ export default function Index({ title = '项目管理' }) {
|
||||
i?.address || ''
|
||||
}`;
|
||||
},
|
||||
search:false,
|
||||
},
|
||||
{
|
||||
title: '接管日期',
|
||||
dataIndex: 'takeover_date',
|
||||
},
|
||||
{
|
||||
title: '封园日期',
|
||||
dataIndex: 'closure_date',
|
||||
},
|
||||
MyColumns.EnumTag({
|
||||
title: '项目状态',
|
||||
dataIndex: 'status',
|
||||
valueEnum: AssetProjectsStatusEnum,
|
||||
search: false,
|
||||
}),
|
||||
|
||||
MyColumns.EnumTag({
|
||||
title: '委托类型',
|
||||
dataIndex: 'entrust_type',
|
||||
valueEnum: AssetProjectsEntrustTypeEnum,
|
||||
search: false,
|
||||
}),
|
||||
MyColumns.EnumTag({
|
||||
title: '收费方式',
|
||||
dataIndex: 'charge',
|
||||
valueEnum: AssetProjectsChargeEnum,
|
||||
search: false,
|
||||
}),
|
||||
MyColumns.SoftDelete({
|
||||
title: '启/禁用',
|
||||
onRestore: Apis.Asset.AssetProjects.Restore,
|
||||
onSoftDelete: Apis.Asset.AssetProjects.SoftDelete,
|
||||
search: false,
|
||||
}),
|
||||
// {
|
||||
// title: '接管日期',
|
||||
// dataIndex: 'takeover_date',
|
||||
// search:false,
|
||||
// },
|
||||
// {
|
||||
// title: '封园日期',
|
||||
// dataIndex: 'closure_date',
|
||||
// search:false,
|
||||
// },
|
||||
MyColumns.CreatedAt(),
|
||||
MyColumns.Option({
|
||||
render: (_, item: any, index, action) => (
|
||||
|
||||
@ -6,17 +6,25 @@ import {
|
||||
} from '@/common';
|
||||
import { Apis } from '@/gen/Apis';
|
||||
import { BetaSchemaForm } from '@ant-design/pro-components';
|
||||
import { message } from 'antd';
|
||||
import { Form, message } from 'antd';
|
||||
|
||||
|
||||
export default function Create(props: MyBetaModalFormProps) {
|
||||
const [form] = Form.useForm();
|
||||
|
||||
return (
|
||||
<BetaSchemaForm<ApiTypes.Asset.AssetBuildings.Store>
|
||||
{...MyModalFormProps.props}
|
||||
form={form}
|
||||
title={`添加${props.title}`}
|
||||
wrapperCol={{ span: 24 }}
|
||||
width="500px"
|
||||
trigger={<MyButtons.Create title={`添加${props.title}`} />}
|
||||
onOpenChange={(open: any) => {
|
||||
if (open) {
|
||||
form.resetFields(); // 清空表单数据
|
||||
}
|
||||
}}
|
||||
onFinish={async (values) =>
|
||||
Apis.Asset.AssetBuildings.Store({
|
||||
...values,
|
||||
|
||||
@ -0,0 +1,60 @@
|
||||
import {
|
||||
MyBetaModalFormProps,
|
||||
MyButtons,
|
||||
MyModalFormProps,
|
||||
rulesHelper,
|
||||
} from '@/common';
|
||||
import { Apis } from '@/gen/Apis';
|
||||
import { BetaSchemaForm } from '@ant-design/pro-components';
|
||||
import { Form, message } from 'antd';
|
||||
|
||||
|
||||
export default function Update(props: MyBetaModalFormProps) {
|
||||
const [form] = Form.useForm();
|
||||
|
||||
return (
|
||||
<BetaSchemaForm<ApiTypes.Asset.AssetBuildings.Update>
|
||||
{...MyModalFormProps.props}
|
||||
form={form}
|
||||
title={`编辑`}
|
||||
wrapperCol={{ span: 24 }}
|
||||
width="500px"
|
||||
trigger={
|
||||
<MyButtons.Default
|
||||
title={`编辑` } size='small' type='link'
|
||||
/>
|
||||
}
|
||||
onOpenChange={(open: any) => {
|
||||
if (open) {
|
||||
form.setFieldsValue(props?.item); // 编辑赋值
|
||||
}
|
||||
}}
|
||||
onFinish={async (values) =>
|
||||
Apis.Asset.AssetBuildings.Update({
|
||||
...values,
|
||||
asset_projects_id: props?.item?.asset_projects_id,
|
||||
id: props?.item?.id,
|
||||
})
|
||||
.then(() => {
|
||||
props.reload?.();
|
||||
message.success('楼栋编辑成功');
|
||||
return true;
|
||||
})
|
||||
.catch(() => false)
|
||||
}
|
||||
columns={[
|
||||
{
|
||||
key: 'name',
|
||||
title: '楼栋名称',
|
||||
colProps: { span: 24 },
|
||||
formItemProps: { ...rulesHelper.text },
|
||||
},
|
||||
{
|
||||
key: 'alias_name',
|
||||
title: '楼栋别名',
|
||||
colProps: { span: 24 },
|
||||
},
|
||||
]}
|
||||
/>
|
||||
);
|
||||
}
|
||||
@ -5,6 +5,7 @@ import {
|
||||
MyModalFormProps,
|
||||
rulesHelper,
|
||||
} from '@/common';
|
||||
import { SysSelects } from '@/components/Select';
|
||||
import { Apis } from '@/gen/Apis';
|
||||
import {
|
||||
AssetHousesOrientationEnum,
|
||||
@ -13,9 +14,10 @@ import {
|
||||
AssetHousesUsageEnum,
|
||||
} from '@/gen/Enums';
|
||||
import { BetaSchemaForm } from '@ant-design/pro-components';
|
||||
import { message } from 'antd';
|
||||
import { Form, message } from 'antd';
|
||||
|
||||
export default function Create(props: MyBetaModalFormProps) {
|
||||
const [form] = Form.useForm();
|
||||
console.log(props?.item, 'item');
|
||||
return (
|
||||
<BetaSchemaForm<ApiTypes.Asset.AssetHouses.Store>
|
||||
@ -23,20 +25,17 @@ export default function Create(props: MyBetaModalFormProps) {
|
||||
title={`添加${props.title}`}
|
||||
wrapperCol={{ span: 24 }}
|
||||
width="800px"
|
||||
trigger={
|
||||
<MyButtons.Create
|
||||
title={`添加${props.title}`}
|
||||
disabled={
|
||||
!(props?.item?.asset_units_id && props?.item?.asset_buildings_id)
|
||||
}
|
||||
/>
|
||||
}
|
||||
trigger={<MyButtons.Create title={`添加${props.title}`} />}
|
||||
form={form}
|
||||
onOpenChange={(open: any) => {
|
||||
if (open) {
|
||||
form.resetFields(); // 清空表单数据
|
||||
}
|
||||
}}
|
||||
onFinish={async (values) =>
|
||||
Apis.Asset.AssetHouses.Store({
|
||||
...values,
|
||||
asset_projects_id: props?.item?.id,
|
||||
asset_buildings_id: props?.item?.asset_buildings_id,
|
||||
asset_units_id: props?.item?.asset_units_id,
|
||||
})
|
||||
.then(() => {
|
||||
props.reload?.();
|
||||
@ -47,44 +46,86 @@ export default function Create(props: MyBetaModalFormProps) {
|
||||
}
|
||||
columns={[
|
||||
{
|
||||
key: 'name',
|
||||
title: '房号',
|
||||
colProps: { span: 12 },
|
||||
formItemProps: { ...rulesHelper.text },
|
||||
valueType: 'dependency',
|
||||
name: ['asset_buildings_id', 'asset_units_id'],
|
||||
columns: ({ asset_buildings_id }) => {
|
||||
return [
|
||||
{
|
||||
valueType: 'group',
|
||||
columns: [
|
||||
SysSelects?.AssetBuildings({
|
||||
key: 'asset_buildings_id',
|
||||
title: '选择楼栋',
|
||||
params: {
|
||||
asset_projects_id: props?.item?.id,
|
||||
},
|
||||
colProps: { span: 6 },
|
||||
formItemProps: { ...rulesHelper.number },
|
||||
fieldProps: {
|
||||
showSearch: true,
|
||||
onChange: () => {
|
||||
form.setFieldsValue({
|
||||
asset_units_id: undefined,
|
||||
asset_floors_id: undefined,
|
||||
});
|
||||
},
|
||||
},
|
||||
}),
|
||||
SysSelects?.AssetUnits({
|
||||
key: 'asset_units_id',
|
||||
title: '选择单元',
|
||||
params: {
|
||||
asset_projects_id: props?.item?.id,
|
||||
asset_buildings_id: asset_buildings_id,
|
||||
},
|
||||
colProps: { span: 6 },
|
||||
formItemProps: { ...rulesHelper.number },
|
||||
}),
|
||||
{
|
||||
key: 'name',
|
||||
title: '房号',
|
||||
colProps: { span: 6 },
|
||||
formItemProps: { ...rulesHelper.text },
|
||||
},
|
||||
{
|
||||
key: 'floor',
|
||||
title: '楼层',
|
||||
valueType: 'digit',
|
||||
fieldProps: {
|
||||
addonAfter: '楼',
|
||||
max: 99,
|
||||
},
|
||||
colProps: { span: 6 },
|
||||
formItemProps: { ...rulesHelper.number },
|
||||
},
|
||||
],
|
||||
},
|
||||
];
|
||||
},
|
||||
},
|
||||
{
|
||||
key: 'full_name',
|
||||
title: '房屋全称',
|
||||
colProps: { span: 12 },
|
||||
},
|
||||
MyFormItems.EnumRadio({
|
||||
key: 'ownership_type',
|
||||
title: '产权性质',
|
||||
colProps: { span: 24 },
|
||||
valueEnum: AssetHousesOwnershipTypeEnum,
|
||||
required: true,
|
||||
}),
|
||||
MyFormItems.EnumRadio({
|
||||
key: 'orientation',
|
||||
title: '朝向',
|
||||
colProps: { span: 24 },
|
||||
valueEnum: AssetHousesOrientationEnum,
|
||||
required: true,
|
||||
}),
|
||||
|
||||
MyFormItems.EnumRadio({
|
||||
key: 'usage',
|
||||
title: '用途',
|
||||
colProps: { span: 24 },
|
||||
colProps: { span: 18 },
|
||||
valueEnum: AssetHousesUsageEnum,
|
||||
required: true,
|
||||
}),
|
||||
MyFormItems.EnumRadio({
|
||||
key: 'status',
|
||||
title: '房屋状态',
|
||||
colProps: { span: 24 },
|
||||
valueEnum: AssetHousesStatusEnum,
|
||||
required: true,
|
||||
MyFormItems.EnumSelect({
|
||||
key: 'ownership_type',
|
||||
title: '产权性质',
|
||||
colProps: { span: 6 },
|
||||
valueEnum: AssetHousesOwnershipTypeEnum,
|
||||
// required: true,
|
||||
}),
|
||||
// {
|
||||
// key: 'ownership_term',
|
||||
// title: '产权年限',
|
||||
// fieldProps: {
|
||||
// addonAfter: '年',
|
||||
// },
|
||||
// colProps: { span: 8 },
|
||||
// },
|
||||
|
||||
{
|
||||
key: 'built_area',
|
||||
@ -92,8 +133,9 @@ export default function Create(props: MyBetaModalFormProps) {
|
||||
valueType: 'digit',
|
||||
fieldProps: {
|
||||
addonAfter: '㎡',
|
||||
max: 99999,
|
||||
},
|
||||
colProps: { span: 8 },
|
||||
colProps: { span: 6 },
|
||||
},
|
||||
{
|
||||
key: 'inside_area',
|
||||
@ -101,8 +143,9 @@ export default function Create(props: MyBetaModalFormProps) {
|
||||
valueType: 'digit',
|
||||
fieldProps: {
|
||||
addonAfter: '㎡',
|
||||
max: 99999,
|
||||
},
|
||||
colProps: { span: 8 },
|
||||
colProps: { span: 6 },
|
||||
},
|
||||
{
|
||||
key: 'chargeable_area',
|
||||
@ -110,26 +153,36 @@ export default function Create(props: MyBetaModalFormProps) {
|
||||
valueType: 'digit',
|
||||
fieldProps: {
|
||||
addonAfter: '㎡',
|
||||
max: 99999,
|
||||
},
|
||||
colProps: { span: 8 },
|
||||
colProps: { span: 6 },
|
||||
},
|
||||
{
|
||||
key: 'floor',
|
||||
title: '楼层',
|
||||
valueType: 'digit',
|
||||
fieldProps: {
|
||||
addonAfter: '楼',
|
||||
MyFormItems.EnumRadio({
|
||||
key: 'status',
|
||||
title: '房屋状态',
|
||||
colProps: { span: 6 },
|
||||
// valueEnum: AssetHousesStatusEnum,
|
||||
// required: true,
|
||||
valueEnum: () => {
|
||||
let obj: any = JSON.parse(JSON.stringify(AssetHousesStatusEnum));
|
||||
delete obj.SelfOccupied;
|
||||
delete obj.Rented;
|
||||
delete obj.Vacant;
|
||||
return obj;
|
||||
},
|
||||
colProps: { span: 8 },
|
||||
},
|
||||
{
|
||||
key: 'ownership_term',
|
||||
title: '产权年限',
|
||||
fieldProps: {
|
||||
addonAfter: '年',
|
||||
},
|
||||
colProps: { span: 8 },
|
||||
},
|
||||
}),
|
||||
// {
|
||||
// key: 'full_name',
|
||||
// title: '房屋全称',
|
||||
// colProps: { span: 12 },
|
||||
// },
|
||||
MyFormItems.EnumRadio({
|
||||
key: 'orientation',
|
||||
title: '房屋状态',
|
||||
colProps: { span: 6 },
|
||||
valueEnum: AssetHousesOrientationEnum,
|
||||
// required: true,
|
||||
}),
|
||||
{
|
||||
valueType: 'group',
|
||||
columns: [
|
||||
@ -151,15 +204,6 @@ export default function Create(props: MyBetaModalFormProps) {
|
||||
},
|
||||
colProps: { span: 4 },
|
||||
},
|
||||
{
|
||||
key: 'kitchen',
|
||||
title: '厨',
|
||||
valueType: 'digit',
|
||||
fieldProps: {
|
||||
addonAfter: '厨',
|
||||
},
|
||||
colProps: { span: 4 },
|
||||
},
|
||||
{
|
||||
key: 'bathroom',
|
||||
title: '卫',
|
||||
@ -169,6 +213,15 @@ export default function Create(props: MyBetaModalFormProps) {
|
||||
},
|
||||
colProps: { span: 4 },
|
||||
},
|
||||
{
|
||||
key: 'kitchen',
|
||||
title: '厨',
|
||||
valueType: 'digit',
|
||||
fieldProps: {
|
||||
addonAfter: '厨',
|
||||
},
|
||||
colProps: { span: 4 },
|
||||
},
|
||||
{
|
||||
key: 'balcony',
|
||||
title: '阳台',
|
||||
|
||||
75
src/pages/asset/asset_projects/modals/AssetHousesShow.tsx
Normal file
75
src/pages/asset/asset_projects/modals/AssetHousesShow.tsx
Normal file
@ -0,0 +1,75 @@
|
||||
import { MyBetaModalFormProps, renderTextHelper } from '@/common';
|
||||
import { MyModal } from '@/components/MyModal';
|
||||
import {
|
||||
AssetHousesOrientationEnum,
|
||||
AssetHousesOwnershipTypeEnum,
|
||||
AssetHousesStatusEnum,
|
||||
AssetHousesUsageEnum,
|
||||
} from '@/gen/Enums';
|
||||
import { ProCard, ProDescriptions } from '@ant-design/pro-components';
|
||||
|
||||
export default function info(props: MyBetaModalFormProps) {
|
||||
return (
|
||||
<MyModal
|
||||
title={props.title || '查看'}
|
||||
width="1000px"
|
||||
node={
|
||||
<ProCard extra={props.extra}>
|
||||
<ProDescriptions bordered>
|
||||
<ProDescriptions.Item label="房屋全名" span={2}>
|
||||
{props?.item?.full_name}
|
||||
</ProDescriptions.Item>
|
||||
<ProDescriptions.Item label="房号">
|
||||
{props?.item?.name}
|
||||
</ProDescriptions.Item>
|
||||
<ProDescriptions.Item label="楼层">
|
||||
{props?.item?.floor}
|
||||
</ProDescriptions.Item>
|
||||
<ProDescriptions.Item label="房屋用途">
|
||||
<renderTextHelper.Tag
|
||||
Enums={AssetHousesUsageEnum}
|
||||
value={props?.item?.usage}
|
||||
key="usage"
|
||||
/>
|
||||
</ProDescriptions.Item>
|
||||
<ProDescriptions.Item label="产权性质">
|
||||
<renderTextHelper.Tag
|
||||
Enums={AssetHousesOwnershipTypeEnum}
|
||||
value={props?.item?.ownership_type}
|
||||
key="ownership_type"
|
||||
/>
|
||||
</ProDescriptions.Item>
|
||||
<ProDescriptions.Item label="建筑面积">
|
||||
{props?.item?.built_area}m²
|
||||
</ProDescriptions.Item>
|
||||
<ProDescriptions.Item label="套内面积">
|
||||
{props?.item?.inside_area}m²
|
||||
</ProDescriptions.Item>
|
||||
<ProDescriptions.Item label="计费面积">
|
||||
{props?.item?.chargeable_area}m²
|
||||
</ProDescriptions.Item>
|
||||
<ProDescriptions.Item label="房屋状态">
|
||||
<renderTextHelper.Tag
|
||||
Enums={AssetHousesStatusEnum}
|
||||
value={props?.item?.status}
|
||||
key="status"
|
||||
/>
|
||||
</ProDescriptions.Item>
|
||||
<ProDescriptions.Item label="户型">
|
||||
{props?.item?.room || ''}房{props?.item?.hall || ''}厅
|
||||
{props?.item?.bathroom || ''}卫{props?.item?.kitchen || ''}厨
|
||||
{props?.item?.balcony || ''}阳台
|
||||
</ProDescriptions.Item>
|
||||
<ProDescriptions.Item label="朝向">
|
||||
<renderTextHelper.Tag
|
||||
Enums={AssetHousesOrientationEnum}
|
||||
value={props?.item?.orientation}
|
||||
key="orientation"
|
||||
/>
|
||||
</ProDescriptions.Item>
|
||||
</ProDescriptions>
|
||||
</ProCard>
|
||||
}
|
||||
/>
|
||||
);
|
||||
}
|
||||
244
src/pages/asset/asset_projects/modals/AssetHousesUpdate.tsx
Normal file
244
src/pages/asset/asset_projects/modals/AssetHousesUpdate.tsx
Normal file
@ -0,0 +1,244 @@
|
||||
import {
|
||||
MyBetaModalFormProps,
|
||||
MyButtons,
|
||||
MyFormItems,
|
||||
MyModalFormProps,
|
||||
rulesHelper,
|
||||
} from '@/common';
|
||||
import { SysSelects } from '@/components/Select';
|
||||
import { Apis } from '@/gen/Apis';
|
||||
import {
|
||||
AssetHousesOrientationEnum,
|
||||
AssetHousesOwnershipTypeEnum,
|
||||
AssetHousesStatusEnum,
|
||||
AssetHousesUsageEnum,
|
||||
} from '@/gen/Enums';
|
||||
import { BetaSchemaForm } from '@ant-design/pro-components';
|
||||
import { Form, message } from 'antd';
|
||||
|
||||
export default function Update(props: MyBetaModalFormProps) {
|
||||
const [form] = Form.useForm();
|
||||
console.log(props?.item, 'item');
|
||||
return (
|
||||
<BetaSchemaForm<ApiTypes.Asset.AssetHouses.Update>
|
||||
{...MyModalFormProps.props}
|
||||
title={`编辑`}
|
||||
wrapperCol={{ span: 24 }}
|
||||
width="800px"
|
||||
trigger={<MyButtons.Default title={`编辑`} size="small" type="link" />}
|
||||
form={form}
|
||||
onOpenChange={(open: any) => {
|
||||
if (open) {
|
||||
form.setFieldsValue(props?.item); // 编辑赋值
|
||||
}
|
||||
}}
|
||||
onFinish={async (values) =>
|
||||
Apis.Asset.AssetHouses.Update({
|
||||
...values,
|
||||
asset_projects_id: props?.item?.asset_projects_id,
|
||||
asset_buildings_id:
|
||||
values.asset_buildings_id || props?.item?.asset_buildings_id,
|
||||
asset_units_id: values.asset_units_id || props?.item?.asset_units_id,
|
||||
id: props?.item?.id,
|
||||
})
|
||||
.then(() => {
|
||||
props.reload?.();
|
||||
message.success('房屋编辑成功');
|
||||
return true;
|
||||
})
|
||||
.catch(() => false)
|
||||
}
|
||||
columns={[
|
||||
{
|
||||
valueType: 'dependency',
|
||||
name: ['asset_buildings_id', 'asset_units_id'],
|
||||
columns: ({ asset_buildings_id }) => {
|
||||
return [
|
||||
{
|
||||
valueType: 'group',
|
||||
columns: [
|
||||
SysSelects?.AssetBuildings({
|
||||
key: 'asset_buildings_id',
|
||||
title: '选择楼栋',
|
||||
params: {
|
||||
asset_projects_id: props?.item?.id,
|
||||
},
|
||||
colProps: { span: 6 },
|
||||
formItemProps: { ...rulesHelper.number },
|
||||
fieldProps: {
|
||||
showSearch: true,
|
||||
onChange: () => {
|
||||
form.setFieldsValue({
|
||||
asset_units_id: undefined,
|
||||
asset_floors_id: undefined,
|
||||
});
|
||||
},
|
||||
},
|
||||
}),
|
||||
SysSelects?.AssetUnits({
|
||||
key: 'asset_units_id',
|
||||
title: '选择单元',
|
||||
params: {
|
||||
asset_projects_id: props?.item?.id,
|
||||
asset_buildings_id: asset_buildings_id,
|
||||
},
|
||||
colProps: { span: 6 },
|
||||
formItemProps: { ...rulesHelper.number },
|
||||
}),
|
||||
{
|
||||
key: 'name',
|
||||
title: '房号',
|
||||
colProps: { span: 6 },
|
||||
formItemProps: { ...rulesHelper.text },
|
||||
},
|
||||
{
|
||||
key: 'floor',
|
||||
title: '楼层',
|
||||
valueType: 'digit',
|
||||
fieldProps: {
|
||||
addonAfter: '楼',
|
||||
max: 99,
|
||||
},
|
||||
colProps: { span: 6 },
|
||||
formItemProps: { ...rulesHelper.number },
|
||||
},
|
||||
],
|
||||
},
|
||||
];
|
||||
},
|
||||
},
|
||||
|
||||
MyFormItems.EnumRadio({
|
||||
key: 'usage',
|
||||
title: '房屋用途',
|
||||
colProps: { span: 18 },
|
||||
valueEnum: AssetHousesUsageEnum,
|
||||
required: true,
|
||||
}),
|
||||
MyFormItems.EnumSelect({
|
||||
key: 'ownership_type',
|
||||
title: '产权性质',
|
||||
colProps: { span: 6 },
|
||||
valueEnum: AssetHousesOwnershipTypeEnum,
|
||||
// required: true,
|
||||
}),
|
||||
// {
|
||||
// key: 'ownership_term',
|
||||
// title: '产权年限',
|
||||
// fieldProps: {
|
||||
// addonAfter: '年',
|
||||
// },
|
||||
// colProps: { span: 8 },
|
||||
// },
|
||||
|
||||
{
|
||||
key: 'built_area',
|
||||
title: '建筑面积',
|
||||
valueType: 'digit',
|
||||
fieldProps: {
|
||||
addonAfter: '㎡',
|
||||
max: 99999,
|
||||
},
|
||||
colProps: { span: 6 },
|
||||
},
|
||||
{
|
||||
key: 'inside_area',
|
||||
title: '套内面积',
|
||||
valueType: 'digit',
|
||||
fieldProps: {
|
||||
addonAfter: '㎡',
|
||||
max: 99999,
|
||||
},
|
||||
colProps: { span: 6 },
|
||||
},
|
||||
{
|
||||
key: 'chargeable_area',
|
||||
title: '计费面积',
|
||||
valueType: 'digit',
|
||||
fieldProps: {
|
||||
addonAfter: '㎡',
|
||||
max: 99999,
|
||||
},
|
||||
colProps: { span: 6 },
|
||||
},
|
||||
MyFormItems.EnumRadio({
|
||||
key: 'status',
|
||||
title: '房屋状态',
|
||||
colProps: { span: 6 },
|
||||
// valueEnum: AssetHousesStatusEnum,
|
||||
// required: true,
|
||||
valueEnum: () => {
|
||||
let obj: any = JSON.parse(JSON.stringify(AssetHousesStatusEnum));
|
||||
delete obj.SelfOccupied;
|
||||
delete obj.Rented;
|
||||
delete obj.Vacant;
|
||||
return obj;
|
||||
},
|
||||
}),
|
||||
// {
|
||||
// key: 'full_name',
|
||||
// title: '房屋全称',
|
||||
// colProps: { span: 12 },
|
||||
// },
|
||||
|
||||
{
|
||||
valueType: 'group',
|
||||
columns: [
|
||||
{
|
||||
key: 'room',
|
||||
title: '房',
|
||||
valueType: 'digit',
|
||||
fieldProps: {
|
||||
addonAfter: '房',
|
||||
},
|
||||
colProps: { span: 4 },
|
||||
},
|
||||
{
|
||||
key: 'hall',
|
||||
title: '厅',
|
||||
valueType: 'digit',
|
||||
fieldProps: {
|
||||
addonAfter: '厅',
|
||||
},
|
||||
colProps: { span: 4 },
|
||||
},
|
||||
{
|
||||
key: 'bathroom',
|
||||
title: '卫',
|
||||
valueType: 'digit',
|
||||
fieldProps: {
|
||||
addonAfter: '卫',
|
||||
},
|
||||
colProps: { span: 4 },
|
||||
},
|
||||
{
|
||||
key: 'kitchen',
|
||||
title: '厨',
|
||||
valueType: 'digit',
|
||||
fieldProps: {
|
||||
addonAfter: '厨',
|
||||
},
|
||||
colProps: { span: 4 },
|
||||
},
|
||||
{
|
||||
key: 'balcony',
|
||||
title: '阳台',
|
||||
valueType: 'digit',
|
||||
fieldProps: {
|
||||
addonAfter: '阳台',
|
||||
},
|
||||
colProps: { span: 4 },
|
||||
},
|
||||
],
|
||||
},
|
||||
MyFormItems.EnumRadio({
|
||||
key: 'orientation',
|
||||
title: '朝向',
|
||||
colProps: { span: 24 },
|
||||
valueEnum: AssetHousesOrientationEnum,
|
||||
// required: true,
|
||||
}),
|
||||
]}
|
||||
/>
|
||||
);
|
||||
}
|
||||
@ -5,15 +5,17 @@ import {
|
||||
MyModalFormProps,
|
||||
rulesHelper,
|
||||
} from '@/common';
|
||||
import { SysSelects } from '@/components/Select';
|
||||
import { Apis } from '@/gen/Apis';
|
||||
import {
|
||||
AssetUnitsBuildingStructureEnum,
|
||||
AssetUnitsBuildingTypeEnum,
|
||||
} from '@/gen/Enums';
|
||||
import { BetaSchemaForm } from '@ant-design/pro-components';
|
||||
import { message } from 'antd';
|
||||
import { Form, message } from 'antd';
|
||||
|
||||
export default function Create(props: MyBetaModalFormProps) {
|
||||
const [form] = Form.useForm();
|
||||
return (
|
||||
<BetaSchemaForm<ApiTypes.Asset.AssetUnits.Store>
|
||||
{...MyModalFormProps.props}
|
||||
@ -23,14 +25,19 @@ export default function Create(props: MyBetaModalFormProps) {
|
||||
trigger={
|
||||
<MyButtons.Create
|
||||
title={`添加${props.title}`}
|
||||
disabled={!props?.item?.asset_buildings_id}
|
||||
// disabled={!props?.item?.asset_buildings_id}
|
||||
/>
|
||||
}
|
||||
form={form}
|
||||
onOpenChange={(open: any) => {
|
||||
if (open) {
|
||||
form.resetFields(); // 清空表单数据
|
||||
}
|
||||
}}
|
||||
onFinish={async (values) =>
|
||||
Apis.Asset.AssetUnits.Store({
|
||||
...values,
|
||||
asset_projects_id: props?.item?.id,
|
||||
asset_buildings_id: props?.item?.asset_buildings_id,
|
||||
})
|
||||
.then(() => {
|
||||
props.reload?.();
|
||||
@ -40,6 +47,15 @@ export default function Create(props: MyBetaModalFormProps) {
|
||||
.catch(() => false)
|
||||
}
|
||||
columns={[
|
||||
SysSelects?.AssetBuildings({
|
||||
key: 'asset_buildings_id',
|
||||
title: '选择楼栋',
|
||||
params:{
|
||||
asset_projects_id: props?.item?.id,
|
||||
},
|
||||
colProps: { span:24 },
|
||||
formItemProps: { ...rulesHelper.number },
|
||||
}),
|
||||
{
|
||||
key: 'name',
|
||||
title: '单元名称',
|
||||
@ -68,17 +84,17 @@ export default function Create(props: MyBetaModalFormProps) {
|
||||
{
|
||||
key: 'elevator_count',
|
||||
title: '电梯数量',
|
||||
colProps: { span: 12 },
|
||||
colProps: { span: 6 },
|
||||
},
|
||||
{
|
||||
key: 'units_per_building',
|
||||
title: '单元户数',
|
||||
colProps: { span: 12 },
|
||||
colProps: { span: 6 },
|
||||
},
|
||||
{
|
||||
key: 'highest_floor',
|
||||
title: '最高楼层',
|
||||
colProps: { span: 12 },
|
||||
colProps: { span: 6 },
|
||||
},
|
||||
]}
|
||||
/>
|
||||
|
||||
103
src/pages/asset/asset_projects/modals/AssetUnitsUpdate.tsx
Normal file
103
src/pages/asset/asset_projects/modals/AssetUnitsUpdate.tsx
Normal file
@ -0,0 +1,103 @@
|
||||
import {
|
||||
MyBetaModalFormProps,
|
||||
MyButtons,
|
||||
MyFormItems,
|
||||
MyModalFormProps,
|
||||
rulesHelper,
|
||||
} from '@/common';
|
||||
import { SysSelects } from '@/components/Select';
|
||||
import { Apis } from '@/gen/Apis';
|
||||
import {
|
||||
AssetUnitsBuildingStructureEnum,
|
||||
AssetUnitsBuildingTypeEnum,
|
||||
} from '@/gen/Enums';
|
||||
import { BetaSchemaForm } from '@ant-design/pro-components';
|
||||
import { Form, message } from 'antd';
|
||||
|
||||
export default function Update(props: MyBetaModalFormProps) {
|
||||
const [form] = Form.useForm();
|
||||
return (
|
||||
<BetaSchemaForm<ApiTypes.Asset.AssetUnits.Update>
|
||||
{...MyModalFormProps.props}
|
||||
title={`编辑`}
|
||||
wrapperCol={{ span: 24 }}
|
||||
width="700px"
|
||||
trigger={
|
||||
<MyButtons.Default
|
||||
title={`编辑` } size='small' type='link'
|
||||
/>
|
||||
}
|
||||
form={form}
|
||||
onOpenChange={(open: any) => {
|
||||
if (open) {
|
||||
form.setFieldsValue(props?.item); // 编辑赋值
|
||||
}
|
||||
}}
|
||||
onFinish={async (values) =>
|
||||
Apis.Asset.AssetUnits.Update({
|
||||
...values,
|
||||
asset_projects_id: props?.item?.asset_projects_id,
|
||||
id: props?.item?.id,
|
||||
|
||||
})
|
||||
.then(() => {
|
||||
props.reload?.();
|
||||
message.success('单元编辑成功');
|
||||
return true;
|
||||
})
|
||||
.catch(() => false)
|
||||
}
|
||||
columns={[
|
||||
SysSelects?.AssetBuildings({
|
||||
key: 'asset_buildings_id',
|
||||
title: '选择楼栋',
|
||||
params:{
|
||||
asset_projects_id: props?.item?.id,
|
||||
},
|
||||
colProps: { span:24 },
|
||||
formItemProps: { ...rulesHelper.number },
|
||||
}),
|
||||
{
|
||||
key: 'name',
|
||||
title: '单元名称',
|
||||
colProps: { span: 12 },
|
||||
formItemProps: { ...rulesHelper.text },
|
||||
},
|
||||
{
|
||||
key: 'alias_name',
|
||||
title: '单元别名',
|
||||
colProps: { span: 12 },
|
||||
},
|
||||
MyFormItems.EnumRadio({
|
||||
key: 'building_structure',
|
||||
title: '建筑结构',
|
||||
colProps: { span: 12 },
|
||||
valueEnum: AssetUnitsBuildingStructureEnum,
|
||||
required: true,
|
||||
}),
|
||||
MyFormItems.EnumRadio({
|
||||
key: 'building_type',
|
||||
title: '建筑类型',
|
||||
colProps: { span: 12 },
|
||||
valueEnum: AssetUnitsBuildingTypeEnum,
|
||||
required: true,
|
||||
}),
|
||||
{
|
||||
key: 'elevator_count',
|
||||
title: '电梯数量',
|
||||
colProps: { span: 6 },
|
||||
},
|
||||
{
|
||||
key: 'units_per_building',
|
||||
title: '单元户数',
|
||||
colProps: { span: 6 },
|
||||
},
|
||||
{
|
||||
key: 'highest_floor',
|
||||
title: '最高楼层',
|
||||
colProps: { span: 6 },
|
||||
},
|
||||
]}
|
||||
/>
|
||||
);
|
||||
}
|
||||
@ -22,7 +22,14 @@ export default function Update(props: MyBetaModalFormProps) {
|
||||
<BetaSchemaForm<ApiTypes.Asset.AssetProjects.Update>
|
||||
{...MyModalFormProps.props}
|
||||
title={`编辑${props.title}`}
|
||||
trigger={<MyButtons.Default title="编辑" type="primary" size="middle" />}
|
||||
trigger={
|
||||
<MyButtons.Default
|
||||
title="修改"
|
||||
color="primary"
|
||||
variant="filled"
|
||||
size="small"
|
||||
/>
|
||||
}
|
||||
wrapperCol={{ span: 24 }}
|
||||
width="800px"
|
||||
request={() =>
|
||||
@ -46,91 +53,100 @@ export default function Update(props: MyBetaModalFormProps) {
|
||||
.catch(() => false)
|
||||
}
|
||||
columns={[
|
||||
SysSelects?.Companies({
|
||||
key: 'companies_id',
|
||||
title: '所属机构',
|
||||
colProps: { span: 24 },
|
||||
formItemProps: { ...rulesHelper.number },
|
||||
}),
|
||||
{
|
||||
key: 'name',
|
||||
title: '项目名称',
|
||||
colProps: { span: 8 },
|
||||
colProps: { span: 12 },
|
||||
formItemProps: { ...rulesHelper.text },
|
||||
},
|
||||
{
|
||||
key: 'alias_name',
|
||||
title: '项目别名',
|
||||
colProps: { span: 8 },
|
||||
colProps: { span: 6 },
|
||||
},
|
||||
{
|
||||
key: 'code',
|
||||
title: '项目编码',
|
||||
colProps: { span: 8 },
|
||||
formItemProps: { ...rulesHelper.text },
|
||||
},
|
||||
MyFormItems.EnumRadio({
|
||||
key: 'property_type',
|
||||
title: '物业类型',
|
||||
colProps: { span: 24 },
|
||||
valueEnum: AssetProjectsPropertyTypeEnum,
|
||||
required: true,
|
||||
SysSelects?.Companies({
|
||||
key: 'companies_id',
|
||||
title: '所属机构',
|
||||
colProps: { span: 6 },
|
||||
formItemProps: { ...rulesHelper.number },
|
||||
}),
|
||||
MyFormItems.EnumRadio({
|
||||
key: 'status',
|
||||
title: '状态',
|
||||
colProps: { span: 12 },
|
||||
valueEnum: AssetProjectsStatusEnum,
|
||||
required: true,
|
||||
}),
|
||||
MyFormItems.EnumRadio({
|
||||
key: 'charge',
|
||||
title: '收费方式',
|
||||
colProps: { span: 12 },
|
||||
valueEnum: AssetProjectsChargeEnum,
|
||||
required: true,
|
||||
}),
|
||||
|
||||
MyFormItems.EnumRadio({
|
||||
key: 'entrust_type',
|
||||
title: '委托类型',
|
||||
colProps: { span: 24 },
|
||||
valueEnum: AssetProjectsEntrustTypeEnum,
|
||||
required: true,
|
||||
}),
|
||||
|
||||
// {
|
||||
// key: 'code',
|
||||
// title: '项目编码',
|
||||
// colProps: { span: 8 },
|
||||
// formItemProps: { ...rulesHelper.text },
|
||||
// },
|
||||
Address.Cascader({
|
||||
key: 'casacader',
|
||||
title: '选择地址',
|
||||
colProps: { span: 24 },
|
||||
colProps: { span: 12 },
|
||||
keys: ['province', 'city', 'area', 'street'],
|
||||
required: true,
|
||||
}),
|
||||
{
|
||||
key: 'address',
|
||||
title: '详细地址',
|
||||
colProps: { span: 24 },
|
||||
colProps: { span: 6 },
|
||||
formItemProps: { ...rulesHelper.text },
|
||||
},
|
||||
{
|
||||
key: 'longitude',
|
||||
title: '经度',
|
||||
colProps: { span: 6 },
|
||||
colProps: { span: 3 },
|
||||
},
|
||||
{
|
||||
key: 'latitude',
|
||||
title: '纬度',
|
||||
colProps: { span: 6 },
|
||||
colProps: { span: 3 },
|
||||
},
|
||||
MyFormItems.EnumSelect({
|
||||
key: 'property_type',
|
||||
title: '项目类型',
|
||||
colProps: { span: 6 },
|
||||
valueEnum: AssetProjectsPropertyTypeEnum,
|
||||
// required: true,
|
||||
}),
|
||||
MyFormItems.EnumSelect({
|
||||
key: 'status',
|
||||
title: '项目状态',
|
||||
colProps: { span: 6 },
|
||||
valueEnum: AssetProjectsStatusEnum,
|
||||
// required: true,
|
||||
}),
|
||||
MyFormItems.EnumSelect({
|
||||
key: 'entrust_type',
|
||||
title: '委托类型',
|
||||
colProps: { span: 6 },
|
||||
valueEnum: AssetProjectsEntrustTypeEnum,
|
||||
// required: true,
|
||||
}),
|
||||
MyFormItems.EnumRadio({
|
||||
key: 'charge',
|
||||
title: '收费方式',
|
||||
colProps: { span: 6 },
|
||||
valueEnum: AssetProjectsChargeEnum,
|
||||
// required: true,
|
||||
}),
|
||||
{
|
||||
key: 'takeover_date',
|
||||
title: '接管日期',
|
||||
valueType: 'date',
|
||||
fieldProps: {
|
||||
style: {
|
||||
width: '100%',
|
||||
},
|
||||
},
|
||||
colProps: { span: 6 },
|
||||
},
|
||||
{
|
||||
key: 'closure_date',
|
||||
title: '封园日期',
|
||||
valueType: 'date',
|
||||
fieldProps: {
|
||||
style: {
|
||||
width: '100%',
|
||||
},
|
||||
},
|
||||
colProps: { span: 6 },
|
||||
},
|
||||
]}
|
||||
@ -35,81 +35,81 @@ export default function Create(props: MyBetaModalFormProps) {
|
||||
.catch(() => false)
|
||||
}
|
||||
columns={[
|
||||
SysSelects?.Companies({
|
||||
key: 'companies_id',
|
||||
title: '所属机构',
|
||||
colProps: { span: 24 },
|
||||
formItemProps: { ...rulesHelper.number },
|
||||
}),
|
||||
|
||||
{
|
||||
key: 'name',
|
||||
title: '项目名称',
|
||||
colProps: { span: 8 },
|
||||
colProps: { span: 12 },
|
||||
formItemProps: { ...rulesHelper.text },
|
||||
},
|
||||
{
|
||||
key: 'alias_name',
|
||||
title: '项目别名',
|
||||
colProps: { span: 8 },
|
||||
colProps: { span: 6 },
|
||||
},
|
||||
{
|
||||
key: 'code',
|
||||
title: '项目编码',
|
||||
colProps: { span: 8 },
|
||||
formItemProps: { ...rulesHelper.text },
|
||||
},
|
||||
MyFormItems.EnumRadio({
|
||||
key: 'property_type',
|
||||
title: '物业类型',
|
||||
colProps: { span: 24 },
|
||||
valueEnum: AssetProjectsPropertyTypeEnum,
|
||||
required: true,
|
||||
SysSelects?.Companies({
|
||||
key: 'companies_id',
|
||||
title: '所属机构',
|
||||
colProps: { span: 6 },
|
||||
// formItemProps: { ...rulesHelper.number },
|
||||
}),
|
||||
MyFormItems.EnumRadio({
|
||||
key: 'status',
|
||||
title: '状态',
|
||||
colProps: { span: 12 },
|
||||
valueEnum: AssetProjectsStatusEnum,
|
||||
required: true,
|
||||
}),
|
||||
MyFormItems.EnumRadio({
|
||||
key: 'charge',
|
||||
title: '收费方式',
|
||||
colProps: { span: 12 },
|
||||
valueEnum: AssetProjectsChargeEnum,
|
||||
required: true,
|
||||
}),
|
||||
|
||||
MyFormItems.EnumRadio({
|
||||
key: 'entrust_type',
|
||||
title: '委托类型',
|
||||
colProps: { span: 24 },
|
||||
valueEnum: AssetProjectsEntrustTypeEnum,
|
||||
required: true,
|
||||
}),
|
||||
|
||||
// {
|
||||
// key: 'code',
|
||||
// title: '项目编码',
|
||||
// colProps: { span: 8 },
|
||||
// // formItemProps: { ...rulesHelper.text },
|
||||
// },
|
||||
Address.Cascader({
|
||||
key: 'casacader',
|
||||
title: '选择地址',
|
||||
colProps: { span: 24 },
|
||||
colProps: { span: 12 },
|
||||
keys: ['province', 'city', 'area', 'street'],
|
||||
required: true,
|
||||
}),
|
||||
{
|
||||
key: 'address',
|
||||
title: '详细地址',
|
||||
colProps: { span: 24 },
|
||||
colProps: { span: 6 },
|
||||
formItemProps: { ...rulesHelper.text },
|
||||
},
|
||||
{
|
||||
key: 'longitude',
|
||||
title: '经度',
|
||||
colProps: { span: 6 },
|
||||
colProps: { span: 3 },
|
||||
},
|
||||
{
|
||||
key: 'latitude',
|
||||
title: '纬度',
|
||||
colProps: { span: 6 },
|
||||
colProps: { span: 3 },
|
||||
},
|
||||
MyFormItems.EnumSelect({
|
||||
key: 'property_type',
|
||||
title: '项目类型',
|
||||
colProps: { span: 6 },
|
||||
valueEnum: AssetProjectsPropertyTypeEnum,
|
||||
// required: true,
|
||||
}),
|
||||
MyFormItems.EnumSelect({
|
||||
key: 'status',
|
||||
title: '项目状态',
|
||||
colProps: { span:6 },
|
||||
valueEnum: AssetProjectsStatusEnum,
|
||||
// required: true,
|
||||
}),
|
||||
MyFormItems.EnumSelect({
|
||||
key: 'entrust_type',
|
||||
title: '委托类型',
|
||||
colProps: { span: 6 },
|
||||
valueEnum: AssetProjectsEntrustTypeEnum,
|
||||
// required: true,
|
||||
}),
|
||||
MyFormItems.EnumRadio({
|
||||
key: 'charge',
|
||||
title: '收费方式',
|
||||
colProps: { span: 6 },
|
||||
valueEnum: AssetProjectsChargeEnum,
|
||||
// required: true,
|
||||
}),
|
||||
{
|
||||
key: 'takeover_date',
|
||||
title: '接管日期',
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user