Files
2026-10-20 16:52:05 +03:30

2 lines
8.9 KiB
JavaScript

import{d as D,i as f,h as F,z as q,o as m,k as T,w as n,b as h,e as i,l,n as M,f as $,c as g,q as S,F as P,H as v,t as V,E as N,x as R,_ as j,R as z}from"./index-1ba0f9ec.js";import{_ as H,u as G}from"./useBaseTable-e7a67916.js";import{_ as J}from"./button.vue_vue_type_style_index_0_lang-f90e25b2.js";import{I}from"./Icon-29e38d16.js";import{g as K,u as Q,c as W,_ as X,b as Y,d as Z}from"./adminUser-d7aabdfc.js";import{_ as ee}from"./BasicInput.vue_vue_type_style_index_0_lang-e6a4e582.js";import{n as se}from"./phone-6ff17ec0.js";import{F as te,_ as x}from"./index-83b891e2.js";import{C as ae}from"./index-e22339b6.js";import{_ as ie,M as oe}from"./index-ec322234.js";import{D as ne}from"./index-175b83cf.js";import{T as U}from"./isSymbol-355a1404.js";import"./updateLocale-a8654270.js";import"./index-8f2b7e91.js";import"./_plugin-vue_export-helper-31e07528.js";import"./shallowequal-e0d9eafb.js";import"./vnode-c4e67237.js";import"./useState-dcd360f8.js";import"./useMemo-ee45fb46.js";import"./FormItemContext-33ef1221.js";import"./omit-f5d28cd3.js";import"./lodash-27f814e6.js";import"./BaseSwitch.vue_vue_type_script_setup_true_lang-36a1ea6e.js";import"./BasicModal.vue_vue_type_style_index_0_lang-aed8f5e4.js";import"./index-4bff02a6.js";import"./index-aafc0fe2.js";import"./SearchOutlined-95278fe5.js";import"./isPlainObject-e945bc1f.js";import"./index-73cafb1e.js";import"./index-c8127d4e.js";import"./Badge-8a8eeb58.js";import"./isNumeric-3f69e2aa.js";import"./index-a8579634.js";import"./index-e0664925.js";import"./toArray-41940180.js";import"./pickAttrs-0ddf9a54.js";import"./index-3f6d5caa.js";import"./isMobile-e2e89480.js";import"./usePrice-bc935b83.js";import"./_flatRest-7877cdf8.js";import"./Col-f8806a10.js";import"./styleChecker-19ce40ea.js";import"./index-876da578.js";import"./LeftOutlined-93011b30.js";import"./css-aae66f86.js";import"./DialogWrap-394d7eb0.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=F({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||[]])};q(()=>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,S(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(()=>[$(V(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"},us=D({__name:"index",setup(L){const b=N(),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 R(async()=>{if(b.canAccess("member.managers"))try{const{getAdminPermissionOptions:a}=await j(()=>import("./adminUser-d7aabdfc.js").then(d=>d.e),["assets/adminUser-d7aabdfc.js","assets/button.vue_vue_type_style_index_0_lang-f90e25b2.js","assets/Icon-29e38d16.js","assets/index-1ba0f9ec.js","assets/index-cb402307.css","assets/_plugin-vue_export-helper-31e07528.js","assets/Icon-07033a75.css","assets/index-8f2b7e91.js","assets/button-318cd43f.css","assets/index-ec322234.js","assets/DialogWrap-394d7eb0.js","assets/isSymbol-355a1404.js","assets/vnode-c4e67237.js","assets/shallowequal-e0d9eafb.js","assets/omit-f5d28cd3.js","assets/pickAttrs-0ddf9a54.js","assets/styleChecker-19ce40ea.js","assets/FormItemContext-33ef1221.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).canAccess("member.managers")?(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{us as default};