Files
wvp/web_src/src/components/dialog/catalogEdit.vue

160 lines
5.1 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<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 >-->
<!-- 建议的类型-->
<!-- <br/>-->
<!-- &emsp;&emsp;行政区划可选2位/4/6/8/10位数字例如130432表示河北省邯郸市广平县-->
<!-- <br/>-->
<!-- &emsp;&emsp;业务分组第111213位215例如34020000002150000001-->
<!-- <br/>-->
<!-- &emsp;&emsp;虚拟组织第111213位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>
<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) {
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 () {
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.close();
})
.catch((error)=> {
console.log(error);
});
},
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>