<template>
  <div class="deedtax-house">
    <div class="search-wrapper">
      <el-form :inline="true" :model="searchForm" class="search_form" style="text-align: left">
        <el-form-item label="姓名">
          <el-input v-model="searchForm.name" placeholder="请输入姓名" @keyup.enter.native="onSubmit"></el-input>
        </el-form-item>
        <el-form-item label="手机号码">
          <el-input v-model="searchForm.phone" placeholder="请输入手机号码" @keyup.enter.native="onSubmit">
          </el-input>
        </el-form-item>
        <el-form-item label="不动产坐落辖市区" v-if="this.realEstateArea == '市区'">
          <el-select v-model="searchForm.checkArealEstateArea" placeholder="请选择不动产坐落辖市区" @change="onSubmit"
            size="medium">
            <el-option v-for="item in areaList" :key="item.id" :label="item.label" :value="item.id">
            </el-option>
          </el-select>
        </el-form-item>
        <el-form-item>
          <el-button type="primary" @click="onSubmit">查询</el-button>
        </el-form-item>
        <br />
        <el-form-item label="状态" style="margin-top: 10px">
          <el-radio-group v-model="searchForm.state" @change="onSubmit">
            <template v-if="realEstateArea == '句容市' || realEstateArea == '丹阳市'">
              <el-radio :label="item.state" v-for="item in stateList" :key="item.state">{{ item.stateName }}
              </el-radio>
            </template>
            <template v-else>
              <el-radio :label="item.state" v-for="item in signState" :key="item.state">{{ item.stateName }}
              </el-radio>
            </template>
          </el-radio-group>
        </el-form-item>
      </el-form>
    </div>
    <div class="table-wrapper">
      <table-template :tableData="tableData" :tableColumns="tableColumns" :loading="loading" :pagination="pagination"
        @Jump="jumpPage">
        <el-table-column slot="departmentName" label="实施主体" align="center">
          <template>
            {{
              this.$route.query.departmentCode == "10000031"
                ? this.realEstateArea + "住建局"
                : this.realEstateArea + "住建窗口"
            }}
          </template>
        </el-table-column>
        <!-- sign:状态更新 -->
        <el-table-column label="状态" width="180" align="center"
          v-if="realEstateArea != '句容市' && realEstateArea != '丹阳市'">
          <template slot-scope="scope">
            <el-tag :type="signTag[scope.row.state].type">{{ signTag[scope.row.state].name }}</el-tag>
          </template>

        </el-table-column>
        <el-table-column label="状态" width="180" align="center" v-else>
          <template slot-scope="scope">
            <el-tag :type="noSignTag[scope.row.state].type">{{ noSignTag[scope.row.state].name }}</el-tag>
          </template>

        </el-table-column>
        <el-table-column fixed="right" label="操作" width="380" align="center">
          <template slot-scope="scope">
            <el-button type="primary" size="mini" round @click="view(scope.row)">查看</el-button>
            <el-button type="primary" size="mini" round @click="record(scope.row)">记录</el-button>
            <!-- 收件窗口 -->
            <!--除句容 丹阳外 state==3才可审批 -->
            <template v-if="searchForm.departmentCode == '10000027'">
              <template v-if="scope.row.checkArea !== '丹阳市' && scope.row.checkArea !== '句容市' && scope.row.state == 3">
                <el-button type="success" size="mini" round @click="pass(scope.row, 'default')">通过
                </el-button>
                <el-button type="danger" size="mini" round @click="deny(scope.row)">拒绝
                </el-button>
              </template>

              <!-- 句容市 -->
              <template v-if="scope.row.checkArea == '句容市' && scope.row.state == 1">
                <el-button type="success" size="mini" round @click="pass(scope.row, 'default')">通过
                </el-button>
                <el-button type="danger" size="mini" round @click="deny(scope.row)">拒绝
                </el-button>
              </template>
            </template>
            <!-- 丹阳 -->
            <el-button v-if="
              scope.row.state == 2 &&
              searchForm.departmentCode == '10000031' &&
              realEstateArea == '丹阳市'
            " type="success" size="mini" round @click="pass(scope.row, 'danYang')">通过
            </el-button>
            <!-- 退税办理丹阳拒绝 -->
            <el-button v-if="
              scope.row.state == 2 &&
              searchForm.departmentCode == '10000031' &&
              realEstateArea == '丹阳市'
            " type="danger" size="mini" round @click="deny(scope.row)">拒绝
            </el-button>
            <!-- 丹阳市没有收件窗口--退税办理 -->
            <template v-if="searchForm.departmentCode == '10000031'">
              <el-button v-if="
                scope.row.state == 1 &&
                realEstateArea !== '丹阳市'
              " type="success" size="mini" round @click="pass(scope.row, 'danYang')">通过
              </el-button>
              <el-button type="danger" size="mini" round @click="deny(scope.row)" v-if="
                scope.row.state == 1 &&
                realEstateArea !== '丹阳市'
              ">拒绝
              </el-button>
            </template>
            <el-button v-if="
              scope.row.flag == true &&
              searchForm.departmentCode == '10000027'
            " type="info" size="mini" round @click="drevokeeny(scope.row)">撤销
            </el-button>

            <el-button v-if="
              realEstateArea !== '丹阳市' &&
              scope.row.state != 0 &&
              scope.row.state != 4 &&
              searchForm.departmentCode == '10000027'
            " type="success" size="mini" round>
              <el-dropdown size="mini" @command="handleCommand(scope.row, $event, 'default')">
                <span class="el-dropdown-link">
                  申请表<i class="el-icon-arrow-down el-icon--right"></i>
                </span>
                <el-dropdown-menu slot="dropdown">
                  <el-tooltip class="item" effect="dark" content="请点击的“重置申请表”按钮，以解决文件不存在或文件内容有误的问题"
                    placement="top-start">
                    <el-dropdown-item icon="el-icon-refresh" command="reset">
                      重置申请表
                    </el-dropdown-item>
                  </el-tooltip>

                  <el-dropdown-item icon="el-icon-download" command="download">
                    下载申请表
                  </el-dropdown-item>
                </el-dropdown-menu>
              </el-dropdown>
            </el-button>
            <!-- 丹阳市的申请表在退税办理 -->
            <el-button v-else-if="
              realEstateArea == '丹阳市' &&
              (scope.row.state == 2 || scope.row.state == 6) &&
              searchForm.departmentCode == '10000031'
            " type="success" size="mini" round>
              <el-dropdown size="mini" @command="handleCommand(scope.row, $event, 'danYang')">
                <span class="el-dropdown-link">
                  申请表<i class="el-icon-arrow-down el-icon--right"></i>
                </span>
                <el-dropdown-menu slot="dropdown">
                  <el-tooltip class="item" effect="dark" content="请点击的“重置申请表”按钮，以解决文件不存在或文件内容有误的问题"
                    placement="top-start">
                    <el-dropdown-item icon="el-icon-refresh" command="reset">
                      重置申请表
                    </el-dropdown-item>
                  </el-tooltip>

                  <el-dropdown-item icon="el-icon-download" command="download">
                    下载申请表
                  </el-dropdown-item>
                </el-dropdown-menu>
              </el-dropdown>
            </el-button>
          </template>
        </el-table-column>
      </table-template>
    </div>
    <el-dialog title="申报详情" :visible.sync="viewShow" width="800px" :close-on-press-escape="false">
      <div class="content">
        <!-- 新增功能start -->
        <el-table :data="totalList" style="width: 100%">
          <el-table-column prop="departmentName" label="审核单位" width="180">
          </el-table-column>
          <el-table-column prop="state" label="审核状态" width="180">
          </el-table-column>
          <el-table-column prop="reason" label="审核意见"> </el-table-column>
          <el-table-column prop="createTime" label="审核时间">
          </el-table-column>
        </el-table>
        <div class="cell" v-if="viewDetail.checkArea != '丹阳市'">
          <p class="label">是否享受过相关政策</p>
          <p :class="[
            'value',
            viewDetail.enjoyFlag == true ? 'value2' : 'value1',
          ]">
            {{ viewDetail.enjoyFlag ? "否" : "是" }}
          </p>
        </div>
        <!-- 新增功能end -->
        <div class="cell">
          <p class="label">事项名称</p>
          <p class="value">{{ viewDetail.guideName }}</p>
        </div>
        <div class="cell">
          <p class="label">实施主体</p>
          <p class="value">
            {{
              this.$route.query.departmentCode == "10000031"
                ? this.realEstateArea + "住建局"
                : this.realEstateArea + "住建窗口"
            }}
          </p>
        </div>
        <div class="cell">
          <p class="label">姓名</p>
          <p class="value">{{ viewDetail.name }}</p>
        </div>
        <div class="cell">
          <p class="label">身份证</p>
          <p class="value">{{ viewDetail.idCard }}</p>
        </div>
        <div class="cell">
          <p class="label">手机号</p>
          <p class="value">{{ viewDetail.phone }}</p>
        </div>
        <div class="cell">
          <p class="label">辖市区</p>
          <p class="value">{{ viewDetail.userArea }}</p>
        </div>
        <div class="cell">
          <p class="label">联系地址</p>
          <p class="value">{{ viewDetail.address }}</p>
        </div>
        <div class="cell">
          <p class="label">身份证照片</p>
          <p class="value">
            <el-image v-for="(item, index) in viewDetail.idCardPicture" :key="index"
              style="width: 100px; height: 100px; margin-right: 10px" :src="item.picture" :z-index="7777777"
              :preview-src-list="[item.picture]">
            </el-image>
          </p>
        </div>
        <div class="cell">
          <p class="label">所属银行</p>
          <p class="value">{{ viewDetail.bank }}</p>
        </div>
        <div class="cell">
          <p class="label">银行卡号</p>
          <p class="value">{{ viewDetail.bankCard }}</p>
        </div>
        <div class="cell">
          <p class="label">银行卡照片</p>
          <p class="value">
            <el-image v-for="(item, index) in viewDetail.bankCardPicture" :key="index"
              style="width: 100px; height: 100px; margin-right: 10px" :src="item.picture" :z-index="7777777"
              :preview-src-list="[item.picture]">
            </el-image>
          </p>
        </div>
        <div class="cell">
          <p class="label">契税发票号码</p>
          <p class="value" v-if="viewDetail.deedBillCode && !viewDetail.secondDeedBillCode">
            NO.{{ viewDetail.deedBillCode }}
          </p>
          <p class="value" v-if="!viewDetail.deedBillCode && viewDetail.secondDeedBillCode">
            NO.{{ viewDetail.secondDeedBillCode }}
          </p>
          <p class="value" v-if="viewDetail.deedBillCode && viewDetail.secondDeedBillCode">
            NO.{{ viewDetail.deedBillCode }}、NO.{{
              viewDetail.secondDeedBillCode
            }}
          </p>
        </div>
        <div class="cell">
          <p class="label">缴纳契税金额(元)</p>
          <p class="value">{{ viewDetail.paymentDeedTaxAmount }}</p>
        </div>
        <div class="cell" v-if="viewDetail.taxReimbursementAmount">
          <p class="label">退税金额(万元)</p>
          <p class="value">{{ viewDetail.taxReimbursementAmount }}</p>
        </div>
        <div class="cell">
          <p class="label">房屋面积</p>
          <p class="value">{{ viewDetail.square }}</p>
        </div>
        <div class="cell">
          <p class="label">不动产坐落辖市区</p>
          <p class="value">{{ viewDetail.checkArea }}</p>
        </div>
        <div class="cell">
          <p class="label">网签时间</p>
          <p class="value">{{ viewDetail.netSignTime }}</p>
        </div>
        <div class="cell">
          <p class="label">不动产权证号</p>
          <p class="value">{{ viewDetail.realEstateCard }}</p>
        </div>
        <div class="cell">
          <p class="label">不动产权坐落地址</p>
          <p class="value">{{ viewDetail.realEstateAddress }}</p>
        </div>
        <div class="cell">
          <p class="label">不动产权证书</p>
          <p class="value">
            <el-image v-for="(item, index) in viewDetail.certificate" :key="index"
              style="width: 100px; height: 100px; margin-right: 10px" :src="item.picture" :z-index="7777777"
              :preview-src-list="[item.picture]">
            </el-image>
          </p>
        </div>
        <div class="cell">
          <p class="label">商品房买卖合同3张</p>
          <p class="value">
            <el-image v-for="(item, index) in viewDetail.contract" :key="index"
              style="width: 100px; height: 100px; margin-right: 10px" :src="item.picture" :z-index="7777777"
              :preview-src-list="[item.picture]">
            </el-image>
          </p>
        </div>
        <div class="cell">
          <p class="label">契税完税凭证</p>
          <p class="value">
            <el-image v-for="(item, index) in viewDetail.voucher" :key="index"
              style="width: 100px; height: 100px; margin-right: 10px" :src="item.picture" :z-index="7777777"
              :preview-src-list="[item.picture]">
            </el-image>
          </p>
        </div>
        <div class="cell">
          <p class="label">电子签名</p>
          <p class="value">
            <el-image v-for="(item, index) in viewDetail.signUrl" :key="index"
              style="width: 100px; height: 100px; margin-right: 10px" :src="item.picture" :z-index="7777777"
              :preview-src-list="[item.picture]">
            </el-image>
          </p>
        </div>
        <div class="cell" v-if="viewDetail.commitmentType">
          <p class="label">共有情况</p>
          <p class="value">
            <span v-if="viewDetail.commitmentType == 1">单独所有、共同共有</span>
            <span v-if="viewDetail.commitmentType == 2">按份共有</span>
          </p>
        </div>
      </div>
    </el-dialog>
    <el-dialog title="操作记录" :visible.sync="recordShow" width="800px" :close-on-press-escape="false">
      <div class="content" v-if="recordList[0]">
        <div class="cell" v-for="(item, index) in recordList" :key="index">
          <p class="label" style="margin-right: 20px">
            {{ item.stateName }}
            <span v-if="item.reason">({{ item.reason }})</span>
          </p>
          <div class="info">
            <p class="item">操作人：{{ item.departmentName }}</p>
            <p class="item">操作时间：{{ item.createTime }}</p>
          </div>
        </div>
        <p v-if="record.length === 0">暂无记录~</p>
      </div>
    </el-dialog>
    <el-dialog title="改派部门" :visible.sync="reassignmentShow" width="600px" :close-on-press-escape="false"
      :before-close="closeDialog">
      <el-form label-width="120px" :model="params">
        <el-row>
          <el-form-item label="改派部门">
            <el-cascader v-model="params.checkArea" placeholder="请选择部门" :options="checkAreaList"
              :show-all-levels="false" @change="handleChange">
            </el-cascader>
          </el-form-item>
        </el-row>
      </el-form>
      <span slot="footer" class="dialog-footer">
        <el-button @click="closeDialog">取 消</el-button>
        <el-button type="primary" @click="determine">确 定</el-button>
      </span>
    </el-dialog>
    <el-dialog :visible.sync="refundShow" width="600px" title="提示" class="refuseDialog">
      <el-form :model="refundForm" ref="refundForm" label-width="120px" :rules="refundRules">
        <el-form-item label="通过原因" prop="reason">
          <el-input type="textarea" v-model="refundForm.reason"></el-input>
        </el-form-item>
        <el-form-item label="退税金额 (元)" prop="taxReimbursementAmount">
          <el-input type="number" v-model="refundForm.taxReimbursementAmount"></el-input>
        </el-form-item>
      </el-form>

      <span slot="footer" class="dialog-footer">
        <el-button @click="refundShow = false">取 消</el-button>
        <el-button type="primary" @click="refundConfirm">确 定</el-button>
      </span>
    </el-dialog>
  </div>
</template>

<script>
import TableTemplate from "@/components/Table";
import { changeList, setName, setTel, setCertNo } from "@/utils";
import docxtemplater from "docxtemplater";
import PizZip from "pizzip";
import JSZipUtils from "jszip-utils";
import { uploadWordFile } from "@/api/upload";
import {
  queryHouseListDeedTax,
  queryHouseDeedTaxRecord,
  queryHouseDeedTaxDetailInfo,
  updateHouseDeedTaxState,
  mainHouseRevocation,
  updateHouseCheckArea,
  saveHouseFileUrl,
  initHouseDepartmentRevocation,
} from "@/api/house.js";
import { signState, stateList, signTag, noSignTag } from "@/utils/index"

export default {
  components: { TableTemplate },
  data() {
    return {
      signState,
      stateList,
      noSignTag,
      signTag,
      userName: "",
      searchForm: {
        name: "",
        phone: "",
        state: "",
        departmentCode: "",
        checkArealEstateArea: "",
      },
      stateList1: [
        {
          state: 0,
          stateName: "待审核",
          type: "warning",
        },
        {
          state: 1,
          stateName: "待复审",
          type: "warning",
        },
        {
          state: 6,
          stateName: "已完成",
          type: "warning",
        },
        {
          state: 2,
          stateName: "资料审核",
          type: "warning",
        },
        {
          state: 3,
          stateName: "卡号确认",
          type: "success",
        },
        {
          state: 4,
          stateName: "已驳回",
          type: "danger",
        },
        {
          state: 8,
          stateName: "初审通过",
          type: "success",
        },
        {
          state: 9,
          stateName: "已驳回",
          type: "danger",
        },
      ],
      loading: false,
      tableData: [],
      tableColumns: [
        {
          key: "code",
          label: "申请编号",
          width: 200,
        },
        {
          key: "name",
          label: "企业联系人",
          width: 150,
        },
        {
          key: "phone",
          label: "手机号",
          width: 150,
        },
        {
          key: "guideName",
          label: "事项名称",
          width: 150,
        },
        {
          key: "realEstateArea",
          label: "不动产坐落辖市区",
          width: 150,
        },
        {
          key: "departmentName",
          label: "实施主体",
          type: "slot",
          // width: 150
        },
        {
          key: "createTime",
          label: "更新时间",
          width: 160,
        },
      ],
      pagination: {
        total: 0,
        pageSize: 10,
        currentPage: 1,
      },
      viewShow: false,
      viewDetail: {},
      recordShow: false,
      recordList: [],
      examineList: [], // 审核单位数据
      housingList: [], // 住建局列表数据
      totalList: [], // 合并数组
      realName: "",
      realEstateArea: null,
      reassignmentShow: false,
      params: {
        code: "",
        checkArea: "",
        departmentCode: "10000031",
      },
      checkAreaList: [
        {
          label: "市区",
          value: "市区",
          children: [
            {
              label: "京口区",
              value: "京口区",
            },
            {
              label: "润州区",
              value: "润州区",
            },
            {
              label: "镇江高新区",
              value: "镇江高新区",
            },
            {
              label: "镇江新区-丁卯片区",
              value: "镇江新区-丁卯片区",
            },
          ],
        },
        {
          label: "丹徒区",
          value: "丹徒区",
        },
        {
          label: "镇江新区",
          value: "镇江新区",
          children: [
            {
              label: "大港片区",
              value: "大港片区",
            },
          ],
        },
        {
          label: "句容市",
          value: "句容市",
        },
      ],
      departmentName: "",
      areaList: [
        {
          id: "",
          label: "全部",
        },
        {
          id: "京口区",
          label: "京口区",
        },
        {
          id: "润州区",
          label: "润州区",
        },
        {
          id: "丹徒区",
          label: "丹徒区",
        },
        {
          id: "镇江新区-大港片区",
          label: "镇江新区-大港片区",
        },
        {
          id: "镇江新区-丁卯片区",
          label: "镇江新区-丁卯片区",
        },
        {
          id: "镇江高新区",
          label: "镇江高新区",
        },
        {
          id: "句容市",
          label: "句容市",
        },
      ],

      detail: {},
      arrList: [],
      arr1: "",
      arr2: "",
      arr3: "",
      docxsrc: "",
      rowDetail: "",
      templateType: "",
      refundShow: false,
      refundDetail: {},
      refundRules: {
        reason: [
          {
            required: true,
            message: "请输入通过原因",
            trigger: "blur",
          },
        ],
        taxReimbursementAmount: [
          {
            required: true,
            message: "请输入退税金额",
            trigger: "blur",
          },
        ],
      },
      refundForm: {},
      fileDownload: false,
      row: null,
    };
  },
  watch: {
    $route() {
      if (this.$route) {
        this.userName = localStorage.getItem("userName");
        // 10000027  人才窗口code   10000031 市财政局code退税办理
        this.searchForm.departmentCode = this.$route.query.departmentCode;
        // realEstateArea: 市区、镇江新区、丹徒区
        this.realEstateArea = this.$route.query.realEstateArea
          ? this.$route.query.realEstateArea
          : null;
        // departmentName: 审核部门名称（左侧列表）
        this.departmentName = this.$route.query.departmentName;
        this.searchForm.name = "";
        this.searchForm.phone = "";
        this.searchForm.state = "";
        this.init();
      }
    },
    refundShow: {
      handler(val) {
        if (!val) {
          this.refundForm = {
            reason: "",
            taxReimbursementAmount: "",
          };
        }
      },
    },
  },
  methods: {
    init() {
      this.tableData = [];
      this.loading = true;
      let parmas = {
        name: this.searchForm.name,
        phone: this.searchForm.phone,
        state: this.searchForm.state,
        departmentCode: this.searchForm.departmentCode,
        pageNum: this.pagination.currentPage,
        pageSize: this.pagination.pageSize,
        checkArea: this.realEstateArea,
        checkArealEstateArea: this.searchForm.checkArealEstateArea,
      };
      queryHouseListDeedTax(parmas).then((res) => {
        this.loading = false;
        if (res.success) {
          this.pagination.total = res.data.total;
          if (res.data.total) {
            this.tableData = res.data.list.map((item) => {
              item.stateName = this.getSatusArr(item.state)?.stateName;
              item.type = this.getSatusArr(item.state)?.type;
              return item;
            });
            if (localStorage.getItem("userName") == "admin") {
              this.tableData = changeList(this.tableData);
            }
          } else {
            this.tableData = [];
          }
          if (this.fileDownload && this.row) {
            const url = this.tableData.filter((item) => {
              return item.code === this.row.code;
            })[0]?.fileUrl;
            window.location.href = url;
            this.fileDownload = false;
            this.row = null;
          }
        }
      });
    },
    initNew() {
      return new Promise((resolve) => {
        this.tableData = [];
        this.loading = true;
        let parmas = {
          name: this.searchForm.name,
          phone: this.searchForm.phone,
          state: this.searchForm.state,
          departmentCode: this.searchForm.departmentCode,
          pageNum: this.pagination.currentPage,
          pageSize: this.pagination.pageSize,
          checkArea: this.realEstateArea,
          checkArealEstateArea: this.searchForm.checkArealEstateArea,
        };
        queryHouseListDeedTax(parmas).then((res) => {
          this.loading = false;
          if (res.success) {
            this.pagination.total = res.data.total;
            if (res.data.total) {
              this.tableData = res.data.list.map((item) => {
                item.stateName = this.getSatusArr(item.state)?.stateName;
                item.type = this.getSatusArr(item.state)?.type;
                return item;
              });
              if (localStorage.getItem("userName") == "admin") {
                this.tableData = changeList(this.tableData);
              }
              resolve();
            } else {
              this.tableData = [];
            }
            if (this.fileDownload && this.row) {
              const url = this.tableData.filter((item) => {
                return item.code === this.row.code;
              })[0]?.fileUrl;
              window.location.href = url;
              this.fileDownload = false;
              this.row = null;
            }
          }
        });
      });
    },
    onSubmit() {
      this.pagination.currentPage = 1;
      this.init();
    },
    jumpPage() {
      this.init();
    },
    // changeUrl(url) {
    //     let params = {
    //         file: url,
    //         day: 1
    //     }
    //     getTempUrl(params).then((res) => {
    //         if (res.data.indexOf('81.69.44.115') !== -1) {
    //             // 测试环境
    //             window.location.href = res.data
    //         } else {
    //             // 生产环境
    //             // http跨域 ---> https
    //             let a = res.data.substr(0, 4) + 's' + res.data.substr(4)
    //             window.location.href = a
    //         }
    //     })
    // },
    download(url) {
      // this.changeUrl(url)
      if (url.indexOf("81.69.44.115") !== -1) {
        // 测试环境
        window.location.href = url;
      } else {
        // 生产环境
        // http跨域 ---> https
        // let a = url.substr(0, 4) + 's' + url.substr(4)
        // window.location.href = a
        window.location.href = url;
      }
    },
    view(row) {
      let params = {
        code: row.code,
        // matterType: row.matterType
      };
      queryHouseDeedTaxDetailInfo(params).then((res) => {
        // let arr = []
        // res.data.pictures.forEach((item) => {
        //     let params = {
        //         file: item.picture,
        //         day: 1
        //     }
        //     arr.push(getTempUrl(params))
        // })
        // Promise.all(arr).then(res1 => {
        //     let arr1 = []
        //     arr1 = res1.map((item, index) => ({ picture: item.data, pictureType: res.data.pictures[index].pictureType }))
        this.viewDetail = res.data;
        if (localStorage.getItem("userName") == "admin") {
          this.viewDetail.name = setName(this.viewDetail.name);
          this.viewDetail.phone = setTel(this.viewDetail.phone);
          this.viewDetail.idCard = setCertNo(this.viewDetail.idCard);
        }
        this.viewDetail.idCardPicture = res.data.pictures.filter(
          (item) => item.pictureType === 1
        );
        this.viewDetail.bankCardPicture = res.data.pictures.filter(
          (item) => item.pictureType === 5
        );
        this.viewDetail.contract = res.data.pictures.filter(
          (item) => item.pictureType === 2
        );
        this.viewDetail.certificate = res.data.pictures.filter(
          (item) => item.pictureType === 3
        );
        this.viewDetail.voucher = res.data.pictures.filter(
          (item) => item.pictureType === 4 || item.pictureType === 6
        );
        this.viewDetail.signUrl = res.data.pictures.filter(
          (item) => item.pictureType === 10
        );
        this.viewShow = true;
        // })
        let reason = [];
        res.data.recordVos.map((item) => {
          if (item) {
            reason.push(item);
          }
        });
        this.recordList = reason.map((item) => {
          item.stateName = this.getSatusArr1(item.state)
            ? this.getSatusArr1(item.state)?.stateName
            : "未知状态";
          return item;
        });
        this.examineList = this.recordList;
        this.examineList.forEach((item) => {
          item.state != 4 && item.state != 9
            ? (item.state = "通过")
            : (item.state = "拒绝");
        });
        this.totalList = this.examineList;
      });
    },
    record(row) {
      queryHouseDeedTaxRecord({ code: row.code }).then((res) => {
        let reason = [];
        res.data.map((item) => {
          if (item) {
            reason.push(item);
          }
        });
        this.recordList = reason.map((item) => {
          item.stateName = this.getSatusArr1(item.state)
            ? this.getSatusArr1(item.state).stateName
            : "未知状态";
          return item;
        });
        this.recordShow = true;
      });
    },
    dispatch(row) {
      this.$prompt(`确定通过该申请的退税办理吗?`, "提示", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        inputPlaceholder: "请输入退税金额(万元)",
        inputType: "textarea",
        type: "warning",
      })
        .then(({ value }) => {
          if (!value) {
            this.$message.error("未输入退税金额(万元)");
            return;
          }
          let params = {
            code: row.code,
            idCard: row.idCard,
            phone: row.phone,
            createTime: row.createTime,
            name: this.userName,
            departmentName: this.departmentName,
            taxReimbursementAmount: value,
            // name: '市财政局',
            state: 6,
            reviewerId: row.reviewerId,
            reason: "退税办理通过",
          };
          updateHouseDeedTaxState(params).then((res) => {
            if (res.success) {
              this.$message.success(`退税办理成功`);
              this.init();
            }
          });
        })
        .catch(() => {
          // console.log("取消审核");
        });
    },
    pass(row, type) {
      if (type == "default") {
        this.$prompt(`确定通过该申请的复审吗?`, "提示", {
          confirmButtonText: "确定",
          cancelButtonText: "取消",
          inputPlaceholder: "请输入原因",
          inputType: "textarea",
          type: "warning",
        })
          .then(({ value }) => {
            if (!value) {
              this.$message.error("未输入原因");
              return;
            }
            queryHouseDeedTaxDetailInfo({ code: row.code }).then((res) => {
              if (res.success) {
                let params = {
                  code: row.code,
                  idCard: res.data.idCard,
                  phone: res.data.phone,
                  createTime: row.createTime,
                  checkArea: row.checkArea,
                  name: this.userName,
                  departmentName: this.departmentName,
                  // name: '人才窗口',
                  state: 2,
                  reviewerId: row.reviewerId,
                  reason: value,
                };
                updateHouseDeedTaxState(params).then((res) => {
                  if (res.success) {
                    this.$message.success(`复审通过`);
                    this.init();
                    // if (this.$route.query.realEstateArea != '句容市') {
                    //     dtSubsidy({ billType: 1, code: row.code }).then((res) => {
                    //         console.log(res)
                    //         if (!res.success) {
                    //             this.$message.error(res.msg || '推送失败');
                    //         }
                    //     })
                    // }
                  } else {
                    this.$message.warning(
                      res.msg || "该申请已被其他部门驳回，无法审核通过"
                    );
                  }
                });
              }
            });
          })
          .catch(() => {
            // console.log("取消审核");
          });
      } else if (type == "danYang") {
        this.refundShow = true;
        this.refundDetail = row;
      }
    },
    // 退税办理--确定
    refundConfirm() {
      this.$refs.refundForm.validate((valid) => {
        if (valid) {
          queryHouseDeedTaxDetailInfo({ code: this.refundDetail.code }).then(
            (res) => {
              if (res.success) {
                let params = {
                  code: this.refundDetail.code,
                  idCard: res.data.idCard,
                  phone: res.data.phone,
                  createTime: this.refundDetail.createTime,
                  checkArea: this.refundDetail.checkArea,
                  name: this.userName,
                  departmentName: this.departmentName,
                  // name: '人才窗口',
                  state: 6,
                  reviewerId: this.refundDetail.reviewerId,
                  reason: this.refundForm.reason,
                  taxReimbursementAmount:
                    this.refundForm.taxReimbursementAmount,
                };
                updateHouseDeedTaxState(params).then((res) => {
                  if (res.success) {
                    this.$message.success(`审批通过`);
                    this.init();
                    this.refundShow = false;
                  } else {
                    this.$message.warning(
                      res.msg || "审批失败，请检查审批流程是否存在问题"
                    );
                  }
                });
              } else {
                this.$message.warning(res.msg);
              }
            }
          );
        }
      });
    },
    deny(row) {
      this.$prompt(`确定驳回该申请吗?`, "提示", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        inputPlaceholder: "请输入原因",
        inputType: "textarea",
      })
        .then(({ value }) => {
          if (!value) {
            this.$message.error("未输入原因");
            return;
          }
          queryHouseDeedTaxDetailInfo({ code: row.code }).then((res) => {
            if (res.success) {
              let params = {
                code: row.code,
                idCard: res.data.idCard,
                phone: res.data.phone,
                createTime: row.createTime,
                checkArea: row.checkArea,
                name: this.userName,
                departmentName: this.departmentName,
                state: 4,
                reviewerId: row.reviewerId,
                reason: value,
              };

              updateHouseDeedTaxState(params).then((res) => {
                this.$message.success(res.msg || `驳回成功`);
                this.init();
              });
            }
          });
        })
        .catch(() => { });
    },
    drevokeeny(row) {
      this.$confirm(`确定撤回该申请的审核结果吗?`, "提示", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      }).then(() => {
        let params = {
          code: row.code,
          phone: row.phone,
          reviewerId: row.reviewerId,
          state: row.state,
        };
        mainHouseRevocation(params).then((res) => {
          if (res.code == 200 || res.success) {
            this.$message.success(res.data || "审核撤回成功");
            this.init();
          } else {
            this.$message.error(res.msg);
            this.init();
          }
        });
      });
    },
    reassignment(row) {
      this.params.code = row.code;
      this.params.checkArea = row.checkArea;
      this.reassignmentShow = true;
    },
    closeDialog() {
      this.reassignmentShow = false;
      this.params = {
        code: "",
        checkArea: "",
        departmentCode: "10000031",
      };
    },
    handleChange(value) {
      if (value.length == 2) {
        this.params.checkArea = value[1];
      } else {
        this.params.checkArea = value[0];
      }
    },
    determine() {
      this.$confirm(`确定改派该申请的审核部门吗?`, "提示", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      }).then(() => {
        updateHouseCheckArea(this.params).then((res) => {
          if (res.success) {
            this.reassignmentShow = false;
            this.$message.success(`改派成功`);
            this.init();
          } else {
            this.$message.warning(
              res.msg || "该申请已被其他部门驳回，无法审核通过"
            );
          }
        });
      });
    },
    getSatusArr(state) {
      return this.stateList.filter((item) => {
        return item.state === state;
      })[0];
    },
    getSatusArr1(state) {
      return this.stateList1.filter((item) => {
        return item.state === state;
      })[0];
    },
    async handleCommand(row, com, type) {
      console.log(row, com);
      this.templateType = type;

      // this.downloadUrl=row.fileUrl
      switch (com) {
        case "reset":
          this.resetHandle(row);
          break;

        default:
          this.row = row;
          this.fileDownload = true;
          await this.resetHandle(row);
          // await this.resetHandle(row);
          break;
      }
    },
    resetHandle(row) {
      return new Promise((resolve) => {
        let params = {
          code: row.code,
        };
        Promise.all([
          queryHouseDeedTaxDetailInfo(params),
          queryHouseDeedTaxRecord(params),
        ]).then((res) => {
          this.detail = res[0].data;
          this.arrList = res[1].data;
          if (this.templateType == "default") {
            this.detail.recordVos.forEach((item) => {
              item.departmentName.search("财政") != -1
                ? (this.arr1 = item.reason)
                : "";
              item.departmentName.search("不动产") != -1
                ? (this.arr2 = item.reason)
                : "";
              item.departmentName.search("税务") != -1
                ? (this.arr3 = item.reason)
                : "";
            });
          } else if (this.templateType == "danYang") {
            this.detail.recordVos.forEach((item) => {
              item.departmentName.search("财政") != -1
                ? (this.arr1 = item.reason)
                : "";
              item.departmentName.search("不动产") != -1
                ? (this.arr2 = item.reason)
                : "";
              item.departmentName.search("税务") != -1
                ? (this.arr3 = item.reason)
                : "";
              item.departmentName.search("住建") != -1
                ? (this.arr4 = item.reason)
                : "";
            });
          }
          this.initTemplate();
          resolve();
          // }
        });
      });
    },
    initTemplate() {
      return new Promise((resolve) => {
        let that = this;
        let promiseText = that.$store.state.utils.promiseText;
        let text = "";
        if (
          that.detail.realEstateArea == "丹阳市" &&
          that.detail.commitmentType == "1"
        ) {
          // 单独所有、共同共有
          text = promiseText.alone;
        } else if (
          that.detail.realEstateArea == "丹阳市" &&
          that.detail.commitmentType == "2"
        ) {
          // 按份共有

          text = promiseText.together;
        } else {
          text = promiseText.default;
        }

        let arr = {};

        arr.promiseText = text;

        arr.time = that.detail.createTime.split(" ")[0];

        arr.commitmentTypeName =
          that.detail.commitmentType == 1 ? "单独所有、共同共有" : "按份共有";

        arr.name = that.detail.name;
        arr.idCard = that.detail.idCard;
        arr.title = "改善型住房";
        arr.birthDate =
          that.detail.idCard.substring(6, 10) +
          "-" +
          that.detail.idCard.substring(10, 12) +
          "-" +
          that.detail.idCard.substring(12, 14);
        arr.address = that.detail.address;
        arr.phone = that.detail.phone;
        arr.realEstateAddress = that.detail.realEstateAddress;
        arr.realEstateCard = that.detail.realEstateCard;
        arr.square = that.detail.square;
        arr.bank = that.detail.bank;
        arr.bankCard = that.detail.bankCard;
        arr.arr1 = that.arr1 || ""; // 财政
        arr.arr2 = that.arr2 || ""; // 不动产
        arr.arr3 = that.arr3 || ""; // 税务

        if (this.$route.query.realEstateArea != "句容市") {
          arr.arr1 = that.arr1 || ""; // 财政
          arr.arr2 = that.arr2 || ""; // 不动产
          arr.arr3 = that.arr3 || ""; // 税务
          this.docxsrc = "./static/deedTax1.docx"; //模板文件的位置
          if (this.templateType == "danYang") {
            arr.arr1 = that.arr1 || ""; // 财政
            arr.arr2 = that.arr2 || ""; // 不动产
            arr.arr3 = that.arr3 || ""; // 税务
            arr.arr4 = that.arr4 || ""; // 住建
            this.docxsrc = "./static/deedTax1_danYang.docx"; //模板文件的位置
          }
        } else {
          arr.arr3 = that.arr3 || ""; // 税务
          this.docxsrc = "./static/deedTax2.docx"; //模板文件的位置
        }
        console.log(this.docxsrc, "docxsrc");

        // let docxname = '购房契税补贴申请表'; //导出文件的名字
        // 读取并获得模板文件的二进制内容
        JSZipUtils.getBinaryContent(this.docxsrc, function (error, content) {
          // docxsrc是模板。我们在导出的时候，会根据此模板来导出对应的数据
          // 抛出异常
          // debugger
          if (error) {
            throw error;
          }
          // 创建一个PizZip实例，内容为模板的内容
          let zip = new PizZip(content);
          // 创建并加载docx templater实例对象
          let doc = new docxtemplater().loadZip(zip);
          // 设置模板变量的值
          // console.log("arr666---", arr);
          doc.setData({
            ...arr, // e中的数据可以再模板中直接使用
          });
          try {
            // 用模板变量的值替换所有模板变量
            doc.render();
          } catch (error) {
            // 抛出异常
            let e = {
              message: error.message,
              name: error.name,
              stack: error.stack,
              properties: error.properties,
            };
            console.log(
              JSON.stringify({
                error: e,
              })
            );
            throw error;
          }
          // 生成一个代表docxtemplater对象的zip文件（不是一个真实的文件，而是在内存中的表示）
          let out = doc.getZip().generate({
            type: "blob",
            mimeType:
              "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
          });
          uploadWordFile(
            new File([out], "deed-text" + new Date().valueOf() + ".docx", {
              type: out.type,
            })
          ).then((res) => {
            console.log("文件的res----", res);
            if (res.success) {
              let params = {
                code: that.detail.code,
                fileUrl: res.data,
              };
              saveHouseFileUrl(params).then(async (res) => {
                console.log("初审通过后的传填充文件给后端---", res);
                await that.initNew();
                resolve();
              });
            } else {
              that.$message.error(res.msg);
              queryHouseDeedTaxDetailInfo({ code: that.rowDetail.code }).then(
                (res) => {
                  console.log(res);
                  if (res.success) {
                    let params = {
                      code: that.rowDetail.code,
                      phone: res.data.phone,
                      reviewerId: that.rowDetail.reviewerId,
                      state: res.data.state,
                    };
                    initHouseDepartmentRevocation(params).then(async (res) => {
                      console.log(res);
                      await that.initNew();
                      resolve();
                    });
                  }
                }
              );
            }
          });
        });
      });
    },
  },
  created() {
    this.userName = localStorage.getItem("userName");
    // 10000027  人才窗口code   10000031 市财政局code退税办理
    this.searchForm.departmentCode = this.$route.query.departmentCode;
    // realEstateArea: 市区、镇江新区、丹徒区
    this.realEstateArea = this.$route.query.realEstateArea
      ? this.$route.query.realEstateArea
      : null;
    // departmentName: 审核部门名称（左侧列表）
    this.departmentName = this.$route.query.departmentName;
    this.init();
  },
};
</script>

<style lang="stylus" scoped>
@import '~@/stylus/common';

.content {
  max-height: 60vh;
  overflow-y: auto;

  .cell {
    display: flex;
    align-items: center;
    padding: 10px;
    border-bottom: 1px solid #eee;

    .label {
      width: 150px;
      color: #999;
      text-align: left;

      span {
        color: red;
        font-size: 12px;
      }
    }

    .value {
      color: #000;
      text-align: left;
    }
    .value1{
      color: red;
    }
    .value2{
      color: green;
    }

    .info {
      .item {
        width: 100%;
        text-align: left;
        color: #000;
        margin-bottom: 10px;
      }

      .item:last-child {
        margin-bottom: 0;
      }
    }
  }
}
.el-dropdown >>>.el-dropdown-link{
    font-size:12px
  }
.refuseDialog >>>.el-dialog__body{
    padding-top:0px ;
  }
</style>
