8/12,预收费用余额汇总
This commit is contained in:
@@ -22,10 +22,10 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="电话" prop="houseNo">
|
||||
<el-input v-model.trim="queryParams.houseNo" placeholder="请输入房号" />
|
||||
<el-input v-model.trim="queryParams.houseNo" placeholder="关键字查询" />
|
||||
</el-form-item>
|
||||
<el-form-item label="房号" prop="month">
|
||||
<el-select v-model="queryParams.month" placeholder="请选择">
|
||||
<el-select v-model="queryParams.month" placeholder="关键字查询">
|
||||
<el-option v-for="item in MonthList" :key="item.id" :label="item.name" :value="item.id" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
@@ -57,7 +57,7 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="押金(应收)" prop="month">
|
||||
<el-select v-model="queryParams.month" placeholder="请选择">
|
||||
<el-select v-model="queryParams.month" placeholder="区间搜索 1000-10000">
|
||||
<el-option v-for="item in MonthList" :key="item.id" :label="item.name" :value="item.id" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
@@ -67,7 +67,7 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="**(应收)" prop="month">
|
||||
<el-select v-model="queryParams.month" placeholder="请选择">
|
||||
<el-select v-model="queryParams.month" placeholder="关键字查询">
|
||||
<el-option v-for="item in MonthList" :key="item.id" :label="item.name" :value="item.id" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
@@ -79,7 +79,7 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="押金(已收)" prop="month">
|
||||
<el-select v-model="queryParams.month" placeholder="请选择">
|
||||
<el-select v-model="queryParams.month" placeholder="区间搜索 1000-10000">
|
||||
<el-option v-for="item in MonthList" :key="item.id" :label="item.name" :value="item.id" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
@@ -89,7 +89,7 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="**(已收)" prop="month">
|
||||
<el-select v-model="queryParams.month" placeholder="请选择">
|
||||
<el-select v-model="queryParams.month" placeholder="关键字查询">
|
||||
<el-option v-for="item in MonthList" :key="item.id" :label="item.name" :value="item.id" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
@@ -101,7 +101,7 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="押金(未收)" prop="month">
|
||||
<el-select v-model="queryParams.month" placeholder="请选择">
|
||||
<el-select v-model="queryParams.month" placeholder="区间搜索 1000-10000">
|
||||
<el-option v-for="item in MonthList" :key="item.id" :label="item.name" :value="item.id" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
@@ -111,7 +111,7 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="**(未收)" prop="month">
|
||||
<el-select v-model="queryParams.month" placeholder="请选择">
|
||||
<el-select v-model="queryParams.month" placeholder="关键字查询">
|
||||
<el-option v-for="item in MonthList" :key="item.id" :label="item.name" :value="item.id" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
@@ -132,7 +132,7 @@
|
||||
<div v-if="showSearch">
|
||||
<el-form-item label="">
|
||||
<el-button type="primary">查询</el-button>
|
||||
<el-button>重置</el-button>
|
||||
<el-button @click="resetQuery">重置</el-button>
|
||||
<div class="arrowBox" style="margin-left: 10px" v-if="showSearch" @click="ChangeShowSearch(false)">
|
||||
<span>收起</span>
|
||||
<el-icon style="margin-left: 5px"><ArrowUpBold /></el-icon>
|
||||
@@ -150,7 +150,7 @@
|
||||
<div v-if="!showSearch">
|
||||
<el-form-item label="">
|
||||
<el-button type="primary">查询</el-button>
|
||||
<el-button>重置</el-button>
|
||||
<el-button @click="resetQuery">重置</el-button>
|
||||
<div class="arrowBox" style="margin-left: 10px" v-if="showSearch" @click="ChangeShowSearch(false)">
|
||||
<span>收起</span>
|
||||
<el-icon style="margin-left: 5px"><ArrowUpBold /></el-icon>
|
||||
@@ -209,16 +209,13 @@
|
||||
import pagination from '@/components/Pagination/index.vue';
|
||||
import pageHeader from '@/components/Pageheader/index.vue';
|
||||
import { getArrearsDetails } from '@/api/system/report/arrears/arrears';
|
||||
import { listChargeItem } from '@/api/system/SdbChargeItem';
|
||||
import { getCommunitylistAPI } from '@/api/system/community';
|
||||
import { OwnerArrearsDetailVo } from '@/api/system/report/arrears/type';
|
||||
import { getVillageTree } from '@/api/system/house';
|
||||
import { validator } from '@/utils/Reg';
|
||||
import { ColumnConfig, exportToExcel } from '@/utils/xlsx';
|
||||
import { ArrowDownBold, ArrowUpBold } from '@element-plus/icons-vue';
|
||||
|
||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||
// ╬╬▐╬╬&╬╬╬╬
|
||||
const ArrearsDetailList = ref<OwnerArrearsDetailVo[]>([]);
|
||||
const loading = ref(true);
|
||||
const showSearch = ref(true);
|
||||
@@ -380,72 +377,6 @@ const handleExport = () => {
|
||||
}, 100);
|
||||
};
|
||||
|
||||
const handleExportAll = () => {
|
||||
loading.value = true;
|
||||
let reportAllList: OwnerArrearsDetailVo[] = [];
|
||||
// 移除空字符串字段
|
||||
getArrearsDetails()
|
||||
.then((res) => {
|
||||
reportAllList = res.rows;
|
||||
total.value = res.total;
|
||||
reportAllList[reportAllList.length - 1].serialNumber = '合计';
|
||||
if (reportAllList.length === 0) {
|
||||
proxy?.$modal.msgWarning('没有可导出的数据');
|
||||
return;
|
||||
}
|
||||
// 显示加载提示
|
||||
const list = updateDynamicColumns(res.rows);
|
||||
loading.value = true;
|
||||
// 使用 setTimeout 让出主线程,避免阻塞UI
|
||||
setTimeout(() => {
|
||||
try {
|
||||
const columns: ColumnConfig[] = [
|
||||
{ label: '序号', prop: 'serialNumber' },
|
||||
{ label: '区域', prop: 'area' },
|
||||
{ label: '房号', prop: 'houseNo' },
|
||||
{ label: '客户', prop: 'customerName' },
|
||||
{ label: '联系方式', prop: 'phone' },
|
||||
{ label: '欠费月数', prop: 'arrearsMonths' },
|
||||
{ label: '应收账期', prop: 'billPeriod' },
|
||||
{
|
||||
label: '欠费项目',
|
||||
children: [
|
||||
...list.map((item) => {
|
||||
return { label: item, prop: `chargeItemAmounts.${item}` };
|
||||
})
|
||||
]
|
||||
}
|
||||
];
|
||||
const mergeSpanMethod2 = ({ columnIndex, rowIndex }) => {
|
||||
if (rowIndex === reportAllList.length - 1) {
|
||||
const rowspan = 6;
|
||||
if (columnIndex === 0) {
|
||||
return { rowspan: 1, colspan: 1 };
|
||||
}
|
||||
if (columnIndex === 1) {
|
||||
return { rowspan: 1, colspan: rowspan };
|
||||
}
|
||||
if (columnIndex < rowspan + 1) {
|
||||
return { rowspan: 0, colspan: 0 };
|
||||
}
|
||||
}
|
||||
// 普通行不合并
|
||||
return { rowspan: 1, colspan: 1 };
|
||||
};
|
||||
exportToExcel(reportAllList, columns, `应收欠费明细表_${new Date().getTime()}`, mergeSpanMethod2);
|
||||
} catch (error) {
|
||||
proxy?.$modal.msgError('导出失败,请重试');
|
||||
console.error('导出错误:', error);
|
||||
} finally {
|
||||
loading.value = false;
|
||||
}
|
||||
}, 100);
|
||||
})
|
||||
.finally(() => {
|
||||
loading.value = false;
|
||||
});
|
||||
};
|
||||
|
||||
const mergeSpanMethod = ({ columnIndex, rowIndex }) => {
|
||||
if (rowIndex === ArrearsDetailList.value.length - 1) {
|
||||
const rowspan = 6;
|
||||
|
||||
Reference in New Issue
Block a user