diff --git a/apps/web-antd/src/api/property/carCharge/index.ts b/apps/web-antd/src/api/property/carCharge/index.ts new file mode 100644 index 00000000..2eb61a11 --- /dev/null +++ b/apps/web-antd/src/api/property/carCharge/index.ts @@ -0,0 +1,61 @@ +import type { CarChargeVO, CarChargeForm, CarChargeQuery } 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 carChargeList(params?: CarChargeQuery) { + return requestClient.get>('/property/carCharge/list', { params }); +} + +/** + * 导出费用-车辆收费列表 + * @param params + * @returns 费用-车辆收费列表 + */ +export function carChargeExport(params?: CarChargeQuery) { + return commonExport('/property/carCharge/export', params ?? {}); +} + +/** + * 查询费用-车辆收费详情 + * @param id id + * @returns 费用-车辆收费详情 + */ +export function carChargeInfo(id: ID) { + return requestClient.get(`/property/carCharge/${id}`); +} + +/** + * 新增费用-车辆收费 + * @param data + * @returns void + */ +export function carChargeAdd(data: CarChargeForm) { + return requestClient.postWithMsg('/property/carCharge', data); +} + +/** + * 更新费用-车辆收费 + * @param data + * @returns void + */ +export function carChargeUpdate(data: CarChargeForm) { + return requestClient.putWithMsg('/property/carCharge', data); +} + +/** + * 删除费用-车辆收费 + * @param id id + * @returns void + */ +export function carChargeRemove(id: ID | IDS) { + return requestClient.deleteWithMsg(`/property/carCharge/${id}`); +} diff --git a/apps/web-antd/src/api/property/carCharge/model.d.ts b/apps/web-antd/src/api/property/carCharge/model.d.ts new file mode 100644 index 00000000..413ef066 --- /dev/null +++ b/apps/web-antd/src/api/property/carCharge/model.d.ts @@ -0,0 +1,169 @@ +import type { PageQuery, BaseEntity } from '#/api/common'; + +export interface CarChargeVO { + /** + * 主键 + */ + id: string | number; + + /** + * 车牌号 + */ + carNumber: string; + + /** + * 业主 + */ + personId: string | number; + + /** + * 楼层 + */ + floorId: string | number; + + /** + * 车位 + */ + location: string; + + /** + * 状态 + */ + state: string; + + /** + * 收费项目 + */ + costItemsId: string | number; + + /** + * 计费开始时间 + */ + starTime: string; + + /** + * 计费结束时间 + */ + endTime: string; + + /** + * 说明 + */ + remark: string; + + /** + * 搜索值 + */ + searchValue: string; + +} + +export interface CarChargeForm extends BaseEntity { + /** + * 主键 + */ + id?: string | number; + + /** + * 车牌号 + */ + carNumber?: string; + + /** + * 业主 + */ + personId?: string | number; + + /** + * 楼层 + */ + floorId?: string | number; + + /** + * 车位 + */ + location?: string; + + /** + * 状态 + */ + state?: string; + + /** + * 收费项目 + */ + costItemsId?: string | number; + + /** + * 计费开始时间 + */ + starTime?: string; + + /** + * 计费结束时间 + */ + endTime?: string; + + /** + * 说明 + */ + remark?: string; + + /** + * 搜索值 + */ + searchValue?: string; + +} + +export interface CarChargeQuery extends PageQuery { + /** + * 车牌号 + */ + carNumber?: string; + + /** + * 业主 + */ + personId?: string | number; + + /** + * 楼层 + */ + floorId?: string | number; + + /** + * 车位 + */ + location?: string; + + /** + * 状态 + */ + state?: string; + + /** + * 收费项目 + */ + costItemsId?: string | number; + + /** + * 计费开始时间 + */ + starTime?: string; + + /** + * 计费结束时间 + */ + endTime?: string; + + /** + * 搜索值 + */ + searchValue?: string; + + /** + * 日期范围参数 + */ + params?: any; +} diff --git a/apps/web-antd/src/api/property/costManagement/houseCharge/index.ts b/apps/web-antd/src/api/property/costManagement/houseCharge/index.ts new file mode 100644 index 00000000..c48acb4e --- /dev/null +++ b/apps/web-antd/src/api/property/costManagement/houseCharge/index.ts @@ -0,0 +1,61 @@ +import type { HouseChargeVO, HouseChargeForm, HouseChargeQuery } 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 houseChargeList(params?: HouseChargeQuery) { + return requestClient.get>('/property/houseCharge/list', { params }); +} + +/** + * 导出房屋收费列表 + * @param params + * @returns 房屋收费列表 + */ +export function houseChargeExport(params?: HouseChargeQuery) { + return commonExport('/property/houseCharge/export', params ?? {}); +} + +/** + * 查询房屋收费详情 + * @param id id + * @returns 房屋收费详情 + */ +export function houseChargeInfo(id: ID) { + return requestClient.get(`/property/houseCharge/${id}`); +} + +/** + * 新增房屋收费 + * @param data + * @returns void + */ +export function houseChargeAdd(data: HouseChargeForm) { + return requestClient.postWithMsg('/property/houseCharge', data); +} + +/** + * 更新房屋收费 + * @param data + * @returns void + */ +export function houseChargeUpdate(data: HouseChargeForm) { + return requestClient.putWithMsg('/property/houseCharge', data); +} + +/** + * 删除房屋收费 + * @param id id + * @returns void + */ +export function houseChargeRemove(id: ID | IDS) { + return requestClient.deleteWithMsg(`/property/houseCharge/${id}`); +} diff --git a/apps/web-antd/src/api/property/costManagement/houseCharge/model.d.ts b/apps/web-antd/src/api/property/costManagement/houseCharge/model.d.ts new file mode 100644 index 00000000..46089c13 --- /dev/null +++ b/apps/web-antd/src/api/property/costManagement/houseCharge/model.d.ts @@ -0,0 +1,130 @@ +import type {PageQuery, BaseEntity} from '#/api/common'; + +export interface HouseChargeVO { + /** + * 主键 + */ + id: string | number; + + /** + * 房屋 + */ + roomId: string | number; + + /** + * 收费项目 + */ + costItemsId: string | number; + + /** + * 应收金额 + */ + amountReceivable: number; + + /** + * 计费开始时间 + */ + startTime: string; + + /** + * 计费结束时间 + */ + endTime: string; + + /** + * 状态 + */ + state: string; + + /** + * 说明 + */ + remark: string; + + chargeTime: any[]; + /** + * 缴费周期 + */ + chargeCycle: number; + +} + +export interface HouseChargeForm extends BaseEntity { + /** + * 主键 + */ + id?: string | number; + + /** + * 房屋 + */ + roomId?: string | number; + + /** + * 收费项目 + */ + costItemsId?: string | number; + + /** + * 应收金额 + */ + amountReceivable?: number; + + /** + * 计费开始时间 + */ + startTime?: string; + + /** + * 计费结束时间 + */ + endTime?: string; + + /** + * 状态 + */ + state?: string; + + /** + * 说明 + */ + remark?: string; + +} + +export interface HouseChargeQuery extends PageQuery { + /** + * 房屋 + */ + roomId?: string | number; + + /** + * 收费项目 + */ + costItemsId?: string | number; + + /** + * 应收金额 + */ + amountReceivable?: number; + + /** + * 计费开始时间 + */ + startTime?: string; + + /** + * 计费结束时间 + */ + endTime?: string; + + /** + * 状态 + */ + state?: string; + + /** + * 日期范围参数 + */ + params?: any; +} diff --git a/apps/web-antd/src/api/property/costManagement/returnPayFee/index.ts b/apps/web-antd/src/api/property/costManagement/returnPayFee/index.ts new file mode 100644 index 00000000..34a8de02 --- /dev/null +++ b/apps/web-antd/src/api/property/costManagement/returnPayFee/index.ts @@ -0,0 +1,61 @@ +import type { ReturnPayFeeVO, ReturnPayFeeForm, ReturnPayFeeQuery } 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 returnPayFeeList(params?: ReturnPayFeeQuery) { + return requestClient.get>('/property/returnPayFee/list', { params }); +} + +/** + * 导出退费审核列表 + * @param params + * @returns 退费审核列表 + */ +export function returnPayFeeExport(params?: ReturnPayFeeQuery) { + return commonExport('/property/returnPayFee/export', params ?? {}); +} + +/** + * 查询退费审核详情 + * @param id id + * @returns 退费审核详情 + */ +export function returnPayFeeInfo(id: ID) { + return requestClient.get(`/property/returnPayFee/${id}`); +} + +/** + * 新增退费审核 + * @param data + * @returns void + */ +export function returnPayFeeAdd(data: ReturnPayFeeForm) { + return requestClient.postWithMsg('/property/returnPayFee', data); +} + +/** + * 更新退费审核 + * @param data + * @returns void + */ +export function returnPayFeeUpdate(data: ReturnPayFeeForm) { + return requestClient.putWithMsg('/property/returnPayFee', data); +} + +/** + * 删除退费审核 + * @param id id + * @returns void + */ +export function returnPayFeeRemove(id: ID | IDS) { + return requestClient.deleteWithMsg(`/property/returnPayFee/${id}`); +} diff --git a/apps/web-antd/src/api/property/costManagement/returnPayFee/model.d.ts b/apps/web-antd/src/api/property/costManagement/returnPayFee/model.d.ts new file mode 100644 index 00000000..b9a5d954 --- /dev/null +++ b/apps/web-antd/src/api/property/costManagement/returnPayFee/model.d.ts @@ -0,0 +1,154 @@ +import type { PageQuery, BaseEntity } from '#/api/common'; + +export interface ReturnPayFeeVO { + /** + * 主键 + */ + id: string | number; + + /** + * 退款单号 + */ + returnNo?: string; + + /** + * 支付单号 + */ + payNo?: string; + + /** + * 退款原因 + */ + reason?: string; + + /** + * 费用类型id + */ + itemId?: string | number; + + /** + * 业主id + */ + userId?: string | number; + + /** + * 支付金额 + */ + payAcount?: number; + + /** + * 支付时间 + */ + payTime?: string; + + /** + * 退费状态 + */ + state: string; + + /** + * 说明 + */ + remark: string; + +} + +export interface ReturnPayFeeForm extends BaseEntity { + /** + * 主键 + */ + id?: string | number; + + /** + * 退款单号 + */ + returnNo?: string; + + /** + * 支付单号 + */ + payNo?: string; + + /** + * 退款原因 + */ + reason?: string; + + /** + * 费用类型id + */ + itemId?: string | number; + + /** + * 业主id + */ + userId?: string | number; + + /** + * 支付金额 + */ + payAcount?: number; + + /** + * 支付时间 + */ + payTime?: string; + + /** + * 退费状态 + */ + state?: string; + + /** + * 说明 + */ + remark?: string; + +} + +export interface ReturnPayFeeQuery extends PageQuery { + /** + * 退款单号 + */ + returnNo?: string; + + /** + * 支付单号 + */ + payNo?: string; + + /** + * 退款原因 + */ + reason?: string; + + /** + * 费用类型id + */ + itemId?: string | number; + + /** + * 业主id + */ + userId?: string | number; + + /** + * 支付金额 + */ + payAcount?: number; + + /** + * 支付时间 + */ + payTime?: string; + + /** + * 退费状态 + */ + state?: string; + + /** + * 日期范围参数 + */ + params?: any; +} diff --git a/apps/web-antd/src/api/property/costMeterWater/index.ts b/apps/web-antd/src/api/property/costMeterWater/index.ts new file mode 100644 index 00000000..a258139e --- /dev/null +++ b/apps/web-antd/src/api/property/costMeterWater/index.ts @@ -0,0 +1,61 @@ +import type { CostMeterWaterVO, CostMeterWaterForm, CostMeterWaterQuery } 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 costMeterWaterList(params?: CostMeterWaterQuery) { + return requestClient.get>('/property/costMeterWater/list', { params }); +} + +/** + * 导出费用-水电抄列表 + * @param params + * @returns 费用-水电抄列表 + */ +export function costMeterWaterExport(params?: CostMeterWaterQuery) { + return commonExport('/property/costMeterWater/export', params ?? {}); +} + +/** + * 查询费用-水电抄详情 + * @param id id + * @returns 费用-水电抄详情 + */ +export function costMeterWaterInfo(id: ID) { + return requestClient.get(`/property/costMeterWater/${id}`); +} + +/** + * 新增费用-水电抄 + * @param data + * @returns void + */ +export function costMeterWaterAdd(data: CostMeterWaterForm) { + return requestClient.postWithMsg('/property/costMeterWater', data); +} + +/** + * 更新费用-水电抄 + * @param data + * @returns void + */ +export function costMeterWaterUpdate(data: CostMeterWaterForm) { + return requestClient.putWithMsg('/property/costMeterWater', data); +} + +/** + * 删除费用-水电抄 + * @param id id + * @returns void + */ +export function costMeterWaterRemove(id: ID | IDS) { + return requestClient.deleteWithMsg(`/property/costMeterWater/${id}`); +} diff --git a/apps/web-antd/src/api/property/costMeterWater/model.d.ts b/apps/web-antd/src/api/property/costMeterWater/model.d.ts new file mode 100644 index 00000000..c96b39b8 --- /dev/null +++ b/apps/web-antd/src/api/property/costMeterWater/model.d.ts @@ -0,0 +1,157 @@ +import type { PageQuery, BaseEntity } from '#/api/common'; + +export interface CostMeterWaterVO { + /** + * 主键 + */ + id: string | number; + + /** + * 费用类型id + */ + itemId: string | number; + + /** + * 抄表类型id + */ + meterTypeId: string | number; + + /** + * 对象名称 + */ + objName: string; + + /** + * 本期度数 + */ + curDegrees: string; + + /** + * 上期度数 + */ + preDegrees: string; + + /** + * 上期读表时间 + + */ + preReadingTime: string; + + /** + * 本期读表时间 + */ + curReadingTime: string; + + /** + * 备注 + */ + remark: string; + + /** + * 搜索值 + */ + searchValue: string; + +} + +export interface CostMeterWaterForm extends BaseEntity { + /** + * 主键 + */ + id?: string | number; + + /** + * 费用类型id + */ + itemId?: string | number; + + /** + * 抄表类型id + */ + meterTypeId?: string | number; + + /** + * 对象名称 + */ + objName?: string; + + /** + * 本期度数 + */ + curDegrees?: string; + + /** + * 上期度数 + */ + preDegrees?: string; + + /** + * 上期读表时间 + + */ + preReadingTime?: string; + + /** + * 本期读表时间 + */ + curReadingTime?: string; + + /** + * 备注 + */ + remark?: string; + + /** + * 搜索值 + */ + searchValue?: string; + +} + +export interface CostMeterWaterQuery extends PageQuery { + /** + * 费用类型id + */ + itemId?: string | number; + + /** + * 抄表类型id + */ + meterTypeId?: string | number; + + /** + * 对象名称 + */ + objName?: string; + + /** + * 本期度数 + */ + curDegrees?: string; + + /** + * 上期度数 + */ + preDegrees?: string; + + /** + * 上期读表时间 + + */ + preReadingTime?: string; + + /** + * 本期读表时间 + */ + curReadingTime?: string; + + /** + * 搜索值 + */ + searchValue?: string; + + /** + * 日期范围参数 + */ + params?: any; +} diff --git a/apps/web-antd/src/api/property/equipmentManagement/maintainPlan/model.d.ts b/apps/web-antd/src/api/property/equipmentManagement/maintainPlan/model.d.ts index cfea1a69..6350b7c2 100644 --- a/apps/web-antd/src/api/property/equipmentManagement/maintainPlan/model.d.ts +++ b/apps/web-antd/src/api/property/equipmentManagement/maintainPlan/model.d.ts @@ -1,4 +1,4 @@ -import type { PageQuery, BaseEntity } from '#/api/common'; +import type {PageQuery, BaseEntity} from '#/api/common'; export interface MaintainPlanVO { /** @@ -56,6 +56,11 @@ export interface MaintainPlanVO { */ state: string; + planDate: any[] + + userId: string[]; + + machineMaintainPlanStaffBoList:any[]; } export interface MaintainPlanForm extends BaseEntity { @@ -168,7 +173,7 @@ export interface MaintainPlanQuery extends PageQuery { state?: string; /** - * 日期范围参数 - */ + * 日期范围参数 + */ params?: any; } diff --git a/apps/web-antd/src/api/property/room/model.d.ts b/apps/web-antd/src/api/property/room/model.d.ts index 122d596b..a01052ac 100644 --- a/apps/web-antd/src/api/property/room/model.d.ts +++ b/apps/web-antd/src/api/property/room/model.d.ts @@ -2,7 +2,7 @@ import type { PageQuery, BaseEntity } from '#/api/common'; export interface RoomVO { /** - * + * */ id: string | number; @@ -22,10 +22,15 @@ export interface RoomVO { roomType: number; /** - * 面积(平方米) + * 建筑面积(平方米) */ area: number; + /** + * 套内面积(平方米) + */ + insideInArea: number; + /** * 户型(如2室1厅1卫) */ @@ -50,7 +55,7 @@ export interface RoomVO { export interface RoomForm extends BaseEntity { /** - * + * */ id?: string | number; diff --git a/apps/web-antd/src/views/property/costManagement/carCharge/carCharge-add-modal.vue b/apps/web-antd/src/views/property/costManagement/carCharge/carCharge-add-modal.vue new file mode 100644 index 00000000..e9c7ef28 --- /dev/null +++ b/apps/web-antd/src/views/property/costManagement/carCharge/carCharge-add-modal.vue @@ -0,0 +1,91 @@ + + + + diff --git a/apps/web-antd/src/views/property/costManagement/carCharge/carCharge-detail-modal.vue b/apps/web-antd/src/views/property/costManagement/carCharge/carCharge-detail-modal.vue new file mode 100644 index 00000000..c806339f --- /dev/null +++ b/apps/web-antd/src/views/property/costManagement/carCharge/carCharge-detail-modal.vue @@ -0,0 +1,101 @@ + + + + diff --git a/apps/web-antd/src/views/property/costManagement/carCharge/carCharge-pay-modal.vue b/apps/web-antd/src/views/property/costManagement/carCharge/carCharge-pay-modal.vue new file mode 100644 index 00000000..082e6122 --- /dev/null +++ b/apps/web-antd/src/views/property/costManagement/carCharge/carCharge-pay-modal.vue @@ -0,0 +1,89 @@ + + + diff --git a/apps/web-antd/src/views/property/costManagement/carCharge/data.ts b/apps/web-antd/src/views/property/costManagement/carCharge/data.ts new file mode 100644 index 00000000..b8862bfd --- /dev/null +++ b/apps/web-antd/src/views/property/costManagement/carCharge/data.ts @@ -0,0 +1,350 @@ +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: 'carNumber', + label: '车牌号', + }, + { + component: 'Input', + fieldName: 'personId', + label: '业主', + }, + { + component: 'Select', + componentProps: { + // 可选从DictEnum中获取 DictEnum.WY_CSZT 便于维护 + options: getDictOptions('wy_cszt'), + }, + fieldName: 'state', + label: '状态', + }, +]; + +// 需要使用i18n注意这里要改成getter形式 否则切换语言不会刷新 +// export const columns: () => VxeGridProps['columns'] = () => [ +export const columns: VxeGridProps['columns'] = [ + { type: 'checkbox', width: 60 }, + { + title: '序号', + field: 'id', + slots: { + default: ({ rowIndex }) => { + return (rowIndex + 1).toString(); + }, + }, + }, + { + title: '车牌号', + field: 'carNumber', + }, + { + title: '车位', + field: 'location', + }, + { + title: '业主', + field: 'personId', + }, + { + title: '状态', + field: 'state', + slots: { + default: ({ row }) => { + // 可选从DictEnum中获取 DictEnum.WY_CSZT 便于维护 + return renderDict(row.state, 'wy_cszt'); + }, + }, + }, + { + title: '收费项目', + field: 'costItemsId', + }, + { + title: '计费开始时间', + field: 'starTime', + }, + { + title: '计费结束时间', + field: 'endTime', + }, + { + title: '说明', + field: 'remark', + }, + { + field: 'action', + fixed: 'right', + slots: { default: 'action' }, + title: '操作', + width: 180, + }, +]; +//详情 +export const modalSchema: FormSchemaGetter = () => [ + { + label: '主键', + fieldName: 'id', + component: 'Input', + dependencies: { + show: () => false, + triggerFields: [''], + }, + }, + { + label: '车牌号', + fieldName: 'carNumber', + component: 'Input', + rules: 'required', + }, + { + label: '业主', + fieldName: 'personId', + component: 'Input', + }, + { + label: '楼层', + fieldName: 'floorId', + component: 'Input', + rules: 'required', + }, + { + label: '车位', + fieldName: 'location', + component: 'Input', + }, + { + label: '状态', + fieldName: 'state', + component: 'Select', + componentProps: { + // 可选从DictEnum中获取 DictEnum.WY_CSZT 便于维护 + options: getDictOptions('wy_cszt'), + }, + }, + { + label: '收费项目', + fieldName: 'costItemsId', + component: 'Input', + }, + { + label: '计费开始时间', + fieldName: 'starTime', + component: 'DatePicker', + componentProps: { + showTime: true, + format: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'YYYY-MM-DD HH:mm:ss', + }, + }, + { + label: '计费结束时间', + fieldName: 'endTime', + component: 'DatePicker', + componentProps: { + showTime: true, + format: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'YYYY-MM-DD HH:mm:ss', + }, + }, + { + label: '说明', + fieldName: 'remark', + component: 'Input', + }, + { + label: '搜索值', + fieldName: 'searchValue', + component: 'Input', + }, +]; +//创建 +export const addModalSchema: FormSchemaGetter = () => [ + { + label: '主键', + fieldName: 'id', + component: 'Input', + dependencies: { + show: () => false, + triggerFields: [''], + }, + }, + { + label: '车牌号', + fieldName: 'carNumber', + component: 'Input', + rules: 'required', + }, + // { + // label: '费用类型',//一个费用下有对各费用项目 + // fieldName: 'personId', + // component: 'Input', + // }, + { + label: '收费项目',//一个费用收费项目对应一个费用类型 + fieldName: 'costItemsId', + component: 'Input', + rules: 'required', + }, + { + label: '计费开始时间', + fieldName: 'starTime', + component: 'DatePicker', + rules: 'required', + componentProps: { + showTime: true, + format: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'YYYY-MM-DD HH:mm:ss', + }, + }, + { + label: '计费结束时间', + fieldName: 'endTime', + component: 'DatePicker', + rules:'required', + componentProps: { + showTime: true, + format: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'YYYY-MM-DD HH:mm:ss', + }, + }, + { + label: '说明', + fieldName: 'remark', + component: 'Input', + }, +]; +//缴费 +export const payModalSchema: FormSchemaGetter = () => [ + { + label: '主键', + fieldName: 'id', + component: 'Input', + dependencies: { + show: () => false, + triggerFields: [''], + }, + }, + { + label: '车牌号', + fieldName: 'carNumber', + component: 'Input', + rules: 'required', + }, + // { + // label: '费用类型',//一个费用下有对各费用项目 + // fieldName: 'personId', + // component: 'Input', + // }, + { + label: '收费项目',//一个费用收费项目对应一个费用类型 + fieldName: 'costItemsId', + component: 'Input', + rules: 'required', + }, + { + label: '计费开始时间', + fieldName: 'starTime', + component: 'DatePicker', + rules: 'required', + componentProps: { + showTime: true, + format: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'YYYY-MM-DD HH:mm:ss', + }, + }, + { + label: '计费结束时间', + fieldName: 'endTime', + component: 'DatePicker', + rules:'required', + componentProps: { + showTime: true, + format: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'YYYY-MM-DD HH:mm:ss', + }, + }, + { + label: '说明', + fieldName: 'remark', + component: 'Input', + }, + { + label: '支付方式', + fieldName: 'carNumber', + component: 'Input', + rules: 'required', + }, + { + label: '缴费周期', + fieldName: 'personId', + component: 'Input', + }, + { + label: '实收金额', + fieldName: 'costItemsId', + component: 'Input', + }, + { + label: '自定义周期', + fieldName: 'remark', + component: 'Input', + }, +]; +export const detailColumns: VxeGridProps['columns'] = [ + { + title: '序号', + field: 'id', + slots: { + default: ({ rowIndex }) => { + return (rowIndex + 1).toString(); + }, + }, + }, + { + title: '费用项目', + field: 'carNumber', + }, + { + title: '费用标识', + field: 'location', + }, + { + title: '应收金额', + field: 'personId', + }, + { + title: '状态', + field: 'state', + slots: { + default: ({ row }) => { + // 可选从DictEnum中获取 DictEnum.WY_CSZT 便于维护 + return renderDict(row.state, 'wy_cszt'); + }, + }, + }, + { + title: '建帐时间', + field: 'starTime', + }, + { + title: '应收时间', + field: 'endTime', + }, + { + title: '说明', + field: 'remark', + }, + { + field: 'action', + fixed: 'right', + slots: { default: 'action' }, + title: '操作', + width: 180, + }, +]; diff --git a/apps/web-antd/src/views/property/costManagement/carCharge/index.vue b/apps/web-antd/src/views/property/costManagement/carCharge/index.vue new file mode 100644 index 00000000..b2f39efc --- /dev/null +++ b/apps/web-antd/src/views/property/costManagement/carCharge/index.vue @@ -0,0 +1,173 @@ + + + diff --git a/apps/web-antd/src/views/property/costManagement/costMeterWater/costMeterWater-modal.vue b/apps/web-antd/src/views/property/costManagement/costMeterWater/costMeterWater-modal.vue new file mode 100644 index 00000000..b932f230 --- /dev/null +++ b/apps/web-antd/src/views/property/costManagement/costMeterWater/costMeterWater-modal.vue @@ -0,0 +1,101 @@ + + + + diff --git a/apps/web-antd/src/views/property/costManagement/costMeterWater/data.ts b/apps/web-antd/src/views/property/costManagement/costMeterWater/data.ts new file mode 100644 index 00000000..7fb9f87b --- /dev/null +++ b/apps/web-antd/src/views/property/costManagement/costMeterWater/data.ts @@ -0,0 +1,183 @@ +import type { FormSchemaGetter } from '#/adapter/form'; +import type { VxeGridProps } from '#/adapter/vxe-table'; + + +export const querySchema: FormSchemaGetter = () => [ + { + component: 'Input', + fieldName: 'itemId', + label: '费用类型id', + }, + { + component: 'Input', + fieldName: 'meterTypeId', + label: '抄表类型id', + }, + { + component: 'Input', + fieldName: 'objName', + label: '对象名称', + }, + { + component: 'Input', + fieldName: 'curDegrees', + label: '本期度数', + }, + { + component: 'Input', + fieldName: 'preDegrees', + label: '上期度数', + }, + { + component: 'DatePicker', + componentProps: { + showTime: true, + format: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'YYYY-MM-DD HH:mm:ss', + }, + fieldName: 'preReadingTime', + label: '上期读表时间', + }, + { + component: 'DatePicker', + componentProps: { + showTime: true, + format: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'YYYY-MM-DD HH:mm:ss', + }, + fieldName: 'curReadingTime', + label: '本期读表时间', + }, + { + component: 'Input', + fieldName: 'searchValue', + label: '搜索值', + }, +]; + +// 需要使用i18n注意这里要改成getter形式 否则切换语言不会刷新 +// export const columns: () => VxeGridProps['columns'] = () => [ +export const columns: VxeGridProps['columns'] = [ + { type: 'checkbox', width: 60 }, + { + title: '主键', + field: 'id', + }, + { + title: '费用类型id', + field: 'itemId', + }, + { + title: '抄表类型id', + field: 'meterTypeId', + }, + { + title: '对象名称', + field: 'objName', + }, + { + title: '本期度数', + field: 'curDegrees', + }, + { + title: '上期度数', + field: 'preDegrees', + }, + { + title: '上期读表时间', + field: 'preReadingTime', + }, + { + title: '本期读表时间', + field: 'curReadingTime', + }, + { + title: '备注', + field: 'remark', + }, + { + title: '搜索值', + field: 'searchValue', + }, + { + 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: 'itemId', + component: 'Input', + rules: 'required', + }, + { + label: '抄表类型id', + fieldName: 'meterTypeId', + component: 'Input', + rules: 'required', + }, + { + label: '对象名称', + fieldName: 'objName', + component: 'Input', + rules: 'required', + }, + { + label: '本期度数', + fieldName: 'curDegrees', + component: 'Input', + rules: 'required', + }, + { + label: '上期度数', + fieldName: 'preDegrees', + component: 'Input', + rules: 'required', + }, + { + label: '上期读表时间', + fieldName: 'preReadingTime', + component: 'DatePicker', + componentProps: { + showTime: true, + format: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'YYYY-MM-DD HH:mm:ss', + }, + rules: 'required', + }, + { + label: '本期读表时间', + fieldName: 'curReadingTime', + component: 'DatePicker', + componentProps: { + showTime: true, + format: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'YYYY-MM-DD HH:mm:ss', + }, + rules: 'required', + }, + { + label: '备注', + fieldName: 'remark', + component: 'Textarea', + }, + { + label: '搜索值', + fieldName: 'searchValue', + component: 'Input', + }, +]; diff --git a/apps/web-antd/src/views/property/costManagement/costMeterWater/index.vue b/apps/web-antd/src/views/property/costManagement/costMeterWater/index.vue new file mode 100644 index 00000000..bc79a12a --- /dev/null +++ b/apps/web-antd/src/views/property/costManagement/costMeterWater/index.vue @@ -0,0 +1,182 @@ + + + diff --git a/apps/web-antd/src/views/property/costManagement/houseCharge/data.ts b/apps/web-antd/src/views/property/costManagement/houseCharge/data.ts new file mode 100644 index 00000000..3ff35ae1 --- /dev/null +++ b/apps/web-antd/src/views/property/costManagement/houseCharge/data.ts @@ -0,0 +1,181 @@ +import type {FormSchemaGetter} from '#/adapter/form'; +import type {VxeGridProps} from '#/adapter/vxe-table'; +import {getDictOptions} from "#/utils/dict"; +import {renderDict} from "#/utils/render"; +import {costItemSettingList} from "#/api/property/costManagement/costItemSetting"; +import { h } from 'vue'; + + +export const querySchema: FormSchemaGetter = () => [ + { + component: 'ApiSelect', + componentProps: { + api:async ()=>{ + return (await costItemSettingList({pageSize: 1000, pageNum: 1}))?.rows + }, + afterFetch: (data: { chargeItem: string; id: string }[]) => { + return data.map((item: any) => ({ + label: item.chargeItem, + value: item.id, + })); + }, + }, + fieldName: 'costItemsId', + label: '收费项目', + }, + { + component: 'Select', + fieldName: 'state', + label: '状态', + componentProps: { + options: getDictOptions('wy_fysfzt') + }, + }, +]; +export const columns: VxeGridProps['columns'] = [ + {type: 'checkbox', width: 60}, + { + title: '房屋', + field: 'roomId', + minWidth: 150, + }, + { + title: '收费项目', + field: 'costItemsId', + width: 150, + }, + { + title: '应收金额', + field: 'amountReceivable', + width: 150, + }, + { + title: '计费开始时间', + field: 'startTime', + width: 150, + }, + { + title: '计费结束时间', + field: 'endTime', + width: 150, + }, + { + title: '状态', + field: 'state', + width: 150, + slots: { + default: ({row}) => { + return renderDict(row.state, 'wy_fysfzt') + } + } + }, + { + title: '说明', + field: 'remark', + width: 150, + }, + { + field: 'action', + fixed: 'right', + slots: {default: 'action'}, + title: '操作', + width: 180, + }, +]; + +export const modalSchema: FormSchemaGetter = () => [ + { + label: '主键', + fieldName: 'id', + component: 'Input', + dependencies: { + show: () => false, + triggerFields: [''], + }, + }, + { + label: '房屋', + fieldName: 'roomId', + component: 'TreeSelect', + componentProps: { + }, + rules: 'selectRequired', + }, + { + label: '费用类型', + fieldName: 'costType', + component: 'Select', + componentProps: { + }, + rules: 'selectRequired', + }, + { + label: '收费项目', + fieldName: 'costItemsId', + component: 'ApiSelect', + componentProps: {}, + rules: 'selectRequired', + }, + { + label: '应收金额', + fieldName: 'amountReceivable', + component: 'Input', + dependencies: { + show: () => false, + triggerFields: [''], + }, + }, + { + label: '计费时间', + fieldName: 'chargeTime', + component: 'RangePicker', + componentProps: { + format: 'YYYY-MM-DD', + valueFormat: 'YYYY-MM-DD', + }, + rules: 'selectRequired', + }, + { + label: '说明', + fieldName: 'remark', + component: 'Textarea', + formItemClass: 'col-span-2', + dependencies: { + show: () => false, + triggerFields: [''], + }, + }, +]; + +export const modalSchemaUpdate: FormSchemaGetter = () => [ + { + label: '主键', + fieldName: 'id', + component: 'Input', + dependencies: { + show: () => false, + triggerFields: [''], + }, + }, + { + label: '支付方式', + fieldName: 'payType', + component: 'Select', + componentProps: { + options:getDictOptions('wy_zffs') + }, + rules: 'selectRequired', + }, + { + label: '缴费周期', + fieldName: 'chargeCycle', + component: 'InputNumber', + componentProps: { + min:1, + precision:0, + placeholder:'请输入缴费周期(月)' + }, + suffix: () => h('span', { style: {fontSize: '0.875rem',fontWeight:500,} }, '月'), + rules: 'selectRequired', + }, +] diff --git a/apps/web-antd/src/views/property/costManagement/houseCharge/house-charge-detail.vue b/apps/web-antd/src/views/property/costManagement/houseCharge/house-charge-detail.vue new file mode 100644 index 00000000..65d12bac --- /dev/null +++ b/apps/web-antd/src/views/property/costManagement/houseCharge/house-charge-detail.vue @@ -0,0 +1,91 @@ + + + diff --git a/apps/web-antd/src/views/property/costManagement/houseCharge/houseCharge-add.vue b/apps/web-antd/src/views/property/costManagement/houseCharge/houseCharge-add.vue new file mode 100644 index 00000000..b11da258 --- /dev/null +++ b/apps/web-antd/src/views/property/costManagement/houseCharge/houseCharge-add.vue @@ -0,0 +1,201 @@ + + + + diff --git a/apps/web-antd/src/views/property/costManagement/houseCharge/houseCharge-update.vue b/apps/web-antd/src/views/property/costManagement/houseCharge/houseCharge-update.vue new file mode 100644 index 00000000..158751de --- /dev/null +++ b/apps/web-antd/src/views/property/costManagement/houseCharge/houseCharge-update.vue @@ -0,0 +1,147 @@ + + + + diff --git a/apps/web-antd/src/views/property/costManagement/houseCharge/index.vue b/apps/web-antd/src/views/property/costManagement/houseCharge/index.vue new file mode 100644 index 00000000..657226eb --- /dev/null +++ b/apps/web-antd/src/views/property/costManagement/houseCharge/index.vue @@ -0,0 +1,189 @@ + + + diff --git a/apps/web-antd/src/views/property/costManagement/returnPayFee/data.ts b/apps/web-antd/src/views/property/costManagement/returnPayFee/data.ts new file mode 100644 index 00000000..1a89c3e7 --- /dev/null +++ b/apps/web-antd/src/views/property/costManagement/returnPayFee/data.ts @@ -0,0 +1,103 @@ +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: 'returnNo', + label: '退款单号', + }, + { + component: 'Select', + componentProps:{ + options:getDictOptions('wy_tfshzt') + }, + fieldName: 'state', + label: '审核状态', + }, +]; +export const columns: VxeGridProps['columns'] = [ + { type: 'checkbox', width: 60 }, + { + title: '退款单号', + field: 'returnNo', + width: 180, + }, + { + title: '支付单号', + field: 'payNo', + width: 180, + }, + { + title: '支付金额', + field: 'payAcount', + width: 100, + }, + { + title: '支付时间', + field: 'payTime', + width: 180, + }, + { + title: '退款原因', + field: 'reason', + minWidth: 180, + }, + { + title: '审核状态', + field: 'state', + width: 150, + slots:{ + default:({row})=>{ + return renderDict(row.state,'wy_tfshzt') + } + } + }, + { + title: '审核意见', + field: 'remark', + width: 180, + }, + { + field: 'action', + fixed: 'right', + slots: { default: 'action' }, + title: '操作', + width: 180, + }, +]; + +export const stateOptions = [ + { label: '审核通过', value: '1' }, + { label: '审核不通过', value: '2' }, +]; + +export const modalSchema: FormSchemaGetter = () => [ + { + label: '主键', + fieldName: 'id', + component: 'Input', + dependencies: { + show: () => false, + triggerFields: [''], + }, + }, + { + label: '审核状态', + fieldName: 'state', + component: 'RadioGroup', + componentProps: { + buttonStyle: 'solid', + options: stateOptions, + }, + rules:'required' + }, + { + label: '审核意见', + fieldName: 'remark', + component: 'Textarea', + }, +]; diff --git a/apps/web-antd/src/views/property/costManagement/returnPayFee/index.vue b/apps/web-antd/src/views/property/costManagement/returnPayFee/index.vue new file mode 100644 index 00000000..3f0f2930 --- /dev/null +++ b/apps/web-antd/src/views/property/costManagement/returnPayFee/index.vue @@ -0,0 +1,172 @@ + + + diff --git a/apps/web-antd/src/views/property/costManagement/returnPayFee/return-pay-detail.vue b/apps/web-antd/src/views/property/costManagement/returnPayFee/return-pay-detail.vue new file mode 100644 index 00000000..4b9a2b91 --- /dev/null +++ b/apps/web-antd/src/views/property/costManagement/returnPayFee/return-pay-detail.vue @@ -0,0 +1,64 @@ + + + diff --git a/apps/web-antd/src/views/property/costManagement/returnPayFee/returnPayFee-modal.vue b/apps/web-antd/src/views/property/costManagement/returnPayFee/returnPayFee-modal.vue new file mode 100644 index 00000000..0e706473 --- /dev/null +++ b/apps/web-antd/src/views/property/costManagement/returnPayFee/returnPayFee-modal.vue @@ -0,0 +1,108 @@ + + + + diff --git a/apps/web-antd/src/views/property/equipmentManagement/machine/data.ts b/apps/web-antd/src/views/property/equipmentManagement/machine/data.ts index 81762779..02a7d3d1 100644 --- a/apps/web-antd/src/views/property/equipmentManagement/machine/data.ts +++ b/apps/web-antd/src/views/property/equipmentManagement/machine/data.ts @@ -42,16 +42,16 @@ export const columns: VxeGridProps['columns'] = [ field: 'machineBrand', width:100 }, - { - title: '设备类型', - field: 'machineTypeId', - width:100 - }, - { - title: '位置详情', - field: 'locationId', - width:100 - }, + // { + // title: '设备类型', + // field: 'machineTypeId', + // width:100 + // }, + // { + // title: '位置详情', + // field: 'locationId', + // width:100 + // }, { title: '采购价格', field: 'purchasePrice', @@ -92,11 +92,11 @@ export const columns: VxeGridProps['columns'] = [ } } }, - { - title: '责任人', - field: 'personId', - width:100 - }, + // { + // title: '责任人', + // field: 'personId', + // width:100 + // }, { field: 'action', fixed: 'right', diff --git a/apps/web-antd/src/views/property/equipmentManagement/machine/index.vue b/apps/web-antd/src/views/property/equipmentManagement/machine/index.vue index 8e58bef2..896e0194 100644 --- a/apps/web-antd/src/views/property/equipmentManagement/machine/index.vue +++ b/apps/web-antd/src/views/property/equipmentManagement/machine/index.vue @@ -24,7 +24,7 @@ import MachineTypeTree from '../components/machine-type-tree.vue' import machineDetail from './machine-detail.vue' import {ref} from "vue"; -const selectTypeId = ref('') +const selectTypeId = ref([]) const formOptions: VbenFormProps = { commonConfig: { @@ -36,8 +36,8 @@ const formOptions: VbenFormProps = { schema: querySchema(), wrapperClass: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4', handleReset: async () => { - selectTypeId.value = ''; - const { formApi, reload } = tableApi; + selectTypeId.value = []; + const {formApi, reload} = tableApi; await formApi.resetForm(); const formValues = formApi.form.values; formApi.setLatestSubmissionValues(formValues); @@ -61,7 +61,11 @@ const gridOptions: VxeGridProps = { proxyConfig: { ajax: { query: async ({page}, formValues = {}) => { - formValues.machineTypeId = selectTypeId.value + if (selectTypeId.value && selectTypeId.value.length) { + formValues.machineTypeId = selectTypeId.value[0] + }else { + formValues.machineTypeId =[] + } return await machineList({ pageNum: page.currentPage, pageSize: page.pageSize, @@ -135,32 +139,32 @@ function handleDownloadExcel() {