You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2 lines
4.0 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

import{d as a,e,f as l,o as s,j as t,k as i,g as n,S as c,s as u,n as o,t as d,u as r,y as v,I as f,W as _,z as p,E as m,B as g,F as k,C as h,J as y,D as C,K as b,m as $}from"./index-BqJ4W6ZW.js";import{d as j,e as w}from"./content.B4VyUnMP.js";import{f as x,a as I}from"./datetime.DReAHQ1x.js";import{_ as V}from"./_plugin-vue_export-helper.BCo6x5W8.js";const T=V(a({__name:"orders",setup(a){const V=e(""),T=e([]),U=e(!1),z=e("all"),B=l(()=>"all"===z.value?T.value:T.value.filter(a=>a.status===z.value));function D(){return!!n(c.accessToken)}function E(a){return"pending"===a?"待核销":"verified"===a?"已核销":"cancelled"===a?"已取消":a||"-"}async function F(){const a=/^1\d{10}$/.test(V.value);if(a||D()){U.value=!0;try{T.value=await j(a?V.value:void 0)}catch(e){u({title:(null==e?void 0:e.message)||"加载失败",icon:"none"})}finally{U.value=!1}}else u({title:"请输入手机号,或先通过微信登录",icon:"none"})}return s(()=>{D()&&F()}),(a,e)=>{const l=o,s=f,n=_;return d(),t(l,{class:"page"},{default:i(()=>[r(l,{class:"card"},{default:i(()=>[r(l,{class:"title"},{default:i(()=>[v("我的活动预约")]),_:1}),r(l,{class:"sub"},{default:i(()=>[v("微信登录后自动展示绑定订单;也可输入预约手机号查询。")]),_:1}),r(l,{class:"row"},{default:i(()=>[r(s,{modelValue:V.value,"onUpdate:modelValue":e[0]||(e[0]=a=>V.value=a),class:"ipt",type:"number",maxlength:"11",placeholder:"预约手机号(可选,与登录二选一)"},null,8,["modelValue"]),r(n,{class:"btn",onClick:F},{default:i(()=>[v(p(U.value?"查询中":"查询"),1)]),_:1})]),_:1}),r(l,{class:"filters"},{default:i(()=>[r(l,{class:m(["chip",{active:"all"===z.value}]),onClick:e[1]||(e[1]=a=>z.value="all")},{default:i(()=>[v("全部")]),_:1},8,["class"]),r(l,{class:m(["chip",{active:"pending"===z.value}]),onClick:e[2]||(e[2]=a=>z.value="pending")},{default:i(()=>[v("待核销")]),_:1},8,["class"]),r(l,{class:m(["chip",{active:"verified"===z.value}]),onClick:e[3]||(e[3]=a=>z.value="verified")},{default:i(()=>[v("已核销")]),_:1},8,["class"]),r(l,{class:m(["chip",{active:"cancelled"===z.value}]),onClick:e[4]||(e[4]=a=>z.value="cancelled")},{default:i(()=>[v("已取消")]),_:1},8,["class"])]),_:1})]),_:1}),(d(!0),g(k,null,h(B.value,a=>(d(),t(l,{key:a.id,class:"order-card"},{default:i(()=>[r(l,{class:"order-top"},{default:i(()=>{return[r(l,{class:"t"},{default:i(()=>{var e;return[v(p((null==(e=a.activity)?void 0:e.title)||"-"),1)]}),_:2},1024),r(l,{class:m(["status",(e=a.status,"pending"===e?"pending":"verified"===e?"verified":"cancelled")])},{default:i(()=>[v(p(E(a.status)),1)]),_:2},1032,["class"])];var e}),_:2},1024),r(l,{class:"line"},{default:i(()=>{var e;return[v("订单信息:"+p(y(x)(null==(e=a.activity_day)?void 0:e.activity_date))+" "+p(a.ticket_count||1)+"人",1)]}),_:2},1024),r(l,{class:"line"},{default:i(()=>[v("联系人:"+p(a.visitor_name||"-")+" "+p(a.visitor_phone||"-"),1)]),_:2},1024),r(l,{class:"line"},{default:i(()=>[v("下单时间:"+p(y(I)(a.created_at)),1)]),_:2},1024),r(l,{class:"actions"},{default:i(()=>[r(n,{class:"btn-light mini",disabled:"pending"!==a.status,onClick:C(e=>async function(a){const e=/^1\d{10}$/.test(V.value);if(!e&&!D())return;if((await $({title:"确认取消预约",content:"取消后将释放该日期名额,是否继续?",confirmText:"确认取消",confirmColor:"#ff7d00"})).confirm)try{await w(a,e?V.value:void 0),u({title:"取消成功",icon:"success"}),await F()}catch(l){u({title:(null==l?void 0:l.message)||"取消失败",icon:"none"})}}(a.id),["stop"])},{default:i(()=>[v("取消")]),_:2},1032,["disabled","onClick"]),r(n,{class:"btn-main mini",onClick:C(e=>function(a){const e=/^1\d{10}$/.test(V.value);if(!e&&!D())return void u({title:"请输入手机号或先登录",icon:"none"});const l=e?`&phone=${encodeURIComponent(V.value)}`:"";b({url:`/pages/mine/reservation-detail?id=${a}${l}`})}(a.id),["stop"])},{default:i(()=>[v("查看详情")]),_:2},1032,["onClick"])]),_:2},1024)]),_:2},1024))),128))]),_:1})}}}),[["__scopeId","data-v-9e2851ab"]]);export{T as default};