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.1 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 e,O as t,Q as n,S as r,T as i,W as a,Z as o,_t as s,ct as c,ht as l,in as u,k as d,q as f,st as p}from"./vue.runtime.esm-bundler-CACvpnko.js";import{h as m,m as h}from"./index-D5exsJys.js";import{n as g,r as _}from"./datetimeShanghai-F85iiY-2.js";import{c as v,i as y,r as b,u as x}from"./audience-sCSbyFK6.js";var S={class:`tracks-pane`},C={class:`pane-toolbar pane-toolbar--split`},w=d({__name:`AudienceSessionsPane`,props:{competitionId:{}},setup(d){let w=d,T=s(!1),E=s(!1),D=s([]),O=s(!1),k=s(null),A=l({code:``,name:``,name_en:``,event_date_text:``,event_date_text_en:``,address:``,address_en:``,capacity:100,signup_start_at:``,signup_end_at:``,is_final:!1,sort:10,enabled:!0});async function j(){T.value=!0;try{D.value=await v(w.competitionId)}catch(e){m.error(e instanceof Error?e.message:`加载观众场次失败`)}finally{T.value=!1}}function M(e){k.value=e?.id??null,A.code=e?.code??``,A.name=e?.name??``,A.name_en=e?.name_en??``,A.event_date_text=e?.event_date_text??``,A.event_date_text_en=e?.event_date_text_en??``,A.address=e?.address??``,A.address_en=e?.address_en??``,A.capacity=e?.capacity??100,A.signup_start_at=_(e?.signup_start_at),A.signup_end_at=_(e?.signup_end_at),A.is_final=e?.is_final??!1,A.sort=e?.sort??(D.value[D.value.length-1]?.sort??0)+10,A.enabled=e?.enabled??!0,O.value=!0}function N(){let e=g(A.signup_start_at),t=g(A.signup_end_at);if(!e||!t)throw Error(`请填写报名起止时间`);return{code:A.code.trim(),name:A.name.trim(),name_en:A.name_en.trim()||null,event_date_text:A.event_date_text.trim(),event_date_text_en:A.event_date_text_en.trim()||null,address:A.address.trim(),address_en:A.address_en.trim()||null,capacity:Number(A.capacity)||1,signup_start_at:e,signup_end_at:t,is_final:A.is_final,sort:Number(A.sort)||0,enabled:A.enabled}}async function P(){E.value=!0;try{let e=N();k.value?(await x(w.competitionId,k.value,e),m.success(`场次已更新`)):(await b(w.competitionId,e),m.success(`场次已创建`)),O.value=!1,await j()}catch(e){m.error(e instanceof Error?e.message:`保存失败`)}finally{E.value=!1}}async function F(e){try{await h.confirm(`确定删除场次「${e.name}」?已有报名的场次不能删除,可改为停用。`,`删除场次`,{type:`warning`})}catch{return}try{await y(w.competitionId,e.id),m.success(`已删除`),await j()}catch(e){m.error(e instanceof Error?e.message:`删除失败`)}}return a(()=>{j()}),(a,s)=>{let l=o(`el-button`),d=o(`el-table-column`),m=o(`el-table`),h=o(`el-input`),g=o(`el-form-item`),_=o(`el-input-number`),v=o(`el-date-picker`),y=o(`el-switch`),b=o(`el-form`),x=o(`el-dialog`),w=n(`loading`);return c((f(),i(`div`,S,[r(`div`,C,[s[17]||=r(`p`,{class:`form-hint pane-toolbar-tip`},` 配置观众可报名的路演/决赛场次、容量与报名窗口。已有报名的场次请停用,不要删除。 `,-1),t(l,{type:`primary`,onClick:s[0]||=e=>M()},{default:p(()=>[...s[16]||=[e(`新增场次`,-1)]]),_:1})]),t(m,{data:D.value,stripe:``,border:``,"empty-text":`暂无观众场次`,class:`workspace-table`},{default:p(()=>[t(d,{prop:`name`,label:`场次`,"min-width":`140`}),t(d,{prop:`code`,label:`编码`,"min-width":`140`,"show-overflow-tooltip":``}),t(d,{prop:`event_date_text`,label:`活动时间`,"min-width":`180`,"show-overflow-tooltip":``}),t(d,{prop:`address`,label:`地点`,"min-width":`180`,"show-overflow-tooltip":``}),t(d,{label:`名额`,width:`120`},{default:p(({row:t})=>[e(u(t.registered_count)+` / `+u(t.capacity),1)]),_:1}),t(d,{label:`已到场`,width:`100`},{default:p(({row:t})=>[e(u(t.checked_in_count??0)+` / `+u(t.registered_count),1)]),_:1}),t(d,{prop:`remaining`,label:`剩余`,width:`80`}),t(d,{prop:`status_label`,label:`状态`,width:`110`}),t(d,{label:`总决赛`,width:`80`},{default:p(({row:t})=>[e(u(t.is_final?`是`:`否`),1)]),_:1}),t(d,{prop:`sort`,label:`排序`,width:`80`}),t(d,{label:`启用`,width:`80`},{default:p(({row:t})=>[e(u(t.enabled?`是`:`否`),1)]),_:1}),t(d,{label:`操作`,width:`140`,fixed:`right`,align:`right`},{default:p(({row:n})=>[t(l,{link:``,type:`primary`,size:`small`,onClick:e=>M(n)},{default:p(()=>[...s[18]||=[e(`编辑`,-1)]]),_:1},8,[`onClick`]),t(l,{link:``,type:`danger`,size:`small`,onClick:e=>F(n)},{default:p(()=>[...s[19]||=[e(`删除`,-1)]]),_:1},8,[`onClick`])]),_:1})]),_:1},8,[`data`]),t(x,{modelValue:O.value,"onUpdate:modelValue":s[15]||=e=>O.value=e,title:k.value?`编辑场次`:`新增场次`,width:`640px`,"destroy-on-close":``,"align-center":``},{footer:p(()=>[t(l,{onClick:s[14]||=e=>O.value=!1},{default:p(()=>[...s[20]||=[e(`取消`,-1)]]),_:1}),t(l,{type:`primary`,loading:E.value,onClick:P},{default:p(()=>[...s[21]||=[e(`保存`,-1)]]),_:1},8,[`loading`])]),default:p(()=>[t(b,{"label-position":`top`},{default:p(()=>[t(g,{label:`场次名称`},{default:p(()=>[t(h,{modelValue:A.name,"onUpdate:modelValue":s[1]||=e=>A.name=e,autocomplete:`off`},null,8,[`modelValue`])]),_:1}),t(g,{label:`场次名称(英文)`},{default:p(()=>[t(h,{modelValue:A.name_en,"onUpdate:modelValue":s[2]||=e=>A.name_en=e,autocomplete:`off`},null,8,[`modelValue`])]),_:1}),t(g,{label:`场次编码`},{default:p(()=>[t(h,{modelValue:A.code,"onUpdate:modelValue":s[3]||=e=>A.code=e,autocomplete:`off`,disabled:!!k.value},null,8,[`modelValue`,`disabled`])]),_:1}),t(g,{label:`活动时间文案`},{default:p(()=>[t(h,{modelValue:A.event_date_text,"onUpdate:modelValue":s[4]||=e=>A.event_date_text=e,autocomplete:`off`,placeholder:`例如 2026年9月18日(星期五)`},null,8,[`modelValue`])]),_:1}),t(g,{label:`活动时间文案(英文)`},{default:p(()=>[t(h,{modelValue:A.event_date_text_en,"onUpdate:modelValue":s[5]||=e=>A.event_date_text_en=e,autocomplete:`off`},null,8,[`modelValue`])]),_:1}),t(g,{label:`活动地点`},{default:p(()=>[t(h,{modelValue:A.address,"onUpdate:modelValue":s[6]||=e=>A.address=e,autocomplete:`off`},null,8,[`modelValue`])]),_:1}),t(g,{label:`活动地点(英文)`},{default:p(()=>[t(h,{modelValue:A.address_en,"onUpdate:modelValue":s[7]||=e=>A.address_en=e,autocomplete:`off`},null,8,[`modelValue`])]),_:1}),t(g,{label:`容量`},{default:p(()=>[t(_,{modelValue:A.capacity,"onUpdate:modelValue":s[8]||=e=>A.capacity=e,min:1,max:1e5},null,8,[`modelValue`])]),_:1}),t(g,{label:`报名开始`},{default:p(()=>[t(v,{modelValue:A.signup_start_at,"onUpdate:modelValue":s[9]||=e=>A.signup_start_at=e,type:`datetime`,"value-format":`YYYY-MM-DD HH:mm:ss`,format:`YYYY-MM-DD HH:mm`,placeholder:`选择开始时间`,style:{width:`100%`}},null,8,[`modelValue`])]),_:1}),t(g,{label:`报名结束`},{default:p(()=>[t(v,{modelValue:A.signup_end_at,"onUpdate:modelValue":s[10]||=e=>A.signup_end_at=e,type:`datetime`,"value-format":`YYYY-MM-DD HH:mm:ss`,format:`YYYY-MM-DD HH:mm`,placeholder:`选择结束时间`,style:{width:`100%`}},null,8,[`modelValue`])]),_:1}),t(g,{label:`排序`},{default:p(()=>[t(_,{modelValue:A.sort,"onUpdate:modelValue":s[11]||=e=>A.sort=e,step:10},null,8,[`modelValue`])]),_:1}),t(g,{label:`总决赛样式`},{default:p(()=>[t(y,{modelValue:A.is_final,"onUpdate:modelValue":s[12]||=e=>A.is_final=e},null,8,[`modelValue`])]),_:1}),t(g,{label:`启用`},{default:p(()=>[t(y,{modelValue:A.enabled,"onUpdate:modelValue":s[13]||=e=>A.enabled=e},null,8,[`modelValue`])]),_:1})]),_:1})]),_:1},8,[`modelValue`,`title`])])),[[w,T.value]])}}});export{w as t};