import{d as J,u as X,r as o,I as Y,e as b,j as K,o as g,w as d,g as i,y as x,i as c,l as m,t as u,q as p,A as I,V as Z,v as O,f as M,F as Q,x as W,J as ee,k as te,X as ne,P as ae,G as v,Y as V,D as se,Z as le,_ as oe}from"./index-DrOmHhrX.js";import{u as ie,C as ce}from"./index-B-Iy9lJB.js";const re={class:"page-container"},de={class:"page-left"},ue={class:"role-list"},pe=["onClick"],he={class:"page-right"},fe={class:"page-right-title"},me={class:"menu-permission"},ve={class:"permission-title"},_e={class:"permission-actions"},ke=J({__name:"index",setup(ge){const{t:n}=X(),T=o(),[E,{setValues:Ce,setFormModel:w,getValues:A}]=ie({colSpan:24,schema:[{label:"角色名称",prop:"name",type:"input",required:!0},{prop:"desc",label:"描述",type:"input",props:{type:"textarea"}},{prop:"id",label:"ID",type:"input",hidden:!0}]}),r=o(),C=o([]),L=o([]),R=o([]),F={children:"children",label:"name"},_=o(n("新增")),y=o(""),l=o(0),$=o([]);function h(e){v.roleList({name:y.value}).then(t=>{$.value=t.list||[],t.list.length&&(_.value=n("编辑"),e||(l.value=t.list[0].id),B())})}function B(){v.roleInfo({id:l.value}).then(e=>{w({name:e.name,desc:e.desc,id:e.id}),D(),V(()=>{[...e.menu].forEach(t=>{V(()=>{r.value?.setChecked(t,!0,!1)})})})})}function N(e){e.id!==l.value&&(l.value=e.id,_.value=n("编辑"))}function z(){_.value=n("新增"),l.value=0,w({name:"",desc:"",id:""}),R.value=[],V(()=>{r.value?.setCheckedKeys([])})}function P(){v.menuList({}).then(e=>{C.value=e.list||[];const t=(a=[])=>a.map(s=>{const k={...s,name:`${n(s.name)} - ${s.type===2?n("按钮"):n("菜单")}`};return Array.isArray(s.children)&&(k.children=t(s.children)),k});L.value=t(C.value)})}function S(){r.value?.setCheckedKeys(U())}function D(){r.value?.setCheckedKeys([])}function q(e,t){R.value=r.value?.getCheckedKeys()}function U(){const e=[];function t(a){a.forEach(s=>{e.push(s.id),s.children&&s.children.length&&t(s.children)})}return t(C.value),e}function j(){let e=r.value?.getHalfCheckedKeys()||[],t=r.value?.getCheckedKeys()||[];return[].concat(e,t)}function G(){const e=A(),t=j();if(!e.name){se.warning(n("请输入角色名称"));return}const a={...e,menu_id:t};v.roleUpdate(a).then(()=>{h(!!a.id)})}function H(){le.confirm(n("确认删除角色?"),n("提示"),{confirmButtonText:n("确定"),cancelButtonText:n("取消"),type:"warning"}).then(()=>{v.roleDelete({id:l.value}).then(()=>{h(!1)})})}return Y(l,e=>{e&&B()}),h(!1),P(),(e,t)=>{const a=b("el-button"),s=b("el-icon"),k=b("el-input");return g(),K(ae,{bgColor:"none"},{default:d(()=>[i("div",re,[i("div",de,[x(c(a,{class:"add-btn",icon:"Plus",size:"large",style:{border:"1px dashed #316be1",color:"#316be1"},onClick:z},{default:d(()=>[m(u(p(n)("新增角色")),1)]),_:1},512),[[I,e.$perm(10)]]),c(k,{modelValue:y.value,"onUpdate:modelValue":t[0]||(t[0]=f=>y.value=f),class:"search-input",clearable:"",placeholder:e.$t("搜索角色名称"),onClear:h,onKeyup:Z(h,["enter"])},{append:d(()=>[c(s,{onClick:h},{default:d(()=>[c(p(O))]),_:1})]),_:1},8,["modelValue","placeholder"]),i("div",ue,[(g(!0),M(Q,null,W($.value,f=>(g(),M("div",{key:f.id,class:ee([{active:l.value===f.id},"role-item"]),onClick:ye=>N(f)},u(f.name),11,pe))),128))])]),i("div",he,[i("div",fe,[m(u(_.value)+" ",1),i("span",null,[l.value?x((g(),K(a,{key:0,type:"danger",onClick:H},{default:d(()=>[m(u(e.$t("删除")),1)]),_:1},512)),[[I,e.$perm(20)]]):te("",!0),x(c(a,{type:"primary",onClick:G},{default:d(()=>[m(u(e.$t("保存")),1)]),_:1},512),[[I,e.$perm(10)]])])]),c(p(ce),{ref_key:"formRef",ref:T,onRegister:p(E)},null,8,["onRegister"]),i("div",me,[i("div",ve,u(p(n)("菜单权限")),1),i("div",_e,[c(a,{link:"",size:"small",type:"primary",onClick:S},{default:d(()=>[m(u(p(n)("全选")),1)]),_:1}),c(a,{link:"",size:"small",type:"danger",onClick:D},{default:d(()=>[m(u(p(n)("全不选")),1)]),_:1})]),c(p(ne),{ref_key:"treeRef",ref:r,"check-strictly":!1,data:L.value,props:F,class:"permission-tree","node-key":"id","show-checkbox":"",onCheckChange:q},null,8,["data"])])])])]),_:1})}}}),Ie=oe(ke,[["__scopeId","data-v-a6d29388"]]);export{Ie as default};