diff --git a/.env.development b/.env.development index cd182d8..2bd86fc 100644 --- a/.env.development +++ b/.env.development @@ -9,9 +9,9 @@ VITE_APP_ENV='development' # 开发环境 VITE_APP_BASE_API='/dev-api' # # 开发环境 接口代理地址 -#VITE_APP_PROXY_API='http://192.168.1.222:8080' +VITE_APP_PROXY_API='http://192.168.1.222:8080' # 开发环境 接口代理地址 -VITE_APP_PROXY_API='http://192.168.1.6:8080' +#VITE_APP_PROXY_API='http://192.168.1.6:8080' # 图片基础地址 VITE_IMG_URL='http://192.168.1.222:8080' diff --git a/src/api/system/report/dailyFeeReport/index.ts b/src/api/system/report/dailyFeeReport/index.ts new file mode 100644 index 0000000..c695406 --- /dev/null +++ b/src/api/system/report/dailyFeeReport/index.ts @@ -0,0 +1,10 @@ +import request from '@/utils/request'; +import { Response } from '@/api/system/report/dailyFeeReport/type'; + +export const getDailyFeeReportList = (data = {}): Promise => { + return request({ + url: '/dailyFeeReport/list', + method: 'GET', + params: data + }); +}; diff --git a/src/api/system/report/dailyFeeReport/type.ts b/src/api/system/report/dailyFeeReport/type.ts new file mode 100644 index 0000000..9886dec --- /dev/null +++ b/src/api/system/report/dailyFeeReport/type.ts @@ -0,0 +1,135 @@ +/** + * 每日缴费记录列表 + * + * RListDailyFeeReportVo + */ +export type Response = { + code?: number; + data?: DailyFeeReportVo[]; + msg?: string; +}; + +/** + * org.community.report.domain.vo.DailyFeeReportVo + * + * DailyFeeReportVo + */ +export type DailyFeeReportVo = { + /** + * 卡表 + */ + cardMeter?: number; + /** + * 现金类-现金 + */ + cashAmount?: number; + /** + * 押金 + */ + deposit?: number; + /** + * 押金抵顶 + */ + depositAmount?: number; + /** + * 预缴类-减免优惠 + */ + discountAmount?: number; + /** + * 电费 + */ + electricFee?: number; + /** + * 代收生活垃圾处理费-截止时间 + */ + garbageEndTime?: string; + /** + * 代收生活垃圾处理费-金额 + */ + garbageFee?: number; + /** + * 代收生活垃圾处理费-开始时间 + */ + garbageStartTime?: string; + /** + * 经办人 + */ + handler?: string; + /** + * 其他 + */ + otherAmount?: number; + /** + * 车位服务费-截止时间 + */ + parkingEndTime?: string; + /** + * 车位服务费-金额 + */ + parkingFee?: number; + /** + * 车位服务费-开始时间 + */ + parkingStartTime?: string; + /** + * 日期 + */ + payTime?: string; + /** + * 物业服务费-余额 + */ + propertyBalance?: number; + /** + * 物业服务费-截止时间 + */ + propertyEndTime?: string; + /** + * 预缴类-房产抵顶 + */ + propertyOffsetAmount?: number; + /** + * 物业服务费-开始时间 + */ + propertyStartTime?: string; + /** + * 备注 + */ + remark?: string; + /** + * 户主姓名 + */ + residentName?: string; + /** + * 现金类-转账 + */ + transferAmount?: number; + /** + * 现金类-银联 + */ + unionPayAmount?: number; + /** + * 房号 + */ + unitNo?: string; + /** + * 使用费-截止时间 + */ + usageEndTime?: string; + /** + * 使用费-金额 + */ + usageFee?: number; + /** + * 使用费-开始时间 + */ + usageStartTime?: string; + /** + * 水费 + */ + waterFee?: number; + /** + * 微信商户 + */ + wechatAmount?: number; + [property: string]: any; +}; diff --git a/src/api/system/report/prepaidBalanceDetail/index.ts b/src/api/system/report/prepaidBalanceDetail/index.ts new file mode 100644 index 0000000..6b34fd0 --- /dev/null +++ b/src/api/system/report/prepaidBalanceDetail/index.ts @@ -0,0 +1,10 @@ +import request from '@/utils/request'; +import { Request, Response } from '@/api/system/report/prepaidBalance/type'; + +export const getPrepaidBalanceDetailList = (query: Request): Promise => { + return request({ + url: '/prepaidBalance/detail', + method: 'GET', + params: query + }); +}; diff --git a/src/api/system/report/prepaidBalanceDetail/type.ts b/src/api/system/report/prepaidBalanceDetail/type.ts new file mode 100644 index 0000000..2239c80 --- /dev/null +++ b/src/api/system/report/prepaidBalanceDetail/type.ts @@ -0,0 +1,83 @@ +export type Request = { + /** + * 收费类型ID + */ + chargeTypeId?: string; + /** + * 房屋类型ID + */ + houseUseTypeId?: string; + /** + * 当前页数 + */ + pageNum?: number; + /** + * 分页大小 + */ + pageSize?: number; + /** + * 小区ID + */ + villageId?: string; +}; + +export type Response = { + /** + * 动态收费项目列头 + */ + chargeItems: ChargeItem[]; + code: number; + msg: string; + /** + * 汇总数据行列表 + */ + rows: Row[]; + /** + * 全部合计行 + */ + summary: Summary; + /** + * 总记录数 + */ + total: number; +}; + +export type ChargeItem = { + /** + * 收费项目名称 + */ + chargeItemName: string; + /** + * 收费类型ID + */ + chargeTypeId: number; +}; + +export type Row = { + /** + * 各收费项目预收余额 + */ + chargeItemAmounts?: { [key: string]: any }; + /** + * 房屋类型名称 + */ + houseTypeName?: string; + /** + * 合计金额 + */ + totalAmount?: number; + /** + * 小区名称 + */ + villageName?: string; +}; + +/** + * 全部合计行 + */ +export type Summary = { + chargeItemAmounts: { [key: string]: string }; + houseTypeName: string; + totalAmount: number; + villageName: string; +}; diff --git a/src/views/system/report/arrearsTrend.vue b/src/views/system/report/arrearsTrend.vue index a5b99d8..cabcef1 100644 --- a/src/views/system/report/arrearsTrend.vue +++ b/src/views/system/report/arrearsTrend.vue @@ -97,8 +97,7 @@ const data = reactive({ startTime: '', endTime: '', chargeTypeId: '-1' - }, - rule: [] + } }); const { queryParams } = toRefs(data); diff --git a/src/views/system/report/balanceSummaryArrears.vue b/src/views/system/report/balanceSummaryArrears.vue index 5b7b961..5380ef7 100644 --- a/src/views/system/report/balanceSummaryArrears.vue +++ b/src/views/system/report/balanceSummaryArrears.vue @@ -94,19 +94,7 @@ const data = reactive({ startDate: '', endDate: '', chargeTypeId: '-1' - }, - rule: [ - { - validator: (_: any, value: string, callback: (arg0?: Error) => any) => { - if (value === '' || value === undefined || value === null) { - return callback(); - } - if (!validator(value, 'fullFilterReg')) { - return callback(new Error('请输入正确的房号')); - } - } - } - ] + } }); const { queryParams } = toRefs(data); diff --git a/src/views/system/report/chargeTrend.vue b/src/views/system/report/chargeTrend.vue index 5b68975..3084da4 100644 --- a/src/views/system/report/chargeTrend.vue +++ b/src/views/system/report/chargeTrend.vue @@ -96,8 +96,7 @@ const data = reactive({ startTime: '', endTime: '', chargeTypeId: '-1' - }, - rule: [] + } }); const { queryParams } = toRefs(data); diff --git a/src/views/system/report/dailyFeeReport.vue b/src/views/system/report/dailyFeeReport.vue new file mode 100644 index 0000000..6a80855 --- /dev/null +++ b/src/views/system/report/dailyFeeReport.vue @@ -0,0 +1,251 @@ + + + + + diff --git a/src/views/system/report/detailed.vue b/src/views/system/report/detailed.vue index e7323cd..6cc87f0 100644 --- a/src/views/system/report/detailed.vue +++ b/src/views/system/report/detailed.vue @@ -118,19 +118,7 @@ const data = reactive({ endTime: '', houseNo: '', month: '-1' - }, - rule: [ - { - validator: (_: any, value: string, callback: (arg0?: Error) => any) => { - if (value === '' || value === undefined || value === null) { - return callback(); - } - if (!validator(value, 'fullFilterReg')) { - return callback(new Error('请输入正确的房号')); - } - } - } - ] + } }); const { queryParams } = toRefs(data); diff --git a/src/views/system/report/detailsSummaryArrears.vue b/src/views/system/report/detailsSummaryArrears.vue index eb958b1..44e5508 100644 --- a/src/views/system/report/detailsSummaryArrears.vue +++ b/src/views/system/report/detailsSummaryArrears.vue @@ -94,19 +94,7 @@ const data = reactive({ pageSize: 10, villageId: '-1', chargeTypeId: '-1' - }, - rule: [ - { - validator: (_: any, value: string, callback: (arg0?: Error) => any) => { - if (value === '' || value === undefined || value === null) { - return callback(); - } - if (!validator(value, 'fullFilterReg')) { - return callback(new Error('请输入正确的房号')); - } - } - } - ] + } }); const { queryParams } = toRefs(data); diff --git a/src/views/system/report/paidInExpenses.vue b/src/views/system/report/paidInExpenses.vue index 83affcb..76a519a 100644 --- a/src/views/system/report/paidInExpenses.vue +++ b/src/views/system/report/paidInExpenses.vue @@ -103,19 +103,7 @@ const data = reactive({ startDate: '', endDate: '', chargeTypeId: '-1' - }, - rule: [ - { - validator: (_: any, value: string, callback: (arg0?: Error) => any) => { - if (value === '' || value === undefined || value === null) { - return callback(); - } - if (!validator(value, 'fullFilterReg')) { - return callback(new Error('请输入正确的房号')); - } - } - } - ] + } }); const { queryParams } = toRefs(data); diff --git a/src/views/system/report/paidInExpensesReceivable.vue b/src/views/system/report/paidInExpensesReceivable.vue index 2002fe6..2347327 100644 --- a/src/views/system/report/paidInExpensesReceivable.vue +++ b/src/views/system/report/paidInExpensesReceivable.vue @@ -102,19 +102,7 @@ const data = reactive({ startTime: '', endTime: '', chargeTypeId: '-1' - }, - rule: [ - { - validator: (_: any, value: string, callback: (arg0?: Error) => any) => { - if (value === '' || value === undefined || value === null) { - return callback(); - } - if (!validator(value, 'fullFilterReg')) { - return callback(new Error('请输入正确的房号')); - } - } - } - ] + } }); const { queryParams } = toRefs(data); diff --git a/src/views/system/report/prepaidBalance.vue b/src/views/system/report/prepaidBalance.vue index 3c5423d..5cd944e 100644 --- a/src/views/system/report/prepaidBalance.vue +++ b/src/views/system/report/prepaidBalance.vue @@ -70,8 +70,6 @@ import pagination from '@/components/Pagination/index.vue'; import pageHeader from '@/components/Pageheader/index.vue'; import { getCommunitylistAPI } from '@/api/system/community'; import { validator } from '@/utils/Reg'; -import { getPaidInExpensesReceivableList } from '@/api/system/report/paidInExpensesReceivable'; -import { Detail } from '@/api/system/report/paidInExpensesReceivable/type'; import { listChargeType } from '@/api/system/ChargeType'; import { ColumnConfig, exportToExcel } from '@/utils/xlsx'; import { getPrepaidBalanceList } from '@/api/system/report/prepaidBalance'; @@ -79,7 +77,7 @@ import { listHouseUseType } from '@/api/system/houseUse'; import { Row } from '@/api/system/report/prepaidBalance/type'; const { proxy } = getCurrentInstance() as ComponentInternalInstance; - +// ╬╬╬2╬╬ const ArrearsDetailList = ref([]); const loading = ref(true); const showSearch = ref(true); @@ -93,19 +91,7 @@ const data = reactive({ villageId: '', houseUseTypeId: '', chargeTypeId: '' - }, - rule: [ - { - validator: (_: any, value: string, callback: (arg0?: Error) => any) => { - if (value === '' || value === undefined || value === null) { - return callback(); - } - if (!validator(value, 'fullFilterReg')) { - return callback(new Error('请输入正确的房号')); - } - } - } - ] + } }); const { queryParams } = toRefs(data); @@ -187,14 +173,8 @@ const handleExport = () => { setTimeout(() => { try { const columns: ColumnConfig[] = [ - { - label: '小区名称', - prop: 'villageName' - }, - { - label: '房屋类型', - prop: 'houseTypeName' - }, + { label: '小区名称', prop: 'villageName' }, + { label: '房屋类型', prop: 'houseTypeName' }, { label: '收费项目', prop: 'chargeItemAmounts', @@ -212,7 +192,7 @@ const handleExport = () => { prop: 'totalAmount' } ]; - exportToExcel(ArrearsDetailList.value, columns, `应收物业费详情_${new Date().getTime()}`); + exportToExcel(ArrearsDetailList.value, columns, `预收费用余额汇总_${new Date().getTime()}`); } catch (error) { proxy?.$modal.msgError('导出失败,请重试'); console.error('导出错误:', error); diff --git a/src/views/system/report/prepaidBalanceDetail.vue b/src/views/system/report/prepaidBalanceDetail.vue new file mode 100644 index 0000000..1537dad --- /dev/null +++ b/src/views/system/report/prepaidBalanceDetail.vue @@ -0,0 +1,211 @@ + + + + +