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