<!--
 * @Description:
 * @Autor: renchao
 * @LastEditTime: 2023-08-02 08:38:55
 :show-message="false"
-->
<template>
  <!-- 受理信息 -->
  <div class="slxx">
    <el-form
      :model="ruleForm"
      :rules="rules"
      :class="{readonly: editDisabled }"
      class="loadingtext"
      ref="ruleForm"
      :label-position="flag ? 'top' : ''"
      :show-message="false"
      :inline="flag"
      inline-message
      label-width="145px">
      <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" v-if="ztQlxxList">
            <el-form-item label="抵押不动产信息:" prop="ztQlxx" :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="业务号:" prop="qlxx.ywh" :rules="rules.ywhrules">
              <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-input disabled v-model="ruleForm.qlxx.qllxmc"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="登记原因:">
              <el-input disabled v-model="ruleForm.ygdj.djyy"></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-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="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.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="登记机构:" 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.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="预告登记种类:" prop="ygdj.ygdjzlmc" :rules="rules.ygdjlxrules">
              <el-select v-model="ruleForm.ygdj.ygdjzlmc">
                <el-option
                  v-for="item in dictData['A29']"
                  :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.ygdj.tdsyqr"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="规划用途:">
              <el-select v-model="ruleForm.ygdj.ghyt">
                <el-option
                  v-for="item in dictData['A17']"
                  :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.ygdj.ytmc"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="房屋性质:">
              <el-select v-model="ruleForm.ygdj.fwxz">
                <el-option
                  v-for="item in dictData['A19']"
                  :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.ygdj.fwxzmc"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="房屋结构:">
              <el-select v-model="ruleForm.ygdj.fwjg">
                <el-option
                  v-for="item in dictData['A46']"
                  :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.ygdj.szc"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="总层数:">
              <el-input v-model="ruleForm.ygdj.zcs"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="建筑面积:">
              <div class="flex">
                <el-input v-model="ruleForm.ygdj.jzmj"
                  oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
                <el-select
                  v-model="ruleForm.ygdj.mjdw"
                  :disabled="!ableOperation"
                  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" v-if="ruleForm.qlxx.qszt == '2'">
            <el-form-item label="注销预告业务号:">
              <el-input v-model="ruleForm.ygdj.zxygywh"></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.ygdj.zxygyy"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="8" v-if="ruleForm.qlxx.qszt == '2'">
            <el-form-item label="注销时间:">
              <el-date-picker
                v-model="ruleForm.ygdj.zxsj"
                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="取得价格/被担保主债权数额:">
              <div class="flex">
                <el-input v-model="ruleForm.ygdj.qdjg"
                  oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
                <el-select
                  v-model="ruleForm.ygdj.jedw"
                  :disabled="!ableOperation"
                  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="金额单位:">
              <el-input v-model="ruleForm.ygdj.jedw"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="担保范围:">
              <el-input v-model="ruleForm.ygdj.dbfw"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="是否存在禁止或限制转让抵押不动产的约定:">
              <el-input v-model="ruleForm.ygdj.sfczjzhxz"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="不动产登记证明号:">
              <el-input v-model="ruleForm.ygdj.bdcdjzmh"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="24">
            <el-form-item label="附记:">
              <el-input v-model="ruleForm.ygdj.fj"></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="12">
            <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-col :span="6" v-show="ruleForm.qlxx.gyfs != '0'">
            <el-form-item label="是否分别持证:">
              <el-radio-group
                v-model="ruleForm.qlxx.sqfbcz"
                :disabled="!ableOperation">
                <el-radio :label="1">是</el-radio>
                <el-radio :label="0">否</el-radio>
              </el-radio-group>
            </el-form-item>
          </el-col>
          <el-col
            :span="6"
            v-show="ruleForm.qlxx.sqfbcz == '0' && ruleForm.qlxx.gyfs == '1'">
            <el-form-item label="持证人:">
              <el-select
                v-model="ruleForm.czr"
                placeholder="持证人"
                :disabled="!ableOperation">
                <el-option
                  v-for="item in czrOptions"
                  :key="item.zjh"
                  :label="item.sqrmc"
                  :value="item.zjh">
                </el-option>
              </el-select>
            </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 ywmix from "@/views/ywbl/mixin/index"
  import { init, getSsQlxx, getZtQlxx, save } from "@/api/djbRepair.js";
  import qlrCommonTable from "@/views/djbworkflow/components/qlrCommonTable";
  import ywrCommonTable from "@/views/djbworkflow/components/ywrCommonTable";
  import tdytTable from "@/views/workflow/components/tdytTable";
  import selectTable from "@/components/selectTable/index.vue";
  export default {
    mixins: [ywmix],
    components: { qlrCommonTable, ywrCommonTable, tdytTable, selectTable },
    computed: {
      ...mapGetters(["dictData", "flag"]),
      // 根据流程判断表单是否为只读
      editDisabled () {
        if (!this.ableOperation) {
          //只读状态
          return true;
        }
        return false;
      },
    },
    data () {
      return {
        ssqlxxshow: true,
        props: {
          label: "bdcqzh",
          value: "bdcdyid",
        },
        //表单是否可操作
        propsParam: this.$attrs,
        key: 0,
        isShow: false,
        disabled: true,
        czrOptions: [],
        ssQlxxList: [],
        ztQlxxList: [],
        ruleForm: {},
        // 登记类型
        djlxlist: [
          {
            dcode: "100",
            dname: "首次登记",
          },
          {
            dcode: "200",
            dname: "转移登记",
          },
          {
            dcode: "300",
            dname: "变更登记",
          },
          {
            dcode: "500",
            dname: "更正登记",
          },

          {
            dcode: "901",
            dname: "补证",
          },
          {
            dcode: "902",
            dname: "换证",
          },
        ],
        // 权属状态
        qsztlist: [
          {
            dcode: "1",
            dname: "现势",
          },
          {
            dcode: "2",
            dname: "历史",
          },
        ],
        //传递参数\
        rules: {
          ztQlxxrules: [
            { required: true, message: "抵押不动产信息", trigger: "blur" },
          ],
          bdcqzhrules: [
            { required: true, message: "不动产登记证明号", trigger: "blur" },
          ],
          // qxdmrules: [{ required: true, message: "区县代码", trigger: "blur" }],
          djjgrules: [{ required: true, message: "登记机构", trigger: "blur" }],
          dbrrules: [{ required: true, message: "登簿人", trigger: "blur" }],
          djsjrules: [{ required: true, message: "登记时间", trigger: "blur" }],
          ygdjlxrules: [{ required: true, message: "预告登记种类", trigger: "change" }],
          djlxrules: [{ required: true, message: "登记类型", trigger: "change" }],
          ywhrules: [{ required: true, message: "业务号", trigger: "blur" }],
        },
        ableOperation: false,
      };
    },
    created () {
      this.loadData();
    },
    mounted () {
      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;
      },
      /**
       * @description: djlxchange
       * @param {*} val
       * @author: renchao
       */
      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;
            let djlx = this.ruleForm.qlxx.djlx;
            if (djlx == null || djlx == 100) {
              this.ssqlxxshow = false;
            }
            this.$endLoading();
            this.isShow = true;
          }
        });
        //获取主体信息
        getSsQlxx({
          bdcdyid: this.propsParam.bdcdyid,
          qllx: this.propsParam.qllx,
        }).then((res) => {
          if (res.code == 200) {
            this.ssQlxxList = res.result;
            console.log("this.$refs.ruleForm", this.$refs.ruleForm);
          }
        });

        //获取上手信息
        getZtQlxx({ bdcdyid: this.propsParam.bdcdyid }).then((res) => {
          if (res.code == 200) {
            this.ztQlxxList = res.result;
            console.log("this.$refs.ruleForm", this.$refs.ruleForm);
          }
        });

      },
      // 更新土地用途信息
      /**
       * @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.$parent.changeywh()
                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";
</style>