Files
machartaa_admin_dist/dist/assets/index-5bb7de40.js
T
2026-07-16 16:44:06 +03:30

2 lines
8.5 KiB
JavaScript

import{d as D,g as f,r as S,E as F,o as m,i as T,w as n,a as h,b as i,j as l,k as M,e as $,c as g,n as V,F as P,D as v,t as q,A as j,v as N,_ as R,H as z}from"./index-c7cfb6d0.js";import{_ as H,u as G}from"./useBaseTable-ee2a5641.js";import{_ as J}from"./button.vue_vue_type_style_index_0_lang-976922e0.js";import{I}from"./Icon-d2a333f8.js";import{g as K,u as Q,c as W,_ as X,b as Y,d as Z}from"./adminUser-dcefea2f.js";import{_ as ee}from"./BasicInput.vue_vue_type_style_index_0_lang-a3505492.js";import{n as se}from"./phone-6ff17ec0.js";import{F as te,_ as x}from"./index-0fdf0cd9.js";import{C as ae}from"./index-394ef579.js";import{_ as ie,M as oe}from"./index-accfa387.js";import{D as ne}from"./index-234839ae.js";import{T as U}from"./isSymbol-39130b1f.js";import"./updateLocale-4490df87.js";import"./_plugin-vue_export-helper-64344365.js";import"./vnode-d460d6f7.js";import"./useState-624b81a4.js";import"./index-a85f4e3c.js";import"./toArray-69a6a276.js";import"./FormItemContext-c66bbc76.js";import"./pickAttrs-a95b5777.js";import"./lodash-ccbe62b4.js";import"./BaseSwitch.vue_vue_type_script_setup_true_lang-f1dbbf12.js";import"./BasicModal.vue_vue_type_style_index_0_lang-78720926.js";import"./index-5ce472da.js";import"./index-ec42cf6b.js";import"./isPlainObject-9edbc0c5.js";import"./index-2173586f.js";import"./isNumeric-3f69e2aa.js";import"./index-c22a9b5b.js";import"./usePrice-bc935b83.js";import"./_flatRest-4bcfe4cb.js";import"./Col-85f675b3.js";import"./styleChecker-2280acc2.js";import"./index-f2204652.js";import"./LeftOutlined-91e9e8a5.js";import"./css-aae66f86.js";import"./DialogWrap-c08d6860.js";const re={class:"max-h-[560px] overflow-y-auto p-3"},le={class:"grid grid-cols-1 md:grid-cols-2 md:gap-4"},de={class:"grid grid-cols-1 md:grid-cols-2 gap-3"},ce=D({__name:"AddEditForm",props:{visible:{type:Boolean,default:!1},isEdit:{type:Boolean,default:!1},data:{default:null}},emits:["update:visible","update:isEdit","success"],setup(L,{emit:b}){const t=L,u=f([]),e=S({name:"",phone:"",password:"",active:!0,permissions:[]}),E=()=>{e.name="",e.phone="",e.password="",e.active=!0,e.permissions=[]},C=async()=>{u.value.length||(u.value=await K())},k=()=>{var r;t.data&&(e.name=t.data.name||"",e.phone=t.data.phone||t.data.username||((r=t.data.email)==null?void 0:r.split("@")[0])||"",e.password="",e.active=t.data.active!==!1,e.permissions=[...t.data.permissions||[]])};F(()=>t.visible,async r=>{r&&(await C(),t.isEdit&&t.data?k():E())});const y=(r,o)=>{if(o){e.permissions.includes(r)||e.permissions.push(r);return}e.permissions=e.permissions.filter(p=>p!==r)},A=()=>{b("update:visible",!1),b("update:isEdit",!1)},B=async()=>{var r,o,p;if(!e.name.trim()||!e.phone.trim()){v.error("نام و شماره تلفن الزامی است");return}if(!t.isEdit&&!e.password.trim()){v.error("کلمه عبور الزامی است");return}try{t.isEdit&&((r=t.data)!=null&&r.id)?(await Q(t.data.id,{name:e.name.trim(),password:e.password.trim()||void 0,permissions:e.permissions,active:e.active}),v.success("مدیر با موفقیت ویرایش شد")):(await W({name:e.name.trim(),phone:se(e.phone),password:e.password.trim(),permissions:e.permissions}),v.success("مدیر با موفقیت ایجاد شد")),b("success"),A()}catch(a){v.error(((p=(o=a==null?void 0:a.response)==null?void 0:o.data)==null?void 0:p.error)||"خطا در ذخیره اطلاعات")}};return(r,o)=>{const p=ee,a=X;return m(),T(a,{visible:t.visible,width:"52rem",title:`${t.isEdit?"ویرایش":"افزودن"} مدیر`,okText:"ثبت",onCancel:A,onOk:B},{default:n(()=>[h("div",re,[i(l(te),{model:e},{default:n(()=>[h("div",le,[i(l(x),{label:"نام",rules:[{required:!0,message:"نام الزامی است"}]},{default:n(()=>[i(p,{"place-holder":"نام",value:e.name,"onUpdate:value":o[0]||(o[0]=s=>e.name=s)},null,8,["value"])]),_:1}),i(l(x),{label:"شماره تلفن",rules:[{required:!0,message:"شماره تلفن الزامی است"}]},{default:n(()=>[i(p,{"place-holder":"مثال: 09123456789",value:e.phone,"onUpdate:value":o[1]||(o[1]=s=>e.phone=s),disabled:t.isEdit},null,8,["value","disabled"])]),_:1}),i(l(x),{label:"کلمه عبور",rules:t.isEdit?[]:[{required:!0,message:"کلمه عبور الزامی است"}]},{default:n(()=>[i(p,{"is-password":"","place-holder":t.isEdit?"در صورت نیاز به تغییر وارد کنید":"کلمه عبور",value:e.password,"onUpdate:value":o[2]||(o[2]=s=>e.password=s)},null,8,["place-holder","value"])]),_:1},8,["rules"]),t.isEdit?(m(),T(l(x),{key:0,label:"وضعیت"},{default:n(()=>[i(l(ie),{checked:e.active,"onUpdate:checked":o[3]||(o[3]=s=>e.active=s),"checked-children":"فعال","un-checked-children":"غیرفعال"},null,8,["checked"])]),_:1})):M("",!0)]),i(l(ne),null,{default:n(()=>[$("دسترسی به صفحات")]),_:1}),h("div",de,[(m(!0),g(P,null,V(u.value,s=>(m(),T(l(ae),{key:s.key,checked:e.permissions.includes(s.key),onChange:d=>y(s.key,d.target.checked)},{default:n(()=>[$(q(s.label),1)]),_:2},1032,["checked","onChange"]))),128))])]),_:1},8,["model"])])]),_:1},8,["visible","title"])}}}),pe=[{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}],me={class:"h-full"},ue={key:0,class:"text-center p-8"},_e=h("p",{class:"text-gray-500 text-lg"},"فقط سوپر ادمین به این بخش دسترسی دارد",-1),fe=[_e],ve=h("span",null,"افزودن مدیر",-1),he={key:0,class:"gap-2 flex justify-center"},be=h("span",null,"ویرایش",-1),ge=h("span",null,"حذف",-1),ke={key:1,class:"text-gray-400 text-sm"},is=D({__name:"index",setup(L){const b=j(),t=f(!1),u=f(!1),e=f(null),E=f(null),[C,k]=G(),y=f({}),B=f({columns:pe,api:async a=>{const s=await Y(a);return{rows:s.rows.map(c=>({...c,roleLabel:c.is_super_admin?"سوپر ادمین":"مدیر",statusLabel:c.active===!1?"غیرفعال":"فعال",permissionsLabel:c.is_super_admin?"دسترسی کامل":(c.permissions||[]).map(w=>y.value[w]||w).join("، ")||"بدون دسترسی"})),total:s.total,query:s.query}}}),r=()=>{e.value=null,u.value=!1,t.value=!0},o=a=>{e.value=a,u.value=!0,t.value=!0},p=a=>{oe.confirm({title:"حذف مدیر",content:`آیا مطمئن هستید که می‌خواهید "${a.name||a.phone}" را حذف کنید؟`,okText:"بله، حذف کن",cancelText:"انصراف",okType:"danger",centered:!0,onOk:async()=>{var s,d;try{await Z(a.id),v.success("مدیر با موفقیت حذف شد"),await k()}catch(c){v.error(((d=(s=c==null?void 0:c.response)==null?void 0:s.data)==null?void 0:d.error)||"خطا در حذف مدیر")}}})};return N(async()=>{if(b.isSuperAdmin)try{const{getAdminPermissionOptions:a}=await R(()=>import("./adminUser-dcefea2f.js").then(d=>d.e),["assets/adminUser-dcefea2f.js","assets/button.vue_vue_type_style_index_0_lang-976922e0.js","assets/Icon-d2a333f8.js","assets/index-c7cfb6d0.js","assets/index-338b63e2.css","assets/_plugin-vue_export-helper-64344365.js","assets/Icon-07033a75.css","assets/button-318cd43f.css","assets/index-accfa387.js","assets/DialogWrap-c08d6860.js","assets/isSymbol-39130b1f.js","assets/vnode-d460d6f7.js","assets/pickAttrs-a95b5777.js","assets/styleChecker-2280acc2.js","assets/FormItemContext-c66bbc76.js","assets/adminUser-d880bede.css"]),s=await a();y.value=Object.fromEntries(s.map(d=>[d.key,d.label]))}catch(a){console.error(a)}}),(a,s)=>{const d=I,c=J,w=H;return m(),g("div",me,[l(b).isSuperAdmin?(m(),g(P,{key:1},[i(w,z(B.value,{ref_key:"table",ref:E,onRegister:l(C)}),{extraHeader:n(()=>[i(c,{type:"primary",onClick:r},{default:n(()=>[ve,i(d,{icon:"vuesax-linear:user-add",size:"17"})]),_:1})]),action:n(({record:_})=>[_.is_super_admin?(m(),g("span",ke,"سوپر ادمین")):(m(),g("div",he,[i(l(U),{class:"cursor-pointer"},{title:n(()=>[be]),default:n(()=>[i(I,{icon:"vuesax-linear:edit",color:"#1D4ED8",onClick:O=>o(_)},null,8,["onClick"])]),_:2},1024),i(l(U),{class:"cursor-pointer"},{title:n(()=>[ge]),default:n(()=>[i(I,{icon:"vuesax-linear:trash",color:"#DC2626",onClick:O=>p(_)},null,8,["onClick"])]),_:2},1024)]))]),_:1},16,["onRegister"]),i(ce,{visible:t.value,"onUpdate:visible":s[0]||(s[0]=_=>t.value=_),"is-edit":u.value,"onUpdate:isEdit":s[1]||(s[1]=_=>u.value=_),data:e.value,onSuccess:l(k)},null,8,["visible","is-edit","data","onSuccess"])],64)):(m(),g("div",ue,fe))])}}});export{is as default};