From f28b878e45debb202cbce19ddc8618e2e85f2c99 Mon Sep 17 00:00:00 2001
From: gaoshp <291585735@qq.com>
Date: 星期二, 11 六月 2024 19:55:05 +0800
Subject: [PATCH] 工艺文件
---
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