Files
machartaa_admin_dist/dist/assets/index-60a52c67.js
T
2026-08-15 11:59:58 +03:30

2 lines
12 KiB
JavaScript

import{_ as K,u as Q}from"./useBaseTable-8cba60ae.js";import{_ as W}from"./button.vue_vue_type_style_index_0_lang-e2b25b37.js";import{I as S}from"./Icon-7978fe0f.js";import{_ as P,g as X,p as Y,a as Z}from"./adminUser-3ea8a235.js";import{_ as V}from"./BasicInput.vue_vue_type_style_index_0_lang-037e8d8d.js";import{a as q,u as ee,c as se,g as ae,d as te}from"./member-97418dfb.js";import{G as re,J as oe,d as I,r as O,E as N,D as m,o as B,i as M,w as i,a as b,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,H as me}from"./index-ac7066b4.js";import{F as z,_ as x}from"./index-27f1c09e.js";import{C as ce}from"./index-fa378035.js";import{D as fe}from"./index-f0d8ad9c.js";import{t as _e}from"./useDataTime-8b5c8616.js";import{M as ve}from"./index-83a7641b.js";import{T as D}from"./isSymbol-666d5768.js";import"./updateLocale-199556b5.js";import"./index-802e18b7.js";import"./_plugin-vue_export-helper-4339814c.js";import"./vnode-ef8e6ff6.js";import"./useState-277f1e57.js";import"./useMemo-51fb250b.js";import"./FormItemContext-8e774be4.js";import"./lodash-875c0571.js";import"./BaseSwitch.vue_vue_type_script_setup_true_lang-4839fd2a.js";import"./BasicModal.vue_vue_type_style_index_0_lang-02d666ae.js";import"./index-a074700a.js";import"./index-e101c0bd.js";import"./SearchOutlined-36fcc6f3.js";import"./isPlainObject-a4fa2df5.js";import"./index-74186c79.js";import"./index-25ae81e5.js";import"./Badge-fcb9007c.js";import"./isNumeric-3f69e2aa.js";import"./index-7f62cf48.js";import"./index-ff2f09c7.js";import"./toArray-518515e2.js";import"./pickAttrs-73e6cb05.js";import"./index-5ae727af.js";import"./isMobile-e2e89480.js";import"./usePrice-bc935b83.js";import"./_flatRest-843ce72e.js";import"./Col-c884cbb4.js";import"./styleChecker-8fccceee.js";import"./index-b18fec22.js";import"./DialogWrap-4b820301.js";import"./css-aae66f86.js";const H=async(p,u)=>{await oe.put(`/admin/members/${p}/password`,{password:u})},we=async p=>{const{data:u,error:s}=await re.from("user_doc_value").select("value").eq("user_id",p).maybeSingle();if(s)throw s;return(u==null?void 0:u.value)||null},be=async p=>(await H(p.user_id,p.value),{success:!0}),ge=async(p,u)=>(await H(p,u),{success:!0}),he={class:"max-h-[500px] overflow-y-auto p-3"},ye={class:"grid grid-cols-1 md:grid-cols-2 md:gap-4"},ke=I({__name:"AddEditForm",props:{visible:{type:Boolean,default:!1},isEdit:{type:Boolean,default:!1},data:{}},emits:["update:visible","update:isEdit","success"],setup(p,{emit:u}){const s=p,e=O({first_name:"",last_name:"",phone:"",password:"",repeat_password:""}),a=()=>{e.first_name="",e.last_name="",e.phone="",e.password="",e.repeat_password=""};N(()=>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 we(r.id);e.password="",e.repeat_password=""}catch{e.password="",e.repeat_password=""}}catch(r){console.error("Error loading data:",r),m.error("خطا در بارگذاری اطلاعات")}},C=()=>{a(),u("update:visible",!1),u("update:isEdit",!1)},U=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 ge(l.id,e.password),m.success("کاربر با موفقیت ویرایش شد"),u("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(),u("update:visible",!1),u("success")}catch(r){console.error("Error:",r),m.error((r==null?void 0:r.message)||"خطا در ثبت اطلاعات")}};return(r,l)=>{const g=V,f=P;return B(),M(f,{visible:s.visible,width:"50rem",title:`${s.isEdit?"ویرایش":"افزودن"} کاربر`,okText:"ثبت",onCancel:C,onOk:U},{default:i(()=>[b("div",he,[t(c(z),{model:e},{default:i(()=>[b("div",ye,[t(c(x),{label:"نام",key:"first_name",rules:[{required:!0,message:"نام الزامی است"}]},{default:i(()=>[t(g,{"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(g,{"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(g,{"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(g,{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(g,{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"])}}}),xe={class:"max-h-[560px] overflow-y-auto p-3"},Ce={class:"grid grid-cols-1 md:grid-cols-2 md:gap-4 mb-4"},Ue={class:"grid grid-cols-1 md:grid-cols-2 gap-3"},Ee=I({__name:"PromoteToAdminForm",props:{visible:{type:Boolean,default:!1},data:{default:null}},emits:["update:visible","success"],setup(p,{emit:u}){const s=p,e=w([]),a=O({name:"",phone:"",permissions:[]}),h=()=>{a.name="",a.phone="",a.permissions=[]},C=async()=>{e.value.length||(e.value=await X())},U=()=>{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=[]};N(()=>s.visible,async f=>{f&&(await C(),s.data?U():h())});const r=(f,o)=>{if(o){a.permissions.includes(f)||a.permissions.push(f);return}a.permissions=a.permissions.filter(_=>_!==f)},l=()=>{u("update:visible",!1)},g=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("کاربر با موفقیت به مدیران اضافه شد"),u("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:g},{default:i(()=>[b("div",xe,[t(c(z),{model:a},{default:i(()=>[b("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}),b("div",Ue,[(B(!0),R(ie,null,ne(e.value,v=>(B(),M(c(ce),{key:v.key,checked:a.permissions.includes(v.key),onChange:A=>r(v.key,A.target.checked)},{default:i(()=>[F(j(v.label),1)]),_:2},1032,["checked","onChange"]))),128))])]),_:1},8,["model"])])]),_:1},8,["visible"])}}}),Be=[{title:"ردیف",dataIndex:"id",key:"id",filterable:!1,customRender:p=>p.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:p=>p.record.created_at?_e(p.record.created_at):"-"},{title:"عملیات",dataIndex:"action",key:"action",slot:"action",filterable:!1,align:"center"}],$e={class:"h-full"},Se=b("span",null,"افزودن کاربر",-1),Me={class:"gap-2 flex justify-center"},Ae=b("span",null,"ویرایش",-1),De=b("span",null,"حذف",-1),xs=I({__name:"index",setup(p){const u=le(),s=w(!1),e=w(!1),a=w(null),h=w(!1),C=w(null),U=w(new Set),r=w(new Set),l=w(null),[g,f]=Q(),o=async()=>{if(u.isSuperAdmin)try{const n=await Z();U.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&&U.value.has(String(n.id)))return!0;const d=(n==null?void 0:n.phone)||"";return!!d&&r.value.has(d)},y=n=>{_(n)||(C.value=n,h.value=!0)},v=w({columns:Be,api:ae}),A=async n=>{a.value=await q(n.id),e.value=!0,s.value=!0},J=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,G=W,L=K;return B(),R("div",$e,[t(L,me(v.value,{ref_key:"table",ref:l,onRegister:c(g)}),{extraHeader:i(()=>[t(G,{type:"primary",onClick:d[0]||(d[0]=k=>s.value=!0)},{default:i(()=>[Se,t($,{icon:"vuesax-linear:user",size:"17"})]),_:1})]),action:i(({column:k,record:E})=>[b("div",Me,[c(u).isSuperAdmin?(B(),M(c(D),{key:0,class:"cursor-pointer"},{title:i(()=>[b("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(D),{class:"cursor-pointer"},{title:i(()=>[Ae]),default:i(()=>[t(S,{icon:"vuesax-linear:edit",color:"#1D4ED8",onClick:T=>A(E)},null,8,["onClick"])]),_:2},1024),t(c(D),{class:"cursor-pointer"},{title:i(()=>[De]),default:i(()=>[t(S,{icon:"vuesax-linear:trash",color:"#DC2626",onClick:T=>J(E)},null,8,["onClick"])]),_:2},1024)])]),_:1},16,["onRegister"]),t(ke,{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(Ee,{visible:h.value,"onUpdate:visible":d[3]||(d[3]=k=>h.value=k),data:C.value,onSuccess:o},null,8,["visible","data"])])}}});export{xs as default};