<!--
 * @Description: 房屋多幢受理信息
 * @Autor: ssq
 * @LastEditTime: 2023-09-11 16:28:02
-->
<template>
  <div class="slxx">
    <el-form
      :model="ruleForm"
      :rules="rules"
      ref="ruleForm"
      :label-position="flag ? 'top' : ''"
      :inline="flag"
      v-Loading="loading"
      label-width="120px">
      <div class="slxx_con" :class="flag ? 'formMarginBot0' : ''">
        <div class="slxx_title title-block">
          申请业务信息
          <div class="triangle"></div>
        </div>
        <el-row :gutter="10" v-if="ruleForm.slsq">
          <el-col :span="8">
            <el-form-item label="业务号:">
              <el-input disabled v-model="ruleForm.flow.ywh"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="受理人员:">
              <el-input disabled v-model="ruleForm.slsq.slry"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="受理时间:">
              <el-input disabled v-model="ruleForm.slsq.slsj"></el-input>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="10" v-if="ruleForm.slsq">
          <el-col :span="8">
            <el-form-item label="权利类型:">
              <el-input disabled v-model="ruleForm.sldy.qllxmc"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="登记类型:">
              <el-input disabled v-model="ruleForm.sldy.djlxmc"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="登记情形:">
              <el-input disabled v-model="ruleForm.slsq.djqxmc"></el-input>
            </el-form-item>
          </el-col>
        </el-row>
        <div class="slxx_title title-block">
          不动产单元情况
          <div class="triangle"></div>
        </div>
        <el-row :gutter="10" v-if="ruleForm.qlxx">
          <el-col :span="8">
            <el-form-item label="原不动产权证号:">
              <el-input disabled v-model="ruleForm.sldy.ybdcqzsh"></el-input>
            </el-form-item>
          </el-col>
          <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 maxlength="100" v-model="ruleForm.sldy.zl"></el-input>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="10" v-if="ruleForm.fdcq1">
          <el-col :span="8">
            <el-form-item label="宗地面积:">
              <div class="flex">
                <el-input disabled v-model="ruleForm.zdjbxx.zdmj"></el-input>
                <el-select
                  disabled
                  v-model="ruleForm.zdjbxx.mjdw"
                  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 disabled v-model="ruleForm.zdjbxx.qlxzmc"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="土地使用权人:">
              <el-input disabled v-model="ruleForm.fdcq1.tdsyqr"></el-input>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="10" v-if="ruleForm.fdcq1">
          <el-col :span="8">
            <el-form-item label="独用土地面积:">
              <el-input :disabled="!viewEdit" maxlength="12" v-model="ruleForm.fdcq1.dytdmj"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="分摊土地面积:">
              <el-input :disabled="!viewEdit" maxlength="12" v-model="ruleForm.fdcq1.fttdmj"></el-input>
            </el-form-item>
          </el-col>

          <el-col :span="8">
            <el-form-item label="房地产交易价格:">
              <div class="flex">
                <el-input
                  maxlength="11"
                  :disabled="!viewEdit"
                  v-model="ruleForm.fdcq1.fdcjyjg"
                  style="width: 500%"
                  oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
                <el-select :disabled="!viewEdit" v-model="ruleForm.fdcq1.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="24">
            <el-form-item label="附记:">
              <el-input
                :disabled="!viewEdit"
                v-model="ruleForm.fdcq1.fj"
                type="textarea"
                maxlength="500"
                show-word-limit></el-input>
            </el-form-item>
          </el-col>
        </el-row>
        <div class="slxx_title title-block">
          房屋多幢明细
          <div class="triangle"></div>
          <fdcqxmTable
            :ableOperation="viewEdit"
            :tableData="ruleForm.fdcqxm"
            @updateFdcwxmList="updateFdcwxmList" />
          <div class="slxx_title title-block">
            土地用途
            <div class="triangle"></div>
          </div>
          <tdytTable
            :ableOperation="viewEdit"
            :tableData="ruleForm.tdytqxList"
            @upDateTdytxxList="upDateTdytxxList" />
          <div class="slxx_title title-block">
            权利人信息
            <div class="triangle"></div>
          </div>
          <el-row :gutter="10">
            <el-col :span="14" v-if="ruleForm.qlxx">
              <el-form-item label="共有方式:">
                <el-radio-group
                  :disabled="!viewEdit"
                  v-model="ruleForm.sldy.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="5" v-show="ruleForm.sldy.gyfs != '0'">
              <el-form-item label="是否分别持证:">
                <el-radio-group
                  v-model="ruleForm.sldy.sqfbcz"
                  :disabled="!viewEdit"
                  @input="updaterow()">
                  <el-radio :label="1">是</el-radio>
                  <el-radio :label="0">否</el-radio>
                </el-radio-group>
              </el-form-item>
            </el-col>
            <el-col
              :span="5"
              v-show="ruleForm.sldy.sqfbcz == '0' && ruleForm.sldy.gyfs != '0'">
              <el-form-item label="持证人1:">
                <el-select
                  v-model="czr"
                  placeholder="持证人"
                  :disabled="!viewEdit">
                  <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
            @upDateQlrxxList="upDateQlrxxList"
            :disabled="viewEdit"
            :tableData="ruleForm.qlrList"
            :gyfs="ruleForm.sldy.gyfs" />

          <div v-if="ruleForm.ywrList && ruleForm.qlxx.djlx == '200'">
            <div class="slxx_title title-block">
              义务人信息
              <div class="triangle"></div>
            </div>
            <ywrCommonTable
              v-if="ruleForm.qlxx"
              :disabled="viewEdit"
              @upDateQlrxxList="upDateYwrxxList"
              :tableData="ruleForm.ywrList"
              :gyfs="ruleForm.qlxx.gyfs" />

          </div>
          <div class="slxx_title title-block">
            登记原因
            <div class="triangle"></div>
          </div>
          <el-row :gutter="10">
            <el-col>
              <el-form-item v-if="ruleForm.sldy" label="登记原因:" prop="djyy">
                <el-input
                  class="textArea"
                  type="textarea"
                  maxlength="500"
                  show-word-limit
                  :disabled="!viewEdit"
                  v-model="ruleForm.fdcq1.djyy"></el-input>
              </el-form-item>
            </el-col>
          </el-row>
        </div>
      </div>
      <el-row class="btn" v-if="viewEdit">
        <el-form-item>
          <el-button type="primary" @click="onSubmit">保存</el-button>
        </el-form-item>
      </el-row>
    </el-form>
  </div>
</template>
<script>
  import ywmix from "@/views/ywbl/mixin/index";
  import qlrCommonTable from "@/views/workflow/components/qlrCommonTable";
  import ywrCommonTable from "@/views/workflow/components/ywrCommonTable";
  import fdcqxmTable from "@/views/workflow/components/fdcqxmTable";
  import tdytTable from "@/views/workflow/components/tdytTable";
  import { Init, saveData } from "@/api/workflow/fwsyq1Flow.js";
  import { mapGetters } from "vuex";
  export default {
    mixins: [ywmix],
    mounted () {
      this.loading = true
      this.viewEdit = this.$parent.currentSelectTab.ableOperation;
      this.propsParam = this.$attrs;
      var formdata = new FormData();
      formdata.append("bsmSldy", this.propsParam.bsmSldy);
      formdata.append("djlx", this.propsParam.djlx);
      formdata.append("isEdit", this.viewEdit);
      Init(formdata).then((res) => {
        if (res.code === 200 && res.result) {
          this.ruleForm = {
            ...res.result,
            ...res.result.qlxxdatas,
          };
          this.ruleForm.qlrList.forEach((item) => {
            if (item.sfczr == 1) {
              this.czr = item.sqrmc;
            }
          });
          setTimeout(() => {
            this.loading = false
          }, 200)
          //初始化发证方式,1:小证,2:大正
          this.ruleForm.slsq.fzfs == null
            ? (this.ruleForm.slsq.fzfs = "1")
            : this.ruleForm.slsq.fzfs;
          this.czrOptions = this.ruleForm.qlrList;
        }
      });
    },
    components: { qlrCommonTable, tdytTable, fdcqxmTable, ywrCommonTable },
    computed: {
      ...mapGetters(["dictData", "flag"]),
    },
    data () {
      return {
        loading: false,
        disabled: true,
        tdytOption: [],
        czrOptions: [],
        czr: "",
        ruleForm: {
          flow: {
            ywh: "",
          },
          qlxx: {
            mj: "",
          },
          sldy: {
            gyfs: "",
          },
          slsq: {},
          fdcq1: {
            zyjzmj: "",
            ftjzmj: "",
          },
          zdjbxx: {
            ghytmc: "",
          },
        },
        //传递参数
        propsParam: this.$attrs,
        //表单是否可操作
        viewEdit: false,
        rules: {},
      };
    },
    methods: {
      /**
       * @description: updateFdcwxmList
       * @author: renchao
       */
      updateFdcwxmList (val) {
        this.ruleForm.fdcqxm && (this.ruleForm.fdcqxm = _.cloneDeep(val));
        this.key++;
      },
      /**
       * @description: 更新土地用途信息
       * @param {*} val
       * @author: renchao
       */
      upDateTdytxxList (val) {
        this.ruleForm.tdytqxList && (this.ruleForm.tdytqxList = _.cloneDeep(val));
        this.key++;
      },
      /**
       * @description: 更新权利人信息
       * @param {*} val
       * @author: renchao
       */
      upDateQlrxxList (val) {
        if (!_.isEqual(val, this.ruleForm.qlrList)) {
          this.ruleForm.qlrList = _.cloneDeep(val);
          this.czrOptions = this.ruleForm.qlrList;
        }
        this.num = 0
        this.ruleForm.qlrList.forEach(item => {
          if (item.sqrmc == this.czr) {
            this.num++
          }
        })
        if (this.num == 0) {
          this.czr = ''
        }
      },
      /**
       * @description: 是否持证人变化
       * @param {*} val
       * @author: renchao
       */
      updaterow () {
        this.czr = "";
      },
      // 更新权利人信息
      /**
       * @description: 更新权利人信息
       * @param {*} val
       * @author: renchao
       */
      upDateYwrxxList (val) {
        this.ruleForm.ywrList = _.cloneDeep(val);
      },
      /**
       * @description: onSubmit
       * @author: renchao
       */
      onSubmit () {
        let that = this;
        let arr = this.ruleForm.tdytqxList.filter((item) => !item.yt);
        if (arr.length > 0) {
          this.$message({
            showClose: true,
            message: "土地用途不能为空",
            type: "error",
          });
          return false;
        }
        if (this.ruleForm.qlrList.length == 0) {
          this.$message({
            showClose: true,
            message: "请确认权利人信息",
            type: "error",
          });
          return false;
        }
        if (this.ruleForm.sldy.gyfs == "0") {
          if (this.ruleForm.qlrList.length > 1) {
            this.$message({
              showClose: true,
              message: "共有方式:单独所有,权利人只能是一个人",
              type: "error",
            });
            return false;
          }
          this.ruleForm.qlrList[0].sfczr = "1";
        } else {
          if (this.ruleForm.qlrList.length <= 1) {
            this.$message({
              showClose: true,
              message:
                "共有方式:共同所有,按份所有,其他所有,权利人必须是两个以上",
              type: "error",
            });
            return false;
          }
          //是否分别持证
          if (this.ruleForm.sldy.sqfbcz == "1") {
            //是
            this.ruleForm.qlrList.forEach((item, index) => {
              item.sfczr = "1";
            });
          } else {
            if (!that.czr) {
              that.$message({
                showClose: true,
                message: "请选择持证人",
                type: "error",
              });
              return false;
            }
            this.ruleForm.qlrList.forEach((item, index) => {
              if (item.zjh == that.czr) {
                item.sfczr = "1";
              } else {
                item.sfczr = "0";
              }
            });
          }
        }

        saveData(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",
            });
          }
        });
      },
    },
  };
</script>
<style scoped lang="scss">
  @import "~@/styles/public.scss";

  /deep/.el-form {
    display: flex;
    flex-direction: column;
    height: calc(100vh - 130px);
  }

  /deep/.el-form-item__label {
    padding: 0;
  }

  /deep/.el-radio {
    margin-right: 10px;
  }

  /deep/.el-select {
    width: 100%;
  }

  /deep/.el-form-item {
    margin-bottom: 8px;
  }

  .marginBot0 {
    margin-bottom: 0 !important;
  }

  .slxx {
    box-sizing: border-box;
  }

  .slxx_con {
    flex: 1;
    height: 100%;
    background-color: #ffffff;
    overflow-y: auto;
    padding-right: 3px;
    overflow-x: hidden;
  }

  .submit_btn {
    height: 50px;
  }

  .slxx_title {
    border-bottom: 1px solid $borderColor;
    padding-left: 10px;
    padding-bottom: 5px;
    margin-bottom: 10px;
    margin-top: 5px;
    font-size: 16px;
    font-weight: 500;
    color: #4a4a4a;
  }

  .btn {
    text-align: center;
    padding-top: 10px;
    height: 36px;
    background-color: #ffffff;
    padding: 5px 0;
  }

  .textArea {
    /deep/.el-textarea__inner {
      min-height: 90px !important;
    }
  }

  /deep/.el-form-item__label {
    padding-bottom: 0px;
  }
</style>