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.
2 lines
2.8 KiB
2 lines
2.8 KiB
function n(n){if(!n)return"";const t=new Date(String(n));return Number.isNaN(t.getTime())?String(n).slice(0,10):new Intl.DateTimeFormat("en-CA",{timeZone:"Asia/Shanghai",year:"numeric",month:"2-digit",day:"2-digit"}).format(t)}function t(){return new Intl.DateTimeFormat("en-CA",{timeZone:"Asia/Shanghai",year:"numeric",month:"2-digit",day:"2-digit"}).format(new Date)}function e(n,t){return n&&t?n<t?-1:n>t?1:0:0}function i(i,r){const o=t(),u=n(i),d=n(r);return u||d?u&&!d?e(o,u)<0?"not_started":"ongoing":!u&&d?e(o,d)>0?"ended":"ongoing":e(o,u)<0?"not_started":e(o,d)>0?"ended":"ongoing":"ongoing"}function r(n){return"not_started"===n?"未开始":"ended"===n?"已结束":"进行中"}function o(e){if(!e)return!1;const i=n(e);if(!i)return!1;return i<t()}function u(t,e){const i=t=>{if(!t)return null;const e=String(t).trim();if(/^\d{4}-\d{2}-\d{2}$/.test(e)){const n=e.split("-").map(Number);if(3!==n.length)return null;const[t,i,r]=n;return Number.isFinite(t)&&Number.isFinite(i)&&Number.isFinite(r)?{y:t,m:i,d:r}:null}const i=n(e);if(!i)return null;const r=i.split("-").map(Number);if(3!==r.length)return null;const[o,u,d]=r;return Number.isFinite(o)&&Number.isFinite(u)&&Number.isFinite(d)?{y:o,m:u,d:d}:null},r=i(t),o=i(e);return r||o?r&&!o?`${r.y}年${r.m}月${r.d}日`:!r&&o?`${o.y}年${o.m}月${o.d}日`:r&&o?r.y===o.y&&r.m===o.m&&r.d===o.d?`${r.y}年${r.m}月${r.d}日`:r.y===o.y?`${r.y}年${r.m}月${r.d}日至${o.m}月${o.d}日`:`${r.y}年${r.m}月${r.d}日至${o.y}年${o.m}月${o.d}日`:"日期待定":"日期待定"}const d="online";function l(n){const t=String((null==n?void 0:n.reservation_type)??d).trim();return""===t||t===d}function s(n){const t=null==n?void 0:n.schedule_status;return"not_started"===t||"ongoing"===t||"ended"===t?t:i(null==n?void 0:n.start_at,null==n?void 0:n.end_at)}function a(n){if("ticket_grab"===(null==n?void 0:n.list_kind))return null;const t=s(n),e=Math.max(0,Number(null==n?void 0:n.registered_count)||0);if(l(n))return"ended"===t?e>0?{text:`已报名${e}人`,kind:"brand"}:null:!0===(null==n?void 0:n.is_bookable)?{text:e>0?`已报名${e}人`:"可预约",kind:"brand"}:e>0?{text:`已报名${e}人`,kind:"brand"}:null;const i="paid"===String((null==n?void 0:n.offline_reservation_method)??"").trim();return{text:i?"科普研学":"无需预约",kind:i?"accent":"muted"}}function m(n){if("ticket_grab"===(null==n?void 0:n.list_kind))return o(null==n?void 0:n.end_at)?{show:!1,text:""}:!0===(null==n?void 0:n.is_bookable)?{show:!0,text:"立即抢票"}:{show:!1,text:""};if(!l(n))return{show:!1,text:""};return"ended"===s(n)||o(null==n?void 0:n.end_at)?{show:!1,text:""}:!0===(null==n?void 0:n.is_bookable)?{show:!0,text:"立即预约"}:!0===(null==n?void 0:n.all_slots_full)?{show:!0,text:"预约已满",muted:!0}:!0===(null==n?void 0:n.booking_closed_not_full)?{show:!0,text:"截止预约",muted:!0}:{show:!1,text:""}}export{a,r as b,i as c,m as d,u as f};
|