Files
Lucky_Wheel/apps/admin/dist/assets/MRoleMatrixView-BOsixILc.js
T

2 lines
5.2 KiB
JavaScript

import{t as M}from"./farsi-number-stB7JMN0.js";import{d as ee,u as ae,l as se,c as p,a as d,b as o,w as i,e as _,y as T,x as N,a2 as te,h as c,$ as q,n as b,r as m,o as r,F as P,z as D,G as oe,f as G,g as ne,t as k,O as le,B as U,_ as ie}from"./index-BIHaUtqF.js";import{S as re}from"./SaveOutlined-Bh-d9xsV.js";const ue={class:"m-roles-page"},de={class:"m-role-selector-bar"},ce={style:{flex:"1"}},me={key:0,class:"m-save-bar"},ve={key:1,class:"m-notice"},pe={class:"m-modules-list"},_e={class:"m-mod-title"},fe={class:"m-mod-count"},ye={class:"m-mod-perms"},ge=["onClick"],ke={class:"m-p-name"},he=ee({__name:"MRoleMatrixView",setup(xe){const z=ae(),w=c(!1),S=c(!1),y=c([]),E=c([]),n=c(null),u=c([]),h=c(!1),x=c(!1),A=c(!1),l=ne({code:"",name:"",description:"",permissionIds:[]}),R=q(()=>y.value.find(s=>s.id===n.value)||null),K={campaigns:"کمپین‌ها",prizes:"جوایز",users:"کاربران",chances:"شانس‌ها",spins:"اسپین‌ها",winners:"برندگان",sms:"پیامک",audit:"بازرسی",reports:"گزارش‌ها",admins:"مدیران",roles:"نقش‌ها",workspaces:"فضاهای کاری"},j=q(()=>{const s={};return E.value.forEach(e=>{const a=e.module||"other";s[a]||(s[a]=[]),s[a].push(e)}),s});async function I(){var s,e;w.value=!0;try{const[a,v]=await Promise.all([b.get("/admin/roles"),b.get("/admin/permissions")]);y.value=Array.isArray(a.data)?a.data:((s=a.data)==null?void 0:s.data)||[],E.value=Array.isArray(v.data)?v.data:((e=v.data)==null?void 0:e.data)||[],!n.value&&y.value.length>0?C(y.value[0].id):n.value&&C(n.value)}finally{w.value=!1}}function C(s){n.value=s;const e=y.value.find(a=>a.id===s);e?u.value=e.permissions?e.permissions.map(a=>{var v;return a.permissionId||((v=a.permission)==null?void 0:v.id)}):[]:u.value=[],h.value=!1}function H(s){var a;if(((a=R.value)==null?void 0:a.code)==="SUPER_ADMIN")return;const e=u.value.indexOf(s);e>-1?u.value.splice(e,1):u.value.push(s),h.value=!0}async function J(){if(n.value){S.value=!0;try{await b.patch(`/admin/roles/${n.value}`,{permissionIds:u.value}),U.success("مجوزهای نقش با موفقیت به‌روزرسانی شد."),h.value=!1,I()}finally{S.value=!1}}}async function Q(){var s,e;if(!l.name.trim()||!l.code.trim()){U.error("نام و کد انگلیسی نقش الزامی است.");return}A.value=!0;try{const a=await b.post("/admin/roles",{name:l.name.trim(),code:l.code.trim().toUpperCase(),description:((s=l.description)==null?void 0:s.trim())||void 0,permissionIds:l.permissionIds});U.success("نقش ایجاد شد."),x.value=!1,await I(),(e=a.data)!=null&&e.id&&C(a.data.id)}finally{A.value=!1}}return se(()=>{I()}),(s,e)=>{var L,$;const a=m("a-select-option"),v=m("a-select"),O=m("a-button"),W=m("a-checkbox"),X=m("a-spin"),V=m("a-input"),B=m("a-form-item"),Y=m("a-form"),Z=m("a-modal");return r(),p("div",ue,[d("div",de,[d("div",ce,[o(v,{value:n.value,"onUpdate:value":e[0]||(e[0]=t=>n.value=t),style:{width:"100%"},size:"large",onChange:e[1]||(e[1]=t=>C(n.value))},{default:i(()=>[(r(!0),p(P,null,D(y.value,t=>(r(),T(a,{key:t.id,value:t.id},{default:i(()=>{var g;return[G(k(t.name)+" ("+k(_(M)(((g=t._count)==null?void 0:g.admins)??0))+" نفر) ",1)]}),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_(z).can("roles:manage")?(r(),T(O,{key:0,type:"primary",size:"large",onClick:e[2]||(e[2]=t=>x.value=!0)},{icon:i(()=>[o(_(oe))]),_:1})):N("",!0)]),h.value&&!((L=R.value)!=null&&L.isSystem)?(r(),p("div",me,[o(O,{type:"primary",block:"",size:"large",loading:S.value,onClick:J},{icon:i(()=>[o(_(re))]),default:i(()=>[e[6]||(e[6]=G(" ذخیره تغییرات مجوزها ",-1))]),_:1},8,["loading"])])):N("",!0),(($=R.value)==null?void 0:$.code)==="SUPER_ADMIN"?(r(),p("div",ve,[o(_(te),{style:{color:"#7c3aed","font-size":"18px"}}),e[7]||(e[7]=d("span",null,"دسترسی‌های مدیر ارشد دائمی و کامل است.",-1))])):N("",!0),o(X,{spinning:w.value},{default:i(()=>[d("div",pe,[(r(!0),p(P,null,D(j.value,(t,g)=>(r(),p("div",{key:g,class:"m-mod-card"},[d("div",_e,[d("strong",null,k(K[g]||g),1),d("span",fe,k(_(M)(t.filter(f=>u.value.includes(f.id)).length))+"/"+k(_(M)(t.length)),1)]),d("div",ye,[(r(!0),p(P,null,D(t,f=>{var F;return r(),p("div",{key:f.id,class:le(["m-perm-row",{"is-selected":u.value.includes(f.id)}]),onClick:Re=>H(f.id)},[o(W,{checked:u.value.includes(f.id),disabled:((F=R.value)==null?void 0:F.code)==="SUPER_ADMIN"||!_(z).can("roles:manage")},null,8,["checked","disabled"]),d("span",ke,k(f.name),1)],10,ge)}),128))])]))),128))])]),_:1},8,["spinning"]),o(Z,{open:x.value,"onUpdate:open":e[5]||(e[5]=t=>x.value=t),title:"تعریف نقش جدید",okText:"ایجاد",cancelText:"انصراف",confirmLoading:A.value,onOk:Q},{default:i(()=>[o(Y,{layout:"vertical",style:{"margin-top":"12px"}},{default:i(()=>[o(B,{label:"نام نقش",required:""},{default:i(()=>[o(V,{value:l.name,"onUpdate:value":e[3]||(e[3]=t=>l.name=t),placeholder:"مثال: سرپرست بازاریابی"},null,8,["value"])]),_:1}),o(B,{label:"کد انگلیسی",required:""},{default:i(()=>[o(V,{value:l.code,"onUpdate:value":e[4]||(e[4]=t=>l.code=t),placeholder:"MARKETING_LEAD",dir:"ltr"},null,8,["value"])]),_:1})]),_:1})]),_:1},8,["open","confirmLoading"])])}}}),Se=ie(he,[["__scopeId","data-v-0735d43a"]]);export{Se as default};