Files
machartaa_admin_dist/dist/assets/index-fff6d591.js
T
2026-07-13 14:17:44 +03:30

2 lines
10 KiB
JavaScript

import{_ as Y}from"./BasicModal.vue_vue_type_style_index_0_lang-d3e2b6d9.js";import{_ as K,u as Q}from"./useBaseTable-2c12f999.js";import{_ as X}from"./button.vue_vue_type_style_index_0_lang-0f677bfc.js";import{I as E}from"./Icon-01a88edc.js";import{_ as R}from"./InputDatePicker.vue_vue_type_script_setup_true_lang-483530ca.js";import{t as U}from"./useDataTime-2e34f996.js";import{_ as ee}from"./CustomTag.vue_vue_type_script_setup_true_lang-979f842a.js";import{u as te}from"./usePrice-bc935b83.js";import{b as n,_ as ae,Y as b,d as ie,g as p,r as ne,o as S,c as B,a as y,w as u,e as q,j as D,H as le,i as oe,D as f}from"./index-25cd5b63.js";import{M as se,_ as ue}from"./index-b02fc407.js";import{I as re}from"./index-27d91bcb.js";import{R as ce,a as de}from"./index-e45ca121.js";import{_ as me,F as _e}from"./index-a77b6e96.js";import{I as fe}from"./index-1121396d.js";import{T as P}from"./isSymbol-77c00ba0.js";import"./index-517534fa.js";import"./vnode-f0cfc776.js";import"./_plugin-vue_export-helper-8d8742f4.js";import"./updateLocale-0fa6d737.js";import"./toArray-0e67c9de.js";import"./FormItemContext-98c099ed.js";import"./pickAttrs-e75df291.js";import"./useState-d0b157bd.js";import"./lodash-6b23de74.js";import"./css-19df7134.js";import"./DialogWrap-5bf5c8bc.js";import"./styleChecker-8ac93962.js";import"./isPlainObject-8b65ef77.js";import"./_flatRest-93154856.js";import"./Col-cf6eff58.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=>n("div",{class:"flex justify-center"},[n(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-5c162ca9.js"),["assets/buildSupabaseQuery-5c162ca9.js","assets/index-25cd5b63.js","assets/index-2b0c085a.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]"},ot=ie({__name:"index",setup(e){const[a,o]=Q(),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(""),i=ne({title:"",code:"",amount:10,is_percent:!0,active:!0,usage_limit:null,user_usage_limit:1});function T(){Object.assign(i,{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=i.title)!=null&&m.trim())||!((t=i.code)!=null&&t.trim())){f.warning("عنوان و کد تخفیف الزامی است");return}if(!g.value||!w.value){f.warning("تاریخ شروع و پایان را وارد کنید");return}if(!i.amount||i.amount<=0){f.warning("مقدار تخفیف باید بیشتر از صفر باشد");return}k.value=!0;try{d.value&&c.value!=null?(await ke(c.value,i,g.value,w.value),f.success("کد تخفیف با موفقیت ویرایش شد")):(await ye(i,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);i.title=t.title,i.code=t.code,i.amount=t.amount,i.is_percent=t.is_percent,i.active=t.active,i.usage_limit=t.usage_limit,i.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=X,z=K,$=re,_=me,C=ce,A=de,I=fe,G=ue,H=_e,J=Y;return S(),B("div",null,[y("div",Ie,[Se,n(h,{type:"primary",onClick:j},{default:u(()=>[q("افزودن کد تخفیف")]),_:1})]),n(z,le(r.value,{ref:"table",onRegister:D(a)}),{action:u(({record:s})=>[y("div",qe,[n(D(P),{class:"cursor-pointer"},{title:u(()=>[De]),default:u(()=>[n(E,{icon:"vuesax-linear:trash",color:"#DC2626",onClick:W=>Z(s)},null,8,["onClick"])]),_:2},1024),n(D(P),{class:"cursor-pointer"},{title:u(()=>[Te]),default:u(()=>[n(E,{icon:"vuesax-linear:edit",color:"#1D4ED8",onClick:W=>L(s)},null,8,["onClick"])]),_:2},1024)])]),_:1},16,["onRegister"]),n(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(H,{key:1,layout:"vertical",class:"grid grid-cols-1 md:grid-cols-2 gap-3"},{default:u(()=>[n(_,{label:"عنوان",required:"",class:"md:col-span-2"},{default:u(()=>[n($,{value:i.title,"onUpdate:value":t[0]||(t[0]=s=>i.title=s),placeholder:"مثال: تخفیف نوروز"},null,8,["value"])]),_:1}),n(_,{label:"کد تخفیف",required:""},{default:u(()=>[n($,{value:i.code,"onUpdate:value":t[1]||(t[1]=s=>i.code=s),placeholder:"مثال: NOWRUZ1405",style:{"text-transform":"uppercase"}},null,8,["value"])]),_:1}),n(_,{label:"نوع تخفیف"},{default:u(()=>[n(A,{value:i.is_percent,"onUpdate:value":t[2]||(t[2]=s=>i.is_percent=s)},{default:u(()=>[n(C,{value:!0},{default:u(()=>[q("درصدی")]),_:1}),n(C,{value:!1},{default:u(()=>[q("مبلغی (تومان)")]),_:1})]),_:1},8,["value"])]),_:1}),n(_,{label:i.is_percent?"درصد تخفیف":"مبلغ تخفیف (تومان)",required:""},{default:u(()=>[n(I,{value:i.amount,"onUpdate:value":t[3]||(t[3]=s=>i.amount=s),style:{width:"100%"},min:1,max:i.is_percent?100:void 0,placeholder:"مقدار تخفیف"},null,8,["value","max"])]),_:1},8,["label"]),n(_,{label:"تاریخ شروع",required:""},{default:u(()=>[n(R,{value:g.value,"onUpdate:value":t[4]||(t[4]=s=>g.value=s)},null,8,["value"])]),_:1}),n(_,{label:"تاریخ پایان",required:""},{default:u(()=>[n(R,{value:w.value,"onUpdate:value":t[5]||(t[5]=s=>w.value=s)},null,8,["value"])]),_:1}),n(_,{label:"محدودیت کل استفاده"},{default:u(()=>[n(I,{value:i.usage_limit,"onUpdate:value":t[6]||(t[6]=s=>i.usage_limit=s),style:{width:"100%"},min:1,placeholder:"خالی = نامحدود"},null,8,["value"])]),_:1}),n(_,{label:"محدودیت استفاده هر کاربر"},{default:u(()=>[n(I,{value:i.user_usage_limit,"onUpdate:value":t[7]||(t[7]=s=>i.user_usage_limit=s),style:{width:"100%"},min:1,placeholder:"خالی = نامحدود"},null,8,["value"])]),_:1}),n(_,{label:"فعال"},{default:u(()=>[n(G,{checked:i.active,"onUpdate:checked":t[8]||(t[8]=s=>i.active=s)},null,8,["checked"])]),_:1})]),_:1}))]),_:1},8,["visible","title","loading"])])}}});export{ot as default};