fix:更新配置主题色
All checks were successful
Build and Push Docker Image / build (push) Successful in 4m37s

This commit is contained in:
Your Name 2026-01-30 17:04:58 +08:00
parent e831095ca0
commit 866ce14210
7 changed files with 130 additions and 39 deletions

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

@ -151,6 +151,11 @@ declare namespace ApiTypes {
"asset_houses_id"?: number; // 资产房屋ID "asset_houses_id"?: number; // 资产房屋ID
"asset_projects_id"?: number; // 资产项目ID "asset_projects_id"?: number; // 资产项目ID
"status"?: string; // 状态,[enum:HouseOccupantsStatusEnum] "status"?: string; // 状态,[enum:HouseOccupantsStatusEnum]
"name"?: string; // 客户姓名
"phone"?: string; // 客户手机号
"id_card"?: string; // 客户身份证号
"house_name"?: string; // 房屋名称
"project_name"?: string; // 项目名称
}; };
type CustomerList = { type CustomerList = {
"name"?: string; // 客户姓名 "name"?: string; // 客户姓名
@ -198,6 +203,8 @@ declare namespace ApiTypes {
"type"?: string[]; // 类型,[enum:HouseRegistersTypeEnum] "type"?: string[]; // 类型,[enum:HouseRegistersTypeEnum]
"status"?: string; // 状态,[enum:HouseRegistersStatusEnum] "status"?: string; // 状态,[enum:HouseRegistersStatusEnum]
"asset_houses_id"?: number; // 房屋ID "asset_houses_id"?: number; // 房屋ID
"customer_name"?: string; // 客户名称
"project_name"?: string; // 模糊搜索:项目名称
}; };
type Store = { type Store = {
"asset_houses_id": number; // 房屋ID "asset_houses_id": number; // 房屋ID
@ -895,7 +902,7 @@ declare namespace ApiTypes {
} }
namespace CompanyProjectReceiptAccounts { namespace CompanyProjectReceiptAccounts {
type List = { type List = {
"projects_id"?: number; // 所属项目id,[ref:asset_projects] "asset_projects_id"?: number; // 所属项目id,[ref:asset_projects]
}; };
type Store = { type Store = {
"projects_id": number; // 所属项目id,[ref:asset_projects] "projects_id": number; // 所属项目id,[ref:asset_projects]
@ -1191,7 +1198,7 @@ declare namespace ApiTypes {
"tiered_rates"?: string[]; // 阶梯收费标准 "tiered_rates"?: string[]; // 阶梯收费标准
"is_apportionment"?: number; // 是否分摊 "is_apportionment"?: number; // 是否分摊
"apportionment_method"?: string; // 分摊方式,[enum:HouseChargeStandardsApportionmentMethodEnum] "apportionment_method"?: string; // 分摊方式,[enum:HouseChargeStandardsApportionmentMethodEnum]
"has_late_fee"?: number; // 是否滞纳金 "has_late_fee"?: boolean; // 是否滞纳金
"late_fee_start_days"?: number; // 生成几天后开始收取滞纳金 "late_fee_start_days"?: number; // 生成几天后开始收取滞纳金
"late_fee_rate"?: number; // 滞纳金费率(百分比) "late_fee_rate"?: number; // 滞纳金费率(百分比)
"late_fee_cap_days"?: number; // 滞纳金封顶天数 "late_fee_cap_days"?: number; // 滞纳金封顶天数
@ -1216,7 +1223,7 @@ declare namespace ApiTypes {
"tiered_rates"?: string[]; // 阶梯收费标准 "tiered_rates"?: string[]; // 阶梯收费标准
"is_apportionment"?: number; // 是否分摊 "is_apportionment"?: number; // 是否分摊
"apportionment_method"?: string; // 分摊方式,[enum:HouseChargeStandardsApportionmentMethodEnum] "apportionment_method"?: string; // 分摊方式,[enum:HouseChargeStandardsApportionmentMethodEnum]
"has_late_fee"?: number; // 是否滞纳金 "has_late_fee"?: boolean; // 是否滞纳金
"late_fee_start_days"?: number; // 生成几天后开始收取滞纳金 "late_fee_start_days"?: number; // 生成几天后开始收取滞纳金
"late_fee_rate"?: number; // 滞纳金费率(百分比) "late_fee_rate"?: number; // 滞纳金费率(百分比)
"late_fee_cap_days"?: number; // 滞纳金封顶天数 "late_fee_cap_days"?: number; // 滞纳金封顶天数
@ -1255,11 +1262,15 @@ declare namespace ApiTypes {
} }
namespace HouseChargeTasks { namespace HouseChargeTasks {
type List = { type List = {
"id"?: number; // id 任务id
"charge_standard_name"?: string; // 模糊搜索:收费标准名称 "charge_standard_name"?: string; // 模糊搜索:收费标准名称
"asset_projects_id"?: number; // 资产项目id,[ref:asset_projects] "asset_projects_id"?: number; // 资产项目id,[ref:asset_projects]
"status"?: string; // 任务状态,[enum:HouseChargeTasksStatusEnum] "status"?: string; // 任务状态,[enum:HouseChargeTasksStatusEnum]
"type"?: string; // 类型,[enum:HouseChargeTasksTypeEnum] "type"?: string; // 类型,[enum:HouseChargeTasksTypeEnum]
"project_name"?: string; // 资产项目名称 "project_name"?: string; // 资产项目名称
"company_name"?: string; // 公司名称
"bill_year"?: string; // 月份
"bill_month"?: string; // 月份
}; };
type Store = { type Store = {
"house_charge_standards_id": number; // 房屋收费标准id,[ref:house_charge_standards] "house_charge_standards_id": number; // 房屋收费标准id,[ref:house_charge_standards]
@ -1422,6 +1433,9 @@ declare namespace ApiTypes {
"total_payable_amount": number; // 应付金额 "total_payable_amount": number; // 应付金额
"bill_ids": string[]; // 账单id "bill_ids": string[]; // 账单id
}; };
type ImportOfflinePayment = {
"upload_file": mimes:xlsx,xls; // 上传文件
};
} }
namespace HousePrepaymentLogs { namespace HousePrepaymentLogs {
type List = { type List = {
@ -1517,6 +1531,9 @@ declare namespace ApiTypes {
type Delete = { type Delete = {
"id": number; // id "id": number; // id
}; };
type Import = {
"upload_file"?: mimes:xlsx,xls; // 上传的时候必填文件
};
} }
namespace HouseMeterReadings { namespace HouseMeterReadings {
type List = { type List = {
@ -1573,6 +1590,10 @@ declare namespace ApiTypes {
namespace HouseMeterTasks { namespace HouseMeterTasks {
type List = { type List = {
"name"?: string; // 模糊搜索:名称 "name"?: string; // 模糊搜索:名称
"status"?: string; // 任务状态,[enum:HouseChargeTasksStatusEnum]
"generation_method"?: string; // 生成方式,[enum:HouseMeterTasksGenerationMethodEnum]
"bill_year"?: number; // 年份
"bill_month"?: number; // 月份
}; };
type Store = { type Store = {
"asset_projects_id": number; // 资产项目id,[ref:asset_projects] "asset_projects_id": number; // 资产项目id,[ref:asset_projects]
@ -1599,6 +1620,9 @@ declare namespace ApiTypes {
"project_name"?: string; // 模糊搜索:项目名称 "project_name"?: string; // 模糊搜索:项目名称
"charge_standards_id"?: number; // 房屋收费标准id,[ref:house_charge_standards] "charge_standards_id"?: number; // 房屋收费标准id,[ref:house_charge_standards]
"meter_type"?: string; // 仪表类型,[enum:HouseMetersMeterTypeEnum] "meter_type"?: string; // 仪表类型,[enum:HouseMetersMeterTypeEnum]
"usage_type"?: string; // 使用类型,[enum:HouseMetersUsageTypeEnum]
"charge_standard_name"?: string; // 模糊搜索:收费标准名称
"asset_houses_id"?: number; // 房屋id,[ref:asset_houses]
}; };
type Store = { type Store = {
"asset_projects_id": number; // 项目id,[ref:asset_projects] "asset_projects_id": number; // 项目id,[ref:asset_projects]
@ -1635,6 +1659,21 @@ declare namespace ApiTypes {
type Delete = { type Delete = {
"id": number; // id "id": number; // id
}; };
type Import = {
"upload_file"?: mimes:xlsx,xls; // 上传的时候必填文件
};
type Export = {
"name"?: string; // 模糊搜索:名称
"asset_projects_id"?: number; // 项目id,[ref:asset_projects]
"project_name"?: string; // 模糊搜索:项目名称
"charge_standards_id"?: number; // 房屋收费标准id,[ref:house_charge_standards]
"meter_type"?: string; // 仪表类型,[enum:HouseMetersMeterTypeEnum]
"usage_type"?: string; // 使用类型,[enum:HouseMetersUsageTypeEnum]
"charge_standard_name"?: string; // 模糊搜索:收费标准名称
"asset_houses_id"?: number; // 房屋id,[ref:asset_houses]
"download_type"?: string; // 下载类型all-全部page-当前页
"current"?: number; // 当前页偏移量
};
} }
} }
namespace Msg { namespace Msg {
@ -1813,6 +1852,13 @@ declare namespace ApiTypes {
"assign_status"?: string; // 工单分配状态,[enum:HouseWorkOrdersAssignStatusEnum] "assign_status"?: string; // 工单分配状态,[enum:HouseWorkOrdersAssignStatusEnum]
"reporter_name"?: string; // 模糊搜索:上报人姓名 "reporter_name"?: string; // 模糊搜索:上报人姓名
"reporter_phone"?: string; // 模糊搜索:上报人手机 "reporter_phone"?: string; // 模糊搜索:上报人手机
"is_completed"?: boolean; // 是否完工:0否,1是
"is_evaluated"?: boolean; // 是否评价: 0否,1是
"is_visited"?: boolean; // 是否已访问: 0否,1是
"location"?: string; // 报修位置[enum:HouseWorkOrdersLocationEnum]
"asset_projects_id"?: number; // 资产项目id,[ref:asset_projects]
"project_name"?: string; // 模糊搜索:项目名称
"asset_houses_id"?: number; // 资产房屋id,[ref:asset_houses]
}; };
type Store = { type Store = {
"type": string; // 工单类型,[enum:HouseWorkOrdersTypeEnum] "type": string; // 工单类型,[enum:HouseWorkOrdersTypeEnum]

View File

@ -784,6 +784,12 @@ export const Apis = {
GetPayCode(data: ApiTypes.HouseOrder.HouseOrders.GetPayCode): Promise<MyResponseType> { GetPayCode(data: ApiTypes.HouseOrder.HouseOrders.GetPayCode): Promise<MyResponseType> {
return request('company/house_order/house_orders/get_pay_code', { data }); return request('company/house_order/house_orders/get_pay_code', { data });
}, },
DownloadOfflinePaymentTemplate(): Promise<MyResponseType> {
return request('company/house_order/house_orders/download_offline_payment_template', {responseType: 'blob',});
},
ImportOfflinePayment(data: ApiTypes.HouseOrder.HouseOrders.ImportOfflinePayment): Promise<MyResponseType> {
return request('company/house_order/house_orders/import_offline_payment', { data });
},
}, },
HousePrepaymentLogs: { HousePrepaymentLogs: {
List(data?: ApiTypes.HouseOrder.HousePrepaymentLogs.List): Promise<MyResponseType> { List(data?: ApiTypes.HouseOrder.HousePrepaymentLogs.List): Promise<MyResponseType> {
@ -856,6 +862,12 @@ export const Apis = {
Delete(data: ApiTypes.Meter.HouseMeterHasHouses.Delete): Promise<MyResponseType> { Delete(data: ApiTypes.Meter.HouseMeterHasHouses.Delete): Promise<MyResponseType> {
return request('company/meter/house_meter_has_houses/delete', { data }); return request('company/meter/house_meter_has_houses/delete', { data });
}, },
Import(data?: ApiTypes.Meter.HouseMeterHasHouses.Import): Promise<MyResponseType> {
return request('company/meter/house_meter_has_houses/import', { data });
},
DownloadTemplate(): Promise<MyResponseType> {
return request('company/meter/house_meter_has_houses/download_template', {responseType: 'blob',});
},
}, },
HouseMeterReadings: { HouseMeterReadings: {
List(data: ApiTypes.Meter.HouseMeterReadings.List): Promise<MyResponseType> { List(data: ApiTypes.Meter.HouseMeterReadings.List): Promise<MyResponseType> {
@ -927,6 +939,15 @@ export const Apis = {
Delete(data: ApiTypes.Meter.HouseMeters.Delete): Promise<MyResponseType> { Delete(data: ApiTypes.Meter.HouseMeters.Delete): Promise<MyResponseType> {
return request('company/meter/house_meters/delete', { data }); return request('company/meter/house_meters/delete', { data });
}, },
Import(data?: ApiTypes.Meter.HouseMeters.Import): Promise<MyResponseType> {
return request('company/meter/house_meters/import', { data });
},
DownloadTemplate(): Promise<MyResponseType> {
return request('company/meter/house_meters/download_template', {responseType: 'blob',});
},
Export(data?: ApiTypes.Meter.HouseMeters.Export): Promise<MyResponseType> {
return request('company/meter/house_meters/export', { responseType: 'blob',data });
},
}, },
}, },
Msg: { Msg: {

View File

@ -251,7 +251,7 @@ export const BannersTypeEnum= {
// 缓存类型 // 缓存类型
export const CacheTypeEnum= { export const CacheTypeEnum= {
'MobilePhoneVerificationCode': {"text":"手机验证码","color":"#63f8de","value":"MobilePhoneVerificationCode"}, 'MobilePhoneVerificationCode': {"text":"手机验证码","color":"#e482d3","value":"MobilePhoneVerificationCode"},
}; };
// CompaniesMerchantTypeEnum // CompaniesMerchantTypeEnum

View File

@ -72,19 +72,19 @@ export default function CommonMeter({ title = '公摊表' }) {
}} }}
/> />
), ),
update: <Update item={item} reload={action?.reload} title={title} />, has: (
<MeterHasHouse
item={{ ...item, size: 'small' }}
reload={action?.reload}
title="绑房"
/>
),
}); });
let permissionsSpace = getCurrentPermissions({ let permissionsSpace = getCurrentPermissions({
has: { update: {
key: '1', key: '1',
label: ( label: <Update item={item} reload={action?.reload} title={title} />,
<MeterHasHouse
item={{ ...item, size: 'small' }}
reload={action?.reload}
title="绑房"
/>
),
}, },
delete: { delete: {
key: '2', key: '2',
@ -135,6 +135,20 @@ export default function CommonMeter({ title = '公摊表' }) {
// search: { transform: (value) => ({ project_name: value }) } // search: { transform: (value) => ({ project_name: value }) }
search: false, search: false,
}, },
{
title: '房屋',
render: (_, item: any) => {
return (
<Space>
{item.house_meter_has_houses?.map(
(res: { full_name: string }) => {
return res?.full_name;
},
)}
</Space>
);
},
},
{ {
title: '仪表编号', title: '仪表编号',
dataIndex: 'name', dataIndex: 'name',

View File

@ -72,19 +72,19 @@ export default function HouseMeter({ title = '房屋表' }) {
}} }}
/> />
), ),
update: <Update item={item} reload={action?.reload} title={title} />, has: (
<MeterHasOne
item={{ ...item, size: 'small' }}
reload={action?.reload}
title="绑房"
/>
),
}); });
let permissionsSpace = getCurrentPermissions({ let permissionsSpace = getCurrentPermissions({
has: { update: {
key: '1', key: '1',
label: ( label: <Update item={item} reload={action?.reload} title={title} />,
<MeterHasOne
item={{ ...item, size: 'small' }}
reload={action?.reload}
title="绑房"
/>
),
}, },
delete: { delete: {
key: '2', key: '2',
@ -135,6 +135,16 @@ export default function HouseMeter({ title = '房屋表' }) {
// search: { transform: (value) => ({ project_name: value }) } // search: { transform: (value) => ({ project_name: value }) }
search: false, search: false,
}, },
{
title: '房屋',
render: (_, item: any) => {
return item.house_meter_has_houses?.map(
(res: { full_name: string }) => {
return res?.full_name;
},
);
},
},
{ {
title: '仪表编号', title: '仪表编号',
dataIndex: 'name', dataIndex: 'name',
@ -205,14 +215,14 @@ export default function HouseMeter({ title = '房屋表' }) {
// dataIndex: 'remark', // dataIndex: 'remark',
// search: false, // search: false,
// }, // },
MyColumns.SoftDelete({ // MyColumns.SoftDelete({
onRestore: Apis.Meter.HouseMeters.Restore, // onRestore: Apis.Meter.HouseMeters.Restore,
onSoftDelete: Apis.Meter.HouseMeters.SoftDelete, // onSoftDelete: Apis.Meter.HouseMeters.SoftDelete,
search: false, // search: false,
setPermissions: getCurrentPermissions({ // setPermissions: getCurrentPermissions({
enableDisable: true, // enableDisable: true,
}), // }),
}), // }),
// MyColumns.CreatedAt(), // MyColumns.CreatedAt(),
MyColumns.Option({ MyColumns.Option({
render: (_, item: any, index, action) => ( render: (_, item: any, index, action) => (

View File

@ -1,4 +1,4 @@
import { MyPageContainer, usePageTabs } from '@/common'; import { MyPageContainer } from '@/common';
import { Apis } from '@/gen/Apis'; import { Apis } from '@/gen/Apis';
import { ProCard } from '@ant-design/pro-components'; import { ProCard } from '@ant-design/pro-components';
import { useParams } from '@umijs/max'; import { useParams } from '@umijs/max';
@ -12,13 +12,6 @@ import Tasks from '../table/Tasks';
export default function Show({ title = '仪表详情' }) { export default function Show({ title = '仪表详情' }) {
const { id } = useParams<{ id: string }>(); const { id } = useParams<{ id: string }>();
const [data, setShow] = useState<any>({}); const [data, setShow] = useState<any>({});
console.log('id', data);
// 注册标签页
const { addTab } = usePageTabs({
tabKey: `meter-detail-${id}`,
tabLabel: `仪表:${data?.name}` || title,
});
const loadShow = () => { const loadShow = () => {
let paramsId: any = { id: id ?? 0 }; let paramsId: any = { id: id ?? 0 };
@ -68,7 +61,12 @@ export default function Show({ title = '仪表详情' }) {
]; ];
return ( return (
<MyPageContainer title={title}> <MyPageContainer
title={`仪表:${data?.name}` || title}
enableTabs={true}
tabKey={`meter-detail-${id}`}
tabLabel={`仪表:${data?.name}` || title}
>
<MeteInfo item={data} reload={loadShow} /> <MeteInfo item={data} reload={loadShow} />
<ProCard style={{ marginTop: 16 }}> <ProCard style={{ marginTop: 16 }}>
<Tabs type="card" items={items} defaultActiveKey="1" /> <Tabs type="card" items={items} defaultActiveKey="1" />

View File

@ -9,6 +9,8 @@ import { HouseMetersMeterTypeEnum } from '@/gen/Enums';
import { ProTable } from '@ant-design/pro-components'; import { ProTable } from '@ant-design/pro-components';
import { useNavigate } from '@umijs/max'; import { useNavigate } from '@umijs/max';
import { Space } from 'antd'; import { Space } from 'antd';
import MeterHasHouse from '../../house_meter/modals/MeterHasHouse';
import MeterHasOne from '../../house_meter/modals/MeterHasOne';
export default function Index(props: MyBetaModalFormProps) { export default function Index(props: MyBetaModalFormProps) {
const navigate = useNavigate(); const navigate = useNavigate();