From b81c30696b8a6f63a66bbc403eb7be7fc03ef7e4 Mon Sep 17 00:00:00 2001 From: FLL <2162874245@qq.com> Date: Fri, 18 Jul 2025 19:48:05 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B4=B9=E7=94=A8=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../costManagement/paymentReview/index.ts | 61 ++++++ .../costManagement/paymentReview/model.d.ts | 175 ++++++++++++++++++ .../costItemSetting-detail.vue | 99 ++++++++++ .../costManagement/costItemSetting/data.ts | 51 +++-- .../costManagement/costItemSetting/index.vue | 36 +++- .../costManagement/paymentReview/data.ts | 172 +++++++++++++++++ .../costManagement/paymentReview/index.vue | 109 +++++++++++ .../paymentReview/paymentReview-detail.vue | 70 +++++++ 8 files changed, 750 insertions(+), 23 deletions(-) create mode 100644 apps/web-antd/src/api/property/costManagement/paymentReview/index.ts create mode 100644 apps/web-antd/src/api/property/costManagement/paymentReview/model.d.ts create mode 100644 apps/web-antd/src/views/property/costManagement/costItemSetting/costItemSetting-detail.vue create mode 100644 apps/web-antd/src/views/property/costManagement/paymentReview/data.ts create mode 100644 apps/web-antd/src/views/property/costManagement/paymentReview/index.vue create mode 100644 apps/web-antd/src/views/property/costManagement/paymentReview/paymentReview-detail.vue diff --git a/apps/web-antd/src/api/property/costManagement/paymentReview/index.ts b/apps/web-antd/src/api/property/costManagement/paymentReview/index.ts new file mode 100644 index 00000000..4980e8eb --- /dev/null +++ b/apps/web-antd/src/api/property/costManagement/paymentReview/index.ts @@ -0,0 +1,61 @@ +import type { PaymentReviewVO, PaymentReviewForm, PaymentReviewQuery } from './model'; + +import type { ID, IDS } from '#/api/common'; +import type { PageResult } from '#/api/common'; + +import { commonExport } from '#/api/helper'; +import { requestClient } from '#/api/request'; + +/** +* 查询缴费审核列表 +* @param params +* @returns 缴费审核列表 +*/ +export function paymentReviewList(params?: PaymentReviewQuery) { + return requestClient.get>('/property/payFeeAudit/list', { params }); +} + +/** + * 导出缴费审核列表 + * @param params + * @returns 缴费审核列表 + */ +export function paymentReviewExport(params?: PaymentReviewQuery) { + return commonExport('/property/payFeeAudit/export', params ?? {}); +} + +/** + * 查询缴费审核详情 + * @param id id + * @returns 缴费审核详情 + */ +export function paymentReviewInfo(id: ID) { + return requestClient.get(`/property/payFeeAudit/${id}`); +} + +/** + * 新增缴费审核 + * @param data + * @returns void + */ +export function paymentReviewAdd(data: PaymentReviewForm) { + return requestClient.postWithMsg('/property/payFeeAudit', data); +} + +/** + * 更新缴费审核 + * @param data + * @returns void + */ +export function paymentReviewUpdate(data: PaymentReviewForm) { + return requestClient.putWithMsg('/property/payFeeAudit', data); +} + +/** + * 删除缴费审核 + * @param id id + * @returns void + */ +export function paymentReviewRemove(id: ID | IDS) { + return requestClient.deleteWithMsg(`/property/payFeeAudit/${id}`); +} diff --git a/apps/web-antd/src/api/property/costManagement/paymentReview/model.d.ts b/apps/web-antd/src/api/property/costManagement/paymentReview/model.d.ts new file mode 100644 index 00000000..e3bbb58f --- /dev/null +++ b/apps/web-antd/src/api/property/costManagement/paymentReview/model.d.ts @@ -0,0 +1,175 @@ +import type { PageQuery, BaseEntity } from '#/api/common'; + +export interface PaymentReviewVO { + /** + * 主键 + */ + id: string | number; + + /** + * 房屋收费id + */ + houseChargeId: string | number; + + /** + * 费用项目id + */ + itemId: string | number; + + /** + * 缴费开始时间 + */ + startTime: string; + + /** + * 缴费结束时间 + */ + endTime: string; + + /** + * 实付金额 + */ + receivedAmount: string; + + /** + * 应收金额 + */ + receivableAmount: number; + + /** + * 缴费时间 + + + */ + payTime: string; + + /** + * 审核状态 + */ + state: string; + + /** + * 备注 + */ + remark: string; + + /** + * 搜索值 + */ + searchValue: string; + +} + +export interface PaymentReviewForm extends BaseEntity { + /** + * 主键 + */ + id?: string | number; + + /** + * 房屋收费id + */ + houseChargeId?: string | number; + + /** + * 费用项目id + */ + itemId?: string | number; + + /** + * 缴费开始时间 + */ + startTime?: string; + + /** + * 缴费结束时间 + */ + endTime?: string; + + /** + * 实付金额 + */ + receivedAmount?: string; + + /** + * 应收金额 + */ + receivableAmount?: number; + + /** + * 缴费时间 + + + */ + payTime?: string; + + /** + * 审核状态 + */ + state?: string; + + /** + * 备注 + */ + remark?: string; + + /** + * 搜索值 + */ + searchValue?: string; + +} + +export interface PaymentReviewQuery extends PageQuery { + /** + * 房屋收费id + */ + houseChargeId?: string | number; + + /** + * 费用项目id + */ + itemId?: string | number; + + /** + * 缴费开始时间 + */ + startTime?: string; + + /** + * 缴费结束时间 + */ + endTime?: string; + + /** + * 实付金额 + */ + receivedAmount?: string; + + /** + * 应收金额 + */ + receivableAmount?: number; + + /** + * 缴费时间 + + + */ + payTime?: string; + + /** + * 审核状态 + */ + state?: string; + + /** + * 搜索值 + */ + searchValue?: string; + + /** + * 日期范围参数 + */ + params?: any; +} diff --git a/apps/web-antd/src/views/property/costManagement/costItemSetting/costItemSetting-detail.vue b/apps/web-antd/src/views/property/costManagement/costItemSetting/costItemSetting-detail.vue new file mode 100644 index 00000000..e3b8ed3d --- /dev/null +++ b/apps/web-antd/src/views/property/costManagement/costItemSetting/costItemSetting-detail.vue @@ -0,0 +1,99 @@ + + + diff --git a/apps/web-antd/src/views/property/costManagement/costItemSetting/data.ts b/apps/web-antd/src/views/property/costManagement/costItemSetting/data.ts index 92f9bc96..1a81f642 100644 --- a/apps/web-antd/src/views/property/costManagement/costItemSetting/data.ts +++ b/apps/web-antd/src/views/property/costManagement/costItemSetting/data.ts @@ -1,13 +1,12 @@ import type { FormSchemaGetter } from '#/adapter/form'; import type { VxeGridProps } from '#/adapter/vxe-table'; - import { getDictOptions } from '#/utils/dict'; import { renderDict } from '#/utils/render'; export const querySchema: FormSchemaGetter = () => [ { component: 'Input', - fieldName: 'chargeItem', + fieldName: 'chargeNo', label: '费用编号', }, { @@ -28,20 +27,17 @@ export const querySchema: FormSchemaGetter = () => [ }, ]; -// 需要使用i18n注意这里要改成getter形式 否则切换语言不会刷新 -// export const columns: () => VxeGridProps['columns'] = () => [ export const columns: VxeGridProps['columns'] = [ { type: 'checkbox', width: 60 }, { title: '费用编号', - field: 'chargeItem', + field: 'chargeNo', }, { title: '费用类型', field: 'costType', slots: { default: ({ row }) => { - // 可选从DictEnum中获取 DictEnum.PRO_EXPENSE_TYPE 便于维护 return renderDict(row.costType, 'pro_expense_type'); }, }, @@ -55,8 +51,7 @@ export const columns: VxeGridProps['columns'] = [ field: 'costMark', slots: { default: ({ row }) => { - // 可选从DictEnum中获取 DictEnum.PRO_EXPENSE_TYPE 便于维护 - return renderDict(row.costType, 'pro_cost_identification'); + return renderDict(row.costMark, 'pro_cost_identification'); }, }, }, @@ -65,8 +60,7 @@ export const columns: VxeGridProps['columns'] = [ field: 'paymentType', slots: { default: ({ row }) => { - // 可选从DictEnum中获取 DictEnum.PRO_EXPENSE_TYPE 便于维护 - return renderDict(row.costType, 'pro_payment_type'); + return renderDict(row.paymentType, 'pro_payment_type'); }, }, }, @@ -77,6 +71,11 @@ export const columns: VxeGridProps['columns'] = [ { title: '计算公式', field: 'formula', + slots: { + default: ({ row }) => { + return renderDict(row.formula, 'pro_calculation_formula'); + }, + }, }, { title: '计费单价', @@ -86,6 +85,12 @@ export const columns: VxeGridProps['columns'] = [ title: '附加费用', field: 'surcharge', }, + { + title: '状态', + field: 'state', + slots: {default: 'state'}, + width: 100, + }, { field: 'action', fixed: 'right', @@ -110,7 +115,6 @@ export const modalSchema: FormSchemaGetter = () => [ fieldName: 'costType', component: 'Select', componentProps: { - // 可选从DictEnum中获取 DictEnum.PRO_EXPENSE_TYPE 便于维护 options: getDictOptions('pro_expense_type'), }, rules: 'selectRequired', @@ -126,7 +130,6 @@ export const modalSchema: FormSchemaGetter = () => [ fieldName: 'costMark', component: 'Select', componentProps: { - // 可选从DictEnum中获取 DictEnum.PRO_EXPENSE_TYPE 便于维护 options: getDictOptions('pro_cost_identification'), }, rules: 'required', @@ -144,13 +147,22 @@ export const modalSchema: FormSchemaGetter = () => [ label: '费用周期(月)', fieldName: 'chargeCycle', component: 'Input', + rules: 'required', + }, + { + label: '单位', + fieldName: 'unit', + component: 'Input', + rules: 'required', + componentProps: { + placeholder: '请输入(如:元)', + }, }, { label: '手机缴费', fieldName: 'isMobilePay', component: 'Select', componentProps: { - // 可选从DictEnum中获取 DictEnum.PRO_EXPENSE_TYPE 便于维护 options: getDictOptions('pro_mobile_payment'), }, rules: 'selectRequired', @@ -159,7 +171,6 @@ export const modalSchema: FormSchemaGetter = () => [ label: '进位方式', fieldName: 'roundingMode', componentProps: { - // 可选从DictEnum中获取 DictEnum.PRO_EXPENSE_TYPE 便于维护 options: getDictOptions('pro_carry_method'), }, component: 'Select', @@ -170,22 +181,24 @@ export const modalSchema: FormSchemaGetter = () => [ fieldName: 'currencyDecimals', component: 'Select', componentProps: { - // 可选从DictEnum中获取 DictEnum.PRO_EXPENSE_TYPE 便于维护 options: getDictOptions('pro_keep_decimals'), }, rules: 'selectRequired', }, { - label: '启用状态', + component: 'Select', + componentProps: { + options: getDictOptions('wy_state'), + }, fieldName: 'state', - component: 'Input', + label: '状态', + rules: 'selectRequired', }, { label: '计算公式', fieldName: 'formula', component: 'Select', componentProps: { - // 可选从DictEnum中获取 DictEnum.PRO_EXPENSE_TYPE 便于维护 options: getDictOptions('pro_calculation_formula'), }, rules: 'selectRequired', @@ -195,10 +208,12 @@ export const modalSchema: FormSchemaGetter = () => [ label: '计费单价', fieldName: 'unitPrice', component: 'Input', + rules: 'required', }, { label: '附加费', fieldName: 'surcharge', component: 'Input', + rules: 'required', }, ]; diff --git a/apps/web-antd/src/views/property/costManagement/costItemSetting/index.vue b/apps/web-antd/src/views/property/costManagement/costItemSetting/index.vue index 8fc762fe..1d3c3d18 100644 --- a/apps/web-antd/src/views/property/costManagement/costItemSetting/index.vue +++ b/apps/web-antd/src/views/property/costManagement/costItemSetting/index.vue @@ -1,23 +1,22 @@ + + diff --git a/apps/web-antd/src/views/property/costManagement/paymentReview/data.ts b/apps/web-antd/src/views/property/costManagement/paymentReview/data.ts new file mode 100644 index 00000000..a0114df4 --- /dev/null +++ b/apps/web-antd/src/views/property/costManagement/paymentReview/data.ts @@ -0,0 +1,172 @@ +import type { FormSchemaGetter } from '#/adapter/form'; +import type { VxeGridProps } from '#/adapter/vxe-table'; + +import { getDictOptions } from '#/utils/dict'; +import { renderDict } from '#/utils/render'; + +export const querySchema: FormSchemaGetter = () => [ + { + component: 'Input', + fieldName: 'roomNumber', + label: '房屋', + }, + { + component: 'Select', + componentProps: { + // 可选从DictEnum中获取 DictEnum.COST_REVIEW_STATUS 便于维护 + options: getDictOptions('pro_expense_type'), + }, + fieldName: 'costType', + label: '费用类型', + }, + { + component: 'Select', + componentProps: { + // 可选从DictEnum中获取 DictEnum.COST_REVIEW_STATUS 便于维护 + options: getDictOptions('cost_review_status'), + }, + fieldName: 'state', + label: '审核状态', + }, +]; + +export const columns: VxeGridProps['columns'] = [ + { type: 'checkbox', width: 60 }, + { + title: '房屋', + field: 'roomNumber', + }, + { + title: '费用项目', + field: 'chargeItem', + }, + { + title: '付费周期', + field: 'chargeCycle', + }, + { + title: '缴费开始时间', + field: 'startTime', + }, + { + title: '缴费结束时间', + field: 'endTime', + }, + { + title: '实付金额', + field: 'receivedAmount', + }, + { + title: '应收金额', + field: 'receivableAmount', + }, + { + title: '缴费时间', + field: 'payTime', + }, + { + title: '审核状态', + field: 'state', + slots: { + default: ({ row }) => { + // 可选从DictEnum中获取 DictEnum.COST_REVIEW_STATUS 便于维护 + return renderDict(row.state, 'cost_review_status'); + }, + }, + }, + { + field: 'action', + fixed: 'right', + slots: { default: 'action' }, + title: '操作', + width: 180, + }, +]; + +export const modalSchema: FormSchemaGetter = () => [ + { + label: '主键', + fieldName: 'id', + component: 'Input', + dependencies: { + show: () => false, + triggerFields: [''], + }, + }, + { + label: '房屋收费id', + fieldName: 'houseChargeId', + component: 'Input', + rules: 'required', + }, + { + label: '费用项目id', + fieldName: 'itemId', + component: 'Input', + rules: 'required', + }, + { + label: '缴费开始时间', + fieldName: 'startTime', + component: 'DatePicker', + componentProps: { + showTime: true, + format: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'YYYY-MM-DD HH:mm:ss', + }, + rules: 'required', + }, + { + label: '缴费结束时间', + fieldName: 'endTime', + component: 'DatePicker', + componentProps: { + showTime: true, + format: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'YYYY-MM-DD HH:mm:ss', + }, + rules: 'required', + }, + { + label: '实付金额', + fieldName: 'receivedAmount', + component: 'Input', + }, + { + label: '应收金额', + fieldName: 'receivableAmount', + component: 'Input', + rules: 'required', + }, + { + label: '缴费时间', + fieldName: 'payTime', + component: 'DatePicker', + componentProps: { + showTime: true, + format: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'YYYY-MM-DD HH:mm:ss', + }, + rules: 'required', + }, + { + label: '审核状态', + fieldName: 'state', + component: 'Select', + componentProps: { + // 可选从DictEnum中获取 DictEnum.COST_REVIEW_STATUS 便于维护 + options: getDictOptions('cost_review_status'), + }, + rules: 'selectRequired', + }, + { + label: '备注', + fieldName: 'remark', + component: 'Textarea', + }, + { + label: '搜索值', + fieldName: 'searchValue', + component: 'Input', + }, +]; diff --git a/apps/web-antd/src/views/property/costManagement/paymentReview/index.vue b/apps/web-antd/src/views/property/costManagement/paymentReview/index.vue new file mode 100644 index 00000000..5004e4dc --- /dev/null +++ b/apps/web-antd/src/views/property/costManagement/paymentReview/index.vue @@ -0,0 +1,109 @@ + + + diff --git a/apps/web-antd/src/views/property/costManagement/paymentReview/paymentReview-detail.vue b/apps/web-antd/src/views/property/costManagement/paymentReview/paymentReview-detail.vue new file mode 100644 index 00000000..f768f438 --- /dev/null +++ b/apps/web-antd/src/views/property/costManagement/paymentReview/paymentReview-detail.vue @@ -0,0 +1,70 @@ + + +