4 lines
20 KiB
JavaScript
4 lines
20 KiB
JavaScript
import{_ as Ye}from"./BasicModal.vue_vue_type_style_index_0_lang-1ad0fa16.js";import{_ as Ge,u as He}from"./useBaseTable-bdecf611.js";import{_ as Je,B as Ke}from"./button.vue_vue_type_style_index_0_lang-f5bd4942.js";import{I as re}from"./Icon-b5c42a34.js";import{t as K}from"./useDataTime-9a659784.js";import{u as j}from"./usePrice-bc935b83.js";import{_ as ue}from"./CustomTag.vue_vue_type_script_setup_true_lang-d20bbd00.js";import{N as D,b as a,Z as Ze,I as V,d as Qe,g as v,r as ce,h as z,v as We,$ as Xe,o as w,c as $,a as m,w as n,e as c,j as N,G as et,F as J,t as _,i as P,k as R,n as de,a0 as _e,D as x}from"./index-1de9461e.js";import{c as tt}from"./products-7d1543ef.js";import{D as at,_ as lt,T as nt,a as ot}from"./index-7993a1f5.js";import{S as st}from"./index-52cb59f6.js";import{I as it,_ as rt}from"./index-5e4c5a75.js";import{b as ut,C as ct}from"./index-2ebc5026.js";import{_ as dt,F as _t}from"./index-57d8a5bc.js";import{S as ft}from"./fa_IR-d685ac61.js";import{T as fe}from"./shallowequal-10af2274.js";import{_ as pt}from"./index-23661918.js";import"./index-25b56c8c.js";import"./Col-1f5eceac.js";import"./vnode-b37b1d96.js";import"./_plugin-vue_export-helper-163b7167.js";import"./pickAttrs-7c9ec5a2.js";import"./FormItemContext-4f390352.js";import"./useState-1ccc2601.js";import"./lodash-6e822df9.js";import"./isPlainObject-272cc49f.js";import"./toArray-1ef5a130.js";const Z=[{title:"ثبت سفارش"},{title:"در حال آمادهسازی"},{title:"ارسال شده"},{title:"تحویل داده شده"},{title:"لغو شده"}],mt=[{value:"home",label:"پرداخت در محل"},{value:"zarinpall",label:"زرینپال"}];function pe(l){if(l.payment_sts===4||l.sts===2)return{label:"پرداخت موفق",color:"#16a34a",bg:"#dcfce7"};if(l.payment_type==="home")return{label:"پرداخت در محل",color:"#2563eb",bg:"#dbeafe"};switch(l.sts){case 1:return{label:"پرداخت نشده",color:"#ca8a04",bg:"#fef9c3"};case 3:return{label:"در انتظار پرداخت",color:"#dc2626",bg:"#fee2e2"};default:return{label:"نامشخص",color:"#6b7280",bg:"#f3f4f6"}}}const vt=async l=>{const s=await D.post("/order/all",l);return s!=null&&s.rows&&Array.isArray(s.rows)?s:Array.isArray(s)?{rows:s,query:{...l,total:s.length}}:{rows:[],query:{...l,total:0}}},yt=async l=>await D.post(`/order/${l}`),bt=async l=>await D.post("/order/admin/create",l),gt=async(l,s)=>await D.put(`/order/${l}/status`,s),ht=async()=>{try{return await D.get("/order/status-options")}catch{return Z}};function wt(l){return typeof l=="function"||Object.prototype.toString.call(l)==="[object Object]"&&!Ze(l)}const me={home:"پرداخت در محل",zarinpall:"زرینپال"};function xt(l){const s=l==null?void 0:l.user;if(!s)return"—";const d=[s.first_name,s.last_name].filter(Boolean).join(" ");return d||(s.name?s.name:s.phone??"—")}function kt(l){return{"ثبت سفارش":{color:"#2563eb",bg:"#dbeafe"},"در حال آمادهسازی":{color:"#7c3aed",bg:"#ede9fe"},"ارسال شده":{color:"#2563eb",bg:"#dbeafe"},"تحویل داده شده":{color:"#059669",bg:"#d1fae5"},"لغو شده":{color:"#6b7280",bg:"#f3f4f6"}}[l]??{color:"#374151",bg:"#f3f4f6"}}const Ct=[{title:"ردیف",dataIndex:"id",key:"row_index",filterable:!1,width:60,align:"center",customRender:l=>l.index+1},{title:"کد سفارش",dataIndex:"id",key:"id",width:90,align:"center"},{title:"مشتری",dataIndex:"user_id",key:"user_id",width:140,customRender:l=>xt(l.record)},{title:"تعداد اقلام",dataIndex:"total_qty",key:"total_qty",width:90,align:"center",customRender:l=>{var s;return l.record.total_qty??((s=l.record.order_items)==null?void 0:s.length)??0}},{title:"مبلغ کل",dataIndex:"total_price",key:"total_price",width:120,align:"center",customRender:l=>j(l.record.discount_total_price??l.record.total_price??0,!0,"")},{title:"تخفیف",dataIndex:"total_discounts",key:"total_discounts",width:100,align:"center",customRender:l=>j(l.record.total_discounts??0,!0,"")},{title:"نوع پرداخت",dataIndex:"payment_type",key:"payment_type",width:110,align:"c
|
||||
|
|
`);return await St(ve,s),ye()}function It(l){var d;return(((d=l.variant)==null?void 0:d.variant_attribute_values)??[]).map(S=>{var h,C,T,B,U,L,O,r;const b=(C=(h=S.attribute_values)==null?void 0:h.value)==null?void 0:C.trim();if(!b)return"";const k=((U=(B=(T=S.attribute_values)==null?void 0:T.attributes)==null?void 0:B.name)==null?void 0:U.trim())||((r=(O=(L=S.attribute_values)==null?void 0:L.attributes)==null?void 0:O.title)==null?void 0:r.trim());return k?`${k}: ${b}`:b}).filter(Boolean)}const qt={class:"flex justify-between items-center mb-4"},Tt=m("h2",null,"سفارشات",-1),Bt={class:"flex gap-2"},Ut={class:"gap-2 flex justify-center"},Lt=m("span",null,"جزئیات",-1),Nt=m("span",null,"تغییر وضعیت",-1),Pt={class:"ltr"},Rt=m("h3",{class:"font-bold mb-2"},"اقلام سفارش",-1),jt=m("h3",{class:"font-bold mt-4 mb-2"},"تاریخچه وضعیت سفارش",-1),Et={class:"font-bold"},$t={class:"text-gray-500 text-sm"},Dt=m("div",{class:"text-gray-400 text-xs mt-1"}," وضعیت پرداخت فقط از طریق درگاه زرینپال قابل تغییر است. ",-1),Mt={class:"col-span-2"},At={class:"flex justify-between items-center mb-2"},Ft=m("span",{class:"font-bold"},"محصولات",-1),zt={class:"col-span-2 flex justify-end"},Vt=m("div",{class:"text-gray-400 text-xs mt-1"}," با ثبت سفارش جدید با پرداخت موفق، به این شمارهها پیامک «سفارش جدید» ارسال میشود. پیامک تأیید پرداخت هم برای خود مشتری ارسال میشود. ",-1),ba=Qe({__name:"index",setup(l){const[s,d]=He(),S=v({columns:Ct,api:vt,defaultPageLimit:20}),b=v(!1),k=v(!1),h=v(!1),C=v(!1),T=v(!1),B=v(!1),U=v(!1),L=v(!1),O=v(""),r=v(null),M=v(null),Y=v(null),Q=v([]),W=v([]),X=v(Z),y=ce({title:"",cancel_reason:"",notify_user:!0}),u=ce({user_id:void 0,payment_type:"home",status_title:void 0,address:"",note:"",items:[{product_id:void 0,qty:1}]}),be=[{title:"محصول",dataIndex:"title",key:"title",customRender:({record:e})=>{var t,i;return e.title??((t=e.product)==null?void 0:t.title_fa)??((i=e.product)==null?void 0:i.title)??"—"}},{title:"تنوع انتخابی",key:"variant_attributes",customRender:({record:e})=>{const t=It(e);return t.length?_e("div",{class:"flex flex-wrap gap-1"},t.map((i,f)=>_e("span",{key:f,class:"inline-block px-2 py-0.5 text-xs rounded-full bg-gray-100 text-gray-600"},i))):"—"}},{title:"تعداد",dataIndex:"qty",key:"qty",width:80,align:"center"},{title:"قیمت واحد",dataIndex:"total_price",key:"unit_price",width:120,customRender:({record:e})=>{const t=e.qty||1,i=e.total_price??0;return j(Math.round(i/t),!0,"")}},{title:"جمع",dataIndex:"total_price",key:"total_price",width:120,customRender:({record:e})=>j(e.total_price??0,!0,"")}],ee=z(()=>X.value.map(e=>({value:e.title,label:e.title}))),ge=mt,he=z(()=>Q.value.map(e=>({value:e.id,label:[e.first_name,e.last_name].filter(Boolean).join(" ")||e.name||e.phone||e.id}))),we=z(()=>W.value.map(e=>({value:e.id,label:`${e.title_fa??e.title??e.id} — ${j(e.price??0,!0,"")}`}))),xe=z(()=>{var t;return[...((t=r.value)==null?void 0:t.orders_status)??[]].sort((i,f)=>new Date(f.created_at??0).getTime()-new Date(i.created_at??0).getTime())});function ke(e){const t=e==null?void 0:e.user;return t&&([t.first_name,t.last_name].filter(Boolean).join(" ")||t.name||t.phone)||"—"}function Ce(e){return e?me[e]??e:"—"}function te(e){return e?pe(e).label:"—"}function ae(e){return e?e.payment_sts===4||e.sts===2:!1}function le(e){return j(e??0,!0,"تومان")}function Se(e){if(!e)return"—";if(e.formatted_address)return e.formatted_address;const t=e.address;if(!t)return"—";if(typeof t=="string")return t||"—";if(t!=null&&t.payload){const i=t.payload;return[i.name,i.province,i.city,i.address,i.zip,i.phone].filter(Boolean).join(" - ")}return t.province||t.city||t.address?[t.name,t.province,t.city,t.address,t.zip,t.phone].filter(Boolean).join(" - "):"—"}function Oe(e,t){var i;return(i=t.label)==null?void 0:i.toLowerCase().includes(e.toLowerCase())}function Ie(e,t){
|
|||
|
|
`)}catch(e){x.error("خطا در دریافت تنظیمات: "+((e==null?void 0:e.message)??""))}}function ie(){C.value=!1}async function je(){L.value=!0;try{const e=O.value.split(/[\n,;]+/).map(t=>t.trim()).filter(Boolean);await Ot(e),x.success("تنظیمات پیامک ذخیره شد"),ie()}catch(e){x.error("خطا در ذخیره تنظیمات: "+((e==null?void 0:e.message)??""))}finally{L.value=!1}}return We(async()=>{try{const[e,t,i]=await Promise.all([Xe(),tt(),ht()]);Q.value=e??[],W.value=t??[],i!=null&&i.length&&(X.value=i)}catch(e){console.error("orders page init error:",e)}}),(e,t)=>{const i=Je,f=Ge,G=Ke,p=at,Ee=lt,$e=ut,De=ot,Me=nt,Ae=st,A=Ye,Fe=it,g=dt,E=ft,F=rt,ze=ct,H=_t,Ve=pt;return w(),$("div",null,[m("div",qt,[Tt,m("div",Bt,[a(i,{onClick:Re},{default:n(()=>[c("تنظیمات پیامک سفارش")]),_:1}),a(i,{type:"primary",onClick:Ue},{default:n(()=>[c("ثبت سفارش جدید")]),_:1})])]),a(f,et(S.value,{onRegister:N(s)}),{action:n(({record:o})=>[m("div",Ut,[a(N(fe),{class:"cursor-pointer"},{title:n(()=>[Lt]),default:n(()=>[a(re,{icon:"vuesax-linear:eye",color:"#1D4ED8",onClick:I=>qe(o)},null,8,["onClick"])]),_:2},1024),a(N(fe),{class:"cursor-pointer"},{title:n(()=>[Nt]),default:n(()=>[a(re,{icon:"vuesax-linear:refresh-circle",color:"#059669",onClick:I=>Te(o)},null,8,["onClick"])]),_:2},1024)])]),_:1},16,["onRegister"]),a(A,{visible:b.value,"onUpdate:visible":t[0]||(t[0]=o=>b.value=o),title:"جزئیات سفارش","custom-footer":"",width:"85%",onClose:ne},{footer:n(()=>[a(G,{onClick:ne},{default:n(()=>[c("بستن")]),_:1})]),default:n(()=>[a(Ae,{spinning:T.value},{default:n(()=>[r.value?(w(),$(J,{key:0},[a(Ee,{bordered:"",column:2,size:"small",class:"mb-4"},{default:n(()=>{var o,I;return[a(p,{label:"کد سفارش"},{default:n(()=>[c(_(r.value.id),1)]),_:1}),a(p,{label:"مشتری"},{default:n(()=>[c(_(ke(r.value)),1)]),_:1}),a(p,{label:"تلفن"},{default:n(()=>{var q;return[c(_(((q=r.value.user)==null?void 0:q.phone)??"—"),1)]}),_:1}),a(p,{label:"تاریخ ثبت"},{default:n(()=>[c(_(r.value.created_at?N(K)(r.value.created_at):"—"),1)]),_:1}),a(p,{label:"نوع پرداخت"},{default:n(()=>[c(_(Ce(r.value.payment_type)),1)]),_:1}),a(p,{label:"وضعیت پرداخت"},{default:n(()=>[c(_(te(r.value)),1)]),_:1}),ae(r.value)?(w(),P(p,{key:0,label:"شماره تراکنش"},{default:n(()=>[c(_(r.value.transaction_id??"—"),1)]),_:1})):R("",!0),ae(r.value)?(w(),P(p,{key:1,label:"کد پیگیری"},{default:n(()=>[m("span",Pt,_(r.value.track_number??"—"),1)]),_:1})):R("",!0),a(p,{label:"آخرین وضعیت سفارش"},{default:n(()=>[c(_(r.value.latest_status??"—"),1)]),_:1}),a(p,{label:"تعداد اقلام"},{default:n(()=>[c(_(r.value.total_qty??0),1)]),_:1}),a(p,{label:"مبلغ نهایی"},{default:n(()=>[c(_(le(r.value.discount_total_price??r.value.total_price)),1)]),_:1}),a(p,{label:"تخفیف"},{default:n(()=>[c(_(le(r.value.total_discounts)),1)]),_:1}),a(p,{label:"کد تخفیف"},{default:n(()=>[c(_(r.value.code||"—"),1)]),_:1}),a(p,{label:"آدرس تحویل",span:2},{default:n(()=>[c(_(Se(r.value)),1)]),_:1}),(I=(o=r.value.address_doc)==null?void 0:o.payload)!=null&&I.phone?(w(),P(p,{key:2,label:"تلفن گیرنده"},{default:n(()=>[c(_(r.value.address_doc.payload.phone),1)]),_:1})):R("",!0),a(p,{label:"یادداشت",span:2},{default:n(()=>[c(_(r.value.note||"—"),1)]),_:1}),r.value.cancel_reason?(w(),P(p,{key:3,label:"دلیل لغو",span:2},{default:n(()=>[c(_(r.value.cancel_reason),1)]),_:1})):R("",!0)]}),_:1}),Rt,a($e,{"data-source":r.value.order_items??[],columns:be,pagination:!1,size:"small","row-key":"id",bordered:""},null,8,["data-source"]),jt,a(Me,null,{default:n(()=>[(w(!0),$(J,null,de(xe.value,o=>(w(),P(De,{key:o.id??o.created_at},{default:n(()=>[m("div",Et,_(o.title),1),m("div",$t,_(o.created_at?N(K)(o.created_at):"—"),1)]),_:2},1024))),128))]),_:1})],64)):R("",!0)]),_:1},8,["spinning"])]),_:1},8,["visible"]),a(A,{visible:k.value,"onUpdate:visible":t[4]||(t[4]=o=>k.value=o),title:"تغییر وضعیت سفارش","ok-text":"ذخیر
|