2 lines
12 KiB
JavaScript
2 lines
12 KiB
JavaScript
import{_ as K,u as Q}from"./useBaseTable-1184a002.js";import{_ as W}from"./button.vue_vue_type_style_index_0_lang-cbfd9667.js";import{I as S}from"./Icon-0c226cc8.js";import{_ as P,g as X,p as Y,a as Z}from"./adminUser-ab9c12d6.js";import{_ as V}from"./BasicInput.vue_vue_type_style_index_0_lang-4f908c47.js";import{a as q,u as ee,c as se,g as ae,d as te}from"./member-d49124ce.js";import{S as re,N as oe,d as I,r as N,E as O,D as m,o as B,i as M,w as i,a as g,b as t,j as c,g as w,e as F,c as R,n as ne,F as ie,t as j,A as le,v as de,p as ue,k as pe,J as me}from"./index-35c19078.js";import{F as z,_ as x}from"./index-727899c3.js";import{C as ce}from"./index-3e7c49ac.js";import{D as fe}from"./index-70f42a71.js";import{t as _e}from"./useDataTime-35d3ce8c.js";import{M as ve}from"./index-d1bea9c9.js";import{T as A}from"./isSymbol-76912a30.js";import"./updateLocale-674603f1.js";import"./index-317dfb98.js";import"./_plugin-vue_export-helper-b8aa26f1.js";import"./shallowequal-336924ae.js";import"./vnode-bd016db8.js";import"./useState-0b0c0b26.js";import"./useMemo-141475be.js";import"./FormItemContext-c59740e7.js";import"./omit-fea2187f.js";import"./lodash-e3d7e6b8.js";import"./BaseSwitch.vue_vue_type_script_setup_true_lang-aa5cbf20.js";import"./BasicModal.vue_vue_type_style_index_0_lang-20cc468f.js";import"./index-c135e3cd.js";import"./index-e2b66426.js";import"./SearchOutlined-fd97bf7f.js";import"./isPlainObject-9fc066ac.js";import"./index-81c6c557.js";import"./index-9c958bd1.js";import"./Badge-5aec0f5b.js";import"./isNumeric-3f69e2aa.js";import"./index-597067d3.js";import"./index-0cfe3fb2.js";import"./toArray-f7bbf4fe.js";import"./pickAttrs-2a6a34d0.js";import"./index-e39a0c4e.js";import"./isMobile-e2e89480.js";import"./usePrice-bc935b83.js";import"./_flatRest-ce9c6e5e.js";import"./Col-93e193e7.js";import"./styleChecker-5378d544.js";import"./index-53a07be2.js";import"./DialogWrap-7ea92471.js";import"./css-aae66f86.js";const J=async(u,p)=>{await oe.put(`/admin/members/${u}/password`,{password:p})},we=async u=>{var s;return((s=(await re("user_doc_value",{filters:[{field:"user_id",op:"eq",value:u}],limit:1,page:1})).rows)==null?void 0:s[0])??null},ge=async u=>{const p=await we(u);return(p==null?void 0:p.value)||null},be=async u=>(await J(u.user_id,u.value),{success:!0}),he=async(u,p)=>(await J(u,p),{success:!0}),ye={class:"max-h-[500px] overflow-y-auto p-3"},ke={class:"grid grid-cols-1 md:grid-cols-2 md:gap-4"},xe=I({__name:"AddEditForm",props:{visible:{type:Boolean,default:!1},isEdit:{type:Boolean,default:!1},data:{}},emits:["update:visible","update:isEdit","success"],setup(u,{emit:p}){const s=u,e=N({first_name:"",last_name:"",phone:"",password:"",repeat_password:""}),a=()=>{e.first_name="",e.last_name="",e.phone="",e.password="",e.repeat_password=""};O(()=>s.visible,r=>{r&&(s.isEdit&&s.data?h():a())});const h=async()=>{try{a();const r=await q(s.data.id);e.first_name=r.first_name||"",e.last_name=r.last_name||"",e.phone=r.phone||"";try{const l=await ge(r.id);e.password="",e.repeat_password=""}catch{e.password="",e.repeat_password=""}}catch(r){console.error("Error loading data:",r),m.error("خطا در بارگذاری اطلاعات")}},U=()=>{a(),p("update:visible",!1),p("update:isEdit",!1)},C=async()=>{try{if(!e.first_name||e.first_name.trim()===""){m.warning("نام الزامی است");return}if(!e.last_name||e.last_name.trim()===""){m.warning("نام خانوادگی الزامی است");return}if(!e.phone||e.phone.trim()===""){m.warning("تلفن همراه الزامی است");return}if(s.isEdit){if(e.password&&e.password.trim()!==""){if(!e.repeat_password||e.repeat_password.trim()===""){m.warning("تکرار کلمه عبور الزامی است");return}if(e.password!==e.repeat_password){m.warning("کلمه عبور و تکرار آن باید یکسان باشند");return}}}else{if(!e.password||e.password.trim()===""){m.warning("کلمه عبور الزامی است");return}if(e.password!==e.repeat_password){m.warning("کلمه عبور و تکرار آن باید یکسان باشند");return}}const r={first_name:e.first_name.trim(),last_name:e.last_name.trim(),phone:e.phone.trim()};if(s.isEdit&&s.data){const l=await ee(s.data.id,r);e.password&&e.password.trim()!==""&&await he(l.id,e.password),m.success("کاربر با موفقیت ویرایش شد"),p("update:isEdit",!1)}else{const l=await se(r);e.password&&e.password.trim()!==""&&await be({user_id:l.id,value:e.password}),m.success("کاربر با موفقیت ایجاد شد")}a(),p("update:visible",!1),p("success")}catch(r){console.error("Error:",r),m.error((r==null?void 0:r.message)||"خطا در ثبت اطلاعات")}};return(r,l)=>{const b=V,f=P;return B(),M(f,{visible:s.visible,width:"50rem",title:`${s.isEdit?"ویرایش":"افزودن"} کاربر`,okText:"ثبت",onCancel:U,onOk:C},{default:i(()=>[g("div",ye,[t(c(z),{model:e},{default:i(()=>[g("div",ke,[t(c(x),{label:"نام",key:"first_name",rules:[{required:!0,message:"نام الزامی است"}]},{default:i(()=>[t(b,{"place-holder":"نام",value:e.first_name,"onUpdate:value":l[0]||(l[0]=o=>e.first_name=o)},null,8,["value"])]),_:1}),t(c(x),{label:"نام خانوادگی",key:"last_name",rules:[{required:!0,message:"نام خانوادگی الزامی است"}]},{default:i(()=>[t(b,{"place-holder":"نام خانوادگی",value:e.last_name,"onUpdate:value":l[1]||(l[1]=o=>e.last_name=o)},null,8,["value"])]),_:1}),t(c(x),{label:"تلفن همراه",key:"phone",rules:[{required:!0,message:"تلفن همراه الزامی است"}]},{default:i(()=>[t(b,{"place-holder":"تلفن همراه",value:e.phone,"onUpdate:value":l[2]||(l[2]=o=>e.phone=o)},null,8,["value"])]),_:1}),t(c(x),{label:"کلمه عبور",key:"password",rules:s.isEdit?[]:[{required:!0,message:"کلمه عبور الزامی است"}]},{default:i(()=>[t(b,{type:"password","place-holder":"کلمه عبور",value:e.password,"onUpdate:value":l[3]||(l[3]=o=>e.password=o)},null,8,["value"])]),_:1},8,["rules"]),t(c(x),{label:"تکرار کلمه عبور",key:"repeat_password",rules:s.isEdit?[]:[{required:!0,message:"تکرار کلمه عبور الزامی است"}]},{default:i(()=>[t(b,{type:"password","place-holder":"تکرار کلمه عبور",value:e.repeat_password,"onUpdate:value":l[4]||(l[4]=o=>e.repeat_password=o)},null,8,["value"])]),_:1},8,["rules"])])]),_:1},8,["model"])])]),_:1},8,["visible","title"])}}}),Ue={class:"max-h-[560px] overflow-y-auto p-3"},Ce={class:"grid grid-cols-1 md:grid-cols-2 md:gap-4 mb-4"},Ee={class:"grid grid-cols-1 md:grid-cols-2 gap-3"},Be=I({__name:"PromoteToAdminForm",props:{visible:{type:Boolean,default:!1},data:{default:null}},emits:["update:visible","success"],setup(u,{emit:p}){const s=u,e=w([]),a=N({name:"",phone:"",permissions:[]}),h=()=>{a.name="",a.phone="",a.permissions=[]},U=async()=>{e.value.length||(e.value=await X())},C=()=>{if(!s.data)return;const f=[s.data.first_name,s.data.last_name].filter(Boolean).join(" ").trim();a.name=f||s.data.phone||"",a.phone=s.data.phone||"",a.permissions=[]};O(()=>s.visible,async f=>{f&&(await U(),s.data?C():h())});const r=(f,o)=>{if(o){a.permissions.includes(f)||a.permissions.push(f);return}a.permissions=a.permissions.filter(_=>_!==f)},l=()=>{p("update:visible",!1)},b=async()=>{var f,o,_;if(!((f=s.data)!=null&&f.id)){m.error("کاربر انتخاب نشده است");return}if(!a.name.trim()){m.error("نام الزامی است");return}if(!a.phone.trim()){m.error("کاربر شماره تلفن ندارد");return}try{await Y(s.data.id,{name:a.name.trim(),permissions:a.permissions}),m.success("کاربر با موفقیت به مدیران اضافه شد"),p("success"),l()}catch(y){m.error(((_=(o=y==null?void 0:y.response)==null?void 0:o.data)==null?void 0:_.error)||"خطا در افزودن به مدیران")}};return(f,o)=>{const _=V,y=P;return B(),M(y,{visible:s.visible,width:"52rem",title:"افزودن به مدیران",okText:"ثبت",onCancel:l,onOk:b},{default:i(()=>[g("div",Ue,[t(c(z),{model:a},{default:i(()=>[g("div",Ce,[t(c(x),{label:"نام"},{default:i(()=>[t(_,{"place-holder":"نام",value:a.name,"onUpdate:value":o[0]||(o[0]=v=>a.name=v)},null,8,["value"])]),_:1}),t(c(x),{label:"شماره تلفن"},{default:i(()=>[t(_,{"place-holder":"شماره تلفن",value:a.phone,"onUpdate:value":o[1]||(o[1]=v=>a.phone=v),disabled:""},null,8,["value"])]),_:1})]),t(c(fe),null,{default:i(()=>[F("دسترسی به صفحات")]),_:1}),g("div",Ee,[(B(!0),R(ie,null,ne(e.value,v=>(B(),M(c(ce),{key:v.key,checked:a.permissions.includes(v.key),onChange:D=>r(v.key,D.target.checked)},{default:i(()=>[F(j(v.label),1)]),_:2},1032,["checked","onChange"]))),128))])]),_:1},8,["model"])])]),_:1},8,["visible"])}}}),$e=[{title:"ردیف",dataIndex:"id",key:"id",filterable:!1,customRender:u=>u.index+1},{title:"نام",dataIndex:"first_name",key:"first_name"},{title:"نام خانوادگی",dataIndex:"last_name",key:"last_name"},{title:"شماره همراه",dataIndex:"phone",key:"phone"},{title:" زمان ثبت نام",dataIndex:"created_at",key:"created_at",customRender:u=>u.record.created_at?_e(u.record.created_at):"-"},{title:"عملیات",dataIndex:"action",key:"action",slot:"action",filterable:!1,align:"center"}],Se={class:"h-full"},Me=g("span",null,"افزودن کاربر",-1),De={class:"gap-2 flex justify-center"},Ae=g("span",null,"ویرایش",-1),Ie=g("span",null,"حذف",-1),Es=I({__name:"index",setup(u){const p=le(),s=w(!1),e=w(!1),a=w(null),h=w(!1),U=w(null),C=w(new Set),r=w(new Set),l=w(null),[b,f]=Q(),o=async()=>{if(p.isSuperAdmin)try{const n=await Z();C.value=new Set(n.map(d=>d.auth_user_id).filter(d=>!!d).map(String)),r.value=new Set(n.map(d=>{var $;return d.phone||d.username||(($=d.email)==null?void 0:$.split("@")[0])||""}).filter(Boolean))}catch(n){console.error(n)}},_=n=>{if(n!=null&&n.id&&C.value.has(String(n.id)))return!0;const d=(n==null?void 0:n.phone)||"";return!!d&&r.value.has(d)},y=n=>{_(n)||(U.value=n,h.value=!0)},v=w({columns:$e,api:ae}),D=async n=>{a.value=await q(n.id),e.value=!0,s.value=!0},H=async n=>{ve.confirm({title:"حذف کاربر",content:`آیا مطمئن هستید که میخواهید کاربر "${n.first_name||""} ${n.last_name||""}" را حذف کنید؟`,okText:"بله، حذف کن",cancelText:"انصراف",okType:"danger",centered:!0,onOk:async()=>{try{await te(n.id),m.success("کاربر با موفقیت حذف شد"),await f()}catch(d){console.error("Error deleting user:",d),m.error("خطا در حذف کاربر")}}})};return de(()=>{o()}),(n,d)=>{const $=S,L=W,G=K;return B(),R("div",Se,[t(G,me(v.value,{ref_key:"table",ref:l,onRegister:c(b)}),{extraHeader:i(()=>[t(L,{type:"primary",onClick:d[0]||(d[0]=k=>s.value=!0)},{default:i(()=>[Me,t($,{icon:"vuesax-linear:user",size:"17"})]),_:1})]),action:i(({column:k,record:E})=>[g("div",De,[c(p).isSuperAdmin?(B(),M(c(A),{key:0,class:"cursor-pointer"},{title:i(()=>[g("span",null,j(_(E)?"قبلاً مدیر است":"افزودن به مدیران"),1)]),default:i(()=>[t(S,{icon:"vuesax-linear:user-tick",color:_(E)?"#9CA3AF":"#059669",class:ue({"opacity-40 cursor-not-allowed":_(E)}),onClick:T=>y(E)},null,8,["color","class","onClick"])]),_:2},1024)):pe("",!0),t(c(A),{class:"cursor-pointer"},{title:i(()=>[Ae]),default:i(()=>[t(S,{icon:"vuesax-linear:edit",color:"#1D4ED8",onClick:T=>D(E)},null,8,["onClick"])]),_:2},1024),t(c(A),{class:"cursor-pointer"},{title:i(()=>[Ie]),default:i(()=>[t(S,{icon:"vuesax-linear:trash",color:"#DC2626",onClick:T=>H(E)},null,8,["onClick"])]),_:2},1024)])]),_:1},16,["onRegister"]),t(xe,{visible:s.value,"onUpdate:visible":d[1]||(d[1]=k=>s.value=k),"is-edit":e.value,"onUpdate:isEdit":d[2]||(d[2]=k=>e.value=k),data:a.value,onSuccess:c(f)},null,8,["visible","is-edit","data","onSuccess"]),t(Be,{visible:h.value,"onUpdate:visible":d[3]||(d[3]=k=>h.value=k),data:U.value,onSuccess:o},null,8,["visible","data"])])}}});export{Es as default};
|