From 2adda5537ed677cb5b3a5a0ff434f2da92e87bf3 Mon Sep 17 00:00:00 2001 From: pyt <626651354@qq.com> Date: 星期一, 24 三月 2025 16:36:09 +0800 Subject: [PATCH] Merge branch 'main' of http://120.76.84.145:10101/gitblit/r/H5/chongzhouResettle --- src/views/placement-batch/person.vue | 239 +++++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 207 insertions(+), 32 deletions(-) diff --git a/src/views/placement-batch/person.vue b/src/views/placement-batch/person.vue index 46a3f29..4c5cb7c 100644 --- a/src/views/placement-batch/person.vue +++ b/src/views/placement-batch/person.vue @@ -62,7 +62,7 @@ <!-- 功能按钮区域 --> <div class="button-container"> - <el-button type="primary" size="small" @click="handleExport">新增安置户记录</el-button> + <el-button type="primary" size="small" @click="handleAdd">新增安置户记录</el-button> <el-button type="success" size="small" @click="handleDownloadTemplate">下载导入模板</el-button> <el-button type="primary" size="small" @click="handleImport">批量导入</el-button> <el-button type="danger" size="small" @click="handleExportSelected">问题数据导出</el-button> @@ -84,7 +84,14 @@ </el-tooltip></span> </template> </el-table-column> - <el-table-column prop="idCard" label="身份证号" min-width="180" align="center" /> + <el-table-column prop="idCard" label="身份证号" min-width="180" align="center"> + <template slot-scope="scope"> + {{ scope.row.idCard || '-' }} <el-tooltip v-if="scope.row.idCardWarn == 1" class="item" effect="dark" + content="身份信息不存在于待安置人员库" placement="top"> + <i class="el-icon-warning-outline"></i> + </el-tooltip> + </template> + </el-table-column> <el-table-column prop="resettledNum" label="应安置人数(人)" min-width="140" align="center" /> <el-table-column label="所有家庭人员应安置面积(㎡)" prop="resettledArea" min-width="160" align="center"> <template slot-scope="scope"> @@ -97,15 +104,22 @@ <el-table-column label="补偿单位标准(万元)" min-width="160" align="center"> <el-table-column prop="priceNewAmount" label="新建商品住房、商业用房、停车位" min-width="160" align="center"> <template slot-scope="scope"> - <span>{{ scope.row.priceNewAmount }} <el-tooltip v-if="scope.row.priceNewAmountWarn == 1" class="item" + <span>{{ scope.row.priceNewAmount }} <el-tooltip v-if="scope.row.priceAmountWarn == 1" class="item" effect="dark" content="补充标准数据异常" placement="top"> <i class="el-icon-warning-outline"></i> </el-tooltip></span> </template> </el-table-column> - <el-table-column prop="priceOldAmount" label="二手住房" min-width="150" align="center" /> + <el-table-column prop="priceOldAmount" label="二手住房" min-width="150" align="center"> + <template slot-scope="scope"> + <span>{{ scope.row.priceOldAmount }} <el-tooltip v-if="scope.row.twoPriceWarn == 1" class="item" + effect="dark" content="检测到多个购房情况请人工核对" placement="top"> + <i class="el-icon-warning-outline"></i> + </el-tooltip></span> + </template> + </el-table-column> </el-table-column> - <el-table-column prop="compensationAmount" label="补偿资金总额(万元)" min-width="160" align="center" > + <el-table-column prop="compensationAmount" label="补偿资金总额(万元)" min-width="160" align="center"> <template slot-scope="scope"> <span>{{ scope.row.compensationAmount }} <el-tooltip v-if="scope.row.compensationSumWarn == 1" class="item" effect="dark" content="补偿总金额数据异常" placement="top"> @@ -115,15 +129,22 @@ </el-table-column> <el-table-column prop="downPaymentAmount" label="25%首付款(㎡)" min-width="150" align="center" /> <el-table-column prop="quarterPayAmount" v-if="activeTab == 'fullReport'" label="每季度需支付款项(万元)" min-width="180" - align="center" > + align="center"> <template slot-scope="scope"> <span>{{ scope.row.quarterPayAmount }} <el-tooltip v-if="scope.row.quarterPayAmountWarn == 1" class="item" - effect="dark" content="季度款数据异常" placement="top"> + effect="dark" content="季度款金额数据异常" placement="top"> <i class="el-icon-warning-outline"></i> </el-tooltip></span> </template> </el-table-column> - <el-table-column prop="subsidyAmount" label="过渡补贴(万元)" min-width="180" align="center" /> + <el-table-column prop="subsidyAmount" label="过渡补贴(万元)" min-width="180" align="center"> + <template slot-scope="scope"> + <span>{{ scope.row.subsidyAmount }} <el-tooltip v-if="scope.row.subsidyAmount == 1" class="item" + effect="dark" content="过渡补贴金额数据异常" placement="top"> + <i class="el-icon-warning-outline"></i> + </el-tooltip></span> + </template> + </el-table-column> <el-table-column label="操作" prop="operation" fixed="right" width="180" align="center"> <template slot-scope="scope" v-if="activeTab == 'fullReport'"> <el-button type="text" size="small" @click="handleView(scope.row)">详情</el-button> @@ -134,8 +155,12 @@ </el-table> <!-- 分页区域 --> - <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" - @pagination="getList" /> + <div class="pagination-container"> + <el-pagination background @size-change="handleSizeChange" @current-change="handleCurrentChange" + :current-page="queryParams.pageNum" :page-sizes="[10, 20, 30, 40]" :page-size="queryParams.pageSize" + layout="total, sizes, prev, pager, next, jumper" :total="total"> + </el-pagination> + </div> </div> <div v-else> <!-- 购房信息表格 --> @@ -146,33 +171,103 @@ <el-table-column prop="community" label="所在村(社区)" min-width="100" align="center" /> <el-table-column prop="demolitionTime" label="拆迁时间" min-width="100" align="center" /> <el-table-column prop="householdHead" label="户主姓名" min-width="100" align="center"> - + <template slot-scope="scope"> + <span>{{ scope.row.householdHead }} <el-tooltip v-if="scope.row.householdHeadWarn == 1" class="item" + effect="dark" content="户主信息不存在于待安置人员库" placement="top"> + <i class="el-icon-warning-outline"></i> + </el-tooltip></span> + </template> </el-table-column> - <el-table-column prop="idCard" label="身份证号" min-width="180" align="center" /> - <el-table-column prop="mobile" label="联系电话" min-width="100" align="center" /> + <el-table-column prop="idCard" label="身份证号" min-width="180" align="center"> + <template slot-scope="scope"> + {{ scope.row.idCard || '-' }} <el-tooltip v-if="scope.row.idCardWarn == 1" class="item" effect="dark" + content="身份信息不存在于待安置人员库" placement="top"> + <i class="el-icon-warning-outline"></i> + </el-tooltip> + </template> + </el-table-column> + <el-table-column prop="mobile" label="联系电话" min-width="100" align="center"> + <template slot-scope="scope"> + {{ scope.row.mobile || '-' }} + </template> + </el-table-column> + <el-table-column label="本次安置人数(人)" min-width="100" align="center"> - <el-table-column prop="currentCollectiveNum" label="集体经济组织成员" min-width="100" align="center" /> + <el-table-column prop="currentCollectiveNum" label="集体经济组织成员" min-width="100" align="center"> + <template slot-scope="scope"> + {{ scope.row.currentCollectiveNum || '-' }} + </template> + </el-table-column> <el-table-column prop="currentNoCollectiveNum" label="非集体经济组织成员" min-width="100" align="center" /> <el-table-column prop="currentCount" label="合计" min-width="100" align="center" /> </el-table-column> - <el-table-column prop="waitFamilyNames" label="待安置家庭成员姓名" min-width="100" align="center" /> - <el-table-column prop="waitFamilyArea" label="待安置人员应安置面积合计(㎡)" min-width="100" align="center" /> + <el-table-column prop="waitFamilyNames" label="待安置家庭成员姓名" min-width="100" align="center"> + <template slot-scope="scope"> + {{ scope.row.waitFamilyNames || '-' }} <el-tooltip v-if="scope.row.waitFamilyNamesWarn == 1" class="item" + effect="dark" content="身份信息存在重复数据" placement="top"> + <i class="el-icon-warning-outline"></i> + </el-tooltip> + </template> + </el-table-column> + <el-table-column prop="waitFamilyArea" label="待安置人员应安置面积合计(㎡)" min-width="100" align="center"> + <template slot-scope="scope"> + <span>{{ scope.row.waitFamilyArea }} <el-tooltip v-if="scope.row.waitFamilyAreaWarn == 1" class="item" + effect="dark" content="应补偿面积数据异常" placement="top"> + <i class="el-icon-warning-outline"></i> + </el-tooltip></span> + </template> + </el-table-column> <el-table-column label="补偿金额(万元)" min-width="100" align="center"> - <el-table-column prop="compensationNewAmount" label="新建商品住房、商业用房、停车位" min-width="100" align="center" /> + <el-table-column prop="compensationNewAmount" label="新建商品住房、商业用房、停车位" min-width="100" align="center"> + <template slot-scope="scope"> + <span>{{ scope.row.compensationNewAmount }} <el-tooltip v-if="scope.row.compensationAmountWarn == 1" + class="item" effect="dark" content="检测到多个购房情况请人工核对" placement="top"> + <i class="el-icon-warning-outline"></i> + </el-tooltip></span> + </template> + </el-table-column> <el-table-column prop="compensationOldAmount" label="二手住房" min-width="100" align="center" /> - <el-table-column prop="compensationSum" label="合计" min-width="100" align="center" /> + <el-table-column prop="compensationSum" label="合计" min-width="100" align="center"> + <template slot-scope="scope"> + <span>{{ scope.row.compensationSum }} <el-tooltip v-if="scope.row.compensationSumWarn == 1" class="item" + effect="dark" content="补偿总金额数据异常" placement="top"> + <i class="el-icon-warning-outline"></i> + </el-tooltip></span> + </template> + </el-table-column> </el-table-column> <el-table-column prop="downPaymentAmount" label="25%首付款(万元)" min-width="100" align="center" /> <el-table-column prop="quarterPayAmount" v-if="activeTab == 'houseInfo'" label="每季度需支付款项(万元)" min-width="100" - align="center" /> - <el-table-column prop="subsidyAmount" label="过渡补贴(万元)" min-width="100" align="center" /> + align="center"> + <template slot-scope="scope"> + <span>{{ scope.row.quarterPayAmount }} <el-tooltip v-if="scope.row.quarterPayAmountWarn == 1" class="item" + effect="dark" content="季度款金额数据异常" placement="top"> + <i class="el-icon-warning-outline"></i> + </el-tooltip></span> + </template> + </el-table-column> + <el-table-column prop="subsidyAmount" label="过渡补贴(万元)" min-width="100" align="center"> + <template slot-scope="scope"> + <span>{{ scope.row.subsidyAmount }} <el-tooltip v-if="scope.row.subsidyAmount == 1" class="item" + effect="dark" content="过渡补贴金额数据异常" placement="top"> + <i class="el-icon-warning-outline"></i> + </el-tooltip></span> + </template> + </el-table-column> <el-table-column prop="remark" label="备注" min-width="100" align="center" /> <el-table-column prop="certificateTime" label="凭证发放时间" min-width="100" align="center" /> <el-table-column prop="buyTime" label="购房时间" min-width="100" align="center" /> <el-table-column prop="dealAmount" label="成交金额(万元)" min-width="100" align="center" /> <el-table-column label="新建商品住房" min-width="100" align="center"> <el-table-column prop="newHousingName" label="楼盘名称" min-width="100" align="center" /> - <el-table-column prop="newHousingArea" label="面积(㎡)" min-width="100" align="center" /> + <el-table-column prop="newHousingArea" label="面积(㎡)" min-width="100" align="center"> + <template slot-scope="scope"> + <span>{{ scope.row.newHousingArea }} <el-tooltip v-if="scope.row.areaWarn == 1" class="item" effect="dark" + content="面积数据异常" placement="top"> + <i class="el-icon-warning-outline"></i> + </el-tooltip></span> + </template> + </el-table-column> <el-table-column prop="newHousingNum" label="套数(套)" min-width="100" align="center" /> </el-table-column> <el-table-column label="二手住房" min-width="100" align="center"> @@ -208,25 +303,41 @@ </el-table-column> </el-table> - <!-- 分页区域 --> - <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" - @pagination="getHouseList" /> + <div class="pagination-container"> + <el-pagination background @size-change="handleSizeChange" @current-change="handleCurrentChange" + :current-page="queryParams.pageNum" :page-sizes="[10, 20, 30, 40]" :page-size="queryParams.pageSize" + layout="total, sizes, prev, pager, next, jumper" :total="total"> + </el-pagination> + </div> </div> + <!-- :title="activeTab == 'fullReport' ? '导入资金表' : '导入购房信息表'" --> + <export-money-applay @close="dialogVisible = false" :visible.sync="dialogVisible" + :batchNumber="detailData.batchNumber" @importPrice="importPrice" :type="activeTab == 'fullReport' ? 1 : 2" /> </div> </template> - <script> -import { getPlacementBatchDetail } from '@/api/placement-details' -import { downLoad,exportExcell } from '@/utils' +import { + getPlacementBatchDetail, + deletePlacementBatchMoney, + deletePlacementBatchHouse, + importPlacementBatch +} from '@/api/placement-details' +import ExportMoneyApplay from './components/exportMoneyApplay.vue' + +import { downLoad, exportExcell } from '@/utils' export default { name: 'PlacementPerson', - components: {}, + components: { + ExportMoneyApplay + }, data() { return { // 遮罩层 loading: false, // 选中数组 selectedRows: [], + // 弹窗 + dialogVisible: false, // 非单个禁用 single: true, // 非多个禁用 @@ -291,16 +402,41 @@ this.getList() }, tableRowClassName({ row, rowIndex }) { - if (row.householdHeadWarn == 1 || row.waitFamilyAreaWarn == 1 || row.compensationSumWarn == 1 || row.quarterPayAmountWarn == 1) { + if (row.compensationSumWarn == 1 || row.householdHeadWarn == 1 || row.idCardWarn == 1 || row.priceAmountWarn == 1 || row.quarterPayAmountWarn == 1 || row.subsidyAmountWarn == 1 || row.twoPriceWarn == 1 || row.waitFamilyAreaWarn == 1) { return 'warning-row' } return '' }, tableRowClassName1({ row, rowIndex }) { - if (row.areaWarn == 1 || row.compensationSumWarn == 1 || row.idCardWarn == 1 || row.waitFamilyNamesWarn == 1) { + if (row.areaWarn == 1 || row.compensationAmountWarn == 1 || row.compensationSumWarn == 1 || row.householdHeadWarn == 1 || row.idCardWarn == 1 || row.waitFamilyAreaWarn == 1 || row.waitFamilyNamesWarn == 1 || row.subsidyAmountWarn == 1 || row.quarterPayAmountWarn == 1) { return 'warning-row' } return '' + }, + importPrice(form) { + let formData = new FormData() + formData.append('assetFile', form.assetFile) + formData.append('householdFile', form.householdFile) + formData.append('batchNumber', form.batchNumber) + formData.append('id', this.$route.query.id) + importPlacementBatch(formData).then(res => { + if (res.code == 200) { + this.$message.success('导入成功') + this.dialogVisible = false + this.getList() + } + }) + }, + + /** 分页 */ + handleSizeChange(size) { + this.queryParams.pageSize = size + this.getList() + }, + /** 分页 */ + handleCurrentChange(page) { + this.queryParams.pageNum = page + this.getList() }, /** 重置按钮操作 */ handleReset() { @@ -337,6 +473,11 @@ /** 新增按钮操作 */ handleAdd() { // TODO: 实现新增逻辑 + if (this.activeTab == 'fullReport') { + this.$router.push('/placement/batch/addResettle?id=' + this.$route.query.id) + } else { + this.$router.push('/placement/batch/applayPerson?id=' + this.$route.query.id) + } }, /** 导出操作 */ handleExport() { @@ -350,27 +491,61 @@ /** 导入操作 */ handleImport() { // TODO: 实现导入逻辑 + this.dialogVisible = true }, /** 导出选中记录 */ handleExportSelected() { // TODO: 实现导出选中记录逻辑 - exportExcell(`/placement-batch/problem-export/${this.activeTab == 'fullReport' ? 1 : 2}`,{ + exportExcell(`${this.activeTab == 'fullReport' ? '资金问题数据' : '购房信息问题数据'}.xlsx`, { ...this.queryParams, placementBatchId: this.$route.query.id, type: this.activeTab == 'fullReport' ? 1 : 2 - }, `${this.activeTab == 'fullReport' ? '资金问题数据' : '购房信息问题数据'}.xlsx`) + }, `/placement-batch/problem-export`) }, /** 查看详情按钮操作 */ handleView(row) { // TODO: 实现查看详情逻辑 + if (this.activeTab == 'fullReport') { + this.$router.push('/placement/batch/resettleDetail?id=' + this.$route.query.id + '&type=detail' + '&moneyId=' + row.id) + } else { + this.$router.push('/placement/batch/applayPersonDetail?id=' + this.$route.query.id + '&type=detail' + '&houseId=' + row.id) + } }, /** 编辑按钮操作 */ handleEdit(row) { // TODO: 实现编辑逻辑 + if (this.activeTab == 'fullReport') { + this.$router.push('/placement/batch/editResettle?id=' + this.$route.query.id + '&type=edit' + '&moneyId=' + row.id) + } else { + this.$router.push('/placement/batch/editApplayPerson?id=' + this.$route.query.id + '&type=edit' + '&houseId=' + row.id) + } }, /** 删除按钮操作 */ handleDelete(row) { // TODO: 实现删除逻辑 + this.$confirm('确定删除该条资金记录吗?', '提示', { + confirmButtonText: '确定', + cancelButtonText: '取消', + type: 'warning' + }).then(() => { + if (this.activeTab == 'fullReport') { + deletePlacementBatchMoney({ id: row.id }).then(res => { + if (res.code == 200) { + this.$message.success('删除成功') + this.getList() + } + }) + } else { + deletePlacementBatchHouse({ id: row.id }).then(res => { + if (res.code == 200) { + this.$message.success('删除成功') + this.getList() + } + }) + } + }) + + }, /** 获取购房信息列表 */ getHouseList() { -- Gitblit v1.7.1