"use strict";(self["webpackChunkscui"]=self["webpackChunkscui"]||[]).push([[5100],{94627:function(e,s,t){t.r(s),t.d(s,{default:function(){return j}});var i=t(66252),a=t(3577);const o=e=>((0,i.dD)("data-v-d64c64c2"),e=e(),(0,i.Cn)(),e),l={class:"left-panel"},r=(0,i.Uk)("新增角色"),d=o((()=>(0,i._)("div",{class:"right-panel"},null,-1))),n={key:0,class:"btnPot"},c=(0,i.Uk)("保存权限"),h={key:1,class:"btnPot"},u=(0,i.Uk)("移除成员"),m=(0,i.Uk)("添加成员"),g={class:"bodyView"},p={class:"viewLeft"},w=o((()=>(0,i._)("div",{class:"viewTitle"},"成员",-1))),_={class:"viewCom","element-loading-text":"加载中..."},f={class:"iconRight"},y={class:"icon"},k={class:"viewRight"},v={class:"viewTitle"},C={class:"viewCom"},L=["onClick"],b={class:"leftTitle"},$={class:"avatar"},S={class:"name"},D={class:"userBtn"},I=(0,i.Uk)("关 闭");function T(e,s,t,o,T,U){const P=(0,i.up)("el-button"),A=(0,i.up)("el-header"),R=(0,i.up)("role-sort"),W=(0,i.up)("el-scrollbar"),M=(0,i.up)("el-main"),x=(0,i.up)("el-container"),E=(0,i.up)("el-aside"),z=(0,i.up)("dataTree"),G=(0,i.up)("el-tab-pane"),j=(0,i.up)("members"),N=(0,i.up)("el-tabs"),q=(0,i.up)("treeUser"),O=(0,i.up)("el-icon-ArrowRight"),V=(0,i.up)("el-icon-Close"),B=(0,i.up)("el-dialog"),F=(0,i.up)("save-dialog"),H=(0,i.up)("permission-dialog"),Q=(0,i.Q2)("auth"),Y=(0,i.Q2)("loading");return(0,i.wg)(),(0,i.iD)(i.HY,null,[(0,i.Wm)(x,{class:"mainBox"},{default:(0,i.w5)((()=>[(0,i.Wm)(A,{style:{"padding-left":"0","padding-right":"0"}},{default:(0,i.w5)((()=>[(0,i._)("div",l,[(0,i.wy)(((0,i.wg)(),(0,i.j4)(P,{type:"primary",size:T.size,icon:"el-icon-plus",onClick:U.add},{default:(0,i.w5)((()=>[r])),_:1},8,["size","onClick"])),[[Q,"addRoles"]])]),d])),_:1}),(0,i.Wm)(x,{class:"mainBox",style:{"border-radius":"0","padding-left":"0","padding-right":"0"}},{default:(0,i.w5)((()=>[(0,i.wy)(((0,i.wg)(),(0,i.j4)(E,{width:"200px"},{default:(0,i.w5)((()=>[(0,i.Wm)(x,null,{default:(0,i.w5)((()=>[(0,i.Wm)(M,{class:"treeMain nopadding"},{default:(0,i.w5)((()=>[(0,i.Wm)(W,null,{default:(0,i.w5)((()=>[(0,i.Wm)(R,{ref:"roleSort",role_id:T.role_id,column:T.group,onRoleChange:U.groupChange,onRoleClick:U.roleClick,onRoleEdit:U.table_edit,onRoleDelete:U.table_del},null,8,["role_id","column","onRoleChange","onRoleClick","onRoleEdit","onRoleDelete"])])),_:1})])),_:1})])),_:1})])),_:1})),[[Y,T.showGroupLoading]]),(0,i.Wm)(x,{style:{padding:"0"}},{default:(0,i.w5)((()=>[(0,i.Wm)(M,{class:"nopadding"},{default:(0,i.w5)((()=>[0==T.activeNum?((0,i.wg)(),(0,i.iD)("div",n,[(0,i.wy)(((0,i.wg)(),(0,i.j4)(P,{type:"primary",plain:"",size:T.size,loading:T.isSave,onClick:U.submit},{default:(0,i.w5)((()=>[c])),_:1},8,["size","loading","onClick"])),[[Q,"addRoleAuth"]])])):(0,i.kq)("",!0),1==T.activeNum?((0,i.wg)(),(0,i.iD)("div",h,[(0,i.wy)(((0,i.wg)(),(0,i.j4)(P,{type:"danger",plain:"",size:T.size,onClick:U.deleteMember},{default:(0,i.w5)((()=>[u])),_:1},8,["size","onClick"])),[[Q,"roleRemovedUsers"]]),(0,i.wy)(((0,i.wg)(),(0,i.j4)(P,{type:"primary",plain:"",size:T.size,onClick:U.getDeptTree},{default:(0,i.w5)((()=>[m])),_:1},8,["size","onClick"])),[[Q,"roleAddedUsers"]])])):(0,i.kq)("",!0),(0,i.Wm)(N,{class:"role_tabs","tab-position":"top",onTabChange:U.activeClick},{default:(0,i.w5)((()=>[(0,i.Wm)(G,{label:"功能权限"},{default:(0,i.w5)((()=>[(0,i.wy)((0,i.Wm)(z,{ref:"dataTree","element-loading-text":"加载中...",data:T.menu.list},null,8,["data"]),[[Y,T.dataTreeLoading]])])),_:1}),(0,i.Wm)(G,{label:"角色成员"},{default:(0,i.w5)((()=>[(0,i.wy)((0,i.Wm)(j,{ref:"members","element-loading-text":"加载中...",data:T.roleUser.list},null,8,["data"]),[[Y,T.roleUserLoading]])])),_:1})])),_:1},8,["onTabChange"])])),_:1})])),_:1})])),_:1})])),_:1}),(0,i.Wm)(B,{title:"选择成员",modelValue:T.memberShow,"onUpdate:modelValue":s[1]||(s[1]=e=>T.memberShow=e),width:720,"destroy-on-close":"",onClosed:U.closedClose},{footer:(0,i.w5)((()=>[(0,i.Wm)(P,{onClick:s[0]||(s[0]=e=>T.memberShow=!1)},{default:(0,i.w5)((()=>[I])),_:1})])),default:(0,i.w5)((()=>[(0,i._)("div",g,[(0,i._)("div",p,[w,(0,i.wy)(((0,i.wg)(),(0,i.iD)("div",_,[(0,i.Wm)(W,null,{default:(0,i.w5)((()=>[(0,i.Wm)(q,{class:"treeUser",ref:"treeList",data:T.deptTree,userIds:T.userIds,onRoleChecked:U.roleChecked},null,8,["data","userIds","onRoleChecked"])])),_:1})])),[[Y,T.userLoading]])]),(0,i._)("div",f,[(0,i._)("div",y,[(0,i.Wm)(O)])]),(0,i._)("div",k,[(0,i._)("div",v,"已选成员 ("+(0,a.toDisplayString)(T.userCheckList.length)+")",1),(0,i._)("div",C,[(0,i.Wm)(W,null,{default:(0,i.w5)((()=>[((0,i.wg)(!0),(0,i.iD)(i.HY,null,(0,i.Ko)(T.userCheckList,((e,s)=>((0,i.wg)(),(0,i.iD)("div",{class:"checkList",key:s,onClick:s=>U.deleteUser(e)},[(0,i._)("div",b,[(0,i._)("div",$,(0,a.toDisplayString)(U.userAvatar(e)),1),(0,i._)("div",S,(0,a.toDisplayString)(e.name),1)]),(0,i._)("div",D,[(0,i.Wm)(V)])],8,L)))),128))])),_:1})])])])])),_:1},8,["modelValue","onClosed"]),T.dialog.save?((0,i.wg)(),(0,i.j4)(F,{key:0,ref:"saveDialog",onSuccess:U.handleSaveSuccess,onClosed:s[2]||(s[2]=e=>T.dialog.save=!1)},null,8,["onSuccess"])):(0,i.kq)("",!0),T.dialog.permission?((0,i.wg)(),(0,i.j4)(H,{key:1,ref:"permissionDialog",onClosed:s[3]||(s[3]=e=>T.dialog.permission=!1)},null,512)):(0,i.kq)("",!0)],64)}t(57658);var U=t(69317),P=t(18594),A=t(96780),R=t(93212),W=t(26601),M=t(80098),x=t(58621),E={name:"role",components:{saveDialog:U["default"],permissionDialog:P["default"],dataTree:A["default"],dataPermissions:R["default"],members:W["default"],treeUser:M["default"],roleSort:x["default"]},watch:{groupFilterText(e){this.$refs.group.filter(e)}},data(){return{size:"small",dialog:{save:!1,permission:!1},showGroupLoading:!1,groupFilterText:"",group:[],list:{apiObj:this.$API.system.role.list,column:[]},isSave:!1,isDataSave:!1,activeNum:0,roleCheckList:[],role_id:0,dataTreeLoading:!1,menu:{list:[]},dataPermissionsLoading:!1,dataPermissions:{list:[]},roleUserLoading:!1,roleUser:{list:[]},memberShow:!1,deptTree:[],isMember:!1,userCheckList:[],userIds:[],userLoading:!1}},mounted(){this.getGroup(!0)},methods:{async getGroup(e=!0){this.showGroupLoading=!0;const s=await this.$API.system.role.list.get({sys_type:1});this.showGroupLoading=!1,200==s.code&&(this.group=s.data.rows,s.data.rows&&s.data.rows.length>0&&(this.role_id=s.data.rows[0].id,e&&(await this.getMenu(s.data.rows[0].id),await this.getRoleList(s.data.rows[0].id))))},add(){this.dialog.save=!0,this.$nextTick((()=>{this.$refs.saveDialog.open()}))},table_edit(e){this.dialog.save=!0,this.$nextTick((()=>{this.$refs.saveDialog.open("edit").setData(e)}))},permission(){this.dialog.permission=!0,this.$nextTick((()=>{this.$refs.permissionDialog.open(this.role_id)}))},async table_del(e){this.$confirm(`确定删除 ${e.role_name} 吗?`,"提示",{type:"warning"}).then((async()=>{const s={ids:[e.id]},t=await this.$API.system.role.delete.post(s);200==t.code&&(await this.getGroup(!0),this.$message.success("删除成功"))})).catch((()=>{}))},async batch_del(){this.$confirm(`确定删除选中的 ${this.roleCheckList.length} 项吗?`,"提示",{type:"warning"}).then((async()=>{const e=this.$loading(),s={ids:this.roleCheckList.map((e=>e))},t=await this.$API.system.role.delete.post(s);200==t.code&&(await this.getGroup(!0),this.$message.success("删除成功")),e.close()})).catch((()=>{}))},changeSwitch(e,s){s.$switch_status=!0,setTimeout((async()=>{let e={id:s.id,status:s.active_status};const t=await this.$API.system.role.status.post(e);200!=t.code&&(s.active_status=!s.active_status),delete s.$switch_status,delete s.$switch_yx}),500)},filterTree(e){let s=null;function t(i){i.forEach((i=>{i.id==e&&(s=i),i.children&&t(i.children)}))}return t(this.$refs.table.tableData),s},handleSaveSuccess(){this.getGroup(!0)},groupFilterNode(e,s){return!e||-1!==s.label.indexOf(e)},groupChange(e){let s={sort_info:e.map(((e,s)=>({id:e.id,sort:s+1})))};const t=this.$API.system.role.sort.post(s);200===t.code&&this.$message.success("保存成功")},roleClick(e){this.role_id=e.id,this.getMenu(),this.getRoleList()},submit(){this.isSave=!0;const e=this.setList(this.$refs.dataTree.list);setTimeout((async()=>{const s=await this.$API.system.role.roleAuth.post(e);200===s.code&&(this.$message.success("授权成功"),await this.getMenu()),this.isSave=!1}))},setList(e){let s={role_id:this.role_id,menu_permission:[],data_permission:[]};const t=e=>{if((e.checked||e.isCheck)&&e.meta&&e.meta.code&&!e.meta.hidden&&s.menu_permission.push(e.meta.code),e.meta&&e.meta.data_permission&&e.meta.data_permission.length>0){let t=e.meta.data_permission.filter((e=>e.checked)).map((e=>({actions:e.actions,title:e.title})));t.length>0&&s.data_permission.push({[e.meta.code]:t})}e.children&&e.children.length>0&&!e.cancels_recursion?e.children.forEach((e=>{t(e),e.meta&&e.meta.hidden&&(e.checked||e.isCheck)&&e.meta.code&&s.menu_permission.push(e.meta.code)})):e.cancels_recursion&&e.children&&e.children.length>0&&e.children.forEach((i=>{t(i),(e.checked||e.isCheck)&&i.meta&&i.meta.hidden&&i.meta.code&&s.menu_permission.push(i.meta.code)}))};return e.forEach((e=>{t(e)})),s},submitPermissions(){this.isDataSave=!0;const e=this.setDataList(this.$refs.dataPermissions.list);setTimeout((async()=>{const s=await this.$API.system.role.dataAuth.post(e);200===s.code&&(this.$message.success("授权成功"),await this.getDataList()),this.isDataSave=!1}))},setDataList(e){let s={role_id:this.role_id,resource_info:[]};return e.forEach((e=>{e.set_info&&e.set_info.length>0&&e.set_info.forEach((e=>{s.resource_info.push(e)}))})),s},userAvatar(e){return e.name.substring(0,1)},activeClick(e){this.activeNum=e},async getMenu(e){if(""!=this.role_id||e){let s={role_id:e||this.role_id};this.dataTreeLoading=!0;const t=await this.$API.system.role.roleMenu.post(s);this.dataTreeLoading=!1,this.menu.list=t.data}},async getDataList(e){if(""!=this.role_id||e){let s={role_id:e||this.role_id};this.dataPermissionsLoading=!0;const t=await this.$API.system.role.dataMenu.post(s);this.dataPermissionsLoading=!1,this.dataPermissions.list=t.data}},async getRoleList(e){if(""!=this.role_id||e){let s={role_id:e||this.role_id};this.roleUserLoading=!0;const t=await this.$API.system.role.roleUser.post(s);this.roleUserLoading=!1,this.roleUser.list=t.data,this.userCheckList=t.data,t.data&&t.data.length>0?this.userIds=t.data.map((e=>e.id)):this.userIds=[]}},async getDeptTree(){this.memberShow=!0,this.userLoading=!0;let e={field:"name",active_status:1,sys_type:1};const s=await this.$API.system.role.roleUserTree.post(e);this.deptTree=this.treeShow(s.data),this.userLoading=!1},treeShow(e){if(e&&e.length>0)return e.forEach((e=>{e.isOpen=!0,e.children&&this.treeShow(e.children)})),e},roleChecked(e){let s=this.userIds;if(-1==s.indexOf(e.id))return this.userIds.push(e.id),this.userCheckList.push(e),void this.userSingleSubmit(e.id);this.userIds.forEach(((s,t)=>{s==e.id&&this.userIds.splice(t,1)})),this.userCheckList.forEach(((s,t)=>{s.id==e.id&&this.userCheckList.splice(t,1)})),this.deleteSingleMember(e.id)},deleteUser(e){this.userIds.forEach(((s,t)=>{s==e.id&&this.userIds.splice(t,1)})),this.userCheckList.forEach(((s,t)=>{s.id==e.id&&this.userCheckList.splice(t,1)})),this.deleteSingleMember(e.id)},async deleteSingleMember(e){let s={role_id:this.role_id,user_ids:[e]};this.userLoading=!0;const t=await this.$API.system.role.roleUserDel.post(s);this.userLoading=!1,200==t.code&&await this.getRoleList()},deleteMember(){this.$confirm("确定删除选中成员吗?","提示",{type:"warning"}).then((async()=>{let e=[];this.$refs.members.list.forEach((s=>{s.checked&&e.push(s.id)})),setTimeout((async()=>{let s={user_ids:e,role_id:this.role_id};this.roleUserLoading=!0;const t=await this.$API.system.role.roleUserDel.post(s);200==t.code&&await this.getRoleList()}),100)})).catch((()=>{}))},closedClose(){this.memberShow=!1},async userSingleSubmit(e){let s={role_ids:[this.role_id],user_ids:[e]};this.userLoading=!0;const t=await this.$API.system.role.roleUserAdd.post(s);this.userLoading=!1,200==t.code&&(this.$message.success("保存成功"),await this.getRoleList())},async userSubmit(){let e={role_ids:[this.role_id],user_ids:this.userCheckList.map((e=>e.id))};this.isMember=!0;const s=await this.$API.system.role.roleUserAdd.post(e);200==s.code&&(this.memberShow=!1,this.$message.success("保存成功"),this.isMember=!1,await this.getRoleList())}}},z=t(83744);const G=(0,z.Z)(E,[["render",T],["__scopeId","data-v-d64c64c2"]]);var j=G}}]);