From 89946bea834a200b7edc9a8fbdbb12f48d7d152a Mon Sep 17 00:00:00 2001
From: pyt <626651354@qq.com>
Date: 星期五, 21 三月 2025 14:39:33 +0800
Subject: [PATCH] Merge branch 'main' of http://120.76.84.145:10101/gitblit/r/H5/chongzhouResettle
---
src/views/applicationBatchList/detail.vue | 319 ++++++++++++++++++++++++++++++----------------------
1 files changed, 184 insertions(+), 135 deletions(-)
diff --git a/src/views/applicationBatchList/detail.vue b/src/views/applicationBatchList/detail.vue
index 91dd586..4ba2081 100644
--- a/src/views/applicationBatchList/detail.vue
+++ b/src/views/applicationBatchList/detail.vue
@@ -1,5 +1,5 @@
<template>
- <div class="app-container">
+ <div class="app-container" v-loading="loading" element-loading-text="加载中...">
<!-- 头部信息卡片 -->
<div class="batch-info">
<div class="header">
@@ -75,171 +75,123 @@
<el-table-column prop="street" label="镇(街道)" align="center" width="80">
<template slot-scope="scope">
{{ scope.row.street }}
- <el-tooltip v-if="scope.row.errors && scope.row.errors.street" placement="top">
- <div slot="content">{{ scope.row.errors.street }}</div>
- <i class="el-icon-warning" style="color: #e6a23c; margin-left: 5px"></i>
- </el-tooltip>
</template>
</el-table-column>
<el-table-column prop="projectName" label="拆迁项目名称" align="center" width="150">
<template slot-scope="scope">
{{ scope.row.projectName }}
- <el-tooltip v-if="scope.row.errors && scope.row.errors.projectName" placement="top">
- <div slot="content">{{ scope.row.errors.projectName }}</div>
- <i class="el-icon-warning" style="color: #e6a23c; margin-left: 5px"></i>
- </el-tooltip>
</template>
</el-table-column>
<el-table-column prop="community" label="所在村(社区)" align="center" width="100">
<template slot-scope="scope">
{{ scope.row.community }}
- <el-tooltip v-if="scope.row.errors && scope.row.errors.community" placement="top">
- <div slot="content">{{ scope.row.errors.community }}</div>
- <i class="el-icon-warning" style="color: #e6a23c; margin-left: 5px"></i>
- </el-tooltip>
</template>
</el-table-column>
- <el-table-column prop="time" label="拆迁时间" align="center" width="100">
+ <el-table-column prop="demolitionTime" label="拆迁时间" align="center" width="100">
<template slot-scope="scope">
- {{ scope.row.time }}
- <el-tooltip v-if="scope.row.errors && scope.row.errors.time" placement="top">
- <div slot="content">{{ scope.row.errors.time }}</div>
- <i class="el-icon-warning" style="color: #e6a23c; margin-left: 5px"></i>
- </el-tooltip>
+ {{ scope.row.demolitionTime }}
</template>
</el-table-column>
- <el-table-column prop="headOrIdCard" label="产主姓名" align="center" width="80">
+ <el-table-column prop="householdHead" label="户主名称" align="center" width="80">
<template slot-scope="scope">
- {{ scope.row.headOrIdCard }}
- <el-tooltip v-if="scope.row.errors && scope.row.errors.headOrIdCard" placement="top">
- <div slot="content">{{ scope.row.errors.headOrIdCard }}</div>
- <i class="el-icon-warning" style="color: #e6a23c; margin-left: 5px"></i>
- </el-tooltip>
+ {{ scope.row.householdHead }}
</template>
</el-table-column>
<el-table-column prop="idCard" label="身份证号" align="center" width="180">
<template slot-scope="scope">
{{ scope.row.idCard }}
- <el-tooltip v-if="scope.row.errors && scope.row.errors.idCard" placement="top">
- <div slot="content">{{ scope.row.errors.idCard }}</div>
+ <el-tooltip v-if="scope.row.idCardExistsWarn == 1" placement="top">
+ <div slot="content">{{ "身份证不在安置库" }}</div>
+ <i class="el-icon-warning" style="color: #e6a23c; margin-left: 5px"></i>
+ </el-tooltip>
+ <el-tooltip v-if="scope.row.idCardNoWarn == 1" placement="top">
+ <div slot="content">{{ "身份证重复" }}</div>
<i class="el-icon-warning" style="color: #e6a23c; margin-left: 5px"></i>
</el-tooltip>
</template>
</el-table-column>
- <el-table-column prop="contact" label="联系电话" align="center" width="120">
+ <el-table-column prop="mobile" label="联系电话" align="center" width="120">
<template slot-scope="scope">
- {{ scope.row.contact }}
- <el-tooltip v-if="scope.row.errors && scope.row.errors.contact" placement="top">
- <div slot="content">{{ scope.row.errors.contact }}</div>
+ {{ scope.row.mobile }}
+ </template>
+ </el-table-column>
+ <el-table-column label="本次安置人数(人)" align="center">
+ <el-table-column prop="currentCollectiveNum" label="集体经济组织成员" align="center" width="120">
+ <template slot-scope="scope">
+ {{ scope.row.currentCollectiveNum }}
+ </template>
+ </el-table-column>
+ <el-table-column prop="currentNoCollectiveNum" label="非集体经济组织成员" align="center" width="120">
+ <template slot-scope="scope">
+ {{ scope.row.currentNoCollectiveNum }}
+ </template>
+ </el-table-column>
+ <el-table-column prop="currentCount" label="合计" align="center" width="60">
+ <template slot-scope="scope">
+ {{ scope.row.currentCount }}
+ </template>
+ </el-table-column>
+ </el-table-column>
+ <el-table-column prop="waitFamilyNames" label="待安置家庭成员姓名" align="center" width="120">
+ <template slot-scope="scope">
+ {{ scope.row.waitFamilyNames }}
+ <el-tooltip v-if="scope.row.waitFamilyNamesWarn" placement="top">
+ <div slot="content">{{ scope.row.waitFamilyNamesWarn }}</div>
<i class="el-icon-warning" style="color: #e6a23c; margin-left: 5px"></i>
</el-tooltip>
</template>
</el-table-column>
- <el-table-column label="家庭安置人数(人)" align="center">
- <el-table-column prop="resettlementPeople" label="集体经济组织成员" align="center" width="120">
- <template slot-scope="scope">
- {{ scope.row.resettlementPeople }}
- <el-tooltip v-if="scope.row.errors && scope.row.errors.resettlementPeople" placement="top">
- <div slot="content">
- {{ scope.row.errors.resettlementPeople }}
- </div>
- <i class="el-icon-warning" style="color: #e6a23c; margin-left: 5px"></i>
- </el-tooltip>
- </template>
- </el-table-column>
- <el-table-column prop="additionalPeople" label="非集体经济组织成员" align="center" width="120">
- <template slot-scope="scope">
- {{ scope.row.additionalPeople }}
- <el-tooltip v-if="scope.row.errors && scope.row.errors.additionalPeople" placement="top">
- <div slot="content">
- {{ scope.row.errors.additionalPeople }}
- </div>
- <i class="el-icon-warning" style="color: #e6a23c; margin-left: 5px"></i>
- </el-tooltip>
- </template>
- </el-table-column>
- <el-table-column prop="totalPeople" label="合计" align="center" width="60">
- <template slot-scope="scope">
- {{ scope.row.totalPeople }}
- <el-tooltip v-if="scope.row.errors && scope.row.errors.totalPeople" placement="top">
- <div slot="content">{{ scope.row.errors.totalPeople }}</div>
- <i class="el-icon-warning" style="color: #e6a23c; margin-left: 5px"></i>
- </el-tooltip>
- </template>
- </el-table-column>
- </el-table-column>
- <el-table-column prop="houseName" label="待安置家庭成员姓名" align="center" width="120">
+ <el-table-column prop="waitFamilyArea" label="待安置人员应安置面积合计(㎡)" align="center" width="120">
<template slot-scope="scope">
- {{ scope.row.houseName }}
- <el-tooltip v-if="scope.row.errors && scope.row.errors.houseName" placement="top">
- <div slot="content">{{ scope.row.errors.houseName }}</div>
- <i class="el-icon-warning" style="color: #e6a23c; margin-left: 5px"></i>
- </el-tooltip>
- </template>
- </el-table-column>
- <el-table-column prop="area" label="待安置人员应安置面积合计(㎡)" align="center" width="120">
- <template slot-scope="scope">
- {{ scope.row.area }}
- <el-tooltip v-if="scope.row.errors && scope.row.errors.area" placement="top">
- <div slot="content">{{ scope.row.errors.area }}</div>
+ {{ scope.row.waitFamilyArea }}
+ <el-tooltip v-if="scope.row.waitFamilyAreaWarn" placement="top">
+ <div slot="content">{{ scope.row.waitFamilyAreaWarn }}</div>
<i class="el-icon-warning" style="color: #e6a23c; margin-left: 5px"></i>
</el-tooltip>
</template>
</el-table-column>
<el-table-column label="补偿金额(万元)" align="center">
- <el-table-column prop="firstPayment" label="新建商品住房、商业用房、停车位" align="center" width="100">
+ <el-table-column prop="compensationNewAmount" label="新建商品住房、商业用房、停车位" align="center" width="100">
<template slot-scope="scope">
- {{ scope.row.firstPayment }}
- <el-tooltip v-if="scope.row.errors && scope.row.errors.firstPayment" placement="top">
- <div slot="content">{{ scope.row.errors.firstPayment }}</div>
- <i class="el-icon-warning" style="color: #e6a23c; margin-left: 5px"></i>
- </el-tooltip>
+ {{ scope.row.compensationNewAmount }}
</template>
</el-table-column>
- <el-table-column prop="secondPayment" label="二手住房" align="center" width="80">
+ <el-table-column prop="compensationOldAmount" label="二手住房" align="center" width="80">
<template slot-scope="scope">
- {{ scope.row.secondPayment }}
- <el-tooltip v-if="scope.row.errors && scope.row.errors.secondPayment" placement="top">
- <div slot="content">{{ scope.row.errors.secondPayment }}</div>
- <i class="el-icon-warning" style="color: #e6a23c; margin-left: 5px"></i>
- </el-tooltip>
+ {{ scope.row.compensationOldAmount }}
</template>
</el-table-column>
- <el-table-column prop="totalPayment" label="合计" align="center" width="60">
+ <el-table-column prop="compensationSum" label="合计" align="center" width="60">
<template slot-scope="scope">
- {{ scope.row.totalPayment }}
- <el-tooltip v-if="scope.row.errors && scope.row.errors.totalPayment" placement="top">
- <div slot="content">{{ scope.row.errors.totalPayment }}</div>
+ {{ scope.row.compensationSum }}
+ <el-tooltip v-if="scope.row.compensationSumWarn" placement="top">
+ <div slot="content">{{ scope.row.compensationSumWarn }}</div>
<i class="el-icon-warning" style="color: #e6a23c; margin-left: 5px"></i>
</el-tooltip>
</template>
</el-table-column>
</el-table-column>
- <el-table-column prop="monthlyPayment" label="25%首付款(万元)" align="center" width="130">
+ <el-table-column prop="downPaymentAmount" label="25%首付款(万元)" align="center" width="130">
<template slot-scope="scope">
- {{ scope.row.monthlyPayment }}
- <el-tooltip v-if="scope.row.errors && scope.row.errors.monthlyPayment" placement="top">
- <div slot="content">{{ scope.row.errors.monthlyPayment }}</div>
- <i class="el-icon-warning" style="color: #e6a23c; margin-left: 5px"></i>
- </el-tooltip>
+ {{ scope.row.downPaymentAmount }}
</template>
</el-table-column>
- <el-table-column prop="remainingPayment" label="每季度需支付款项(万元)" align="center" width="120">
+ <el-table-column prop="quarterPayAmount" label="每季度需支付款项(万元)" align="center" width="120">
<template slot-scope="scope">
- {{ scope.row.remainingPayment }}
- <el-tooltip v-if="scope.row.errors && scope.row.errors.remainingPayment" placement="top">
+ {{ scope.row.quarterPayAmount }}
+ <el-tooltip v-if="scope.row.quarterPayAmountWarn" placement="top">
<div slot="content">
- {{ scope.row.errors.remainingPayment }}
+ {{ scope.row.quarterPayAmountWarn }}
</div>
<i class="el-icon-warning" style="color: #e6a23c; margin-left: 5px"></i>
</el-tooltip>
</template>
</el-table-column>
- <el-table-column prop="totalPaid" label="过渡补贴(万元)" align="center" width="60">
+ <el-table-column prop="subsidyAmount" label="过渡补贴(万元)" align="center" width="60">
<template slot-scope="scope">
- {{ scope.row.totalPaid }}
- <el-tooltip v-if="scope.row.errors && scope.row.errors.totalPaid" placement="top">
- <div slot="content">{{ scope.row.errors.totalPaid }}</div>
+ {{ scope.row.subsidyAmount }}
+ <el-tooltip v-if="scope.row.subsidyAmountWarn" placement="top">
+ <div slot="content">{{ scope.row.subsidyAmountWarn }}</div>
<i class="el-icon-warning" style="color: #e6a23c; margin-left: 5px"></i>
</el-tooltip>
</template>
@@ -247,25 +199,17 @@
<el-table-column prop="remark" label="备注" align="center" width="60">
<template slot-scope="scope">
{{ scope.row.remark }}
- <el-tooltip v-if="scope.row.errors && scope.row.errors.remark" placement="top">
- <div slot="content">{{ scope.row.errors.remark }}</div>
- <i class="el-icon-warning" style="color: #e6a23c; margin-left: 5px"></i>
- </el-tooltip>
</template>
</el-table-column>
- <el-table-column prop="difference" label="购房差异情况" align="center" width="60">
+ <el-table-column prop="situation" label="购房差异情况" align="center" width="60">
<template slot-scope="scope">
- {{ scope.row.difference }}
- <el-tooltip v-if="scope.row.errors && scope.row.errors.difference" placement="top">
- <div slot="content">{{ scope.row.errors.difference }}</div>
- <i class="el-icon-warning" style="color: #e6a23c; margin-left: 5px"></i>
- </el-tooltip>
+ {{ scope.row.situation }}
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="150" fixed="right">
<template slot-scope="scope">
<el-button size="mini" type="text" @click="handleHouseholdDetail(scope.row)">详情</el-button>
- <template v-if="status === '待审核'">
+ <template v-if="batchInfo.status == '0'">
<el-button size="mini" type="text" @click="handleHouseholdEdit(scope.row)">编辑</el-button>
<el-button size="mini" type="text" @click="handleHouseholdDelete(scope.row)">删除</el-button>
</template>
@@ -279,13 +223,31 @@
:current-page="queryParams.pageNum" :page-sizes="[10, 20, 30, 50]" :page-size="queryParams.pageSize"
layout="total, sizes, prev, pager, next, jumper" :total="total" />
</div>
+
+ <!-- 上传组件 -->
+ <upload-dialog ref="uploadDialog" :info="batchInfo" :visible.sync="uploadDialogVisible"
+ @success="handleUploadSuccess" />
+
+ <!-- 详情弹窗 -->
+ <DetailDialog
+ :visible.sync="detailDialogVisible"
+ :id="currentId"
+ />
</div>
</template>
<script>
-import { geDetailTabletList } from "@/api/application-batch";
+import { geDetailTabletList,delDetail } from "@/api/application-batch";
+import { downLoad, exportExcell } from "@/utils";
+import UploadDialog from "./components/UploadDialog.vue";
+import DetailDialog from './components/DetailDialog.vue'
+
export default {
name: "ApplicationBatchDetail",
+ components: {
+ UploadDialog,
+ DetailDialog
+ },
data() {
return {
batchInfo: {
@@ -304,6 +266,8 @@
},
// 加载状态
loading: false,
+ // 上传组件
+ uploadDialogVisible: false,
// 总条数
total: 0,
// 表格数据
@@ -317,6 +281,10 @@
community: undefined,
headOrIdCard: undefined,
},
+ // 详情弹窗
+ detailDialogVisible: false,
+ // 当前记录的ID
+ currentId: "",
};
},
created() {
@@ -332,20 +300,20 @@
/** 查询列表 */
getList() {
this.loading = true;
- // 这里添加实际的API调用获取数据
- setTimeout(() => {
- this.loading = false;
- geDetailTabletList({
- ...this.queryParams,
- applyId: this.batchInfo.id,
- }).then((res) => {
+ geDetailTabletList({
+ ...this.queryParams,
+ applyId: this.batchInfo.id,
+ })
+ .then((res) => {
this.tableData = res.data.records;
this.total = res.data.total;
this.batchInfo = {
...res.data.placementApply,
};
+ })
+ .finally(() => {
+ this.loading = false;
});
- }, 500);
},
/** 搜索按钮操作 */
handleQuery() {
@@ -371,32 +339,75 @@
/** 新增安置户信息 */
handleAddHousehold() {
// 实现新增安置户逻辑
+ this.$router.push({
+ path: "/applicationBatchList/detailInfo",
+ query: {
+ parentId: this.batchInfo.id,
+ type: "add",
+ },
+ });
},
/** 下载导入模板 */
handleDownloadTemplate() {
// 实现下载模板逻辑
+ downLoad("/placement-apply/download-template", "安置申请表.xlsx");
},
/** 批量导入 */
handleBatchImport() {
// 实现批量导入逻辑
+ this.uploadDialogVisible = true;
},
/** 全部导出 */
- handleExportAll() {
- // 实现全部导出逻辑
- this.$message.success("全部数据导出成功");
+ async handleExportAll() {
+ // 实现全部导出逻辑 /api/placement-apply/problem-export
+ let res = await exportExcell(
+ "安置数据表.xlsx",
+ {...this.queryParams,applyId:this.batchInfo.id},
+ "/placement-apply/exports"
+ );
+ if (res) {
+ this.$message.success("全部数据导出成功");
+ }
},
/** 问题数据导出 */
- handleExportIssueData() {
+ async handleExportIssueData() {
// 实现问题数据导出逻辑
- this.$message.success("问题数据导出成功");
+ let res = await exportExcell(
+ "安置数据表.xlsx",
+ {...this.queryParams,applyId:this.batchInfo.id},
+ "/placement-apply/problem-export"
+ );
+ if (res) {
+ this.$message.success("问题数据导出成功");
+ }
},
/** 安置户详情 */
handleHouseholdDetail(row) {
- // 实现安置户详情查看逻辑
+ if(this.batchInfo.status == '0'){
+ this.$router.push({
+ path: "/applicationBatchList/detailInfo",
+ query: {
+ parentId: this.batchInfo.id,
+ type: "detail",
+ id: row.id,
+ },
+ });
+ }else{
+ this.currentId = row.id;
+ this.detailDialogVisible = true;
+ }
},
/** 安置户编辑 */
handleHouseholdEdit(row) {
// 实现安置户编辑逻辑
+ this.$router.push({
+ path: "/applicationBatchList/detailInfo",
+ query: {
+ parentId: this.batchInfo.id,
+ type: "edit",
+ id: row.id,
+ },
+ });
},
/** 安置户删除 */
handleHouseholdDelete(row) {
@@ -407,8 +418,12 @@
})
.then(() => {
// 实现删除逻辑
- this.$message.success("删除成功");
- this.getList();
+ delDetail({id:row.id}).then(res=>{
+ if(res){
+ this.$message.success("删除成功");
+ this.getList();
+ }
+ })
})
.catch(() => { });
},
@@ -421,6 +436,23 @@
handleCurrentChange(val) {
this.queryParams.pageNum = val;
this.getList();
+ },
+ /** 设置行的className */
+ tableRowClassName({ row }) {
+ console.log(row, "11111111111");
+ if (row.compensationAmountWarn === 1) {
+ return "warning-row";
+ }
+ return "";
+ },
+ /** 上传成功 */
+ handleUploadSuccess() {
+ this.uploadDialogVisible = false;
+ this.getList();
+ this.$message({
+ type: "success",
+ message: "导入成功!",
+ });
},
},
};
@@ -486,4 +518,21 @@
margin-top: 15px;
text-align: right;
}
+
+::v-deep .warning-row {
+ background-color: #faa2a2 !important;
+}
+
+/* ::v-deep .warning-row:hover > td {
+ background-color: #faa2a2 !important;
+}
+
+::v-deep .warning-row .el-button--text {
+ color: #000 !important;
+}
+
+::v-deep .warning-row .el-button--text:hover {
+ color: #000 !important;
+ background-color: #faa2a2 !important;
+} */
</style>
\ No newline at end of file
--
Gitblit v1.7.1