Files
machartaa_admin_dist/dist/assets/index-2b95c702.js
T
2026-06-23 12:46:29 +03:30

2 lines
11 KiB
JavaScript

import{_ as Q,u as W}from"./useBaseTable-0603087a.js";import{_ as X}from"./button.vue_vue_type_style_index_0_lang-0bce19d5.js";import{I as M}from"./Icon-143cda7e.js";import{_ as P,g as Y,p as Z,a as K}from"./adminUser-60370401.js";import{_ as O}from"./BasicInput.vue_vue_type_style_index_0_lang-9081be0a.js";import{g as V,u as ee,c as se,a as ae,d as te}from"./member-28f8c957.js";import{I as $,d as I,r as N,E as R,D as p,o as B,i as D,w as i,a as b,b as t,j as m,g,e as F,c as j,n as re,F as oe,t as z,A as ne,v as ie,p as le,k as de,G as ue}from"./index-293f04b3.js";import{F as G,_ as C}from"./index-e5115cc8.js";import{C as pe}from"./index-87832a78.js";import{a as ce,M as me}from"./index-54115afc.js";import{t as _e}from"./useDataTime-57a8a3f8.js";import{T as A}from"./shallowequal-01da2816.js";import"./fa_IR-d598d318.js";import"./toArray-a928867c.js";import"./vnode-1aecf5d6.js";import"./FormItemContext-aa4f9ccd.js";import"./pickAttrs-78f9c6a8.js";import"./useState-4ab7f1e5.js";import"./_plugin-vue_export-helper-e06a1ebf.js";import"./lodash-a587ee41.js";import"./BasicModal.vue_vue_type_style_index_0_lang-5a281b97.js";import"./index-1fca4b83.js";import"./Col-96a24c64.js";import"./index-7b3ddc64.js";import"./isPlainObject-d528b478.js";import"./usePrice-bc935b83.js";const fe=async c=>{const{data:u,error:s}=await $.from("user_doc_value").select("doc_value").eq("user_id",c).eq("doc_key","password").single();if(s&&s.code!=="PGRST116")throw s;return(u==null?void 0:u.doc_value)||null},ve=async c=>{const{data:u,error:s}=await $.from("user_doc_value").insert([c]).select();if(s)throw s;return u},we=async(c,u,s="password")=>{const{data:e,error:a}=await $.from("user_doc_value").select("*").eq("user_id",c).eq("doc_key",s);if(a)throw a;if(e&&e.length>0){const{data:w,error:f}=await $.from("user_doc_value").update({doc_value:u}).eq("user_id",c).eq("doc_key",s).select();if(f)throw f;return w}else{const{data:w,error:f}=await $.from("user_doc_value").insert([{user_id:c,doc_key:s,doc_value:u}]).select();if(f)throw f;return w}},he={class:"max-h-[500px] overflow-y-auto p-3"},ge={class:"grid grid-cols-1 md:grid-cols-2 md:gap-4"},be=I({__name:"AddEditForm",props:{visible:{type:Boolean,default:!1},isEdit:{type:Boolean,default:!1},data:{}},emits:["update:visible","update:isEdit","success"],setup(c,{emit:u}){const s=c,e=N({first_name:"",last_name:"",phone:"",password:"",repeat_password:""}),a=()=>{e.first_name="",e.last_name="",e.phone="",e.password="",e.repeat_password=""};R(()=>s.visible,r=>{r&&(s.isEdit&&s.data?w():a())});const w=async()=>{try{a();const r=await V(s.data.id);e.first_name=r.first_name||"",e.last_name=r.last_name||"",e.phone=r.phone||"";try{const l=await fe(r.id);e.password="",e.repeat_password=""}catch{e.password="",e.repeat_password=""}}catch(r){console.error("Error loading data:",r),p.error("خطا در بارگذاری اطلاعات")}},f=()=>{a(),u("update:visible",!1),u("update:isEdit",!1)},E=async()=>{try{if(!e.first_name||e.first_name.trim()===""){p.warning("نام الزامی است");return}if(!e.last_name||e.last_name.trim()===""){p.warning("نام خانوادگی الزامی است");return}if(!e.phone||e.phone.trim()===""){p.warning("تلفن همراه الزامی است");return}if(s.isEdit){if(e.password&&e.password.trim()!==""){if(!e.repeat_password||e.repeat_password.trim()===""){p.warning("تکرار کلمه عبور الزامی است");return}if(e.password!==e.repeat_password){p.warning("کلمه عبور و تکرار آن باید یکسان باشند");return}}}else{if(!e.password||e.password.trim()===""){p.warning("کلمه عبور الزامی است");return}if(e.password!==e.repeat_password){p.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 we(l.id,e.password,"password"),p.success("کاربر با موفقیت ویرایش شد"),u("update:isEdit",!1)}else{const l=await se(r);e.password&&e.password.trim()!==""&&await ve({user_id:l.id,doc_key:"password",doc_value:e.password}),p.success("کاربر با موفقیت ایجاد شد")}a(),u("update:visible",!1),u("success")}catch(r){console.error("Error:",r),p.error((r==null?void 0:r.message)||"خطا در ثبت اطلاعات")}};return(r,l)=>{const y=O,_=P;return B(),D(_,{visible:s.visible,width:"50rem",title:`${s.isEdit?"ویرایش":"افزودن"} کاربر`,okText:"ثبت",onCancel:f,onOk:E},{default:i(()=>[b("div",he,[t(m(G),{model:e},{default:i(()=>[b("div",ge,[t(m(C),{label:"نام",key:"first_name",rules:[{required:!0,message:"نام الزامی است"}]},{default:i(()=>[t(y,{"place-holder":"نام",value:e.first_name,"onUpdate:value":l[0]||(l[0]=o=>e.first_name=o)},null,8,["value"])]),_:1}),t(m(C),{label:"نام خانوادگی",key:"last_name",rules:[{required:!0,message:"نام خانوادگی الزامی است"}]},{default:i(()=>[t(y,{"place-holder":"نام خانوادگی",value:e.last_name,"onUpdate:value":l[1]||(l[1]=o=>e.last_name=o)},null,8,["value"])]),_:1}),t(m(C),{label:"تلفن همراه",key:"phone",rules:[{required:!0,message:"تلفن همراه الزامی است"}]},{default:i(()=>[t(y,{"place-holder":"تلفن همراه",value:e.phone,"onUpdate:value":l[2]||(l[2]=o=>e.phone=o)},null,8,["value"])]),_:1}),t(m(C),{label:"کلمه عبور",key:"password",rules:s.isEdit?[]:[{required:!0,message:"کلمه عبور الزامی است"}]},{default:i(()=>[t(y,{type:"password","place-holder":"کلمه عبور",value:e.password,"onUpdate:value":l[3]||(l[3]=o=>e.password=o)},null,8,["value"])]),_:1},8,["rules"]),t(m(C),{label:"تکرار کلمه عبور",key:"repeat_password",rules:s.isEdit?[]:[{required:!0,message:"تکرار کلمه عبور الزامی است"}]},{default:i(()=>[t(y,{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"])}}}),ye={class:"max-h-[560px] overflow-y-auto p-3"},ke={class:"grid grid-cols-1 md:grid-cols-2 md:gap-4 mb-4"},xe={class:"grid grid-cols-1 md:grid-cols-2 gap-3"},Ce=I({__name:"PromoteToAdminForm",props:{visible:{type:Boolean,default:!1},data:{default:null}},emits:["update:visible","success"],setup(c,{emit:u}){const s=c,e=g([]),a=N({name:"",phone:"",permissions:[]}),w=()=>{a.name="",a.phone="",a.permissions=[]},f=async()=>{e.value.length||(e.value=await Y())},E=()=>{if(!s.data)return;const _=[s.data.first_name,s.data.last_name].filter(Boolean).join(" ").trim();a.name=_||s.data.phone||"",a.phone=s.data.phone||"",a.permissions=[]};R(()=>s.visible,async _=>{_&&(await f(),s.data?E():w())});const r=(_,o)=>{if(o){a.permissions.includes(_)||a.permissions.push(_);return}a.permissions=a.permissions.filter(v=>v!==_)},l=()=>{u("update:visible",!1)},y=async()=>{var _,o,v;if(!((_=s.data)!=null&&_.id)){p.error("کاربر انتخاب نشده است");return}if(!a.name.trim()){p.error("نام الزامی است");return}if(!a.phone.trim()){p.error("کاربر شماره تلفن ندارد");return}try{await Z(s.data.id,{name:a.name.trim(),permissions:a.permissions}),p.success("کاربر با موفقیت به مدیران اضافه شد"),u("success"),l()}catch(k){p.error(((v=(o=k==null?void 0:k.response)==null?void 0:o.data)==null?void 0:v.error)||"خطا در افزودن به مدیران")}};return(_,o)=>{const v=O,k=P;return B(),D(k,{visible:s.visible,width:"52rem",title:"افزودن به مدیران",okText:"ثبت",onCancel:l,onOk:y},{default:i(()=>[b("div",ye,[t(m(G),{model:a},{default:i(()=>[b("div",ke,[t(m(C),{label:"نام"},{default:i(()=>[t(v,{"place-holder":"نام",value:a.name,"onUpdate:value":o[0]||(o[0]=h=>a.name=h)},null,8,["value"])]),_:1}),t(m(C),{label:"شماره تلفن"},{default:i(()=>[t(v,{"place-holder":"شماره تلفن",value:a.phone,"onUpdate:value":o[1]||(o[1]=h=>a.phone=h),disabled:""},null,8,["value"])]),_:1})]),t(m(ce),null,{default:i(()=>[F("دسترسی به صفحات")]),_:1}),b("div",xe,[(B(!0),j(oe,null,re(e.value,h=>(B(),D(m(pe),{key:h.key,checked:a.permissions.includes(h.key),onChange:T=>r(h.key,T.target.checked)},{default:i(()=>[F(z(h.label),1)]),_:2},1032,["checked","onChange"]))),128))])]),_:1},8,["model"])])]),_:1},8,["visible"])}}}),Ee=[{title:"ردیف",dataIndex:"id",key:"id",filterable:!1,customRender:c=>c.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:c=>c.record.created_at?_e(c.record.created_at):"-"},{title:"عملیات",dataIndex:"action",key:"action",slot:"action",filterable:!1,align:"center"}],Ue={class:"h-full"},Be=b("span",null,"افزودن کاربر",-1),$e={class:"gap-2 flex justify-center"},Se=b("span",null,"ویرایش",-1),Me=b("span",null,"حذف",-1),ts=I({__name:"index",setup(c){const u=ne(),s=g(!1),e=g(!1),a=g(null),w=g(!1),f=g(null),E=g(new Set),r=g(new Set),l=g(null),[y,_]=W(),o=async()=>{if(u.isSuperAdmin)try{const n=await K();E.value=new Set(n.map(d=>d.auth_user_id).filter(d=>!!d).map(String)),r.value=new Set(n.map(d=>{var S;return d.phone||d.username||((S=d.email)==null?void 0:S.split("@")[0])||""}).filter(Boolean))}catch(n){console.error(n)}},v=n=>{if(n!=null&&n.id&&E.value.has(String(n.id)))return!0;const d=(n==null?void 0:n.phone)||"";return!!d&&r.value.has(d)},k=n=>{v(n)||(f.value=n,w.value=!0)},h=g({columns:Ee,api:ae}),T=async n=>{a.value=await V(n.id),e.value=!0,s.value=!0},H=async n=>{me.confirm({title:"حذف کاربر",content:`آیا مطمئن هستید که می‌خواهید کاربر "${n.first_name||""} ${n.last_name||""}" را حذف کنید؟`,okText:"بله، حذف کن",cancelText:"انصراف",okType:"danger",centered:!0,onOk:async()=>{try{await te(n.id),p.success("کاربر با موفقیت حذف شد"),await _()}catch(d){console.error("Error deleting user:",d),p.error("خطا در حذف کاربر")}}})};return ie(()=>{o()}),(n,d)=>{const S=M,J=X,L=Q;return B(),j("div",Ue,[t(L,ue(h.value,{ref_key:"table",ref:l,onRegister:m(y)}),{extraHeader:i(()=>[t(J,{type:"primary",onClick:d[0]||(d[0]=x=>s.value=!0)},{default:i(()=>[Be,t(S,{icon:"vuesax-linear:user",size:"17"})]),_:1})]),action:i(({column:x,record:U})=>[b("div",$e,[m(u).isSuperAdmin?(B(),D(m(A),{key:0,class:"cursor-pointer"},{title:i(()=>[b("span",null,z(v(U)?"قبلاً مدیر است":"افزودن به مدیران"),1)]),default:i(()=>[t(M,{icon:"vuesax-linear:user-tick",color:v(U)?"#9CA3AF":"#059669",class:le({"opacity-40 cursor-not-allowed":v(U)}),onClick:q=>k(U)},null,8,["color","class","onClick"])]),_:2},1024)):de("",!0),t(m(A),{class:"cursor-pointer"},{title:i(()=>[Se]),default:i(()=>[t(M,{icon:"vuesax-linear:edit",color:"#1D4ED8",onClick:q=>T(U)},null,8,["onClick"])]),_:2},1024),t(m(A),{class:"cursor-pointer"},{title:i(()=>[Me]),default:i(()=>[t(M,{icon:"vuesax-linear:trash",color:"#DC2626",onClick:q=>H(U)},null,8,["onClick"])]),_:2},1024)])]),_:1},16,["onRegister"]),t(be,{visible:s.value,"onUpdate:visible":d[1]||(d[1]=x=>s.value=x),"is-edit":e.value,"onUpdate:isEdit":d[2]||(d[2]=x=>e.value=x),data:a.value,onSuccess:m(_)},null,8,["visible","is-edit","data","onSuccess"]),t(Ce,{visible:w.value,"onUpdate:visible":d[3]||(d[3]=x=>w.value=x),data:f.value,onSuccess:o},null,8,["visible","data"])])}}});export{ts as default};