From 4f9f5d36689486cb1390c1781059baca2797f382 Mon Sep 17 00:00:00 2001 From: zsqtony <450952271@qq.com> Date: Tue, 30 Sep 2025 14:30:47 +0800 Subject: [PATCH 1/4] =?UTF-8?q?fix:=E6=9B=B4=E6=96=B0=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E6=8E=A8=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/formFields/MyUploadImages.scss | 5 +- .../moments/list/components/infoPreview.tsx | 70 ++++++++ src/pages/moments/list/components/style.scss | 76 +++++++++ src/pages/moments/list/index.tsx | 81 ++++++++- src/pages/moments/list/modals/Create.tsx | 159 ++++++++++-------- 5 files changed, 311 insertions(+), 80 deletions(-) create mode 100644 src/pages/moments/list/components/infoPreview.tsx create mode 100644 src/pages/moments/list/components/style.scss diff --git a/src/common/components/formFields/MyUploadImages.scss b/src/common/components/formFields/MyUploadImages.scss index ec352be..acd0931 100644 --- a/src/common/components/formFields/MyUploadImages.scss +++ b/src/common/components/formFields/MyUploadImages.scss @@ -6,7 +6,10 @@ gap: 8px !important; align-items: flex-start !important; } - + .ant-upload-list-item-name { + width: 300px; + overflow: hidden; + } .ant-upload-list-item { margin: 0 !important; margin-bottom: 0 !important; diff --git a/src/pages/moments/list/components/infoPreview.tsx b/src/pages/moments/list/components/infoPreview.tsx new file mode 100644 index 0000000..77332bc --- /dev/null +++ b/src/pages/moments/list/components/infoPreview.tsx @@ -0,0 +1,70 @@ +import { MyBetaModalFormProps } from '@/common'; +import { PlayCircleFilled } from '@ant-design/icons'; +import { ProCard } from '@ant-design/pro-components'; +import './style.scss'; +export default function infoPreview(props: MyBetaModalFormProps) { + return ( + <> + {props?.item?.type === 'Image' ? ( +
+
内容预览:朋友圈/图片消息
+ +
+
员工头像
+
+
员工的名字
+
此处显示“发送文案”输入的文案
+
+
+
+
+
+
+
+
+
+
+ ) : props?.item?.type === 'Video' ? ( +
+
内容预览:朋友圈/视频消息
+ +
+
员工头像
+
+
员工的名字
+
此处显示“发送文案”输入的文案
+
+
+
+
+ +
+
+
+
+ ) : props?.item?.type === 'Link' || + props?.item?.type === 'MiniProgram' ? ( +
+
内容预览:朋友圈/转载链接消息
+ +
+
员工头像
+
+
员工的名字
+
此处显示“发送文案”输入的文案
+
+
+
+
封面图
+
+ 此处显示“链接标题”输入的文案,文案字数多时可以换行显示 +
+
+
+
+ ) : ( + <> + )} + + ); +} diff --git a/src/pages/moments/list/components/style.scss b/src/pages/moments/list/components/style.scss new file mode 100644 index 0000000..437de62 --- /dev/null +++ b/src/pages/moments/list/components/style.scss @@ -0,0 +1,76 @@ +.card_info_preview { + background-color: #f8f8f8; + width: 400px; + padding: 15px; + margin-left: 10px; + border-radius: 10px; + .title { + border-left: 3px solid #1890ff; + padding-left: 15px; + margin-bottom: 12px; + } + .preview_header { + display: flex; + align-items: center; + padding-bottom: 15px; + .avatar { + width: 60px; + height: 60px; + background-color: #f8f8f8; + font-size: 17px; + font-weight: 500; + padding: 8px; + text-align: center; + line-height: 20px; + } + .info { + padding-left: 15px; + .name { + font-size: 16px; + font-weight: 500; + } + .desc { + font-size: 12px; + color: #666; + } + } + } + .preview_content { + display: flex; + align-items: center; + justify-content: space-between; + .item { + width: 70px; + height: 70px; + background-color: #f8f8f8; + } + .video_preview { + width: 150px; + height: 150px; + background-color: #f8f8f8; + display: flex; + align-items: center; + justify-content: center; + } + } + .cover_image_preview { + background-color: #f8f8f8; + padding: 10px; + border-radius: 10px; + .cover_image { + width: 70px; + height: 70px; + background-color: #eee; + text-align: center; + line-height: 70px; + font-size: 17px; + font-weight: 500; + } + .cover_info { + flex: 1; + padding-left: 10px; + font-size: 12px; + height: 70px; + } + } +} diff --git a/src/pages/moments/list/index.tsx b/src/pages/moments/list/index.tsx index 84dfae9..50741b9 100644 --- a/src/pages/moments/list/index.tsx +++ b/src/pages/moments/list/index.tsx @@ -6,10 +6,15 @@ import { usePageTabs, } from '@/common'; import { Apis } from '@/gen/Apis'; +import { + CustomerMomentsChannelEnum, + CustomerMomentsContentTypeEnum, + CustomerMomentsPushTypeEnum, + CustomerMomentsTaskEndTypeEnum, +} from '@/gen/Enums'; import { ProTable } from '@ant-design/pro-components'; -import { Space } from 'antd'; +import { Card, Space } from 'antd'; import Create from './modals/Create'; -import Update from './modals/Update'; export default function Index({ title = '推送任务' }) { // 注册当前页面为标签页 @@ -44,21 +49,83 @@ export default function Index({ title = '推送任务' }) { MyColumns.ID(), { title: '名称', - dataIndex: 'name', + dataIndex: 'title', + render: (_, i: any) => { + return ( + + + +
{i?.title}
+
+
+ ); + }, + }, + MyColumns.EnumTag({ + title: '发送渠道', + dataIndex: 'channel', + valueEnum: CustomerMomentsChannelEnum, + }), + MyColumns.EnumTag({ + title: '内容类型', + dataIndex: 'content_type', + valueEnum: CustomerMomentsContentTypeEnum, + }), + MyColumns.EnumTag({ + title: '推送类型', + dataIndex: 'push_type', + valueEnum: CustomerMomentsPushTypeEnum, + }), + { + title: '定时发送时间', + dataIndex: 'scheduled_time', + search: false, + }, + + MyColumns.EnumTag({ + title: '任务结束类型', + dataIndex: 'task_end_type', + valueEnum: CustomerMomentsTaskEndTypeEnum, + search: false, + }), + { + title: '任务结束天数', + dataIndex: 'task_days', + search: false, + }, + { + title: '定时结束', + dataIndex: 'task_end_time', + search: false, }, MyColumns.UpdatedAt(), MyColumns.CreatedAt(), MyColumns.Option({ render: (_, item: any, index, action) => ( - - */} + { + Apis.Customer.CustomerMoments.Send({ + id: item.id, + }).then(() => action?.reload()); + }} + /> + {/* - Apis.Customer.CustomerMomentCategories.Delete({ + Apis.Customer.CustomerMoments.Delete({ id: item.id, }).then(() => action?.reload()) } - /> + /> */} ), }), diff --git a/src/pages/moments/list/modals/Create.tsx b/src/pages/moments/list/modals/Create.tsx index 5e747ae..dfe9a85 100644 --- a/src/pages/moments/list/modals/Create.tsx +++ b/src/pages/moments/list/modals/Create.tsx @@ -18,11 +18,16 @@ import { CustomerMomentsTaskEndTypeEnum, } from '@/gen/Enums'; import { BetaSchemaForm } from '@ant-design/pro-components'; -import { Button, message, Space, Steps } from 'antd'; -import { useState } from 'react'; +import { Button, Form, message, Space, Steps } from 'antd'; +import { useRef, useState } from 'react'; +import MyinfoPreview from '../components/infoPreview'; + export default function Create(props: MyBetaModalFormProps) { const [current, setCurrent] = useState(0); + const [getContentType, setContentType] = useState(''); const [formData, setFormData] = useState({}); + const [form] = Form.useForm(); + const modalRef: any = useRef(null); const steps = [ { title: '创建任务', @@ -52,7 +57,7 @@ export default function Create(props: MyBetaModalFormProps) { title: '推送类型', valueEnum: CustomerMomentsPushTypeEnum, required: true, - colProps: { span: 8 }, + colProps: { span: 9 }, }), { name: ['push_type'], @@ -81,7 +86,7 @@ export default function Create(props: MyBetaModalFormProps) { title: '任务结束类型', valueEnum: CustomerMomentsTaskEndTypeEnum, required: true, - colProps: { span: 8 }, + colProps: { span: 9 }, }), { name: ['task_end_type'], @@ -93,10 +98,11 @@ export default function Create(props: MyBetaModalFormProps) { key: 'task_days', title: '任务结束天数', colProps: { span: 10 }, - valueType: 'number', + valueType: 'digit', formItemProps: { ...rulesHelper.number }, fieldProps: { suffix: '天结束', + style: { width: '200px' }, }, }, ] @@ -168,6 +174,7 @@ export default function Create(props: MyBetaModalFormProps) { name: ['content_type'], valueType: 'dependency', columns: ({ content_type }: any) => { + setContentType(content_type); return content_type === 'MiniProgram' ? [ { @@ -228,76 +235,84 @@ export default function Create(props: MyBetaModalFormProps) { title={`创建${props.title}`} type="primary" size={'middle'} - width="800px" + myRef={modalRef} + width="1200px" node={ - - - {...MyModalFormProps.props} - title={`添加${props.title}`} - wrapperCol={{ span: 24 }} - width="800px" - layoutType="Form" - trigger={} - onFinish={async (values) => { - setFormData(values); - console.log('提交的数据2:', values); - if (current < steps.length - 1) { - handleNext(); - } else { - let data = { ...formData, ...values }; - Apis.Customer.CustomerMoments.Store({ - ...data, - one_moment_categories_id: formData?.moment_categories_ids[0], - two_moment_categories_id: formData?.moment_categories_ids[1], - }) - .then(() => { - props.reload?.(); - message.success(props.title + '成功'); - return true; - }) - .catch(() => false); - } - }} - // onFinish={async (values) => - // Apis.Customer.CustomerMomentCategories.Store(values) - // .then(() => { - // props.reload?.(); - // message.success(props.title + '成功'); - // return true; - // }) - // .catch(() => false) - // } - columns={steps[current].columns} - submitter={{ - render: (props, dom) => { - return ( - - {current > 0 && ( - - )} - {current < steps.length - 1 ? ( - - ) : ( - - )} - - ); - }, - }} - /> + {current > 0 && ( + + )} + {current < steps.length - 1 ? ( + + ) : ( + + )} + + ); + }, + }} + /> + + {current ? : ''} + } /> From 4965586d3f9e1f2344285347ceb753db7ef2985f Mon Sep 17 00:00:00 2001 From: uiuJun <> Date: Wed, 1 Oct 2025 15:38:37 +0800 Subject: [PATCH 2/4] =?UTF-8?q?feat=EF=BC=9A=E4=BB=AA=E8=A1=A8=E6=9B=B4?= =?UTF-8?q?=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .umirc.ts | 4 +- src/common/utils/rulesHelper.ts | 11 + src/gen/Enums.ts | 931 +++++++++++------- src/pages/archive/modals/Delivery.tsx | 12 +- .../archive/table/modals/AddOccupant.tsx | 32 +- src/pages/archive/table/modals/Transfer.tsx | 4 +- src/pages/asset/list/index.tsx | 10 + src/pages/common/positions/index.tsx | 73 ++ src/pages/common/positions/modals/Create.tsx | 51 + src/pages/common/positions/modals/Update.tsx | 62 ++ src/pages/company/list/table/Positions.tsx | 7 + .../company/positions/modals/PositionAdd.tsx | 135 +++ .../positions/modals/PositionCreate.tsx | 2 +- src/pages/{mete => meter}/list/index.tsx | 27 +- .../list/modals/MeterCreate.tsx | 57 +- .../list/modals/MeterHasHouse.tsx | 1 + .../list/modals/MeterHasOne.tsx | 2 +- .../list/modals/MeterUpdate.tsx | 0 .../meter/readings/components/MeteInfo.tsx | 60 ++ src/pages/{mete => meter}/readings/index.tsx | 34 +- .../meter/readings/modals/CorrectReading.tsx | 210 ++++ .../readings/modals/NormalReading.tsx | 68 +- .../meter/readings/modals/ResetReading.tsx | 220 +++++ src/pages/meter/readings/show/$id.tsx | 71 ++ src/pages/meter/readings/table/HasHouse.tsx | 103 ++ .../meter/readings/table/ReadingLIst.tsx | 91 ++ src/pages/{mete => meter}/tasks/index.tsx | 0 .../tasks/modals/TaskCreate.tsx | 0 .../{mete => meter}/tasks/modals/TaskShow.tsx | 0 29 files changed, 1853 insertions(+), 425 deletions(-) create mode 100644 src/pages/common/positions/index.tsx create mode 100644 src/pages/common/positions/modals/Create.tsx create mode 100644 src/pages/common/positions/modals/Update.tsx create mode 100644 src/pages/company/positions/modals/PositionAdd.tsx rename src/pages/{mete => meter}/list/index.tsx (81%) rename src/pages/{mete => meter}/list/modals/MeterCreate.tsx (63%) rename src/pages/{mete => meter}/list/modals/MeterHasHouse.tsx (99%) rename src/pages/{mete => meter}/list/modals/MeterHasOne.tsx (99%) rename src/pages/{mete => meter}/list/modals/MeterUpdate.tsx (100%) create mode 100644 src/pages/meter/readings/components/MeteInfo.tsx rename src/pages/{mete => meter}/readings/index.tsx (83%) create mode 100644 src/pages/meter/readings/modals/CorrectReading.tsx rename src/pages/{mete => meter}/readings/modals/NormalReading.tsx (65%) create mode 100644 src/pages/meter/readings/modals/ResetReading.tsx create mode 100644 src/pages/meter/readings/show/$id.tsx create mode 100644 src/pages/meter/readings/table/HasHouse.tsx create mode 100644 src/pages/meter/readings/table/ReadingLIst.tsx rename src/pages/{mete => meter}/tasks/index.tsx (100%) rename src/pages/{mete => meter}/tasks/modals/TaskCreate.tsx (100%) rename src/pages/{mete => meter}/tasks/modals/TaskShow.tsx (100%) diff --git a/.umirc.ts b/.umirc.ts index 28f6911..6fb83c0 100644 --- a/.umirc.ts +++ b/.umirc.ts @@ -15,8 +15,8 @@ export default defineConfig({ proxy: { '/api/': { // target: 'http://yt:8003', - target: 'http://10.39.13.78:8001/', - // target: 'https://test-admin.linyikj.com.cn/', + // target: 'http://10.39.13.78:8001/', + target: 'https://test-admin.linyikj.com.cn/', // target: 'https://admin.linyikj.com.cn/', // target: 'http://cd69cef8.natappfree.cc/', diff --git a/src/common/utils/rulesHelper.ts b/src/common/utils/rulesHelper.ts index c407cf4..37fa840 100644 --- a/src/common/utils/rulesHelper.ts +++ b/src/common/utils/rulesHelper.ts @@ -151,4 +151,15 @@ export const rulesHelper = { return undefined; } }, + getDifference(startNum: number, endNum: number) { + //获取2 个数据之间的差值 单位:天 + if (startNum && endNum) { + const start = startNum; + const end = endNum; + const diffDays = end - start; + return diffDays; + } else { + return undefined; + } + }, }; diff --git a/src/gen/Enums.ts b/src/gen/Enums.ts index 1a7d72a..a1ec500 100644 --- a/src/gen/Enums.ts +++ b/src/gen/Enums.ts @@ -1,624 +1,803 @@ // ActivitiesPublishStatusEnum -export const ActivitiesPublishStatusEnum= { - 'Unpublished': {"text":"未发布","color":"#9e9e9e","value":"Unpublished"}, - 'Published': {"text":"已发布","color":"#00c853","value":"Published"}, - 'Unlisted': {"text":"已下架","color":"#d32f2f","value":"Unlisted"}, +export const ActivitiesPublishStatusEnum = { + Unpublished: { text: '未发布', color: '#9e9e9e', value: 'Unpublished' }, + Published: { text: '已发布', color: '#00c853', value: 'Published' }, + Unlisted: { text: '已下架', color: '#d32f2f', value: 'Unlisted' }, }; // ActivitiesPublishTypeEnum -export const ActivitiesPublishTypeEnum= { - 'Manual': {"text":"手动","color":"#4caf50","value":"Manual"}, - 'Schedule': {"text":"定时","color":"#2196f3","value":"Schedule"}, +export const ActivitiesPublishTypeEnum = { + Manual: { text: '手动', color: '#4caf50', value: 'Manual' }, + Schedule: { text: '定时', color: '#2196f3', value: 'Schedule' }, }; // ActivitiesStatusEnum -export const ActivitiesStatusEnum= { - 'NotStarted': {"text":"未开始","color":"#9e9e9e","value":"NotStarted"}, - 'InProgress': {"text":"进行中","color":"#00c853","value":"InProgress"}, - 'Finished': {"text":"已结束","color":"#d32f2f","value":"Finished"}, +export const ActivitiesStatusEnum = { + NotStarted: { text: '未开始', color: '#9e9e9e', value: 'NotStarted' }, + InProgress: { text: '进行中', color: '#00c853', value: 'InProgress' }, + Finished: { text: '已结束', color: '#d32f2f', value: 'Finished' }, }; // ActivityEnrollsStatusEnum -export const ActivityEnrollsStatusEnum= { - 'PendingReview': {"text":"待审核","color":"#2196f3","value":"PendingReview"}, - 'Success': {"text":"成功","color":"#00c853","value":"Success"}, - 'Failed': {"text":"失败","color":"#d32f2f","value":"Failed"}, - 'Cancelled': {"text":"取消","color":"#ff9800","value":"Cancelled"}, +export const ActivityEnrollsStatusEnum = { + PendingReview: { text: '待审核', color: '#2196f3', value: 'PendingReview' }, + Success: { text: '成功', color: '#00c853', value: 'Success' }, + Failed: { text: '失败', color: '#d32f2f', value: 'Failed' }, + Cancelled: { text: '取消', color: '#ff9800', value: 'Cancelled' }, }; // AssetHousesOrientationEnum -export const AssetHousesOrientationEnum= { - 'East': {"text":"东","color":"#007bff","value":"East"}, - 'South': {"text":"南","color":"#28a745","value":"South"}, - 'West': {"text":"西","color":"#ffc107","value":"West"}, - 'North': {"text":"北","color":"#dc3545","value":"North"}, - 'Southeast': {"text":"东南","color":"#20c997","value":"Southeast"}, - 'Northeast': {"text":"东北","color":"#6f42c1","value":"Northeast"}, - 'Southwest': {"text":"西南","color":"#fd7e14","value":"Southwest"}, - 'Northwest': {"text":"西北","color":"#17a2b8","value":"Northwest"}, - 'EastWest': {"text":"东西","color":"#6610f2","value":"EastWest"}, - 'SouthNorth': {"text":"南北","color":"#e83e8c","value":"SouthNorth"}, +export const AssetHousesOrientationEnum = { + East: { text: '东', color: '#007bff', value: 'East' }, + South: { text: '南', color: '#28a745', value: 'South' }, + West: { text: '西', color: '#ffc107', value: 'West' }, + North: { text: '北', color: '#dc3545', value: 'North' }, + Southeast: { text: '东南', color: '#20c997', value: 'Southeast' }, + Northeast: { text: '东北', color: '#6f42c1', value: 'Northeast' }, + Southwest: { text: '西南', color: '#fd7e14', value: 'Southwest' }, + Northwest: { text: '西北', color: '#17a2b8', value: 'Northwest' }, + EastWest: { text: '东西', color: '#6610f2', value: 'EastWest' }, + SouthNorth: { text: '南北', color: '#e83e8c', value: 'SouthNorth' }, }; // AssetHousesOwnershipTypeEnum -export const AssetHousesOwnershipTypeEnum= { - 'CommodityHousing': {"text":"商品房","color":"#007bff","value":"CommodityHousing"}, - 'FundedHousing': {"text":"集资房","color":"#28a745","value":"FundedHousing"}, - 'MilitaryHousing': {"text":"军产房","color":"#17a2b8","value":"MilitaryHousing"}, - 'AffordableHousing': {"text":"保障房","color":"#ffc107","value":"AffordableHousing"}, - 'RuralHousing': {"text":"农民房","color":"#6f42c1","value":"RuralHousing"}, - 'CommercialOffice': {"text":"商业写字楼","color":"#fd7e14","value":"CommercialOffice"}, - 'CommercialComplex': {"text":"商业综合体","color":"#dc3545","value":"CommercialComplex"}, - 'ResettlementHousing': {"text":"回迁房","color":"#20c997","value":"ResettlementHousing"}, +export const AssetHousesOwnershipTypeEnum = { + CommodityHousing: { + text: '商品房', + color: '#007bff', + value: 'CommodityHousing', + }, + FundedHousing: { text: '集资房', color: '#28a745', value: 'FundedHousing' }, + MilitaryHousing: { + text: '军产房', + color: '#17a2b8', + value: 'MilitaryHousing', + }, + AffordableHousing: { + text: '保障房', + color: '#ffc107', + value: 'AffordableHousing', + }, + RuralHousing: { text: '农民房', color: '#6f42c1', value: 'RuralHousing' }, + CommercialOffice: { + text: '商业写字楼', + color: '#fd7e14', + value: 'CommercialOffice', + }, + CommercialComplex: { + text: '商业综合体', + color: '#dc3545', + value: 'CommercialComplex', + }, + ResettlementHousing: { + text: '回迁房', + color: '#20c997', + value: 'ResettlementHousing', + }, }; // AssetHousesPropertyOwnershipEnum -export const AssetHousesPropertyOwnershipEnum= { - 'Individual': {"text":"个人","color":"#2db7f5","value":"Individual"}, - 'Enterprise': {"text":"企业","color":"#87d068","value":"Enterprise"}, - 'Developer': {"text":"开发商","color":"#fa8c16","value":"Developer"}, - 'Government': {"text":"政府","color":"#f5222d","value":"Government"}, +export const AssetHousesPropertyOwnershipEnum = { + Individual: { text: '个人', color: '#2db7f5', value: 'Individual' }, + Enterprise: { text: '企业', color: '#87d068', value: 'Enterprise' }, + Developer: { text: '开发商', color: '#fa8c16', value: 'Developer' }, + Government: { text: '政府', color: '#f5222d', value: 'Government' }, }; // AssetHousesStatusEnum -export const AssetHousesStatusEnum= { - 'Unsold': {"text":"未售","color":"#6c757d","value":"Unsold"}, - 'SoldNotDelivered': {"text":"已售未交房","color":"#ffc107","value":"SoldNotDelivered"}, - 'SelfOccupied': {"text":"自住","color":"#28a745","value":"SelfOccupied"}, - 'Rented': {"text":"出租","color":"#007bff","value":"Rented"}, - 'Vacant': {"text":"空置","color":"#dc3545","value":"Vacant"}, +export const AssetHousesStatusEnum = { + Unsold: { text: '未售', color: '#6c757d', value: 'Unsold' }, + SoldNotDelivered: { + text: '已售未交房', + color: '#ffc107', + value: 'SoldNotDelivered', + }, + SelfOccupied: { text: '自住', color: '#28a745', value: 'SelfOccupied' }, + Rented: { text: '出租', color: '#007bff', value: 'Rented' }, + Vacant: { text: '空置', color: '#dc3545', value: 'Vacant' }, }; // AssetHousesUsageEnum -export const AssetHousesUsageEnum= { - 'Residence': {"text":"住宅","color":"#007bff","value":"Residence"}, - 'Apartment': {"text":"公寓","color":"#28a745","value":"Apartment"}, - 'Villa': {"text":"别墅","color":"#17a2b8","value":"Villa"}, - 'Shop': {"text":"商铺","color":"#ffc107","value":"Shop"}, - 'ParkingSpace': {"text":"车位","color":"#6c757d","value":"ParkingSpace"}, - 'Office': {"text":"写字楼","color":"#6610f2","value":"Office"}, - 'Clubhouse': {"text":"会所","color":"#fd7e14","value":"Clubhouse"}, - 'PropertyRoom': {"text":"物业用房","color":"#dc3545","value":"PropertyRoom"}, +export const AssetHousesUsageEnum = { + Residence: { text: '住宅', color: '#007bff', value: 'Residence' }, + Apartment: { text: '公寓', color: '#28a745', value: 'Apartment' }, + Villa: { text: '别墅', color: '#17a2b8', value: 'Villa' }, + Shop: { text: '商铺', color: '#ffc107', value: 'Shop' }, + ParkingSpace: { text: '车位', color: '#6c757d', value: 'ParkingSpace' }, + Office: { text: '写字楼', color: '#6610f2', value: 'Office' }, + Clubhouse: { text: '会所', color: '#fd7e14', value: 'Clubhouse' }, + PropertyRoom: { text: '物业用房', color: '#dc3545', value: 'PropertyRoom' }, }; // AssetProjectsChargeEnum -export const AssetProjectsChargeEnum= { - 'Contract': {"text":"包干制","color":"#007bff","value":"Contract"}, - 'Commission': {"text":"酬金制","color":"#28a745","value":"Commission"}, +export const AssetProjectsChargeEnum = { + Contract: { text: '包干制', color: '#007bff', value: 'Contract' }, + Commission: { text: '酬金制', color: '#28a745', value: 'Commission' }, }; // AssetProjectsEntrustTypeEnum -export const AssetProjectsEntrustTypeEnum= { - 'DeveloperJointEntrust': {"text":"开发商全委","color":"#007bff","value":"DeveloperJointEntrust"}, - 'OwnersFullEntrust': {"text":"业委会全委","color":"#28a745","value":"OwnersFullEntrust"}, - 'GovernmentFullEntrust': {"text":"政府类全委","color":"#ffc107","value":"GovernmentFullEntrust"}, +export const AssetProjectsEntrustTypeEnum = { + DeveloperJointEntrust: { + text: '开发商全委', + color: '#007bff', + value: 'DeveloperJointEntrust', + }, + OwnersFullEntrust: { + text: '业委会全委', + color: '#28a745', + value: 'OwnersFullEntrust', + }, + GovernmentFullEntrust: { + text: '政府类全委', + color: '#ffc107', + value: 'GovernmentFullEntrust', + }, }; // AssetProjectsPropertyTypeEnum -export const AssetProjectsPropertyTypeEnum= { - 'Residence': {"text":"住宅","color":"#ff0000","value":"Residence"}, - 'Commercial': {"text":"商业","color":"#ff6600","value":"Commercial"}, - 'Office': {"text":"办公","color":"#ffcc00","value":"Office"}, - 'IndustrialPark': {"text":"产业园","color":"#00cc66","value":"IndustrialPark"}, - 'Complex': {"text":"综合体","color":"#0099ff","value":"Complex"}, - 'Municipal': {"text":"市政设施","color":"#6633cc","value":"Municipal"}, - 'Venue': {"text":"场馆","color":"#9966ff","value":"Venue"}, - 'Education': {"text":"教育","color":"#339999","value":"Education"}, - 'Medical': {"text":"医疗","color":"#cc3366","value":"Medical"}, +export const AssetProjectsPropertyTypeEnum = { + Residence: { text: '住宅', color: '#ff0000', value: 'Residence' }, + Commercial: { text: '商业', color: '#ff6600', value: 'Commercial' }, + Office: { text: '办公', color: '#ffcc00', value: 'Office' }, + IndustrialPark: { text: '产业园', color: '#00cc66', value: 'IndustrialPark' }, + Complex: { text: '综合体', color: '#0099ff', value: 'Complex' }, + Municipal: { text: '市政设施', color: '#6633cc', value: 'Municipal' }, + Venue: { text: '场馆', color: '#9966ff', value: 'Venue' }, + Education: { text: '教育', color: '#339999', value: 'Education' }, + Medical: { text: '医疗', color: '#cc3366', value: 'Medical' }, }; // AssetProjectsStatusEnum -export const AssetProjectsStatusEnum= { - 'SignedNotDelivered': {"text":"签约未交付","color":"#6c757d","value":"SignedNotDelivered"}, - 'RollingDevelopment': {"text":"滚动开发","color":"#007bff","value":"RollingDevelopment"}, - 'ManagedAndClosed': {"text":"在管封园","color":"#ffc107","value":"ManagedAndClosed"}, - 'Exited': {"text":"退出","color":"#dc3545","value":"Exited"}, +export const AssetProjectsStatusEnum = { + SignedNotDelivered: { + text: '签约未交付', + color: '#6c757d', + value: 'SignedNotDelivered', + }, + RollingDevelopment: { + text: '滚动开发', + color: '#007bff', + value: 'RollingDevelopment', + }, + ManagedAndClosed: { + text: '在管封园', + color: '#ffc107', + value: 'ManagedAndClosed', + }, + Exited: { text: '退出', color: '#dc3545', value: 'Exited' }, }; // AssetUnitsBuildingStructureEnum -export const AssetUnitsBuildingStructureEnum= { - 'SteelConcrete': {"text":"钢混","color":"#007bff","value":"SteelConcrete"}, - 'SteelStructure': {"text":"钢结构","color":"#28a745","value":"SteelStructure"}, - 'BrickConcrete': {"text":"砖混","color":"#ffc107","value":"BrickConcrete"}, - 'BrickWood': {"text":"砖木","color":"#dc3545","value":"BrickWood"}, +export const AssetUnitsBuildingStructureEnum = { + SteelConcrete: { text: '钢混', color: '#007bff', value: 'SteelConcrete' }, + SteelStructure: { text: '钢结构', color: '#28a745', value: 'SteelStructure' }, + BrickConcrete: { text: '砖混', color: '#ffc107', value: 'BrickConcrete' }, + BrickWood: { text: '砖木', color: '#dc3545', value: 'BrickWood' }, }; // AssetUnitsBuildingTypeEnum -export const AssetUnitsBuildingTypeEnum= { - 'SlabAndTower': {"text":"板塔结合","color":"#007bff","value":"SlabAndTower"}, - 'Slab': {"text":"板楼","color":"#28a745","value":"Slab"}, - 'Tower': {"text":"塔楼","color":"#ffc107","value":"Tower"}, +export const AssetUnitsBuildingTypeEnum = { + SlabAndTower: { text: '板塔结合', color: '#007bff', value: 'SlabAndTower' }, + Slab: { text: '板楼', color: '#28a745', value: 'Slab' }, + Tower: { text: '塔楼', color: '#ffc107', value: 'Tower' }, }; // BannerSpacesTypeEnum -export const BannerSpacesTypeEnum= { - 'Popup': {"text":"弹窗","color":"#ff0000","value":"Popup"}, - 'Banner': {"text":"横幅广告","color":"#00ff00","value":"Banner"}, - 'FloatingButton': {"text":"悬浮按钮","color":"#0000ff","value":"FloatingButton"}, +export const BannerSpacesTypeEnum = { + Popup: { text: '弹窗', color: '#ff0000', value: 'Popup' }, + Banner: { text: '横幅广告', color: '#00ff00', value: 'Banner' }, + FloatingButton: { + text: '悬浮按钮', + color: '#0000ff', + value: 'FloatingButton', + }, }; // BannersRedirectTypeEnum -export const BannersRedirectTypeEnum= { - 'InnerPage': {"text":"跳内页","color":"#ff0000","value":"InnerPage"}, - 'H5': {"text":"跳H5","color":"#00ff00","value":"H5"}, - 'MiniProgramHome': {"text":"跳小程序首屏","color":"#0000ff","value":"MiniProgramHome"}, - 'AnotherMiniProgram': {"text":"跳另一个小程序","color":"#ffa500","value":"AnotherMiniProgram"}, +export const BannersRedirectTypeEnum = { + InnerPage: { text: '跳内页', color: '#ff0000', value: 'InnerPage' }, + H5: { text: '跳H5', color: '#00ff00', value: 'H5' }, + MiniProgramHome: { + text: '跳小程序首屏', + color: '#0000ff', + value: 'MiniProgramHome', + }, + AnotherMiniProgram: { + text: '跳另一个小程序', + color: '#ffa500', + value: 'AnotherMiniProgram', + }, }; // BannersTypeEnum -export const BannersTypeEnum= { - 'Image': {"text":"图片","color":"#ff0000","value":"Image"}, - 'Video': {"text":"视频","color":"#00ff00","value":"Video"}, - 'Text': {"text":"文本","color":"#0000ff","value":"Text"}, +export const BannersTypeEnum = { + Image: { text: '图片', color: '#ff0000', value: 'Image' }, + Video: { text: '视频', color: '#00ff00', value: 'Video' }, + Text: { text: '文本', color: '#0000ff', value: 'Text' }, }; // 缓存类型 -export const CacheTypeEnum= { - 'MobilePhoneVerificationCode': {"text":"手机验证码","color":"#e3da02","value":"MobilePhoneVerificationCode"}, +export const CacheTypeEnum = { + MobilePhoneVerificationCode: { + text: '手机验证码', + color: '#e3da02', + value: 'MobilePhoneVerificationCode', + }, }; // CompaniesMerchantTypeEnum -export const CompaniesMerchantTypeEnum= { - 'PropertyManagement': {"text":"物业公司","color":"#007bff","value":"PropertyManagement"}, - 'ServiceProvider': {"text":"服务商","color":"#28a745","value":"ServiceProvider"}, +export const CompaniesMerchantTypeEnum = { + PropertyManagement: { + text: '物业公司', + color: '#007bff', + value: 'PropertyManagement', + }, + ServiceProvider: { + text: '服务商', + color: '#28a745', + value: 'ServiceProvider', + }, }; // CompanyAppsAppTypeEnum -export const CompanyAppsAppTypeEnum= { - 'MiniProgram': {"text":"微信小程序","color":"#3b82f6","value":"MiniProgram"}, - 'MpOfficial': {"text":"微信公众号","color":"#22c55e","value":"MpOfficial"}, - 'WorkWechat': {"text":"企业微信","color":"#6366f1","value":"WorkWechat"}, +export const CompanyAppsAppTypeEnum = { + MiniProgram: { text: '微信小程序', color: '#3b82f6', value: 'MiniProgram' }, + MpOfficial: { text: '微信公众号', color: '#22c55e', value: 'MpOfficial' }, + WorkWechat: { text: '企业微信', color: '#6366f1', value: 'WorkWechat' }, }; // CompanyAppsModuleEnum -export const CompanyAppsModuleEnum= { - 'Employee': {"text":"员工端","color":"#3b82f6","value":"Employee"}, - 'Customer': {"text":"客户端","color":"#10b981","value":"Customer"}, +export const CompanyAppsModuleEnum = { + Employee: { text: '员工端', color: '#3b82f6', value: 'Employee' }, + Customer: { text: '客户端', color: '#10b981', value: 'Customer' }, }; // CompanyAppsWorkTypeEnum -export const CompanyAppsWorkTypeEnum= { - 'WorkWechatApp': {"text":"企微应用","color":"#00c853","value":"WorkWechatApp"}, - 'WorkWechat': {"text":"企微","color":"#0091ea","value":"WorkWechat"}, +export const CompanyAppsWorkTypeEnum = { + WorkWechatApp: { text: '企微应用', color: '#00c853', value: 'WorkWechatApp' }, + WorkWechat: { text: '企微', color: '#0091ea', value: 'WorkWechat' }, }; // CompanyEmployeeBacklogsStatusEnum -export const CompanyEmployeeBacklogsStatusEnum= { - 'Pending': {"text":"待办","color":"#FF6600","value":"Pending"}, - 'Completed': {"text":"已办","color":"#2A82E4","value":"Completed"}, +export const CompanyEmployeeBacklogsStatusEnum = { + Pending: { text: '待办', color: '#FF6600', value: 'Pending' }, + Completed: { text: '已办', color: '#2A82E4', value: 'Completed' }, }; // CompanyEmployeeBacklogsTypeEnum -export const CompanyEmployeeBacklogsTypeEnum= { - 'WorkOrder': {"text":"工单","color":"#FF6600","value":"WorkOrder"}, - 'Contract': {"text":"合同","color":"#2A82E4","value":"Contract"}, +export const CompanyEmployeeBacklogsTypeEnum = { + WorkOrder: { text: '工单', color: '#FF6600', value: 'WorkOrder' }, + Contract: { text: '合同', color: '#2A82E4', value: 'Contract' }, }; // CompanyReceiptAccountsPayChannelEnum -export const CompanyReceiptAccountsPayChannelEnum= { - 'WeChat': {"text":"微信","color":"#07c160","value":"WeChat"}, - 'Alipay': {"text":"支付宝","color":"#1677ff","value":"Alipay"}, - 'BankTransfer': {"text":"银行转账","color":"#6c757d","value":"BankTransfer"}, - 'TongLian': {"text":"通联支付","color":"#ff9f0a","value":"TongLian"}, +export const CompanyReceiptAccountsPayChannelEnum = { + WeChat: { text: '微信', color: '#07c160', value: 'WeChat' }, + Alipay: { text: '支付宝', color: '#1677ff', value: 'Alipay' }, + BankTransfer: { text: '银行转账', color: '#6c757d', value: 'BankTransfer' }, + TongLian: { text: '通联支付', color: '#ff9f0a', value: 'TongLian' }, }; // ConvenienceServicesTypeEnum -export const ConvenienceServicesTypeEnum= { - 'EmergencyRepair': {"text":"紧急抢修","color":"#ef4444","value":"EmergencyRepair"}, - 'LifeService': {"text":"生活服务","color":"#3b82f6","value":"LifeService"}, - 'GovernmentConsulting': {"text":"政务咨询","color":"#10b981","value":"GovernmentConsulting"}, - 'PropertyExclusive': {"text":"物业专属","color":"#8b5cf6","value":"PropertyExclusive"}, +export const ConvenienceServicesTypeEnum = { + EmergencyRepair: { + text: '紧急抢修', + color: '#ef4444', + value: 'EmergencyRepair', + }, + LifeService: { text: '生活服务', color: '#3b82f6', value: 'LifeService' }, + GovernmentConsulting: { + text: '政务咨询', + color: '#10b981', + value: 'GovernmentConsulting', + }, + PropertyExclusive: { + text: '物业专属', + color: '#8b5cf6', + value: 'PropertyExclusive', + }, }; // CustomerBacklogsStatusEnum -export const CustomerBacklogsStatusEnum= { - 'Pending': {"text":"待办","color":"#faad14","value":"Pending"}, - 'Completed': {"text":"已办","color":"#2A82E4","value":"Completed"}, +export const CustomerBacklogsStatusEnum = { + Pending: { text: '待办', color: '#faad14', value: 'Pending' }, + Completed: { text: '已办', color: '#2A82E4', value: 'Completed' }, }; // CustomerBacklogsTypeEnum -export const CustomerBacklogsTypeEnum= { - 'RegisterApply': {"text":"登记申请","color":"#2db7f5","value":"RegisterApply"}, - 'PaymentPending': {"text":"费用待缴","color":"#faad14","value":"PaymentPending"}, - 'ContractTodo': {"text":"合同待办","color":"#722ed1","value":"ContractTodo"}, +export const CustomerBacklogsTypeEnum = { + RegisterApply: { text: '登记申请', color: '#2db7f5', value: 'RegisterApply' }, + PaymentPending: { + text: '费用待缴', + color: '#faad14', + value: 'PaymentPending', + }, + ContractTodo: { text: '合同待办', color: '#722ed1', value: 'ContractTodo' }, }; // CustomerMomentTasksStatusEnum -export const CustomerMomentTasksStatusEnum= { - 'NotSent': {"text":"未发","color":"#FF4500","value":"NotSent"}, - 'Sent': {"text":"已发","color":"#32CD32","value":"Sent"}, +export const CustomerMomentTasksStatusEnum = { + NotSent: { text: '未发', color: '#FF4500', value: 'NotSent' }, + Sent: { text: '已发', color: '#32CD32', value: 'Sent' }, }; // CustomerMomentsChannelEnum -export const CustomerMomentsChannelEnum= { - 'MomentCorp': {"text":"朋友圈(企业)","color":"#1E90FF","value":"MomentCorp"}, - 'CustomerDirectCorp': {"text":"客户1对1消息群发(企业)","color":"#FFA500","value":"CustomerDirectCorp"}, - 'CustomerGroupCorp': {"text":"客户群群发(企业)","color":"#FF69B4","value":"CustomerGroupCorp"}, +export const CustomerMomentsChannelEnum = { + MomentCorp: { text: '朋友圈(企业)', color: '#1E90FF', value: 'MomentCorp' }, + CustomerDirectCorp: { + text: '客户1对1消息群发(企业)', + color: '#FFA500', + value: 'CustomerDirectCorp', + }, + CustomerGroupCorp: { + text: '客户群群发(企业)', + color: '#FF69B4', + value: 'CustomerGroupCorp', + }, }; // CustomerMomentsContentTypeEnum -export const CustomerMomentsContentTypeEnum= { - 'Image': {"text":"图片消息","color":"#1E90FF","value":"Image"}, - 'Link': {"text":"转载链接消息","color":"#32CD32","value":"Link"}, - 'MiniProgram': {"text":"跳小程序","color":"#FFA500","value":"MiniProgram"}, - 'Video': {"text":"视频消息","color":"#FF69B4","value":"Video"}, +export const CustomerMomentsContentTypeEnum = { + Image: { text: '图片消息', color: '#1E90FF', value: 'Image' }, + Link: { text: '转载链接消息', color: '#32CD32', value: 'Link' }, + MiniProgram: { text: '跳小程序', color: '#FFA500', value: 'MiniProgram' }, + Video: { text: '视频消息', color: '#FF69B4', value: 'Video' }, }; // CustomerMomentsPushStatusEnum -export const CustomerMomentsPushStatusEnum= { - 'NotPushed': {"text":"未推送","color":"#FF4500","value":"NotPushed"}, - 'Pushed': {"text":"已推送","color":"#32CD32","value":"Pushed"}, +export const CustomerMomentsPushStatusEnum = { + NotPushed: { text: '未推送', color: '#FF4500', value: 'NotPushed' }, + Pushed: { text: '已推送', color: '#32CD32', value: 'Pushed' }, }; // CustomerMomentsPushTypeEnum -export const CustomerMomentsPushTypeEnum= { - 'ManualPush': {"text":"手动推送","color":"#1E90FF","value":"ManualPush"}, - 'ScheduledPush': {"text":"定时推送","color":"#32CD32","value":"ScheduledPush"}, +export const CustomerMomentsPushTypeEnum = { + ManualPush: { text: '手动推送', color: '#1E90FF', value: 'ManualPush' }, + ScheduledPush: { text: '定时推送', color: '#32CD32', value: 'ScheduledPush' }, }; // CustomerMomentsRangeTypeEnum -export const CustomerMomentsRangeTypeEnum= { - 'Project': {"text":"按项目推送","color":"#1E90FF","value":"Project"}, +export const CustomerMomentsRangeTypeEnum = { + Project: { text: '按项目推送', color: '#1E90FF', value: 'Project' }, }; // CustomerMomentsSkipTypeEnum -export const CustomerMomentsSkipTypeEnum= { - 'H5': {"text":"H5","color":"#1E90FF","value":"H5"}, +export const CustomerMomentsSkipTypeEnum = { + H5: { text: 'H5', color: '#1E90FF', value: 'H5' }, }; // CustomerMomentsTaskEndTypeEnum -export const CustomerMomentsTaskEndTypeEnum= { - 'AfterNDays': {"text":"发送后N天","color":"#1E90FF","value":"AfterNDays"}, - 'ScheduledEnd': {"text":"定时结束","color":"#32CD32","value":"ScheduledEnd"}, +export const CustomerMomentsTaskEndTypeEnum = { + AfterNDays: { text: '发送后N天', color: '#1E90FF', value: 'AfterNDays' }, + ScheduledEnd: { text: '定时结束', color: '#32CD32', value: 'ScheduledEnd' }, }; // CustomerOpinionsTypeEnum -export const CustomerOpinionsTypeEnum= { - 'FeatureException': {"text":"功能异常","color":"#ff0000","value":"FeatureException"}, - 'FeatureSuggestion': {"text":"新功能建议","color":"#00bfff","value":"FeatureSuggestion"}, +export const CustomerOpinionsTypeEnum = { + FeatureException: { + text: '功能异常', + color: '#ff0000', + value: 'FeatureException', + }, + FeatureSuggestion: { + text: '新功能建议', + color: '#00bfff', + value: 'FeatureSuggestion', + }, }; // 账单状态枚举 -export const HouseBillsBillStatusEnum= { - 'PendingPayment': {"text":"待支付","color":"#facc15","value":"PendingPayment"}, - 'PartiallyPaid': {"text":"部分支付","color":"#60a5fa","value":"PartiallyPaid"}, - 'Paid': {"text":"已支付","color":"#10b981","value":"Paid"}, - 'Overdue': {"text":"已逾期","color":"#ef4444","value":"Overdue"}, - 'Cancelled': {"text":"已取消","color":"#9ca3af","value":"Cancelled"}, +export const HouseBillsBillStatusEnum = { + PendingPayment: { text: '待支付', color: '#facc15', value: 'PendingPayment' }, + PartiallyPaid: { text: '部分支付', color: '#60a5fa', value: 'PartiallyPaid' }, + Paid: { text: '已支付', color: '#10b981', value: 'Paid' }, + Overdue: { text: '已逾期', color: '#ef4444', value: 'Overdue' }, + Cancelled: { text: '已取消', color: '#9ca3af', value: 'Cancelled' }, }; // 房屋账单类型枚举 -export const HouseBillsTypeEnum= { - 'PropertyFee': {"text":"物业费","color":"#3b82f6","value":"PropertyFee"}, - 'MaintenanceFund': {"text":"维修基金","color":"#10b981","value":"MaintenanceFund"}, - 'WaterFee': {"text":"水费","color":"#06b6d4","value":"WaterFee"}, - 'ElectricityFee': {"text":"电费","color":"#f59e0b","value":"ElectricityFee"}, - 'SharedWaterFee': {"text":"公摊水费","color":"#8b5cf6","value":"SharedWaterFee"}, - 'SharedElectricityFee': {"text":"公摊电费","color":"#ec4899","value":"SharedElectricityFee"}, +export const HouseBillsTypeEnum = { + PropertyFee: { text: '物业费', color: '#3b82f6', value: 'PropertyFee' }, + MaintenanceFund: { + text: '维修基金', + color: '#10b981', + value: 'MaintenanceFund', + }, + WaterFee: { text: '水费', color: '#06b6d4', value: 'WaterFee' }, + ElectricityFee: { text: '电费', color: '#f59e0b', value: 'ElectricityFee' }, + SharedWaterFee: { + text: '公摊水费', + color: '#8b5cf6', + value: 'SharedWaterFee', + }, + SharedElectricityFee: { + text: '公摊电费', + color: '#ec4899', + value: 'SharedElectricityFee', + }, }; // HouseChargeStandardsApportionmentMethodEnum -export const HouseChargeStandardsApportionmentMethodEnum= { - 'HouseCount': {"text":"房屋数分摊","color":"#3b82f6","value":"HouseCount"}, - 'AreaProportion': {"text":"房屋计费面积分摊","color":"#10b981","value":"AreaProportion"}, - 'FixedRatio': {"text":"按固定比例分摊","color":"#f59e0b","value":"FixedRatio"}, +export const HouseChargeStandardsApportionmentMethodEnum = { + HouseCount: { text: '房屋数分摊', color: '#3b82f6', value: 'HouseCount' }, + AreaProportion: { + text: '房屋计费面积分摊', + color: '#10b981', + value: 'AreaProportion', + }, + FixedRatio: { text: '按固定比例分摊', color: '#f59e0b', value: 'FixedRatio' }, }; // HouseChargeStandardsCalculationMethodEnum -export const HouseChargeStandardsCalculationMethodEnum= { - 'ChargeableArea': {"text":"计费面积","color":"#3b82f6","value":"ChargeableArea"}, - 'BuiltArea': {"text":"建筑面积","color":"#10b981","value":"BuiltArea"}, - 'InsideArea': {"text":"套内面积","color":"#f59e0b","value":"InsideArea"}, - 'PerUnit': {"text":"按套","color":"#06b6d4","value":"PerUnit"}, - 'ElectricityUsage': {"text":"用电量","color":"#8b5cf6","value":"ElectricityUsage"}, - 'WaterUsage': {"text":"用水量","color":"#ec4899","value":"WaterUsage"}, +export const HouseChargeStandardsCalculationMethodEnum = { + ChargeableArea: { + text: '计费面积', + color: '#3b82f6', + value: 'ChargeableArea', + }, + BuiltArea: { text: '建筑面积', color: '#10b981', value: 'BuiltArea' }, + InsideArea: { text: '套内面积', color: '#f59e0b', value: 'InsideArea' }, + PerUnit: { text: '按套', color: '#06b6d4', value: 'PerUnit' }, + ElectricityUsage: { + text: '用电量', + color: '#8b5cf6', + value: 'ElectricityUsage', + }, + WaterUsage: { text: '用水量', color: '#ec4899', value: 'WaterUsage' }, }; // HouseChargeStandardsCalculationModeEnum -export const HouseChargeStandardsCalculationModeEnum= { - 'FixedAmount': {"text":"固定金额","color":"#3b82f6","value":"FixedAmount"}, - 'QuantityPrice': {"text":"数量*单价","color":"#10b981","value":"QuantityPrice"}, +export const HouseChargeStandardsCalculationModeEnum = { + FixedAmount: { text: '固定金额', color: '#3b82f6', value: 'FixedAmount' }, + QuantityPrice: { + text: '数量*单价', + color: '#10b981', + value: 'QuantityPrice', + }, }; // HouseChargeStandardsCalculationPeriodEnum -export const HouseChargeStandardsCalculationPeriodEnum= { - 'PerTime': {"text":"按次","color":"#3b82f6","value":"PerTime"}, - 'PerDay': {"text":"按日","color":"#10b981","value":"PerDay"}, - 'PerMonth': {"text":"按月","color":"#f59e0b","value":"PerMonth"}, - 'PerYear': {"text":"按年","color":"#8b5cf6","value":"PerYear"}, +export const HouseChargeStandardsCalculationPeriodEnum = { + PerTime: { text: '按次', color: '#3b82f6', value: 'PerTime' }, + PerDay: { text: '按日', color: '#10b981', value: 'PerDay' }, + PerMonth: { text: '按月', color: '#f59e0b', value: 'PerMonth' }, + PerYear: { text: '按年', color: '#8b5cf6', value: 'PerYear' }, }; // HouseChargeStandardsPriceAlgorithmEnum -export const HouseChargeStandardsPriceAlgorithmEnum= { - 'Fixed': {"text":"固定","color":"#4caf50","value":"Fixed"}, - 'Tiered': {"text":"分级价阶梯","color":"#2196f3","value":"Tiered"}, - 'Peak': {"text":"最高价阶梯","color":"#ff9800","value":"Peak"}, +export const HouseChargeStandardsPriceAlgorithmEnum = { + Fixed: { text: '固定', color: '#4caf50', value: 'Fixed' }, + Tiered: { text: '分级价阶梯', color: '#2196f3', value: 'Tiered' }, + Peak: { text: '最高价阶梯', color: '#ff9800', value: 'Peak' }, }; // HouseChargeStandardsStatusEnum -export const HouseChargeStandardsStatusEnum= { - 'Active': {"text":"启用","color":"#3b82f6","value":"Active"}, - 'Inactive': {"text":"禁用","color":"#ef4444","value":"Inactive"}, +export const HouseChargeStandardsStatusEnum = { + Active: { text: '启用', color: '#3b82f6', value: 'Active' }, + Inactive: { text: '禁用', color: '#ef4444', value: 'Inactive' }, }; // HouseChargeStandardsTypeEnum -export const HouseChargeStandardsTypeEnum= { - 'House': {"text":"房屋","color":"#3b82f6","value":"House"}, - 'Meter': {"text":"仪表","color":"#10b981","value":"Meter"}, +export const HouseChargeStandardsTypeEnum = { + House: { text: '房屋', color: '#3b82f6', value: 'House' }, + Meter: { text: '仪表', color: '#10b981', value: 'Meter' }, }; // HouseChargeTaskDetailsStatusEnum -export const HouseChargeTaskDetailsStatusEnum= { - 'Pending': {"text":"待处理","color":"#f59e0b","value":"Pending"}, - 'Success': {"text":"成功","color":"#22c55e","value":"Success"}, - 'Failed': {"text":"失败","color":"#ef4444","value":"Failed"}, +export const HouseChargeTaskDetailsStatusEnum = { + Pending: { text: '待处理', color: '#f59e0b', value: 'Pending' }, + Success: { text: '成功', color: '#22c55e', value: 'Success' }, + Failed: { text: '失败', color: '#ef4444', value: 'Failed' }, }; // HouseChargeTasksStatusEnum -export const HouseChargeTasksStatusEnum= { - 'Pending': {"text":"待执行","color":"#f59e0b","value":"Pending"}, - 'InProgress': {"text":"执行中","color":"#3b82f6","value":"InProgress"}, - 'Completed': {"text":"已完成","color":"#10b981","value":"Completed"}, - 'Failed': {"text":"失败","color":"#ef4444","value":"Failed"}, +export const HouseChargeTasksStatusEnum = { + Pending: { text: '待执行', color: '#f59e0b', value: 'Pending' }, + InProgress: { text: '执行中', color: '#3b82f6', value: 'InProgress' }, + Completed: { text: '已完成', color: '#10b981', value: 'Completed' }, + Failed: { text: '失败', color: '#ef4444', value: 'Failed' }, }; // HouseChargeTasksTypeEnum -export const HouseChargeTasksTypeEnum= { - 'Scheduled': {"text":"定时创建","color":"#3b82f6","value":"Scheduled"}, - 'Manual': {"text":"手动创建","color":"#10b981","value":"Manual"}, +export const HouseChargeTasksTypeEnum = { + Scheduled: { text: '定时创建', color: '#3b82f6', value: 'Scheduled' }, + Manual: { text: '手动创建', color: '#10b981', value: 'Manual' }, }; // HouseCollectionRecordsCollectionResultEnum -export const HouseCollectionRecordsCollectionResultEnum= { - 'PromiseToPay': {"text":"承诺缴费","color":"#4caf50","value":"PromiseToPay"}, - 'RefuseToPay': {"text":"拒绝缴费","color":"#f44336","value":"RefuseToPay"}, - 'NotReached': {"text":"未联系到","color":"#9e9e9e","value":"NotReached"}, - 'NeedFollowUp': {"text":"需要跟进","color":"#ff9800","value":"NeedFollowUp"}, +export const HouseCollectionRecordsCollectionResultEnum = { + PromiseToPay: { text: '承诺缴费', color: '#4caf50', value: 'PromiseToPay' }, + RefuseToPay: { text: '拒绝缴费', color: '#f44336', value: 'RefuseToPay' }, + NotReached: { text: '未联系到', color: '#9e9e9e', value: 'NotReached' }, + NeedFollowUp: { text: '需要跟进', color: '#ff9800', value: 'NeedFollowUp' }, }; // HouseCollectionRecordsSmsStatusEnum -export const HouseCollectionRecordsStatusEnum= { - 'NotNotified': {"text":"未通知","color":"#808080","value":"NotNotified"}, - 'Notified': {"text":"已通知","color":"#00cc00","value":"Notified"}, - 'Failed': {"text":"失败","color":"#ff0000","value":"Failed"}, +export const HouseCollectionRecordsStatusEnum = { + NotNotified: { text: '未通知', color: '#808080', value: 'NotNotified' }, + Notified: { text: '已通知', color: '#00cc00', value: 'Notified' }, + Failed: { text: '失败', color: '#ff0000', value: 'Failed' }, }; // HouseCollectionTasksChannelEnum -export const HouseCollectionTasksChannelEnum= { - 'SMS': {"text":"短信","color":"#1E90FF","value":"SMS"}, - 'MiniProgram': {"text":"小程序","color":"#00BFFF","value":"MiniProgram"}, - 'OfficialAccount': {"text":"公众号","color":"#32CD32","value":"OfficialAccount"}, - 'PhoneCall': {"text":"电话催缴","color":"#FF8C00","value":"PhoneCall"}, - 'Visit': {"text":"上门催缴","color":"#8B4513","value":"Visit"}, - 'WeChat': {"text":"微信联系","color":"#20B2AA","value":"WeChat"}, - 'WrittenNotice': {"text":"书面通知","color":"#708090","value":"WrittenNotice"}, +export const HouseCollectionTasksChannelEnum = { + SMS: { text: '短信', color: '#1E90FF', value: 'SMS' }, + MiniProgram: { text: '小程序', color: '#00BFFF', value: 'MiniProgram' }, + OfficialAccount: { + text: '公众号', + color: '#32CD32', + value: 'OfficialAccount', + }, + PhoneCall: { text: '电话催缴', color: '#FF8C00', value: 'PhoneCall' }, + Visit: { text: '上门催缴', color: '#8B4513', value: 'Visit' }, + WeChat: { text: '微信联系', color: '#20B2AA', value: 'WeChat' }, + WrittenNotice: { text: '书面通知', color: '#708090', value: 'WrittenNotice' }, }; // HouseCollectionTasksStatusEnum -export const HouseCollectionTasksStatusEnum= { - 'Processing': {"text":"进行中","color":"#ffcc00","value":"Processing"}, - 'Completed': {"text":"已完成","color":"#00cc00","value":"Completed"}, - 'Failed': {"text":"失败","color":"#ff0000","value":"Failed"}, +export const HouseCollectionTasksStatusEnum = { + Processing: { text: '进行中', color: '#ffcc00', value: 'Processing' }, + Completed: { text: '已完成', color: '#00cc00', value: 'Completed' }, + Failed: { text: '失败', color: '#ff0000', value: 'Failed' }, }; // HouseMeterReadingsOperationTypeEnum -export const HouseMeterReadingsOperationTypeEnum= { - 'NormalReading': {"text":"正常抄表","color":"#4caf50","value":"NormalReading"}, - 'ResetReading': {"text":"重置读数","color":"#f44336","value":"ResetReading"}, - 'CorrectReading': {"text":"修正读数","color":"#ff9800","value":"CorrectReading"}, +export const HouseMeterReadingsOperationTypeEnum = { + NormalReading: { text: '正常抄表', color: '#4caf50', value: 'NormalReading' }, + ResetReading: { text: '重置读数', color: '#f44336', value: 'ResetReading' }, + CorrectReading: { + text: '修正读数', + color: '#ff9800', + value: 'CorrectReading', + }, }; // HouseMeterTasksGenerationMethodEnum -export const HouseMeterTasksGenerationMethodEnum= { - 'Building': {"text":"按楼栋","color":"#4caf50","value":"Building"}, - 'Unit': {"text":"按单元","color":"#2196f3","value":"Unit"}, - 'Meter': {"text":"按仪表","color":"#ff9800","value":"Meter"}, +export const HouseMeterTasksGenerationMethodEnum = { + Building: { text: '按楼栋', color: '#4caf50', value: 'Building' }, + Unit: { text: '按单元', color: '#2196f3', value: 'Unit' }, + Meter: { text: '按仪表', color: '#ff9800', value: 'Meter' }, }; // HouseMetersMeterTypeEnum -export const HouseMetersMeterTypeEnum= { - 'HouseMeter': {"text":"房屋表","color":"#4caf50","value":"HouseMeter"}, - 'CommonMeter': {"text":"公摊表","color":"#2196f3","value":"CommonMeter"}, +export const HouseMetersMeterTypeEnum = { + HouseMeter: { text: '房屋表', color: '#4caf50', value: 'HouseMeter' }, + CommonMeter: { text: '公摊表', color: '#2196f3', value: 'CommonMeter' }, }; // HouseMetersUsageTypeEnum -export const HouseMetersUsageTypeEnum= { - 'WaterMeter': {"text":"水表","color":"#2196f3","value":"WaterMeter"}, - 'ElectricMeter': {"text":"电表","color":"#ff9800","value":"ElectricMeter"}, - 'GasMeter': {"text":"燃气表","color":"#f44336","value":"GasMeter"}, - 'HeatingMeter': {"text":"暖气表","color":"#9c27b0","value":"HeatingMeter"}, +export const HouseMetersUsageTypeEnum = { + WaterMeter: { text: '水表', color: '#2196f3', value: 'WaterMeter' }, + ElectricMeter: { text: '电表', color: '#ff9800', value: 'ElectricMeter' }, + GasMeter: { text: '燃气表', color: '#f44336', value: 'GasMeter' }, + HeatingMeter: { text: '暖气表', color: '#9c27b0', value: 'HeatingMeter' }, }; // HouseOccupantsCardTypeEnum -export const HouseOccupantsCardTypeEnum= { - 'MainlandID': {"text":"中国大陆居民身份证","color":"#2db7f5","value":"MainlandID"}, - 'HKPermit': {"text":"香港来往大陆通行证(回乡证)","color":"#fa8c16","value":"HKPermit"}, - 'MOPermit': {"text":"澳门来往大陆通行证(回乡证)","color":"#faad14","value":"MOPermit"}, - 'TWPermit': {"text":"台湾来往大陆通行证(台胞证)","color":"#87d068","value":"TWPermit"}, - 'Passport': {"text":"护照","color":"#108ee9","value":"Passport"}, - 'BusinessLicense': {"text":"营业执照","color":"#f5222d","value":"BusinessLicense"}, +export const HouseOccupantsCardTypeEnum = { + MainlandID: { + text: '中国大陆居民身份证', + color: '#2db7f5', + value: 'MainlandID', + }, + HKPermit: { + text: '香港来往大陆通行证(回乡证)', + color: '#fa8c16', + value: 'HKPermit', + }, + MOPermit: { + text: '澳门来往大陆通行证(回乡证)', + color: '#faad14', + value: 'MOPermit', + }, + TWPermit: { + text: '台湾来往大陆通行证(台胞证)', + color: '#87d068', + value: 'TWPermit', + }, + Passport: { text: '护照', color: '#108ee9', value: 'Passport' }, + BusinessLicense: { + text: '营业执照', + color: '#f5222d', + value: 'BusinessLicense', + }, }; // HouseOccupantsHouseRelationEnum -export const HouseOccupantsHouseRelationEnum= { - 'Owner': {"text":"产权人","color":"#2db7f5","value":"Owner"}, - 'NonOwner': {"text":"非产权人","color":"#fa8c16","value":"NonOwner"}, +export const HouseOccupantsHouseRelationEnum = { + Owner: { text: '产权人', color: '#2db7f5', value: 'Owner' }, + NonOwner: { text: '非产权人', color: '#fa8c16', value: 'NonOwner' }, }; // HouseOccupantsRelationWithOwnerEnum -export const HouseOccupantsRelationWithOwnerEnum= { - 'Self': {"text":"本人","color":"#52c41a","value":"Self"}, - 'Spouse': {"text":"配偶","color":"#2db7f5","value":"Spouse"}, - 'Children': {"text":"子女","color":"#87d068","value":"Children"}, - 'Parents': {"text":"父母","color":"#faad14","value":"Parents"}, - 'Siblings': {"text":"兄弟姐妹","color":"#fa8c16","value":"Siblings"}, - 'OtherRelatives': {"text":"其他亲属","color":"#f5222d","value":"OtherRelatives"}, - 'PrimaryTenant': {"text":"主租客","color":"#722ed1","value":"PrimaryTenant"}, - 'Tenant': {"text":"租客","color":"#1890ff","value":"Tenant"}, +export const HouseOccupantsRelationWithOwnerEnum = { + Self: { text: '本人', color: '#52c41a', value: 'Self' }, + Spouse: { text: '配偶', color: '#2db7f5', value: 'Spouse' }, + Children: { text: '子女', color: '#87d068', value: 'Children' }, + Parents: { text: '父母', color: '#faad14', value: 'Parents' }, + Siblings: { text: '兄弟姐妹', color: '#fa8c16', value: 'Siblings' }, + OtherRelatives: { + text: '其他亲属', + color: '#f5222d', + value: 'OtherRelatives', + }, + PrimaryTenant: { text: '主租客', color: '#722ed1', value: 'PrimaryTenant' }, + Tenant: { text: '租客', color: '#1890ff', value: 'Tenant' }, }; // HouseOccupantsResidentialRelationEnum -export const HouseOccupantsResidentialRelationEnum= { - 'Resident': {"text":"住户","color":"#2db7f5","value":"Resident"}, - 'PrimaryTenant': {"text":"主租人","color":"#87d068","value":"PrimaryTenant"}, - 'Tenant': {"text":"租客","color":"#fa8c16","value":"Tenant"}, +export const HouseOccupantsResidentialRelationEnum = { + Resident: { text: '住户', color: '#2db7f5', value: 'Resident' }, + PrimaryTenant: { text: '主租人', color: '#87d068', value: 'PrimaryTenant' }, + Tenant: { text: '租客', color: '#fa8c16', value: 'Tenant' }, }; // HouseOccupantsStatusEnum -export const HouseOccupantsStatusEnum= { - 'Normal': {"text":"绑定","color":"#52c41a","value":"Normal"}, - 'Unbound': {"text":"解绑","color":"#f5222d","value":"Unbound"}, +export const HouseOccupantsStatusEnum = { + Normal: { text: '绑定', color: '#52c41a', value: 'Normal' }, + Unbound: { text: '解绑', color: '#f5222d', value: 'Unbound' }, }; // 订单状态枚举 -export const HouseOrdersOrderStatusEnum= { - 'Pending': {"text":"待支付","color":"#facc15","value":"Pending"}, - 'Paid': {"text":"已支付","color":"#10b981","value":"Paid"}, - 'Refunded': {"text":"已退款","color":"#60a5fa","value":"Refunded"}, - 'Cancelled': {"text":"已取消","color":"#9ca3af","value":"Cancelled"}, - 'Failed': {"text":"支付失败","color":"#ef4444","value":"Failed"}, +export const HouseOrdersOrderStatusEnum = { + Pending: { text: '待支付', color: '#facc15', value: 'Pending' }, + Paid: { text: '已支付', color: '#10b981', value: 'Paid' }, + Refunded: { text: '已退款', color: '#60a5fa', value: 'Refunded' }, + Cancelled: { text: '已取消', color: '#9ca3af', value: 'Cancelled' }, + Failed: { text: '支付失败', color: '#ef4444', value: 'Failed' }, }; // HouseOrdersPaymentMethodEnum -export const HouseOrdersPaymentMethodEnum= { - 'WeChat': {"text":"微信","color":"#07c160","value":"WeChat"}, - 'Alipay': {"text":"支付宝","color":"#1677ff","value":"Alipay"}, - 'BankTransfer': {"text":"银行转账","color":"#6c757d","value":"BankTransfer"}, - 'TongLian': {"text":"通联支付","color":"#ff9f0a","value":"TongLian"}, +export const HouseOrdersPaymentMethodEnum = { + WeChat: { text: '微信', color: '#07c160', value: 'WeChat' }, + Alipay: { text: '支付宝', color: '#1677ff', value: 'Alipay' }, + BankTransfer: { text: '银行转账', color: '#6c757d', value: 'BankTransfer' }, + TongLian: { text: '通联支付', color: '#ff9f0a', value: 'TongLian' }, }; // HouseRegistersCustomerTypeEnum -export const HouseRegistersCustomerTypeEnum= { - 'Individual': {"text":"个人客户","color":"#2db7f5","value":"Individual"}, - 'Enterprise': {"text":"普通企业","color":"#87d068","value":"Enterprise"}, - 'Developer': {"text":"开发企业","color":"#fa8c16","value":"Developer"}, - 'Government': {"text":"政府组织","color":"#f5222d","value":"Government"}, +export const HouseRegistersCustomerTypeEnum = { + Individual: { text: '个人客户', color: '#2db7f5', value: 'Individual' }, + Enterprise: { text: '普通企业', color: '#87d068', value: 'Enterprise' }, + Developer: { text: '开发企业', color: '#fa8c16', value: 'Developer' }, + Government: { text: '政府组织', color: '#f5222d', value: 'Government' }, }; // HouseRegistersHouseStatusEnum -export const HouseRegistersHouseStatusEnum= { - 'SelfOccupied': {"text":"自住","color":"#28a745","value":"SelfOccupied"}, - 'Rented': {"text":"出租","color":"#007bff","value":"Rented"}, - 'Vacant': {"text":"空置","color":"#dc3545","value":"Vacant"}, +export const HouseRegistersHouseStatusEnum = { + SelfOccupied: { text: '自住', color: '#28a745', value: 'SelfOccupied' }, + Rented: { text: '出租', color: '#007bff', value: 'Rented' }, + Vacant: { text: '空置', color: '#dc3545', value: 'Vacant' }, }; // 房屋登记身份类型 -export const HouseRegistersIdentityTypeEnum= { - 'Owner': {"text":"产权人","color":"#2db7f5","value":"Owner"}, - 'Tenant': {"text":"租客","color":"#87d068","value":"Tenant"}, - 'CoResident': {"text":"同住人(亲属)","color":"#108ee9","value":"CoResident"}, +export const HouseRegistersIdentityTypeEnum = { + Owner: { text: '产权人', color: '#2db7f5', value: 'Owner' }, + Tenant: { text: '租客', color: '#87d068', value: 'Tenant' }, + CoResident: { text: '同住人(亲属)', color: '#108ee9', value: 'CoResident' }, }; // HouseRegistersStatusEnum -export const HouseRegistersStatusEnum= { - 'Pending': {"text":"待审","color":"#faad14","value":"Pending"}, - 'Approved': {"text":"通过","color":"#52c41a","value":"Approved"}, - 'Rejected': {"text":"驳回","color":"#f5222d","value":"Rejected"}, +export const HouseRegistersStatusEnum = { + Pending: { text: '待审', color: '#faad14', value: 'Pending' }, + Approved: { text: '通过', color: '#52c41a', value: 'Approved' }, + Rejected: { text: '驳回', color: '#f5222d', value: 'Rejected' }, }; // HouseRegistersTypeEnum -export const HouseRegistersTypeEnum= { - 'AddOwner': {"text":"添加产权人","color":"#52c41a","value":"AddOwner"}, - 'RemoveOwner': {"text":"减少产权人","color":"#d9363e","value":"RemoveOwner"}, - 'AddOccupant': {"text":"添加住户","color":"#108ee9","value":"AddOccupant"}, - 'RemoveOccupant': {"text":"移除住户","color":"#fa8c16","value":"RemoveOccupant"}, - 'MoveOut': {"text":"搬离登记","color":"#f50","value":"MoveOut"}, - 'MoveIn': {"text":"搬入登记","color":"#ffc53d","value":"MoveIn"}, - 'UpdateInfo': {"text":"修改信息","color":"#722ed1","value":"UpdateInfo"}, - 'UpdatePhone': {"text":"修改电话","color":"#13c2c2","value":"UpdatePhone"}, +export const HouseRegistersTypeEnum = { + AddOwner: { text: '添加产权人', color: '#52c41a', value: 'AddOwner' }, + RemoveOwner: { text: '减少产权人', color: '#d9363e', value: 'RemoveOwner' }, + AddOccupant: { text: '添加住户', color: '#108ee9', value: 'AddOccupant' }, + RemoveOccupant: { + text: '移除住户', + color: '#fa8c16', + value: 'RemoveOccupant', + }, + MoveOut: { text: '搬离登记', color: '#f50', value: 'MoveOut' }, + MoveIn: { text: '搬入登记', color: '#ffc53d', value: 'MoveIn' }, + UpdateInfo: { text: '修改信息', color: '#722ed1', value: 'UpdateInfo' }, + UpdatePhone: { text: '修改电话', color: '#13c2c2', value: 'UpdatePhone' }, }; // HouseRegistersUsagePlanEnum -export const HouseRegistersUsagePlanEnum= { - 'Permanent': {"text":"常住","color":"#52c41a","value":"Permanent"}, - 'Vacation': {"text":"度假","color":"#faad14","value":"Vacation"}, - 'Rental': {"text":"出租","color":"#2db7f5","value":"Rental"}, - 'Commercial': {"text":"商用","color":"#f5222d","value":"Commercial"}, +export const HouseRegistersUsagePlanEnum = { + Permanent: { text: '常住', color: '#52c41a', value: 'Permanent' }, + Vacation: { text: '度假', color: '#faad14', value: 'Vacation' }, + Rental: { text: '出租', color: '#2db7f5', value: 'Rental' }, + Commercial: { text: '商用', color: '#f5222d', value: 'Commercial' }, }; // HouseWorkOrdersAssignStatusEnum -export const HouseWorkOrdersAssignStatusEnum= { - 'Unassigned': {"text":"未指派","color":"#ff0000","value":"Unassigned"}, - 'Assigned': {"text":"已指派","color":"#00ff00","value":"Assigned"}, +export const HouseWorkOrdersAssignStatusEnum = { + Unassigned: { text: '未指派', color: '#ff0000', value: 'Unassigned' }, + Assigned: { text: '已指派', color: '#00ff00', value: 'Assigned' }, }; // HouseWorkOrdersComplaintTypeEnum -export const HouseWorkOrdersComplaintTypeEnum= { - 'Hygiene': {"text":"卫生环境","color":"#ff0000","value":"Hygiene"}, - 'Greening': {"text":"绿植绿化","color":"#00aaff","value":"Greening"}, - 'Safety': {"text":"安全问题","color":"#ffaa00","value":"Safety"}, - 'Maintenance': {"text":"维修问题","color":"#aa00ff","value":"Maintenance"}, - 'PropertyService': {"text":"物业服务","color":"#00aa55","value":"PropertyService"}, - 'Staff': {"text":"工作人员","color":"#ff00aa","value":"Staff"}, - 'Other': {"text":"其他","color":"#aaaaaa","value":"Other"}, +export const HouseWorkOrdersComplaintTypeEnum = { + Hygiene: { text: '卫生环境', color: '#ff0000', value: 'Hygiene' }, + Greening: { text: '绿植绿化', color: '#00aaff', value: 'Greening' }, + Safety: { text: '安全问题', color: '#ffaa00', value: 'Safety' }, + Maintenance: { text: '维修问题', color: '#aa00ff', value: 'Maintenance' }, + PropertyService: { + text: '物业服务', + color: '#00aa55', + value: 'PropertyService', + }, + Staff: { text: '工作人员', color: '#ff00aa', value: 'Staff' }, + Other: { text: '其他', color: '#aaaaaa', value: 'Other' }, }; // HouseWorkOrdersLevelEnum -export const HouseWorkOrdersLevelEnum= { - 'Urgent': {"text":"紧急","color":"#ff0000","value":"Urgent"}, - 'High': {"text":"高","color":"#ff7f00","value":"High"}, - 'Medium': {"text":"中","color":"#00cc00","value":"Medium"}, - 'Low': {"text":"低","color":"#999999","value":"Low"}, +export const HouseWorkOrdersLevelEnum = { + Urgent: { text: '紧急', color: '#ff0000', value: 'Urgent' }, + High: { text: '高', color: '#ff7f00', value: 'High' }, + Medium: { text: '中', color: '#00cc00', value: 'Medium' }, + Low: { text: '低', color: '#999999', value: 'Low' }, }; // HouseWorkOrdersLocationEnum -export const HouseWorkOrdersLocationEnum= { - 'CommonArea': {"text":"公共区域","color":"#ff0000","value":"CommonArea"}, - 'MyHome': {"text":"我家","color":"#00ff00","value":"MyHome"}, +export const HouseWorkOrdersLocationEnum = { + CommonArea: { text: '公共区域', color: '#ff0000', value: 'CommonArea' }, + MyHome: { text: '我家', color: '#00ff00', value: 'MyHome' }, }; // HouseWorkOrdersStatusEnum -export const HouseWorkOrdersStatusEnum= { - 'Pending': {"text":"待处理","color":"#FFA500","value":"Pending"}, - 'Processing': {"text":"处理中","color":"#1E90FF","value":"Processing"}, - 'Completed': {"text":"已完成","color":"#28A745","value":"Completed"}, - 'Closed': {"text":"已关闭","color":"#6C757D","value":"Closed"}, +export const HouseWorkOrdersStatusEnum = { + Pending: { text: '待处理', color: '#FFA500', value: 'Pending' }, + Processing: { text: '处理中', color: '#1E90FF', value: 'Processing' }, + Completed: { text: '已完成', color: '#28A745', value: 'Completed' }, + Closed: { text: '已关闭', color: '#6C757D', value: 'Closed' }, }; // HouseWorkOrdersTypeEnum -export const HouseWorkOrdersTypeEnum= { - 'Repair': {"text":"报修","color":"#ff0000","value":"Repair"}, - 'Incident': {"text":"报事","color":"#00aaff","value":"Incident"}, - 'Complaint': {"text":"投诉","color":"#aa00ff","value":"Complaint"}, +export const HouseWorkOrdersTypeEnum = { + Repair: { text: '报修', color: '#ff0000', value: 'Repair' }, + Incident: { text: '报事', color: '#00aaff', value: 'Incident' }, + Complaint: { text: '投诉', color: '#aa00ff', value: 'Complaint' }, }; // MsgPropertyAnnouncementsPublishTypeEnum -export const MsgPropertyAnnouncementsPublishTypeEnum= { - 'Manual': {"text":"手动","color":"#4caf50","value":"Manual"}, - 'Schedule': {"text":"定时","color":"#2196f3","value":"Schedule"}, +export const MsgPropertyAnnouncementsPublishTypeEnum = { + Manual: { text: '手动', color: '#4caf50', value: 'Manual' }, + Schedule: { text: '定时', color: '#2196f3', value: 'Schedule' }, }; // OrganizationsTypeEnum -export const OrganizationsTypeEnum= { - 'Group': {"text":"集团","color":"#007bff","value":"Group"}, - 'Company': {"text":"公司","color":"#28a745","value":"Company"}, - 'ManagementOffice': {"text":"管理处","color":"#ffc107","value":"ManagementOffice"}, - 'Department': {"text":"部门","color":"#dc3545","value":"Department"}, +export const OrganizationsTypeEnum = { + Group: { text: '集团', color: '#007bff', value: 'Group' }, + Company: { text: '公司', color: '#28a745', value: 'Company' }, + ManagementOffice: { + text: '管理处', + color: '#ffc107', + value: 'ManagementOffice', + }, + Department: { text: '部门', color: '#dc3545', value: 'Department' }, }; // 性别 -export const SexEnum= { - 'Male': {"text":"男","color":"#0000ff","value":"Male"}, - 'FeMale': {"text":"女","color":"#ff0000","value":"FeMale"}, +export const SexEnum = { + Male: { text: '男', color: '#0000ff', value: 'Male' }, + FeMale: { text: '女', color: '#ff0000', value: 'FeMale' }, }; // SysModuleEnum -export const SysModuleEnum= { - 'Admin': {"text":"管理员","color":"#cf1322","value":"Admin"}, - 'Customer': {"text":"客户","color":"#d4b106","value":"Customer"}, +export const SysModuleEnum = { + Admin: { text: '管理员', color: '#cf1322', value: 'Admin' }, + Customer: { text: '客户', color: '#d4b106', value: 'Customer' }, }; // SysPermissionsTypeEnum -export const SysPermissionsTypeEnum= { - 'Directory': {"text":"目录","color":"#6d7e14","value":"Directory"}, - 'Page': {"text":"页面","color":"#4d9a13","value":"Page"}, - 'Button': {"text":"按钮","color":"#97224f","value":"Button"}, +export const SysPermissionsTypeEnum = { + Directory: { text: '目录', color: '#6d7e14', value: 'Directory' }, + Page: { text: '页面', color: '#4d9a13', value: 'Page' }, + Button: { text: '按钮', color: '#97224f', value: 'Button' }, }; // WechatAuthsPlatformEnum -export const WechatAuthsPlatformEnum= { - 'MiniProgram': {"text":"微信小程序","color":"#3b82f6","value":"MiniProgram"}, - 'MpOfficial': {"text":"微信公众号","color":"#22c55e","value":"MpOfficial"}, - 'WorkWechat': {"text":"企业微信","color":"#6366f1","value":"WorkWechat"}, +export const WechatAuthsPlatformEnum = { + MiniProgram: { text: '微信小程序', color: '#3b82f6', value: 'MiniProgram' }, + MpOfficial: { text: '微信公众号', color: '#22c55e', value: 'MpOfficial' }, + WorkWechat: { text: '企业微信', color: '#6366f1', value: 'WorkWechat' }, }; - diff --git a/src/pages/archive/modals/Delivery.tsx b/src/pages/archive/modals/Delivery.tsx index 744d191..ff6de1f 100644 --- a/src/pages/archive/modals/Delivery.tsx +++ b/src/pages/archive/modals/Delivery.tsx @@ -9,6 +9,7 @@ import { Apis } from '@/gen/Apis'; import { HouseOccupantsCardTypeEnum, HouseOccupantsHouseRelationEnum, + HouseOccupantsRelationWithOwnerEnum, HouseRegistersTypeEnum, } from '@/gen/Enums'; import { BetaSchemaForm, ProCard } from '@ant-design/pro-components'; @@ -21,7 +22,7 @@ export default function Create(props: MyBetaModalFormProps) { {...MyModalFormProps.props} title={`${props.title}`} wrapperCol={{ span: 24 }} - width="800px" + width="1000px" trigger={ } @@ -34,7 +34,7 @@ export default function AddOccupant(props: MyBetaModalFormProps) { form.resetFields(); // 清空表单数据 } }} - onFinish={async (values) => + onFinish={async (values: any) => Apis.Archive.HouseRegisters.Store({ ...values, asset_houses_id: props?.item?.id, @@ -43,6 +43,11 @@ export default function AddOccupant(props: MyBetaModalFormProps) { return { ...res, house_relation: HouseOccupantsHouseRelationEnum.NonOwner.value, + relation_with_owner: + values?.residential_relation === + HouseOccupantsResidentialRelationEnum.PrimaryTenant.value + ? values?.relation_with_owner + : values?.residential_relation, }; }), }) @@ -106,16 +111,16 @@ export default function AddOccupant(props: MyBetaModalFormProps) { name: ['residential_relation'], valueType: 'dependency', columns: ({ residential_relation }: any) => { - return residential_relation !== - HouseOccupantsResidentialRelationEnum.PrimaryTenant - .value + return residential_relation === + HouseOccupantsResidentialRelationEnum.Resident.value ? [ MyFormItems.EnumRadio({ key: 'relation_with_owner', - title: - residential_relation === 'Resident' - ? '与产权人关系' - : '与主租人关系', + title: '与产权人关系', + // title: + // residential_relation === 'Resident' + // ? '与产权人关系' + // : '与主租人关系', valueEnum: HouseOccupantsRelationWithOwnerEnum, colProps: { span: 16 }, required: true, @@ -227,6 +232,7 @@ export default function AddOccupant(props: MyBetaModalFormProps) { key: 'card_front_image', title: '证件正面', // uploadType: 'file', + required: true, max: 1, colProps: { span: 6 }, }), @@ -234,13 +240,14 @@ export default function AddOccupant(props: MyBetaModalFormProps) { key: 'card_back_image', title: '证件反面', // uploadType: 'file', + required: true, max: 1, colProps: { span: 6 }, }), { title: '是否入住', dataIndex: 'is_live_in', - colProps: { span: 6 }, + colProps: { span: 4 }, valueType: 'switch', }, { @@ -263,6 +270,11 @@ export default function AddOccupant(props: MyBetaModalFormProps) { : []; }, }, + { + title: '备注', + dataIndex: 'remark', + colProps: { span: 24 }, + }, ]; }, }, diff --git a/src/pages/archive/table/modals/Transfer.tsx b/src/pages/archive/table/modals/Transfer.tsx index 916b040..2f5a668 100644 --- a/src/pages/archive/table/modals/Transfer.tsx +++ b/src/pages/archive/table/modals/Transfer.tsx @@ -21,7 +21,7 @@ export default function Create(props: MyBetaModalFormProps) { {...MyModalFormProps.props} title={`${props.title}`} wrapperCol={{ span: 24 }} - width="900px" + width="1000px" trigger={ } @@ -164,7 +164,7 @@ export default function Create(props: MyBetaModalFormProps) { colProps: { span: 6 }, }), { - title: '是否办理入住', + title: '是否入住', dataIndex: 'is_live_in', colProps: { span: 6 }, valueType: 'switch', diff --git a/src/pages/asset/list/index.tsx b/src/pages/asset/list/index.tsx index 850bb88..189762b 100644 --- a/src/pages/asset/list/index.tsx +++ b/src/pages/asset/list/index.tsx @@ -1,6 +1,7 @@ import { MyButtons, MyColumns, + MyImportModal, MyPageContainer, MyProTableProps, usePageTabs, @@ -32,6 +33,15 @@ export default function Index({ title = '项目列表' }) { } // headerTitle="项目列表" toolBarRender={(action) => [ + , , ]} columns={[ diff --git a/src/pages/common/positions/index.tsx b/src/pages/common/positions/index.tsx new file mode 100644 index 0000000..d600319 --- /dev/null +++ b/src/pages/common/positions/index.tsx @@ -0,0 +1,73 @@ +import { + MyButtons, + MyColumns, + MyPageContainer, + MyProTableProps, + usePageTabs, +} from '@/common'; +import { Apis } from '@/gen/Apis'; +import { ProTable } from '@ant-design/pro-components'; +import { useNavigate } from '@umijs/max'; +import { Space } from 'antd'; +import Create from './modals/Create'; +import Update from './modals/Update'; + +export default function Index({ title = '岗位管理' }) { + const navigate = useNavigate(); + + // 注册当前页面为标签页 + usePageTabs({ + tabKey: 'positions', + tabLabel: title, + }); + + return ( + + + MyProTableProps.request(params, sort, Apis.Common.Positions.List) + } + toolBarRender={(action) => [ + , + ]} + columns={[ + MyColumns.ID(), + { + title: '岗位名称', + dataIndex: 'name', + width: 300, + }, + { + title: '是否启用', + dataIndex: 'is_use', + search: false, + render: (text) => (text ? '是' : '否'), + width: 200, + }, + MyColumns.CreatedAt(), + MyColumns.UpdatedAt(), + MyColumns.Option({ + render: (_, item: any, index, action) => ( + + + + Apis.Common.Positions.Delete({ id: item.id }).then(() => + action?.reload(), + ) + } + /> + + ), + }), + ]} + /> + + ); +} diff --git a/src/pages/common/positions/modals/Create.tsx b/src/pages/common/positions/modals/Create.tsx new file mode 100644 index 0000000..76047e7 --- /dev/null +++ b/src/pages/common/positions/modals/Create.tsx @@ -0,0 +1,51 @@ +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 Create(props: MyBetaModalFormProps) { + const [form] = Form.useForm(); + return ( + + {...MyModalFormProps.props} + title={`添加岗位`} + layout="horizontal" + labelCol={{ span: 6 }} + wrapperCol={{ span: 18 }} + width="450px" + trigger={} + form={form} + key={new Date().getTime()} + onOpenChange={(open: any) => { + if (open) { + form.resetFields(); // 清空表单数据 + } + }} + onFinish={async (values: any) => + Apis.Common.Positions.Store({ + ...values, + is_use: 1, + }) + .then(() => { + props.reload?.(); + message.success(props.title + '成功'); + return true; + }) + .catch(() => false) + } + columns={[ + { + key: 'name', + title: '岗位名称', + colProps: { span: 24 }, + formItemProps: { ...rulesHelper.text }, + }, + ]} + /> + ); +} diff --git a/src/pages/common/positions/modals/Update.tsx b/src/pages/common/positions/modals/Update.tsx new file mode 100644 index 0000000..afa4974 --- /dev/null +++ b/src/pages/common/positions/modals/Update.tsx @@ -0,0 +1,62 @@ +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 ( + + {...MyModalFormProps.props} + title={`编辑${props.title}`} + trigger={} + layout="horizontal" + labelCol={{ span: 6 }} + wrapperCol={{ span: 18 }} + width="450px" + form={form} + key={new Date().getTime()} + onOpenChange={(open: any) => { + if (open && props.item) { + form.setFieldsValue(props.item); + } + }} + onFinish={async (values: any) => + Apis.Common.Positions.Update({ + ...values, + id: props.item?.id ?? 0, + is_use: Number(values.is_use), + }) + .then(() => { + props.reload?.(); + message.success(props.title + '成功'); + return true; + }) + .catch(() => false) + } + columns={[ + { + key: 'name', + title: '岗位名称', + colProps: { span: 24 }, + formItemProps: { ...rulesHelper.text }, + }, + { + key: 'is_use', + title: '是否启用', + valueType: 'switch', + colProps: { span: 24 }, + formItemProps: { required: true }, + fieldProps: { + required: true, + }, + }, + ]} + /> + ); +} diff --git a/src/pages/company/list/table/Positions.tsx b/src/pages/company/list/table/Positions.tsx index 81a9bda..c7b629b 100644 --- a/src/pages/company/list/table/Positions.tsx +++ b/src/pages/company/list/table/Positions.tsx @@ -7,6 +7,7 @@ import { import { Apis } from '@/gen/Apis'; import { ProTable } from '@ant-design/pro-components'; import { Space } from 'antd'; +import PositionAdd from '../../positions/modals/PositionAdd'; import PositionCreate from '../../positions/modals/PositionCreate'; import PositionUpdate from '../../positions/modals/PositionUpdate'; @@ -24,6 +25,12 @@ export default function Organizations(props: MyBetaModalFormProps) { ) } toolBarRender={(action) => [ + , ( + [], + ); + const [selectedRows, setSelectedRows] = useState([]); + + // 添加 tableRef 用于操作表格 + const tableRef = useRef(); + + const onShowContactPhone = () => { + if (selectedPositionsIds.length === 0) { + message.warning('请至少选择一个岗位'); + return; + } + + // 确保 positions_ids 是字符串数组 + const positionsIds = selectedPositionsIds.map((id) => String(id)); + + Apis.Company.CompanyPositions.BatchStore({ + companies_id: props?.item?.id ?? 0, + positions_ids: positionsIds, + }) + .then(() => { + // 成功后重置选中状态 + setSelectedPositionsIds([]); + setSelectedRows([]); + props.reload?.(); + message.success('添加成功!'); + }) + .catch((error) => { + console.error('添加失败:', error); + message.error('添加失败: ' + (error.message || '未知错误')); + return false; + }); + }; + + return ( + + MyProTableProps.request( + { + ...params, + is_use: 1, + }, + sort, + Apis.Common.Positions.List, + undefined, + (res) => { + // 确保响应数据正确处理 + console.log('加载岗位数据:', res); + return res; + }, + ) + } + // style={{ height: '800px', overflowY: 'auto', overflowX: 'hidden' }} + pagination={{ + showQuickJumper: true, + }} + rowSelection={{ + type: 'checkbox', + preserveSelectedRowKeys: true, // 启用跨页选择 + selectedRowKeys: selectedPositionsIds, + onChange: (selectedRowKeys, selectedRows) => { + // 确保 selectedRowKeys 是数字类型 + const numericKeys = selectedRowKeys.map((key) => + typeof key === 'string' ? parseInt(key, 10) : key, + ) as number[]; + + // 更新选中状态 + setSelectedPositionsIds(numericKeys); + + // 合并当前页面选中的行和之前选中的行 + const newSelectedRows = [...selectedRows]; + + // 设置选中行数据 + setSelectedRows(newSelectedRows); + }, + }} + tableAlertOptionRender={({ selectedRowKeys, onCleanSelected }) => { + return ( + + 已选 {selectedRowKeys.length} 项 + 清空 + onShowContactPhone()} + /> + + ); + }} + options={false} + columns={[ + MyColumns.ID(), + { + title: '岗位名称', + dataIndex: 'name', + width: 300, + }, + { + title: '是否启用', + dataIndex: 'is_use', + search: false, + render: (text) => (text ? '是' : '否'), + width: 200, + }, + ]} + /> + } + /> + ); +} diff --git a/src/pages/company/positions/modals/PositionCreate.tsx b/src/pages/company/positions/modals/PositionCreate.tsx index c40be6a..7e500e2 100644 --- a/src/pages/company/positions/modals/PositionCreate.tsx +++ b/src/pages/company/positions/modals/PositionCreate.tsx @@ -17,7 +17,7 @@ export default function Create(props: MyBetaModalFormProps) { title={`添加岗位`} wrapperCol={{ span: 24 }} width="500px" - trigger={} + trigger={} form={form} onOpenChange={(open: any) => { if (open) { diff --git a/src/pages/mete/list/index.tsx b/src/pages/meter/list/index.tsx similarity index 81% rename from src/pages/mete/list/index.tsx rename to src/pages/meter/list/index.tsx index d55c764..c40dd5c 100644 --- a/src/pages/mete/list/index.tsx +++ b/src/pages/meter/list/index.tsx @@ -1,6 +1,7 @@ import { MyButtons, MyColumns, + MyImportModal, MyPageContainer, MyProTableProps, usePageTabs, @@ -41,6 +42,15 @@ export default function Index({ title = '仪表管理' }) { MyProTableProps.request(params, sort, Apis.Meter.HouseMeters.List) } toolBarRender={(action) => [ + , , ]} columns={[ @@ -93,15 +103,20 @@ export default function Index({ title = '仪表管理' }) { }, MyColumns.SoftDelete({ - onRestore: Apis.Company.Companies.Restore, - onSoftDelete: Apis.Company.Companies.SoftDelete, + onRestore: Apis.Meter.HouseMeters.Restore, + onSoftDelete: Apis.Meter.HouseMeters.SoftDelete, search: false, }), MyColumns.CreatedAt(), MyColumns.Option({ render: (_, item: any, index, action) => ( - {/* */} + { + navigate(`/meter/readings/show/${item.id}`); + }} + /> @@ -118,14 +133,14 @@ export default function Index({ title = '仪表管理' }) { {item.meter_type === HouseMetersMeterTypeEnum.CommonMeter.value && ( )} - Apis.Company.Companies.Delete({ id: item.id }).then(() => + Apis.Meter.HouseMeters.Delete({ id: item.id }).then(() => action?.reload(), ) } diff --git a/src/pages/mete/list/modals/MeterCreate.tsx b/src/pages/meter/list/modals/MeterCreate.tsx similarity index 63% rename from src/pages/mete/list/modals/MeterCreate.tsx rename to src/pages/meter/list/modals/MeterCreate.tsx index edf4ef3..3e083c8 100644 --- a/src/pages/mete/list/modals/MeterCreate.tsx +++ b/src/pages/meter/list/modals/MeterCreate.tsx @@ -37,6 +37,8 @@ export default function Create(props: MyBetaModalFormProps) { onFinish={async (values) => Apis.Meter.HouseMeters.Store({ ...values, + latest_value: values.initial_value, + latest_time: values.initial_time, }) .then(() => { props.reload?.(); @@ -93,11 +95,62 @@ export default function Create(props: MyBetaModalFormProps) { { key: 'initial_time', title: '初始抄表时间', - valueType: 'date', + valueType: 'dateTime', colProps: { span: 24 }, formItemProps: { ...rulesHelper.text }, + fieldProps: { + disabledDate: (current: any) => { + // 禁用未来的日期 + return current && current > new Date(); + }, + disabledTime: (current: any) => { + // 如果是今天,禁用未来的时间 + if ( + current && + current.format('YYYY-MM-DD') === + new Date().toISOString().split('T')[0] + ) { + const now = new Date(); + return { + disabledHours: () => { + const hours = []; + for (let i = now.getHours() + 1; i < 24; i++) { + hours.push(i); + } + return hours; + }, + disabledMinutes: (selectedHour: number) => { + if (selectedHour === now.getHours()) { + const minutes = []; + for (let i = now.getMinutes() + 1; i < 60; i++) { + minutes.push(i); + } + return minutes; + } + return []; + }, + disabledSeconds: ( + selectedHour: number, + selectedMinute: number, + ) => { + if ( + selectedHour === now.getHours() && + selectedMinute === now.getMinutes() + ) { + const seconds = []; + for (let i = now.getSeconds() + 1; i < 60; i++) { + seconds.push(i); + } + return seconds; + } + return []; + }, + }; + } + return {}; + }, + }, }, - { valueType: 'dependency', name: ['asset_projects_id'], diff --git a/src/pages/mete/list/modals/MeterHasHouse.tsx b/src/pages/meter/list/modals/MeterHasHouse.tsx similarity index 99% rename from src/pages/mete/list/modals/MeterHasHouse.tsx rename to src/pages/meter/list/modals/MeterHasHouse.tsx index e7d52ca..76db1b2 100644 --- a/src/pages/mete/list/modals/MeterHasHouse.tsx +++ b/src/pages/meter/list/modals/MeterHasHouse.tsx @@ -54,6 +54,7 @@ export default function ChargeStandardHasHouse(props: MyBetaModalFormProps) { + + + +
+ 【{item?.id}】{item?.name} +
+
+ + + + + + + + + {item?.charge_standard?.name || '-'} + + + {item?.initial_value} + + + {item?.initial_time} + + + {item?.latest_value} + + + + {item?.latest_time} + + + + {item?.remark || '-'} + +
+
+
+ ); +} diff --git a/src/pages/mete/readings/index.tsx b/src/pages/meter/readings/index.tsx similarity index 83% rename from src/pages/mete/readings/index.tsx rename to src/pages/meter/readings/index.tsx index 885176e..9057773 100644 --- a/src/pages/mete/readings/index.tsx +++ b/src/pages/meter/readings/index.tsx @@ -15,6 +15,7 @@ import { HouseMetersUsageTypeEnum, } from '@/gen/Enums'; import NormalReading from './modals/NormalReading'; +import ResetReading from './modals/ResetReading'; export default function Index({ title = '抄表数据' }) { const navigate = useNavigate(); @@ -58,6 +59,10 @@ export default function Index({ title = '抄表数据' }) { title: '仪表名称', dataIndex: 'name', }, + { + title: '关联房屋', + dataIndex: 'full_name', + }, { title: '收费标准', dataIndex: ['charge_standard', 'name'], @@ -83,34 +88,27 @@ export default function Index({ title = '抄表数据' }) { dataIndex: 'latest_time', search: false, }, - { - title: '备注', - dataIndex: 'remark', - search: false, - }, - MyColumns.SoftDelete({ - onRestore: Apis.Company.Companies.Restore, - onSoftDelete: Apis.Company.Companies.SoftDelete, - search: false, - }), MyColumns.CreatedAt(), MyColumns.Option({ render: (_, item: any, index, action) => ( {/* */} + { + navigate(`/meter/readings/show/${item.id}`); + }} + /> - - - Apis.Company.Companies.Delete({ id: item.id }).then(() => - action?.reload(), - ) - } + ), diff --git a/src/pages/meter/readings/modals/CorrectReading.tsx b/src/pages/meter/readings/modals/CorrectReading.tsx new file mode 100644 index 0000000..48a8249 --- /dev/null +++ b/src/pages/meter/readings/modals/CorrectReading.tsx @@ -0,0 +1,210 @@ +import { + MyBetaModalFormProps, + MyButtons, + MyModalFormProps, + rulesHelper, +} from '@/common'; +import { Selects } from '@/components/Select'; +import { Apis } from '@/gen/Apis'; +import { HouseMeterReadingsOperationTypeEnum } from '@/gen/Enums'; +import { BetaSchemaForm } from '@ant-design/pro-components'; +import { Form, message } from 'antd'; + +export default function Create(props: MyBetaModalFormProps) { + const [form] = Form.useForm(); + + return ( + + {...MyModalFormProps.props} + title={`修正抄表数据`} + layout="horizontal" + labelCol={{ span: 6 }} + wrapperCol={{ span: 18 }} + labelAlign="left" + width="600px" + key={new Date().getTime()} + trigger={} + form={form} + onOpenChange={(open: any) => { + if (open && props.item) { + form.setFieldsValue(props.item); + } + }} + onFinish={async (values) => + Apis.Meter.HouseMeterReadings.Update({ + ...values, + id: props.item?.id ?? 0, + house_meters_id: props.item?.house_meters_id, + previous_reading: props.item?.previous_reading, + operation_type: + HouseMeterReadingsOperationTypeEnum.CorrectReading.value, + }) + .then(() => { + props.reload?.(); + message.success(props.title + '成功'); + return true; + }) + .catch(() => false) + } + columns={[ + { + key: 'previous_reading', + title: '上次抄表读数', + colProps: { span: 24 }, + fieldProps: { disabled: true }, + }, + { + key: 'current_reading', + title: '修正抄表读数', + valueType: 'number', + colProps: { span: 24 }, + formItemProps: { + ...rulesHelper.number, + rules: [ + ...rulesHelper.number.rules, + { + validator: (_, value) => { + const latestValue = form.getFieldValue('latest_value'); + if ( + value && + latestValue && + Number(value) <= Number(latestValue) + ) { + return Promise.reject( + new Error('本次读数必须大于上次抄表读数'), + ); + } + return Promise.resolve(); + }, + }, + ], + }, + fieldProps: { + onChange: (e: any, num: number) => { + form.setFieldsValue({ + usage_amount: rulesHelper.getDifference( + parseFloat(form.getFieldValue('previous_reading')), + parseFloat(form.getFieldValue('current_reading')), + ), + remark: `修正前读数:${props.item?.current_reading}`, + }); + }, + }, + }, + { + key: 'reading_time', + title: '修正抄表时间', + valueType: 'dateTime', + colProps: { span: 24 }, + formItemProps: { + ...rulesHelper.text, + rules: [ + ...rulesHelper.text.rules, + { + validator: (_, value) => { + const latestTime = form.getFieldValue('latest_time'); + if (value && latestTime) { + const currentTime = new Date(value); + const lastTime = new Date(latestTime); + if (currentTime <= lastTime) { + return Promise.reject( + new Error('本次抄表时间必须大于上次抄表时间'), + ); + } + } + return Promise.resolve(); + }, + }, + ], + }, + fieldProps: { + disabledDate: (current: any) => { + // 禁用未来的日期 + return current && current > new Date(); + }, + disabledTime: (current: any) => { + // 如果是今天,禁用未来的时间 + if ( + current && + current.format('YYYY-MM-DD') === + new Date().toISOString().split('T')[0] + ) { + const now = new Date(); + return { + disabledHours: () => { + const hours = []; + for (let i = now.getHours() + 1; i < 24; i++) { + hours.push(i); + } + return hours; + }, + disabledMinutes: (selectedHour: number) => { + if (selectedHour === now.getHours()) { + const minutes = []; + for (let i = now.getMinutes() + 1; i < 60; i++) { + minutes.push(i); + } + return minutes; + } + return []; + }, + disabledSeconds: ( + selectedHour: number, + selectedMinute: number, + ) => { + if ( + selectedHour === now.getHours() && + selectedMinute === now.getMinutes() + ) { + const seconds = []; + for (let i = now.getSeconds() + 1; i < 60; i++) { + seconds.push(i); + } + return seconds; + } + return []; + }, + }; + } + return {}; + }, + }, + }, + { + key: 'usage_amount', + title: '修正后用量', + valueType: 'number', + colProps: { span: 24 }, + formItemProps: { + ...rulesHelper.number, + }, + fieldProps: { + disabled: true, + }, + }, + Selects?.Employees({ + key: 'company_employees_id', + title: '抄表人', + params: { + companies_id: props.item?.companies_id, + }, + colProps: { span: 24 }, + required: true, + fieldProps: { + showSearch: true, + fieldNames: { + label: 'label', + value: 'value', + }, + }, + }), + { + key: 'remark', + title: '备注', + valueType: 'textarea', + colProps: { span: 24 }, + }, + ]} + /> + ); +} diff --git a/src/pages/mete/readings/modals/NormalReading.tsx b/src/pages/meter/readings/modals/NormalReading.tsx similarity index 65% rename from src/pages/mete/readings/modals/NormalReading.tsx rename to src/pages/meter/readings/modals/NormalReading.tsx index bbdae65..a337fc8 100644 --- a/src/pages/mete/readings/modals/NormalReading.tsx +++ b/src/pages/meter/readings/modals/NormalReading.tsx @@ -10,7 +10,7 @@ import { HouseMeterReadingsOperationTypeEnum } from '@/gen/Enums'; import { BetaSchemaForm } from '@ant-design/pro-components'; import { Form, message } from 'antd'; -export default function Create(props: MyBetaModalFormProps) { +export default function NormalReading(props: MyBetaModalFormProps) { const [form] = Form.useForm(); return ( @@ -23,7 +23,13 @@ export default function Create(props: MyBetaModalFormProps) { labelAlign="left" width="600px" key={new Date().getTime()} - trigger={} + trigger={ + + } form={form} onOpenChange={(open: any) => { if (open && props.item) { @@ -41,6 +47,7 @@ export default function Create(props: MyBetaModalFormProps) { onFinish={async (values) => Apis.Meter.HouseMeterReadings.Store({ ...values, + house_meters_id: props.item?.id, operation_type: HouseMeterReadingsOperationTypeEnum.NormalReading.value, }) @@ -61,11 +68,10 @@ export default function Create(props: MyBetaModalFormProps) { { key: 'latest_time', title: '上次抄表时间', - valueType: 'date', + valueType: 'dateTime', colProps: { span: 24 }, fieldProps: { disabled: true }, }, - { key: 'current_reading', title: '本次抄表读数', @@ -96,7 +102,7 @@ export default function Create(props: MyBetaModalFormProps) { { key: 'reading_time', title: '本次抄表时间', - valueType: 'date', + valueType: 'dateTime', colProps: { span: 24 }, formItemProps: { ...rulesHelper.text, @@ -119,6 +125,58 @@ export default function Create(props: MyBetaModalFormProps) { }, ], }, + fieldProps: { + disabledDate: (current: any) => { + // 禁用未来的日期 + return current && current > new Date(); + }, + disabledTime: (current: any) => { + // 如果是今天,禁用未来的时间 + if ( + current && + current.format('YYYY-MM-DD') === + new Date().toISOString().split('T')[0] + ) { + const now = new Date(); + return { + disabledHours: () => { + const hours = []; + for (let i = now.getHours() + 1; i < 24; i++) { + hours.push(i); + } + return hours; + }, + disabledMinutes: (selectedHour: number) => { + if (selectedHour === now.getHours()) { + const minutes = []; + for (let i = now.getMinutes() + 1; i < 60; i++) { + minutes.push(i); + } + return minutes; + } + return []; + }, + disabledSeconds: ( + selectedHour: number, + selectedMinute: number, + ) => { + if ( + selectedHour === now.getHours() && + selectedMinute === now.getMinutes() + ) { + const seconds = []; + for (let i = now.getSeconds() + 1; i < 60; i++) { + seconds.push(i); + } + return seconds; + } + return []; + }, + }; + } + return {}; + }, + }, }, Selects?.Employees({ key: 'company_employees_id', diff --git a/src/pages/meter/readings/modals/ResetReading.tsx b/src/pages/meter/readings/modals/ResetReading.tsx new file mode 100644 index 0000000..c73897d --- /dev/null +++ b/src/pages/meter/readings/modals/ResetReading.tsx @@ -0,0 +1,220 @@ +import { + MyBetaModalFormProps, + MyButtons, + MyFormItems, + MyModalFormProps, + rulesHelper, +} from '@/common'; +import { Selects } from '@/components/Select'; +import { Apis } from '@/gen/Apis'; +import { + HouseMeterReadingsOperationTypeEnum, + HouseMetersMeterTypeEnum, + HouseMetersUsageTypeEnum, +} from '@/gen/Enums'; +import { BetaSchemaForm } from '@ant-design/pro-components'; +import { Form, message } from 'antd'; + +export default function Create(props: MyBetaModalFormProps) { + const [form] = Form.useForm(); + + return ( + + {...MyModalFormProps.props} + title={`重置抄表数据`} + layout="horizontal" + labelCol={{ span: 6 }} + wrapperCol={{ span: 18 }} + labelAlign="left" + width="600px" + key={new Date().getTime()} + trigger={ + + } + form={form} + onOpenChange={(open: any) => { + if (open && props.item) { + form.resetFields(); // 清空表单数据 + form.setFieldsValue({ + ...props.item, + house_meters_id: props.item?.id, + latest_value: + props.item?.latest_value === '0.00' + ? props.item?.initial_value + : props.item?.latest_value, + latest_time: props.item?.latest_time || props.item?.initial_time, + }); + } + }} + onFinish={async (values) => + Apis.Meter.HouseMeterReadings.Store({ + ...values, + house_meters_id: props.item?.id, + operation_type: + HouseMeterReadingsOperationTypeEnum.ResetReading.value, + }) + .then(() => { + props.reload?.(); + message.success(props.title + '成功'); + return true; + }) + .catch(() => false) + } + columns={[ + { + key: 'name', + title: '仪表名称', + colProps: { span: 24 }, + fieldProps: { disabled: true }, + formItemProps: { ...rulesHelper.text }, + }, + MyFormItems.EnumRadio({ + key: 'meter_type', + title: '仪表类型', + colProps: { span: 24 }, + valueEnum: HouseMetersMeterTypeEnum, + required: true, + fieldProps: { disabled: true }, + }), + MyFormItems.EnumRadio({ + key: 'usage_type', + title: '使用类型', + colProps: { span: 24 }, + valueEnum: HouseMetersUsageTypeEnum, + required: true, + fieldProps: { disabled: true }, + }), + { + key: 'latest_value', + title: '上次抄表读数', + colProps: { span: 24 }, + fieldProps: { disabled: true }, + }, + { + key: 'latest_time', + title: '上次抄表时间', + valueType: 'dateTime', + colProps: { span: 24 }, + fieldProps: { disabled: true }, + }, + + { + key: 'current_reading', + title: '重置抄表读数', + valueType: 'number', + colProps: { span: 24 }, + formItemProps: { + ...rulesHelper.number, + }, + }, + { + key: 'reading_time', + title: '重置抄表时间', + valueType: 'dateTime', + colProps: { span: 24 }, + formItemProps: { + ...rulesHelper.text, + rules: [ + ...rulesHelper.text.rules, + { + validator: (_, value) => { + const latestTime = form.getFieldValue('latest_time'); + if (value && latestTime) { + const currentTime = new Date(value); + const lastTime = new Date(latestTime); + if (currentTime <= lastTime) { + return Promise.reject( + new Error('本次抄表时间必须大于上次抄表时间'), + ); + } + } + return Promise.resolve(); + }, + }, + ], + }, + fieldProps: { + disabledDate: (current: any) => { + // 禁用未来的日期 + return current && current > new Date(); + }, + disabledTime: (current: any) => { + // 如果是今天,禁用未来的时间 + if ( + current && + current.format('YYYY-MM-DD') === + new Date().toISOString().split('T')[0] + ) { + const now = new Date(); + return { + disabledHours: () => { + const hours = []; + for (let i = now.getHours() + 1; i < 24; i++) { + hours.push(i); + } + return hours; + }, + disabledMinutes: (selectedHour: number) => { + if (selectedHour === now.getHours()) { + const minutes = []; + for (let i = now.getMinutes() + 1; i < 60; i++) { + minutes.push(i); + } + return minutes; + } + return []; + }, + disabledSeconds: ( + selectedHour: number, + selectedMinute: number, + ) => { + if ( + selectedHour === now.getHours() && + selectedMinute === now.getMinutes() + ) { + const seconds = []; + for (let i = now.getSeconds() + 1; i < 60; i++) { + seconds.push(i); + } + return seconds; + } + return []; + }, + }; + } + return {}; + }, + }, + }, + Selects?.Employees({ + key: 'company_employees_id', + title: '抄表人', + params: { + companies_id: props.item?.companies_id, + }, + colProps: { span: 24 }, + required: true, + fieldProps: { + showSearch: true, + fieldNames: { + label: 'label', + value: 'value', + }, + }, + }), + + { + key: 'remark', + title: '备注', + valueType: 'textarea', + colProps: { span: 24 }, + }, + ]} + /> + ); +} diff --git a/src/pages/meter/readings/show/$id.tsx b/src/pages/meter/readings/show/$id.tsx new file mode 100644 index 0000000..cef7e4e --- /dev/null +++ b/src/pages/meter/readings/show/$id.tsx @@ -0,0 +1,71 @@ +import { MyPageContainer, usePageTabs } from '@/common'; +import { Apis } from '@/gen/Apis'; +import { ProCard } from '@ant-design/pro-components'; +import { useParams } from '@umijs/max'; +import { Tabs } from 'antd'; +import { useEffect, useState } from 'react'; +import MeteInfo from '../components/MeteInfo'; +import HasHouse from '../table/HasHouse'; +import ReadingLIst from '../table/ReadingLIst'; + +export default function Show({ title = '仪表详情' }) { + const { id } = useParams<{ id: string }>(); + const [data, setShow] = useState({}); + console.log('id', data); + + // 注册标签页 + const { addTab } = usePageTabs({ + tabKey: `meter-detail-${id}`, + tabLabel: `仪表:${data?.name}` || title, + }); + + const loadShow = () => { + let paramsId: any = { id: id ?? 0 }; + Apis.Meter.HouseMeters.Show(paramsId).then((res) => { + setShow(res?.data); + // 更新标签页标题 + if (res?.data?.name) { + addTab({ + key: `meter-detail-${id}`, + label: title, + path: `/mete/readings/show/${id}`, + }); + } + }); + }; + + useEffect(() => { + loadShow(); + }, [id]); + + let items = [ + { + label: '抄表数据', + key: '1', + closable: false, + children: ( + { + loadShow(); + }} + /> + ), + }, + { + label: '关联房屋', + key: '2', + closable: false, + children: , + }, + ]; + + return ( + + + + + + + ); +} diff --git a/src/pages/meter/readings/table/HasHouse.tsx b/src/pages/meter/readings/table/HasHouse.tsx new file mode 100644 index 0000000..f8aeb0e --- /dev/null +++ b/src/pages/meter/readings/table/HasHouse.tsx @@ -0,0 +1,103 @@ +import { + MyBetaModalFormProps, + MyButtons, + MyColumns, + MyProTableProps, +} from '@/common'; +import { Apis } from '@/gen/Apis'; +import { HouseMetersMeterTypeEnum } from '@/gen/Enums'; +import { ProTable } from '@ant-design/pro-components'; +import { Space } from 'antd'; +import MeterHasHouse from '../../list/modals/MeterHasHouse'; +import MeterHasOne from '../../list/modals/MeterHasOne'; +import NormalReading from '../modals/NormalReading'; + +export default function Index(props: MyBetaModalFormProps) { + return ( + <> + + MyProTableProps.request( + { ...params, house_meters_id: props?.item?.id }, + sort, + Apis.Meter.HouseMeterHasHouses.List, + ) + } + toolBarRender={(action) => [ + , + ...(props?.item?.meter_type === + HouseMetersMeterTypeEnum.HouseMeter.value + ? [ + , + ] + : []), + ...(props?.item?.meter_type === + HouseMetersMeterTypeEnum.CommonMeter.value + ? [ + , + ] + : []), + ]} + // search={false} + // options={false} + columns={[ + MyColumns.ID(), + { + title: '项目名称', + dataIndex: 'project_name', + search: false, + }, + { + title: '楼栋名称', + dataIndex: 'building_name', + search: false, + }, + { + title: '单元名称', + dataIndex: 'unit_name', + search: false, + }, + { + title: '房号', + dataIndex: 'name', + search: false, + }, + { + title: '房屋名称', + dataIndex: 'full_name', + }, + MyColumns.UpdatedAt(), + MyColumns.Option({ + render: (_, item: any, index, action) => ( + + + Apis.Meter.HouseMeterHasHouses.Delete({ id: item.id }).then( + () => action?.reload(), + ) + } + /> + + ), + }), + ]} + /> + + ); +} diff --git a/src/pages/meter/readings/table/ReadingLIst.tsx b/src/pages/meter/readings/table/ReadingLIst.tsx new file mode 100644 index 0000000..33d60e6 --- /dev/null +++ b/src/pages/meter/readings/table/ReadingLIst.tsx @@ -0,0 +1,91 @@ +import { MyBetaModalFormProps, MyColumns, MyProTableProps } from '@/common'; +import { Apis } from '@/gen/Apis'; +import { HouseMeterReadingsOperationTypeEnum } from '@/gen/Enums'; +import { ProTable } from '@ant-design/pro-components'; +import { Space } from 'antd'; +import CorrectReading from '../modals/CorrectReading'; +import NormalReading from '../modals/NormalReading'; +import ResetReading from '../modals/ResetReading'; + +export default function Index(props: MyBetaModalFormProps) { + return ( + <> + + MyProTableProps.request( + { ...params, house_meters_id: props?.item?.id }, + sort, + Apis.Meter.HouseMeterReadings.List, + ) + } + toolBarRender={(action) => [ + , + , + ]} + // search={false} + // options={false} + columns={[ + MyColumns.EnumTag({ + title: '操作类型', + dataIndex: 'operation_type', + valueEnum: HouseMeterReadingsOperationTypeEnum, + }), + { + title: '抄表读数', + dataIndex: 'current_reading', + search: false, + }, + { + title: '抄表用量', + dataIndex: 'usage_amount', + search: false, + }, + { + title: '抄表时间', + dataIndex: 'reading_time', + search: false, + }, + { + title: '抄表人', + dataIndex: ['company_employee', 'name'], + search: false, + }, + { + title: '备注', + dataIndex: 'remark', + search: false, + }, + { + title: '账单状态', + dataIndex: 'bill_status', + render: (value) => (value ? '已生成' : '未生成'), + search: false, + }, + MyColumns.Option({ + render: (_, item: any, index, action) => ( + + {/* 只有未生成账单的抄表记录,且不是重置读数,才显示修正按钮 */} + {!item?.bill_status && + item?.operation_type !== + HouseMeterReadingsOperationTypeEnum.ResetReading.value && ( + + )} + + ), + }), + ]} + /> + + ); +} diff --git a/src/pages/mete/tasks/index.tsx b/src/pages/meter/tasks/index.tsx similarity index 100% rename from src/pages/mete/tasks/index.tsx rename to src/pages/meter/tasks/index.tsx diff --git a/src/pages/mete/tasks/modals/TaskCreate.tsx b/src/pages/meter/tasks/modals/TaskCreate.tsx similarity index 100% rename from src/pages/mete/tasks/modals/TaskCreate.tsx rename to src/pages/meter/tasks/modals/TaskCreate.tsx diff --git a/src/pages/mete/tasks/modals/TaskShow.tsx b/src/pages/meter/tasks/modals/TaskShow.tsx similarity index 100% rename from src/pages/mete/tasks/modals/TaskShow.tsx rename to src/pages/meter/tasks/modals/TaskShow.tsx From c9ea61ef8f2d5adff087f113f648149d248dce01 Mon Sep 17 00:00:00 2001 From: uiuJun <> Date: Wed, 1 Oct 2025 15:55:16 +0800 Subject: [PATCH 3/4] =?UTF-8?q?fix=EF=BC=9A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .umirc.ts | 2 +- gencode.json | 2 +- src/gen/ApiTypes.d.ts | 30 +- src/gen/Apis.ts | 20 +- src/gen/Enums.ts | 931 ++++++++------------ src/pages/meter/tasks/index.tsx | 6 +- src/pages/meter/tasks/modals/TaskCreate.tsx | 14 +- 7 files changed, 437 insertions(+), 568 deletions(-) diff --git a/.umirc.ts b/.umirc.ts index 6fb83c0..6fdf83b 100644 --- a/.umirc.ts +++ b/.umirc.ts @@ -18,7 +18,7 @@ export default defineConfig({ // target: 'http://10.39.13.78:8001/', target: 'https://test-admin.linyikj.com.cn/', // target: 'https://admin.linyikj.com.cn/', - // target: 'http://cd69cef8.natappfree.cc/', + // target: 'http://c789629c.natappfree.cc', changeOrigin: true, pathRewrite: { '^': '' }, diff --git a/gencode.json b/gencode.json index b5fb778..cc974bb 100644 --- a/gencode.json +++ b/gencode.json @@ -1,4 +1,4 @@ { - "url": "http://10.39.13.78:8001/api/docs/openapi", + "url": "http://c789629c.natappfree.cc/api/docs/openapi", "module": "Admin" } diff --git a/src/gen/ApiTypes.d.ts b/src/gen/ApiTypes.d.ts index 3141e45..67827a0 100644 --- a/src/gen/ApiTypes.d.ts +++ b/src/gen/ApiTypes.d.ts @@ -67,6 +67,16 @@ declare namespace ApiTypes { "asset_houses_id"?: number; // 资产房屋ID "status"?: string; // 状态,[enum:HouseOccupantsStatusEnum] }; + type CustomerList = { + "name"?: string; // 客户姓名 + "phone"?: string; // 客户手机号 + "house_relation"?: string; // 房客关系,[enum:HouseOccupantsHouseRelationEnum] + "residential_relation"?: string; // 居住关系,[enum:HouseOccupantsResidentialRelationEnum] + "relation_with_owner"?: string; // 与产权人关系,[enum:HouseOccupantsRelationWithOwnerEnum] + }; + type CustomerHouseByPhone = { + "phone": string; // 客户手机号 + }; type Update = { "id": number; // id "name": string; // 客户姓名 @@ -644,6 +654,7 @@ declare namespace ApiTypes { namespace Positions { type List = { "name"?: string; // 模糊搜索:名称 + "is_use"?: number; // 是否启用,1启用,0禁用 }; type Store = { "name": string; // 岗位名称 @@ -1256,6 +1267,9 @@ declare namespace ApiTypes { type Delete = { "id": number; // id }; + type CreateHouseBill = { + "id": number; // 任务明单id + }; } namespace HouseChargeTasks { type List = { @@ -1285,6 +1299,9 @@ declare namespace ApiTypes { type Delete = { "id": number; // id }; + type ExecuteTask = { + "id": number; // id + }; } } namespace HouseOrder { @@ -1344,7 +1361,8 @@ declare namespace ApiTypes { } namespace HouseMeterReadings { type List = { - "name"?: string; // 模糊搜索:名称 + "house_meters_id": number; // 仪表id,[ref:house_meters] + "operation_type"?: string; // 操作类型,[enum:HouseMeterReadingsOperationTypeEnum] }; type Store = { "house_meters_id": number; // 仪表id,[ref:house_meters] @@ -1352,7 +1370,7 @@ declare namespace ApiTypes { "current_reading": number; // 本次读数 "reading_time": Date; // 抄表时间 "company_employees_id": number; // 抄表人id,[ref:company_employees] - "remark": string; // 备注 + "remark"?: string; // 备注 }; type Update = { "id": number; // id @@ -1364,7 +1382,7 @@ declare namespace ApiTypes { "loss_amount"?: number; // 损耗 "reading_time": Date; // 抄表时间 "company_employees_id": number; // 抄表人id,[ref:company_employees] - "remark": string; // 备注 + "remark"?: string; // 备注 }; type Show = { "id": number; // id @@ -1385,6 +1403,9 @@ declare namespace ApiTypes { type Delete = { "id": number; // id }; + type CreateMeterBill = { + "id": number; // 仪表任务明细id + }; } namespace HouseMeterTasks { type List = { @@ -1410,6 +1431,9 @@ declare namespace ApiTypes { type Delete = { "id": number; // id }; + type ExecuteMeterTasks = { + "id": number; // id + }; } namespace HouseMeters { type List = { diff --git a/src/gen/Apis.ts b/src/gen/Apis.ts index cf3e4bd..3de29c3 100644 --- a/src/gen/Apis.ts +++ b/src/gen/Apis.ts @@ -46,6 +46,12 @@ export const Apis = { List(data?: ApiTypes.Archive.HouseOccupants.List): Promise { return request('admin/archive/house_occupants/list', { data }); }, + CustomerList(data?: ApiTypes.Archive.HouseOccupants.CustomerList): Promise { + return request('admin/archive/house_occupants/customer_list', { data }); + }, + CustomerHouseByPhone(data: ApiTypes.Archive.HouseOccupants.CustomerHouseByPhone): Promise { + return request('admin/archive/house_occupants/customer_house_by_phone', { data }); + }, Update(data: ApiTypes.Archive.HouseOccupants.Update): Promise { return request('admin/archive/house_occupants/update', { data }); }, @@ -737,6 +743,9 @@ export const Apis = { Delete(data: ApiTypes.HouseCharage.HouseChargeTaskDetails.Delete): Promise { return request('admin/house_charage/house_charge_task_details/delete', { data }); }, + CreateHouseBill(data: ApiTypes.HouseCharage.HouseChargeTaskDetails.CreateHouseBill): Promise { + return request('admin/house_charage/house_charge_task_details/create_house_bill', { data }); + }, }, HouseChargeTasks: { List(data?: ApiTypes.HouseCharage.HouseChargeTasks.List): Promise { @@ -757,6 +766,9 @@ export const Apis = { Delete(data: ApiTypes.HouseCharage.HouseChargeTasks.Delete): Promise { return request('admin/house_charage/house_charge_tasks/delete', { data }); }, + ExecuteTask(data: ApiTypes.HouseCharage.HouseChargeTasks.ExecuteTask): Promise { + return request('admin/house_charage/house_charge_tasks/execute_task', { data }); + }, }, }, HouseOrder: { @@ -805,7 +817,7 @@ export const Apis = { }, }, HouseMeterReadings: { - List(data?: ApiTypes.Meter.HouseMeterReadings.List): Promise { + List(data: ApiTypes.Meter.HouseMeterReadings.List): Promise { return request('admin/meter/house_meter_readings/list', { data }); }, Store(data: ApiTypes.Meter.HouseMeterReadings.Store): Promise { @@ -831,6 +843,9 @@ export const Apis = { Delete(data: ApiTypes.Meter.HouseMeterTaskDetails.Delete): Promise { return request('admin/meter/house_meter_task_details/delete', { data }); }, + CreateMeterBill(data: ApiTypes.Meter.HouseMeterTaskDetails.CreateMeterBill): Promise { + return request('admin/meter/house_meter_task_details/create_meter_bill', { data }); + }, }, HouseMeterTasks: { List(data?: ApiTypes.Meter.HouseMeterTasks.List): Promise { @@ -851,6 +866,9 @@ export const Apis = { Delete(data: ApiTypes.Meter.HouseMeterTasks.Delete): Promise { return request('admin/meter/house_meter_tasks/delete', { data }); }, + ExecuteMeterTasks(data: ApiTypes.Meter.HouseMeterTasks.ExecuteMeterTasks): Promise { + return request('admin/meter/house_meter_tasks/execute_meter_tasks', { data }); + }, }, HouseMeters: { List(data?: ApiTypes.Meter.HouseMeters.List): Promise { diff --git a/src/gen/Enums.ts b/src/gen/Enums.ts index a1ec500..4478ebb 100644 --- a/src/gen/Enums.ts +++ b/src/gen/Enums.ts @@ -1,803 +1,624 @@ // ActivitiesPublishStatusEnum -export const ActivitiesPublishStatusEnum = { - Unpublished: { text: '未发布', color: '#9e9e9e', value: 'Unpublished' }, - Published: { text: '已发布', color: '#00c853', value: 'Published' }, - Unlisted: { text: '已下架', color: '#d32f2f', value: 'Unlisted' }, +export const ActivitiesPublishStatusEnum= { + 'Unpublished': {"text":"未发布","color":"#9e9e9e","value":"Unpublished"}, + 'Published': {"text":"已发布","color":"#00c853","value":"Published"}, + 'Unlisted': {"text":"已下架","color":"#d32f2f","value":"Unlisted"}, }; // ActivitiesPublishTypeEnum -export const ActivitiesPublishTypeEnum = { - Manual: { text: '手动', color: '#4caf50', value: 'Manual' }, - Schedule: { text: '定时', color: '#2196f3', value: 'Schedule' }, +export const ActivitiesPublishTypeEnum= { + 'Manual': {"text":"手动","color":"#4caf50","value":"Manual"}, + 'Schedule': {"text":"定时","color":"#2196f3","value":"Schedule"}, }; // ActivitiesStatusEnum -export const ActivitiesStatusEnum = { - NotStarted: { text: '未开始', color: '#9e9e9e', value: 'NotStarted' }, - InProgress: { text: '进行中', color: '#00c853', value: 'InProgress' }, - Finished: { text: '已结束', color: '#d32f2f', value: 'Finished' }, +export const ActivitiesStatusEnum= { + 'NotStarted': {"text":"未开始","color":"#9e9e9e","value":"NotStarted"}, + 'InProgress': {"text":"进行中","color":"#00c853","value":"InProgress"}, + 'Finished': {"text":"已结束","color":"#d32f2f","value":"Finished"}, }; // ActivityEnrollsStatusEnum -export const ActivityEnrollsStatusEnum = { - PendingReview: { text: '待审核', color: '#2196f3', value: 'PendingReview' }, - Success: { text: '成功', color: '#00c853', value: 'Success' }, - Failed: { text: '失败', color: '#d32f2f', value: 'Failed' }, - Cancelled: { text: '取消', color: '#ff9800', value: 'Cancelled' }, +export const ActivityEnrollsStatusEnum= { + 'PendingReview': {"text":"待审核","color":"#2196f3","value":"PendingReview"}, + 'Success': {"text":"成功","color":"#00c853","value":"Success"}, + 'Failed': {"text":"失败","color":"#d32f2f","value":"Failed"}, + 'Cancelled': {"text":"取消","color":"#ff9800","value":"Cancelled"}, }; // AssetHousesOrientationEnum -export const AssetHousesOrientationEnum = { - East: { text: '东', color: '#007bff', value: 'East' }, - South: { text: '南', color: '#28a745', value: 'South' }, - West: { text: '西', color: '#ffc107', value: 'West' }, - North: { text: '北', color: '#dc3545', value: 'North' }, - Southeast: { text: '东南', color: '#20c997', value: 'Southeast' }, - Northeast: { text: '东北', color: '#6f42c1', value: 'Northeast' }, - Southwest: { text: '西南', color: '#fd7e14', value: 'Southwest' }, - Northwest: { text: '西北', color: '#17a2b8', value: 'Northwest' }, - EastWest: { text: '东西', color: '#6610f2', value: 'EastWest' }, - SouthNorth: { text: '南北', color: '#e83e8c', value: 'SouthNorth' }, +export const AssetHousesOrientationEnum= { + 'East': {"text":"东","color":"#007bff","value":"East"}, + 'South': {"text":"南","color":"#28a745","value":"South"}, + 'West': {"text":"西","color":"#ffc107","value":"West"}, + 'North': {"text":"北","color":"#dc3545","value":"North"}, + 'Southeast': {"text":"东南","color":"#20c997","value":"Southeast"}, + 'Northeast': {"text":"东北","color":"#6f42c1","value":"Northeast"}, + 'Southwest': {"text":"西南","color":"#fd7e14","value":"Southwest"}, + 'Northwest': {"text":"西北","color":"#17a2b8","value":"Northwest"}, + 'EastWest': {"text":"东西","color":"#6610f2","value":"EastWest"}, + 'SouthNorth': {"text":"南北","color":"#e83e8c","value":"SouthNorth"}, }; // AssetHousesOwnershipTypeEnum -export const AssetHousesOwnershipTypeEnum = { - CommodityHousing: { - text: '商品房', - color: '#007bff', - value: 'CommodityHousing', - }, - FundedHousing: { text: '集资房', color: '#28a745', value: 'FundedHousing' }, - MilitaryHousing: { - text: '军产房', - color: '#17a2b8', - value: 'MilitaryHousing', - }, - AffordableHousing: { - text: '保障房', - color: '#ffc107', - value: 'AffordableHousing', - }, - RuralHousing: { text: '农民房', color: '#6f42c1', value: 'RuralHousing' }, - CommercialOffice: { - text: '商业写字楼', - color: '#fd7e14', - value: 'CommercialOffice', - }, - CommercialComplex: { - text: '商业综合体', - color: '#dc3545', - value: 'CommercialComplex', - }, - ResettlementHousing: { - text: '回迁房', - color: '#20c997', - value: 'ResettlementHousing', - }, +export const AssetHousesOwnershipTypeEnum= { + 'CommodityHousing': {"text":"商品房","color":"#007bff","value":"CommodityHousing"}, + 'FundedHousing': {"text":"集资房","color":"#28a745","value":"FundedHousing"}, + 'MilitaryHousing': {"text":"军产房","color":"#17a2b8","value":"MilitaryHousing"}, + 'AffordableHousing': {"text":"保障房","color":"#ffc107","value":"AffordableHousing"}, + 'RuralHousing': {"text":"农民房","color":"#6f42c1","value":"RuralHousing"}, + 'CommercialOffice': {"text":"商业写字楼","color":"#fd7e14","value":"CommercialOffice"}, + 'CommercialComplex': {"text":"商业综合体","color":"#dc3545","value":"CommercialComplex"}, + 'ResettlementHousing': {"text":"回迁房","color":"#20c997","value":"ResettlementHousing"}, }; // AssetHousesPropertyOwnershipEnum -export const AssetHousesPropertyOwnershipEnum = { - Individual: { text: '个人', color: '#2db7f5', value: 'Individual' }, - Enterprise: { text: '企业', color: '#87d068', value: 'Enterprise' }, - Developer: { text: '开发商', color: '#fa8c16', value: 'Developer' }, - Government: { text: '政府', color: '#f5222d', value: 'Government' }, +export const AssetHousesPropertyOwnershipEnum= { + 'Individual': {"text":"个人","color":"#2db7f5","value":"Individual"}, + 'Enterprise': {"text":"企业","color":"#87d068","value":"Enterprise"}, + 'Developer': {"text":"开发商","color":"#fa8c16","value":"Developer"}, + 'Government': {"text":"政府","color":"#f5222d","value":"Government"}, }; // AssetHousesStatusEnum -export const AssetHousesStatusEnum = { - Unsold: { text: '未售', color: '#6c757d', value: 'Unsold' }, - SoldNotDelivered: { - text: '已售未交房', - color: '#ffc107', - value: 'SoldNotDelivered', - }, - SelfOccupied: { text: '自住', color: '#28a745', value: 'SelfOccupied' }, - Rented: { text: '出租', color: '#007bff', value: 'Rented' }, - Vacant: { text: '空置', color: '#dc3545', value: 'Vacant' }, +export const AssetHousesStatusEnum= { + 'Unsold': {"text":"未售","color":"#6c757d","value":"Unsold"}, + 'SoldNotDelivered': {"text":"已售未交房","color":"#ffc107","value":"SoldNotDelivered"}, + 'SelfOccupied': {"text":"自住","color":"#28a745","value":"SelfOccupied"}, + 'Rented': {"text":"出租","color":"#007bff","value":"Rented"}, + 'Vacant': {"text":"空置","color":"#dc3545","value":"Vacant"}, }; // AssetHousesUsageEnum -export const AssetHousesUsageEnum = { - Residence: { text: '住宅', color: '#007bff', value: 'Residence' }, - Apartment: { text: '公寓', color: '#28a745', value: 'Apartment' }, - Villa: { text: '别墅', color: '#17a2b8', value: 'Villa' }, - Shop: { text: '商铺', color: '#ffc107', value: 'Shop' }, - ParkingSpace: { text: '车位', color: '#6c757d', value: 'ParkingSpace' }, - Office: { text: '写字楼', color: '#6610f2', value: 'Office' }, - Clubhouse: { text: '会所', color: '#fd7e14', value: 'Clubhouse' }, - PropertyRoom: { text: '物业用房', color: '#dc3545', value: 'PropertyRoom' }, +export const AssetHousesUsageEnum= { + 'Residence': {"text":"住宅","color":"#007bff","value":"Residence"}, + 'Apartment': {"text":"公寓","color":"#28a745","value":"Apartment"}, + 'Villa': {"text":"别墅","color":"#17a2b8","value":"Villa"}, + 'Shop': {"text":"商铺","color":"#ffc107","value":"Shop"}, + 'ParkingSpace': {"text":"车位","color":"#6c757d","value":"ParkingSpace"}, + 'Office': {"text":"写字楼","color":"#6610f2","value":"Office"}, + 'Clubhouse': {"text":"会所","color":"#fd7e14","value":"Clubhouse"}, + 'PropertyRoom': {"text":"物业用房","color":"#dc3545","value":"PropertyRoom"}, }; // AssetProjectsChargeEnum -export const AssetProjectsChargeEnum = { - Contract: { text: '包干制', color: '#007bff', value: 'Contract' }, - Commission: { text: '酬金制', color: '#28a745', value: 'Commission' }, +export const AssetProjectsChargeEnum= { + 'Contract': {"text":"包干制","color":"#007bff","value":"Contract"}, + 'Commission': {"text":"酬金制","color":"#28a745","value":"Commission"}, }; // AssetProjectsEntrustTypeEnum -export const AssetProjectsEntrustTypeEnum = { - DeveloperJointEntrust: { - text: '开发商全委', - color: '#007bff', - value: 'DeveloperJointEntrust', - }, - OwnersFullEntrust: { - text: '业委会全委', - color: '#28a745', - value: 'OwnersFullEntrust', - }, - GovernmentFullEntrust: { - text: '政府类全委', - color: '#ffc107', - value: 'GovernmentFullEntrust', - }, +export const AssetProjectsEntrustTypeEnum= { + 'DeveloperJointEntrust': {"text":"开发商全委","color":"#007bff","value":"DeveloperJointEntrust"}, + 'OwnersFullEntrust': {"text":"业委会全委","color":"#28a745","value":"OwnersFullEntrust"}, + 'GovernmentFullEntrust': {"text":"政府类全委","color":"#ffc107","value":"GovernmentFullEntrust"}, }; // AssetProjectsPropertyTypeEnum -export const AssetProjectsPropertyTypeEnum = { - Residence: { text: '住宅', color: '#ff0000', value: 'Residence' }, - Commercial: { text: '商业', color: '#ff6600', value: 'Commercial' }, - Office: { text: '办公', color: '#ffcc00', value: 'Office' }, - IndustrialPark: { text: '产业园', color: '#00cc66', value: 'IndustrialPark' }, - Complex: { text: '综合体', color: '#0099ff', value: 'Complex' }, - Municipal: { text: '市政设施', color: '#6633cc', value: 'Municipal' }, - Venue: { text: '场馆', color: '#9966ff', value: 'Venue' }, - Education: { text: '教育', color: '#339999', value: 'Education' }, - Medical: { text: '医疗', color: '#cc3366', value: 'Medical' }, +export const AssetProjectsPropertyTypeEnum= { + 'Residence': {"text":"住宅","color":"#ff0000","value":"Residence"}, + 'Commercial': {"text":"商业","color":"#ff6600","value":"Commercial"}, + 'Office': {"text":"办公","color":"#ffcc00","value":"Office"}, + 'IndustrialPark': {"text":"产业园","color":"#00cc66","value":"IndustrialPark"}, + 'Complex': {"text":"综合体","color":"#0099ff","value":"Complex"}, + 'Municipal': {"text":"市政设施","color":"#6633cc","value":"Municipal"}, + 'Venue': {"text":"场馆","color":"#9966ff","value":"Venue"}, + 'Education': {"text":"教育","color":"#339999","value":"Education"}, + 'Medical': {"text":"医疗","color":"#cc3366","value":"Medical"}, }; // AssetProjectsStatusEnum -export const AssetProjectsStatusEnum = { - SignedNotDelivered: { - text: '签约未交付', - color: '#6c757d', - value: 'SignedNotDelivered', - }, - RollingDevelopment: { - text: '滚动开发', - color: '#007bff', - value: 'RollingDevelopment', - }, - ManagedAndClosed: { - text: '在管封园', - color: '#ffc107', - value: 'ManagedAndClosed', - }, - Exited: { text: '退出', color: '#dc3545', value: 'Exited' }, +export const AssetProjectsStatusEnum= { + 'SignedNotDelivered': {"text":"签约未交付","color":"#6c757d","value":"SignedNotDelivered"}, + 'RollingDevelopment': {"text":"滚动开发","color":"#007bff","value":"RollingDevelopment"}, + 'ManagedAndClosed': {"text":"在管封园","color":"#ffc107","value":"ManagedAndClosed"}, + 'Exited': {"text":"退出","color":"#dc3545","value":"Exited"}, }; // AssetUnitsBuildingStructureEnum -export const AssetUnitsBuildingStructureEnum = { - SteelConcrete: { text: '钢混', color: '#007bff', value: 'SteelConcrete' }, - SteelStructure: { text: '钢结构', color: '#28a745', value: 'SteelStructure' }, - BrickConcrete: { text: '砖混', color: '#ffc107', value: 'BrickConcrete' }, - BrickWood: { text: '砖木', color: '#dc3545', value: 'BrickWood' }, +export const AssetUnitsBuildingStructureEnum= { + 'SteelConcrete': {"text":"钢混","color":"#007bff","value":"SteelConcrete"}, + 'SteelStructure': {"text":"钢结构","color":"#28a745","value":"SteelStructure"}, + 'BrickConcrete': {"text":"砖混","color":"#ffc107","value":"BrickConcrete"}, + 'BrickWood': {"text":"砖木","color":"#dc3545","value":"BrickWood"}, }; // AssetUnitsBuildingTypeEnum -export const AssetUnitsBuildingTypeEnum = { - SlabAndTower: { text: '板塔结合', color: '#007bff', value: 'SlabAndTower' }, - Slab: { text: '板楼', color: '#28a745', value: 'Slab' }, - Tower: { text: '塔楼', color: '#ffc107', value: 'Tower' }, +export const AssetUnitsBuildingTypeEnum= { + 'SlabAndTower': {"text":"板塔结合","color":"#007bff","value":"SlabAndTower"}, + 'Slab': {"text":"板楼","color":"#28a745","value":"Slab"}, + 'Tower': {"text":"塔楼","color":"#ffc107","value":"Tower"}, }; // BannerSpacesTypeEnum -export const BannerSpacesTypeEnum = { - Popup: { text: '弹窗', color: '#ff0000', value: 'Popup' }, - Banner: { text: '横幅广告', color: '#00ff00', value: 'Banner' }, - FloatingButton: { - text: '悬浮按钮', - color: '#0000ff', - value: 'FloatingButton', - }, +export const BannerSpacesTypeEnum= { + 'Popup': {"text":"弹窗","color":"#ff0000","value":"Popup"}, + 'Banner': {"text":"横幅广告","color":"#00ff00","value":"Banner"}, + 'FloatingButton': {"text":"悬浮按钮","color":"#0000ff","value":"FloatingButton"}, }; // BannersRedirectTypeEnum -export const BannersRedirectTypeEnum = { - InnerPage: { text: '跳内页', color: '#ff0000', value: 'InnerPage' }, - H5: { text: '跳H5', color: '#00ff00', value: 'H5' }, - MiniProgramHome: { - text: '跳小程序首屏', - color: '#0000ff', - value: 'MiniProgramHome', - }, - AnotherMiniProgram: { - text: '跳另一个小程序', - color: '#ffa500', - value: 'AnotherMiniProgram', - }, +export const BannersRedirectTypeEnum= { + 'InnerPage': {"text":"跳内页","color":"#ff0000","value":"InnerPage"}, + 'H5': {"text":"跳H5","color":"#00ff00","value":"H5"}, + 'MiniProgramHome': {"text":"跳小程序首屏","color":"#0000ff","value":"MiniProgramHome"}, + 'AnotherMiniProgram': {"text":"跳另一个小程序","color":"#ffa500","value":"AnotherMiniProgram"}, }; // BannersTypeEnum -export const BannersTypeEnum = { - Image: { text: '图片', color: '#ff0000', value: 'Image' }, - Video: { text: '视频', color: '#00ff00', value: 'Video' }, - Text: { text: '文本', color: '#0000ff', value: 'Text' }, +export const BannersTypeEnum= { + 'Image': {"text":"图片","color":"#ff0000","value":"Image"}, + 'Video': {"text":"视频","color":"#00ff00","value":"Video"}, + 'Text': {"text":"文本","color":"#0000ff","value":"Text"}, }; // 缓存类型 -export const CacheTypeEnum = { - MobilePhoneVerificationCode: { - text: '手机验证码', - color: '#e3da02', - value: 'MobilePhoneVerificationCode', - }, +export const CacheTypeEnum= { + 'MobilePhoneVerificationCode': {"text":"手机验证码","color":"#dc15e2","value":"MobilePhoneVerificationCode"}, }; // CompaniesMerchantTypeEnum -export const CompaniesMerchantTypeEnum = { - PropertyManagement: { - text: '物业公司', - color: '#007bff', - value: 'PropertyManagement', - }, - ServiceProvider: { - text: '服务商', - color: '#28a745', - value: 'ServiceProvider', - }, +export const CompaniesMerchantTypeEnum= { + 'PropertyManagement': {"text":"物业公司","color":"#007bff","value":"PropertyManagement"}, + 'ServiceProvider': {"text":"服务商","color":"#28a745","value":"ServiceProvider"}, }; // CompanyAppsAppTypeEnum -export const CompanyAppsAppTypeEnum = { - MiniProgram: { text: '微信小程序', color: '#3b82f6', value: 'MiniProgram' }, - MpOfficial: { text: '微信公众号', color: '#22c55e', value: 'MpOfficial' }, - WorkWechat: { text: '企业微信', color: '#6366f1', value: 'WorkWechat' }, +export const CompanyAppsAppTypeEnum= { + 'MiniProgram': {"text":"微信小程序","color":"#3b82f6","value":"MiniProgram"}, + 'MpOfficial': {"text":"微信公众号","color":"#22c55e","value":"MpOfficial"}, + 'WorkWechat': {"text":"企业微信","color":"#6366f1","value":"WorkWechat"}, }; // CompanyAppsModuleEnum -export const CompanyAppsModuleEnum = { - Employee: { text: '员工端', color: '#3b82f6', value: 'Employee' }, - Customer: { text: '客户端', color: '#10b981', value: 'Customer' }, +export const CompanyAppsModuleEnum= { + 'Employee': {"text":"员工端","color":"#3b82f6","value":"Employee"}, + 'Customer': {"text":"客户端","color":"#10b981","value":"Customer"}, }; // CompanyAppsWorkTypeEnum -export const CompanyAppsWorkTypeEnum = { - WorkWechatApp: { text: '企微应用', color: '#00c853', value: 'WorkWechatApp' }, - WorkWechat: { text: '企微', color: '#0091ea', value: 'WorkWechat' }, +export const CompanyAppsWorkTypeEnum= { + 'WorkWechatApp': {"text":"企微应用","color":"#00c853","value":"WorkWechatApp"}, + 'WorkWechat': {"text":"企微","color":"#0091ea","value":"WorkWechat"}, }; // CompanyEmployeeBacklogsStatusEnum -export const CompanyEmployeeBacklogsStatusEnum = { - Pending: { text: '待办', color: '#FF6600', value: 'Pending' }, - Completed: { text: '已办', color: '#2A82E4', value: 'Completed' }, +export const CompanyEmployeeBacklogsStatusEnum= { + 'Pending': {"text":"待办","color":"#FF6600","value":"Pending"}, + 'Completed': {"text":"已办","color":"#2A82E4","value":"Completed"}, }; // CompanyEmployeeBacklogsTypeEnum -export const CompanyEmployeeBacklogsTypeEnum = { - WorkOrder: { text: '工单', color: '#FF6600', value: 'WorkOrder' }, - Contract: { text: '合同', color: '#2A82E4', value: 'Contract' }, +export const CompanyEmployeeBacklogsTypeEnum= { + 'WorkOrder': {"text":"工单","color":"#FF6600","value":"WorkOrder"}, + 'Contract': {"text":"合同","color":"#2A82E4","value":"Contract"}, }; // CompanyReceiptAccountsPayChannelEnum -export const CompanyReceiptAccountsPayChannelEnum = { - WeChat: { text: '微信', color: '#07c160', value: 'WeChat' }, - Alipay: { text: '支付宝', color: '#1677ff', value: 'Alipay' }, - BankTransfer: { text: '银行转账', color: '#6c757d', value: 'BankTransfer' }, - TongLian: { text: '通联支付', color: '#ff9f0a', value: 'TongLian' }, +export const CompanyReceiptAccountsPayChannelEnum= { + 'WeChat': {"text":"微信","color":"#07c160","value":"WeChat"}, + 'Alipay': {"text":"支付宝","color":"#1677ff","value":"Alipay"}, + 'BankTransfer': {"text":"银行转账","color":"#6c757d","value":"BankTransfer"}, + 'TongLian': {"text":"通联支付","color":"#ff9f0a","value":"TongLian"}, }; // ConvenienceServicesTypeEnum -export const ConvenienceServicesTypeEnum = { - EmergencyRepair: { - text: '紧急抢修', - color: '#ef4444', - value: 'EmergencyRepair', - }, - LifeService: { text: '生活服务', color: '#3b82f6', value: 'LifeService' }, - GovernmentConsulting: { - text: '政务咨询', - color: '#10b981', - value: 'GovernmentConsulting', - }, - PropertyExclusive: { - text: '物业专属', - color: '#8b5cf6', - value: 'PropertyExclusive', - }, +export const ConvenienceServicesTypeEnum= { + 'EmergencyRepair': {"text":"紧急抢修","color":"#ef4444","value":"EmergencyRepair"}, + 'LifeService': {"text":"生活服务","color":"#3b82f6","value":"LifeService"}, + 'GovernmentConsulting': {"text":"政务咨询","color":"#10b981","value":"GovernmentConsulting"}, + 'PropertyExclusive': {"text":"物业专属","color":"#8b5cf6","value":"PropertyExclusive"}, }; // CustomerBacklogsStatusEnum -export const CustomerBacklogsStatusEnum = { - Pending: { text: '待办', color: '#faad14', value: 'Pending' }, - Completed: { text: '已办', color: '#2A82E4', value: 'Completed' }, +export const CustomerBacklogsStatusEnum= { + 'Pending': {"text":"待办","color":"#faad14","value":"Pending"}, + 'Completed': {"text":"已办","color":"#2A82E4","value":"Completed"}, }; // CustomerBacklogsTypeEnum -export const CustomerBacklogsTypeEnum = { - RegisterApply: { text: '登记申请', color: '#2db7f5', value: 'RegisterApply' }, - PaymentPending: { - text: '费用待缴', - color: '#faad14', - value: 'PaymentPending', - }, - ContractTodo: { text: '合同待办', color: '#722ed1', value: 'ContractTodo' }, +export const CustomerBacklogsTypeEnum= { + 'RegisterApply': {"text":"登记申请","color":"#2db7f5","value":"RegisterApply"}, + 'PaymentPending': {"text":"费用待缴","color":"#faad14","value":"PaymentPending"}, + 'ContractTodo': {"text":"合同待办","color":"#722ed1","value":"ContractTodo"}, }; // CustomerMomentTasksStatusEnum -export const CustomerMomentTasksStatusEnum = { - NotSent: { text: '未发', color: '#FF4500', value: 'NotSent' }, - Sent: { text: '已发', color: '#32CD32', value: 'Sent' }, +export const CustomerMomentTasksStatusEnum= { + 'NotSent': {"text":"未发","color":"#FF4500","value":"NotSent"}, + 'Sent': {"text":"已发","color":"#32CD32","value":"Sent"}, }; // CustomerMomentsChannelEnum -export const CustomerMomentsChannelEnum = { - MomentCorp: { text: '朋友圈(企业)', color: '#1E90FF', value: 'MomentCorp' }, - CustomerDirectCorp: { - text: '客户1对1消息群发(企业)', - color: '#FFA500', - value: 'CustomerDirectCorp', - }, - CustomerGroupCorp: { - text: '客户群群发(企业)', - color: '#FF69B4', - value: 'CustomerGroupCorp', - }, +export const CustomerMomentsChannelEnum= { + 'MomentCorp': {"text":"朋友圈(企业)","color":"#1E90FF","value":"MomentCorp"}, + 'CustomerDirectCorp': {"text":"客户1对1消息群发(企业)","color":"#FFA500","value":"CustomerDirectCorp"}, + 'CustomerGroupCorp': {"text":"客户群群发(企业)","color":"#FF69B4","value":"CustomerGroupCorp"}, }; // CustomerMomentsContentTypeEnum -export const CustomerMomentsContentTypeEnum = { - Image: { text: '图片消息', color: '#1E90FF', value: 'Image' }, - Link: { text: '转载链接消息', color: '#32CD32', value: 'Link' }, - MiniProgram: { text: '跳小程序', color: '#FFA500', value: 'MiniProgram' }, - Video: { text: '视频消息', color: '#FF69B4', value: 'Video' }, +export const CustomerMomentsContentTypeEnum= { + 'Image': {"text":"图片消息","color":"#1E90FF","value":"Image"}, + 'Link': {"text":"转载链接消息","color":"#32CD32","value":"Link"}, + 'MiniProgram': {"text":"跳小程序","color":"#FFA500","value":"MiniProgram"}, + 'Video': {"text":"视频消息","color":"#FF69B4","value":"Video"}, }; // CustomerMomentsPushStatusEnum -export const CustomerMomentsPushStatusEnum = { - NotPushed: { text: '未推送', color: '#FF4500', value: 'NotPushed' }, - Pushed: { text: '已推送', color: '#32CD32', value: 'Pushed' }, +export const CustomerMomentsPushStatusEnum= { + 'NotPushed': {"text":"未推送","color":"#FF4500","value":"NotPushed"}, + 'Pushed': {"text":"已推送","color":"#32CD32","value":"Pushed"}, }; // CustomerMomentsPushTypeEnum -export const CustomerMomentsPushTypeEnum = { - ManualPush: { text: '手动推送', color: '#1E90FF', value: 'ManualPush' }, - ScheduledPush: { text: '定时推送', color: '#32CD32', value: 'ScheduledPush' }, +export const CustomerMomentsPushTypeEnum= { + 'ManualPush': {"text":"手动推送","color":"#1E90FF","value":"ManualPush"}, + 'ScheduledPush': {"text":"定时推送","color":"#32CD32","value":"ScheduledPush"}, }; // CustomerMomentsRangeTypeEnum -export const CustomerMomentsRangeTypeEnum = { - Project: { text: '按项目推送', color: '#1E90FF', value: 'Project' }, +export const CustomerMomentsRangeTypeEnum= { + 'Project': {"text":"按项目推送","color":"#1E90FF","value":"Project"}, }; // CustomerMomentsSkipTypeEnum -export const CustomerMomentsSkipTypeEnum = { - H5: { text: 'H5', color: '#1E90FF', value: 'H5' }, +export const CustomerMomentsSkipTypeEnum= { + 'H5': {"text":"H5","color":"#1E90FF","value":"H5"}, }; // CustomerMomentsTaskEndTypeEnum -export const CustomerMomentsTaskEndTypeEnum = { - AfterNDays: { text: '发送后N天', color: '#1E90FF', value: 'AfterNDays' }, - ScheduledEnd: { text: '定时结束', color: '#32CD32', value: 'ScheduledEnd' }, +export const CustomerMomentsTaskEndTypeEnum= { + 'AfterNDays': {"text":"发送后N天","color":"#1E90FF","value":"AfterNDays"}, + 'ScheduledEnd': {"text":"定时结束","color":"#32CD32","value":"ScheduledEnd"}, }; // CustomerOpinionsTypeEnum -export const CustomerOpinionsTypeEnum = { - FeatureException: { - text: '功能异常', - color: '#ff0000', - value: 'FeatureException', - }, - FeatureSuggestion: { - text: '新功能建议', - color: '#00bfff', - value: 'FeatureSuggestion', - }, +export const CustomerOpinionsTypeEnum= { + 'FeatureException': {"text":"功能异常","color":"#ff0000","value":"FeatureException"}, + 'FeatureSuggestion': {"text":"新功能建议","color":"#00bfff","value":"FeatureSuggestion"}, }; // 账单状态枚举 -export const HouseBillsBillStatusEnum = { - PendingPayment: { text: '待支付', color: '#facc15', value: 'PendingPayment' }, - PartiallyPaid: { text: '部分支付', color: '#60a5fa', value: 'PartiallyPaid' }, - Paid: { text: '已支付', color: '#10b981', value: 'Paid' }, - Overdue: { text: '已逾期', color: '#ef4444', value: 'Overdue' }, - Cancelled: { text: '已取消', color: '#9ca3af', value: 'Cancelled' }, +export const HouseBillsBillStatusEnum= { + 'PendingPayment': {"text":"待支付","color":"#facc15","value":"PendingPayment"}, + 'PartiallyPaid': {"text":"部分支付","color":"#60a5fa","value":"PartiallyPaid"}, + 'Paid': {"text":"已支付","color":"#10b981","value":"Paid"}, + 'Overdue': {"text":"已逾期","color":"#ef4444","value":"Overdue"}, + 'Cancelled': {"text":"已取消","color":"#9ca3af","value":"Cancelled"}, }; // 房屋账单类型枚举 -export const HouseBillsTypeEnum = { - PropertyFee: { text: '物业费', color: '#3b82f6', value: 'PropertyFee' }, - MaintenanceFund: { - text: '维修基金', - color: '#10b981', - value: 'MaintenanceFund', - }, - WaterFee: { text: '水费', color: '#06b6d4', value: 'WaterFee' }, - ElectricityFee: { text: '电费', color: '#f59e0b', value: 'ElectricityFee' }, - SharedWaterFee: { - text: '公摊水费', - color: '#8b5cf6', - value: 'SharedWaterFee', - }, - SharedElectricityFee: { - text: '公摊电费', - color: '#ec4899', - value: 'SharedElectricityFee', - }, +export const HouseBillsTypeEnum= { + 'PropertyFee': {"text":"物业费","color":"#3b82f6","value":"PropertyFee"}, + 'MaintenanceFund': {"text":"维修基金","color":"#10b981","value":"MaintenanceFund"}, + 'WaterFee': {"text":"水费","color":"#06b6d4","value":"WaterFee"}, + 'ElectricityFee': {"text":"电费","color":"#f59e0b","value":"ElectricityFee"}, + 'SharedWaterFee': {"text":"公摊水费","color":"#8b5cf6","value":"SharedWaterFee"}, + 'SharedElectricityFee': {"text":"公摊电费","color":"#ec4899","value":"SharedElectricityFee"}, }; // HouseChargeStandardsApportionmentMethodEnum -export const HouseChargeStandardsApportionmentMethodEnum = { - HouseCount: { text: '房屋数分摊', color: '#3b82f6', value: 'HouseCount' }, - AreaProportion: { - text: '房屋计费面积分摊', - color: '#10b981', - value: 'AreaProportion', - }, - FixedRatio: { text: '按固定比例分摊', color: '#f59e0b', value: 'FixedRatio' }, +export const HouseChargeStandardsApportionmentMethodEnum= { + 'HouseCount': {"text":"房屋数分摊","color":"#3b82f6","value":"HouseCount"}, + 'AreaProportion': {"text":"房屋计费面积分摊","color":"#10b981","value":"AreaProportion"}, + 'FixedRatio': {"text":"按固定比例分摊","color":"#f59e0b","value":"FixedRatio"}, }; // HouseChargeStandardsCalculationMethodEnum -export const HouseChargeStandardsCalculationMethodEnum = { - ChargeableArea: { - text: '计费面积', - color: '#3b82f6', - value: 'ChargeableArea', - }, - BuiltArea: { text: '建筑面积', color: '#10b981', value: 'BuiltArea' }, - InsideArea: { text: '套内面积', color: '#f59e0b', value: 'InsideArea' }, - PerUnit: { text: '按套', color: '#06b6d4', value: 'PerUnit' }, - ElectricityUsage: { - text: '用电量', - color: '#8b5cf6', - value: 'ElectricityUsage', - }, - WaterUsage: { text: '用水量', color: '#ec4899', value: 'WaterUsage' }, +export const HouseChargeStandardsCalculationMethodEnum= { + 'ChargeableArea': {"text":"计费面积","color":"#3b82f6","value":"ChargeableArea"}, + 'BuiltArea': {"text":"建筑面积","color":"#10b981","value":"BuiltArea"}, + 'InsideArea': {"text":"套内面积","color":"#f59e0b","value":"InsideArea"}, + 'PerUnit': {"text":"按套","color":"#06b6d4","value":"PerUnit"}, + 'ElectricityUsage': {"text":"用电量","color":"#8b5cf6","value":"ElectricityUsage"}, + 'WaterUsage': {"text":"用水量","color":"#ec4899","value":"WaterUsage"}, }; // HouseChargeStandardsCalculationModeEnum -export const HouseChargeStandardsCalculationModeEnum = { - FixedAmount: { text: '固定金额', color: '#3b82f6', value: 'FixedAmount' }, - QuantityPrice: { - text: '数量*单价', - color: '#10b981', - value: 'QuantityPrice', - }, +export const HouseChargeStandardsCalculationModeEnum= { + 'FixedAmount': {"text":"固定金额","color":"#3b82f6","value":"FixedAmount"}, + 'QuantityPrice': {"text":"数量*单价","color":"#10b981","value":"QuantityPrice"}, }; // HouseChargeStandardsCalculationPeriodEnum -export const HouseChargeStandardsCalculationPeriodEnum = { - PerTime: { text: '按次', color: '#3b82f6', value: 'PerTime' }, - PerDay: { text: '按日', color: '#10b981', value: 'PerDay' }, - PerMonth: { text: '按月', color: '#f59e0b', value: 'PerMonth' }, - PerYear: { text: '按年', color: '#8b5cf6', value: 'PerYear' }, +export const HouseChargeStandardsCalculationPeriodEnum= { + 'PerTime': {"text":"按次","color":"#3b82f6","value":"PerTime"}, + 'PerDay': {"text":"按日","color":"#10b981","value":"PerDay"}, + 'PerMonth': {"text":"按月","color":"#f59e0b","value":"PerMonth"}, + 'PerYear': {"text":"按年","color":"#8b5cf6","value":"PerYear"}, }; // HouseChargeStandardsPriceAlgorithmEnum -export const HouseChargeStandardsPriceAlgorithmEnum = { - Fixed: { text: '固定', color: '#4caf50', value: 'Fixed' }, - Tiered: { text: '分级价阶梯', color: '#2196f3', value: 'Tiered' }, - Peak: { text: '最高价阶梯', color: '#ff9800', value: 'Peak' }, +export const HouseChargeStandardsPriceAlgorithmEnum= { + 'Fixed': {"text":"固定","color":"#4caf50","value":"Fixed"}, + 'Tiered': {"text":"分级价阶梯","color":"#2196f3","value":"Tiered"}, + 'Peak': {"text":"最高价阶梯","color":"#ff9800","value":"Peak"}, }; // HouseChargeStandardsStatusEnum -export const HouseChargeStandardsStatusEnum = { - Active: { text: '启用', color: '#3b82f6', value: 'Active' }, - Inactive: { text: '禁用', color: '#ef4444', value: 'Inactive' }, +export const HouseChargeStandardsStatusEnum= { + 'Active': {"text":"启用","color":"#3b82f6","value":"Active"}, + 'Inactive': {"text":"禁用","color":"#ef4444","value":"Inactive"}, }; // HouseChargeStandardsTypeEnum -export const HouseChargeStandardsTypeEnum = { - House: { text: '房屋', color: '#3b82f6', value: 'House' }, - Meter: { text: '仪表', color: '#10b981', value: 'Meter' }, +export const HouseChargeStandardsTypeEnum= { + 'House': {"text":"房屋","color":"#3b82f6","value":"House"}, + 'Meter': {"text":"仪表","color":"#10b981","value":"Meter"}, }; // HouseChargeTaskDetailsStatusEnum -export const HouseChargeTaskDetailsStatusEnum = { - Pending: { text: '待处理', color: '#f59e0b', value: 'Pending' }, - Success: { text: '成功', color: '#22c55e', value: 'Success' }, - Failed: { text: '失败', color: '#ef4444', value: 'Failed' }, +export const HouseChargeTaskDetailsStatusEnum= { + 'Pending': {"text":"待处理","color":"#f59e0b","value":"Pending"}, + 'Success': {"text":"成功","color":"#22c55e","value":"Success"}, + 'Failed': {"text":"失败","color":"#ef4444","value":"Failed"}, }; // HouseChargeTasksStatusEnum -export const HouseChargeTasksStatusEnum = { - Pending: { text: '待执行', color: '#f59e0b', value: 'Pending' }, - InProgress: { text: '执行中', color: '#3b82f6', value: 'InProgress' }, - Completed: { text: '已完成', color: '#10b981', value: 'Completed' }, - Failed: { text: '失败', color: '#ef4444', value: 'Failed' }, +export const HouseChargeTasksStatusEnum= { + 'Pending': {"text":"待执行","color":"#f59e0b","value":"Pending"}, + 'InProgress': {"text":"执行中","color":"#3b82f6","value":"InProgress"}, + 'Completed': {"text":"已完成","color":"#10b981","value":"Completed"}, + 'Failed': {"text":"失败","color":"#ef4444","value":"Failed"}, }; // HouseChargeTasksTypeEnum -export const HouseChargeTasksTypeEnum = { - Scheduled: { text: '定时创建', color: '#3b82f6', value: 'Scheduled' }, - Manual: { text: '手动创建', color: '#10b981', value: 'Manual' }, +export const HouseChargeTasksTypeEnum= { + 'Scheduled': {"text":"定时创建","color":"#3b82f6","value":"Scheduled"}, + 'Manual': {"text":"手动创建","color":"#10b981","value":"Manual"}, }; // HouseCollectionRecordsCollectionResultEnum -export const HouseCollectionRecordsCollectionResultEnum = { - PromiseToPay: { text: '承诺缴费', color: '#4caf50', value: 'PromiseToPay' }, - RefuseToPay: { text: '拒绝缴费', color: '#f44336', value: 'RefuseToPay' }, - NotReached: { text: '未联系到', color: '#9e9e9e', value: 'NotReached' }, - NeedFollowUp: { text: '需要跟进', color: '#ff9800', value: 'NeedFollowUp' }, +export const HouseCollectionRecordsCollectionResultEnum= { + 'PromiseToPay': {"text":"承诺缴费","color":"#4caf50","value":"PromiseToPay"}, + 'RefuseToPay': {"text":"拒绝缴费","color":"#f44336","value":"RefuseToPay"}, + 'NotReached': {"text":"未联系到","color":"#9e9e9e","value":"NotReached"}, + 'NeedFollowUp': {"text":"需要跟进","color":"#ff9800","value":"NeedFollowUp"}, }; // HouseCollectionRecordsSmsStatusEnum -export const HouseCollectionRecordsStatusEnum = { - NotNotified: { text: '未通知', color: '#808080', value: 'NotNotified' }, - Notified: { text: '已通知', color: '#00cc00', value: 'Notified' }, - Failed: { text: '失败', color: '#ff0000', value: 'Failed' }, +export const HouseCollectionRecordsStatusEnum= { + 'NotNotified': {"text":"未通知","color":"#808080","value":"NotNotified"}, + 'Notified': {"text":"已通知","color":"#00cc00","value":"Notified"}, + 'Failed': {"text":"失败","color":"#ff0000","value":"Failed"}, }; // HouseCollectionTasksChannelEnum -export const HouseCollectionTasksChannelEnum = { - SMS: { text: '短信', color: '#1E90FF', value: 'SMS' }, - MiniProgram: { text: '小程序', color: '#00BFFF', value: 'MiniProgram' }, - OfficialAccount: { - text: '公众号', - color: '#32CD32', - value: 'OfficialAccount', - }, - PhoneCall: { text: '电话催缴', color: '#FF8C00', value: 'PhoneCall' }, - Visit: { text: '上门催缴', color: '#8B4513', value: 'Visit' }, - WeChat: { text: '微信联系', color: '#20B2AA', value: 'WeChat' }, - WrittenNotice: { text: '书面通知', color: '#708090', value: 'WrittenNotice' }, +export const HouseCollectionTasksChannelEnum= { + 'SMS': {"text":"短信","color":"#1E90FF","value":"SMS"}, + 'MiniProgram': {"text":"小程序","color":"#00BFFF","value":"MiniProgram"}, + 'OfficialAccount': {"text":"公众号","color":"#32CD32","value":"OfficialAccount"}, + 'PhoneCall': {"text":"电话催缴","color":"#FF8C00","value":"PhoneCall"}, + 'Visit': {"text":"上门催缴","color":"#8B4513","value":"Visit"}, + 'WeChat': {"text":"微信联系","color":"#20B2AA","value":"WeChat"}, + 'WrittenNotice': {"text":"书面通知","color":"#708090","value":"WrittenNotice"}, }; // HouseCollectionTasksStatusEnum -export const HouseCollectionTasksStatusEnum = { - Processing: { text: '进行中', color: '#ffcc00', value: 'Processing' }, - Completed: { text: '已完成', color: '#00cc00', value: 'Completed' }, - Failed: { text: '失败', color: '#ff0000', value: 'Failed' }, +export const HouseCollectionTasksStatusEnum= { + 'Processing': {"text":"进行中","color":"#ffcc00","value":"Processing"}, + 'Completed': {"text":"已完成","color":"#00cc00","value":"Completed"}, + 'Failed': {"text":"失败","color":"#ff0000","value":"Failed"}, }; // HouseMeterReadingsOperationTypeEnum -export const HouseMeterReadingsOperationTypeEnum = { - NormalReading: { text: '正常抄表', color: '#4caf50', value: 'NormalReading' }, - ResetReading: { text: '重置读数', color: '#f44336', value: 'ResetReading' }, - CorrectReading: { - text: '修正读数', - color: '#ff9800', - value: 'CorrectReading', - }, +export const HouseMeterReadingsOperationTypeEnum= { + 'NormalReading': {"text":"正常抄表","color":"#4caf50","value":"NormalReading"}, + 'ResetReading': {"text":"重置读数","color":"#f44336","value":"ResetReading"}, + 'CorrectReading': {"text":"修正读数","color":"#ff9800","value":"CorrectReading"}, }; // HouseMeterTasksGenerationMethodEnum -export const HouseMeterTasksGenerationMethodEnum = { - Building: { text: '按楼栋', color: '#4caf50', value: 'Building' }, - Unit: { text: '按单元', color: '#2196f3', value: 'Unit' }, - Meter: { text: '按仪表', color: '#ff9800', value: 'Meter' }, +export const HouseMeterTasksGenerationMethodEnum= { + 'Building': {"text":"按楼栋","color":"#4caf50","value":"Building"}, + 'Unit': {"text":"按单元","color":"#2196f3","value":"Unit"}, + 'Meter': {"text":"按仪表","color":"#ff9800","value":"Meter"}, }; // HouseMetersMeterTypeEnum -export const HouseMetersMeterTypeEnum = { - HouseMeter: { text: '房屋表', color: '#4caf50', value: 'HouseMeter' }, - CommonMeter: { text: '公摊表', color: '#2196f3', value: 'CommonMeter' }, +export const HouseMetersMeterTypeEnum= { + 'HouseMeter': {"text":"房屋表","color":"#4caf50","value":"HouseMeter"}, + 'CommonMeter': {"text":"公摊表","color":"#2196f3","value":"CommonMeter"}, }; // HouseMetersUsageTypeEnum -export const HouseMetersUsageTypeEnum = { - WaterMeter: { text: '水表', color: '#2196f3', value: 'WaterMeter' }, - ElectricMeter: { text: '电表', color: '#ff9800', value: 'ElectricMeter' }, - GasMeter: { text: '燃气表', color: '#f44336', value: 'GasMeter' }, - HeatingMeter: { text: '暖气表', color: '#9c27b0', value: 'HeatingMeter' }, +export const HouseMetersUsageTypeEnum= { + 'WaterMeter': {"text":"水表","color":"#2196f3","value":"WaterMeter"}, + 'ElectricMeter': {"text":"电表","color":"#ff9800","value":"ElectricMeter"}, + 'GasMeter': {"text":"燃气表","color":"#f44336","value":"GasMeter"}, + 'HeatingMeter': {"text":"暖气表","color":"#9c27b0","value":"HeatingMeter"}, }; // HouseOccupantsCardTypeEnum -export const HouseOccupantsCardTypeEnum = { - MainlandID: { - text: '中国大陆居民身份证', - color: '#2db7f5', - value: 'MainlandID', - }, - HKPermit: { - text: '香港来往大陆通行证(回乡证)', - color: '#fa8c16', - value: 'HKPermit', - }, - MOPermit: { - text: '澳门来往大陆通行证(回乡证)', - color: '#faad14', - value: 'MOPermit', - }, - TWPermit: { - text: '台湾来往大陆通行证(台胞证)', - color: '#87d068', - value: 'TWPermit', - }, - Passport: { text: '护照', color: '#108ee9', value: 'Passport' }, - BusinessLicense: { - text: '营业执照', - color: '#f5222d', - value: 'BusinessLicense', - }, +export const HouseOccupantsCardTypeEnum= { + 'MainlandID': {"text":"中国大陆居民身份证","color":"#2db7f5","value":"MainlandID"}, + 'HKPermit': {"text":"香港来往大陆通行证(回乡证)","color":"#fa8c16","value":"HKPermit"}, + 'MOPermit': {"text":"澳门来往大陆通行证(回乡证)","color":"#faad14","value":"MOPermit"}, + 'TWPermit': {"text":"台湾来往大陆通行证(台胞证)","color":"#87d068","value":"TWPermit"}, + 'Passport': {"text":"护照","color":"#108ee9","value":"Passport"}, + 'BusinessLicense': {"text":"营业执照","color":"#f5222d","value":"BusinessLicense"}, }; // HouseOccupantsHouseRelationEnum -export const HouseOccupantsHouseRelationEnum = { - Owner: { text: '产权人', color: '#2db7f5', value: 'Owner' }, - NonOwner: { text: '非产权人', color: '#fa8c16', value: 'NonOwner' }, +export const HouseOccupantsHouseRelationEnum= { + 'Owner': {"text":"产权人","color":"#2db7f5","value":"Owner"}, + 'NonOwner': {"text":"非产权人","color":"#fa8c16","value":"NonOwner"}, }; // HouseOccupantsRelationWithOwnerEnum -export const HouseOccupantsRelationWithOwnerEnum = { - Self: { text: '本人', color: '#52c41a', value: 'Self' }, - Spouse: { text: '配偶', color: '#2db7f5', value: 'Spouse' }, - Children: { text: '子女', color: '#87d068', value: 'Children' }, - Parents: { text: '父母', color: '#faad14', value: 'Parents' }, - Siblings: { text: '兄弟姐妹', color: '#fa8c16', value: 'Siblings' }, - OtherRelatives: { - text: '其他亲属', - color: '#f5222d', - value: 'OtherRelatives', - }, - PrimaryTenant: { text: '主租客', color: '#722ed1', value: 'PrimaryTenant' }, - Tenant: { text: '租客', color: '#1890ff', value: 'Tenant' }, +export const HouseOccupantsRelationWithOwnerEnum= { + 'Self': {"text":"本人","color":"#52c41a","value":"Self"}, + 'Spouse': {"text":"配偶","color":"#2db7f5","value":"Spouse"}, + 'Children': {"text":"子女","color":"#87d068","value":"Children"}, + 'Parents': {"text":"父母","color":"#faad14","value":"Parents"}, + 'Siblings': {"text":"兄弟姐妹","color":"#fa8c16","value":"Siblings"}, + 'OtherRelatives': {"text":"其他","color":"#f5222d","value":"OtherRelatives"}, + 'PrimaryTenant': {"text":"主租客","color":"#722ed1","value":"PrimaryTenant"}, + 'Tenant': {"text":"租客","color":"#1890ff","value":"Tenant"}, }; // HouseOccupantsResidentialRelationEnum -export const HouseOccupantsResidentialRelationEnum = { - Resident: { text: '住户', color: '#2db7f5', value: 'Resident' }, - PrimaryTenant: { text: '主租人', color: '#87d068', value: 'PrimaryTenant' }, - Tenant: { text: '租客', color: '#fa8c16', value: 'Tenant' }, +export const HouseOccupantsResidentialRelationEnum= { + 'Resident': {"text":"住户","color":"#2db7f5","value":"Resident"}, + 'PrimaryTenant': {"text":"主租人","color":"#87d068","value":"PrimaryTenant"}, + 'Tenant': {"text":"租客","color":"#fa8c16","value":"Tenant"}, }; // HouseOccupantsStatusEnum -export const HouseOccupantsStatusEnum = { - Normal: { text: '绑定', color: '#52c41a', value: 'Normal' }, - Unbound: { text: '解绑', color: '#f5222d', value: 'Unbound' }, +export const HouseOccupantsStatusEnum= { + 'Normal': {"text":"绑定","color":"#52c41a","value":"Normal"}, + 'Unbound': {"text":"解绑","color":"#f5222d","value":"Unbound"}, }; // 订单状态枚举 -export const HouseOrdersOrderStatusEnum = { - Pending: { text: '待支付', color: '#facc15', value: 'Pending' }, - Paid: { text: '已支付', color: '#10b981', value: 'Paid' }, - Refunded: { text: '已退款', color: '#60a5fa', value: 'Refunded' }, - Cancelled: { text: '已取消', color: '#9ca3af', value: 'Cancelled' }, - Failed: { text: '支付失败', color: '#ef4444', value: 'Failed' }, +export const HouseOrdersOrderStatusEnum= { + 'Pending': {"text":"待支付","color":"#facc15","value":"Pending"}, + 'Paid': {"text":"已支付","color":"#10b981","value":"Paid"}, + 'Refunded': {"text":"已退款","color":"#60a5fa","value":"Refunded"}, + 'Cancelled': {"text":"已取消","color":"#9ca3af","value":"Cancelled"}, + 'Failed': {"text":"支付失败","color":"#ef4444","value":"Failed"}, }; // HouseOrdersPaymentMethodEnum -export const HouseOrdersPaymentMethodEnum = { - WeChat: { text: '微信', color: '#07c160', value: 'WeChat' }, - Alipay: { text: '支付宝', color: '#1677ff', value: 'Alipay' }, - BankTransfer: { text: '银行转账', color: '#6c757d', value: 'BankTransfer' }, - TongLian: { text: '通联支付', color: '#ff9f0a', value: 'TongLian' }, +export const HouseOrdersPaymentMethodEnum= { + 'WeChat': {"text":"微信","color":"#07c160","value":"WeChat"}, + 'Alipay': {"text":"支付宝","color":"#1677ff","value":"Alipay"}, + 'BankTransfer': {"text":"银行转账","color":"#6c757d","value":"BankTransfer"}, + 'TongLian': {"text":"通联支付","color":"#ff9f0a","value":"TongLian"}, }; // HouseRegistersCustomerTypeEnum -export const HouseRegistersCustomerTypeEnum = { - Individual: { text: '个人客户', color: '#2db7f5', value: 'Individual' }, - Enterprise: { text: '普通企业', color: '#87d068', value: 'Enterprise' }, - Developer: { text: '开发企业', color: '#fa8c16', value: 'Developer' }, - Government: { text: '政府组织', color: '#f5222d', value: 'Government' }, +export const HouseRegistersCustomerTypeEnum= { + 'Individual': {"text":"个人客户","color":"#2db7f5","value":"Individual"}, + 'Enterprise': {"text":"普通企业","color":"#87d068","value":"Enterprise"}, + 'Developer': {"text":"开发企业","color":"#fa8c16","value":"Developer"}, + 'Government': {"text":"政府组织","color":"#f5222d","value":"Government"}, }; // HouseRegistersHouseStatusEnum -export const HouseRegistersHouseStatusEnum = { - SelfOccupied: { text: '自住', color: '#28a745', value: 'SelfOccupied' }, - Rented: { text: '出租', color: '#007bff', value: 'Rented' }, - Vacant: { text: '空置', color: '#dc3545', value: 'Vacant' }, +export const HouseRegistersHouseStatusEnum= { + 'SelfOccupied': {"text":"自住","color":"#28a745","value":"SelfOccupied"}, + 'Rented': {"text":"出租","color":"#007bff","value":"Rented"}, + 'Vacant': {"text":"空置","color":"#dc3545","value":"Vacant"}, }; // 房屋登记身份类型 -export const HouseRegistersIdentityTypeEnum = { - Owner: { text: '产权人', color: '#2db7f5', value: 'Owner' }, - Tenant: { text: '租客', color: '#87d068', value: 'Tenant' }, - CoResident: { text: '同住人(亲属)', color: '#108ee9', value: 'CoResident' }, +export const HouseRegistersIdentityTypeEnum= { + 'Owner': {"text":"产权人","color":"#2db7f5","value":"Owner"}, + 'Tenant': {"text":"租客","color":"#87d068","value":"Tenant"}, + 'CoResident': {"text":"同住人(亲属)","color":"#108ee9","value":"CoResident"}, }; // HouseRegistersStatusEnum -export const HouseRegistersStatusEnum = { - Pending: { text: '待审', color: '#faad14', value: 'Pending' }, - Approved: { text: '通过', color: '#52c41a', value: 'Approved' }, - Rejected: { text: '驳回', color: '#f5222d', value: 'Rejected' }, +export const HouseRegistersStatusEnum= { + 'Pending': {"text":"待审","color":"#faad14","value":"Pending"}, + 'Approved': {"text":"通过","color":"#52c41a","value":"Approved"}, + 'Rejected': {"text":"驳回","color":"#f5222d","value":"Rejected"}, }; // HouseRegistersTypeEnum -export const HouseRegistersTypeEnum = { - AddOwner: { text: '添加产权人', color: '#52c41a', value: 'AddOwner' }, - RemoveOwner: { text: '减少产权人', color: '#d9363e', value: 'RemoveOwner' }, - AddOccupant: { text: '添加住户', color: '#108ee9', value: 'AddOccupant' }, - RemoveOccupant: { - text: '移除住户', - color: '#fa8c16', - value: 'RemoveOccupant', - }, - MoveOut: { text: '搬离登记', color: '#f50', value: 'MoveOut' }, - MoveIn: { text: '搬入登记', color: '#ffc53d', value: 'MoveIn' }, - UpdateInfo: { text: '修改信息', color: '#722ed1', value: 'UpdateInfo' }, - UpdatePhone: { text: '修改电话', color: '#13c2c2', value: 'UpdatePhone' }, +export const HouseRegistersTypeEnum= { + 'AddOwner': {"text":"添加产权人","color":"#52c41a","value":"AddOwner"}, + 'RemoveOwner': {"text":"减少产权人","color":"#d9363e","value":"RemoveOwner"}, + 'AddOccupant': {"text":"添加住户","color":"#108ee9","value":"AddOccupant"}, + 'RemoveOccupant': {"text":"移除住户","color":"#fa8c16","value":"RemoveOccupant"}, + 'MoveOut': {"text":"搬离登记","color":"#f50","value":"MoveOut"}, + 'MoveIn': {"text":"搬入登记","color":"#ffc53d","value":"MoveIn"}, + 'UpdateInfo': {"text":"修改信息","color":"#722ed1","value":"UpdateInfo"}, + 'UpdatePhone': {"text":"修改电话","color":"#13c2c2","value":"UpdatePhone"}, }; // HouseRegistersUsagePlanEnum -export const HouseRegistersUsagePlanEnum = { - Permanent: { text: '常住', color: '#52c41a', value: 'Permanent' }, - Vacation: { text: '度假', color: '#faad14', value: 'Vacation' }, - Rental: { text: '出租', color: '#2db7f5', value: 'Rental' }, - Commercial: { text: '商用', color: '#f5222d', value: 'Commercial' }, +export const HouseRegistersUsagePlanEnum= { + 'Permanent': {"text":"常住","color":"#52c41a","value":"Permanent"}, + 'Vacation': {"text":"度假","color":"#faad14","value":"Vacation"}, + 'Rental': {"text":"出租","color":"#2db7f5","value":"Rental"}, + 'Commercial': {"text":"商用","color":"#f5222d","value":"Commercial"}, }; // HouseWorkOrdersAssignStatusEnum -export const HouseWorkOrdersAssignStatusEnum = { - Unassigned: { text: '未指派', color: '#ff0000', value: 'Unassigned' }, - Assigned: { text: '已指派', color: '#00ff00', value: 'Assigned' }, +export const HouseWorkOrdersAssignStatusEnum= { + 'Unassigned': {"text":"未指派","color":"#ff0000","value":"Unassigned"}, + 'Assigned': {"text":"已指派","color":"#00ff00","value":"Assigned"}, }; // HouseWorkOrdersComplaintTypeEnum -export const HouseWorkOrdersComplaintTypeEnum = { - Hygiene: { text: '卫生环境', color: '#ff0000', value: 'Hygiene' }, - Greening: { text: '绿植绿化', color: '#00aaff', value: 'Greening' }, - Safety: { text: '安全问题', color: '#ffaa00', value: 'Safety' }, - Maintenance: { text: '维修问题', color: '#aa00ff', value: 'Maintenance' }, - PropertyService: { - text: '物业服务', - color: '#00aa55', - value: 'PropertyService', - }, - Staff: { text: '工作人员', color: '#ff00aa', value: 'Staff' }, - Other: { text: '其他', color: '#aaaaaa', value: 'Other' }, +export const HouseWorkOrdersComplaintTypeEnum= { + 'Hygiene': {"text":"卫生环境","color":"#ff0000","value":"Hygiene"}, + 'Greening': {"text":"绿植绿化","color":"#00aaff","value":"Greening"}, + 'Safety': {"text":"安全问题","color":"#ffaa00","value":"Safety"}, + 'Maintenance': {"text":"维修问题","color":"#aa00ff","value":"Maintenance"}, + 'PropertyService': {"text":"物业服务","color":"#00aa55","value":"PropertyService"}, + 'Staff': {"text":"工作人员","color":"#ff00aa","value":"Staff"}, + 'Other': {"text":"其他","color":"#aaaaaa","value":"Other"}, }; // HouseWorkOrdersLevelEnum -export const HouseWorkOrdersLevelEnum = { - Urgent: { text: '紧急', color: '#ff0000', value: 'Urgent' }, - High: { text: '高', color: '#ff7f00', value: 'High' }, - Medium: { text: '中', color: '#00cc00', value: 'Medium' }, - Low: { text: '低', color: '#999999', value: 'Low' }, +export const HouseWorkOrdersLevelEnum= { + 'Urgent': {"text":"紧急","color":"#ff0000","value":"Urgent"}, + 'High': {"text":"高","color":"#ff7f00","value":"High"}, + 'Medium': {"text":"中","color":"#00cc00","value":"Medium"}, + 'Low': {"text":"低","color":"#999999","value":"Low"}, }; // HouseWorkOrdersLocationEnum -export const HouseWorkOrdersLocationEnum = { - CommonArea: { text: '公共区域', color: '#ff0000', value: 'CommonArea' }, - MyHome: { text: '我家', color: '#00ff00', value: 'MyHome' }, +export const HouseWorkOrdersLocationEnum= { + 'CommonArea': {"text":"公共区域","color":"#ff0000","value":"CommonArea"}, + 'MyHome': {"text":"我家","color":"#00ff00","value":"MyHome"}, }; // HouseWorkOrdersStatusEnum -export const HouseWorkOrdersStatusEnum = { - Pending: { text: '待处理', color: '#FFA500', value: 'Pending' }, - Processing: { text: '处理中', color: '#1E90FF', value: 'Processing' }, - Completed: { text: '已完成', color: '#28A745', value: 'Completed' }, - Closed: { text: '已关闭', color: '#6C757D', value: 'Closed' }, +export const HouseWorkOrdersStatusEnum= { + 'Pending': {"text":"待处理","color":"#FFA500","value":"Pending"}, + 'Processing': {"text":"处理中","color":"#1E90FF","value":"Processing"}, + 'Completed': {"text":"已完成","color":"#28A745","value":"Completed"}, + 'Closed': {"text":"已关闭","color":"#6C757D","value":"Closed"}, }; // HouseWorkOrdersTypeEnum -export const HouseWorkOrdersTypeEnum = { - Repair: { text: '报修', color: '#ff0000', value: 'Repair' }, - Incident: { text: '报事', color: '#00aaff', value: 'Incident' }, - Complaint: { text: '投诉', color: '#aa00ff', value: 'Complaint' }, +export const HouseWorkOrdersTypeEnum= { + 'Repair': {"text":"报修","color":"#ff0000","value":"Repair"}, + 'Incident': {"text":"报事","color":"#00aaff","value":"Incident"}, + 'Complaint': {"text":"投诉","color":"#aa00ff","value":"Complaint"}, }; // MsgPropertyAnnouncementsPublishTypeEnum -export const MsgPropertyAnnouncementsPublishTypeEnum = { - Manual: { text: '手动', color: '#4caf50', value: 'Manual' }, - Schedule: { text: '定时', color: '#2196f3', value: 'Schedule' }, +export const MsgPropertyAnnouncementsPublishTypeEnum= { + 'Manual': {"text":"手动","color":"#4caf50","value":"Manual"}, + 'Schedule': {"text":"定时","color":"#2196f3","value":"Schedule"}, }; // OrganizationsTypeEnum -export const OrganizationsTypeEnum = { - Group: { text: '集团', color: '#007bff', value: 'Group' }, - Company: { text: '公司', color: '#28a745', value: 'Company' }, - ManagementOffice: { - text: '管理处', - color: '#ffc107', - value: 'ManagementOffice', - }, - Department: { text: '部门', color: '#dc3545', value: 'Department' }, +export const OrganizationsTypeEnum= { + 'Group': {"text":"集团","color":"#007bff","value":"Group"}, + 'Company': {"text":"公司","color":"#28a745","value":"Company"}, + 'ManagementOffice': {"text":"管理处","color":"#ffc107","value":"ManagementOffice"}, + 'Department': {"text":"部门","color":"#dc3545","value":"Department"}, }; // 性别 -export const SexEnum = { - Male: { text: '男', color: '#0000ff', value: 'Male' }, - FeMale: { text: '女', color: '#ff0000', value: 'FeMale' }, +export const SexEnum= { + 'Male': {"text":"男","color":"#0000ff","value":"Male"}, + 'FeMale': {"text":"女","color":"#ff0000","value":"FeMale"}, }; // SysModuleEnum -export const SysModuleEnum = { - Admin: { text: '管理员', color: '#cf1322', value: 'Admin' }, - Customer: { text: '客户', color: '#d4b106', value: 'Customer' }, +export const SysModuleEnum= { + 'Admin': {"text":"管理员","color":"#cf1322","value":"Admin"}, + 'Customer': {"text":"客户","color":"#d4b106","value":"Customer"}, }; // SysPermissionsTypeEnum -export const SysPermissionsTypeEnum = { - Directory: { text: '目录', color: '#6d7e14', value: 'Directory' }, - Page: { text: '页面', color: '#4d9a13', value: 'Page' }, - Button: { text: '按钮', color: '#97224f', value: 'Button' }, +export const SysPermissionsTypeEnum= { + 'Directory': {"text":"目录","color":"#6d7e14","value":"Directory"}, + 'Page': {"text":"页面","color":"#4d9a13","value":"Page"}, + 'Button': {"text":"按钮","color":"#97224f","value":"Button"}, }; // WechatAuthsPlatformEnum -export const WechatAuthsPlatformEnum = { - MiniProgram: { text: '微信小程序', color: '#3b82f6', value: 'MiniProgram' }, - MpOfficial: { text: '微信公众号', color: '#22c55e', value: 'MpOfficial' }, - WorkWechat: { text: '企业微信', color: '#6366f1', value: 'WorkWechat' }, +export const WechatAuthsPlatformEnum= { + 'MiniProgram': {"text":"微信小程序","color":"#3b82f6","value":"MiniProgram"}, + 'MpOfficial': {"text":"微信公众号","color":"#22c55e","value":"MpOfficial"}, + 'WorkWechat': {"text":"企业微信","color":"#6366f1","value":"WorkWechat"}, }; + diff --git a/src/pages/meter/tasks/index.tsx b/src/pages/meter/tasks/index.tsx index 5c23cda..4f25fcf 100644 --- a/src/pages/meter/tasks/index.tsx +++ b/src/pages/meter/tasks/index.tsx @@ -32,11 +32,7 @@ export default function Index({ title = '账单任务' }) { - MyProTableProps.request( - params, - sort, - Apis.HouseCharage.HouseChargeTasks.List, - ) + MyProTableProps.request(params, sort, Apis.Meter.HouseMeterTasks.List) } toolBarRender={(action) => [ , diff --git a/src/pages/meter/tasks/modals/TaskCreate.tsx b/src/pages/meter/tasks/modals/TaskCreate.tsx index 5a0dff8..37b1215 100644 --- a/src/pages/meter/tasks/modals/TaskCreate.tsx +++ b/src/pages/meter/tasks/modals/TaskCreate.tsx @@ -1,18 +1,20 @@ import { MyBetaModalFormProps, MyButtons, + MyFormItems, MyModalFormProps, rulesHelper, } from '@/common'; import { Selects } from '@/components/Select'; import { Apis } from '@/gen/Apis'; +import { HouseMeterTasksGenerationMethodEnum } from '@/gen/Enums'; import { BetaSchemaForm } from '@ant-design/pro-components'; import { Form, message } from 'antd'; export default function Create(props: MyBetaModalFormProps) { const [form] = Form.useForm(); return ( - + {...MyModalFormProps.props} title={`创建${props.title}`} width="480px" @@ -29,7 +31,7 @@ export default function Create(props: MyBetaModalFormProps) { } }} onFinish={async (values) => - Apis.HouseCharage.HouseChargeTasks.Store(values) + Apis.Meter.HouseMeterTasks.Store(values) .then(() => { props.reload?.(); message.success(props.title + '账单任务创建成功'); @@ -116,6 +118,14 @@ export default function Create(props: MyBetaModalFormProps) { }, formItemProps: { ...rulesHelper.text }, }, + + MyFormItems.EnumRadio({ + key: 'generation_method', + title: '收款渠道', + colProps: { span: 24 }, + valueEnum: HouseMeterTasksGenerationMethodEnum, + required: true, + }), ]} /> ); From fcaee2806f1cdf7d421bc0a5585307c0fae8286e Mon Sep 17 00:00:00 2001 From: uiuJun <> Date: Wed, 1 Oct 2025 18:01:02 +0800 Subject: [PATCH 4/4] =?UTF-8?q?feat=EF=BC=9A=E5=AE=A2=E6=88=B7=E5=88=97?= =?UTF-8?q?=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Select.tsx | 35 +++++ src/pages/charge/tasks/index.tsx | 12 ++ src/pages/charge/tasks/modals/TaskShow.tsx | 26 +++- .../customer/components/CustomerHouse.tsx | 74 +++++++++ .../customer/components/CustomerInfo.tsx | 70 +++++++++ src/pages/customer/index.tsx | 63 ++++++++ src/pages/customer/show/$id.tsx | 63 ++++++++ src/pages/meter/tasks/index.tsx | 4 +- src/pages/meter/tasks/modals/TaskCreate.tsx | 145 ++++++++++++++---- src/pages/meter/tasks/modals/TaskShow.tsx | 2 +- 10 files changed, 463 insertions(+), 31 deletions(-) create mode 100644 src/pages/customer/components/CustomerHouse.tsx create mode 100644 src/pages/customer/components/CustomerInfo.tsx create mode 100644 src/pages/customer/index.tsx create mode 100644 src/pages/customer/show/$id.tsx diff --git a/src/components/Select.tsx b/src/components/Select.tsx index b6d129a..0ebb2f5 100644 --- a/src/components/Select.tsx +++ b/src/components/Select.tsx @@ -570,4 +570,39 @@ export const Selects = { }, }; }, + //获取项目仪表 + AssetMeters(props?: PropsType): ReturnType { + const { + title = '选择仪表', + key = 'id', + required = false, + hideInTable = true, + ...rest + } = props ?? {}; + + return { + title: title, + key: key, + valueType: 'select', + hideInTable: hideInTable, + formItemProps: { ...(required ? rulesHelper.number : {}) }, + request: async (params) => + ( + await Apis.Meter.HouseMeters.List({ + keywords: params?.KeyWords, + ...params, + asset_projects_id: params?.asset_projects_id, + }) + ).data, + ...rest, + fieldProps: { + showSearch: true, + fieldNames: { + label: 'label', + value: 'value', + }, + ...rest?.fieldProps, + }, + }; + }, }; diff --git a/src/pages/charge/tasks/index.tsx b/src/pages/charge/tasks/index.tsx index 5c23cda..6ae1e83 100644 --- a/src/pages/charge/tasks/index.tsx +++ b/src/pages/charge/tasks/index.tsx @@ -98,6 +98,18 @@ export default function Index({ title = '账单任务' }) { render: (_, item: any, index, action) => ( + + Apis.HouseCharage.HouseChargeTasks.ExecuteTask({ + id: item.id, + }).then(() => action?.reload()) + } + /> Apis.HouseCharage.HouseChargeTasks.Delete({ diff --git a/src/pages/charge/tasks/modals/TaskShow.tsx b/src/pages/charge/tasks/modals/TaskShow.tsx index 795010d..daf0a05 100644 --- a/src/pages/charge/tasks/modals/TaskShow.tsx +++ b/src/pages/charge/tasks/modals/TaskShow.tsx @@ -1,8 +1,14 @@ -import { MyBetaModalFormProps, MyColumns, MyProTableProps } from '@/common'; +import { + MyBetaModalFormProps, + MyButtons, + MyColumns, + MyProTableProps, +} from '@/common'; import { MyModal } from '@/components/MyModal'; import { Apis } from '@/gen/Apis'; import { HouseChargeTaskDetailsStatusEnum } from '@/gen/Enums'; import { ProTable } from '@ant-design/pro-components'; +import { Space } from 'antd'; export default function AssetInfo(props: MyBetaModalFormProps) { return ( @@ -61,6 +67,24 @@ export default function AssetInfo(props: MyBetaModalFormProps) { dataIndex: 'processed_time', search: false, }, + MyColumns.Option({ + render: (_, item: any, index, action) => ( + + + Apis.HouseCharage.HouseChargeTaskDetails.CreateHouseBill({ + id: item.id, + }).then(() => action?.reload()) + } + /> + + ), + }), ]} /> } diff --git a/src/pages/customer/components/CustomerHouse.tsx b/src/pages/customer/components/CustomerHouse.tsx new file mode 100644 index 0000000..e7d94e4 --- /dev/null +++ b/src/pages/customer/components/CustomerHouse.tsx @@ -0,0 +1,74 @@ +import { MyBetaModalFormProps, MyColumns, MyProTableProps } from '@/common'; +import { Apis } from '@/gen/Apis'; +import { HouseMeterReadingsOperationTypeEnum } from '@/gen/Enums'; +import { ProTable } from '@ant-design/pro-components'; + +export default function Index(props: MyBetaModalFormProps) { + console.log(props?.item, 'pppppppp'); + return ( + <> + + MyProTableProps.request( + { ...params, phone: props?.item?.phone }, + sort, + Apis.Archive.HouseOccupants.CustomerHouseByPhone, + ) + } + // search={false} + // options={false} + columns={[ + MyColumns.EnumTag({ + title: '操作类型', + dataIndex: 'operation_type', + valueEnum: HouseMeterReadingsOperationTypeEnum, + }), + { + title: '抄表读数', + dataIndex: 'current_reading', + search: false, + }, + { + title: '抄表用量', + dataIndex: 'usage_amount', + search: false, + }, + { + title: '抄表时间', + dataIndex: 'reading_time', + search: false, + }, + { + title: '抄表人', + dataIndex: ['company_employee', 'name'], + search: false, + }, + { + title: '备注', + dataIndex: 'remark', + search: false, + }, + { + title: '账单状态', + dataIndex: 'bill_status', + render: (value) => (value ? '已生成' : '未生成'), + search: false, + }, + // MyColumns.Option({ + // render: (_, item: any, index, action) => ( + // + // {/* 只有未生成账单的抄表记录,且不是重置读数,才显示修正按钮 */} + // {!item?.bill_status && + // item?.operation_type !== + // HouseMeterReadingsOperationTypeEnum.ResetReading.value && ( + // + // )} + // + // ), + // }), + ]} + /> + + ); +} diff --git a/src/pages/customer/components/CustomerInfo.tsx b/src/pages/customer/components/CustomerInfo.tsx new file mode 100644 index 0000000..1d2b29d --- /dev/null +++ b/src/pages/customer/components/CustomerInfo.tsx @@ -0,0 +1,70 @@ +import { MyBetaModalFormProps, renderTextHelper } from '@/common'; +import { HouseOccupantsCardTypeEnum, SexEnum } from '@/gen/Enums'; +import { ProCard, ProDescriptions } from '@ant-design/pro-components'; +import { Image, Space } from 'antd'; + +export default function info(props: MyBetaModalFormProps) { + const { item } = props; + + return ( + + + + +
{item?.name}
+
+ + + {item?.phone} + + + + + + + + + + {props?.item?.id_card} + + + + + {props?.item?.card_front_image?.map( + (res: any, index: number) => { + return ( + + ); + }, + )} + + + {props?.item?.card_back_image?.map( + (res: any, index: number) => { + return ( + + ); + }, + )} + + + +
+
+
+ ); +} diff --git a/src/pages/customer/index.tsx b/src/pages/customer/index.tsx new file mode 100644 index 0000000..85b7811 --- /dev/null +++ b/src/pages/customer/index.tsx @@ -0,0 +1,63 @@ +import { + MyButtons, + MyColumns, + MyPageContainer, + MyProTableProps, + usePageTabs, +} from '@/common'; +import { Apis } from '@/gen/Apis'; +import { ProTable } from '@ant-design/pro-components'; +import { useNavigate } from '@umijs/max'; +import { Space } from 'antd'; + +export default function Index({ title = '房客关系' }) { + const navigate = useNavigate(); + // 注册当前页面为标签页 + usePageTabs({ + tabKey: 'archive-asset-houses', + tabLabel: title, + }); + return ( + + + MyProTableProps.request( + params, + sort, + Apis.Archive.HouseOccupants.CustomerList, + ) + } + columns={[ + MyColumns.ID(), + { + title: '客户名称', + dataIndex: 'name', + search: { + transform: (value) => { + return { name: value }; + }, + }, + }, + { + title: '客户电话', + dataIndex: 'phone', + }, + MyColumns.UpdatedAt(), + MyColumns.Option({ + render: (_, item: any, index, action) => ( + + { + navigate(`/customer/show/${item.id}`); + }} + /> + + ), + }), + ]} + /> + + ); +} diff --git a/src/pages/customer/show/$id.tsx b/src/pages/customer/show/$id.tsx new file mode 100644 index 0000000..86c1fdc --- /dev/null +++ b/src/pages/customer/show/$id.tsx @@ -0,0 +1,63 @@ +import { MyPageContainer, usePageTabs } from '@/common'; +import { Apis } from '@/gen/Apis'; +import { ProCard } from '@ant-design/pro-components'; +import { useParams } from '@umijs/max'; +import { Tabs } from 'antd'; +import { useEffect, useState } from 'react'; +import CustomerHouse from '../components/CustomerHouse'; +import CustomerInfo from '../components/CustomerInfo'; + +export default function Show({ title = '客户档案' }) { + const { id } = useParams<{ id: string }>(); + const [data, setShow] = useState({}); + + // 注册标签页 + const { addTab } = usePageTabs({ + tabKey: `customer-detail-${id}`, + tabLabel: `${data?.name}档案` || title, + }); + + const loadShow = () => { + let paramsId: any = { id: id ?? 0 }; + Apis.Archive.HouseOccupants.Show(paramsId).then((res) => { + setShow(res?.data); + // 更新标签页标题 + if (res?.data?.name) { + addTab({ + key: `customer-detail-${id}`, + label: `${res?.data?.name}档案`, + path: `/customer/show/${id}`, + }); + } + }); + }; + + useEffect(() => { + loadShow(); + }, [id]); + + let items = [ + { + label: '关联房屋', + key: '1', + closable: false, + children: ( + { + loadShow(); + }} + /> + ), + }, + ]; + + return ( + + + + + + + ); +} diff --git a/src/pages/meter/tasks/index.tsx b/src/pages/meter/tasks/index.tsx index 4f25fcf..e248912 100644 --- a/src/pages/meter/tasks/index.tsx +++ b/src/pages/meter/tasks/index.tsx @@ -15,10 +15,10 @@ import { Space } from 'antd'; import TaskCreate from './modals/TaskCreate'; import TaskShow from './modals/TaskShow'; -export default function Index({ title = '账单任务' }) { +export default function Index({ title = '仪表账单' }) { // 注册当前页面为标签页 usePageTabs({ - tabKey: 'house_charge_tasks', + tabKey: 'house_meter_tasks', tabLabel: title, }); diff --git a/src/pages/meter/tasks/modals/TaskCreate.tsx b/src/pages/meter/tasks/modals/TaskCreate.tsx index 37b1215..94af007 100644 --- a/src/pages/meter/tasks/modals/TaskCreate.tsx +++ b/src/pages/meter/tasks/modals/TaskCreate.tsx @@ -7,7 +7,10 @@ import { } from '@/common'; import { Selects } from '@/components/Select'; import { Apis } from '@/gen/Apis'; -import { HouseMeterTasksGenerationMethodEnum } from '@/gen/Enums'; +import { + HouseMetersMeterTypeEnum, + HouseMeterTasksGenerationMethodEnum, +} from '@/gen/Enums'; import { BetaSchemaForm } from '@ant-design/pro-components'; import { Form, message } from 'antd'; @@ -30,8 +33,11 @@ export default function Create(props: MyBetaModalFormProps) { form.resetFields(); // 清空表单数据 } }} - onFinish={async (values) => - Apis.Meter.HouseMeterTasks.Store(values) + onFinish={async (values: any) => + Apis.Meter.HouseMeterTasks.Store({ + ...values, + data: [values?.data_id], + }) .then(() => { props.reload?.(); message.success(props.title + '账单任务创建成功'); @@ -53,26 +59,7 @@ export default function Create(props: MyBetaModalFormProps) { }, }, }), - { - valueType: 'dependency', - name: ['asset_projects_id'], - columns: ({ asset_projects_id }) => { - return [ - Selects?.ChargeStandard({ - title: '选择收费标准', - key: 'house_charge_standards_id', - params: { - asset_projects_id: asset_projects_id, - }, - colProps: { span: 24 }, - formItemProps: { ...rulesHelper.text }, - fieldProps: { - showSearch: true, - }, - }), - ]; - }, - }, + { key: 'month', title: '选择生成月份', @@ -118,14 +105,118 @@ export default function Create(props: MyBetaModalFormProps) { }, formItemProps: { ...rulesHelper.text }, }, - MyFormItems.EnumRadio({ - key: 'generation_method', - title: '收款渠道', + key: 'meter_type', + title: '仪表类型', colProps: { span: 24 }, - valueEnum: HouseMeterTasksGenerationMethodEnum, + valueEnum: HouseMetersMeterTypeEnum, required: true, + fieldProps: { + onChange: () => { + // 切换计量单位时清空计费模式 + form.setFieldValue('generation_method', undefined); + form.setFieldValue('data', undefined); + }, + }, }), + { + name: ['meter_type'], + valueType: 'dependency', + columns: ({ meter_type }: any) => { + return meter_type === HouseMetersMeterTypeEnum.CommonMeter.value + ? [ + MyFormItems.EnumRadio({ + key: 'generation_method', + title: '生成方式', + colProps: { span: 24 }, + valueEnum: () => { + let obj: any = JSON.parse( + JSON.stringify(HouseMeterTasksGenerationMethodEnum), + ); + delete obj.Unit; + delete obj.Building; + return obj; + }, + required: true, + }), + Selects?.AssetMeters({ + title: '选择仪表', + params: { + asset_projects_id: + form.getFieldValue('asset_projects_id'), + // 仪表类型必须为房屋仪表 + meter_type: HouseMetersMeterTypeEnum.CommonMeter.value, + }, + key: 'data_id', + colProps: { span: 24 }, + formItemProps: { ...rulesHelper.text }, + }), + ] + : meter_type === HouseMetersMeterTypeEnum.HouseMeter.value + ? [ + MyFormItems.EnumRadio({ + key: 'generation_method', + title: '生成方式', + colProps: { span: 24 }, + valueEnum: HouseMeterTasksGenerationMethodEnum, + required: true, + }), + { + name: ['generation_method'], + valueType: 'dependency', + columns: ({ generation_method }: any) => { + return generation_method === + HouseMeterTasksGenerationMethodEnum.Building.value + ? [ + Selects?.AssetBuildings({ + title: '选择楼栋', + key: 'data_id', + params: { + asset_projects_id: + form.getFieldValue('asset_projects_id'), + }, + colProps: { span: 24 }, + formItemProps: { ...rulesHelper.text }, + }), + ] + : generation_method === + HouseMeterTasksGenerationMethodEnum.Unit.value + ? [ + Selects?.AssetUnits({ + title: '选择单元', + key: 'data_id', + params: { + asset_projects_id: + form.getFieldValue('asset_projects_id'), + }, + colProps: { span: 24 }, + formItemProps: { ...rulesHelper.text }, + }), + ] + : generation_method === + HouseMeterTasksGenerationMethodEnum.Meter.value + ? [ + Selects?.AssetMeters({ + title: '选择仪表', + params: { + asset_projects_id: + form.getFieldValue('asset_projects_id'), + // 仪表类型必须为房屋仪表 + meter_type: + HouseMetersMeterTypeEnum.HouseMeter.value, + }, + key: 'data_id', + colProps: { span: 24 }, + formItemProps: { ...rulesHelper.text }, + }), + ] + : []; + }, + }, + ] + : []; + }, + }, ]} /> ); diff --git a/src/pages/meter/tasks/modals/TaskShow.tsx b/src/pages/meter/tasks/modals/TaskShow.tsx index 795010d..9887856 100644 --- a/src/pages/meter/tasks/modals/TaskShow.tsx +++ b/src/pages/meter/tasks/modals/TaskShow.tsx @@ -17,7 +17,7 @@ export default function AssetInfo(props: MyBetaModalFormProps) { MyProTableProps.request( { ...params, house_charge_tasks_id: props?.item?.id }, sort, - Apis.HouseCharage.HouseChargeTaskDetails.List, + Apis.Meter.HouseMeterTasks.List, ) } columns={[