8/31 dev 权限,sse,账单,bug

This commit is contained in:
Zy
2026-08-31 18:00:11 +08:00
parent 466ec4675e
commit de4bae3bc1
51 changed files with 575 additions and 591 deletions

View File

@@ -4,11 +4,11 @@
<transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">
<div v-show="showSearch" class="mb-[10px]">
<el-card shadow="hover">
<el-form ref="queryFormRef" :model="queryParams" @submit.prevent="handleQuery" :inline="true">
<el-form ref="queryFormRef" :inline="true" :model="queryParams" @submit.prevent="handleQuery">
<div class="flex justify-between">
<div>
<el-form-item label="小区" prop="villageId">
<el-select @change="handleVillageChange" v-model="queryParams.villageId" placeholder="请选择">
<el-select v-model="queryParams.villageId" placeholder="请选择" @change="handleVillageChange">
<el-option v-for="item in villageList" :key="item.villageId" :label="item.villageName" :value="item.villageId" />
</el-select>
</el-form-item>
@@ -33,15 +33,15 @@
</div>
</transition>
<el-card shadow="never" class="flex-1">
<el-card class="flex-1" shadow="never">
<template #header>
<el-row :gutter="10" style="margin-bottom: 30px">
<el-col :span="5">
<div class="flex items-center">
<div style="width: 200px; font-size: 15px; margin-right: 10px">应收欠费汇总列表</div>
<el-select @change="handleViewTypeChange" v-model="queryParams.viewType" placeholder="请选择视图类型">
<el-option label="维度1(按收费类型)" :value="1" />
<el-option label="维度2(按房屋类型)" :value="2" />
<el-select v-model="queryParams.viewType" placeholder="请选择视图类型" @change="handleViewTypeChange">
<el-option :value="1" label="维度1(按收费类型)" />
<el-option :value="2" label="维度2(按房屋类型)" />
</el-select>
</div>
</el-col>
@@ -54,15 +54,15 @@
<el-table
:key="queryParams.viewType"
v-loading="loading"
:data="ArrearsList"
:row-class-name="handleRowClass"
:span-method="mergeSpanMethod"
v-loading="loading"
border
:data="ArrearsList"
>
<el-table-column label="小区" align="center" prop="villageName" />
<el-table-column align="center" label="小区" prop="villageName" />
<template v-if="queryParams.viewType === 1">
<el-table-column label="收费项目" align="center" prop="chargeItemName" />
<el-table-column align="center" label="收费项目" prop="chargeItemName" />
<el-table-column v-for="(item, index) in houseTypeKeys" :key="index" :label="item" align="center">
<template #default="scope">
<span>{{ scope.row.houseTypeAmounts?.[item] || '---' }}</span>
@@ -70,21 +70,21 @@
</el-table-column>
</template>
<template v-if="queryParams.viewType === 2">
<el-table-column label="房屋类型" align="center" prop="houseTypeName" />
<el-table-column align="center" label="房屋类型" prop="houseTypeName" />
<el-table-column v-for="(item, index) in houseTypeKeys2" :key="index" :label="item" align="center">
<template #default="scope">
<span>{{ scope.row.chargeItemAmounts?.[item] || '---' }}</span>
</template>
</el-table-column>
</template>
<el-table-column label="金额" align="center" prop="totalAmount" />
<el-table-column align="center" label="金额" prop="totalAmount" />
</el-table>
<!-- <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />-->
</el-card>
</div>
</template>
<script setup name="Arrears" lang="ts">
<script lang="ts" name="Arrears" setup>
// import pagination from '@/components/Pagination/index.vue';
import pageHeader from '@/components/Pageheader/index.vue';
import { getArrearsList } from '@/api/system/report/arrears/arrears';
@@ -312,7 +312,6 @@ const handleExport = () => {
}
return obj;
});
console.log(processedData, columns);
const mergeSpanMethod = ({ row, columnIndex, rowIndex }) => {
const lastRowIndex = ArrearsList.value.length - 1;
if (rowIndex === lastRowIndex) {

View File

@@ -141,7 +141,6 @@ const getList = async () => {
});
getPaidInExpensesList(search)
.then((res) => {
console.log(res);
ArrearsDetailList.value = [res.data.total, ...res.data.details];
rowChargeTypesList.value = res.data.chargeTypes;
})

View File

@@ -5,26 +5,26 @@
<div v-show="showSearch" class="mb-[10px]">
<el-card shadow="hover">
<el-form
:rules="formRules"
label-width="180px"
label-position="right"
ref="queryFormRef"
:model="queryParams"
@submit.prevent="handleQuery"
:inline="true"
:model="queryParams"
:rules="formRules"
label-position="right"
label-width="180px"
@submit.prevent="handleQuery"
>
<div>
<el-form-item label="日期" prop="payTime">
<el-date-picker
v-model="payTime"
type="daterange"
end-placeholder="结束日期"
format="YYYY-MM-DD"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
type="daterange"
value-format="YYYY-MM-DD"
@clear="handleClear()"
@update:model-value="(val: string[]) => handleUpdateLeaseDate(val)"
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
/>
</el-form-item>
<el-form-item label="户主" prop="residentName">
@@ -37,7 +37,7 @@
<div v-show="!isShow" class="flex justify-end">
<el-button type="primary" @click="handleQuery">查询</el-button>
<el-button @click="resetQuery">重置</el-button>
<div @click="toggleShow" class="flex items-center cursor-pointer hover:color-blue" style="margin-left: 10px; font-size: 13px">
<div class="flex items-center cursor-pointer hover:color-blue" style="margin-left: 10px; font-size: 13px" @click="toggleShow">
<span>展开</span>
<el-icon style="margin-left: 5px"><ArrowDownBold /></el-icon>
</div>
@@ -92,6 +92,20 @@
<el-form-item :label="`${item.chargeTypeName} (开始时间)`">
<el-date-picker
v-model="queryParams.chargeTypeFilters[index].startDate"
clearable
end-placeholder="结束时间"
format="YYYY-MM-DD HH:mm:ss"
range-separator="到"
start-placeholder="开始时间"
type="datetimerange"
value-format="YYYY-MM-DD HH:mm:ss"
@clear="
() => {
queryParams.chargeTypeFilters[index].startDate = '';
queryParams.chargeTypeFilters[index].startDateBegin = '';
queryParams.chargeTypeFilters[index].startDateEnd = '';
}
"
@update:model-value="
(val: string[]) => {
if (val.length === 0) {
@@ -101,26 +115,25 @@
queryParams.chargeTypeFilters[index].startDateEnd = val[1];
}
"
format="YYYY-MM-DD HH:mm:ss"
value-format="YYYY-MM-DD HH:mm:ss"
clearable
@clear="
() => {
queryParams.chargeTypeFilters[index].startDate = '';
queryParams.chargeTypeFilters[index].startDateBegin = '';
queryParams.chargeTypeFilters[index].startDateEnd = '';
}
"
type="datetimerange"
range-separator="到"
start-placeholder="开始时间"
end-placeholder="结束时间"
/>
</el-form-item>
<el-form-item :label="`${item.chargeTypeName} (结束时间)`">
<el-date-picker
v-model="queryParams.chargeTypeFilters[index].endDate"
clearable
end-placeholder="结束时间"
format="YYYY-MM-DD HH:mm:ss"
range-separator="到"
start-placeholder="开始时间"
type="datetimerange"
value-format="YYYY-MM-DD HH:mm:ss"
@clear="
() => {
queryParams.chargeTypeFilters[index].endDate = '';
queryParams.chargeTypeFilters[index].endDateBegin = '';
queryParams.chargeTypeFilters[index].endDateEnd = '';
}
"
@update:model-value="
(val: string[]) => {
if (val.length === 0) {
@@ -130,19 +143,6 @@
queryParams.chargeTypeFilters[index].endDateEnd = val[1];
}
"
format="YYYY-MM-DD HH:mm:ss"
value-format="YYYY-MM-DD HH:mm:ss"
clearable
@clear="
() => {
queryParams.chargeTypeFilters[index].endDate = '';
queryParams.chargeTypeFilters[index].endDateBegin = '';
queryParams.chargeTypeFilters[index].endDateEnd = '';
}
"
range-separator="到"
start-placeholder="开始时间"
end-placeholder="结束时间"
/>
</el-form-item>
</div>
@@ -158,7 +158,7 @@
<div v-show="isShow" class="flex justify-end">
<el-button type="primary" @click="handleQuery">查询</el-button>
<el-button @click="resetQuery">重置</el-button>
<div @click="toggleShow" class="flex items-center cursor-pointer hover:color-blue" style="margin-left: 10px; font-size: 13px">
<div class="flex items-center cursor-pointer hover:color-blue" style="margin-left: 10px; font-size: 13px" @click="toggleShow">
<span>收起</span>
<el-icon style="margin-left: 5px"><ArrowUpBold /></el-icon>
</div>
@@ -168,7 +168,7 @@
</div>
</transition>
<el-card shadow="never" class="flex-1">
<el-card class="flex-1" shadow="never">
<template #header>
<el-row :gutter="10">
<el-col :span="5">
@@ -180,53 +180,53 @@
</el-col>
</el-row>
</template>
<el-table :row-class-name="handleRowClass" v-loading="loading" border :data="ArrearsDetailList">
<el-table-column label="日期" width="100" align="center" fixed="left" prop="payTime" />
<el-table-column label="房屋信息" align="center" fixed="left">
<el-table v-loading="loading" :data="ArrearsDetailList" :row-class-name="handleRowClass" border>
<el-table-column align="center" fixed="left" label="日期" prop="payTime" width="100" />
<el-table-column align="center" fixed="left" label="房屋信息">
<template #default>
<el-table-column label="户主" align="center" width="100" prop="residentName"></el-table-column>
<el-table-column label="房号" align="center" width="100" prop="houseName"></el-table-column>
<el-table-column align="center" label="户主" prop="residentName" width="100"></el-table-column>
<el-table-column align="center" label="房号" prop="houseName" width="100"></el-table-column>
</template>
</el-table-column>
<el-table-column label="支付方式" align="center">
<el-table-column align="center" label="支付方式">
<template #default>
<el-table-column label="现金类" align="center" prop="cashAmount">
<el-table-column align="center" label="现金类" prop="cashAmount">
<template #default>
<el-table-column label="现金" align="center" prop="cashAmount"></el-table-column>
<el-table-column label="支付宝" align="center" prop="alipayAmount"></el-table-column>
<el-table-column label="宜当付" align="center" prop="yiDangFuAmount"></el-table-column>
<el-table-column label="银联" align="center" prop="unionPayAmount"></el-table-column>
<el-table-column label="转账" align="center" prop="transferAmount"></el-table-column>
<el-table-column label="微信" align="center" prop="wechatAmount"></el-table-column>
<el-table-column align="center" label="现金" prop="cashAmount"></el-table-column>
<el-table-column align="center" label="支付宝" prop="alipayAmount"></el-table-column>
<el-table-column align="center" label="宜当付" prop="yiDangFuAmount"></el-table-column>
<el-table-column align="center" label="银联" prop="unionPayAmount"></el-table-column>
<el-table-column align="center" label="转账" prop="transferAmount"></el-table-column>
<el-table-column align="center" label="微信" prop="wechatAmount"></el-table-column>
</template>
</el-table-column>
<el-table-column label="顶账类" align="center" prop="deposit">
<el-table-column align="center" label="顶账类" prop="deposit">
<template #default>
<el-table-column label="押金抵顶" align="center" prop="depositAmount"></el-table-column>
<el-table-column label="房产抵顶" align="center" prop="propertyOffsetAmount"></el-table-column>
<el-table-column label="减免优惠" align="center" prop="discountAmount"></el-table-column>
<el-table-column align="center" label="押金抵顶" prop="depositAmount"></el-table-column>
<el-table-column align="center" label="房产抵顶" prop="propertyOffsetAmount"></el-table-column>
<el-table-column align="center" label="减免优惠" prop="discountAmount"></el-table-column>
</template>
</el-table-column>
</template>
</el-table-column>
<el-table-column label="水费" align="center" prop="waterFee" />
<el-table-column label="电费" align="center" prop="electricFee" />
<el-table-column label="押金" align="center" prop="deposit" />
<el-table-column label="收费项目" align="center" prop="chargeTypeAmounts">
<el-table-column align="center" label="水费" prop="waterFee" />
<el-table-column align="center" label="电费" prop="electricFee" />
<el-table-column align="center" label="押金" prop="deposit" />
<el-table-column align="center" label="收费项目" prop="chargeTypeAmounts">
<template #default>
<el-table-column v-for="(item, index) in rowChargeTypesList" :key="index" :label="item" align="center">
<template #default="scope">
<el-table-column label="金额" align="center" v-if="item !== '卡表' && item !== '其他'">
<el-table-column v-if="item !== '卡表' && item !== '其他'" align="center" label="金额">
<template #default="scope">
{{ scope.row.chargeTypeAmounts[item].amount }}
</template>
</el-table-column>
<el-table-column label="开始时间" width="100" align="center" v-if="item !== '卡表' && item !== '其他'">
<el-table-column v-if="item !== '卡表' && item !== '其他'" align="center" label="开始时间" width="100">
<template #default="scope">
{{ scope.row.chargeTypeAmounts[item].startDate }}
</template>
</el-table-column>
<el-table-column label="结束时间" width="100" align="center" v-if="item !== '卡表' && item !== '其他'">
<el-table-column v-if="item !== '卡表' && item !== '其他'" align="center" label="结束时间" width="100">
<template #default="scope">
{{ scope.row.chargeTypeAmounts[item].endDate }}
</template>
@@ -239,12 +239,12 @@
<!-- <el-table-column label="经办人" align="center" prop="handler" />-->
<!-- <el-table-column show-overflow-tooltip width="250" label="备注" align="center" prop="remark" />-->
</el-table>
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
<pagination v-show="total > 0" v-model:limit="queryParams.pageSize" v-model:page="queryParams.pageNum" :total="total" @pagination="getList" />
</el-card>
</div>
</template>
<script setup lang="ts">
<script lang="ts" setup>
import pagination from '@/components/Pagination/index.vue';
import pageHeader from '@/components/Pageheader/index.vue';
import { getCommunitylistAPI } from '@/api/system/community';
@@ -550,7 +550,6 @@ const handleExport = () => {
// { label: '经办人', prop: 'inspectorName' },
// { label: '备注', prop: 'remark' }
];
console.log(columns);
exportToExcel(ArrearsDetailList.value, columns, `日报_${new Date().getTime()}`);
} catch (error) {
proxy?.$modal.msgError('导出失败,请重试');

View File

@@ -150,7 +150,6 @@ const getList = async () => {
});
getPaidInExpensesList(search)
.then((res) => {
console.log(res);
ArrearsDetailList.value = [res.data.total, ...res.data.details];
rowChargeTypesList.value = res.data.chargeTypes;
})

View File

@@ -150,7 +150,6 @@ const getList = async () => {
});
getPaidInExpensesReceivableList(search)
.then((res) => {
console.log(res);
ArrearsDetailList.value = [res.data.total, ...res.data.details];
rowChargeTypesList.value = res.data.chargeTypes;
})