<template> <div id="catalogEdit" v-loading="isLoging"> <el-dialog title="节点编辑" width="40%" top="2rem" :append-to-body="true" :close-on-click-modal="false" :visible.sync="showDialog" :destroy-on-close="true" @close="close()" > <div id="shared" style="margin-top: 1rem;margin-right: 100px;"> <el-form ref="form" :rules="rules" :model="form" label-width="140px" > <el-form-item label="节点编号" prop="id" > <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;"> <el-button type="primary" @click="onSubmit" >确认</el-button> <el-button @click="close">取消</el-button> </div> </el-form-item> </el-form> </div> </el-dialog> </div> </template> <script> export default { name: "catalogEdit", computed: {}, 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, platformId: null, parentId: null, }, rules: { name: [{ required: true, message: "请输入名称", trigger: "blur" }], id: [{ required: true, trigger: "blur",validator: checkId }] }, }; }, methods: { openDialog: function (isEdit, id, name, parentId, level, callback) { console.log("parentId: " + parentId) console.log(this.form) this.isEdit = isEdit; this.form.id = id; this.form.name = name; this.form.platformId = this.platformId; this.form.parentId = parentId; this.showDialog = true; this.submitCallback = callback; this.level = level; }, onSubmit: function () { 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); }); } else { return false; } }); }, 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; console.log(this.form) }, }, }; </script>