<!--
 * @Description: 受理信息
 * @Autor: renchao
 * @LastEditTime: 2023-08-24 15:34:11
-->
<template>
  <div class="slxx">
    <el-form
      :model="ruleForm"
      :rules="rules"
      ref="ruleForm"
      :label-position="flag ? 'top' : ''"
      :inline="flag"
      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 flex"
          style="justify-content: space-between"
        >
          不动产单元情况
          <el-button @click="compare">变化情况对比+</el-button>
        </div>
        <el-row :gutter="10" v-if="ruleForm.qlxx">
          <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="16">
            <el-form-item label="坐落:">
              <el-input disabled v-model="ruleForm.sldy.zl"></el-input>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="10" v-if="ruleForm.fdcq2">
          <el-col :span="8">
            <el-form-item label="土地用途:">
              <el-input disabled v-model="ruleForm.fdcq2.yt"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="土地使用起止时间:">
              <el-input disabled v-model="ruleForm.fdcq2.tdsyqzsj"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="土地使用期限:">
              <el-input disabled v-model="ruleForm.fdcq2.tdsyqx"></el-input>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="10" v-if="ruleForm.qlxx">
          <el-col :span="8">
            <el-form-item label="规划用途名称:">
              <el-input disabled v-model="ruleForm.zdjbxx.ghytmc"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="房屋性质:">
              <el-input disabled v-model="ruleForm.fdcq2.fwxzmc"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="房屋结构:">
              <el-input disabled v-model="ruleForm.fdcq2.fwjgmc"></el-input>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="10" v-if="ruleForm.fdcq2">
          <el-col :span="8">
            <el-form-item label="所在层:">
              <el-input disabled v-model="ruleForm.fdcq2.szc"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="总层数:">
              <el-input
                disabled
                v-model.number="ruleForm.fdcq2.zcs"
                oninput="value=value.replace(/[^0-9]/g,'')"
              ></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="竣工时间:">
              <el-input disabled v-model="ruleForm.fdcq2.jgsj"></el-input>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="10" v-if="ruleForm.qlxx">
          <el-col :span="8">
            <el-form-item label="建筑面积:">
              <div class="flex">
                <el-input
                  disabled
                  v-model="ruleForm.qlxx.mj"
                  oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"
                ></el-input>
                <el-select disabled v-model="mjdw" style="width: 68px">
                  <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="专有建筑面积:">
              <div class="flex">
                <el-input
                  disabled
                  v-model="ruleForm.fdcq2.zyjzmj"
                  oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"
                ></el-input>
                <el-select disabled v-model="mjdw" style="width: 68px">
                  <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="分摊建筑面积:">
              <div class="flex">
                <el-input
                  disabled
                  v-model="ruleForm.fdcq2.ftjzmj"
                  oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"
                ></el-input>
                <el-select disabled v-model="mjdw" style="width: 68px">
                  <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-row>
        <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="12">
            <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="6" 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="6"
            v-show="ruleForm.sldy.sqfbcz == '0' && ruleForm.sldy.gyfs != '0'"
          >
            <el-form-item label="持证人:">
              <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 class="slxx_title title-block">
          登记原因
          <div class="triangle"></div>
        </div>
        <el-row :gutter="10">
          <el-col>
            <el-form-item v-if="ruleForm.fdcq2" label="登记原因:" prop="djyy">
              <el-input
                class="textArea"
                type="textarea"
                maxlength="500"
                show-word-limit
                :disabled="!viewEdit"
                v-model="ruleForm.fdcq2.djyy"
              >
              </el-input>
            </el-form-item>
          </el-col>
        </el-row>
      </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 tdytTable from "@/views/workflow/components/tdytTable";
import { Init, saveData } from "@/api/workflow/fwsyqFlow.js";
import { mapGetters } from "vuex";
export default {
  mixins: [ywmix],
  mounted() {
    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.zdjbxxdatas,
          ...res.result.qlxxdatas,
          ...res.result.jsydsyqdatas,
        };
        this.ruleForm.qlrList.forEach((item) => {
          if (item.sfczr == 1) {
            this.czr = item.sqrmc;
          }
        });
        //初始化发证方式,1:小证,2:大正
        this.ruleForm.slsq.fzfs == null
          ? (this.ruleForm.slsq.fzfs = "1")
          : this.ruleForm.slsq.fzfs;
        this.czrOptions = this.ruleForm.qlrList;
      }
    });
  },
  components: { qlrCommonTable, tdytTable },
  computed: {
    ...mapGetters(["dictData", "flag"]),
  },
  data() {
    return {
      mjdw: "1",
      //表单是否可操作
      viewEdit: false,
      disabled: true,
      tdytOption: [],
      czrOptions: [],
      czr: "",
      ruleForm: {
        flow: {
          ywh: "",
        },
        slry: "",
        slsj: "",
        qllx: "",
        djlx: "",
        djqx: "",
        sldy: {
          gyfs: "",
        },
        // 宗地代码
        zddm: "",
        bdcdyh: "",
        qlxzmc: "",
        qlrxx: [],
        // 自然幢号
        zrzh: "",
        // 户不动产单元号
        hbdcdyh: "",
        djzt: "",
        // 图幅丘幢号
        tfqzh: "",
        zl: "",
        // 房屋用途
        fwyt: "",
        fwxz: "",
        fwjg: "",
        // 权利人信息
        // 是否分别持证
        sffbcz: "",
        // 持证人
        czr: "",
        djyy: "",
        // 规划用途名称
        zdjbxx: {
          ghytmc: "",
        },
        fdcq2: {
          fwxzmc: "",
        },
        slsq: {
          gyfs: "",
        },
      },
      //传递参数
      propsParam: {},
      rules: {},
    };
  },
  methods: {
    /**
     * @description: dataSelectClick
     * @author: renchao
     */
    dataSelectClick() {
      this.$popup(
        "房屋所有权",
        this.BASE_API.SERVERAPI + "/rest/ywbl/fdcq2/slxxCompareDetai",
        {
          formData: {
            bsmSldy: this.propsParam.bsmSldy,
            qllx: this.propsParam.qllx,
          },
        }
      );
    },
    /**
     * @description: 更新土地用途信息
     * @param {*} val
     * @author: renchao
     */
    upDateTdytxxList(val) {
      this.ruleForm.tdytqxList && (this.ruleForm.tdytqxList = _.cloneDeep(val));
      this.key++;
    },
    // 是否持证人变化
    /**
     * @description: 是否持证人变化
     * @param {*} val
     * @author: renchao
     */
    updaterow() {
      this.czr = "";
    },
    /**
     * @description: 更新权利人信息
     * @param {*} val
     * @author: renchao
     */
    upDateQlrxxList(val) {
      this.ruleForm.qlrList = _.cloneDeep(val);
      this.czrOptions = this.ruleForm.qlrList;
      this.key++;
    },
    // 更新权利人信息
    /**
     * @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",
          });
        }
      });
    },
    /**
     * @description: compare
     * @author: renchao
     */
    compare() {
      this.$popupDialog(
        this.ruleForm.qlxx.qllxmc,
        "registerBook/comparison",
        {
          bsmQlxx: this.ruleForm.qlxx.bsmQlxx,
          dqqllx: "FDCQ2",
        },
        "80%",
        true
      );
    },
  },
};
</script>
<style scoped lang="scss">
@import "~@/styles/public.scss";
@import "~@/styles/slxx/slxx.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>