|
|
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}; |