packageAdd-BNez4B3I.js 5.7 KB

1
  1. import{d as Q,r as f,a as S,o as W,f as i,i as r,w as a,n as X,l as g,m as Y,q as u,s as _,F as w,t as A,E as T,Z as F,v as I,y as x,h as z,_ as ee}from"./index-JAEh4X-P.js";import{b as le,c as ne,e as oe}from"./auth-DdGlAz8q.js";import{g as re}from"./menus-8pwyf4HB.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=Q({__name:"packageAdd",setup(pe){const q=X(),D=Y();f(!0),f([]),f([]);const k=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 y=f(q.query.id);console.log("role_id:",q.query);const m=n=>Array.isArray(n.children)&&n.children.length!==0,Z=n=>{U.value=!1,s.value=P(s.value,n)},b=(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(),j=()=>{M.value.validate(n=>{if(n){let e={...k,menus:s.value};const l=()=>{T.success("保存成功!"),D.push({name:"packageList"})};y.value==="0"?ne(e).then(()=>l()):oe(y.value,e).then(()=>l())}else return T.error("表单填写有误,请检查!"),!1})},H=()=>{re().then(n=>{y.value!=="0"?le(y.value).then(e=>{const l=N(e.menus);s.value=$(n,l),Array.isArray(s.value)?C():console.warn("Invalid permissions data:",s.value)}):(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 W(()=>{H()}),(n,e)=>{const l=g("el-input"),o=g("el-form-item"),h=g("el-checkbox"),v=g("el-col"),E=g("el-popover"),J=g("el-row"),K=g("el-button"),O=g("el-form");return u(),i("div",ae,[r(O,{model:k,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:k.role_name,"onUpdate:modelValue":e[0]||(e[0]=d=>k.role_name=d)},null,8,["modelValue"])]),_:1}),r(o,{label:"角色描述",prop:"role_describe"},{default:a(()=>[r(l,{modelValue:k.role_describe,"onUpdate:modelValue":e[1]||(e[1]=d=>k.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:Z},{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(J,{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=>b(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:!m(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=>b(t,d)},{default:a(()=>[_(I(t.title)+" ",1),m(t)?(u(),i("i",se)):x("",!0)]),_:2},1032,["modelValue","onUpdate:modelValue","indeterminate","onChange"])]),default:a(()=>[m(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:!m(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=>b(c,t)},{default:a(()=>[_(I(c.title)+" ",1),m(c)?(u(),i("i",ce)):x("",!0)]),_:2},1032,["modelValue","onUpdate:modelValue","indeterminate","onChange"])])]),default:a(()=>[m(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:!m(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=>b(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(K,{type:"primary",size:"small",style:{"margin-top":"15px"},onClick:j},{default:a(()=>[_("保存设置")]),_:1})]),_:1})]),_:1},8,["model","rules"])])}}}),me=ee(he,[["__scopeId","data-v-e018d0ed"]]);export{me as default};