13404089107
2025-04-09 ba5032bad92857bb61e4c31268a96fd0023e45ee
4-9新增
14个文件已修改
587 ■■■■ 已修改文件
.env.development 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.env.production 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.env.staging 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
package.json 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/application-batch.js 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/placement-details.js 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/request.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/applicationBatchList/detail.vue 387 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/login.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/placement-batch/components/ApprovalDialog.vue 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/placement-batch/person.vue 80 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/relocatablePersonnel/detail.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/relocatablePersonnel/index.vue 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
vue.config.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
.env.development
@@ -1,10 +1,10 @@
# 页面标题
VUE_APP_TITLE = 崇州自主安置管理后台
VUE_APP_TITLE = 自主购房智能审核管理系统
# 开发环境配置
ENV = 'development'
# 崇州自主安置管理后台/开发环境
# 自主购房智能审核管理系统/开发环境
VUE_APP_BASE_API = 'http://182.140.209.168:8888/api'
# http://182.140.209.168:8888/api/
.env.production
@@ -1,8 +1,8 @@
# 页面标题
VUE_APP_TITLE = 崇州自主安置管理后台
VUE_APP_TITLE = 自主购房智能审核管理系统
# 生产环境配置
ENV = 'production'
# 崇州自主安置管理后台/生产环境
# 自主购房智能审核管理系统/生产环境
VUE_APP_BASE_API = 'http://182.140.209.168:8888/api'
.env.staging
@@ -1,5 +1,5 @@
# 页面标题
VUE_APP_TITLE = 崇州自主安置管理后台
VUE_APP_TITLE = 自主购房智能审核管理系统
BABEL_ENV = production
@@ -8,5 +8,5 @@
# 测试环境配置
ENV = 'staging'
# 崇州自主安置管理后台/测试环境
# 自主购房智能审核管理系统/测试环境
VUE_APP_BASE_API = '/stage-api'
package.json
@@ -1,8 +1,8 @@
{
  "name": "ruoyi",
  "version": "3.8.9",
  "description": "崇州自主安置管理后台",
  "author": "崇州自主安置管理后台",
  "description": "自主购房智能审核管理系统",
  "author": "自主购房智能审核管理系统",
  "license": "MIT",
  "scripts": {
    "dev": "vue-cli-service serve",
src/api/application-batch.js
@@ -84,3 +84,21 @@
    // data
  })
}
//自动审核
export function autoApprove(data) {
  return request({
    url: '/placement-apply/data-approve',
    method: 'post',
    data
  })
}
//数据已核对
export function dataCheck(data) {
  return request({
    url: '/placement-apply/record-check',
    method: 'post',
    data
  })
}
src/api/placement-details.js
@@ -116,3 +116,31 @@
      data
    })
  }
  //安置批次自动纠错
  export function autoCorrectPlacementBatch(data) {
    return request({
      url: '/placement-batch/data-approve',
      method: 'post',
      data
    })
  }
  // 安置批次资金数据核对
  export function checkPlacementBatchMoney(data) {
    return request({
      url: '/placement-batch/asset-check',
      method: 'post',
      data
    })
  }
    // 安置批次购房数据核对
  export function checkPlacementBatchHouse(data) {
    return request({
      url: '/placement-batch/household-check',
      method: 'post',
      data
    })
  }
src/utils/request.js
@@ -17,7 +17,7 @@
  // axios中请求配置有baseURL选项,表示请求URL公共部分
  baseURL: process.env.VUE_APP_BASE_API,
  // 超时
  timeout: 10000
  timeout: 1500000
})
// request拦截器
src/views/applicationBatchList/detail.vue
@@ -1,21 +1,11 @@
<template>
  <div
    class="app-container"
    v-loading="loading"
    element-loading-text="加载中..."
  >
  <div class="app-container" v-loading="loading" element-loading-text="加载中...">
    <!-- 头部信息卡片 -->
    <div class="batch-info">
      <div class="header">
        <div class="batch-title">批次号:{{ batchInfo.batchNumber }}</div>
        <div class="back-btn">
          <el-button
            type="primary"
            size="small"
            icon="el-icon-back"
            @click="goBack"
            >返回</el-button
          >
          <el-button type="primary" size="small" icon="el-icon-back" @click="goBack">返回</el-button>
        </div>
      </div>
      <div class="info-cards">
@@ -37,365 +27,207 @@
    <!-- 搜索表单 -->
    <el-form :inline="true" :model="queryParams" class="search-form">
      <el-form-item label="镇街">
        <el-select
          v-model="queryParams.street"
          placeholder="请选择镇街"
          clearable
          filterable
          size="small"
        >
          <el-option
            v-for="item in streetOptions"
            :key="item.dictCode"
            :label="item.dictLabel"
            :value="item.dictLabel"
          />
        <el-select v-model="queryParams.street" placeholder="请选择镇街" clearable filterable size="small">
          <el-option v-for="item in streetOptions" :key="item.dictCode" :label="item.dictLabel"
            :value="item.dictLabel" />
        </el-select>
      </el-form-item>
      <el-form-item label="拆迁项目">
        <el-input
          v-model="queryParams.projectName"
          placeholder="请输入"
          clearable
          size="small"
        />
        <el-input v-model="queryParams.projectName" placeholder="请输入" clearable size="small" />
      </el-form-item>
      <el-form-item label="所在村(社区)">
        <el-input
          v-model="queryParams.community"
          placeholder="请输入"
          clearable
          size="small"
        />
        <el-input v-model="queryParams.community" placeholder="请输入" clearable size="small" />
      </el-form-item>
      <el-form-item label="户主姓名/身份证号">
        <el-input
          v-model="queryParams.headOrIdCard"
          placeholder="请输入"
          clearable
          size="small"
        />
        <el-input v-model="queryParams.headOrIdCard" placeholder="请输入" clearable size="small" />
      </el-form-item>
      <el-form-item>
        <el-button
          type="primary"
          icon="el-icon-search"
          size="small"
          @click="handleQuery"
          >查询</el-button
        >
        <el-button icon="el-icon-refresh" size="small" @click="resetQuery"
          >重置</el-button
        >
        <el-button type="primary" icon="el-icon-search" size="small" @click="handleQuery">查询</el-button>
        <el-button icon="el-icon-refresh" size="small" @click="resetQuery">重置</el-button>
      </el-form-item>
    </el-form>
    <!-- 操作按钮区域 -->
    <el-row :gutter="10" class="mb8" v-if="batchInfo.status == '0'">
      <el-col :span="1.5">
        <el-button type="primary" size="small" @click="handleAddHousehold"
          >新增安置户信息</el-button
        >
        <el-button type="primary" size="small" @click="handleAddHousehold">新增安置户信息</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button type="success" size="small" @click="handleDownloadTemplate"
          >下载导入模板</el-button
        >
        <el-button type="success" size="small" @click="handleDownloadTemplate">下载导入模板</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button type="warning" size="small" @click="handleBatchImport"
          >批量导入</el-button
        >
        <el-button type="warning" size="small" @click="handleBatchImport">批量导入</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button type="danger" size="small" @click="handleExportIssueData"
          >问题数据导出</el-button
        >
        <el-button type="danger" size="small" @click="handleExportIssueData">问题数据导出</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button type="primary" size="small" @click="autoAudit">自动纠错</el-button>
      </el-col>
    </el-row>
    <el-row :gutter="10" class="mb8" v-else>
      <el-col :span="1.5">
        <el-button type="primary" size="small" @click="handleExportAll"
          >全部导出为Excel</el-button
        >
        <el-button type="primary" size="small" @click="handleExportAll">全部导出为Excel</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button type="danger" size="small" @click="handleExportIssueData"
          >问题数据导出</el-button
        >
        <el-button type="danger" size="small" @click="handleExportIssueData">问题数据导出</el-button>
      </el-col>
    </el-row>
    <!-- 表格区域 -->
    <el-table
      :data="tableData"
      border
      style="width: 100%"
      :row-class-name="tableRowClassName"
    >
    <el-table :data="tableData" border style="width: 100%" :row-class-name="tableRowClassName">
      <el-table-column type="index" label="序号" width="50" align="center" />
      <el-table-column
        prop="street"
        label="镇(街道)"
        align="center"
        width="80"
      >
      <el-table-column prop="street" label="镇(街道)" align="center" width="80">
        <template slot-scope="scope">
          {{ scope.row.street }}
        </template>
      </el-table-column>
      <el-table-column
        prop="projectName"
        label="拆迁项目名称"
        align="center"
        width="150"
      >
      <el-table-column prop="projectName" label="拆迁项目名称" align="center" width="150">
        <template slot-scope="scope">
          {{ scope.row.projectName }}
        </template>
      </el-table-column>
      <el-table-column
        prop="community"
        label="所在村(社区)"
        align="center"
        width="100"
      >
      <el-table-column prop="community" label="所在村(社区)" align="center" width="100">
        <template slot-scope="scope">
          {{ scope.row.community }}
        </template>
      </el-table-column>
      <el-table-column
        prop="demolitionTime"
        label="拆迁时间"
        align="center"
        width="100"
      >
      <el-table-column prop="demolitionTime" label="拆迁时间" align="center" width="100">
        <template slot-scope="scope">
          {{ scope.row.demolitionTime }}
        </template>
      </el-table-column>
      <el-table-column
        prop="householdHead"
        label="户主名称"
        align="center"
        width="80"
      >
      <el-table-column prop="householdHead" label="户主名称" align="center" width="80">
        <template slot-scope="scope">
          {{ scope.row.householdHead }}
        </template>
      </el-table-column>
      <el-table-column
        prop="idCard"
        label="身份证号"
        align="center"
        width="180"
      >
      <el-table-column prop="idCard" label="身份证号" align="center" width="180">
        <template slot-scope="scope">
          {{ scope.row.idCard }}
          <el-tooltip v-if="scope.row.idCardExistsWarn == 1" placement="top">
            <div slot="content">{{ "身份证不在安置库" }}</div>
            <el-image
                style="width: 12px; height: 12px;margin-left:5px"
                :src="require('../../assets/logo/warning.png')"
                :fit="fit"
              ></el-image>
            <el-image style="width: 12px; height: 12px;margin-left:5px" :src="require('../../assets/logo/warning.png')"
              fit="fit"></el-image>
          </el-tooltip>
          <el-tooltip v-if="scope.row.idCardNoWarn == 1" placement="top">
            <div slot="content">{{ "身份证重复" }}</div>
            <el-image
                style="width: 12px; height: 12px;margin-left:5px"
                :src="require('../../assets/logo/warning.png')"
                :fit="fit"
              ></el-image>
            <el-image style="width: 12px; height: 12px;margin-left:5px" :src="require('../../assets/logo/warning.png')"
              fit="fit"></el-image>
          </el-tooltip>
        </template>
      </el-table-column>
      <el-table-column
        prop="mobile"
        label="联系电话"
        align="center"
        width="120"
      >
      <el-table-column prop="mobile" label="联系电话" align="center" width="120">
        <template slot-scope="scope">
          {{ scope.row.mobile }}
        </template>
      </el-table-column>
      <el-table-column label="本次安置人数(人)" align="center">
        <el-table-column
          prop="currentCollectiveNum"
          label="集体经济组织成员"
          align="center"
          width="120"
        >
        <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"
        >
        <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"
        >
        <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"
      >
      <el-table-column prop="waitFamilyNames" label="待安置家庭成员姓名" align="center" width="120">
        <template slot-scope="scope">
          {{ scope.row.waitFamilyNames }}
          <el-tooltip v-if="scope.row.waitFamilyNamesWarn == 1" placement="top">
            <div slot="content">{{ "身份信息存在重复数据" }}</div>
            <el-image
                style="width: 12px; height: 12px;margin-left:5px"
                :src="require('../../assets/logo/warning.png')"
                :fit="fit"
              ></el-image>
            <el-image style="width: 12px; height: 12px;margin-left:5px" :src="require('../../assets/logo/warning.png')"
              fit="fit"></el-image>
          </el-tooltip>
        </template>
      </el-table-column>
      <el-table-column
        prop="waitFamilyArea"
        label="待安置人员应安置面积合计(㎡)"
        align="center"
        width="120"
      >
      <el-table-column prop="orgArea" label="集体成员面积" align="center" width="150">
        <template slot-scope="scope">
          {{ scope.row.orgArea }}
        </template>
      </el-table-column>
      <el-table-column prop="noOrgArea" label="非集体成员面积" align="center" width="150">
        <template slot-scope="scope">
          {{ scope.row.noOrgArea }}
        </template>
      </el-table-column>
      <el-table-column prop="waitFamilyArea" label="待安置人员应安置面积合计(㎡)" align="center" width="120">
        <template slot-scope="scope">
          {{ scope.row.waitFamilyArea }}
          <el-tooltip v-if="scope.row.waitFamilyAreaWarn == 1" placement="top">
            <div slot="content">{{ "应补偿面积数据异常" }}</div>
            <el-image
                style="width: 12px; height: 12px;margin-left:5px"
                :src="require('../../assets/logo/warning.png')"
                :fit="fit"
              ></el-image>
            <el-image style="width: 12px; height: 12px;margin-left:5px" :src="require('../../assets/logo/warning.png')"
              fit="fit"></el-image>
          </el-tooltip>
        </template>
      </el-table-column>
      <el-table-column label="补偿金额(万元)" align="center">
        <el-table-column
          prop="compensationNewAmount"
          label="新建商品住房、商业用房、停车位"
          align="center"
          width="100"
        >
        <el-table-column prop="compensationNewAmount" label="新建商品住房、商业用房、停车位" align="center" width="100">
          <template slot-scope="scope">
            {{ scope.row.compensationNewAmount }}
            <!-- 重新对接字段 -->
            <el-tooltip
              v-if="scope.row.compensationAmountWarn == 1"
              placement="top"
            >
            <el-tooltip v-if="scope.row.compensationAmountWarn == 1" placement="top">
              <div slot="content">{{ "检测到多个购房情况,请人工核对" }}</div>
              <el-image
                style="width: 12px; height: 12px;margin-left:5px"
                :src="require('../../assets/logo/warning.png')"
                :fit="fit"
              ></el-image>
              <el-image style="width: 12px; height: 12px;margin-left:5px"
                :src="require('../../assets/logo/warning.png')" fit="fit"></el-image>
            </el-tooltip>
          </template>
        </el-table-column>
        <el-table-column
          prop="compensationOldAmount"
          label="二手住房"
          align="center"
          width="80"
        >
        <el-table-column prop="compensationOldAmount" label="二手住房" align="center" width="80">
          <template slot-scope="scope">
            {{ scope.row.compensationOldAmount }}
          </template>
        </el-table-column>
        <el-table-column
          prop="compensationSum"
          label="合计"
          align="center"
          width="60"
        >
        <el-table-column prop="compensationSum" label="合计" align="center" width="60">
          <template slot-scope="scope">
            {{ scope.row.compensationSum }}
            <el-tooltip
              v-if="scope.row.compensationSumWarn == 1"
              placement="top"
            >
            <el-tooltip v-if="scope.row.compensationSumWarn == 1" placement="top">
              <div slot="content">{{ "补偿标准金额异常" }}</div>
              <!-- <i
                class="el-icon-warning-outline"
                style="color: #e6a23c; margin-left: 5px"
              ></i> -->
              <el-image
                style="width: 12px; height: 12px;margin-left:5px"
                :src="require('../../assets/logo/warning.png')"
                :fit="fit"
              ></el-image>
              <el-image style="width: 12px; height: 12px;margin-left:5px"
                :src="require('../../assets/logo/warning.png')" fit="fit"></el-image>
            </el-tooltip>
          </template>
        </el-table-column>
      </el-table-column>
      <el-table-column
        prop="downPaymentAmount"
        label="25%首付款(万元)"
        align="center"
        width="130"
      >
      <el-table-column prop="downPaymentAmount" label="25%首付款(万元)" align="center" width="130">
        <template slot-scope="scope">
          {{ scope.row.downPaymentAmount }}
        </template>
      </el-table-column>
      <el-table-column
        prop="quarterPayAmount"
        label="每季度需支付款项(万元)"
        align="center"
        width="120"
      >
      <el-table-column prop="quarterPayAmount" label="每季度需支付款项(万元)" align="center" width="120">
        <template slot-scope="scope">
          {{ scope.row.quarterPayAmount }}
          <el-tooltip
            v-if="scope.row.quarterPayAmountWarn == 1"
            placement="top"
          >
          <el-tooltip v-if="scope.row.quarterPayAmountWarn == 1" placement="top">
            <div slot="content">
              {{ "季度款金额异常" }}
            </div>
            <el-image
                style="width: 12px; height: 12px;margin-left:5px"
                :src="require('../../assets/logo/warning.png')"
                :fit="fit"
              ></el-image>
            <el-image style="width: 12px; height: 12px;margin-left:5px" :src="require('../../assets/logo/warning.png')"
              fit="fit"></el-image>
          </el-tooltip>
        </template>
      </el-table-column>
      <el-table-column
        prop="subsidyAmount"
        label="过渡补贴(万元)"
        align="center"
        width="60"
      >
      <el-table-column prop="subsidyAmount" label="过渡补贴(万元)" align="center" width="60">
        <template slot-scope="scope">
          {{ scope.row.subsidyAmount }}
          <el-tooltip v-if="scope.row.subsidyAmountWarn == 1" placement="top">
            <div slot="content">{{ "过度补贴数据异常" }}</div>
            <el-image
                style="width: 12px; height: 12px;margin-left:5px"
                :src="require('../../assets/logo/warning.png')"
                :fit="fit"
              ></el-image>
            <el-image style="width: 12px; height: 12px;margin-left:5px" :src="require('../../assets/logo/warning.png')"
              fit="fit"></el-image>
          </el-tooltip>
        </template>
      </el-table-column>
@@ -404,37 +236,18 @@
          {{ scope.row.remark }}
        </template>
      </el-table-column>
      <el-table-column
        prop="situation"
        label="购房差异情况"
        align="center"
        width="60"
      >
      <el-table-column prop="situation" label="购房差异情况" align="center" width="60">
        <template slot-scope="scope">
          {{ scope.row.situation }}
        </template>
      </el-table-column>
      <el-table-column label="操作" align="center" width="150" fixed="right">
      <el-table-column label="操作" align="center" width="200" fixed="right">
        <template slot-scope="scope">
          <el-button
            size="mini"
            type="text"
            @click="handleHouseholdDetail(scope.row)"
            >详情</el-button
          >
          <el-button size="mini" type="text" @click="handleHouseholdDetail(scope.row)">详情</el-button>
          <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
            >
            <el-button size="mini" type="text" @click="handleHouseholdEdit(scope.row)">编辑</el-button>
            <el-button size="mini" type="text" @click="handleHouseholdDelete(scope.row)">删除</el-button>
            <el-button size="mini" type="text" @click="handleCheck(scope.row)">已核对</el-button>
          </template>
        </template>
      </el-table-column>
@@ -442,25 +255,14 @@
    <!-- 分页 -->
    <div class="pagination-container">
      <el-pagination
        background
        @size-change="handleSizeChange"
        @current-change="handleCurrentChange"
        :current-page="queryParams.pageNum"
        :page-sizes="[10, 20, 30, 50]"
        :page-size="queryParams.pageSize"
        layout="total, sizes, prev, pager, next, jumper"
        :total="total"
      />
      <el-pagination background @size-change="handleSizeChange" @current-change="handleCurrentChange"
        :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"
    />
    <upload-dialog ref="uploadDialog" :info="batchInfo" :visible.sync="uploadDialogVisible"
      @success="handleUploadSuccess" />
    <!-- 详情弹窗 -->
    <DetailDialog :visible.sync="detailDialogVisible" :id="currentId" />
@@ -472,6 +274,8 @@
  geDetailTabletList,
  delDetail,
  getDictList,
  autoApprove,
  dataCheck
} from "@/api/application-batch";
import { downLoad, exportExcell } from "@/utils";
import UploadDialog from "./components/UploadDialog.vue";
@@ -535,6 +339,31 @@
    this.getStreetOptions();
  },
  methods: {
    /**自动审核*/
    autoAudit() {
      this.$confirm('是否确认自动纠错', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        autoApprove({ id: this.batchInfo.id }).then((res) => {
          this.getList();
        })
      })
    },
    handleCheck(row) {
      this.$confirm('是否确认已核对', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        dataCheck({ id: row.id }).then((res) => {
          this.getList();
        })
      })
    },
    /** 获取镇街选项 */
    getStreetOptions() {
      getDictList().then((res) => {
@@ -669,7 +498,7 @@
            }
          });
        })
        .catch(() => {});
        .catch(() => { });
    },
    /** 每页显示条数变化 */
    handleSizeChange(val) {
src/views/login.vue
@@ -1,7 +1,7 @@
<template>
  <div class="login">
    <el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form">
      <h3 class="title">崇州自主安置管理后台</h3>
      <h3 class="title">自主购房智能审核管理系统</h3>
      <el-form-item prop="username">
        <el-input
          v-model="loginForm.username"
src/views/placement-batch/components/ApprovalDialog.vue
@@ -28,7 +28,7 @@
                      :src="require('../../../assets/logo/warning.png')" :fit="fit"></el-image> </el-tooltip></span>
              </template>
            </el-table-column>
            <el-table-column prop="idCard" label="身份证号"  key="table_A" min-width="180" align="center">
            <el-table-column prop="idCard" label="身份证号" key="table_A" 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="身份信息不存在于待安置人员库"
@@ -38,7 +38,7 @@
                </el-tooltip>
              </template>
            </el-table-column>
            <el-table-column prop="resettledNum"  key="table_A" label="应安置人数(人)" min-width="140" align="center" />
            <el-table-column prop="resettledNum" key="table_A" label="应安置人数(人)" min-width="140" align="center" />
            <el-table-column label="所有家庭人员应安置面积(㎡)" key="table_A" prop="resettledArea" min-width="160" align="center">
              <template slot-scope="scope">
                <span>{{ scope.row.resettledArea }}
@@ -49,7 +49,8 @@
              </template>
            </el-table-column>
            <el-table-column label="补偿单位标准(万元)" key="table_A" min-width="160" align="center">
              <el-table-column prop="priceNewAmount" key="table_A" label="新建商品住房、商业用房、停车位" min-width="160" align="center">
              <el-table-column prop="priceNewAmount" key="table_A" label="新建商品住房、商业用房、停车位" min-width="160"
                align="center">
                <template slot-scope="scope">
                  <span>{{ scope.row.priceNewAmount }}
                    <el-tooltip v-if="scope.row.priceAmountWarn == 1" class="item" effect="dark" content="补充标准数据异常"
@@ -78,8 +79,8 @@
              </template>
            </el-table-column>
            <el-table-column prop="downPaymentAmount" key="table_A" label="25%首付款(㎡)" min-width="150" align="center" />
            <el-table-column prop="quarterPayAmount" key="table_A" v-if="activeTab == '1'" label="每季度需支付款项(万元)" min-width="180"
              align="center">
            <el-table-column prop="quarterPayAmount" key="table_A" v-if="activeTab == '1'" label="每季度需支付款项(万元)"
              min-width="180" align="center">
              <template slot-scope="scope">
                <span>{{ scope.row.quarterPayAmount }}
                  <el-tooltip v-if="scope.row.quarterPayAmountWarn == 1" class="item" effect="dark" content="季度款金额数据异常"
@@ -149,12 +150,14 @@
            </el-table-column>
            <el-table-column key="table_B" label="本次安置人数(人)" min-width="100" align="center">
              <el-table-column key="table_B" prop="currentCollectiveNum" label="集体经济组织成员" min-width="100" align="center">
              <el-table-column key="table_B" prop="currentCollectiveNum" label="集体经济组织成员" min-width="100"
                align="center">
                <template slot-scope="scope">
                  {{ scope.row.currentCollectiveNum || '-' }}
                </template>
              </el-table-column>
              <el-table-column key="table_B" prop="currentNoCollectiveNum" label="非集体经济组织成员" min-width="100" align="center">
              <el-table-column key="table_B" prop="currentNoCollectiveNum" label="非集体经济组织成员" min-width="100"
                align="center">
                <template slot-scope="scope">
                  {{ scope.row.currentNoCollectiveNum || '-' }}
                </template>
@@ -174,6 +177,19 @@
                </el-tooltip>
              </template>
            </el-table-column>
            <el-table-column prop="orgArea" key="table_B" label="集体成员面积" align="center" width="150">
              <template slot-scope="scope">
                {{ scope.row.orgArea }}
              </template>
            </el-table-column>
            <el-table-column prop="noOrgArea" key="table_B" label="非集体成员面积" align="center" width="150">
              <template slot-scope="scope">
                {{ scope.row.noOrgArea }}
              </template>
            </el-table-column>
            <el-table-column key="table_B" 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"
@@ -184,7 +200,8 @@
              </template>
            </el-table-column>
            <el-table-column key="table_B" label="补偿金额(万元)" min-width="100" align="center">
              <el-table-column key="table_B" prop="compensationNewAmount" label="新建商品住房、商业用房、停车位" min-width="100" align="center">
              <el-table-column key="table_B" 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">
@@ -341,7 +358,8 @@
                <span>{{ scope.row.signTime }}</span>
              </template>
            </el-table-column>
            <el-table-column key="table_B" prop="compensationPayTime" label="25%补偿款及过渡补贴支付时间" min-width="100" align="center">
            <el-table-column key="table_B" prop="compensationPayTime" label="25%补偿款及过渡补贴支付时间" min-width="100"
              align="center">
              <template slot-scope="scope">
                <span>{{ scope.row.compensationPayTime }}</span>
              </template>
src/views/placement-batch/person.vue
@@ -66,6 +66,7 @@
      <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>
      <el-button type="primary" size="small" @click="autoApprove">自动纠错</el-button>
    </div>
    <div v-if="activeTab === 'fullReport'">
@@ -160,6 +161,7 @@
            <el-button type="text" size="small" @click="handleView(scope.row)">详情</el-button>
            <el-button type="text" size="small" @click="handleEdit(scope.row)">编辑</el-button>
            <el-button type="text" size="small" @click="handleDelete(scope.row)">删除</el-button>
            <el-button type="text" size="small" @click="handleCheckMoney(scope.row)">已核对</el-button>
          </template>
        </el-table-column>
      </el-table>
@@ -191,7 +193,7 @@
            <span>{{ scope.row.community }}</span>
          </template>
        </el-table-column>
        <el-table-column prop="demolitionTime"  key="table_B" label="拆迁时间" min-width="100" align="center">
        <el-table-column prop="demolitionTime" key="table_B" label="拆迁时间" min-width="100" align="center">
          <template slot-scope="scope">
            <span>{{ scope.row.demolitionTime }}</span>
          </template>
@@ -244,11 +246,21 @@
              <el-image style="width: 12px; height: 12px;margin-left:5px"
                :src="require('../../assets/logo/warning.png')" fit="fit"></el-image>
            </el-tooltip>
            <el-tooltip v-if="scope.row.waitFamilyNamesNoWarn==1" class="item"
              effect="dark" content="家庭成员不在安置库" placement="top">
            <el-tooltip v-if="scope.row.waitFamilyNamesNoWarn == 1" class="item" effect="dark" content="家庭成员不在安置库"
              placement="top">
              <el-image style="width: 12px; height: 12px;margin-left:5px"
                :src="require('../../assets/logo/warning.png')" fit="fit"></el-image>
            </el-tooltip>
          </template>
        </el-table-column>
        <el-table-column prop="orgArea" key="table_B" label="集体成员面积" align="center" width="150">
          <template slot-scope="scope">
            {{ scope.row.orgArea }}
          </template>
        </el-table-column>
        <el-table-column prop="noOrgArea" key="table_B" label="非集体成员面积" align="center" width="150">
          <template slot-scope="scope">
            {{ scope.row.noOrgArea }}
          </template>
        </el-table-column>
        <el-table-column prop="waitFamilyArea" key="table_B" label="待安置人员应安置面积合计(㎡)" min-width="100" align="center">
@@ -261,7 +273,8 @@
          </template>
        </el-table-column>
        <el-table-column label="补偿金额(万元)" key="table_B" min-width="100" align="center">
          <el-table-column prop="compensationNewAmount" key="table_B" label="新建商品住房、商业用房、停车位" min-width="100" align="center">
          <el-table-column prop="compensationNewAmount" key="table_B" 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">
@@ -290,8 +303,7 @@
            <span>{{ scope.row.downPaymentAmount }}</span>
          </template>
        </el-table-column>
        <el-table-column prop="quarterPayAmount" key="table_B"  label="每季度需支付款项(万元)" min-width="100"
          align="center">
        <el-table-column prop="quarterPayAmount" key="table_B" label="每季度需支付款项(万元)" min-width="100" 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">
@@ -314,7 +326,7 @@
            <span>{{ scope.row.remark }}</span>
          </template>
        </el-table-column>
        <el-table-column prop="certificateTime"    key="table_B" label="凭证发放时间" min-width="100" align="center">
        <el-table-column prop="certificateTime" key="table_B" label="凭证发放时间" min-width="100" align="center">
          <template slot-scope="scope">
            <span>{{ scope.row.certificateTime }}</span>
          </template>
@@ -418,7 +430,8 @@
            <span>{{ scope.row.signTime }}</span>
          </template>
        </el-table-column>
        <el-table-column prop="compensationPayTime" key="table_B" label="25%补偿款及过渡补贴支付时间" min-width="100" align="center">
        <el-table-column prop="compensationPayTime" key="table_B" label="25%补偿款及过渡补贴支付时间" min-width="100"
          align="center">
          <template slot-scope="scope">
            <span>{{ scope.row.compensationPayTime }}</span>
          </template>
@@ -455,6 +468,7 @@
            <el-button type="text" size="small" @click="handleView(scope.row)">详情</el-button>
            <el-button type="text" size="small" @click="handleEdit(scope.row)">编辑</el-button>
            <el-button type="text" size="small" @click="handleDelete(scope.row)">删除</el-button>
            <el-button type="text" size="small" @click="handleCheckHousehold(scope.row)">已核对</el-button>
          </template>
        </el-table-column>
      </el-table>
@@ -476,11 +490,15 @@
  getPlacementBatchDetail,
  deletePlacementBatchMoney,
  deletePlacementBatchHouse,
  importPlacementBatch
  importPlacementBatch,
  checkPlacementBatchMoney,
  autoCorrectPlacementBatch,
  checkPlacementBatchHouse
} from '@/api/placement-details'
import ExportMoneyApplay from './components/exportMoneyApplay.vue'
import { downLoad, exportExcell } from '@/utils'
import { autoApprove } from '../../api/application-batch'
export default {
  name: 'PlacementPerson',
  components: {
@@ -525,6 +543,46 @@
    this.getList()
  },
  methods: {
    /** 自动纠错 */
    autoApprove() {
      this.$confirm('是否确认自动纠错', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        autoCorrectPlacementBatch({ id: this.detailData.id }).then((res) => {
          this.getList();
        })
      })
    },
    /** 资金核对数据 */
    handleCheckMoney(row) {
      this.$confirm('是否确认已核对数据', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        checkPlacementBatchMoney({ id: row.id }).then((res) => {
          this.getList();
        })
      })
    },
    /** 购房信息核对数据 */
    handleCheckHousehold(row) {
      this.$confirm('是否确认核对数据', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        checkPlacementBatchHouse({ id: row.id }).then((res) => {
          this.getList();
        })
      })
    },
    /** 查询列表 */
    getList() {
      this.loading = true
@@ -549,13 +607,13 @@
      this.getList()
    },
    tableRowClassName({ row, rowIndex }) {
      if (row.compensationSumWarn == 1 || row.householdHeadWarn == 1 || row.idCardWarn == 1 || row.waitFamilyNamesNoWarn==1 || row.priceAmountWarn == 1 || row.quarterPayAmountWarn == 1 || row.subsidyAmountWarn == 1 || row.twoPriceWarn == 1 || row.waitFamilyAreaWarn == 1) {
      if (row.compensationSumWarn == 1 || row.householdHeadWarn == 1 || row.idCardWarn == 1 || row.waitFamilyNamesNoWarn == 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.compensationAmountWarn == 1 || row.compensationSumWarn == 1 || row.householdHeadWarn == 1 || row.waitFamilyNamesNoWarn==1 || row.idCardWarn == 1 || row.waitFamilyAreaWarn == 1 || row.waitFamilyNamesWarn == 1 || row.subsidyAmountWarn == 1 || row.quarterPayAmountWarn == 1) {
      if (row.areaWarn == 1 || row.compensationAmountWarn == 1 || row.compensationSumWarn == 1 || row.householdHeadWarn == 1 || row.waitFamilyNamesNoWarn == 1 || row.idCardWarn == 1 || row.waitFamilyAreaWarn == 1 || row.waitFamilyNamesWarn == 1 || row.subsidyAmountWarn == 1 || row.quarterPayAmountWarn == 1) {
        return 'warning-row'
      }
      return ''
src/views/relocatablePersonnel/detail.vue
@@ -174,7 +174,7 @@
                </el-col>
            </el-row>
            <div v-if="$route.query.type == 'view'" class="mb-20">
                <div class="section-title">补偿金额标准</div>
                <div class="section-title">购房信息  </div>
                <el-table v-loading="loading" :data="listData">
                    <el-table-column label="购房时间" prop="buyTime" :show-overflow-tooltip="true" />
                    <el-table-column label="成交金额(万元)"  prop="dealAmount" width="150" />
src/views/relocatablePersonnel/index.vue
@@ -2,23 +2,29 @@
    <div class="app-container">
        <el-form :model="queryParams" ref="queryForm" size="small" :inline="true">
            <el-form-item label="拆迁项目" prop="projectName">
                <el-input v-model="queryParams.projectName" placeholder="请输入" clearable style="width: 240px"
                <el-input v-model="queryParams.projectName" placeholder="请输入" clearable style="width: 180px"
                    @keyup.enter.native="handleQuery" />
            </el-form-item>
            <el-form-item label="镇街" prop="street">
                <el-select v-model="queryParams.street" placeholder="请选择" style="width: 240px">
                <el-select v-model="queryParams.street" placeholder="请选择" style="width: 180px">
                    <el-option v-for="item in streetOptions" :key="item.dictCode" :label="item.dictLabel"
                        :value="item.dictLabel" />
                </el-select>
            </el-form-item>
            <el-form-item label="所属村(社区)" prop="community">
                <el-input v-model="queryParams.community" placeholder="请输入" clearable style="width: 240px"
                <el-input v-model="queryParams.community" placeholder="请输入" clearable style="width: 180px"
                    @keyup.enter.native="handleQuery" />
            </el-form-item>
            <el-form-item label="户主姓名/身份证号" prop="headOrIdCard">
                <el-input v-model="queryParams.headOrIdCard" placeholder="请输入" clearable style="width: 240px"
                <el-input v-model="queryParams.headOrIdCard" placeholder="请输入" clearable style="width: 180px"
                    @keyup.enter.native="handleQuery" />
            </el-form-item>
            <el-form-item label="安置状态" prop="status">
                <el-select v-model="queryParams.status" placeholder="请选择" style="width: 180px">
                    <el-option label="未安置" :value="null" />
                    <el-option label="已安置" value="1" />
                </el-select>
            </el-form-item>
            <el-form-item>
                <el-button type="primary" icon="el-icon-search" size="small" @click="handleQuery">搜索</el-button>
                <el-button icon="el-icon-refresh" size="small" @click="resetQuery">重置</el-button>
vue.config.js
@@ -7,7 +7,7 @@
const CompressionPlugin = require('compression-webpack-plugin')
const name = process.env.VUE_APP_TITLE || '崇州自主安置管理后台' // 网页标题
const name = process.env.VUE_APP_TITLE || '自主购房智能审核管理系统' // 网页标题
const port = process.env.port || process.env.npm_config_port || 80 // 端口