packageAdd-2MHotw43.js 5.8 KB

1
  1. import{d as W,r as f,a as S,o as X,f as i,i as r,w as a,s as Y,p as g,q as Z,v as u,m as _,F as w,x as A,E as T,a4 as F,y as I,l as x,h as z,_ as ee}from"./index-DrwGqDEP.js";import{b as le,c as ne,f as oe}from"./auth-BvE0Y7x2.js";import{g as re}from"./menus-C17TqQjG.js";const ae={class:"permission-container"},se={key:0,class:"el-icon-arrow-down"},de={key:0,class:"role-dropdown__list"},te={class:"role-dropdown__label"},ce={key:0,class:"el-icon-arrow-right"},ie={key:0,class:"role-dropdown__list"},ue={class:"role-dropdown__label"},he=W({__name:"packageAdd",setup(pe){const q=Y(),D=Z();f(!0),f([]),f([]);const m=S({data_scope:"ALL",role_name:"",dept_ids:"",role_describe:""}),G=S({role_name:[{required:!0,message:"请输入角色名称!",trigger:"blur"},{min:1,max:10,message:"长度在 1 到 10 个字符",trigger:"blur"}]}),s=f([]),R=f(!1),U=f(!1);f(!1);const b=f(q.query.id);console.log("role_id:",q.query);const k=n=>Array.isArray(n.children)&&n.children.length!==0,j=n=>{U.value=!1,s.value=P(s.value,n)},y=(n,e)=>{n.children&&n.children.length&&(n.children=P(n.children,n.checked)),C(s.value),L(s.value)},P=(n,e)=>{const l=[...n];return l.map(o=>{o.checked=e,o.children&&o.children.length&&(o.children=P(o.children,e))}),l},V=n=>{if(!Array.isArray(n))return!1;const e=n.length,l=n.filter(o=>o.checked).length;return l!==0&&e!==l},C=n=>{const e=n||s.value;if(!Array.isArray(e))return console.warn("permissions is not an array:",e),[];const l=[];e.forEach(v=>{l.push(v),v.children&&l.push(...C(v.children))});const o=l.length,h=l.filter(v=>v.checked).length;return R.value=o===h,U.value=h!==0&&o!==h,l},L=n=>{(n||s.value).forEach(l=>{if(l.children&&l.children.length){L(l.children),l.children.length;const o=l.children.filter(h=>h.checked).length;l.checked=!!o}})},M=f(),H=()=>{M.value.validate(n=>{if(n){let e={...m,menus:s.value};const l=()=>{T.success("保存成功!"),D.push({name:"packageList"})};b.value==="0"?ne(e).then(()=>l()):oe(b.value,e).then(()=>l())}else return T.error("表单填写有误,请检查!"),!1})},J=()=>{re().then(n=>{b.value!=="0"?le(b.value).then(e=>{const l=N(e.menus);s.value=$(n,l),Array.isArray(s.value)?C():console.warn("Invalid permissions data:",s.value),m.role_name=e.role_name,m.role_describe=e.role_describe}):(s.value=n,Array.isArray(s.value)?C():console.warn("Invalid permissions data:",s.value))})},N=n=>{const e=[];return n.forEach(l=>{l.checked&&e.push(l.identifier),l.children&&l.children.length&&e.push(...N(l.children))}),e},$=(n,e)=>{const l=[];return n.forEach(o=>{e.includes(o.identifier)||o.hidden?o.checked=!0:o.checked=!1,o.children&&(o.children=$(o.children,e)),l.push(o)}),l};return X(()=>{J()}),(n,e)=>{const l=g("el-input"),o=g("el-form-item"),h=g("el-checkbox"),v=g("el-col"),E=g("el-popover"),K=g("el-row"),O=g("el-button"),Q=g("el-form");return u(),i("div",ae,[r(Q,{model:m,rules:G,ref_key:"permissionFormRef",ref:M,"label-width":"200px",class:"demo-ruleForm"},{default:a(()=>[r(o,{label:"角色名称",prop:"role_name"},{default:a(()=>[r(l,{modelValue:m.role_name,"onUpdate:modelValue":e[0]||(e[0]=d=>m.role_name=d)},null,8,["modelValue"])]),_:1}),r(o,{label:"角色描述",prop:"role_describe"},{default:a(()=>[r(l,{modelValue:m.role_describe,"onUpdate:modelValue":e[1]||(e[1]=d=>m.role_describe=d)},null,8,["modelValue"])]),_:1}),r(o,{label:"角色权限",prop:"permission"},{default:a(()=>[r(h,{indeterminate:U.value,modelValue:R.value,"onUpdate:modelValue":e[2]||(e[2]=d=>R.value=d),onChange:j},{default:a(()=>[_("全部选择")]),_:1},8,["indeterminate","modelValue"]),(u(!0),i(w,null,A(s.value,d=>(u(),i("div",{key:d.identifier,class:"level_1"},[r(K,{gutter:20},{default:a(()=>[r(v,{span:4},{default:a(()=>[r(h,{modelValue:d.checked,"onUpdate:modelValue":t=>d.checked=t,label:d.title,indeterminate:V(d.children),onChange:t=>y(d,"")},null,8,["modelValue","onUpdate:modelValue","label","indeterminate","onChange"])]),_:2},1024),r(v,{span:20},{default:a(()=>[(u(!0),i(w,null,A(d.children,t=>(u(),i("div",{key:t.identifier,class:"checkbox-dropdown"},[r(E,{placement:"bottom",trigger:"hover","open-delay":300,disabled:!k(t),"append-to-body":!1},{reference:a(()=>[r(h,{modelValue:t.checked,"onUpdate:modelValue":c=>t.checked=c,indeterminate:V(t.children),onClick:e[3]||(e[3]=F(()=>{},["stop"])),onChange:c=>y(t,d)},{default:a(()=>[_(I(t.title)+" ",1),k(t)?(u(),i("i",se)):x("",!0)]),_:2},1032,["modelValue","onUpdate:modelValue","indeterminate","onChange"])]),default:a(()=>[k(t)?(u(),i("div",de,[(u(!0),i(w,null,A(t.children,c=>(u(),i("div",{class:"role-dropdown",key:c.identifier},[r(E,{placement:"right",trigger:"hover","open-delay":200,disabled:!k(c),"append-to-body":!1},{reference:a(()=>[z("div",te,[r(h,{modelValue:c.checked,"onUpdate:modelValue":p=>c.checked=p,indeterminate:V(c.children),onClick:e[4]||(e[4]=F(()=>{},["stop"])),onChange:p=>y(c,t)},{default:a(()=>[_(I(c.title)+" ",1),k(c)?(u(),i("i",ce)):x("",!0)]),_:2},1032,["modelValue","onUpdate:modelValue","indeterminate","onChange"])])]),default:a(()=>[k(c)?(u(),i("div",ie,[(u(!0),i(w,null,A(c.children,p=>(u(),i("div",{class:"role-dropdown",key:p.identifier},[r(E,{placement:"right",trigger:"hover","open-delay":200,disabled:!k(p),"append-to-body":!1},{reference:a(()=>[z("div",ue,[r(h,{modelValue:p.checked,"onUpdate:modelValue":B=>p.checked=B,indeterminate:V(p.children),onClick:e[5]||(e[5]=F(()=>{},["stop"])),onChange:B=>y(p,c)},{default:a(()=>[_(I(p.title),1)]),_:2},1032,["modelValue","onUpdate:modelValue","indeterminate","onChange"])])]),_:2},1032,["disabled"])]))),128))])):x("",!0)]),_:2},1032,["disabled"])]))),128))])):x("",!0)]),_:2},1032,["disabled"])]))),128))]),_:2},1024)]),_:2},1024)]))),128))]),_:1}),r(o,{label:""},{default:a(()=>[r(O,{type:"primary",size:"small",style:{"margin-top":"15px"},onClick:H},{default:a(()=>[_("保存设置")]),_:1})]),_:1})]),_:1},8,["model","rules"])])}}}),ge=ee(he,[["__scopeId","data-v-ae6e0f6b"]]);export{ge as default};