From f29900986f01cf5d39b5755cec674825cef27961 Mon Sep 17 00:00:00 2001 From: gaoshp <291585735@qq.com> Date: 星期二, 19 十一月 2024 19:25:41 +0800 Subject: [PATCH] update --- src/views/console/system/addMenu.vue | 226 +++++++++++++++++++++++++++++++++----------------------- 1 files changed, 134 insertions(+), 92 deletions(-) diff --git a/src/views/console/system/addMenu.vue b/src/views/console/system/addMenu.vue index 95b011e..0b792e5 100644 --- a/src/views/console/system/addMenu.vue +++ b/src/views/console/system/addMenu.vue @@ -1,78 +1,86 @@ <template> <el-dialog :title="titleMap[mode]" v-model="visible" :width="900" destroy-on-close @closed="$emit('closed')"> - <el-form :model="form" :rules="rules" :disabled="mode=='show'" ref="dialogForm" label-width="120px" label-position="center"> + <el-form :model="formAddMenu" :rules="addMenuRules" :disabled="mode=='show'" ref="dialogForm" label-width="120px" label-position="center"> <el-row> <el-col :span="12"> - <el-form-item label="鑿滃崟鍚嶇О" prop="userName"> - <el-input v-model="form.userName" placeholder="瀛楀吀缂栧彿" clearable></el-input> + <el-form-item label="鑿滃崟鍚嶇О" prop="name"> + <el-input v-model="formAddMenu.name" placeholder="鑿滃崟鍚嶇О" clearable></el-input> </el-form-item> </el-col> <el-col :span="12"> - <el-form-item label="璺敱鍦板潃" prop="name"> - <el-input v-model="form.name" placeholder="瀛楀吀鍚嶇О" clearable></el-input> + <el-form-item label="璺敱鍦板潃"> + <el-input v-model="formAddMenu.path" placeholder="璺敱鍦板潃" clearable></el-input> </el-form-item> </el-col> <el-col :span="12"> - <el-form-item label="涓婄骇鑿滃崟" prop="name"> - <el-input v-model="form.name" placeholder="瀛楀吀鎺掑簭" clearable></el-input> + <el-form-item label="涓婄骇鑿滃崟"> + <el-tree-select + @change = "parentIdChange" + v-model="formAddMenu.parentId" + clearable + node-key="id" + placeholder="涓婄骇鑿滃崟" + ref="parentTree" + :data="parentData" + check-strictly + :props="{ label: 'title' }" + style="width:100%;" + :render-after-expand="false" /> </el-form-item> </el-col> <el-col :span="12"> - <el-form-item label="鑿滃崟鍥炬爣" prop="name"> - <el-input v-model="form.name" placeholder="瀛楀吀鎺掑簭" clearable></el-input> + <el-form-item label="鑿滃崟鍥炬爣"> + <el-input v-model="formAddMenu.source" placeholder="鑿滃崟鍥炬爣" clearable></el-input> </el-form-item> </el-col> <el-col :span="12"> - <el-form-item label="鑿滃崟缂栧彿" prop="name"> - <el-input v-model="form.name" placeholder="瀛楀吀鎺掑簭" clearable></el-input> + <el-form-item label="鑿滃崟缂栧彿" prop="code"> + <el-input v-model="formAddMenu.code" placeholder="鑿滃崟缂栧彿" clearable></el-input> </el-form-item> </el-col> <el-col :span="12"> - <el-form-item label="鑿滃崟绫诲瀷" prop="name"> - <el-radio-group v-model="form.name"> - <el-radio :value="1">APP</el-radio> - <el-radio :value="2">鑿滃崟</el-radio> - <el-radio :value="3">鎸夐挳</el-radio> - <el-radio :value="4">鍗$墖</el-radio> + <el-form-item label="鑿滃崟绫诲瀷" prop="category"> + <el-radio-group v-model="formAddMenu.category" @change="categoryChange"> + <el-radio v-for="item in categoryList" :label="item.label" :key="item.id">{{item.value}}</el-radio> </el-radio-group> </el-form-item> </el-col> <el-col :span="12"> - <el-form-item label="鑿滃崟鍒悕" prop="name"> - <el-input v-model="form.name" placeholder="瀛楀吀鎺掑簭" clearable></el-input> + <el-form-item label="鑿滃崟鍒悕" prop="alias"> + <el-input v-model="formAddMenu.alias" placeholder="鑿滃崟鍒悕" clearable></el-input> </el-form-item> </el-col> <el-col :span="12"> - <el-form-item label="鏂扮獥鍙�" prop="name"> - <el-radio-group v-model="form.name"> - <el-radio :value="1">鏄�</el-radio> - <el-radio :value="2">鍚�</el-radio> + <el-form-item label="鏂扮獥鍙�" prop="isOpen"> + <el-radio-group v-model="formAddMenu.isOpen" @change="isOpenChange"> + <el-radio :label="1">鍚�</el-radio> + <el-radio :label="2">鏄�</el-radio> </el-radio-group> </el-form-item> </el-col> <el-col :span="12"> - <el-form-item label="鍚敤缂撳瓨" prop="name"> - <el-radio-group v-model="form.name"> - <el-radio :value="1">鏄�</el-radio> - <el-radio :value="2">鍚�</el-radio> + <el-form-item label="鍚敤缂撳瓨" prop="keepAlive"> + <el-radio-group v-model="formAddMenu.keepAlive" @change="keepAliveChange"> + <el-radio :label="0">鍚�</el-radio> + <el-radio :label="1">鏄�</el-radio> </el-radio-group> </el-form-item> </el-col> <el-col :span="12"> - <el-form-item label="鎵�灞炲簲鐢�" prop="name"> - <el-select v-model="form.name" style="width: 100%"> - <el-option v-for="item in groups" :key="item.id" :label="item.label" :value="item.id"/> + <el-form-item label="鎵�灞炲簲鐢�" prop="belongApplication"> + <el-select v-model="formAddMenu.belongApplication" style="width: 100%" @change="belongApplicationChange"> + <el-option v-for="item in applicationList" :key="item.code" :label="item.name" :value="item.code"/> </el-select> </el-form-item> </el-col> <el-col :span="24"> - <el-form-item label="鑿滃崟鎺掑簭" prop="name"> - <el-input v-model="form.name" placeholder="鑿滃崟鎺掑簭" clearable></el-input> + <el-form-item label="鑿滃崟鎺掑簭" prop="sort"> + <el-input v-model="formAddMenu.sort" placeholder="鑿滃崟鎺掑簭" clearable></el-input> </el-form-item> </el-col> <el-col :span="24"> - <el-form-item label="鑿滃崟澶囨敞" prop="name"> - <el-input v-model="form.name" type="textarea" placeholder="鑿滃崟澶囨敞" clearable></el-input> + <el-form-item label="鑿滃崟澶囨敞"> + <el-input v-model="formAddMenu.remark" type="textarea" placeholder="鑿滃崟澶囨敞" clearable></el-input> </el-form-item> </el-col> </el-row> @@ -89,6 +97,14 @@ emits: ['success', 'closed'], data() { return { + fixed: false, + parentData: {}, + categoryList: [ + {label: 0,id: "0",value: "APP"}, + {label: 1,id: "1",value: "鑿滃崟"}, + {label: 2,id: "2",value: "鎸夐挳"}, + {label: 3,id: "3",value: "鍗$墖"} + ], value1: true, mode: "add", titleMap: { @@ -99,50 +115,35 @@ visible: false, isSaveing: false, //琛ㄥ崟鏁版嵁 - form: { - id:"", - userName: "", - avatar: "", + formAddMenu: { name: "", - dept: "", - group: [] + path: "", + parentId: "", + $parentId: "", + code: "", + $belongApplication: '', + belongApplication: '', + alias: "", + isOpen: 1, + $isOpen: "鍚�", + keepAlive: 1, + $keepAlive: "鏄�", + $category: "", + category: "", + $category: "", + sort: "", + remark: "" }, //楠岃瘉瑙勫垯 - rules: { - avatar:[ - {required: true, message: '璇蜂笂浼犲ご鍍�'} - ], - userName: [ - {required: true, message: '璇疯緭鍏ョ櫥褰曡处鍙�'} - ], - name: [ - {required: true, message: '璇疯緭鍏ョ湡瀹炲鍚�'} - ], - password: [ - {required: true, message: '璇疯緭鍏ョ櫥褰曞瘑鐮�'}, - {validator: (rule, value, callback) => { - if (this.form.password2 !== '') { - this.$refs.dialogForm.validateField('password2'); - } - callback(); - }} - ], - password2: [ - {required: true, message: '璇峰啀娆¤緭鍏ュ瘑鐮�'}, - {validator: (rule, value, callback) => { - if (value !== this.form.password) { - callback(new Error('涓ゆ杈撳叆瀵嗙爜涓嶄竴鑷�!')); - }else{ - callback(); - } - }} - ], - dept: [ - {required: true, message: '璇烽�夋嫨鎵�灞為儴闂�'} - ], - group: [ - {required: true, message: '璇烽�夋嫨鎵�灞炶鑹�', trigger: 'change'} - ] + addMenuRules: { + name:[{required: true, message: '璇疯緭鍏ヨ彍鍗曞悕绉�'}], + code:[{required: true, message: '璇疯緭鍏ヨ彍鍗曠紪鍙�'}], + belongApplication: [{required: true, message: '璇烽�夋嫨鑿滃崟绫诲瀷', trigger: 'change'}], + alias:[{required: true, message: '璇疯緭鍏ヨ彍鍗曞埆鍚�'}], + isOpen:[{required: true, message: '璇烽�夋嫨鏂扮獥鍙�'}], + keepAlive:[{required: true, message: '璇烽�夋嫨鍚敤缂撳瓨'}], + category: [{required: true, message: '璇烽�夋嫨鎵�灞炲簲鐢�', trigger: 'change'}], + sort:[{required: true, message: '璇疯緭鍏ヨ彍鍗曟帓搴�'}] }, //鎵�闇�鏁版嵁閫夐」 groups: [], @@ -158,11 +159,51 @@ } } }, + props: ['applicationList'], mounted() { // this.getGroup() // this.getDept() + this.parentIdload(); }, methods: { + parentIdChange(val) { + var $parentId = this.$refs.parentTree.getCurrentNode().title; + this.formAddMenu.$parentId = $parentId; + }, + belongApplicationChange(val) { + var $belongApplication = this.applicationList.find(option=>option.code === val).name; + this.formAddMenu.$belongApplication = $belongApplication; + }, + categoryChange(val) { + var $category = this.categoryList.find(option=>option.id == val).value; + this.formAddMenu.$category = $category; + }, + isOpenChange(val) { + if(val == "1") { + this.formAddMenu.$isOpen = "鍚�"; + } + if(val == "2") { + this.formAddMenu.$isOpen = "鏄�"; + } + }, + keepAliveChange(val) { + if(val == "0") { + this.formAddMenu.$keepAlive = "鍚�"; + } + if(val == "1") { + this.formAddMenu.$keepAlive = "鏄�"; + } + }, + parentIdload(node, resolve) { + this.$HTTP.get("/api/blade-system/menu/tree").then(res=> { + if(res.code == 200) { + res.data.forEach(item=> { + item.label = item.title; + }) + this.parentData = res.data; + } + }) + }, //鏄剧ず open(mode='add'){ this.mode = mode; @@ -183,15 +224,16 @@ this.$refs.dialogForm.validate(async (valid) => { if (valid) { this.isSaveing = true; - var res = await this.$API.demo.post.post(this.form); - this.isSaveing = false; - if(res.code == 200){ - this.$emit('success', this.form, this.mode) - this.visible = false; - this.$message.success("鎿嶄綔鎴愬姛") - }else{ - this.$alert(res.message, "鎻愮ず", {type: 'error'}) - } + this.$HTTP.post("/api/blade-system/menu/submit",this.formAddMenu).then(res=> { + this.isSaveing = false; + if(res.code == 200) { + this.$emit('success', this.formAddMenu, this.mode); + this.visible = false; + this.$message.success("鎿嶄綔鎴愬姛"); + }else { + this.$alert(res.message, "鎻愮ず", {type: 'error'}); + } + }) }else{ return false; } @@ -199,15 +241,15 @@ }, //琛ㄥ崟娉ㄥ叆鏁版嵁 setData(data){ - this.form.id = data.id - this.form.userName = data.userName - this.form.avatar = data.avatar - this.form.name = data.name - this.form.group = data.group - this.form.dept = data.dept - + if(data.parentId == "0") { + data.parentId = ""; + } //鍙互鍜屼笂闈竴鏍峰崟涓敞鍏ワ紝涔熷彲浠ュ儚涓嬮潰涓�鏍风洿鎺ュ悎骞惰繘鍘� - //Object.assign(this.form, data) + if(data.fixed) { //鏂板瀛愰」 + this.formAddMenu.parentId = data.id; + }else { + Object.assign(this.formAddMenu, data); + } } } } -- Gitblit v1.9.3