1import{d as j,r as d,q as B,c as F,o as A,G as z,M as v,z as t,k as f,B as h,u as s,E as L,$ as G,A as l,y as w,J,X,D as g}from"./vendor-vue-Du3XgG1t.js";import{a as H,_ as k}from"./index-vdiu61JV.js";import{p as b}from"./payment-CfH8oUvm.js";import{a as C}from"./apiError-BPX0TiUA.js";import{_ as K}from"./AppLayout.vue_vue_type_script_setup_true_lang-DSSe9gAU.js";import{P as Q}from"./Pagination-Cg3fLPEx.js";import{_ as $}from"./BaseDialog.vue_vue_type_script_setup_true_lang-BlaBKy04.js";import{S as W}from"./Select-PST218IU.js";import{_ as Y}from"./OrderTable.vue_vue_type_script_setup_true_lang-C7N624PM.js";import{u as Z}from"./vendor-i18n-COBU4J1O.js";import"./vendor-misc-ZyyhI3Eu.js";/* empty css */import"./LocaleSwitcher-BcMujBZ0.js";/* empty css */import"./DataTable-B3SgCb1d.js";import"./OrderStatusBadge.vue_vue_type_script_setup_true_lang-gjcy1PEs.js";const ee={class:"space-y-4"},te={class:"card p-4"},ae={class:"flex flex-wrap items-center gap-3"},se={class:"flex flex-1 items-center justify-end gap-2"},ne=["disabled","title"],oe={class:"flex items-center gap-2"},le=["onClick"],re=["onClick"],ie={class:"text-sm text-gray-600 dark:text-gray-300"},ue={class:"flex justify-end gap-3"},de=["disabled"],ce={key:0,class:"space-y-4"},pe={class:"rounded-xl bg-gray-50 p-4 dark:bg-dark-800"},me={class:"flex justify-between text-sm"},fe={class:"text-gray-500 dark:text-gray-400"},ve={class:"font-mono text-gray-900 dark:text-white"},_e={class:"mt-2 flex justify-between text-sm"},ye={class:"text-gray-500 dark:text-gray-400"},ge={class:"text-gray-900 dark:text-white"},he={class:"input-label"},be=["placeholder"],xe={class:"flex justify-end gap-3"},we=["disabled"],je=j({__name:"UserOrdersView",setup(ke){const{t:e}=Z(),P=G(),_=H(),y=d(!1),u=d(!1),E=d([]),R=d(new Set),x=d(""),c=d(null),r=d(null),p=d(""),i=B({page:1,page_size:20,total:0}),D=F(()=>[{value:"",label:e("common.all")},{value:"PENDING",label:e("payment.status.pending")},{value:"COMPLETED",label:e("payment.status.completed")},{value:"FAILED",label:e("payment.status.failed")},{value:"REFUNDED",label:e("payment.status.refunded")}]);async function m(){y.value=!0;try{const a=await b.getMyOrders({page:i.page,page_size:i.page_size,status:x.value||void 0});E.value=a.data.items||[],i.total=a.data.total||0}catch(a){_.showError(C(a,e,"payment.errors",e("common.error")))}finally{y.value=!1}}function S(a){i.page=a,m()}function I(a){i.page_size=a,i.page=1,m()}function N(a){c.value=a}async function V(){if(c.value){u.value=!0;try{await b.cancelOrder(c.value),_.showSuccess(e("common.success")),c.value=null,await m()}catch(a){_.showError(C(a,e,"payment.errors",e("common.error")))}finally{u.value=!1}}}function M(a){r.value=a,p.value=""}async function q(){if(!(!r.value||!p.value.trim())){u.value=!0;try{await b.requestRefund(r.value.id,{reason:p.value.trim()}),_.showSuccess(e("common.success")),r.value=null,p.value="",await m()}catch(a){_.showError(C(a,e,"payment.errors",e("common.error")))}finally{u.value=!1}}}function O(a){return a.status!=="COMPLETED"||!a.provider_instance_id?!1:R.value.has(a.provider_instance_id)}async function T(){try{const a=await b.getRefundEligibleProviders();R.value=new Set(a.data.provider_instance_ids||[])}catch{}}return A(()=>{m(),T()}),(a,n)=>(g(),z(K,null,{default:v(()=>[t("div",ee,[t("div",te,[t("div",ae,[f(W,{modelValue:x.value,"onUpdate:modelValue":n[0]||(n[0]=o=>x.value=o),options:D.value,class:"w-36",onChange:m},null,8,["modelValue","options"]),t("div",se,[t("button",{onClick:m,disabled:y.value,class:"btn btn-secondary",title:s(e)("common.refresh")},[f(k,{name:"refresh",size:"md",class:L(y.value?"animate-spin":"")},null,8,["class"])],8,ne),t("button",{class:"btn btn-primary",onClick:n[1]||(n[1]=o=>s(P).push("/purchase"))},l(s(e)("payment.result.backToRecharge")),1)])])]),f(Y,{orders:E.value,loading:y.value},{actions:v(({row:o})=>[t("div",oe,[o.status==="PENDING"?(g(),w("button",{key:0,onClick:U=>N(o.id),class:"inline-flex items-center gap-1 rounded-md px-2 py-1 text-xs font-medium text-yellow-600 hover:bg-yellow-50 dark:text-yellow-400 dark:hover:bg-yellow-900/20"},[f(k,{name:"x",size:"sm"}),t("span",null,l(s(e)("payment.orders.cancel")),1)],8,le)):h("",!0),O(o)?(g(),w("button",{key:1,onClick:U=>M(o),class:"inline-flex items-center gap-1 rounded-md px-2 py-1 text-xs font-medium text-purple-600 hover:bg-purple-50 dark:text-purple-400 dark:hover:bg-purple-900/20"},[f(k,{name:"dollar",size:"sm"}),t("span",null,l(s(e)("payment.orders.requestRefund")),1)],8,re)):h("",!0)])]),_:1},8,["orders","loading"]),i.total>0?(g(),z(Q,{key:0,page:i.page,total:i.total,"page-size":i.page_size,"onUpdate:page":S,"onUpdate:pageSize":I},null,8,["page","total","page-size"])):h("",!0)]),f($,{show:!!c.value,title:s(e)("payment.orders.cancel"),width:"narrow",onClose:n[3]||(n[3]=o=>c.value=null)},{footer:v(()=>[t("div",ue,[t("button",{class:"btn btn-secondary",onClick:n[2]||(n[2]=o=>c.value=null)},l(s(e)("common.cancel")),1),t("button",{class:"btn btn-danger",disabled:u.value,onClick:V},l(u.value?s(e)("common.processing"):s(e)("payment.orders.cancel")),9,de)])]),default:v(()=>[t("p",ie,l(s(e)("payment.confirmCancel")),1)]),_:1},8,["show","title"]),f($,{show:!!r.value,title:s(e)("payment.orders.requestRefund"),onClose:n[6]||(n[6]=o=>r.value=null)},{footer:v(()=>[t("div",xe,[t("button",{class:"btn btn-secondary",onClick:n[5]||(n[5]=o=>r.value=null)},l(s(e)("common.cancel")),1),t("button",{class:"btn btn-primary",disabled:u.value||!p.value.trim(),onClick:q},l(u.value?s(e)("common.processing"):s(e)("payment.orders.requestRefund")),9,we)])]),default:v(()=>[r.value?(g(),w("div",ce,[t("div",pe,[t("div",me,[t("span",fe,l(s(e)("payment.orders.orderId")),1),t("span",ve,"#"+l(r.value.id),1)]),t("div",_e,[t("span",ye,l(s(e)("payment.orders.amount")),1),t("span",ge,"$"+l(r.value.amount.toFixed(2)),1)])]),t("div",null,[t("label",he,l(s(e)("payment.refundReason")),1),J(t("textarea",{"onUpdate:modelValue":n[4]||(n[4]=o=>p.value=o),rows:"3",class:"input mt-1 w-full",placeholder:s(e)("payment.refundReasonPlaceholder")},null,8,be),[[X,p.value]])])])):h("",!0)]),_:1},8,["show","title"])]),_:1}))}});
1export{je 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.