1import{d as z,b as D,a as E,o as F,c as d,e as t,t as s,f as r,L as _,F as b,r as T,j as I,v as u,m as x,l as P,w as f,i as g,B as L,q as o}from"./index-DyPC1qpB.js";import{a as M,c as j,b as q}from"./orders-e_ePaBbT.js";import{_ as U}from"./StatusBadge.vue_vue_type_script_setup_true_lang-D43V0KCR.js";import{_ as G}from"./LoadingSpinner.vue_vue_type_script_setup_true_lang-D_JSJ_V1.js";import{_ as H}from"./EmptyState.vue_vue_type_script_setup_true_lang-B3jk3kcx.js";import{_ as N}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-q4u7ro06.js";const J={class:"text-2xl font-bold text-gray-900 dark:text-gray-100 mb-6"},K={class:"text-lg font-semibold text-gray-900 dark:text-gray-100 mb-3"},Q={key:1,class:"card overflow-hidden !p-0 mb-8"},R={class:"w-full text-sm"},W={class:"text-left bg-gray-50 dark:bg-gray-700/50"},X={class:"px-4 py-3 font-medium text-gray-500 dark:text-gray-400"},Y={class:"px-4 py-3 font-medium text-gray-500 dark:text-gray-400"},Z={class:"px-4 py-3 font-medium text-gray-500 dark:text-gray-400"},tt={class:"px-4 py-3 font-medium text-gray-500 dark:text-gray-400"},et={class:"px-4 py-3"},at={class:"px-4 py-3 text-gray-600 dark:text-gray-300"},st={key:1},rt={class:"px-4 py-3 text-gray-900 dark:text-gray-100"},nt={class:"px-4 py-3 text-gray-500 dark:text-gray-400"},ot={class:"px-4 py-3 flex gap-2"},dt=["onClick"],lt=["onClick"],it={class:"text-lg font-semibold text-gray-900 dark:text-gray-100 mb-3"},ct={key:2,class:"card overflow-hidden !p-0"},mt={class:"w-full text-sm"},ut={class:"text-left bg-gray-50 dark:bg-gray-700/50"},xt={class:"px-4 py-3 font-medium text-gray-500 dark:text-gray-400"},yt={class:"px-4 py-3 font-medium text-gray-500 dark:text-gray-400"},_t={class:"px-4 py-3 font-medium text-gray-500 dark:text-gray-400"},ft={class:"px-4 py-3 font-medium text-gray-500 dark:text-gray-400"},gt={class:"px-4 py-3 font-medium text-gray-500 dark:text-gray-400"},pt={class:"px-4 py-3"},ht={class:"px-4 py-3 text-gray-600 dark:text-gray-300"},kt={key:1},vt={class:"px-4 py-3 text-gray-900 dark:text-gray-100"},bt={class:"px-4 py-3"},wt={class:"px-4 py-3 text-gray-500 dark:text-gray-400"},Vt=z({__name:"OrderConfirmView",setup(Ct){const{t:e,locale:B}=D(),m=E(),p=x([]),h=x(!0),l=x(null),c=x(null),w=x(!1),C=P(()=>p.value.filter(n=>n.status==="pending")),O=P(()=>p.value.filter(n=>n.status!=="pending"));F(async()=>{await k()});async function k(n=!0){n&&(h.value=!0);try{p.value=await M()??[]}catch(i){m.showToast("error",i.message)}finally{h.value=!1}}async function V(){if(l.value){w.value=!0;try{await j(l.value.id),m.showToast("success",e("admin.orders.confirmPayment")),l.value=null,await k(!1)}catch(n){m.showToast("error",n.message)}finally{w.value=!1}}}async function A(){if(c.value)try{await q(c.value.id),m.showToast("success",e("admin.orders.orderCancelled")),c.value=null,await k(!1)}catch(n){m.showToast("error",n.message)}}function v(n){return(n/100).toFixed(2)}function $(n){return new Date(n).toLocaleString(B.value==="zh-CN"?"zh-CN":"en-US")}return(n,i)=>{const y=L("router-link");return o(),d("div",null,[t("h1",J,s(r(e)("admin.orders.title")),1),h.value?(o(),_(G,{key:0,size:"lg"})):(o(),d(b,{key:1},[t("h2",K,s(r(e)("admin.orders.pendingOrders")),1),C.value.length?(o(),d("div",Q,[t("table",R,[t("thead",null,[t("tr",W,[t("th",X,s(r(e)("admin.orders.orderId")),1),t("th",Y,s(r(e)("admin.orders.userEmail")),1),t("th",Z,s(r(e)("admin.orders.amount")),1),t("th",tt,s(r(e)("admin.orders.createdAt")),1),i[2]||(i[2]=t("th",{class:"px-4 py-3 font-medium text-gray-500 dark:text-gray-400"},null,-1))])]),t("tbody",null,[(o(!0),d(b,null,T(C.value,a=>(o(),d("tr",{key:a.id,class:"border-t border-gray-100 dark:border-gray-700"},[t("td",et,[u(y,{to:{name:"admin-order-detail",params:{id:a.id}},class:"font-mono text-xs text-blue-600 dark:text-blue-400 hover:underline break-all"},{default:f(()=>[g(s(a.id),1)]),_:2},1032,["to"])]),t("td",at,[a.user_email?(o(),_(y,{key:0,to:`/admin/users/${a.user_id}`,class:"text-blue-600 dark:text-blue-400 hover:underline"},{default:f(()=>[g(s(a.user_email),1)]),_:2},1032,["to"])):(o(),d("span",st,"-"))]),t("td",rt,"$"+s(v(a.amount_cent)),1),t("td",nt,s($(a.created_at)),1),t("td",ot,[t("button",{class:"px-2 py-1 text-sm font-medium rounded text-blue-600 dar
1k:text-blue-400 hover:bg-blue-500/10",onClick:S=>l.value=a},s(r(e)("admin.orders.confirmPayment")),9,dt),t("button",{class:"px-2 py-1 text-sm font-medium rounded text-red-600 dark:text-red-400 hover:bg-red-500/10",onClick:S=>c.value=a},s(r(e)("admin.orders.cancelOrder")),9,lt)])]))),128))])])])):(o(),_(H,{key:0,title:r(e)("admin.orders.noPendingOrders")},null,8,["title"])),t("h2",it,s(r(e)("admin.orders.allOrders")),1),O.value.length?(o(),d("div",ct,[t("table",mt,[t("thead",null,[t("tr",ut,[t("th",xt,s(r(e)("admin.orders.orderId")),1),t("th",yt,s(r(e)("admin.orders.userEmail")),1),t("th",_t,s(r(e)("admin.orders.amount")),1),t("th",ft,s(r(e)("admin.orders.status")),1),t("th",gt,s(r(e)("admin.orders.createdAt")),1)])]),t("tbody",null,[(o(!0),d(b,null,T(O.value,a=>(o(),d("tr",{key:a.id,class:"border-t border-gray-100 dark:border-gray-700"},[t("td",pt,[u(y,{to:{name:"admin-order-detail",params:{id:a.id}},class:"font-mono text-xs text-blue-600 dark:text-blue-400 hover:underline break-all"},{default:f(()=>[g(s(a.id),1)]),_:2},1032,["to"])]),t("td",ht,[a.user_email?(o(),_(y,{key:0,to:`/admin/users/${a.user_id}`,class:"text-blue-600 dark:text-blue-400 hover:underline"},{default:f(()=>[g(s(a.user_email),1)]),_:2},1032,["to"])):(o(),d("span",kt,"-"))]),t("td",vt,"$"+s(v(a.amount_cent)),1),t("td",bt,[u(U,{status:a.status},null,8,["status"])]),t("td",wt,s($(a.created_at)),1)]))),128))])])])):I("",!0)],64)),u(N,{open:!!l.value,title:r(e)("admin.orders.confirmPaymentTitle"),message:l.value?r(e)("admin.orders.confirmPaymentMessage",{id:l.value.id.slice(0,8),amount:v(l.value.amount_cent)}):"","confirm-text":r(e)("admin.orders.confirmPayment"),onConfirm:V,onCancel:i[0]||(i[0]=a=>l.value=null)},null,8,["open","title","message","confirm-text"]),u(N,{open:!!c.value,title:r(e)("admin.orders.cancelOrder"),message:r(e)("admin.orders.cancelConfirm"),"confirm-text":r(e)("admin.orders.cancelOrder"),danger:!0,onConfirm:A,onCancel:i[1]||(i[1]=a=>c.value=null)},null,8,["open","title","message","confirm-text"])])}}});export{Vt as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.