Files
machartaa_admin_dist/dist/assets/index-12dcbf91.js
T

2 lines
8.2 KiB
JavaScript

import{M as w,d as S,g as h,r as z,K as N,o as f,i as L,w as o,a as b,b as n,j as c,k as R,e as P,c as y,n as H,F as D,C as g,t as K,z as G,v as J,_ as Q,E as W}from"./index-65856697.js";import{_ as X,u as Y}from"./useBaseTable-0a9ca5c6.js";import{_ as Z}from"./button.vue_vue_type_style_index_0_lang-c248f06f.js";import{I as U}from"./Icon-08f00b08.js";import{_ as ee}from"./Modal.vue_vue_type_style_index_0_lang-f4f00f7d.js";import{_ as se}from"./BasicInput.vue_vue_type_style_index_0_lang-d31a14b4.js";import{n as te}from"./phone-6ff17ec0.js";import{F as ae,_ as C}from"./index-93c72e99.js";import{C as ne}from"./index-c60120a9.js";import{_ as ie,a as oe,M as re}from"./index-2debd256.js";import{T as O}from"./shallowequal-e2999554.js";import"./fa_IR-9a5561fa.js";import"./toArray-c0948cf7.js";import"./vnode-9598f8b5.js";import"./FormItemContext-75d7b3a2.js";import"./pickAttrs-5f523685.js";import"./useState-74c053ae.js";import"./_plugin-vue_export-helper-d18c65cd.js";import"./lodash-1b6d5368.js";import"./BasicModal.vue_vue_type_style_index_0_lang-b202ccf4.js";import"./index-3eb1fc79.js";import"./Col-9bf281e5.js";import"./index-5b62301e.js";import"./isPlainObject-77557052.js";import"./usePrice-7afab779.js";const M=async()=>(await w.get("/admin/users/permissions")).data,F=async()=>(await w.get("/admin/users")).data,j=async p=>(await w.post("/admin/users",p)).data,V=async(p,_)=>(await w.put(`/admin/users/${p}`,_)).data,q=async p=>await w.delete(`/admin/users/${p}`),le=Object.freeze(Object.defineProperty({__proto__:null,createAdminUser:j,deleteAdminUser:q,getAdminPermissionOptions:M,getAdminUsers:F,updateAdminUser:V},Symbol.toStringTag,{value:"Module"})),de={class:"max-h-[560px] overflow-y-auto p-3"},ce={class:"grid grid-cols-1 md:grid-cols-2 md:gap-4"},pe={class:"grid grid-cols-1 md:grid-cols-2 gap-3"},ue=S({__name:"AddEditForm",props:{visible:{type:Boolean,default:!1},isEdit:{type:Boolean,default:!1},data:{default:null}},emits:["update:visible","update:isEdit","success"],setup(p,{emit:_}){const s=p,v=h([]),e=z({name:"",phone:"",password:"",active:!0,permissions:[]}),A=()=>{e.name="",e.phone="",e.password="",e.active=!0,e.permissions=[]},$=async()=>{v.value.length||(v.value=await M())},k=()=>{var r;s.data&&(e.name=s.data.name||"",e.phone=s.data.phone||s.data.username||((r=s.data.email)==null?void 0:r.split("@")[0])||"",e.password="",e.active=s.data.active!==!1,e.permissions=[...s.data.permissions||[]])};N(()=>s.visible,async r=>{r&&(await $(),s.isEdit&&s.data?k():A())});const x=(r,i)=>{if(i){e.permissions.includes(r)||e.permissions.push(r);return}e.permissions=e.permissions.filter(u=>u!==r)},B=()=>{_("update:visible",!1),_("update:isEdit",!1)},T=async()=>{var r,i,u;if(!e.name.trim()||!e.phone.trim()){g.error("نام و شماره تلفن الزامی است");return}if(!s.isEdit&&!e.password.trim()){g.error("کلمه عبور الزامی است");return}try{s.isEdit&&((r=s.data)!=null&&r.id)?(await V(s.data.id,{name:e.name.trim(),password:e.password.trim()||void 0,permissions:e.permissions,active:e.active}),g.success("مدیر با موفقیت ویرایش شد")):(await j({name:e.name.trim(),phone:te(e.phone),password:e.password.trim(),permissions:e.permissions}),g.success("مدیر با موفقیت ایجاد شد")),_("success"),B()}catch(a){g.error(((u=(i=a==null?void 0:a.response)==null?void 0:i.data)==null?void 0:u.error)||"خطا در ذخیره اطلاعات")}};return(r,i)=>{const u=se,a=ee;return f(),L(a,{visible:s.visible,width:"52rem",title:`${s.isEdit?"ویرایش":"افزودن"} مدیر`,okText:"ثبت",onCancel:B,onOk:T},{default:o(()=>[b("div",de,[n(c(ae),{model:e},{default:o(()=>[b("div",ce,[n(c(C),{label:"نام",rules:[{required:!0,message:"نام الزامی است"}]},{default:o(()=>[n(u,{"place-holder":"نام",value:e.name,"onUpdate:value":i[0]||(i[0]=t=>e.name=t)},null,8,["value"])]),_:1}),n(c(C),{label:"شماره تلفن",rules:[{required:!0,message:"شماره تلفن الزامی است"}]},{default:o(()=>[n(u,{"place-holder":"مثال: 09123456789",value:e.phone,"onUpdate:value":i[1]||(i[1]=t=>e.phone=t),disabled:s.isEdit},null,8,["value","disabled"])]),_:1}),n(c(C),{label:"کلمه عبور",rules:s.isEdit?[]:[{required:!0,message:"کلمه عبور الزامی است"}]},{default:o(()=>[n(u,{"is-password":"","place-holder":s.isEdit?"در صورت نیاز به تغییر وارد کنید":"کلمه عبور",value:e.password,"onUpdate:value":i[2]||(i[2]=t=>e.password=t)},null,8,["place-holder","value"])]),_:1},8,["rules"]),s.isEdit?(f(),L(c(C),{key:0,label:"وضعیت"},{default:o(()=>[n(c(ie),{checked:e.active,"onUpdate:checked":i[3]||(i[3]=t=>e.active=t),"checked-children":"فعال","un-checked-children":"غیرفعال"},null,8,["checked"])]),_:1})):R("",!0)]),n(c(oe),null,{default:o(()=>[P("دسترسی به صفحات")]),_:1}),b("div",pe,[(f(!0),y(D,null,H(v.value,t=>(f(),L(c(ne),{key:t.key,checked:e.permissions.includes(t.key),onChange:d=>x(t.key,d.target.checked)},{default:o(()=>[P(K(t.label),1)]),_:2},1032,["checked","onChange"]))),128))])]),_:1},8,["model"])])]),_:1},8,["visible","title"])}}}),me=[{title:"ردیف",dataIndex:"index",key:"index",width:70,align:"center"},{title:"نام",dataIndex:"name",key:"name",width:160},{title:"شماره تلفن",dataIndex:"phone",key:"phone",width:140},{title:"نوع",dataIndex:"roleLabel",key:"roleLabel",width:120},{title:"وضعیت",dataIndex:"statusLabel",key:"statusLabel",width:100},{title:"دسترسی‌ها",dataIndex:"permissionsLabel",key:"permissionsLabel"},{title:"عملیات",dataIndex:"action",key:"action",width:120,align:"center",slot:"action",filterable:!1}],_e={class:"h-full"},fe={key:0,class:"text-center p-8"},ve=b("p",{class:"text-gray-500 text-lg"},"فقط سوپر ادمین به این بخش دسترسی دارد",-1),he=[ve],ge=b("span",null,"افزودن مدیر",-1),be={key:0,class:"gap-2 flex justify-center"},ye=b("span",null,"ویرایش",-1),we=b("span",null,"حذف",-1),ke={key:1,class:"text-gray-400 text-sm"},Je=S({__name:"index",setup(p){const _=G(),s=h(!1),v=h(!1),e=h(null),A=h(null),[$,k]=Y(),x=h({}),T=h({columns:me,api:async a=>{const d=(await F()).map((l,I)=>{var m;return{...l,phone:l.phone||l.username||((m=l.email)==null?void 0:m.split("@")[0])||"",index:I+1,roleLabel:l.is_super_admin?"سوپر ادمین":"مدیر",statusLabel:l.active===!1?"غیرفعال":"فعال",permissionsLabel:l.is_super_admin?"دسترسی کامل":(l.permissions||[]).map(E=>x.value[E]||E).join("، ")||"بدون دسترسی"}});return{rows:d,total:d.length,query:{...a,total:d.length,filters:a.filters??[]}}},pagination:!1}),r=()=>{e.value=null,v.value=!1,s.value=!0},i=a=>{e.value=a,v.value=!0,s.value=!0},u=a=>{re.confirm({title:"حذف مدیر",content:`آیا مطمئن هستید که می‌خواهید "${a.name||a.phone}" را حذف کنید؟`,okText:"بله، حذف کن",cancelText:"انصراف",okType:"danger",centered:!0,onOk:async()=>{var t,d;try{await q(a.id),g.success("مدیر با موفقیت حذف شد"),await k()}catch(l){g.error(((d=(t=l==null?void 0:l.response)==null?void 0:t.data)==null?void 0:d.error)||"خطا در حذف مدیر")}}})};return J(async()=>{if(_.isSuperAdmin)try{const{getAdminPermissionOptions:a}=await Q(()=>Promise.resolve().then(()=>le),void 0),t=await a();x.value=Object.fromEntries(t.map(d=>[d.key,d.label]))}catch(a){console.error(a)}}),(a,t)=>{const d=U,l=Z,I=X;return f(),y("div",_e,[c(_).isSuperAdmin?(f(),y(D,{key:1},[n(I,W(T.value,{ref_key:"table",ref:A,onRegister:c($)}),{extraHeader:o(()=>[n(l,{type:"primary",onClick:r},{default:o(()=>[ge,n(d,{icon:"vuesax-linear:user-add",size:"17"})]),_:1})]),action:o(({record:m})=>[m.is_super_admin?(f(),y("span",ke,"سوپر ادمین")):(f(),y("div",be,[n(c(O),{class:"cursor-pointer"},{title:o(()=>[ye]),default:o(()=>[n(U,{icon:"vuesax-linear:edit",color:"#1D4ED8",onClick:E=>i(m)},null,8,["onClick"])]),_:2},1024),n(c(O),{class:"cursor-pointer"},{title:o(()=>[we]),default:o(()=>[n(U,{icon:"vuesax-linear:trash",color:"#DC2626",onClick:E=>u(m)},null,8,["onClick"])]),_:2},1024)]))]),_:1},16,["onRegister"]),n(ue,{visible:s.value,"onUpdate:visible":t[0]||(t[0]=m=>s.value=m),"is-edit":v.value,"onUpdate:isEdit":t[1]||(t[1]=m=>v.value=m),data:e.value,onSuccess:c(k)},null,8,["visible","is-edit","data","onSuccess"])],64)):(f(),y("div",fe,he))])}}});export{Je as default};