Commit fcd35b80 authored by 张俊's avatar 张俊

Merge branch 'zj' into dev

parents f65d79c9 641ada92
......@@ -14,15 +14,15 @@
>
<span class="el-checkbox__inner"></span>
</span>
<span class="el-checkbox__label" v-text="first_item.name"></span>
<span class="el-checkbox__label" v-text="first_item.menu_name"></span>
</label>
</div>
<ul
class="floor_list second"
v-if="first_item.children && first_item.children.length"
v-if="first_item.Child && first_item.Child.length"
>
<li
v-for="(second_item, second_index) in first_item.children"
v-for="(second_item, second_index) in first_item.Child"
:key="'p_' + first_index + '_' + second_index"
>
<div class="floor_item second">
......@@ -39,16 +39,16 @@
</span>
<span
class="el-checkbox__label"
v-text="second_item.name"
v-text="second_item.menu_name"
></span>
</label>
</div>
<ul
class="floor_list third"
v-if="second_item.children && second_item.children.length"
v-if="second_item.Child && second_item.Child.length"
>
<li
v-for="(third_item, third_index) in second_item.children"
v-for="(third_item, third_index) in second_item.Child"
:key="
'p_' + first_index + '_' + second_index + '_' + third_index
"
......@@ -67,19 +67,19 @@
</span>
<span
class="el-checkbox__label"
v-text="third_item.name"
v-text="third_item.menu_name"
></span>
</label>
</div>
<ul
class="floor_list fourth"
v-if="third_item.children && third_item.children.length"
v-if="third_item.Child && third_item.Child.length"
>
<li>
<div class="floor_item fourth">
<label
v-for="(fourth_item,
fourth_index) in third_item.children"
fourth_index) in third_item.Child"
:key="
'p_' +
first_index +
......@@ -109,7 +109,7 @@
</span>
<span
class="el-checkbox__label"
v-text="fourth_item.name"
v-text="fourth_item.menu_name"
></span>
</label>
</div>
......@@ -152,7 +152,7 @@ export default {
if (p_item) {
let selectedAll = true;
p_item.children.forEach((item) => {
p_item.Child.forEach((item) => {
selectedAll = selectedAll && item.selected;
});
......@@ -162,7 +162,7 @@ export default {
if (gp_item) {
let selectedAll = true;
gp_item.children.forEach((item) => {
gp_item.Child.forEach((item) => {
selectedAll = selectedAll && item.selected;
});
......@@ -172,7 +172,7 @@ export default {
if (ggp_item) {
let selectedAll = true;
ggp_item.children.forEach((item) => {
ggp_item.Child.forEach((item) => {
selectedAll = selectedAll && item.selected;
});
......@@ -184,8 +184,8 @@ export default {
traverse(obj, cb) {
cb(obj);
if (obj.children && obj.children.length) {
obj.children.forEach((item) => {
if (obj.Child && obj.Child.length) {
obj.Child.forEach((item) => {
this.traverse(item, cb);
});
}
......
......@@ -17,12 +17,12 @@
<el-form ref="form" :rules="rules" :model="form" label-width="0px">
<el-form-item prop="name">
<p class="formname">角色名称:</p>
<el-input v-model="form.name"></el-input>
<el-input v-model="form.name" :disabled="edit_flag==3"></el-input>
</el-form-item>
<el-form-item prop="desc">
<p class="formname">角色描述:</p>
<el-input type="textarea" v-model="form.desc"></el-input>
<el-input type="textarea" v-model="form.desc" :disabled="edit_flag==3"></el-input>
</el-form-item>
<el-form-item prop="person">
......@@ -39,7 +39,7 @@
<el-button type="primary" @click="onSubmit('form')" class="right"
>保存</el-button
>
<el-button class="right">取消</el-button>
<el-button class="right" @click="backPage()">取消</el-button>
</el-form-item>
</el-form>
......@@ -76,203 +76,7 @@ export default {
date: "",
},
now_user: 2, //0:普通用户,1:组织管理员,2:超级管理员
permissionData: [
{
name: "权限管理1",
selected: false,
value: 1,
children: [
{
name: "权限管理1-1",
selected: false,
value: 11,
children: [
{
name: "权限管理1-1-1",
selected: false,
value: 111,
children: [
{
name: "权限管理1-1-1-1",
selected: false,
value: 1111,
},
{
name: "权限管理1-1-1-2",
selected: false,
value: 1112,
},
{
name: "权限管理1-1-1-3",
selected: false,
value: 1113,
},
],
},
],
},
{
name: "权限管理1-2",
selected: false,
value: 12,
children: [
{
name: "权限管理1-2-1",
selected: false,
value: 121,
children: [
{
name: "权限管理1-2-1-1",
selected: false,
value: 1211,
},
{
name: "权限管理1-2-1-2",
selected: false,
value: 1212,
},
{
name: "权限管理1-2-1-3",
selected: false,
value: 1213,
},
],
},
],
},
],
},
{
name: "权限管理2",
selected: false,
value: 2,
children: [
{
name: "权限管理2-1",
selected: false,
value: 21,
children: [
{
name: "权限管理2-1-1",
selected: false,
value: 211,
children: [
{
name: "权限管理2-1-1-1",
selected: false,
value: 2111,
},
{
name: "权限管理2-1-1-2",
selected: false,
value: 2112,
},
{
name: "权限管理2-1-1-3",
selected: false,
value: 2113,
},
],
},
],
},
{
name: "权限管理2-2",
selected: false,
value: 22,
children: [
{
name: "权限管理2-2-1",
selected: false,
value: 221,
children: [
{
name: "权限管理2-2-1-1",
selected: false,
value: 2211,
},
{
name: "权限管理2-2-1-2",
selected: false,
value: 2212,
},
{
name: "权限管理2-2-1-3",
selected: false,
value: 2213,
},
],
},
],
},
],
},
{
name: "权限管理3",
selected: false,
value: 3,
children: [
{
name: "权限管理3-1",
selected: false,
value: 31,
children: [
{
name: "权限管理3-1-1",
selected: false,
value: 311,
children: [
{
name: "权限管理3-1-1-1",
selected: false,
value: 3111,
},
{
name: "权限管理3-1-1-2",
selected: false,
value: 3112,
},
{
name: "权限管理3-1-1-3",
selected: false,
value: 3113,
},
],
},
],
},
{
name: "权限管理3-2",
selected: false,
value: 32,
children: [
{
name: "权限管理3-2-1",
selected: false,
value: 321,
},
],
},
],
},
{
name: "权限管理4",
selected: false,
value: 4,
children: [
{
name: "权限管理4-1",
selected: false,
value: 41,
},
{
name: "权限管理4-2",
selected: false,
value: 42,
},
],
},
],
permissionData: [],
rules: {
name: [{ required: true, message: "请输入角色名称", trigger: "blur" }],
desc: [
......@@ -281,6 +85,8 @@ export default {
],
},
edit_flag:0,
service_node:[],
permission_arr:[]
};
},
watch: {},
......@@ -292,10 +98,29 @@ export default {
mounted() {},
methods: {
onSubmit(formName) {
console.log("submit!");
this.$refs[formName].validate((valid) => {
if (valid) {
alert("submit!");
if(this.edit_flag == 0){
this.add_role()
}else if(this.edit_flag == 1){
this.set_role()
}else if(this.edit_flag == 3){
this.deal_node(this.permissionData,this.permission_arr)
console.log(this.permission_arr,this.service_node);
var temp = this.compare_arr(this.permission_arr,this.service_node)
var temp_arr = []
if(temp[0].length){
temp_arr.push(this.add_node(temp[0]))
}
temp[1].forEach(e => {
temp_arr.push(this.delete_node(e))
});
Promise.all(temp_arr).then((result) => {
this.get_now_page()
}).catch((error) => {
console.log(error)
})
}
} else {
console.log("error submit!!");
return false;
......@@ -315,6 +140,134 @@ export default {
this.edit_flag = 2
this.getInfo()
}
if(this.$route.path.indexOf('allot')!==-1){
this.edit_flag = 3
this.getInfo()
Promise.all([this.get_tree(), this.get_use_tree()]).then((result) => {
console.log(result)
this.permissionData = result[0].data.data
this.service_node = result[1].data.data
this.permission_arr = []
this.deal_tree_data(result[0].data.data,result[1].data.data)
}).catch((error) => {
console.log(error)
})
}
},
backPage(){
this.$router.back(-1)
},
add_role(){
var temp = {
"role_name":this.form.name,
"detail":this.form.desc
}
this.$http
.post(`/apaas/backmgt/role`,temp)
.then(response => {
console.log(response);
let data = response.data.data
if(response.data.success){
this.$message.success('新增成功')
this.backPage()
}else{
this.$message.error('新增失败')
}
})
.catch((response)=> {
this.$message.error('新增失败')
});
},
set_role(){
var temp = {
"role_id":this.$route.params.id,
"role_name":this.form.name,
"detail":this.form.desc
}
this.$http
.put(`/apaas/backmgt/role`,temp)
.then(response => {
console.log(response);
let data = response.data.data
if(response.data.success){
this.$message.success('修改成功')
this.backPage()
}else{
this.$message.error('修改失败')
}
})
.catch((response)=> {
this.$message.error('修改失败')
});
},
delete_node(val){
return this.$http
.post(`/apaas/backmgt/role/menuDel`,{
"role_id":this.$route.params.id,
"menu_id":val
})
.then(response => {
if(response.data.success){
this.$message.success('删除分配菜单成功')
}else{
this.$message.error('删除分配菜单失败')
}
})
.catch((response)=> {
this.$message.error('删除分配菜单失败')
});
},
add_node(arr){
return this.$http
.post(`/apaas/backmgt/role/menuAdd`,{
"role_id":this.$route.params.id,
"menu_id":arr
})
.then(response => {
if(response.data.success){
this.$message.success('分配菜单成功')
}else{
this.$message.error('分配菜单失败')
}
})
.catch((response)=> {
this.$message.error('分配菜单失败')
});
},
deal_node(data,data1){
data.forEach(e => {
if(e.selected){
data1.push(e.menu_id)
}
if(e.Child){
this.deal_node(e.Child,data1)
}
});
},
compare_arr(arr1,arr2){
var nowtemp = {}
var oldtemp = {}
var increase = []
var reduce = []
arr1.forEach(e => {
nowtemp[e] = e
});
arr2.forEach(e => {
oldtemp[e.menu_id] = e.menu_id
});
for (const key in nowtemp) {
if (!oldtemp.hasOwnProperty(key)) {
increase.push(key)
}
}
for (const key in oldtemp) {
if (!nowtemp.hasOwnProperty(key)) {
reduce.push(key)
}
}
return [increase,reduce]
},
getInfo() {
this.$http
......@@ -322,14 +275,45 @@ export default {
.then(response => {
console.log(response);
let data = response.data.data
this.form={
name: data.role_name,
desc: data.detail,
person: data.create_user,
date: data.create_date,
}
})
.catch((response)=> {
});
},
get_tree() {
return this.$http
.get(`/apaas/backmgt/menu/list`)
},
get_use_tree() {
return this.$http
.get(`/apaas/backmgt/role/menu/id/${this.$route.params.id}`)
},
deal_tree_data(data1,data2){
var temp = {}
data2.forEach(e => {
temp[e.menu_id] = e.menu_id
});
this.merge_data(data1,temp)
},
merge_data(data,temp){
data.forEach(e => {
if(temp[e.menu_id]){
e.selected = true
}
if(e.Child){
this.merge_data(e.Child,temp)
}
});
},
changePermissions(values) {
console.log(values);
console.log(this.permissionData);
},
},
};
......
......@@ -221,6 +221,7 @@ export default {
this.edit_flag = 2
this.get_user()
}
},
tranform_flag(val){
return val?true:false
......@@ -313,7 +314,7 @@ export default {
this.$message.success('新增成功')
})
.catch((response)=> {
this.$message.success('新增失败')
this.$message.error('新增失败')
});
},
set_user(){
......@@ -339,7 +340,7 @@ export default {
this.$message.success('修改成功')
})
.catch((response)=> {
this.$message.success('修改失败')
this.$message.error('修改失败')
});
},
onSubmit(formName) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment