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.

1 line
5.6 KiB

import{n as e}from"./axios-Cze8nXLL.js";import{At as t,I as n,N as r,V as i,X as a,_ as o,at as s,d as c,dt as l,u,v as d,y as f}from"./runtime-core.esm-bundler-CP0MNZrl.js";import{n as p,o as m}from"./index-qyPO_3-6.js";import{n as h,t as g}from"./datetime-3T8f3S0H.js";import{t as _}from"./listTable-DXuZ0yk8.js";import{t as v}from"./bookingType-CGtYk0HZ.js";import{t as y}from"./reservationStatus-DfEgE0qr.js";var b={class:`verify-list-toolbar`},x=m(f({__name:`Verify`,setup(f){let m=s(!1),x=s([]),S=s(``),C=s(!1);function w(e){if(!e)return`-`;let t=(e.time_range_text||``).trim();if(t)return t;let n=(e.session_name||``).trim();if(e.session_start_at&&e.session_end_at){let t=new Date(String(e.session_start_at).replace(` `,`T`)),r=new Date(String(e.session_end_at).replace(` `,`T`));if(Number.isNaN(t.getTime())||Number.isNaN(r.getTime()))return[n,e.activity_date?h(e.activity_date):``].filter(Boolean).join(` `);let i=t.getFullYear(),a=String(t.getMonth()+1).padStart(2,`0`),o=String(t.getDate()).padStart(2,`0`),s=e=>String(e).padStart(2,`0`),c=e=>`${s(e.getHours())}:${s(e.getMinutes())}`;if(t.toDateString()===r.toDateString()){let e=`${i}${a}${o}${c(t)}-${c(r)}`;return n?`${n} ${e}`:e}return[n,`${e.session_start_at} ~ ${e.session_end_at}`].filter(Boolean).join(` `)}return[n,e.activity_date?h(e.activity_date):``].filter(Boolean).join(` `)||`-`}let T=s(`all`),E=s(``),D=s([]);async function O(){m.value=!0;try{let{data:e}=await p.get(`/reservations`,{params:{status:T.value,keyword:E.value||void 0,start_date:D.value?.[0]||void 0,end_date:D.value?.[1]||void 0,reservation_kind:`activity`}});x.value=e}catch(t){e.error(t?.response?.data?.message??`加载预约列表失败`)}finally{m.value=!1}}function k(){O()}function A(){T.value=`all`,E.value=``,D.value=[],O()}async function j(){if(!S.value){e.warning(`请输入二维码 token`);return}C.value=!0;try{await p.post(`/reservations/verify`,{qr_token:S.value}),e.success(`核销成功`),S.value=``,await O()}catch(t){e.error(t?.response?.data?.message??`核销失败`)}finally{C.value=!1}}return r(O),(e,r)=>{let s=i(`a-alert`),f=i(`a-input`),p=i(`a-button`),h=i(`a-space`),M=i(`a-radio`),N=i(`a-radio-group`),P=i(`a-range-picker`),F=i(`a-table-column`),I=i(`a-tag`),L=i(`a-table`),R=i(`a-card`);return n(),c(R,{title:`活动管理 / 现场核销`},{default:a(()=>[d(h,{direction:`vertical`,fill:``},{default:a(()=>[d(s,null,{default:a(()=>[...r[4]||=[o(` 输入预约二维码 token 进行核销。场馆管理员仅可核销自己绑定场馆的预约。 `,-1)]]),_:1}),d(h,{wrap:``,size:12},{default:a(()=>[d(f,{modelValue:S.value,"onUpdate:modelValue":r[0]||=e=>S.value=e,style:{width:`min(100%, 420px)`},placeholder:`请输入二维码 token`,"allow-clear":``},null,8,[`modelValue`]),d(p,{type:`primary`,loading:C.value,onClick:j},{default:a(()=>[...r[5]||=[o(`立即核销`,-1)]]),_:1},8,[`loading`])]),_:1}),u(`div`,b,[d(h,{wrap:``,size:12},{default:a(()=>[d(N,{modelValue:T.value,"onUpdate:modelValue":r[1]||=e=>T.value=e,type:`button`,size:`small`,onChange:O},{default:a(()=>[d(M,{value:`all`},{default:a(()=>[...r[6]||=[o(`全部`,-1)]]),_:1}),d(M,{value:`pending`},{default:a(()=>[...r[7]||=[o(`待核销`,-1)]]),_:1}),d(M,{value:`verified`},{default:a(()=>[...r[8]||=[o(`已核销`,-1)]]),_:1}),d(M,{value:`cancelled`},{default:a(()=>[...r[9]||=[o(`已取消`,-1)]]),_:1}),d(M,{value:`expired`},{default:a(()=>[...r[10]||=[o(`已过期`,-1)]]),_:1})]),_:1},8,[`modelValue`]),d(f,{modelValue:E.value,"onUpdate:modelValue":r[2]||=e=>E.value=e,placeholder:`报名人/手机/token`,"allow-clear":``,style:{width:`220px`}},null,8,[`modelValue`]),d(P,{modelValue:D.value,"onUpdate:modelValue":r[3]||=e=>D.value=e,style:{width:`260px`}},null,8,[`modelValue`]),d(p,{type:`primary`,onClick:k},{default:a(()=>[...r[11]||=[o(`查询`,-1)]]),_:1}),d(p,{onClick:A},{default:a(()=>[...r[12]||=[o(`重置`,-1)]]),_:1}),d(p,{onClick:O},{default:a(()=>[...r[13]||=[o(`刷新列表`,-1)]]),_:1})]),_:1})]),d(L,{class:`list-data-table verify-table`,scroll:{x:l(_)},data:x.value,loading:m.value,"row-key":`id`,pagination:{pageSize:10,showTotal:!0}},{columns:a(()=>[d(F,{title:`ID`,"data-index":`id`,width:88}),d(F,{title:`活动`,width:240,"min-width":180,ellipsis:!0,tooltip:!0},{cell:a(({record:e})=>[o(t(e.activity?.title??`-`),1)]),_:1}),d(F,{title:`场馆`,width:200,"min-width":160,ellipsis:!0,tooltip:!0},{cell:a(({record:e})=>[o(t(e.venue?.name??`-`),1)]),_:1}),d(F,{title:`报名人`,"data-index":`visitor_name`,width:120,ellipsis:!0,tooltip:!0}),d(F,{title:`手机号`,"data-index":`visitor_phone`,width:130,ellipsis:!0,tooltip:!0}),d(F,{title:`预约类型`,width:100},{cell:a(({record:e})=>[o(t(l(v)(e.booking_type,e.ticket_count)),1)]),_:1}),d(F,{title:`预约场次`,width:160,ellipsis:!0,tooltip:!0},{cell:a(({record:e})=>[o(t((e.activity_day?.session_name||``).trim()||`-`),1)]),_:1}),d(F,{title:`场次时间`,width:220,"min-width":180,ellipsis:!0,tooltip:!0},{cell:a(({record:e})=>[o(t(w(e.activity_day)),1)]),_:1}),d(F,{title:`状态`,width:100},{cell:a(({record:e})=>[d(I,{color:e.status===`verified`?`green`:e.status===`pending`?`arcoblue`:e.status===`expired`?`orange`:`gray`},{default:a(()=>[o(t(l(y)(e.status)),1)]),_:2},1032,[`color`])]),_:1}),d(F,{title:`预约时间`,width:175,ellipsis:!0,tooltip:!0},{cell:a(({record:e})=>[o(t(l(g)(e.created_at)),1)]),_:1}),d(F,{title:`核销时间`,width:175,ellipsis:!0,tooltip:!0},{cell:a(({record:e})=>[o(t(l(g)(e.verified_at)),1)]),_:1}),d(F,{title:`二维码 token`,"data-index":`qr_token`,width:220,"min-width":180,ellipsis:!0,tooltip:!0,fixed:`right`,align:`left`})]),_:1},8,[`scroll`,`data`,`loading`])]),_:1})]),_:1})}}}),[[`__scopeId`,`data-v-4429045e`]]);export{x as default};