feat:修改住户信息、修改住户电话、修改审核页面的展示
All checks were successful
Build and Push Docker Image / build (push) Successful in 3m2s

This commit is contained in:
uiuJun 2025-09-09 19:02:49 +08:00
parent 41b8859698
commit 786a48fe99
10 changed files with 680 additions and 26 deletions

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

@ -71,6 +71,24 @@ declare namespace ApiTypes {
type RemoveOwner = { type RemoveOwner = {
"house_occupants_id": number; // 房客id "house_occupants_id": number; // 房客id
}; };
type ChangeOccupant = {
"house_occupants_id": number; // 房客id
"type": string; // 类型,[enum:HouseRegistersTypeEnum
"update_info": string[]; // 要修改的信息
"update_info.phone"?: phonerequired_if:type,UpdatePhone; // 客户手机号
"update_info.reserve_phone"?: phone; // 客户备用电话
"update_info.card_type"?: string; // 证件类型,[enum:HouseOccupantsCardTypeEnum]
"update_info.id_card"?: string; // 客户身份证号
"update_info.card_front_image"?: string[]; // 身份证正面图片
"update_info.card_back_image"?: string[]; // 身份证反面图片
"update_info.address"?: string; // 客户地址
"update_info.ownership_info"?: string[]; // 产权信息
"house_relation"?: string; // 房客关系,[enum:HouseOccupantsHouseRelationEnum]
"residential_relation"?: string; // 居住关系,[enum:HouseOccupantsResidentialRelationEnum]
"owners_id"?: number; // 产权人id,[ref:house_occupants]
"relation_with_owner"?: string; // 与产权人关系,[enum:HouseOccupantsRelationWithOwnerEnum]
"status"?: string; // 状态,[enum:HouseOccupantsStatusEnum]
};
type Show = { type Show = {
"id": number; // id "id": number; // id
}; };
@ -224,7 +242,7 @@ declare namespace ApiTypes {
"charge"?: string; // 收费方式,[enum:AssetProjectsChargeEnum] "charge"?: string; // 收费方式,[enum:AssetProjectsChargeEnum]
"takeover_date"?: Date; // 接管日期 "takeover_date"?: Date; // 接管日期
"closure_date"?: Date; // 封园日期 "closure_date"?: Date; // 封园日期
"company_property_brands_id"?: string; // 物业品牌id,[ref:company_property_brands] "company_property_brands_id"?: number; // 物业品牌id,[ref:company_property_brands]
}; };
type Update = { type Update = {
"id": number; // id "id": number; // id
@ -249,7 +267,7 @@ declare namespace ApiTypes {
"charge"?: string; // 收费方式,[enum:AssetProjectsChargeEnum] "charge"?: string; // 收费方式,[enum:AssetProjectsChargeEnum]
"takeover_date"?: Date; // 接管日期 "takeover_date"?: Date; // 接管日期
"closure_date"?: Date; // 封园日期 "closure_date"?: Date; // 封园日期
"company_property_brands_id"?: string; // 物业品牌id,[ref:company_property_brands] "company_property_brands_id"?: number; // 物业品牌id,[ref:company_property_brands]
}; };
type BindCompany = { type BindCompany = {
"projects_id": number; // 项目id "projects_id": number; // 项目id
@ -518,6 +536,8 @@ declare namespace ApiTypes {
namespace ConvenienceServices { namespace ConvenienceServices {
type List = { type List = {
"name"?: string; // 模糊搜索:名称 "name"?: string; // 模糊搜索:名称
"asset_projects_id"?: number; // 项目ID
"project_name"?: string; // 项目名称
}; };
type Store = { type Store = {
"asset_projects_id": number; // 项目ID "asset_projects_id": number; // 项目ID
@ -870,6 +890,20 @@ declare namespace ApiTypes {
}; };
} }
} }
namespace Customer {
namespace CustomerOpinions {
type List = {
"type"?: string; // 类型,[enum:CustomerOpinionsTypeEnum]
"content"?: string; // 模糊搜索:内容
};
type Show = {
"id": number; // id
};
type Delete = {
"id": number; // id
};
}
}
namespace Grid { namespace Grid {
namespace Grids { namespace Grids {
type List = { type List = {

View File

@ -45,6 +45,9 @@ export const Apis = {
RemoveOwner(data: ApiTypes.Archive.HouseRegisters.RemoveOwner): Promise<MyResponseType> { RemoveOwner(data: ApiTypes.Archive.HouseRegisters.RemoveOwner): Promise<MyResponseType> {
return request('admin/archive/house_registers/remove_owner', { data }); return request('admin/archive/house_registers/remove_owner', { data });
}, },
ChangeOccupant(data: ApiTypes.Archive.HouseRegisters.ChangeOccupant): Promise<MyResponseType> {
return request('admin/archive/house_registers/change_occupant', { data });
},
Show(data: ApiTypes.Archive.HouseRegisters.Show): Promise<MyResponseType> { Show(data: ApiTypes.Archive.HouseRegisters.Show): Promise<MyResponseType> {
return request('admin/archive/house_registers/show', { data }); return request('admin/archive/house_registers/show', { data });
}, },
@ -516,6 +519,19 @@ export const Apis = {
}, },
}, },
}, },
Customer: {
CustomerOpinions: {
List(data?: ApiTypes.Customer.CustomerOpinions.List): Promise<MyResponseType> {
return request('admin/customer/customer_opinions/list', { data });
},
Show(data: ApiTypes.Customer.CustomerOpinions.Show): Promise<MyResponseType> {
return request('admin/customer/customer_opinions/show', { data });
},
Delete(data: ApiTypes.Customer.CustomerOpinions.Delete): Promise<MyResponseType> {
return request('admin/customer/customer_opinions/delete', { data });
},
},
},
Grid: { Grid: {
Grids: { Grids: {
List(data?: ApiTypes.Grid.Grids.List): Promise<MyResponseType> { List(data?: ApiTypes.Grid.Grids.List): Promise<MyResponseType> {

View File

@ -126,7 +126,7 @@ export const BannersTypeEnum= {
// 缓存类型 // 缓存类型
export const CacheTypeEnum= { export const CacheTypeEnum= {
'MobilePhoneVerificationCode': {"text":"手机验证码","color":"#5b3d89","value":"MobilePhoneVerificationCode"}, 'MobilePhoneVerificationCode': {"text":"手机验证码","color":"#81d182","value":"MobilePhoneVerificationCode"},
}; };
// CompaniesMerchantTypeEnum // CompaniesMerchantTypeEnum
@ -189,6 +189,12 @@ export const CustomerBacklogsTypeEnum= {
'ContractTodo': {"text":"合同待办","color":"#722ed1","value":"ContractTodo"}, 'ContractTodo': {"text":"合同待办","color":"#722ed1","value":"ContractTodo"},
}; };
// CustomerOpinionsTypeEnum
export const CustomerOpinionsTypeEnum= {
'FeatureException': {"text":"功能异常","color":"#ff0000","value":"FeatureException"},
'FeatureSuggestion': {"text":"新功能建议","color":"#00bfff","value":"FeatureSuggestion"},
};
// 账单状态枚举 // 账单状态枚举
export const HouseBillsBillStatusEnum= { export const HouseBillsBillStatusEnum= {
'PendingPayment': {"text":"待支付","color":"#facc15","value":"PendingPayment"}, 'PendingPayment': {"text":"待支付","color":"#facc15","value":"PendingPayment"},
@ -404,6 +410,8 @@ export const HouseRegistersTypeEnum= {
'RemoveOccupant': {"text":"移除住户","color":"#fa8c16","value":"RemoveOccupant"}, 'RemoveOccupant': {"text":"移除住户","color":"#fa8c16","value":"RemoveOccupant"},
'MoveOut': {"text":"搬离登记","color":"#f50","value":"MoveOut"}, 'MoveOut': {"text":"搬离登记","color":"#f50","value":"MoveOut"},
'MoveIn': {"text":"搬入登记","color":"#ffc53d","value":"MoveIn"}, 'MoveIn': {"text":"搬入登记","color":"#ffc53d","value":"MoveIn"},
'UpdateInfo': {"text":"修改信息","color":"#722ed1","value":"UpdateInfo"},
'UpdatePhone': {"text":"修改电话","color":"#13c2c2","value":"UpdatePhone"},
}; };
// HouseRegistersUsagePlanEnum // HouseRegistersUsagePlanEnum

View File

@ -10,10 +10,12 @@ import { Popconfirm, Space, Tag } from 'antd';
import { useEffect, useRef } from 'react'; import { useEffect, useRef } from 'react';
import Delivery from '../modals/Delivery'; import Delivery from '../modals/Delivery';
import AddOccupant from './modals/AddOccupant'; import AddOccupant from './modals/AddOccupant';
import ChangePhone from './modals/ChangePhone';
import MoveIn from './modals/MoveIn'; import MoveIn from './modals/MoveIn';
import MoveOut from './modals/MoveOut'; import MoveOut from './modals/MoveOut';
import OccupantShow from './modals/OccupantShow'; import OccupantShow from './modals/OccupantShow';
import OccupantsUpdate from './modals/OccupantsUpdate'; import OccupantsUpdate from './modals/OccupantsUpdate';
import OwnerUpdate from './modals/OwnerUpdate';
import RemoveOwner from './modals/RemoveOwner'; import RemoveOwner from './modals/RemoveOwner';
import Transfer from './modals/Transfer'; import Transfer from './modals/Transfer';
@ -152,8 +154,16 @@ export default function Index({ ...rest }) {
render: (_, item: any, index, action) => ( render: (_, item: any, index, action) => (
<Space key={index}> <Space key={index}>
<OccupantShow item={item} reload={action?.reload} /> <OccupantShow item={item} reload={action?.reload} />
{item?.house_relation !==
HouseOccupantsHouseRelationEnum.NonOwner.value && (
<OwnerUpdate item={item} reload={action?.reload} />
)}
{item?.house_relation ===
HouseOccupantsHouseRelationEnum.NonOwner.value && (
<OccupantsUpdate item={item} reload={action?.reload} /> <OccupantsUpdate item={item} reload={action?.reload} />
{!item?.is_live_in && ( )}
<ChangePhone item={item} reload={action?.reload} />
{!item?.move_in_date && (
<MoveIn item={item} reload={action?.reload} title="入住" /> <MoveIn item={item} reload={action?.reload} title="入住" />
)} )}
{item?.move_in_date && ( {item?.move_in_date && (

View File

@ -0,0 +1,59 @@
import {
MyBetaModalFormProps,
MyButtons,
MyModalFormProps,
rulesHelper,
} from '@/common';
import { Apis } from '@/gen/Apis';
import { HouseRegistersTypeEnum } 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.Archive.HouseRegisters.ChangeOccupant>
{...MyModalFormProps.props}
title={`修改电话`}
wrapperCol={{ span: 24 }}
width="360px"
trigger={<MyButtons.Default title={`改电话`} size="small" type="link" />}
key={new Date().getTime()}
form={form}
onOpenChange={(open: any) => {
if (open) {
form.setFieldsValue(props?.item); // 编辑赋值
}
}}
onFinish={async (values: any) => {
const requestData: any = {
house_occupants_id: props?.item?.id,
type: HouseRegistersTypeEnum.UpdatePhone.value,
house_relation: props?.item?.house_relation,
update_info: {
phone: values.phone,
},
};
return Apis.Archive.HouseRegisters.ChangeOccupant(requestData)
.then(() => {
props.reload?.();
message.success('电话修改成功');
return true;
})
.catch(() => false);
}}
columns={[
{
title: '手机号',
dataIndex: 'phone',
colProps: { span: 24 },
fieldProps: {
maxLength: 11,
},
formItemProps: { ...rulesHelper.phone },
},
]}
/>
);
}

View File

@ -0,0 +1,106 @@
import {
MyBetaModalFormProps,
MyButtons,
MyFormItems,
MyModalFormProps,
rulesHelper,
} from '@/common';
import { Apis } from '@/gen/Apis';
import {
HouseOccupantsCardTypeEnum,
HouseRegistersTypeEnum,
} 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.Archive.HouseRegisters.ChangeOccupant>
{...MyModalFormProps.props}
title={`修改信息`}
wrapperCol={{ span: 24 }}
width="600px"
trigger={<MyButtons.Default title={`改信息`} size="small" type="link" />}
key={new Date().getTime()}
form={form}
onOpenChange={(open: any) => {
if (open) {
form.setFieldsValue(props?.item); // 编辑赋值
}
}}
onFinish={async (values: any) => {
const requestData: any = {
house_occupants_id: props?.item?.id,
type: HouseRegistersTypeEnum.UpdateInfo.value,
house_relation: props?.item?.house_relation,
update_info: {
name: values.name || props?.item,
card_type: values.card_type,
id_card: values.id_card,
card_front_image: values.card_front_image,
card_back_image: values.card_back_image,
},
};
return Apis.Archive.HouseRegisters.ChangeOccupant(requestData)
.then(() => {
props.reload?.();
message.success('信息编辑成功');
return true;
})
.catch(() => false);
}}
columns={[
{
valueType: 'group',
columns: [
{
title: '名称',
dataIndex: 'name',
colProps: { span: 6 },
formItemProps: { ...rulesHelper.text },
},
MyFormItems.EnumSelect({
key: 'card_type',
title: '证件类型',
colProps: { span: 10 },
valueEnum: HouseOccupantsCardTypeEnum,
required: true,
}),
{
title: '证件号码',
dataIndex: 'id_card',
colProps: { span: 8 },
fieldProps: {
maxLength: 18,
},
formItemProps: { ...rulesHelper.text },
},
{
valueType: 'group',
columns: [
MyFormItems.UploadImages({
key: 'card_front_image',
title: '证件正面',
// uploadType: 'file',
required: true,
max: 1,
colProps: { span: 6 },
}),
MyFormItems.UploadImages({
key: 'card_back_image',
title: '证件反面',
// uploadType: 'file',
required: true,
max: 1,
colProps: { span: 6 },
}),
],
},
],
},
]}
/>
);
}

View File

@ -0,0 +1,128 @@
import {
MyButtons,
MyColumns,
MyPageContainer,
MyProTableProps,
usePageTabs,
} from '@/common';
import { MyExport } from '@/components/MyExport';
import { Apis } from '@/gen/Apis';
import { AssetHousesUsageEnum } from '@/gen/Enums';
import { ProTable } from '@ant-design/pro-components';
import { useNavigate } from '@umijs/max';
import { Space } from 'antd';
import { useState } from 'react';
import HousesShow from '../asset/components/modals/HousesShow';
import HousesUpdate from '../asset/components/modals/HousesUpdate';
export default function Index({ title = '房屋列表' }) {
const [getParams, setParams] = useState({});
const navigate = useNavigate();
// 注册当前页面为标签页
usePageTabs({
tabKey: 'asset-houses',
tabLabel: title,
});
return (
<MyPageContainer title={title}>
<ProTable
{...MyProTableProps.props}
request={async (params, sort) => {
setParams(params);
return MyProTableProps.request(
params,
sort,
Apis.Asset.AssetHouses.List,
);
}}
toolBarRender={() => [
<MyExport
key="export"
item={getParams}
download={Apis.Asset.AssetHouses}
/>,
]}
columns={[
MyColumns.ID(),
{
title: '项目名称',
dataIndex: ['asset_project', 'name'],
search: {
transform: (value) => {
return { project_name: value };
},
},
},
{
title: '房屋名称',
dataIndex: 'full_name',
},
MyColumns.EnumTag({
title: '用途',
dataIndex: 'usage',
valueEnum: AssetHousesUsageEnum,
}),
{
title: '楼层',
dataIndex: 'floor',
render(_, record) {
return `${record?.floor}`;
},
search: false,
},
{
title: '建筑面积',
dataIndex: 'built_area',
render(_, record) {
return `${
record?.built_area ? record?.built_area + ' m²' : '-'
} `;
},
search: false,
},
{
title: '套内面积',
dataIndex: 'inside_area',
render(_, record) {
return `${
record?.inside_area ? record?.inside_area + ' m²' : '-'
} `;
},
search: false,
},
{
title: '计费面积',
dataIndex: 'chargeable_area',
render(_, record) {
return `${
record?.chargeable_area ? record?.chargeable_area + ' m²' : '-'
} `;
},
search: false,
},
MyColumns.Option({
render: (_, item: any, index, action) => (
<Space key={index}>
<HousesShow item={item} reload={action?.reload} />
<HousesUpdate
item={item}
reload={action?.reload}
title="编辑"
/>
<MyButtons.Delete
onConfirm={() =>
Apis.Asset.AssetHouses.Delete({
id: item.id,
}).then(() => action?.reload())
}
/>
</Space>
),
}),
]}
/>
</MyPageContainer>
);
}

View File

@ -0,0 +1,154 @@
import {
MyColumns,
MyPageContainer,
MyProTableProps,
usePageTabs,
} from '@/common';
import { Apis } from '@/gen/Apis';
import { CustomerOpinionsTypeEnum } from '@/gen/Enums';
import { ProTable } from '@ant-design/pro-components';
import { Image } from 'antd';
export default function Index({ title = '投诉建议' }) {
// 注册当前页面为标签页
usePageTabs({
tabKey: 'customer_opinions',
tabLabel: title,
});
return (
<MyPageContainer
title={title}
enableTabs={true}
tabKey="customer_opinions"
tabLabel={title}
>
<ProTable
{...MyProTableProps.props}
request={async (params, sort) =>
MyProTableProps.request(
params,
sort,
Apis.Customer.CustomerOpinions.List,
)
}
// toolBarRender={(action) => [
// <MyImportModal
// key="ImportHouse"
// title="批量导入"
// type="danger"
// size="middle"
// templateApi={Apis.Bill.HouseBills.DownloadTemplate}
// importApi={Apis.Bill.HouseBills.Import}
// reload={action?.reload}
// />,
// <BillCreate key="Create" reload={action?.reload} title={title} />,
// ]}
columns={[
MyColumns.ID(),
// MyColumns.EnumTag({
// title: '反馈来源',
// dataIndex: 'payment_method',
// valueEnum: HouseOrdersPaymentMethodEnum,
// }),
MyColumns.EnumTag({
title: '反馈类型',
dataIndex: 'type',
valueEnum: CustomerOpinionsTypeEnum,
}),
{
title: '反馈内容',
dataIndex: 'content',
search: false,
},
{
title: '反馈内容',
dataIndex: 'content',
width: 120, // 关键:固定列宽(若父容器过窄,可设 minWidth: 200 优先保证列宽)
render: (text) => (
<div
style={{
width: '100%', // 继承列宽
// height: '60px', // 设置固定高度约显示3行文本
overflow: 'hidden', // 超出隐藏
textOverflow: 'ellipsis', // 省略号
display: '-webkit-box',
WebkitBoxOrient: 'vertical',
WebkitLineClamp: 1, // 显示3行
}}
>
{text}
</div>
),
},
{
title: '附件',
dataIndex: 'images',
search: false,
render: (_, record) => {
if (!Array.isArray(record.images) || record.images.length === 0) {
return '无附件';
}
return (
<div style={{ display: 'flex', flexWrap: 'wrap' }}>
{record.images.map((item: any, index: number) => {
if (item.type && item.type.includes('image')) {
return (
<Image
key={index}
width={40}
height={30}
src={item.url}
style={{
marginRight: 8,
marginBottom: 8,
objectFit: 'cover',
}}
/>
);
} else if (item.type && item.type.includes('video')) {
return (
<video
key={index}
width={40}
height={30}
controls
style={{
marginRight: 8,
marginBottom: 8,
objectFit: 'cover',
}}
src={item.url}
/>
);
}
return null;
})}
</div>
);
},
},
MyColumns.CreatedAt(),
// MyColumns.Option({
// render: (_, item: any, index, action) => (
// <Space key={index}>
// <CustomerOpinionShow
// item={item}
// title="详情"
// reload={action?.reload}
// />
// <MyButtons.Delete
// onConfirm={() =>
// Apis.Common.Admins.Delete({ id: item.id }).then(() =>
// action?.reload(),
// )
// }
// />
// </Space>
// ),
// }),
]}
/>
</MyPageContainer>
);
}

View File

@ -0,0 +1,92 @@
import { MyBetaModalFormProps, renderTextHelper } from '@/common';
import { MyModal } from '@/components/MyModal';
import {
AssetProjectsChargeEnum,
AssetProjectsEntrustTypeEnum,
AssetProjectsPropertyTypeEnum,
AssetProjectsStatusEnum,
} from '@/gen/Enums';
import { ProCard, ProDescriptions } from '@ant-design/pro-components';
import { Space } from 'antd';
export default function AssetInfo(props: MyBetaModalFormProps) {
return (
<MyModal
title={props.title || '查看'}
type={props.item?.type || 'primary'}
width="920px"
node={
<Space direction="vertical" style={{ width: '100%' }}>
<ProCard extra={props.extra}>
<ProDescriptions bordered>
<ProDescriptions.Item label="项目名称" span={2}>
<Space size="large">
<div>
{props?.item?.name}
{props?.item?.alias_name
? `${props?.item?.alias_name}`
: ''}
</div>
</Space>
</ProDescriptions.Item>
<ProDescriptions.Item label="绑定机构">
<Space size="large">
<div>{props?.item?.company?.name}</div>
</Space>
</ProDescriptions.Item>
<ProDescriptions.Item label="项目地址" span={2}>
{props?.item?.province || ''}
{props?.item?.city || ''}
{props?.item?.district || ''}
{props?.item?.address || ''}
</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={AssetProjectsStatusEnum}
value={props?.item?.status}
key="status"
/>
</ProDescriptions.Item>
<ProDescriptions.Item label="委托类型">
<renderTextHelper.Tag
Enums={AssetProjectsEntrustTypeEnum}
value={props?.item?.entrust_type}
key="entrust_type"
/>
</ProDescriptions.Item>
<ProDescriptions.Item label="收费方式">
<renderTextHelper.Tag
Enums={AssetProjectsChargeEnum}
value={props?.item?.charge}
key="charge"
/>
</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?.created_at}
</ProDescriptions.Item> */}
<ProDescriptions.Item label="最近修改">
{props?.item?.updated_at}
</ProDescriptions.Item>
</ProDescriptions>
</ProCard>
</Space>
}
/>
);
}

View File

@ -70,18 +70,20 @@ export default function Update(props: MyBetaModalFormProps) {
{props?.item?.asset_house?.full_name || '-'} {props?.item?.asset_house?.full_name || '-'}
</a> </a>
</ProDescriptions.Item> </ProDescriptions.Item>
{/* <ProDescriptions.Item label="">
<renderTextHelper.Tag
Enums={HouseRegistersHouseStatusEnum}
value={props?.item?.house_status}
/>
</ProDescriptions.Item> */}
<ProDescriptions.Item label="登记类型"> <ProDescriptions.Item label="登记类型">
<renderTextHelper.Tag <renderTextHelper.Tag
Enums={HouseRegistersTypeEnum} Enums={HouseRegistersTypeEnum}
value={props?.item?.type} value={props?.item?.type}
/> />
</ProDescriptions.Item> </ProDescriptions.Item>
<ProDescriptions.Item label="居住关系">
<renderTextHelper.Tag
Enums={HouseOccupantsResidentialRelationEnum}
value={
props?.item?.customer_info?.[0].residential_relation
}
/>
</ProDescriptions.Item>
<ProDescriptions.Item label="申请时间"> <ProDescriptions.Item label="申请时间">
{props?.item?.created_at || '-'} {props?.item?.created_at || '-'}
</ProDescriptions.Item> </ProDescriptions.Item>
@ -100,20 +102,10 @@ export default function Update(props: MyBetaModalFormProps) {
rowKey={(record, index) => record?.id_card || index} rowKey={(record, index) => record?.id_card || index}
size="small" size="small"
columns={[ columns={[
MyColumns.EnumTag({
title: '居住关系',
dataIndex: 'residential_relation',
valueEnum: HouseOccupantsResidentialRelationEnum,
}),
// MyColumns.EnumTag({ // MyColumns.EnumTag({
// title: // title: '居住关系',
// props?.item?.status === 'Rented' // dataIndex: 'residential_relation',
// ? '与主租人关系' // valueEnum: HouseOccupantsResidentialRelationEnum,
// : '与产权人关系',
// // title: '关系说明',
// dataIndex: 'relation_with_owner',
// valueEnum: HouseOccupantsRelationWithOwnerEnum,
// search: false,
// }), // }),
{ {
title: '姓名', title: '姓名',
@ -159,7 +151,62 @@ export default function Update(props: MyBetaModalFormProps) {
/> />
</ProCard> </ProCard>
)} )}
{(props?.item?.type === 'UpdateInfo' ||
props?.item?.type === 'UpdatePhone') && (
<ProCard title="更新信息" size="small">
<ProTable
{...MyProTableProps.props}
search={false}
toolBarRender={false}
pagination={false}
dataSource={[props?.item?.update_info]}
rowKey={(record, index) => record?.id_card || index}
size="small"
columns={[
{
title: '姓名',
dataIndex: 'name',
},
{
title: '手机号',
dataIndex: 'phone',
},
MyColumns.EnumTag({
title: '证件类型',
dataIndex: 'card_type',
valueEnum: HouseOccupantsCardTypeEnum,
}),
{
title: '证件号码',
dataIndex: 'id_card',
},
{
title: '证件资料',
render: (_, item) => {
return (
<Space>
{item?.card_front_image?.[0] && (
<Image
height={30}
src={item?.card_front_image[0]?.url}
placeholder="正面"
/>
)}
{item?.card_back_image?.[0] && (
<Image
height={30}
src={item?.card_back_image[0]?.url}
placeholder="反面"
/>
)}
</Space>
);
},
},
]}
/>
</ProCard>
)}
{props?.item?.type === 'AddOwner' && {props?.item?.type === 'AddOwner' &&
props?.item?.ownership_info && props?.item?.ownership_info &&
props?.item?.ownership_info?.length > 0 && ( props?.item?.ownership_info?.length > 0 && (
@ -170,7 +217,7 @@ export default function Update(props: MyBetaModalFormProps) {
(res: any, index: number) => ( (res: any, index: number) => (
<Image <Image
key={`${res?.name}_${index}`} key={`${res?.name}_${index}`}
height={60} height={30}
src={res?.url || ''} src={res?.url || ''}
placeholder="产证资料" placeholder="产证资料"
/> />