Files
machartaa_admin_dist/dist/assets/index-2a067bdf.js
T
2026-06-29 11:42:39 +03:30

2 lines
10 KiB
JavaScript

import{_ as K}from"./BasicModal.vue_vue_type_style_index_0_lang-5ab3ab1e.js";import{_ as Q,u as X}from"./useBaseTable-d9c20676.js";import{_ as Y}from"./button.vue_vue_type_style_index_0_lang-9acb6bbb.js";import{I as E}from"./Icon-c317d0f6.js";import{_ as R}from"./InputDatePicker.vue_vue_type_script_setup_true_lang-64bba86e.js";import{t as U}from"./useDataTime-d5dc0b88.js";import{_ as ee}from"./CustomTag.vue_vue_type_script_setup_true_lang-1de64d24.js";import{u as te}from"./usePrice-bc935b83.js";import{b as i,_ as ae,W as b,d as ne,g as p,r as ie,o as S,c as B,a as y,w as u,e as q,j as D,G as le,i as oe,D as f}from"./index-6d795230.js";import{M as se,_ as ue}from"./index-5ffa18ef.js";import{I as re}from"./index-31dc1979.js";import{R as ce,a as de}from"./index-5d1c7ac1.js";import{_ as me,F as _e}from"./index-bb96f0e2.js";import{_ as fe}from"./index-cf066e25.js";import{T as P}from"./shallowequal-703850b3.js";import"./index-b10e6723.js";import"./vnode-464346d5.js";import"./styleChecker-4390889b.js";import"./_plugin-vue_export-helper-f50b9772.js";import"./fa_IR-18867896.js";import"./toArray-ae995052.js";import"./FormItemContext-cfd53c8f.js";import"./pickAttrs-954d14dc.js";import"./useState-3687f263.js";import"./lodash-0405a701.js";import"./isPlainObject-3687c6e5.js";import"./Col-899793db.js";const pe=[{title:"ردیف",dataIndex:"id",key:"id",filterable:!1,width:70,align:"center",customRender:e=>e.index+1},{title:"عنوان",dataIndex:"title",key:"title"},{title:"کد",dataIndex:"code",key:"code",width:120},{title:"مقدار تخفیف",dataIndex:"amount",key:"amount",width:130,customRender:e=>{const a=e.record;return a.is_percent?`${a.amount}٪`:`${te(a.amount,!0,"")} تومان`}},{title:"استفاده",dataIndex:"usage_count",key:"usage_count",width:110,customRender:e=>{const a=e.record,o=a.usage_count??0,r=a.usage_limit;return r!=null?`${o} / ${r}`:`${o}`}},{title:"شروع",dataIndex:"start_date",key:"start_date",width:120,customRender:e=>U(e.record.start_date)},{title:"پایان",dataIndex:"end_date",key:"end_date",width:120,customRender:e=>U(e.record.end_date)},{title:"وضعیت",dataIndex:"active",key:"active",width:100,customRender:e=>i("div",{class:"flex justify-center"},[i(ee,{class:"px-3 font-bold py-1",textColor:e!=null&&e.record.active?"#65a30d":"#dc2626",bgColor:e!=null&&e.record.active?"#ecfccb":"#fee2e2"},{default:()=>[e!=null&&e.record.active?"فعال":"غیرفعال"]})])},{title:"عملیات",dataIndex:"action",key:"action",slot:"action",filterable:!1,align:"center"}];function ve(e){if(!e)return new Date().toISOString();const a=e.replace(/\//g,"-");return new Date(`${a}T00:00:00.000Z`).toISOString()}function ge(e){if(!e)return new Date().toISOString();const a=e.replace(/\//g,"-");return new Date(`${a}T23:59:59.999Z`).toISOString()}function we(e){return e?e.slice(0,10).replace(/-/g,"/"):""}function x(e,a,o,r=!0){var d;const l={title:((d=e.title)==null?void 0:d.trim())??"",code:(e.code??"").trim().toUpperCase(),amount:Number(e.amount??0),is_percent:e.is_percent??!0,active:e.active??!0,use_code:!0,type:"code",start_date:ve(a),end_date:ge(o)};return r&&(l.usage_limit=e.usage_limit==null?null:Number(e.usage_limit),l.user_usage_limit=e.user_usage_limit==null?null:Number(e.user_usage_limit)),l}function O(e){var a;return(e==null?void 0:e.code)==="PGRST204"||(((a=e==null?void 0:e.message)==null?void 0:a.includes("schema cache"))??!1)}async function V(e,a){let o=b.from("discounts").select("id").eq("code",e).eq("use_code",!0);a!=null&&(o=o.neq("id",a));const{data:r,error:l}=await o.maybeSingle();if(l)throw l;if(r!=null&&r.id)throw new Error("این کد تخفیف قبلاً ثبت شده است")}async function be(e){const{TableEngineShopRequest:a}=await ae(()=>import("./buildSupabaseQuery-2d496a2c.js"),["assets/buildSupabaseQuery-2d496a2c.js","assets/index-6d795230.js","assets/index-1d8b7a70.css","assets/supabaseTableQuery-95762ff3.js"]),o={...e,order:e.order??"-id",filters:[...e.filters??[],{field:"use_code",op:"eq",value:!0,hidden:!0}]};return a(o,"discounts")}async function he(e){const{data:a,error:o}=await b.from("discounts").select("*").eq("id",e).single();if(o)throw o;return a}async function ye(e,a,o){const r=x(e,a,o);if(!r.code||!r.title)throw new Error("عنوان و کد تخفیف الزامی است");if(Number(r.amount)<=0)throw new Error("مقدار تخفیف باید بیشتر از صفر باشد");await V(String(r.code));let l={...r,usage_count:0},{data:d,error:c}=await b.from("discounts").insert(l).select("*").single();if(O(c)&&(l=x(e,a,o,!1),{data:d,error:c}=await b.from("discounts").insert(l).select("*").single()),c)throw c;return d}async function ke(e,a,o,r){let l=x(a,o,r);if(!l.code||!l.title)throw new Error("عنوان و کد تخفیف الزامی است");if(Number(l.amount)<=0)throw new Error("مقدار تخفیف باید بیشتر از صفر باشد");await V(String(l.code),e);let{data:d,error:c}=await b.from("discounts").update(l).eq("id",e).select("*").single();if(O(c)&&(l=x(a,o,r,!1),{data:d,error:c}=await b.from("discounts").update(l).eq("id",e).select("*").single()),c)throw c;return d}async function xe(e){const{error:a}=await b.from("discounts").delete().eq("id",e).eq("use_code",!0);if(a)throw a}function N(e){return we(e)}const Ie={class:"flex justify-between items-center mb-4"},Se=y("h2",null,"کدهای تخفیف",-1),qe={class:"gap-2 flex justify-center"},De=y("span",null,"حذف",-1),Te=y("span",null,"ویرایش",-1),$e={key:0,class:"min-h-[280px]"},nt=ne({__name:"index",setup(e){const[a,o]=X(),r=p({columns:pe,api:be,defaultPageLimit:20}),l=p(!1),d=p(!1),c=p(null),v=p(!1),k=p(!1),g=p(""),w=p(""),n=ie({title:"",code:"",amount:10,is_percent:!0,active:!0,usage_limit:null,user_usage_limit:1});function T(){Object.assign(n,{title:"",code:"",amount:10,is_percent:!0,active:!0,usage_limit:null,user_usage_limit:1}),g.value="",w.value=""}function j(){T(),d.value=!1,c.value=null,v.value=!1,l.value=!0}function M(){l.value=!1,v.value=!1,k.value=!1}async function F(){var m,t;if(!(v.value||k.value)){if(!((m=n.title)!=null&&m.trim())||!((t=n.code)!=null&&t.trim())){f.warning("عنوان و کد تخفیف الزامی است");return}if(!g.value||!w.value){f.warning("تاریخ شروع و پایان را وارد کنید");return}if(!n.amount||n.amount<=0){f.warning("مقدار تخفیف باید بیشتر از صفر باشد");return}k.value=!0;try{d.value&&c.value!=null?(await ke(c.value,n,g.value,w.value),f.success("کد تخفیف با موفقیت ویرایش شد")):(await ye(n,g.value,w.value),f.success("کد تخفیف با موفقیت ایجاد شد")),l.value=!1,await o()}catch(h){f.error((h==null?void 0:h.message)||"خطا در ذخیره کد تخفیف")}finally{k.value=!1}}}async function L(m){if(m.id){T(),d.value=!0,c.value=m.id,l.value=!0,v.value=!0;try{const t=await he(m.id);n.title=t.title,n.code=t.code,n.amount=t.amount,n.is_percent=t.is_percent,n.active=t.active,n.usage_limit=t.usage_limit,n.user_usage_limit=t.user_usage_limit,g.value=N(t.start_date),w.value=N(t.end_date)}catch(t){l.value=!1,f.error((t==null?void 0:t.message)||"خطا در بارگذاری کد تخفیف")}finally{v.value=!1}}}function Z(m){se.confirm({title:"حذف کد تخفیف",content:`آیا از حذف کد «${m.code}» مطمئن هستید؟`,okText:"حذف",cancelText:"انصراف",okButtonProps:{danger:!0},async onOk(){try{await xe(m.id),f.success("کد تخفیف حذف شد"),await o()}catch(t){f.error((t==null?void 0:t.message)||"خطا در حذف کد تخفیف")}}})}return(m,t)=>{const h=Y,z=Q,$=re,_=me,C=ce,A=de,I=fe,G=ue,W=_e,J=K;return S(),B("div",null,[y("div",Ie,[Se,i(h,{type:"primary",onClick:j},{default:u(()=>[q("افزودن کد تخفیف")]),_:1})]),i(z,le(r.value,{ref:"table",onRegister:D(a)}),{action:u(({record:s})=>[y("div",qe,[i(D(P),{class:"cursor-pointer"},{title:u(()=>[De]),default:u(()=>[i(E,{icon:"vuesax-linear:trash",color:"#DC2626",onClick:H=>Z(s)},null,8,["onClick"])]),_:2},1024),i(D(P),{class:"cursor-pointer"},{title:u(()=>[Te]),default:u(()=>[i(E,{icon:"vuesax-linear:edit",color:"#1D4ED8",onClick:H=>L(s)},null,8,["onClick"])]),_:2},1024)])]),_:1},16,["onRegister"]),i(J,{visible:l.value,"onUpdate:visible":t[9]||(t[9]=s=>l.value=s),title:d.value?"ویرایش کد تخفیف":"افزودن کد تخفیف",loading:v.value,"destroy-on-close":"",onOk:F,onClose:M,width:"720px"},{default:u(()=>[v.value?(S(),B("div",$e)):(S(),oe(W,{key:1,layout:"vertical",class:"grid grid-cols-1 md:grid-cols-2 gap-3"},{default:u(()=>[i(_,{label:"عنوان",required:"",class:"md:col-span-2"},{default:u(()=>[i($,{value:n.title,"onUpdate:value":t[0]||(t[0]=s=>n.title=s),placeholder:"مثال: تخفیف نوروز"},null,8,["value"])]),_:1}),i(_,{label:"کد تخفیف",required:""},{default:u(()=>[i($,{value:n.code,"onUpdate:value":t[1]||(t[1]=s=>n.code=s),placeholder:"مثال: NOWRUZ1405",style:{"text-transform":"uppercase"}},null,8,["value"])]),_:1}),i(_,{label:"نوع تخفیف"},{default:u(()=>[i(A,{value:n.is_percent,"onUpdate:value":t[2]||(t[2]=s=>n.is_percent=s)},{default:u(()=>[i(C,{value:!0},{default:u(()=>[q("درصدی")]),_:1}),i(C,{value:!1},{default:u(()=>[q("مبلغی (تومان)")]),_:1})]),_:1},8,["value"])]),_:1}),i(_,{label:n.is_percent?"درصد تخفیف":"مبلغ تخفیف (تومان)",required:""},{default:u(()=>[i(I,{value:n.amount,"onUpdate:value":t[3]||(t[3]=s=>n.amount=s),style:{width:"100%"},min:1,max:n.is_percent?100:void 0,placeholder:"مقدار تخفیف"},null,8,["value","max"])]),_:1},8,["label"]),i(_,{label:"تاریخ شروع",required:""},{default:u(()=>[i(R,{value:g.value,"onUpdate:value":t[4]||(t[4]=s=>g.value=s)},null,8,["value"])]),_:1}),i(_,{label:"تاریخ پایان",required:""},{default:u(()=>[i(R,{value:w.value,"onUpdate:value":t[5]||(t[5]=s=>w.value=s)},null,8,["value"])]),_:1}),i(_,{label:"محدودیت کل استفاده"},{default:u(()=>[i(I,{value:n.usage_limit,"onUpdate:value":t[6]||(t[6]=s=>n.usage_limit=s),style:{width:"100%"},min:1,placeholder:"خالی = نامحدود"},null,8,["value"])]),_:1}),i(_,{label:"محدودیت استفاده هر کاربر"},{default:u(()=>[i(I,{value:n.user_usage_limit,"onUpdate:value":t[7]||(t[7]=s=>n.user_usage_limit=s),style:{width:"100%"},min:1,placeholder:"خالی = نامحدود"},null,8,["value"])]),_:1}),i(_,{label:"فعال"},{default:u(()=>[i(G,{checked:n.active,"onUpdate:checked":t[8]||(t[8]=s=>n.active=s)},null,8,["checked"])]),_:1})]),_:1}))]),_:1},8,["visible","title","loading"])])}}});export{nt as default};