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
7.4 KiB
1 line
7.4 KiB
import{n as e}from"./axios-CiYFffbI.js";import{I as t,N as n,V as r,Y as i,_ as a,d as o,f as s,i as c,it as l,kt as u,nt as d,p as f,q as p,u as m,ut as h,v as g,y as _,z as v}from"./runtime-core.esm-bundler-CnFWH3R5.js";import{n as y}from"./http-LCi9aT1G.js";import{u as b}from"./index-uLgpWTLu.js";import{t as x}from"./listTableRowIndex-DDHXZmUA.js";import{n as S,t as C}from"./xlsx-BP_eUM5j.js";import{n as w,t as T}from"./datetime-L1FWbn-9.js";import{t as E}from"./bookingType-DH_-jZfh.js";import{t as D}from"./reservationStatus-Ctx9kE04.js";var O=[`抢票活动`,`场馆`,`姓名`,`身份证`,`入馆日`,`预约类型`,`票数`,`状态`,`下单时间`,`核销时间`,`核销 Token`];function k(e){let t=e.map(e=>({抢票活动:e.ticket_grab_event?.title??``,场馆:e.venue?.name??``,姓名:e.visitor_name??``,身份证:e.id_card??``,入馆日:e.entry_date?w(String(e.entry_date)):`-`,预约类型:E(e.booking_type,e.ticket_count),票数:e.ticket_count??1,状态:D(e.status),下单时间:T(e.created_at),核销时间:e.verified_at?T(String(e.verified_at)):`-`,"核销 Token":e.qr_token??``})),n=C.json_to_sheet(t,{header:[...O]}),r=C.book_new();C.book_append_sheet(r,n,`抢票报名`);let i=new Date;S(r,`抢票报名-${`${i.getFullYear()}-${String(i.getMonth()+1).padStart(2,`0`)}-${String(i.getDate()).padStart(2,`0`)}`}.xlsx`)}var A={style:{"font-family":`monospace`,"font-size":`12px`}},j=1680,M=b(_({__name:`TicketGrabRegistrations`,setup(_){let b=l(!1),S=l(`pending`),C=l(``),O=l(void 0),M=l([]),N=d({current:1,pageSize:10,total:0}),P=l([]),F=l([]),I=l(!1),L=l(null),R=l([]),z=l(void 0);function B(){return L.value?.full_admin_access===!0}async function V(){try{let{data:e}=await y.get(`/me`);L.value=e}catch{L.value=null}}async function H(){try{let{data:e}=await y.get(`/venues`);R.value=Array.isArray(e)?e:[]}catch{R.value=[]}}async function U(){try{let{data:e}=await y.get(`/ticket-grab-events/options`,{params:{limit:2e3}});F.value=e.data??[]}catch{F.value=[]}}function W(e,t){let n={reservation_kind:`ticket_grab`,ticket_grab_event_id:O.value||void 0,status:S.value,keyword:C.value||void 0,start_date:M.value?.[0]||void 0,end_date:M.value?.[1]||void 0,page:e,page_size:t};return B()&&z.value!=null&&z.value>0&&(n.venue_id=z.value),n}async function G(){b.value=!0;try{let{data:e}=await y.get(`/activity-registrations`,{params:W(N.current,N.pageSize)});P.value=e.data,N.total=e.total}catch(t){e.error(t?.response?.data?.message??`加载失败`)}finally{b.value=!1}}async function K(){if(!I.value){I.value=!0;try{let t=[],n=1,r=1/0;for(;t.length<r;){let{data:e}=await y.get(`/activity-registrations`,{params:W(n,200)}),i=e?.data??[];if(r=Number(e?.total??0),t.push(...i),i.length===0||i.length<200||(n+=1,n>1e3))break}if(t.length===0){e.warning(`没有可导出的数据`);return}k(t),e.success(`导出成功`)}catch(t){let n=t;e.error(n?.response?.data?.message??`导出失败`)}finally{I.value=!1}}}function q(e){N.current=e,G()}function J(e){N.pageSize=e,N.current=1,G()}function Y(e){let t=String(e?.status??``).trim();return t===`cancelled`||t===`expired`?`reg-row-inactive-cell`:void 0}function X(e){let t=String(e?.status??``).trim();return t===`cancelled`||t===`expired`?{backgroundColor:`var(--color-fill-2)`}:{}}return p(z,()=>{N.current=1,G()}),n(async()=>{await V(),await H(),await U(),await G()}),(e,n)=>{let l=r(`a-option`),d=r(`a-select`),p=r(`a-radio`),_=r(`a-radio-group`),y=r(`a-input`),k=r(`a-range-picker`),L=r(`a-button`),V=r(`a-space`),H=r(`a-table-column`),U=r(`a-tag`),W=r(`a-table`),Z=r(`a-card`);return t(),o(Z,{title:`抢票管理 / 抢票报名`,bordered:!1},{default:i(()=>[g(V,{direction:`vertical`,fill:``},{default:i(()=>[g(V,{wrap:``,size:12},{default:i(()=>[B()?(t(),o(d,{key:0,modelValue:z.value,"onUpdate:modelValue":n[0]||=e=>z.value=e,"allow-clear":``,"allow-search":``,placeholder:`搜索或选择场馆`,style:{width:`260px`}},{default:i(()=>[(t(!0),f(c,null,v(R.value,e=>(t(),o(l,{key:e.id,value:e.id},{default:i(()=>[a(u(e.name),1)]),_:2},1032,[`value`]))),128))]),_:1},8,[`modelValue`])):s(``,!0),g(d,{modelValue:O.value,"onUpdate:modelValue":n[1]||=e=>O.value=e,"allow-clear":``,placeholder:`抢票活动(全部)`,style:{width:`260px`},"allow-search":``,onChange:n[2]||=()=>{N.current=1,G()}},{default:i(()=>[(t(!0),f(c,null,v(F.value,e=>(t(),o(l,{key:e.id,value:e.id},{default:i(()=>[a(u(e.title),1)]),_:2},1032,[`value`]))),128))]),_:1},8,[`modelValue`]),g(_,{modelValue:S.value,"onUpdate:modelValue":n[3]||=e=>S.value=e,type:`button`,size:`small`,onChange:G},{default:i(()=>[g(p,{value:`all`},{default:i(()=>[...n[7]||=[a(`全部`,-1)]]),_:1}),g(p,{value:`pending`},{default:i(()=>[...n[8]||=[a(`待核销`,-1)]]),_:1}),g(p,{value:`verified`},{default:i(()=>[...n[9]||=[a(`已核销`,-1)]]),_:1}),g(p,{value:`cancelled`},{default:i(()=>[...n[10]||=[a(`已取消`,-1)]]),_:1}),g(p,{value:`expired`},{default:i(()=>[...n[11]||=[a(`已过期`,-1)]]),_:1})]),_:1},8,[`modelValue`]),g(y,{modelValue:C.value,"onUpdate:modelValue":n[4]||=e=>C.value=e,placeholder:`姓名 / 身份证 / token`,"allow-clear":``,style:{width:`220px`}},null,8,[`modelValue`]),g(k,{modelValue:M.value,"onUpdate:modelValue":n[5]||=e=>M.value=e,style:{width:`260px`}},null,8,[`modelValue`]),g(L,{type:`primary`,onClick:n[6]||=()=>{N.current=1,G()}},{default:i(()=>[...n[12]||=[a(` 查询 `,-1)]]),_:1}),g(L,{loading:I.value,onClick:K},{default:i(()=>[...n[13]||=[a(`导出`,-1)]]),_:1},8,[`loading`])]),_:1}),g(W,{class:`tg-registrations-table`,scroll:{x:j},data:P.value,loading:b.value,"row-key":`id`,pagination:{current:N.current,pageSize:N.pageSize,total:N.total,showTotal:!0,onChange:q,onPageSizeChange:J}},{columns:i(()=>[g(H,{title:``,width:50,ellipsis:!0,tooltip:!0,"body-cell-class":Y,"body-cell-style":X},{cell:i(({rowIndex:e})=>[a(u(h(x)(e,N.current,N.pageSize)),1)]),_:1}),g(H,{title:`抢票活动`,width:200,ellipsis:!0,tooltip:!0,"body-cell-class":Y,"body-cell-style":X},{cell:i(({record:e})=>[a(u(e.ticket_grab_event?.title??`-`),1)]),_:1}),g(H,{title:`场馆`,width:160,ellipsis:!0,tooltip:!0,"body-cell-class":Y,"body-cell-style":X},{cell:i(({record:e})=>[a(u(e.venue?.name??`-`),1)]),_:1}),g(H,{title:`姓名`,"data-index":`visitor_name`,width:100,"body-cell-class":Y,"body-cell-style":X}),g(H,{title:`身份证`,"data-index":`id_card`,width:180,ellipsis:!0,tooltip:!0,"body-cell-class":Y,"body-cell-style":X}),g(H,{title:`入馆日`,width:120,"body-cell-class":Y,"body-cell-style":X},{cell:i(({record:e})=>[a(u(e.entry_date?h(w)(String(e.entry_date)):`-`),1)]),_:1}),g(H,{title:`预约类型`,width:100,"body-cell-class":Y,"body-cell-style":X},{cell:i(({record:e})=>[a(u(h(E)(e.booking_type,e.ticket_count)),1)]),_:1}),g(H,{title:`票数`,width:80,"body-cell-class":Y,"body-cell-style":X},{cell:i(({record:e})=>[a(u(e.ticket_count??1),1)]),_:1}),g(H,{title:`状态`,width:100,"body-cell-class":Y,"body-cell-style":X},{cell:i(({record:e})=>[g(U,{color:e.status===`verified`?`green`:e.status===`pending`?`arcoblue`:`gray`},{default:i(()=>[a(u(h(D)(e.status)),1)]),_:2},1032,[`color`])]),_:1}),g(H,{title:`下单时间`,width:170,"body-cell-class":Y,"body-cell-style":X},{cell:i(({record:e})=>[a(u(h(T)(e.created_at)),1)]),_:1}),g(H,{title:`核销时间`,width:170,"body-cell-class":Y,"body-cell-style":X},{cell:i(({record:e})=>[a(u(e.verified_at?h(T)(String(e.verified_at)):`-`),1)]),_:1}),g(H,{title:`核销 Token`,width:220,ellipsis:!0,tooltip:!0,"body-cell-class":Y,"body-cell-style":X},{cell:i(({record:e})=>[m(`span`,A,u(e.qr_token),1)]),_:1})]),_:1},8,[`scroll`,`data`,`loading`,`pagination`])]),_:1})]),_:1})}}}),[[`__scopeId`,`data-v-69308b8b`]]);export{M as default}; |