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

2 lines
5.2 KiB
JavaScript
Raw Normal View History

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.