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