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.8 KiB
1 line
5.8 KiB
import{I as e,N as t,V as n,Y as r,_ as i,d as a,it as o,kt as s,nt as c,u as l,ut as u,v as d,y as f}from"./runtime-core.esm-bundler-CnFWH3R5.js";import{t as p}from"./message-Dh9377vh.js";import{n as m}from"./http-BWP--XXK.js";import{a as h}from"./index-D-AZ5ijJ.js";import{n as g,t as _}from"./datetime-CjmbUMhc.js";import{t as v}from"./listTableRowIndex-ekx2Z6yT.js";import{t as y}from"./bookingType-sDQIPutU.js";import{t as b}from"./reservationStatus-DPnogIlu.js";var x={class:`verify-list-toolbar`},S=1920,C=h(f({__name:`Verify`,setup(f){let h=o(!1),C=o([]),w=o(``),T=o(!1);function E(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?g(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?g(e.activity_date):``].filter(Boolean).join(` `)||`-`}let D=o(`all`),O=o(``),k=o([]),A=c({current:1,pageSize:10});async function j(){h.value=!0;try{let{data:e}=await m.get(`/reservations`,{params:{status:D.value,keyword:O.value||void 0,start_date:k.value?.[0]||void 0,end_date:k.value?.[1]||void 0,reservation_kind:`activity`}});C.value=e,A.current=1}catch(e){p.error(e?.response?.data?.message??`加载预约列表失败`)}finally{h.value=!1}}function M(){j()}function N(){D.value=`all`,O.value=``,k.value=[],j()}async function P(){if(!w.value){p.warning(`请输入二维码 token`);return}T.value=!0;try{await m.post(`/reservations/verify`,{qr_token:w.value}),p.success(`核销成功`),w.value=``,await j()}catch(e){p.error(e?.response?.data?.message??`核销失败`)}finally{T.value=!1}}return t(j),(t,o)=>{let c=n(`a-alert`),f=n(`a-input`),p=n(`a-button`),m=n(`a-space`),g=n(`a-radio`),F=n(`a-radio-group`),I=n(`a-range-picker`),L=n(`a-table-column`),R=n(`a-tag`),z=n(`a-table`),B=n(`a-card`);return e(),a(B,{title:`活动管理 / 现场核销`},{default:r(()=>[d(m,{direction:`vertical`,fill:``},{default:r(()=>[d(c,null,{default:r(()=>[...o[5]||=[i(` 输入预约二维码 token 进行核销。场馆管理员仅可核销自己绑定场馆的预约。 `,-1)]]),_:1}),d(m,{wrap:``,size:12},{default:r(()=>[d(f,{modelValue:w.value,"onUpdate:modelValue":o[0]||=e=>w.value=e,style:{width:`min(100%, 420px)`},placeholder:`请输入二维码 token`,"allow-clear":``},null,8,[`modelValue`]),d(p,{type:`primary`,loading:T.value,onClick:P},{default:r(()=>[...o[6]||=[i(`立即核销`,-1)]]),_:1},8,[`loading`])]),_:1}),l(`div`,x,[d(m,{wrap:``,size:12},{default:r(()=>[d(F,{modelValue:D.value,"onUpdate:modelValue":o[1]||=e=>D.value=e,type:`button`,size:`small`,onChange:j},{default:r(()=>[d(g,{value:`all`},{default:r(()=>[...o[7]||=[i(`全部`,-1)]]),_:1}),d(g,{value:`pending`},{default:r(()=>[...o[8]||=[i(`待核销`,-1)]]),_:1}),d(g,{value:`verified`},{default:r(()=>[...o[9]||=[i(`已核销`,-1)]]),_:1}),d(g,{value:`cancelled`},{default:r(()=>[...o[10]||=[i(`已取消`,-1)]]),_:1}),d(g,{value:`expired`},{default:r(()=>[...o[11]||=[i(`已过期`,-1)]]),_:1})]),_:1},8,[`modelValue`]),d(f,{modelValue:O.value,"onUpdate:modelValue":o[2]||=e=>O.value=e,placeholder:`报名人/手机/token`,"allow-clear":``,style:{width:`220px`}},null,8,[`modelValue`]),d(I,{modelValue:k.value,"onUpdate:modelValue":o[3]||=e=>k.value=e,style:{width:`260px`}},null,8,[`modelValue`]),d(p,{type:`primary`,onClick:M},{default:r(()=>[...o[12]||=[i(`查询`,-1)]]),_:1}),d(p,{onClick:N},{default:r(()=>[...o[13]||=[i(`重置`,-1)]]),_:1}),d(p,{onClick:j},{default:r(()=>[...o[14]||=[i(`刷新列表`,-1)]]),_:1})]),_:1})]),d(z,{class:`list-data-table verify-table`,scroll:{x:S},data:C.value,loading:h.value,"row-key":`id`,pagination:{current:A.current,pageSize:A.pageSize,total:C.value.length,showTotal:!0},onPageChange:o[4]||=e=>A.current=e},{columns:r(()=>[d(L,{title:``,width:50,ellipsis:!0,tooltip:!0},{cell:r(({rowIndex:e})=>[i(s(u(v)(e,A.current,A.pageSize)),1)]),_:1}),d(L,{title:`活动`,width:240,"min-width":180,ellipsis:!0,tooltip:!0},{cell:r(({record:e})=>[i(s(e.activity?.title??`-`),1)]),_:1}),d(L,{title:`场馆`,width:200,"min-width":160,ellipsis:!0,tooltip:!0},{cell:r(({record:e})=>[i(s(e.venue?.name??`-`),1)]),_:1}),d(L,{title:`报名人`,"data-index":`visitor_name`,width:120,ellipsis:!0,tooltip:!0}),d(L,{title:`手机号`,"data-index":`visitor_phone`,width:130,ellipsis:!0,tooltip:!0}),d(L,{title:`预约类型`,width:100},{cell:r(({record:e})=>[i(s(u(y)(e.booking_type,e.ticket_count)),1)]),_:1}),d(L,{title:`预约场次`,width:160,ellipsis:!0,tooltip:!0},{cell:r(({record:e})=>[i(s((e.activity_day?.session_name||``).trim()||`-`),1)]),_:1}),d(L,{title:`场次时间`,width:220,"min-width":180,ellipsis:!0,tooltip:!0},{cell:r(({record:e})=>[i(s(E(e.activity_day)),1)]),_:1}),d(L,{title:`状态`,width:100},{cell:r(({record:e})=>[d(R,{color:e.status===`verified`?`green`:e.status===`pending`?`arcoblue`:e.status===`expired`?`orange`:`gray`},{default:r(()=>[i(s(u(b)(e.status)),1)]),_:2},1032,[`color`])]),_:1}),d(L,{title:`预约时间`,width:175,ellipsis:!0,tooltip:!0},{cell:r(({record:e})=>[i(s(u(_)(e.created_at)),1)]),_:1}),d(L,{title:`核销时间`,width:175,ellipsis:!0,tooltip:!0},{cell:r(({record:e})=>[i(s(u(_)(e.verified_at)),1)]),_:1}),d(L,{title:`二维码 token`,"data-index":`qr_token`,width:220,"min-width":180,ellipsis:!0,tooltip:!0,fixed:`right`,align:`left`})]),_:1},8,[`scroll`,`data`,`loading`,`pagination`])]),_:1})]),_:1})}}}),[[`__scopeId`,`data-v-0aa96f70`]]);export{C as default}; |