| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 |
- <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/>-->
- <!--   行政区划(可选2位/4位/6位/8位/10位数字,例如:130432,表示河北省邯郸市广平县)-->
- <!-- <br/>-->
- <!--   业务分组(第11、12、13位215,例如:34020000002150000001)-->
- <!-- <br/>-->
- <!--   虚拟组织(第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>
- <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'],
- 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,
- 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, treeType, 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.treeType = treeType;
- 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>
|