Commit dc4e0d0c by liyuhang19990520

222

parent e1a91ea5
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
/> />
新增角色 新增角色
</div> </div>
<div class="img-btn" @click="copy"> <div class="img-btn" @click="copy" title="复制">
<img <img
src="../../assets/img/role/copy.png" src="../../assets/img/role/copy.png"
style=" style="
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
width: 0.9375rem; width: 0.9375rem;
margin-left: 0.0625rem; margin-left: 0.0625rem;
margin-top: 0.25rem; margin-top: 0.25rem;
cursor: pointer;
" "
/> />
</div> </div>
...@@ -123,43 +124,70 @@ ...@@ -123,43 +124,70 @@
<!-- 角色权限菜单列--> <!-- 角色权限菜单列-->
<div class="menus"> <div class="menus">
<div class="div3"> <div class="div3">
<el-checkbox :label="permissionDataList[0].id"> <el-checkbox
v-if="permissionDataList[0]"
:label="permissionDataList[0].id"
>
{{ permissionDataList[0].name }} {{ permissionDataList[0].name }}
</el-checkbox> </el-checkbox>
<el-checkbox :label="permissionDataList[1].id"> <el-checkbox
:label="permissionDataList[1].id"
v-if="permissionDataList[1]"
>
{{ permissionDataList[1].name }} {{ permissionDataList[1].name }}
</el-checkbox> </el-checkbox>
<el-checkbox :label="permissionDataList[2].id"> <el-checkbox
:label="permissionDataList[2].id"
v-if="permissionDataList[2]"
>
{{ permissionDataList[2].name }} {{ permissionDataList[2].name }}
</el-checkbox> </el-checkbox>
</div> </div>
<div class="div3"> <div class="div3">
<el-checkbox :label="permissionDataList[3].id"> <el-checkbox
:label="permissionDataList[3].id"
v-if="permissionDataList[3]"
>
{{ permissionDataList[3].name }} {{ permissionDataList[3].name }}
</el-checkbox> </el-checkbox>
</div> </div>
<div class="div1"> <div class="div1">
<el-checkbox :label="permissionDataList[4].id"> <el-checkbox
:label="permissionDataList[4].id"
v-if="permissionDataList[4]"
>
{{ permissionDataList[4].name }} {{ permissionDataList[4].name }}
</el-checkbox> </el-checkbox>
</div> </div>
<div class="div1"> <div class="div1">
<el-checkbox :label="permissionDataList[5].id"> <el-checkbox
:label="permissionDataList[5].id"
v-if="permissionDataList[5]"
>
{{ permissionDataList[5].name }} {{ permissionDataList[5].name }}
</el-checkbox> </el-checkbox>
</div> </div>
<div class="div1"> <div class="div1">
<el-checkbox :label="permissionDataList[6].id"> <el-checkbox
:label="permissionDataList[6].id"
v-if="permissionDataList[6]"
>
{{ permissionDataList[6].name }} {{ permissionDataList[6].name }}
</el-checkbox> </el-checkbox>
</div> </div>
<div class="div2"> <div class="div2">
<el-checkbox :label="permissionDataList[7].id"> <el-checkbox
:label="permissionDataList[7].id"
v-if="permissionDataList[7]"
>
{{ permissionDataList[7].name }} {{ permissionDataList[7].name }}
</el-checkbox> </el-checkbox>
</div> </div>
<div class="div3"> <div class="div3">
<el-checkbox :label="permissionDataList[8].id"> <el-checkbox
:label="permissionDataList[8].id"
v-if="permissionDataList[8]"
>
{{ permissionDataList[8].name }} {{ permissionDataList[8].name }}
</el-checkbox> </el-checkbox>
</div> </div>
...@@ -168,7 +196,8 @@ ...@@ -168,7 +196,8 @@
<div class="div3"> <div class="div3">
<div <div
class="line" class="line"
v-for="item in permissionDataList[0].children" v-for="item in permissionDataList[0] &&
permissionDataList[0].children"
:key="item.id" :key="item.id"
> >
<el-checkbox :label="item.id"> {{ item.name }}</el-checkbox> <el-checkbox :label="item.id"> {{ item.name }}</el-checkbox>
...@@ -176,7 +205,8 @@ ...@@ -176,7 +205,8 @@
<br /> <br />
<div <div
class="line" class="line"
v-for="item in permissionDataList[1].children" v-for="item in permissionDataList[1] &&
permissionDataList[1].children"
:key="item.id" :key="item.id"
> >
<el-checkbox :label="item.id"> {{ item.name }}</el-checkbox> <el-checkbox :label="item.id"> {{ item.name }}</el-checkbox>
...@@ -184,7 +214,8 @@ ...@@ -184,7 +214,8 @@
<br /> <br />
<div <div
class="line" class="line"
v-for="item in permissionDataList[2].children" v-for="item in permissionDataList[2] &&
permissionDataList[2].children"
:key="item.id" :key="item.id"
> >
<el-checkbox :label="item.id"> {{ item.name }}</el-checkbox> <el-checkbox :label="item.id"> {{ item.name }}</el-checkbox>
...@@ -193,7 +224,8 @@ ...@@ -193,7 +224,8 @@
<div class="div3"> <div class="div3">
<div <div
class="line" class="line"
v-for="item in permissionDataList[3].children" v-for="item in permissionDataList[3] &&
permissionDataList[3].children"
:key="item.id" :key="item.id"
> >
<el-checkbox :label="item.id"> {{ item.name }}</el-checkbox> <el-checkbox :label="item.id"> {{ item.name }}</el-checkbox>
...@@ -202,7 +234,8 @@ ...@@ -202,7 +234,8 @@
<div class="div1"> <div class="div1">
<div <div
class="line" class="line"
v-for="item in permissionDataList[4].children" v-for="item in permissionDataList[4] &&
permissionDataList[4].children"
:key="item.id" :key="item.id"
> >
<el-checkbox :label="item.id"> {{ item.name }}</el-checkbox> <el-checkbox :label="item.id"> {{ item.name }}</el-checkbox>
...@@ -211,7 +244,8 @@ ...@@ -211,7 +244,8 @@
<div class="div1"> <div class="div1">
<div <div
class="line" class="line"
v-for="item in permissionDataList[5].children" v-for="item in permissionDataList[5] &&
permissionDataList[5].children"
:key="item.id" :key="item.id"
> >
<el-checkbox :label="item.id"> {{ item.name }}</el-checkbox> <el-checkbox :label="item.id"> {{ item.name }}</el-checkbox>
...@@ -220,7 +254,8 @@ ...@@ -220,7 +254,8 @@
<div class="div1"> <div class="div1">
<div <div
class="line" class="line"
v-for="item in permissionDataList[6].children" v-for="item in permissionDataList[6] &&
permissionDataList[6].children"
:key="item.id" :key="item.id"
> >
<el-checkbox :label="item.id"> {{ item.name }}</el-checkbox> <el-checkbox :label="item.id"> {{ item.name }}</el-checkbox>
...@@ -229,7 +264,8 @@ ...@@ -229,7 +264,8 @@
<div class="div2"> <div class="div2">
<div <div
class="line" class="line"
v-for="item in permissionDataList[7].children" v-for="item in permissionDataList[7] &&
permissionDataList[7].children"
:key="item.id" :key="item.id"
> >
<el-checkbox :label="item.id"> {{ item.name }}</el-checkbox> <el-checkbox :label="item.id"> {{ item.name }}</el-checkbox>
...@@ -238,7 +274,8 @@ ...@@ -238,7 +274,8 @@
<div class="div3"> <div class="div3">
<div <div
class="line" class="line"
v-for="item in permissionDataList[8].children" v-for="item in permissionDataList[8] &&
permissionDataList[8].children"
:key="item.id" :key="item.id"
> >
<el-checkbox :label="item.id"> {{ item.name }}</el-checkbox> <el-checkbox :label="item.id"> {{ item.name }}</el-checkbox>
...@@ -280,6 +317,7 @@ export default { ...@@ -280,6 +317,7 @@ export default {
editurl: require("@/assets/img/edit.png"), editurl: require("@/assets/img/edit.png"),
funFlag: true, funFlag: true,
dataFlag: false, dataFlag: false,
//选择权限框
checkList: [], checkList: [],
roles: [], roles: [],
addRoleParams: [], addRoleParams: [],
...@@ -291,12 +329,18 @@ export default { ...@@ -291,12 +329,18 @@ export default {
roleMenusSelection: [], roleMenusSelection: [],
// 自定义的角色组 // 自定义的角色组
diyRoleList: [], diyRoleList: [],
//正在选择的角色框样式
diyRoleItemIndex: 2, diyRoleItemIndex: 2,
defaultRoleItemIndex: 2, //现在点击的按钮是默认人员还是自加人员
btnType: "default", btnType: "default",
//权限是否不可编辑
disabled: true, disabled: true,
//删除图标变化开关
delimgBoo: false, delimgBoo: false,
//删除自己添加的用户时的数组
btnCheckList: [], btnCheckList: [],
//手动新添加的用户集合
customAddUser: [],
}; };
}, },
methods: { methods: {
...@@ -334,12 +378,82 @@ export default { ...@@ -334,12 +378,82 @@ export default {
}, },
// 复制 // 复制
copy() { copy() {
console.info("复制数据"); if (this.customAddUser.length > 0) {
this.$message.warning("请先保存后再进行复制!");
return;
}
this.resetEdit();
let arr = [...this.defaultRoleBtns, ...this.diyRoleList];
let item = arr.find((i) => i.id == this.diyRoleItemIndex);
if (item) {
let id = this.diyRoleList.length + 20 + "copy";
var roleitem = {
name: item.name + "_copy",
flag: false,
code: this.diyRoleList.length,
edit: true,
id,
permissions: item.permissions,
};
this.diyRoleItemIndex = id;
//加列表
this.diyRoleList.push(roleitem);
//加添加的人员
this.customAddUser.push(roleitem);
//加权限
this.checkList = item?.permissions?.map((i) => i.id) || [];
this.btnType = "custom";
setTimeout(() => {
this.$refs.diyRoles.scrollTop = this.$refs.diyRoles.scrollHeight;
}, 20);
}
//defaultRoleBtns
// diyRoleList
// this.diyRoleItemIndex
console.info(item);
}, },
// 保存 // 保存
save() { save() {
this.roleMenusSelection = this.roleMenus; let self = this;
console.info("roleMenusSelection====", this.roleMenusSelection); if (this.customAddUser.length > 0) {
let name = this.customAddUser[0].name;
let checkArr = this.checkList;
let params = {
name,
permissionIds: checkArr,
};
let index = this.diyRoleList.findIndex((i) => i.name == name);
if (checkArr.length > 0) {
let diyRolePermissions = checkArr.map((i) => {
return {
id: i,
};
});
this.$set(this.diyRoleList[index], "permissions", diyRolePermissions);
}
this.$axios({
method: "post",
url: "/system/roles",
headers: {
"Content-Type": "application/json;charset=UTF-8",
},
data: JSON.stringify(params),
}).then((res) => {
if (res.data) {
self.customAddUser = [];
self.resetEdit();
setTimeout(() => {
this.$message.success("新增角色成功!");
}, 1500);
} else {
setTimeout(() => {
this.$message.success("新增角色失败!");
}, 1500);
}
});
} else {
this.$message.warning("请添加用户后保存");
}
}, },
// 获取角色列表 和 角色权限列表 // 获取角色列表 和 角色权限列表
search() { search() {
...@@ -393,14 +507,24 @@ export default { ...@@ -393,14 +507,24 @@ export default {
}, },
// 新增 // 新增
add() { add() {
if (this.customAddUser.length > 0) {
this.$message.warning("请先保存后再进行添加!");
return;
}
this.resetEdit(); this.resetEdit();
let id = this.diyRoleList.length + 20 + "l";
var roleitem = { var roleitem = {
name: "自定义" + (this.diyRoleList.length + 1), name: "自定义" + (this.diyRoleList.length + 1),
flag: false, flag: false,
code: this.diyRoleList.length, code: this.diyRoleList.length,
edit: true, edit: true,
id,
}; };
this.diyRoleItemIndex = id;
this.diyRoleList.push(roleitem); this.diyRoleList.push(roleitem);
this.customAddUser.push(roleitem);
this.checkList = [];
this.btnType = "custom";
setTimeout(() => { setTimeout(() => {
this.$refs.diyRoles.scrollTop = this.$refs.diyRoles.scrollHeight; this.$refs.diyRoles.scrollTop = this.$refs.diyRoles.scrollHeight;
}, 20); }, 20);
...@@ -466,9 +590,6 @@ export default { ...@@ -466,9 +590,6 @@ export default {
this.getPermissionDataLists(); this.getPermissionDataLists();
}, },
mounted() { mounted() {
setTimeout(() => {
console.log(66666666, this.permissionDataList);
}, 2000);
this.funFlag = true; this.funFlag = true;
}, },
}; };
...@@ -511,7 +632,6 @@ export default { ...@@ -511,7 +632,6 @@ export default {
color: #333333 !important; color: #333333 !important;
} }
.diy-roles { .diy-roles {
position: relative; position: relative;
padding-top: 25px; padding-top: 25px;
padding-left: 0 !important; padding-left: 0 !important;
...@@ -531,10 +651,10 @@ export default { ...@@ -531,10 +651,10 @@ export default {
height: 10px; height: 10px;
} }
&::-webkit-scrollbar-thumb { &::-webkit-scrollbar-thumb {
background: rgba(0, 0, 0, 0.2) background: rgba(0, 0, 0, 0.2);
} }
&::-webkit-scrollbar-track { &::-webkit-scrollbar-track {
background: #F5F5F5; background: #f5f5f5;
} }
} }
.chooseItem { .chooseItem {
...@@ -553,4 +673,12 @@ export default { ...@@ -553,4 +673,12 @@ export default {
.delWidth { .delWidth {
width: 170px !important; width: 170px !important;
} }
.el-checkbox /deep/ {
.is-checked {
.el-checkbox__inner {
background-color: #055fe7 !important;
border-color: #055fe7 !important;
}
}
}
</style> </style>
...@@ -107,10 +107,9 @@ ...@@ -107,10 +107,9 @@
} }
.diy-edit-title { .diy-edit-title {
width: 146px; width: 146px;
height: 19px; height: 100%;
font-size: 14px; font-size: 14px;
color: #333333; color: #333333;
line-height: 19px;
} }
.diy-edit-btn { .diy-edit-btn {
width: 40px; width: 40px;
......
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