roleManageAdd-CyAwGCk_.js 6.4 KB

1
  1. import{d as oe,u as re,r as m,a as z,o as ae,W as se,f as u,i as a,w as s,s as te,a9 as de,p as g,q as ce,x as h,m as y,t as R,F as U,y as x,aa as I,l as E,h as G,ab as ie,ac as ue,E as W,_ as he}from"./index-GCZD4BFP.js";import{g as pe}from"./menus--MQrcQOR.js";import{c as fe}from"./setting-CjsMgkQh.js";const me={class:"permission-container"},ge={key:0,class:"el-icon-arrow-down"},_e={key:0,class:"role-dropdown__list"},ve={class:"role-dropdown__label"},ke={key:0,class:"el-icon-arrow-right"},be={key:0,class:"role-dropdown__list"},ye={class:"role-dropdown__label"},Ve=oe({__name:"roleManageAdd",setup(Ce){const{t:k}=re(),V=te(),j=ce();m(!0);const H=m([]),J=m([]),_=z({data_scope:"ALL",role_name:"",dept_ids:"",role_describe:""}),K=z({role_name:[{required:!0,message:k("place")+k("role_names")+"!",trigger:"blur"},{min:1,max:10,message:k("role_name_error"),trigger:"blur"}]}),t=m([]),P=m(!1),L=m(!1),O=m(!1),b=m(V.query.id);console.log("role_id:",V.query);let Q=function l(e,n){const o=[];for(let r=0;r<e.length;r++)if(e[r].parent_id===n){const p={id:e[r].id,parent_id:e[r].parent_id,name:e[r].name,create_time:e[r].create_time,remark:e[r].remark,sn:e[r].sn,sort:e[r].sort,type:e[r].type,region_ids:e[r].region_ids,children:l(e,e[r].id)};o.push(p)}return o};const M=()=>{fe({page_no:1,page_size:1e3}).then(l=>{H.value=Q(l,"0");const e=[],n=o=>{o.forEach(r=>{e.push(r),r.children&&r.children.length>0&&n(r.children)})};n(l),J.value=e,_.dept_ids.length===e.length&&(O.value=!0)})},v=l=>Array.isArray(l.children)&&l.children.length!==0,X=l=>{L.value=!1,t.value=$(t.value,l)},C=(l,e)=>{l.children&&l.children.length&&(l.children=$(l.children,l.checked)),A(t.value),q(t.value)},$=(l,e)=>{const n=[...l];return n.map(o=>{o.checked=e,o.children&&o.children.length&&(o.children=$(o.children,e))}),n},w=l=>{if(!Array.isArray(l))return!1;const e=l.length,n=l.filter(o=>o.checked).length;return n!==0&&e!==n},A=l=>{const e=l||t.value;if(!Array.isArray(e))return console.warn("permissions is not an array:",e),[];const n=[];e.forEach(p=>{n.push(p),p.children&&n.push(...A(p.children))});const o=n.length,r=n.filter(p=>p.checked).length;return P.value=o===r,L.value=r!==0&&o!==r,n},q=l=>{(l||t.value).forEach(n=>{if(n.children&&n.children.length){q(n.children),n.children.length;const o=n.children.filter(r=>r.checked).length;n.checked=!!o}})},F=m(),Y=()=>{F.value.validate(l=>{if(l){let e={..._,menus:t.value};const n=()=>{W.success(k("sub_success")),j.push({name:"roleManage"})};b.value==="0"?ie(e).then(()=>n()):ue(b.value,e).then(()=>n())}else return W.error(k("form_erroe")),!1})},T=()=>{pe().then(l=>{b.value!=="0"?de(b.value).then(e=>{const n=N(e.menus);t.value=B(l,n),Array.isArray(t.value)?A():console.warn("Invalid permissions data:",t.value),M()}):(t.value=l,Array.isArray(t.value)?A():console.warn("Invalid permissions data:",t.value),M())})},N=l=>{const e=[];return l.forEach(n=>{n.checked&&e.push(n.identifier),n.children&&n.children.length&&e.push(...N(n.children))}),e},B=(l,e)=>{const n=[];return l.forEach(o=>{e.includes(o.identifier)||o.hidden?o.checked=!0:o.checked=!1,o.children&&(o.children=B(o.children,e)),n.push(o)}),n};return ae(()=>{T()}),se(()=>V.query.id,()=>{b.value=V.query.id,T()}),(l,e)=>{const n=g("el-input"),o=g("el-form-item"),r=g("el-checkbox"),p=g("el-col"),D=g("el-popover"),Z=g("el-row"),ee=g("el-button"),ne=g("el-form");return h(),u("div",me,[a(ne,{model:_,rules:K,ref_key:"permissionFormRef",ref:F,"label-width":"200px",class:"demo-ruleForm"},{default:s(()=>[a(o,{label:l.$t("role_names"),prop:"role_name"},{default:s(()=>[a(n,{modelValue:_.role_name,"onUpdate:modelValue":e[0]||(e[0]=d=>_.role_name=d)},null,8,["modelValue"])]),_:1},8,["label"]),a(o,{label:l.$t("role_describe"),prop:"role_describe"},{default:s(()=>[a(n,{modelValue:_.role_describe,"onUpdate:modelValue":e[1]||(e[1]=d=>_.role_describe=d)},null,8,["modelValue"])]),_:1},8,["label"]),a(o,{label:l.$t("role_permission"),prop:"permission"},{default:s(()=>[a(r,{indeterminate:L.value,modelValue:P.value,"onUpdate:modelValue":e[2]||(e[2]=d=>P.value=d),onChange:X},{default:s(()=>[y(R(l.$t("sel_all")),1)]),_:1},8,["indeterminate","modelValue"]),(h(!0),u(U,null,x(t.value,d=>(h(),u("div",{key:d.identifier,class:"level_1"},[a(Z,{gutter:20},{default:s(()=>[a(p,{span:4},{default:s(()=>[a(r,{modelValue:d.checked,"onUpdate:modelValue":c=>d.checked=c,label:d.title,indeterminate:w(d.children),onChange:c=>C(d,"")},null,8,["modelValue","onUpdate:modelValue","label","indeterminate","onChange"])]),_:2},1024),a(p,{span:20},{default:s(()=>[(h(!0),u(U,null,x(d.children,c=>(h(),u("div",{key:c.identifier,class:"checkbox-dropdown"},[a(D,{placement:"bottom",trigger:"hover","open-delay":300,disabled:!v(c),"append-to-body":!1},{reference:s(()=>[a(r,{modelValue:c.checked,"onUpdate:modelValue":i=>c.checked=i,indeterminate:w(c.children),onClick:e[3]||(e[3]=I(()=>{},["stop"])),onChange:i=>C(c,d)},{default:s(()=>[y(R(c.title)+" ",1),v(c)?(h(),u("i",ge)):E("",!0)]),_:2},1032,["modelValue","onUpdate:modelValue","indeterminate","onChange"])]),default:s(()=>[v(c)?(h(),u("div",_e,[(h(!0),u(U,null,x(c.children,i=>(h(),u("div",{class:"role-dropdown",key:i.identifier},[a(D,{placement:"right",trigger:"hover","open-delay":200,disabled:!v(i),"append-to-body":!1},{reference:s(()=>[G("div",ve,[a(r,{modelValue:i.checked,"onUpdate:modelValue":f=>i.checked=f,indeterminate:w(i.children),onClick:e[4]||(e[4]=I(()=>{},["stop"])),onChange:f=>C(i,c)},{default:s(()=>[y(R(i.title)+" ",1),v(i)?(h(),u("i",ke)):E("",!0)]),_:2},1032,["modelValue","onUpdate:modelValue","indeterminate","onChange"])])]),default:s(()=>[v(i)?(h(),u("div",be,[(h(!0),u(U,null,x(i.children,(f,le)=>(h(),u("div",{class:"role-dropdown",key:le},[a(D,{placement:"right",trigger:"hover","open-delay":200,disabled:!v(f),"append-to-body":!1},{reference:s(()=>[G("div",ye,[a(r,{modelValue:f.checked,"onUpdate:modelValue":S=>f.checked=S,indeterminate:w(f.children),onClick:e[5]||(e[5]=I(()=>{},["stop"])),onChange:S=>C(f,i)},{default:s(()=>[y(R(f.title),1)]),_:2},1032,["modelValue","onUpdate:modelValue","indeterminate","onChange"])])]),_:2},1032,["disabled"])]))),128))])):E("",!0)]),_:2},1032,["disabled"])]))),128))])):E("",!0)]),_:2},1032,["disabled"])]))),128))]),_:2},1024)]),_:2},1024)]))),128))]),_:1},8,["label"]),a(o,{label:""},{default:s(()=>[a(ee,{type:"primary",size:"small",style:{"margin-top":"15px"},onClick:Y},{default:s(()=>[y("保存设置")]),_:1})]),_:1})]),_:1},8,["model","rules"])])}}}),Ue=he(Ve,[["__scopeId","data-v-e896b896"]]);export{Ue as default};