2 lines
9.3 KiB
JavaScript
2 lines
9.3 KiB
JavaScript
import{d as de,u as re,l as ce,c as g,a as s,e as r,b as o,w as n,x as S,h as x,n as P,r as p,o as c,f as R,G as ue,F as V,z as B,a2 as Y,t as u,y as L,g as me,$ as j,O as J,H as pe,T as ve,W as _e,Y as fe,B as C,K as ge,_ as ye}from"./index-BOpodV_K.js";import{t as F}from"./farsi-number-stB7JMN0.js";import{S as he}from"./SaveOutlined-DTv_knTi.js";const ke={class:"roles-matrix-page"},xe={class:"page-header-title"},be={key:0,class:"page-actions"},Se={class:"roles-list"},Re=["onClick"],Ce={class:"role-item-header"},we={class:"role-title"},Ie={class:"role-code"},ze={class:"role-desc"},Ae={class:"role-footer"},Me={class:"user-count"},Pe={class:"matrix-header"},De={style:{margin:"0","font-size":"16px"}},Ne={style:{color:"#2563eb"}},Oe={style:{"font-size":"12px",color:"#64748b"}},Ue={key:0,class:"super-admin-notice"},Ee={class:"modules-grid"},Te={class:"module-header"},$e={class:"module-title"},Ve={class:"count-label"},Be={class:"perms-list"},Le=["onClick"],Fe={class:"perm-name"},qe={class:"perm-code"},Ge={key:0,class:"perm-desc"},He=de({__name:"RoleMatrixView",setup(We){const w=re(),U=x(!1),E=x(!1),b=x([]),q=x([]),y=x(null),D=x(!1),T=x(!1),i=me({code:"",name:"",description:"",permissionIds:[]}),d=x([]),I=x(!1),v=j(()=>b.value.find(l=>l.id===y.value)||null),K={campaigns:"مدیریت کمپینها",prizes:"مدیریت جوایز",users:"کاربران سامانه",chances:"تنظیم دستی شانسها",spins:"تاریخچه چرخشها",winners:"مدیریت برندگان و کدهای هدیه",sms:"لاگ و ارسال پیامک",audit:"لاگ بازرسی (Audit)",reports:"گزارشها و KPI",admins:"مدیریت مدیران و همکاران",roles:"مدیریت نقشها و دسترسیها",workspaces:"فضاهای کاری سازمانی"},G=j(()=>{const l={};return q.value.forEach(e=>{const a=e.module||"other";l[a]||(l[a]=[]),l[a].push(e)}),l});async function N(){var l,e;U.value=!0;try{const[a,m]=await Promise.all([P.get("/admin/roles"),P.get("/admin/permissions")]);b.value=Array.isArray(a.data)?a.data:((l=a.data)==null?void 0:l.data)||[],q.value=Array.isArray(m.data)?m.data:((e=m.data)==null?void 0:e.data)||[],!y.value&&b.value.length>0?O(b.value[0].id):y.value&&O(y.value)}finally{U.value=!1}}function O(l){y.value=l;const e=b.value.find(a=>a.id===l);e?d.value=e.permissions?e.permissions.map(a=>{var m;return a.permissionId||((m=a.permission)==null?void 0:m.id)}):[]:d.value=[],I.value=!1}function Q(l){var a,m;if((a=v.value)!=null&&a.isSystem&&((m=v.value)==null?void 0:m.code)==="SUPER_ADMIN"){C.warning("مجوزهای نقش مدیر ارشد به صورت ذاتی کامل و غیرقابل تغییر است.");return}const e=d.value.indexOf(l);e>-1?d.value.splice(e,1):d.value.push(l),I.value=!0}function X(l){var z,A;if((z=v.value)!=null&&z.isSystem&&((A=v.value)==null?void 0:A.code)==="SUPER_ADMIN")return;const a=(G.value[l]||[]).map(f=>f.id);a.every(f=>d.value.includes(f))?d.value=d.value.filter(f=>!a.includes(f)):a.forEach(f=>{d.value.includes(f)||d.value.push(f)}),I.value=!0}async function Z(){if(y.value){E.value=!0;try{await P.patch(`/admin/roles/${y.value}`,{permissionIds:d.value}),C.success("مجوزهای نقش با موفقیت بهروزرسانی شد."),I.value=!1,N()}finally{E.value=!1}}}function ee(){i.code="",i.name="",i.description="",i.permissionIds=[],D.value=!0}async function se(){var l,e;if(!i.name.trim()){C.error("نام فارسی نقش الزامی است.");return}if(!i.code.trim()){C.error("کد انگلیسی نقش الزامی است.");return}T.value=!0;try{const a=await P.post("/admin/roles",{name:i.name.trim(),code:i.code.trim().toUpperCase(),description:((l=i.description)==null?void 0:l.trim())||void 0,permissionIds:i.permissionIds});C.success("نقش جدید با موفقیت ایجاد شد."),D.value=!1,await N(),(e=a.data)!=null&&e.id&&O(a.data.id)}finally{T.value=!1}}function ae(l){ge.confirm({title:"حذف نقش سفارشی",content:`آیا از حذف نقش «${l.name}» اطمینان دارید؟`,okText:"حذف نقش",okType:"danger",
|