diff --git a/apps/web-antd/src/api/property/chargeManagement/model.d.ts b/apps/web-antd/src/api/property/chargeManagement/model.d.ts
index 2f5a1565..b5928d13 100644
--- a/apps/web-antd/src/api/property/chargeManagement/model.d.ts
+++ b/apps/web-antd/src/api/property/chargeManagement/model.d.ts
@@ -196,8 +196,8 @@ export interface OrderChargeQuery extends PageQuery {
chargeStatus?: string | number;
/**
- * 日期范围参数
- */
+ * 日期范围参数
+ */
params?: any;
}
@@ -266,4 +266,8 @@ export interface orderChargeDetailForm extends BaseEntity {
* 收费状态
*/
chargeStatus?: string | number;
+ /**
+ * 租赁单位
+ */
+ unitName?: string;
}
diff --git a/apps/web-antd/src/api/property/rentalOrder/model.d.ts b/apps/web-antd/src/api/property/rentalOrder/model.d.ts
index 745d03d0..dd418f80 100644
--- a/apps/web-antd/src/api/property/rentalOrder/model.d.ts
+++ b/apps/web-antd/src/api/property/rentalOrder/model.d.ts
@@ -86,6 +86,10 @@ export interface RentalOrderVO {
*/
signTime: string;
+ /**
+ * 单位名称
+ */
+ unitName: string;
}
export interface RentalOrderForm extends BaseEntity {
@@ -173,7 +177,6 @@ export interface RentalOrderForm extends BaseEntity {
* 签署时间
*/
signTime?: string;
-
}
export interface RentalOrderQuery extends PageQuery {
@@ -257,7 +260,7 @@ export interface RentalOrderQuery extends PageQuery {
signTime?: string;
/**
- * 日期范围参数
- */
+ * 日期范围参数
+ */
params?: any;
}
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 0cb913d5..3c218bc6 100644
--- a/apps/web-antd/src/views/property/costManagement/costItemSetting/data.ts
+++ b/apps/web-antd/src/views/property/costManagement/costItemSetting/data.ts
@@ -88,7 +88,7 @@ export const columns: VxeGridProps['columns'] = [
{
title: '状态',
field: 'state',
- slots: {default: 'state'},
+ slots: { default: 'state' },
width: 100,
},
{
@@ -159,11 +159,11 @@ export const modalSchema: FormSchemaGetter = () => [
},
},
{
- label: '手机缴费',
- fieldName: 'isMobilePay',
+ label: '付费方式',
+ fieldName: 'paymentMode',
component: 'Select',
componentProps: {
- options: getDictOptions('pro_mobile_payment'),
+ options: getDictOptions('wy_fffs'),
},
rules: 'selectRequired',
},
@@ -202,7 +202,7 @@ export const modalSchema: FormSchemaGetter = () => [
options: getDictOptions('pro_calculation_formula'),
},
rules: 'selectRequired',
- formItemClass:'col-span-2',
+ formItemClass: 'col-span-2',
},
{
label: '计费单价',
diff --git a/apps/web-antd/src/views/property/costManagement/houseCharge/data.ts b/apps/web-antd/src/views/property/costManagement/houseCharge/data.ts
index 00b53669..83284371 100644
--- a/apps/web-antd/src/views/property/costManagement/houseCharge/data.ts
+++ b/apps/web-antd/src/views/property/costManagement/houseCharge/data.ts
@@ -1,17 +1,18 @@
-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 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';
-
+import { resident_unitList } from '#/api/property/resident/unit';
export const querySchema: FormSchemaGetter = () => [
{
component: 'ApiSelect',
componentProps: {
- api:async ()=>{
- return (await costItemSettingList({pageSize: 1000, pageNum: 1}))?.rows
+ api: async () => {
+ return (await costItemSettingList({ pageSize: 1000, pageNum: 1 }))
+ ?.rows;
},
afterFetch: (data: { chargeItem: string; id: string }[]) => {
return data.map((item: any) => ({
@@ -28,12 +29,29 @@ export const querySchema: FormSchemaGetter = () => [
fieldName: 'chargeStatus',
label: '缴费状态',
componentProps: {
- options: getDictOptions('wy_fyshzt')
+ options: getDictOptions('wy_fyshzt'),
},
},
+ {
+ component: 'ApiSelect',
+ componentProps: {
+ api: async () => {
+ const rows = await resident_unitList({
+ pageSize: 1000000000,
+ pageNum: 1,
+ });
+ return rows;
+ },
+ resultField: 'rows',
+ labelField: 'name',
+ valueField: 'id',
+ },
+ fieldName: 'residentUnitId',
+ label: '单位',
+ },
];
export const columns: VxeGridProps['columns'] = [
- {type: 'checkbox', width: 60},
+ { type: 'checkbox', width: 60 },
{
title: '单位',
field: 'residentUnitText',
@@ -41,7 +59,7 @@ export const columns: VxeGridProps['columns'] = [
},
{
title: '收费项目',
- field: 'costItemsId',
+ field: 'chargeItemText',
width: 150,
},
{
@@ -53,21 +71,23 @@ export const columns: VxeGridProps['columns'] = [
title: '计费开始时间',
field: 'startTime',
width: 150,
+ slots: { default: 'startTime' },
},
{
title: '计费结束时间',
field: 'endTime',
width: 150,
+ slots: { default: 'endTime' },
},
{
title: '缴费状态',
field: 'chargeStatus',
width: 150,
slots: {
- default: ({row}) => {
- return renderDict(row.chargeStatus, 'wy_fyshzt')
- }
- }
+ default: ({ row }) => {
+ return renderDict(row.chargeStatus, 'wy_fyshzt');
+ },
+ },
},
// {
// title: '状态',
@@ -87,7 +107,7 @@ export const columns: VxeGridProps['columns'] = [
{
field: 'action',
fixed: 'right',
- slots: {default: 'action'},
+ slots: { default: 'action' },
title: '操作',
width: 180,
},
@@ -107,8 +127,7 @@ export const modalSchema: FormSchemaGetter = () => [
label: '单位',
fieldName: 'residentUnitId',
component: 'Select',
- componentProps: {
- },
+ componentProps: {},
rules: 'selectRequired',
formItemClass: 'col-span-2',
},
@@ -136,16 +155,14 @@ export const modalSchema: FormSchemaGetter = () => [
label: '业主',
fieldName: 'personId',
component: 'ApiSelect',
- componentProps: {
- },
+ componentProps: {},
rules: 'selectRequired',
},
{
label: '费用类型',
fieldName: 'costType',
component: 'Select',
- componentProps: {
- },
+ componentProps: {},
rules: 'selectRequired',
},
{
@@ -201,7 +218,7 @@ export const modalSchemaUpdate: FormSchemaGetter = () => [
fieldName: 'payType',
component: 'Select',
componentProps: {
- options:getDictOptions('wy_zffs')
+ options: getDictOptions('wy_zffs'),
},
rules: 'selectRequired',
},
@@ -210,14 +227,15 @@ export const modalSchemaUpdate: FormSchemaGetter = () => [
fieldName: 'chargeCycle',
component: 'InputNumber',
componentProps: {
- min:1,
- precision:0,
- placeholder:'请输入缴费周期(月)'
+ min: 1,
+ precision: 0,
+ placeholder: '请输入缴费周期(月)',
},
- suffix: () => h('span', { style: {fontSize: '0.875rem',fontWeight:500,} }, '月'),
+ suffix: () =>
+ h('span', { style: { fontSize: '0.875rem', fontWeight: 500 } }, '月'),
rules: 'selectRequired',
},
-]
+];
export const modalSchemaRefund: FormSchemaGetter = () => [
{
label: '主键',
@@ -233,6 +251,6 @@ export const modalSchemaRefund: FormSchemaGetter = () => [
fieldName: 'reason',
component: 'Textarea',
formItemClass: 'col-span-2',
- rules:'required'
+ rules: 'required',
},
-]
+];
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
index 18da12b9..e63bfbd7 100644
--- 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
@@ -39,6 +39,11 @@ async function handleOpenChange(open: boolean) {
}
modalApi.modalLoading(false);
}
+function formatDate(dateString: string) {
+ if (!dateString) return '';
+ const date = new Date(dateString);
+ return date.toISOString().split('T')[0];
+}
@@ -57,7 +62,7 @@ async function handleOpenChange(open: boolean) {
/>
- {{ houseChargeDetail.startTime + ' 至 ' + houseChargeDetail.endTime }}
+ {{ formatDate(houseChargeDetail.startTime) + ' 至 ' + formatDate(houseChargeDetail.endTime) }}
{{ houseChargeDetail?.residentUnitText }}
diff --git a/apps/web-antd/src/views/property/costManagement/houseCharge/index.vue b/apps/web-antd/src/views/property/costManagement/houseCharge/index.vue
index cba750bf..d0db2f90 100644
--- a/apps/web-antd/src/views/property/costManagement/houseCharge/index.vue
+++ b/apps/web-antd/src/views/property/costManagement/houseCharge/index.vue
@@ -125,7 +125,11 @@ function handleMultiDelete() {
},
});
}
-
+function formatDate(dateString: string) {
+ if (!dateString) return '';
+ const date = new Date(dateString);
+ return date.toISOString().split('T')[0];
+}
function handleDownloadExcel() {
commonDownloadExcel(houseChargeExport, '房屋收费数据', tableApi.formApi.form.values, {
fieldMappingTime: formOptions.fieldMappingTime,
@@ -161,6 +165,14 @@ function handleDownloadExcel() {
+
+ {{ formatDate(row.startTime) }}
+
+
+
+ {{ formatDate(row.endTime) }}
+
+
[
{
@@ -70,47 +71,47 @@ export const columns: VxeGridProps['columns'] = [
return (rowIndex + 1).toString();
},
},
- minWidth: '120'
+ minWidth: '120',
},
{
title: '订单号',
field: 'orderId',
- minWidth: '120'
+ minWidth: '120',
},
{
title: '租赁合同编号',
field: 'userId',
- minWidth: '120'
+ minWidth: '120',
},
{
title: '租赁人',
field: 'userName',
- minWidth: '120'
+ minWidth: '120',
},
{
title: '租金',
field: 'rent',
- minWidth: '120'
+ minWidth: '120',
},
{
title: '押金',
field: 'deposit',
- minWidth: '120'
+ minWidth: '120',
},
{
title: '违约金',
field: 'penalty',
- minWidth: '120'
+ minWidth: '120',
},
{
title: '总金额',
field: 'totalAmount',
- minWidth: '120'
+ minWidth: '120',
},
{
title: '收费日期',
field: 'chargeDate',
- minWidth: '120'
+ minWidth: '120',
},
{
title: '支付方式',
@@ -120,7 +121,7 @@ export const columns: VxeGridProps['columns'] = [
return renderDict(row.paymentMethod, 'pro_payment_method');
},
},
- minWidth: '120'
+ minWidth: '120',
},
{
title: '开票状态',
@@ -130,7 +131,7 @@ export const columns: VxeGridProps['columns'] = [
return renderDict(row.invoiceStatus, 'pro_invoice_status');
},
},
- minWidth: '120'
+ minWidth: '120',
},
{
title: '发票类型',
@@ -140,7 +141,7 @@ export const columns: VxeGridProps['columns'] = [
return renderDict(row.invoiceType, 'pro_invoice_type');
},
},
- minWidth: '120'
+ minWidth: '120',
},
{
title: '收费状态',
@@ -150,12 +151,12 @@ export const columns: VxeGridProps['columns'] = [
return renderDict(row.chargeStatus, 'pro_charging_status');
},
},
- minWidth: '120'
+ minWidth: '120',
},
{
title: '创建时间',
field: 'createTime',
- minWidth: '120'
+ minWidth: '120',
},
{
field: 'action',
@@ -203,7 +204,24 @@ export const modalSchema: FormSchemaGetter = () => [
{
label: '租赁人',
fieldName: 'userName',
- component: "Select",
+ component: 'Select',
+ rules: 'selectRequired',
+ },
+ {
+ component: 'ApiSelect',
+ fieldName: 'unitId',
+ label: '租赁单位',
+ componentProps: {
+ api: getUnitList,
+ resultField: 'data',
+ labelField: 'label',
+ valueField: 'value',
+ immediate: true,
+ debounceTime: 500,
+ allowClear: true,
+ placeholder: '请选择租赁单位',
+ filterOption: true,
+ },
rules: 'selectRequired',
},
{
@@ -211,27 +229,27 @@ export const modalSchema: FormSchemaGetter = () => [
fieldName: 'rent',
component: 'InputNumber',
rules: 'required',
- componentProps:{
+ componentProps: {
precision: 2,
- }
+ },
},
{
label: '押金',
fieldName: 'deposit',
component: 'InputNumber',
rules: 'required',
- componentProps:{
+ componentProps: {
precision: 2,
- }
+ },
},
{
label: '违约金',
fieldName: 'penalty',
component: 'InputNumber',
rules: 'required',
- componentProps:{
+ componentProps: {
precision: 2,
- }
+ },
},
// {
// label: '总金额',
@@ -287,3 +305,21 @@ export const modalSchema: FormSchemaGetter = () => [
rules: 'required',
},
];
+export async function getUnitList(): Promise<
+ { value: number; label: string }[]
+> {
+ const queryParam = {
+ pageNum: 1,
+ pageSize: 1000,
+ };
+ const res = await resident_unitList(queryParam);
+ const data: { value: number; label: string }[] = [];
+
+ res.rows.forEach((r: any) => {
+ data.push({
+ value: r.id,
+ label: r.name,
+ });
+ });
+ return data;
+}
diff --git a/apps/web-antd/src/views/property/greenPlantRentalManagement/chargeManagement/orderCharge-detail.vue b/apps/web-antd/src/views/property/greenPlantRentalManagement/chargeManagement/orderCharge-detail.vue
index 244fdc68..e5809166 100644
--- a/apps/web-antd/src/views/property/greenPlantRentalManagement/chargeManagement/orderCharge-detail.vue
+++ b/apps/web-antd/src/views/property/greenPlantRentalManagement/chargeManagement/orderCharge-detail.vue
@@ -1,13 +1,13 @@
-
-
+
+
{{ orderChargeDetail.orderId }}
@@ -42,7 +53,10 @@ async function handleOpenChange(open: boolean) {
{{ orderChargeDetail.rentalOrder.contractCode }}
- {{ orderChargeDetail.userName}}
+ {{ orderChargeDetail.userName }}
+
+
+ {{ orderChargeDetail.unitName }}
{{ orderChargeDetail.rent }}
@@ -53,32 +67,53 @@ async function handleOpenChange(open: boolean) {
{{ orderChargeDetail.penalty }}
-
+
-
+
-
+
- {{ orderChargeDetail.rentalOrder.productList.map(item => item.plantCode).join('、') }}
+ {{
+ orderChargeDetail.rentalOrder.productList
+ .map((item) => item.plantCode)
+ .join('、')
+ }}
- {{ orderChargeDetail.rentalOrder.productList.map(item => item.plantName).join('、') }}
+ {{
+ orderChargeDetail.rentalOrder.productList
+ .map((item) => item.plantName)
+ .join('、')
+ }}
{{ orderChargeDetail.totalAmount }}
-
+
diff --git a/apps/web-antd/src/views/property/greenPlantRentalManagement/orderManagement/order-detail.vue b/apps/web-antd/src/views/property/greenPlantRentalManagement/orderManagement/order-detail.vue
index 66314546..715d164e 100644
--- a/apps/web-antd/src/views/property/greenPlantRentalManagement/orderManagement/order-detail.vue
+++ b/apps/web-antd/src/views/property/greenPlantRentalManagement/orderManagement/order-detail.vue
@@ -1,24 +1,23 @@
-
-
+
+
- {{ orderDetail.orderNo }}
+ {{ orderDetail.orderNo }}
{{ orderDetail.customerName }}
-
-
+
+
+
+
+ {{ orderDetail.unitName }}
- {{ orderDetail.rentalPeriod}}
+ {{ orderDetail.rentalPeriod }}
- {{dayjs(orderDetail.startTime).format("YYYY-MM-DD")+' 至 '+dayjs(orderDetail.endTime).format("YYYY-MM-DD")}}
+ {{
+ dayjs(orderDetail.startTime).format('YYYY-MM-DD') +
+ ' 至 ' +
+ dayjs(orderDetail.endTime).format('YYYY-MM-DD')
+ }}
- {{ orderDetail.totalAmount +"元"}}
+ {{ orderDetail.totalAmount + '元' }}
-
+
-
-
-
-
-
+
+
+
+
+
-
+
-
+
-
+
{{ orderDetail.contractCode ?? '无' }}
-
+
{{ orderDetail.signTime ?? '无' }}
-
- 订单产品详情
-
-
+ 订单产品详情
+
{{ index + 1 }}
diff --git a/apps/web-antd/src/views/property/greenPlantRentalManagement/orderManagement/rentalOrder-modal.vue b/apps/web-antd/src/views/property/greenPlantRentalManagement/orderManagement/rentalOrder-modal.vue
index bd596559..afaa85c4 100644
--- a/apps/web-antd/src/views/property/greenPlantRentalManagement/orderManagement/rentalOrder-modal.vue
+++ b/apps/web-antd/src/views/property/greenPlantRentalManagement/orderManagement/rentalOrder-modal.vue
@@ -20,6 +20,7 @@ import type {PropertyVO} from "#/api/property/productManagement/model";
import type {RentalPlanVO} from "#/api/property/rentalPlan/model";
import {planInfoColumns} from './data';
import {Table} from "ant-design-vue";
+import { resident_unitList } from '#/api/property/resident/unit'
const emit = defineEmits<{ reload: [] }>();
@@ -57,6 +58,23 @@ const modalSchema = [
options: getDictOptions('wy_khlx')
},
rules: 'selectRequired',
+ },
+ {
+ component: 'ApiSelect',
+ fieldName: 'unitId',
+ label: '租赁单位',
+ componentProps: {
+ api: getUnitList,
+ resultField: 'data',
+ labelField: 'label',
+ valueField: 'value',
+ immediate: true,
+ debounceTime: 500,
+ allowClear: true,
+ placeholder: '请选择租赁单位',
+ filterOption: true,
+ },
+ rules:'selectRequired',
},
{
label: '租赁周期',
@@ -300,7 +318,22 @@ const [BasicModal, modalApi] = useVbenModal({
modalApi.modalLoading(false);
},
});
+async function getUnitList(){
+ const queryParam = {
+ pageNum: 1,
+ pageSize: 1000,
+ }
+ const res = await resident_unitList(queryParam)
+ const data: { value: number; label: string }[] = []
+ res.rows.forEach((r: any) => {
+ data.push({
+ value: r.id,
+ label: r.name,
+ })
+ })
+ return data;
+}
async function handleConfirm() {
try {
modalApi.lock(true);