2 lines
12 KiB
JavaScript
2 lines
12 KiB
JavaScript
import{_ as L,u as Q}from"./useBaseTable-ec30a97d.js";import{_ as W}from"./button.vue_vue_type_style_index_0_lang-ad893796.js";import{I as M}from"./Icon-84f282a9.js";import{_ as P,g as X,p as Y,a as Z}from"./adminUser-5a1174da.js";import{_ as V}from"./BasicInput.vue_vue_type_style_index_0_lang-a177b9a9.js";import{a as q,u as ee,c as se,g as ae,d as te}from"./member-15390be3.js";import{T as re,O as oe,d as I,h as O,y as N,G as m,o as E,k as S,w as i,b as g,e as t,l as c,i as w,f as F,c as R,q as ne,F as ie,t as j,D as le,x as de,s as ue,n as pe,K as me}from"./index-01aa5506.js";import{F as z,_ as x}from"./index-d4e2041c.js";import{C as ce}from"./index-750d03f7.js";import{D as fe}from"./index-e013b18a.js";import{t as _e}from"./useDataTime-2f85c275.js";import{M as ve}from"./index-276e15c5.js";import{T}from"./isSymbol-89eeb898.js";import"./updateLocale-4d53ac7e.js";import"./index-97e46aab.js";import"./_plugin-vue_export-helper-2f0b925e.js";import"./shallowequal-a983431a.js";import"./vnode-386fab8b.js";import"./useState-074ca9f0.js";import"./useMemo-83211a3c.js";import"./FormItemContext-45e1fa89.js";import"./omit-8a7495a3.js";import"./lodash-0f373afd.js";import"./BaseSwitch.vue_vue_type_script_setup_true_lang-b0105976.js";import"./BasicModal.vue_vue_type_style_index_0_lang-00ba9225.js";import"./index-3370fde6.js";import"./index-0db924de.js";import"./SearchOutlined-dadd531e.js";import"./isPlainObject-838e96ea.js";import"./index-54bdc419.js";import"./index-64f7c585.js";import"./Badge-f9f962a5.js";import"./isNumeric-3f69e2aa.js";import"./index-40e1be26.js";import"./index-b91244f4.js";import"./toArray-e14b288d.js";import"./pickAttrs-841f485e.js";import"./index-fb8c26e7.js";import"./isMobile-e2e89480.js";import"./usePrice-bc935b83.js";import"./_flatRest-b81e40db.js";import"./Col-42eabc6c.js";import"./styleChecker-4d07c514.js";import"./index-01db740f.js";import"./DialogWrap-784b5f45.js";import"./css-aae66f86.js";const G=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 G(u.user_id,u.value),{success:!0}),he=async(u,p)=>(await G(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=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 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 E(),S(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"},Be={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(u,{emit:p}){const s=u,e=w([]),a=O({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=[]};N(()=>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 E(),S(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",Be,[(E(!0),R(ie,null,ne(e.value,v=>(E(),S(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"}],Me={class:"h-full"},Se=g("span",null,"افزودن کاربر",-1),De={class:"gap-2 flex justify-center"},Te=g("span",null,"ویرایش",-1),Ie=g("span",null,"حذف",-1),Bs=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 $=M,J=W,K=L;return E(),R("div",Me,[t(K,me(v.value,{ref_key:"table",ref:l,onRegister:c(b)}),{extraHeader:i(()=>[t(J,{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:B})=>[g("div",De,[c(p).isSuperAdmin?(E(),S(c(T),{key:0,class:"cursor-pointer"},{title:i(()=>[g("span",null,j(_(B)?"قبلاً مدیر است":"افزودن به مدیران"),1)]),default:i(()=>[t(M,{icon:"vuesax-linear:user-tick",color:_(B)?"#9CA3AF":"#059669",class:ue({"opacity-40 cursor-not-allowed":_(B)}),onClick:A=>y(B)},null,8,["color","class","onClick"])]),_:2},1024)):pe("",!0),t(c(T),{class:"cursor-pointer"},{title:i(()=>[Te]),default:i(()=>[t(M,{icon:"vuesax-linear:edit",color:"#1D4ED8",onClick:A=>D(B)},null,8,["onClick"])]),_:2},1024),t(c(T),{class:"cursor-pointer"},{title:i(()=>[Ie]),default:i(()=>[t(M,{icon:"vuesax-linear:trash",color:"#DC2626",onClick:A=>H(B)},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(Ee,{visible:h.value,"onUpdate:visible":d[3]||(d[3]=k=>h.value=k),data:U.value,onSuccess:o},null,8,["visible","data"])])}}});export{Bs as default};
|