zxl
2025-06-12 9f16b5c553b479ea12fe368a7ecc748872ea8b98
web_src/src/components/dialog/catalogEdit.vue
old mode 100644 new mode 100755
@@ -12,15 +12,6 @@
    >
      <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-input v-model="form.id" :disabled="isEdit" clearable></el-input>
          </el-form-item>
@@ -46,14 +37,60 @@
export default {
  name: "catalogEdit",
  computed: {},
  props: ['platformId'],
  props: ['platformId', 'platformDeviceId'],
  created() {},
  data() {
    let checkId = (rule, value, callback) => {
      console.log("checkId")
      console.log(rule)
      console.log(value)
      console.log(value.length)
      console.log(this.level)
      if (!value) {
        return callback(new Error('编号不能为空'));
      }
      if (value.trim().length <= 8) {
        if (value.trim().length%2 !== 0) {
          return callback(new Error('行政区划编号必须为2/4/6/8位'));
        }
        if (this.form.parentId !== this.platformDeviceId && this.form.parentId.length >= value.trim().length) {
          if (this.form.parentId.length === 20) {
            return callback(new Error('业务分组/虚拟组织下不可创建行政区划'));
          }else {
            return callback(new Error('行政区划编号长度应该每次两位递增'));
          }
        }
      }else {
        if (value.trim().length !== 20) {
          return callback(new Error('编号必须为2/4/6/8位的行政区划或20位的虚拟组织/业务分组'));
        }
        let catalogType = value.substring(10, 13);
        console.log(catalogType)
        if (catalogType !== "215" && catalogType !== "216") {
          return callback(new Error('编号错误,业务分组11-13位为215,虚拟组织11-13位为216'));
        }
        if (catalogType === "216") {
          if (this.form.parentId !== this.platformDeviceId){
            if (this.form.parentId.length <= 8) {
              return callback(new Error('编号错误,建立虚拟组织前必须先建立业务分组(11-13位为215)'));
            }
          }
        }
        if (catalogType === "215") {
          if (this.form.parentId.length === "215") {
            return callback(new Error('编号错误,业务分组下只能建立虚拟组织(11-13位为216)'));
          }
        }
      }
      callback();
    }
    return {
      submitCallback: null,
      showDialog: false,
      isLoging: false,
      isEdit: false,
      level: 0,
      form: {
        id: null,
        name: null,
@@ -62,12 +99,12 @@
      },
      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, level, callback) {
      console.log("parentId: " + parentId)
      console.log(this.form)
      this.isEdit = isEdit;
@@ -77,30 +114,34 @@
      this.form.parentId = parentId;
      this.showDialog = true;
      this.submitCallback = callback;
      this.level = level;
    },
    onSubmit: function () {
      console.log("onSubmit");
      console.log(this.form);
      this.$axios({
        method:"post",
        url:`/api/platform/catalog/${!this.isEdit? "add":"edit"}`,
        data: this.form
      })
        .then((res)=> {
          if (res.data.code === 0) {
            if (this.submitCallback)this.submitCallback(this.form)
          }else {
            this.$message({
              showClose: true,
              message: res.data.msg,
              type: "error",
      this.$refs["form"].validate((valid) => {
        if (valid) {
          this.$axios({
            method:"post",
            url:`/api/platform/catalog/${!this.isEdit? "add":"edit"}`,
            data: this.form
          }).then((res)=> {
            if (res.data.code === 0) {
              if (this.submitCallback)this.submitCallback(this.form)
            }else {
              this.$message({
                showClose: true,
                message: res.data.msg,
                type: "error",
              });
            }
            this.close();
          })
            .catch((error)=> {
              console.log(error);
            });
          }
          this.close();
        })
        .catch((error)=> {
          console.log(error);
        });
        } else {
          return false;
        }
      });
    },
    close: function () {
      this.isEdit = false;