addQlr.vue 8.28 KB
<!--
 * @Description:
 * @Autor: renchao
 * @LastEditTime: 2023-05-17 10:39:47
-->
<template>
  <dialogBox
    title="权利人信息"
    width="60%"
    isMain
    v-model="myValue"
    :isFullscreen="false"
    @submitForm="submitForm"
    @closeDialog="closeDialog"
    :isButton="showButton"
  >
    <el-form
      :model="ruleForm"
      :rules="rules"
      ref="ruleForm"
      label-width="120px"
    >
      <el-row>
        <el-col :span="8">
          <el-form-item label="权利人类型" prop="qlrlx">
            <el-select
              clearable
              v-model="ruleForm.qlrlx"
              class="width100"
              placeholder="请选择"
            >
              <el-option
                v-for="item in dictData['A36']"
                :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="qlrmc">
            <el-input v-model="ruleForm.qlrmc" maxlegth="15"></el-input>
          </el-form-item>
        </el-col>
        <el-col :span="8">
          <el-form-item label="证件种类" prop="zjzl">
            <el-select
              clearable
              v-model="ruleForm.zjzl"
              class="width100"
              placeholder="请选择"
            >
              <el-option
                v-for="item in dictData['A30']"
                :key="item.dcode"
                :label="item.dname"
                :value="item.dcode"
              >
              </el-option>
            </el-select>
          </el-form-item>
        </el-col>
      </el-row>
      <el-row>
        <el-col :span="8">
          <el-form-item label="证件号" prop="zjh">
            <el-input
              v-model="ruleForm.zjh"
              maxlength="15"
              oninput="value=value.replace(/[^\X0-9]/g,'')"
            ></el-input>
          </el-form-item>
        </el-col>
        <el-col :span="8">
          <el-form-item label="联系电话" prop="dh">
            <el-input
              v-model="ruleForm.dh"
              maxlength="11"
              oninput="value=value.replace(/[^\d]/g,'')"
            ></el-input>
          </el-form-item>
        </el-col>
        <el-col :span="8">
          <el-form-item label="性别">
            <el-select
              clearable
              v-model="ruleForm.xb"
              class="width100"
              placeholder="请选择"
            >
              <el-option
                v-for="item in dictData['A43']"
                :key="item.dcode"
                :label="item.dname"
                :value="item.dcode"
              >
              </el-option>
            </el-select>
          </el-form-item>
        </el-col>
      </el-row>
      <el-row>
        <el-col :span="8">
          <el-form-item label="法人名称">
            <el-input v-model="ruleForm.frmc"></el-input>
          </el-form-item>
        </el-col>
        <el-col :span="8">
          <el-form-item label="国家/地区">
            <el-input v-model="ruleForm.gjdq"></el-input>
          </el-form-item>
        </el-col>
        <el-col :span="8">
          <el-form-item label="户籍所在省市">
            <el-input v-model="ruleForm.szss"></el-input>
          </el-form-item>
        </el-col>
      </el-row>

      <el-row>
        <el-col :span="16">
          <el-form-item label="地址">
            <el-input v-model="ruleForm.txdz"></el-input>
          </el-form-item>
        </el-col>
        <el-col :span="8">
          <el-form-item label="邮编">
            <el-input v-model="ruleForm.yb"></el-input>
          </el-form-item>
        </el-col>
      </el-row>

      <el-row>
        <el-col :span="8">
          <el-form-item label="发证机关">
            <el-input v-model="ruleForm.fzjg"></el-input>
          </el-form-item>
        </el-col>
        <el-col :span="8">
          <el-form-item label="电子邮件">
            <el-input v-model="ruleForm.dzyj"></el-input>
          </el-form-item>
        </el-col>
        <el-col :span="8">
          <el-form-item label="权利比例">
            <el-input v-model="ruleForm.qlbl"></el-input>
          </el-form-item>
        </el-col>
      </el-row>

      <el-row>
        <el-col :span="8">
          <el-form-item label="工作单位">
            <el-input v-model="ruleForm.gzdw"></el-input>
          </el-form-item>
        </el-col>
        <el-col :span="16">
          <el-form-item label="代理机构">
            <el-input v-model="ruleForm.dljg"></el-input>
          </el-form-item>
        </el-col>
      </el-row>

      <el-row>
        <el-col :span="8">
          <el-form-item label="联系电话">
            <el-input
              v-model="ruleForm.lxdh"
              maxlength="11"
              oninput="value=value.replace(/[^\d]/g,'')"
            ></el-input>
          </el-form-item>
        </el-col>
        <el-col :span="8">
          <el-form-item label="代理人姓名">
            <el-input v-model="ruleForm.dlrxm"></el-input>
          </el-form-item>
        </el-col>
        <el-col :span="8">
          <el-form-item label="代理人证件类型">
            <el-select
              clearable
              v-model="ruleForm.dlrzjlx"
              class="width100"
              placeholder="请选择"
            >
              <el-option
                v-for="item in dictData['A30']"
                :key="item.dcode"
                :label="item.dname"
                :value="item.dcode"
              >
              </el-option>
            </el-select>
          </el-form-item>
        </el-col>
      </el-row>
      <el-row>
        <el-col :span="8">
          <el-form-item label="代理人证件号">
            <el-input v-model="ruleForm.dlrzjh" maxlength="20"></el-input>
          </el-form-item>
        </el-col>
      </el-row>
    </el-form>
  </dialogBox>
</template>
<script>
import { mapGetters } from "vuex";
export default {
  props: {
    value: { type: Boolean, default: false },
    details: { type: Object, default: {} },
    showButton: { type: Boolean, default: false },
  },
  computed: {
    ...mapGetters(["dictData"]),
  },
  data() {
    return {
      myValue: this.value,
      ruleForm: {
        sqrlx: "",
        sqrmc: "",
        zjzl: "",
        zjh: "",
        dh: "",
        xb: "",
        frmc: "",
        gjdq: "",
        szss: "",
        txdz: "",
        yb: "",
        fzjg: "",
        dzyj: "",
        qlbl: "",
        gzdw: "",
        dljg: "",
        dlrxm: "",
        dlrzjlx: "",
        dlrzjh: "",
      },
      ruleForm: {
        bsmBdcqz: "",
        bsmQlr: "",
        bsmQlxx: "",
        bz: "",
        cbfbm: "",
        dh: "",
        dlrdhhm: "",
        dlrjgmc: "",
        dlrxm: "",
        dlrzjh: "",
        dlrzjlx: "",
        dz: "",
        dzyj: "",
        fbfbm: "",
        frdh: "",
        frmc: "",
        fzjg: "",
        gj: "",
        gzdw: "",
        hjszss: "",
        qlrlx: "",
        qlrmc: "",
        qlrtz: "",
        sfczr: "",
        sshy: "",
        sxh: 0,
        xb: "",
        yb: "",
        zjh: "",
        zjzl: "",
      },
      rules: {
        qlrlx: [{ required: true, message: "权利人类型", trigger: "change" }],
        qlrmc: [{ required: true, message: "姓名/名称", trigger: "blur" }],
        zjzl: [{ required: true, message: "证件种类", trigger: "change" }],
        zjh: [{ required: true, message: "证件号", trigger: "blur" }],
      },
    };
  },
  watch: {
    value(val) {
      this.myValue = _.cloneDeep(val);
    },
    details: {
      handler: function (val, oldVal) {
        this.ruleForm = val;
      },
      deep: true,
    },
  },
  methods: {
    closeDialog() {
      this.$emit("input", false);
      this.$refs["ruleForm"].resetFields();
    },
    submitForm() {
      this.$refs.ruleForm.validate((valid) => {
        if (valid) {
          this.$emit("input", false);
          this.$emit("updateDetail", _.cloneDeep(this.ruleForm));
        } else {
          return false;
        }
      });
    },
  },
};
</script>
<style scoped lang="scss">
@import "~@/styles/dialogBoxheader.scss";
.submit-button {
  text-align: center;
  height: 52px;
  padding-top: 10px;
  background-color: #fff;
}
</style>