<!--
 * @Description:
 * @Autor: renchao
 * @LastEditTime: 2023-07-05 16:15:28
-->
<template>
  <!-- 受理信息 -->
  <div class="slxx">
    <el-form
      :model="ruleForm"
      :rules="rules"
      :class="{ readonly: editDisabled }"
      class="loadingtext"
      ref="ruleForm"
      :label-position="flag ? 'top' : ''"
      :inline="flag"
      label-width="169px"
      inline-message
      :show-message="false"
    >
      <div class="slxx_con" v-if="isShow" :class="flag ? 'formMarginBot0' : ''">
        <div class="slxx_title title-block">
          补录信息
          <div class="triangle"></div>
        </div>
        <el-row :gutter="10">
          <el-col :span="8">
            <el-form-item label="补录编号:">
              <el-input disabled v-model="ruleForm.repair.ywh"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="补录人员:">
              <el-input disabled v-model="ruleForm.repair.slry"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="补录时间:">
              <el-input disabled v-model="ruleForm.repair.slsj"></el-input>
            </el-form-item>
          </el-col>
        </el-row>
        <div class="slxx_title title-block">
          抵押不动产情况
          <div class="triangle"></div>
        </div>
        <el-row :gutter="10">
          <el-col :span="8">
            <el-form-item label="抵押不动产信息:" prop="ztQlxx.bdcqzh" :rules="rules.ztQlxxrules">
              <select-table
                v-model="ruleForm.ztQlxx"
                :table-width="550"
                :tableData="ztQlxxList"
                :props="props"
                @change="ztQlxxchange"
              >
                <el-table-column
                  prop="qllxmc"
                  width="130"
                  label="权利类型"
                ></el-table-column>
                <el-table-column
                  prop="bdcqzh"
                  width="160"
                  label="不动产权证书"
                ></el-table-column>
                <el-table-column prop="qlrmc" label="权利人"></el-table-column>
                <el-table-column prop="mjmc" label="面积"></el-table-column>
                <el-table-column prop="ytmc" label="用途"></el-table-column>
                <el-table-column prop="zl" label="坐落"></el-table-column>
              </select-table>
            </el-form-item>
          </el-col>

          <el-col :span="8" v-if="ssqlxxshow">
            <el-form-item label="上手权利信息:">
              <select-table
                v-model="ruleForm.ssQlxx"
                :table-width="550"
                :tableData="ssQlxxList"
                :props="props"
                @change="ssQlxxchange"
              >
                <el-table-column
                  prop="qllxmc"
                  width="130"
                  label="权利类型"
                ></el-table-column>
                <el-table-column
                  prop="bdcqzh"
                  width="160"
                  label="不动产权证书"
                ></el-table-column>
                <el-table-column prop="qlrmc" label="权利人"></el-table-column>
                <el-table-column prop="mjmc" label="面积"></el-table-column>
                <el-table-column prop="ytmc" label="用途"></el-table-column>
                <el-table-column prop="zl" label="坐落"></el-table-column>
              </select-table>
            </el-form-item>
          </el-col>
        </el-row>

        <el-row :gutter="10" v-if="ruleForm.ztQlxx != null">
          <el-col :span="8">
            <el-form-item label="权利人:">
              <el-input disabled v-model="ruleForm.ztQlxx.qlrmc"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="证件种类:">
              <el-input disabled v-model="ruleForm.ztQlxx.qlrzjzl"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="证件号:">
              <el-input disabled v-model="ruleForm.ztQlxx.qlrzjhm"></el-input>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="10" v-if="ruleForm.ztQlxx != null">
          <el-col :span="8">
            <el-form-item label="权利类型:">
              <el-input disabled v-model="ruleForm.ztQlxx.qllxmc"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="不动产权证号:">
              <el-input disabled v-model="ruleForm.ztQlxx.bdcqzh"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="坐落:">
              <el-input disabled v-model="ruleForm.ztQlxx.zl"></el-input>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="10" v-if="ruleForm.ztQlxx != null">
          <el-col :span="8">
            <el-form-item label="不动产单元号:">
              <el-input disabled v-model="ruleForm.ztQlxx.bdcdyh"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="面积:">
               <el-input disabled v-model="ruleForm.ztQlxx.mjmc"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="用途:">
              <el-input disabled v-model="ruleForm.ztQlxx.ytmc"></el-input>
            </el-form-item>
          </el-col>
        </el-row>
        <div class="slxx_title title-block">
          抵押权信息
          <div class="triangle"></div>
        </div>

        <el-row :gutter="10">
          <el-col :span="8">
            <el-form-item label="不动产单元号:">
              <el-input disabled v-model="ruleForm.qlxx.bdcdyh"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="权利类型:">
              <el-input disabled v-model="ruleForm.qlxx.qllxmc"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="登记类型:" prop="qlxx.djlx" :rules="rules.djlxrules">
              <el-select v-model="ruleForm.qlxx.djlx" @change="djlxchange">
                <el-option
                  v-for="item in djlxlist"
                  :key="item.dcode"
                  :label="item.dname"
                  :value="item.dcode"
                ></el-option>
              </el-select>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="10">
          <el-col :span="8">
            <el-form-item label="权属状态:">
              <el-select v-model="ruleForm.qlxx.qszt">
                <el-option
                  v-for="item in qsztlist"
                  :key="item.dcode"
                  :label="item.dname"
                  :value="item.dcode"
                ></el-option>
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="业务号:">
              <el-input v-model="ruleForm.qlxx.ywh"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="上手业务号:">
              <el-input disabled v-model="ruleForm.qlxx.ssywh"></el-input>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="10">
          <el-col :span="8">
            <el-form-item label="抵押金额类型:">
              <el-radio-group v-model="ruleForm.diyaq.dyjelx">
                <el-radio label="0">独立抵押金额</el-radio>
                <el-radio label="1">整体抵押金额</el-radio>
              </el-radio-group>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="抵押方式:">
              <el-radio-group v-model="ruleForm.diyaq.dyfs">
                <el-radio label="1">一般抵押</el-radio>
                <el-radio label="2">最高额抵押</el-radio>
              </el-radio-group>
            </el-form-item>
          </el-col>
          <el-col :span="8" v-show="ruleForm.diyaq.dyfs == 2">
            <el-form-item label="最高债权额:">
              <div style="display: flex">
                <el-input
                  v-model="ruleForm.diyaq.zgzqse"
                  style="width: 500%"
                  oninput="value=value.replace(/[^\d.]/g,'')"
                ></el-input>
                <el-select v-model="ruleForm.diyaq.jedw">
                  <el-option
                    v-for="item in dictData['A57']"
                    :key="item.dcode"
                    :label="item.dname"
                    :value="item.dcode"
                  ></el-option>
                </el-select>
              </div>
            </el-form-item>
          </el-col>
          <el-col :span="8" v-show="ruleForm.diyaq.dyfs == 1">
            <el-form-item label="被担保主债权数额:">
              <div style="display: flex">
                <el-input
                  v-model="ruleForm.diyaq.bdbzzqse"
                  style="width: 500%"
                  oninput="value=value.replace(/[^\d.]/g,'')"
                ></el-input>
                <el-select v-model="ruleForm.diyaq.jedw">
                  <el-option
                    v-for="item in dictData['A57']"
                    :key="item.dcode"
                    :label="item.dname"
                    :value="item.dcode"
                  ></el-option>
                </el-select>
              </div>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="10">
        <el-col :span="8">
          <el-form-item label="抵押面积:">
         <div class="flex">
                <el-input
                  v-model="ruleForm.diyaq.dymj"
                  oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
                <el-select
                  v-model="ruleForm.diyaq.jedw"
                  style="width: 20%">
                  <el-option
                    v-for="item in dictData['A7']"
                    :key="item.dcode"
                    :label="item.dname"
                    :value="item.dcode">
                  </el-option>
                </el-select>
              </div>
          </el-form-item>
        </el-col>

        <el-col :span="8">
          <el-form-item
            label="债务履行起始时间:"
            prop="diyaq.zwlxqssj"
            :rules="rules.zwlxqssjrules"
          >
            <el-date-picker
              v-model="ruleForm.diyaq.zwlxqssj"
              type="date"
              placeholder="选择日期"
              value-format="yyyy-MM-dd HH:mm:ss"
              format="yyyy-MM-dd"
            >
            </el-date-picker>
          </el-form-item>
        </el-col>
        <el-col :span="8">
          <el-form-item
            label="债务履行结束时间:"
            prop="diyaq.zwlxjssj"
            :rules="rules.zwlxjssjrules"
          >
            <el-date-picker
              v-model="ruleForm.diyaq.zwlxjssj"
              type="date"
              placeholder="选择日期"
              value-format="yyyy-MM-dd HH:mm:ss"
              format="yyyy-MM-dd"
            >
            </el-date-picker>
          </el-form-item>
        </el-col>
         </el-row>
         <el-row :gutter="10">
        <el-col :span="8">
          <el-form-item label="在建建筑物坐落:">
            <el-input v-model="ruleForm.qlxx.zl"></el-input>
          </el-form-item>
        </el-col>
        <!-- <el-col :span="8">
          <el-form-item label="不动产登记证明号:" prop="bdcqzh">
            <el-input v-model="ruleForm.qlxx.bdcqzh"></el-input>
          </el-form-item>
        </el-col> -->
        <!-- <el-col :span="8">
          <el-form-item
            label="区县代码:"
            prop="qlxx.qxdm"
            :rules="rules.qxdmrules"
          >
            <el-input v-model="ruleForm.qlxx.qxdm"></el-input>
          </el-form-item>
        </el-col> -->
        <el-col :span="8">
          <el-form-item label="在建建筑物抵押范围:">
            <el-input v-model="ruleForm.diyaq.zjjzwdyfw"></el-input>
          </el-form-item>
        </el-col>

        <el-col :span="8">
          <el-form-item label="担保范围:">
            <el-input v-model="ruleForm.diyaq.dbfw"></el-input>
          </el-form-item>
        </el-col>
        <el-col :span="8">
          <el-form-item label="债务履行期限(确定期间):">
            <el-input v-model="ruleForm.diyaq.dyqx"></el-input>
          </el-form-item>
        </el-col>

        <el-col :span="8">
          <el-form-item label="最高债权确定事实和数额:">
            <el-input v-model="ruleForm.diyaq.zgzqqdss"></el-input>
          </el-form-item>
        </el-col>
        <el-col :span="8">
          <el-form-item label="是否限制转移约定:">
            <el-select v-model="ruleForm.diyaq.sfczjzhxz">
              <el-option
                v-for="item in dictData['A6']"
                :key="item.dcode"
                :label="item.dname"
                :value="item.dcode"
              >
              </el-option>
            </el-select>
          </el-form-item>
        </el-col>
        <el-col :span="8">
          <el-form-item
            label="不动产登记证明号:"
            prop="qlxx.bdcqzh"
            :rules="rules.bdcqzhrules"
          >
            <el-input v-model="ruleForm.qlxx.bdcqzh"></el-input>
          </el-form-item>
        </el-col>

        <el-col :span="8">
          <el-form-item
            label="登记机构:"
            prop="qlxx.djjg"
            :rules="rules.djjgrules"
          >
            <el-input v-model="ruleForm.qlxx.djjg"></el-input>
          </el-form-item>
        </el-col>
        <el-col :span="8">
          <el-form-item
            label="登簿人:"
            prop="qlxx.dbr"
            :rules="rules.dbrrules"
          >
            <el-input v-model="ruleForm.qlxx.dbr"></el-input>
          </el-form-item>
        </el-col>
        <el-col :span="8">
          <el-form-item
            label="登记时间:"
            prop="qlxx.djsj"
            :rules="rules.djsjrules"
          >
            <el-date-picker
              v-model="ruleForm.qlxx.djsj"
              type="date"
               class="width100"
              placeholder="选择日期"
              value-format="yyyy-MM-dd HH:mm:ss"
              format="yyyy-MM-dd"
            >
            </el-date-picker>
          </el-form-item>
        </el-col>

        <!-- <el-col :span="8">
            <el-form-item label="是否预告登记:">
              <el-select v-model="ruleForm.diyaq.sfygdj">
                <el-option
                  v-for="item in dictData['A6']"
                  :key="item.dcode"
                  :label="item.dname"
                  :value="item.dcode"></el-option>
              </el-select>
            </el-form-item>
          </el-col> -->
        <!-- <el-col :span="8">
            <el-form-item label="在建建筑物坐落:">
              <el-input v-model="ruleForm.diyaq.zjzzwzl"></el-input>
            </el-form-item>
          </el-col> -->

        <el-col :span="24">
          <el-form-item label="登记原因:">
            <el-input v-model="ruleForm.qlxx.djyy"></el-input>
          </el-form-item>
        </el-col>
        <el-col :span="24">
          <el-form-item label="附记:">
            <el-input v-model="ruleForm.diyaq.fj"></el-input>
          </el-form-item>
        </el-col>
        <el-col :span="8" v-if="ruleForm.qlxx.qszt == '2'">
          <el-form-item label="注销抵押业务号:">
            <el-input v-model="ruleForm.diyaq.zxdyywh"></el-input>
          </el-form-item>
        </el-col>

        <el-col :span="8" v-if="ruleForm.qlxx.qszt == '2'">
          <el-form-item
            label="注销时间:"
            prop="qlxx.zxsj"
            :rules="rules.zxsjrules"
          >
            <el-date-picker
              v-model="ruleForm.qlxx.zxsj"
              type="date"
              placeholder="选择日期"
              value-format="yyyy-MM-dd HH:mm:ss"
              format="yyyy-MM-dd"
            >
            </el-date-picker>
          </el-form-item>
        </el-col>
        <el-col :span="8" v-if="ruleForm.qlxx.qszt == '2'">
          <el-form-item
            label="注销登簿人:"
            prop="qlxx.zxdbr"
            :rules="rules.zxdbrrules"
          >
            <el-input v-model="ruleForm.qlxx.zxdbr"></el-input>
          </el-form-item>
        </el-col>
        <el-col :span="24" v-if="ruleForm.qlxx.qszt == '2'">
          <el-form-item
            label="注销抵押原因:"
            prop="diyaq.zxdyyy"
            :rules="rules.zxdyyyrules"
          >
            <el-input v-model="ruleForm.diyaq.zxdyyy"></el-input>
          </el-form-item>
        </el-col>

          </el-row>
        <div class="slxx_title title-block">
          权利人信息
          <div class="triangle"></div>
        </div>
        <el-row :gutter="10">
          <el-col :span="14">
            <el-form-item label="共有方式:">
              <el-radio-group
                 :disabled="!ableOperation"
                v-model="ruleForm.qlxx.gyfs"
              >
                <el-radio label="0">单独所有</el-radio>
                <el-radio label="1">共同共有</el-radio>
                <el-radio label="2">按份所有</el-radio>
                <el-radio label="3">其它共有</el-radio>
              </el-radio-group>
            </el-form-item>
          </el-col>
        </el-row>
        <qlrCommonTable
          :tableData="ruleForm.qlrData"
          @upDateQlrxxList="upDateQlrxxList"
          :key="key"
          :ableOperation="ableOperation"
          :gyfs="ruleForm.qlxx.gyfs"
        />

        <div v-if="ruleForm.ywrData">
          <div class="slxx_title title-block">
            义务人信息
            <div class="triangle"></div>
          </div>
          <ywrCommonTable
            v-if="ruleForm.ywrData"
            :tableData="ruleForm.ywrData"
            :key="key"
            :ableOperation="ableOperation"
            @upDateQlrxxList="upDateYwrxxList"
          />
        </div>
      </div>
      <el-row class="btn" v-if="ableOperation">
        <el-form-item>
          <el-button type="primary" @click="onSubmit">保存</el-button>
        </el-form-item>
      </el-row>
    </el-form>
  </div>
</template>
<script>
import { mapGetters } from "vuex";
import { init, getSsQlxx, getZtQlxx, save } from "@/api/djbRepair.js";
import qlrCommonTable from "@/views/djbworkflow/components/qlrCommonTable";
import ywrCommonTable from "@/views/djbworkflow/components/ywrCommonTable";
import selectTable from "@/components/selectTable/index.vue";
import tdytTable from "@/views/workflow/components/tdytTable";
export default {
  components: { qlrCommonTable, ywrCommonTable, tdytTable, selectTable },
  computed: {
    ...mapGetters(["dictData", "flag"]),
    // 根据流程判断表单是否为只读
    editDisabled() {
      if (!this.ableOperation) {
        //只读状态
        return true;
      }
      return false;
    },
  },
  data() {
    return {
      mjdw:"1",
      props: {
        label: "bdcqzh",
        value: "bdcdyid",
      },
      //表单是否可操作
      propsParam: this.$attrs,
      key: 0,
      isShow: false,
      disabled: true,
      ssqlxxshow: true,
      czrOptions: [],
      ruleForm: {},
      // 权属状态
      qsztlist: [
        {
          dcode: "1",
          dname: "现势",
        },
        {
          dcode: "2",
          dname: "历史",
        },
      ],
      // 登记类型
      djlxlist: [
        {
          dcode: "100",
          dname: "首次登记",
        },
        {
          dcode: "200",
          dname: "转移登记",
        },
        {
          dcode: "300",
          dname: "变更登记",
        },
        {
          dcode: "500",
          dname: "更正登记",
        },

        {
          dcode: "901",
          dname: "补证",
        },
        {
          dcode: "902",
          dname: "换证",
        },
      ],
      ssQlxxList: [],
      ztQlxxList: [],
      ableOperation: false,
      rules: {
        ztQlxxrules: [
          { required: true, message: "抵押不动产信息", trigger: "change" },
        ],
        bdcqzhrules: [
          { required: true, message: "不动产登记证明号", trigger: "blur" },
        ],
        qxdmrules: [{ required: true, message: "区县代码", trigger: "blur" }],
        zwlxqssjrules: [
          { required: true, message: "债务履行起始时间", trigger: "blur" },
        ],
        zwlxjssjrules: [
          { required: true, message: "债务履行结束时间", trigger: "blur" },
        ],

        zxdyyyrules: [
          { required: true, message: "注销抵押原因", trigger: "blur" },
        ],
        zxsjrules: [{ required: true, message: "注销时间", trigger: "blur" }],
        zxdbrrules: [
          { required: true, message: "注销登簿人", trigger: "blur" },
        ],
        djjgrules: [{ required: true, message: "登记机构", trigger: "change" }],
        dbrrules: [{ required: true, message: "登簿人", trigger: "blur" }],
        djsjrules: [{ required: true, message: "登记时间", trigger: "blur" }],
        djlxrules: [{ required: true, message: "登记类型", trigger: "change" }],
      },
    };
  },
  created() {},
  mounted() {
    this.loadData();
    this.ableOperation = this.$parent.ableOperation;
  },
  methods: {
    /**
     * @description: ztQlxxchange
     * @param {*} val
     * @author: renchao
     */
    ztQlxxchange(val) {
      this.ruleForm.ztQlxx = val;
    },
    /**
     * @description: ssQlxxchange
     * @param {*} val
     * @author: renchao
     */
    ssQlxxchange(val) {
      this.ruleForm.ssQlxx = val;
      this.ruleForm.qlxx.ssywh = val.ywh;
    },
    djlxchange(val) {
      if (val == null || val == 100) {
        this.ssqlxxshow = false;
      } else {
        this.ssqlxxshow = true;
      }
    },
    /**
     * @description: loadData
     * @author: renchao
     */
    loadData() {
      this.$startLoading();
      this.propsParam.isEdit = this.$parent.isEdit;
      init(this.propsParam).then((res) => {
        if (res.code == 200) {
          this.ruleForm = res.result;
          this.$endLoading();
          this.isShow = true;
          let djlx = this.ruleForm.qlxx.djlx;
          if (djlx == null || djlx == 100) {
            this.ssqlxxshow = false;
          }
        }
      });
      //获取主体信息
      getSsQlxx({
        bdcdyid: this.propsParam.bdcdyid,
        qllx: this.propsParam.qllx,
      }).then((res) => {
        if (res.code == 200) {
          this.ssQlxxList = res.result;
        }
      });
      //获取上手信息
      getZtQlxx({ bdcdyid: this.propsParam.bdcdyid }).then((res) => {
        if (res.code == 200) {
          this.ztQlxxList = res.result;
        }
      });
    },
    // 更新土地用途信息
    /**
     * @description: 更新土地用途信息
     * @param {*} val
     * @author: renchao
     */
    upDateTdytxxList(val) {
      this.ruleForm.tdytqxList && (this.ruleForm.tdytqxList = _.cloneDeep(val));
      this.key++;
    },
    // 更新权利人信息
    /**
     * @description: 更新权利人信息
     * @param {*} val
     * @author: renchao
     */
    upDateQlrxxList(val) {
      this.ruleForm.qlrData && (this.ruleForm.qlrData = _.cloneDeep(val));
      this.czrOptions = this.ruleForm.qlrData;
      this.key++;
    },
    // 更新义务人信息
    /**
     * @description: 更新义务人信息
     * @param {*} val
     * @author: renchao
     */
    upDateYwrxxList(val) {
      this.ruleForm.ywrData && (this.ruleForm.ywrData = _.cloneDeep(val));
      this.key++;
    },
    /**
     * @description: onSubmit
     * @author: renchao
     */
    onSubmit() {
      this.$refs.ruleForm.validate((valid) => {
        if (valid) {
          if (this.ruleForm.qlrData.length == 0) {
            this.$message({
              showClose: true,
              message: "请确认权利人信息",
              type: "error",
            });
            return false;
          }
            if (this.ruleForm.ywrData.length == 0) {
            this.$message({
              showClose: true,
              message: "请确认义务人信息",
              type: "error",
            });
            return false;
          }
          if (this.ruleForm.qlxx.gyfs == "0") {
            if (this.ruleForm.qlrData.length > 1) {
              this.$message({
                showClose: true,
                message: "共有方式:单独所有,权利人只能是一个人",
                type: "error",
              });
              return false;
            }
            this.ruleForm.qlrData[0].sfczr = "1";
          }
          if (this.ruleForm.qlxx.gyfs == "1") {
            //是否分别持证
            if (this.ruleForm.qlxx.sqfbcz == "1") {
              //是
              this.ruleForm.qlrData.forEach((item, index) => {
                item.sfczr = "1";
              });
            } else {
              this.ruleForm.qlrData.forEach((item, index) => {
                if (item.zjh == this.ruleForm.czr) {
                  item.sfczr = "1";
                } else {
                  item.sfczr = "0";
                }
              });
            }
          }
          save(this.ruleForm).then((res) => {
            if (res.code === 200) {
              this.$message({
                showClose: true,
                message: "保存成功!",
                type: "success",
              });
              this.$store.dispatch("user/refreshPage", true);
            } else {
              this.$message({
                showClose: true,
                message: res.message,
                type: "error",
              });
            }
          });
        } else {
          return false;
        }
      });
    },
  },
};
</script>
<style scoped lang="scss">
@import "~@/styles/public.scss";
@import "~@/styles/slxx/slxx.scss";
.el-date-editor.el-input {
  width: 100%;
}
.el-table__row {
  height: 30px !important;
}
</style>