jiang
2022-08-04 d09d8f11f06ee6eeeb4c7f9bd6d35e6fbd49e05f
web_src/src/components/dialog/catalogEdit.vue
@@ -12,24 +12,21 @@
    >
      <div id="shared" style="margin-top: 1rem;margin-right: 100px;">
        <el-form ref="form" :rules="rules" :model="form" label-width="140px" >
<!--          <el-form-item >-->
<!--            建议的类型:-->
<!--            <br/>-->
<!--            &emsp;&emsp;行政区划(可选2位/4位/6位/8位/10位数字,例如:130432,表示河北省邯郸市广平县)-->
<!--            <br/>-->
<!--            &emsp;&emsp;业务分组(第11、12、13位215,例如:34020000002150000001)-->
<!--            <br/>-->
<!--            &emsp;&emsp;虚拟组织(第11、12、13位216,例如:34020000002160000001)-->
<!--          </el-form-item>-->
          <el-form-item label="节点编号" prop="id" >
            <el-tooltip class="item" effect="dark" content="" placement="top-start">
              <div slot="content">
                建议的类型:
                <br/>
                &emsp;&emsp;行政区划(可选2位/4位/6位/8位/10位数字,例如:130432,表示河北省邯郸市广平县)
                <br/>
                &emsp;&emsp;业务分组(第11、12、13位215,例如:34020000002150000001)
                <br/>
                &emsp;&emsp;虚拟组织(第11、12、13位216,例如:34020000002160000001)
              </div>
              <el-input v-model="form.id" :disabled="isEdit"></el-input>
            </el-tooltip>
            <el-input v-model="form.id" :disabled="isEdit" clearable></el-input>
          </el-form-item>
          <el-form-item label="节点名称" prop="name">
            <el-input v-model="form.name" clearable></el-input>
          </el-form-item>
          <el-form-item>
            <div style="float: right;">
@@ -52,11 +49,42 @@
  props: ['platformId'],
  created() {},
  data() {
    let checkId = (rule, value, callback) => {
      console.log("checkId")
      console.log(this.treeType)
      console.log(rule)
      console.log(value)
      console.log(value.length)
      console.log(this.level)
      if (!value) {
        return callback(new Error('编号不能为空'));
      }
      if (this.treeType === "BusinessGroup" && value.length !== 20) {
        return callback(new Error('编号必须由20位数字组成'));
      }
      if (this.treeType === "CivilCode" && value.length <= 8 && value.length%2 !== 0) {
        return callback(new Error('行政区划必须是八位以下的偶数个数字组成'));
      }
      if (this.treeType === "BusinessGroup") {
        let catalogType = value.substring(10, 13);
        console.log(catalogType)
        // 216 为虚拟组织 215 为业务分组;目录第一级必须为业务分组, 业务分组下为虚拟组织,虚拟组织下可以有其他虚拟组织
        if (this.level === 1 && catalogType !== "215") {
          return callback(new Error('业务分组模式下第一层目录的编号11到13位必须为215'));
        }
        if (this.level > 1 && catalogType !== "216") {
          return callback(new Error('业务分组模式下第一层以下目录的编号11到13位必须为216'));
        }
      }
      callback();
    }
    return {
      submitCallback: null,
      showDialog: false,
      isLoging: false,
      isEdit: false,
      treeType: null,
      level: 0,
      form: {
        id: null,
        name: null,
@@ -65,13 +93,14 @@
      },
      rules: {
        name: [{ required: true, message: "请输入名称", trigger: "blur" }],
        id: [{ required: true, message: "请输入id", trigger: "blur" }]
        id: [{ required: true, trigger: "blur",validator: checkId  }]
      },
    };
  },
  methods: {
    openDialog: function (isEdit, id, name, parentId, callback) {
    openDialog: function (isEdit, id, name, parentId, treeType, level, callback) {
      console.log("parentId: " + parentId)
      console.log(this.form)
      this.isEdit = isEdit;
      this.form.id = id;
      this.form.name = name;
@@ -79,6 +108,8 @@
      this.form.parentId = parentId;
      this.showDialog = true;
      this.submitCallback = callback;
      this.treeType = treeType;
      this.level = level;
    },
    onSubmit: function () {
      console.log("onSubmit");
@@ -105,8 +136,14 @@
        });
    },
    close: function () {
      this.isEdit = false;
      this.form.id = null;
      this.form.name = null;
      this.form.platformId = null;
      this.form.parentId = null;
      this.callback = null;
      this.showDialog = false;
      this.$refs.form.resetFields();
      console.log(this.form)
    },
  },
};