index-CITb0x0C.js 14 KB

1
  1. import{_ as fe,$ as ge,a0 as ye,R as me,n as xe,Q as we,a1 as ke,J as be,j as De,a2 as Ae}from"./element-plus-BjmnhcWI.js";import{_ as ze,u as Ee,g as Se,c as se,m as Ie}from"./index-DXpf5QpP.js";/* empty css *//* empty css */import{aA as Te,r as O,c as $e,j as te,l as Oe,J as Le,a3 as Ne,n as Ce,L as h,P as n,M as v,O as b,H as u,F as D,ab as S,R as L,Z as p,X as k,V as j,I as B,u as g,Y as H,a9 as Be,Q as He,_ as M,ax as Ve,ay as Ke}from"./vue-vendor-C1ve1r-r.js";import{p as qe}from"./index-BSSNseP5.js";import{t as Q,p as F}from"./config-D_phJykt.js";/* empty css */const ae=V=>(Ve("data-v-dbc7731d"),V=V(),Ke(),V),Fe={class:"pc-sports-list-container"},Pe={class:"list-wrapper layout-column"},Re={key:0,class:"sticky-tabs"},Xe={class:"segmented-control-wrapper"},Je={class:"segmented-control"},We=["onClick"],Ue={class:"tab-text"},je={class:"right-content"},Me={class:"match-list-body"},Qe={class:"match-card-header"},Ye={class:"league-info"},Ze=ae(()=>n("div",{class:"decorate-bar"},null,-1)),Ge={class:"match-status-time"},es={class:"match-card-main"},ss={class:"match-teams"},ts={class:"team-row"},as={class:"team-info"},ds={class:"team-row mt-3"},os={class:"team-info"},ns={class:"match-odds-grids"},is={style:{display:"flex","justify-content":"center"}},ls={class:"market-values"},cs=["id"],rs={class:"match-card-header"},us={class:"league-info"},_s=ae(()=>n("div",{class:"decorate-bar"},null,-1)),hs=["title"],vs={key:3,style:{"font-size":"12px",color:"#999","margin-left":"10px"}},ps={class:"match-status-time"},fs={style:{"font-size":"13px",color:"#999"}},gs=["onClick"],ys={class:"match-teams"},ms={class:"team-row"},xs={style:{display:"flex","align-items":"center",gap:"6px"}},ws={class:"team-info"},ks=["title"],bs={class:"team-row mt-3"},Ds={style:{display:"flex","align-items":"center",gap:"6px"}},As={class:"team-info"},zs=["title"],Es={class:"match-odds-grids"},Ss=["title"],Is={key:0,class:"preview-pair-headers"},Ts={class:"preview-pair-item"},$s={class:"preview-pair-item"},Os={class:"preview-pair-item"},Ls={class:"preview-pair-item"},Ns={class:"preview-pair-item"},Cs={key:1,class:"preview-pair-headers"},Bs=["onClick"],Hs={key:0,class:"odds-name-wrapper"},Vs=["title"],Ks={key:1,class:"handicap-val"},qs={class:"odds-val-wrapper"},Fs={key:1,class:"odds-val"},Ps={key:1,class:"empty-odds-tip"},Rs={key:0,class:"empty-text"},Xs={key:1,class:"empty-text"},Js=Object.assign({name:"SportsBettingList"},{__name:"index",setup(V){const{t:A,locale:y}=Ee(),de=Te(),z=Se(),P=O(!0),x=O([]),oe=O(null),K=O({}),N=O(""),I=$e(()=>{const e=[],s=new Set;return x.value.forEach(t=>{if(t.game_time){const d=t.game_time.split(" ")[0];s.has(d)||(s.add(d),e.push(d))}}),e});te(I,e=>{e.length>0&&!N.value&&(N.value=e[0])});const Y=e=>{N.value=e;const s=x.value.find(t=>t.game_time&&t.game_time.split(" ")[0]===e);if(s){const t="match-"+(s.data_id||s.id),d=document.getElementById(t);d&&d.scrollIntoView({behavior:"smooth",block:"start"})}},ne=e=>{if(!e)return"";const[s,t,d]=e.split("-"),o=new Date(e.replace(/-/g,"/")),c=["周日","周一","周二","周三","周四","周五","周六"][o.getDay()],r=new Date;return r.getFullYear()===parseInt(s)&&r.getMonth()+1===parseInt(t)&&r.getDate()===parseInt(d)?A("今天"):`${t}/${d} ${A(c)}`},T=e=>{if(!e||!e.values)return!1;const s=e.values.some(o=>["Home","1"].includes(o.value)),t=e.values.some(o=>["Draw","X"].includes(o.value)),d=e.values.some(o=>["Away","2"].includes(o.value));return s&&t&&d},R=e=>{if(!e||!e.values)return["","",""];let s="",t="",d="";for(const o of e.values)!s&&["Home","1"].includes(o.value)?s=$(y.value==="zh"?o.value_text:o.value):!t&&["Draw","X"].includes(o.value)?t=$(y.value==="zh"?o.value_text:o.value):!d&&["Away","2"].includes(o.value)&&(d=$(y.value==="zh"?o.value_text:o.value));return[s,t,d]},X=(e,s)=>T(e)?["Home","1","Draw","X","Away","2"].includes(s):Z(e)&&F[s],J=(e,s,t)=>t.handicap!==null&&t.handicap!==void 0&&t.handicap!==""?`${e}_${s}_${t.value}_${t.handicap}`:`${e}_${s}_${t.value}`,W=e=>{if(!e||!e.values)return["",""];let s="",t="";for(const d of e.values)F[d.value]===1&&!s?s=$(y.value==="zh"?d.value_text:d.value):F[d.value]===2&&!t&&(t=$(y.value==="zh"?d.value_text:d.value));return[s,t]},Z=e=>{if(Q.includes(e.name_en)||T(e))return!1;const s=W(e);return!!(s[0]||s[1])},ie=(e,s)=>{if(!s)return[];if(Q.includes(e.name_en))return s;if(T(e)){const c=[],r=[],w=[],a=[];s.forEach(f=>{["Home","1"].includes(f.value)?c.push(f):["Draw","X"].includes(f.value)?r.push(f):["Away","2"].includes(f.value)?w.push(f):a.push(f)});let m=[];const l=Math.max(c.length,r.length,w.length);for(let f=0;f<l;f++)c[f]&&m.push(c[f]),r[f]&&m.push(r[f]),w[f]&&m.push(w[f]);return m.concat(a)}const t=[],d=[],o=[];s.forEach(c=>{const r=F[c.value];r===1?t.push(c):r===2?d.push(c):o.push(c)});let i=[];if(t.length>0||d.length>0){const c=Math.max(t.length,d.length);for(let r=0;r<c;r++)t[r]&&i.push(t[r]),d[r]&&i.push(d[r]);i=i.concat(o)}else i=[...s];return i},le=e=>{const s=ie(e,e.values);return Q.includes(e.name_en)||T(e)?s.slice(0,3):s.slice(0,2)},C=O(new Map),E=(e,s,t)=>t.handicap!==null&&t.handicap!==void 0&&t.handicap!==""?`${e}_${s}_${t.value}_${t.handicap}`:`${e}_${s}_${t.value}`,q=e=>{const s=C.value.get(e);return(s==null?void 0:s.direction)==="up"&&Date.now()-s.timestamp<3e3},ce=e=>{const s=C.value.get(e);return(s==null?void 0:s.direction)==="down"&&Date.now()-s.timestamp<3e3},re=e=>{const s=C.value.get(e);return!!s&&Date.now()-s.timestamp<3e3},G=e=>{const s=e.detail;!s||s.type!=="sport_list"||!Array.isArray(s.message)||s.message.forEach(t=>{if(t.league_id!==1)return;const d=x.value.findIndex(o=>o.data_id===t.data_id);if(d!==-1){const o=x.value[d];t.odds&&Array.isArray(t.odds)&&o.odds&&Array.isArray(o.odds)&&t.odds.forEach(i=>{const c=o.odds.find(r=>r.id===i.id);c&&c.values&&i.values&&i.values.forEach(r=>{const w=c.values.find(a=>a.value===r.value&&(a.handicap===r.handicap||!a.handicap&&!r.handicap));if(w&&w.odd&&r.odd){const a=parseFloat(w.odd),m=parseFloat(r.odd);if(!isNaN(a)&&!isNaN(m)&&a!==m){const l=E(o.id,i.id,r),f=m>a?"up":"down";C.value.set(l,{direction:f,timestamp:Date.now()});let _=setTimeout(()=>{C.value.delete(l),clearTimeout(_)},3100)}}})}),t.odds.forEach(i=>{t.odd_ids_locked&&Array.isArray(t.odd_ids_locked)&&t.odd_ids_locked.find(c=>i.id===c)&&(i.is_findLocked=!0)}),x.value[d]={...x.value[d],...t},typeof z.updateMatchStatus=="function"&&z.updateMatchStatus(t.data_id,t)}else if(t.status===void 0||Number(t.status)===1){let i={...t};if(typeof i.odds=="string")try{i.odds=JSON.parse(i.odds)}catch{i.odds=[]}i.odds&&Array.isArray(i.odds)&&i.odds.forEach(c=>{i.odd_ids_locked&&Array.isArray(i.odd_ids_locked)&&i.odd_ids_locked.find(r=>c.id===r)&&(c.is_findLocked=!0)}),x.value.push(i),x.value.sort((c,r)=>{const w=c.game_time?new Date(c.game_time.replace(/-/g,"/")).getTime():0,a=r.game_time?new Date(r.game_time.replace(/-/g,"/")).getTime():0;return w-a})}})};Oe(()=>{U(),ue(),se.eventBus.addEventListener("onSocketMessage",G)}),Le(()=>{U()}),Ne(()=>{se.eventBus.removeEventListener("onSocketMessage",G)});async function ue(){var e;P.value=!0,x.value=[];try{const s=await Ie();if(s&&s.code===1&&s.data&&s.data.list&&s.data.list.length>0){const t=s.data.list.map(o=>{if(typeof o.odds=="string")try{o.odds=JSON.parse(o.odds)}catch{o.odds=[]}return o.odds&&Array.isArray(o.odds)&&o.odds.forEach(i=>{o.odd_ids_locked&&Array.isArray(o.odd_ids_locked)&&o.odd_ids_locked.find(c=>i.id===c)&&(i.is_findLocked=!0)}),o});x.value=t;const d=(e=s.data.extend)==null?void 0:e.date;Ce(()=>{if(d&&I.value.length>0){const o=x.value.find(i=>i.state===0&&i.game_time?i.game_time.split(" ")[0]>=d:!1);if(o){const i=o.game_time.split(" ")[0];N.value=i;const c="match-"+(o.data_id||o.id),r=document.getElementById(c);r&&r.scrollIntoView({behavior:"smooth",block:"start"})}else{const i=I.value[I.value.length-1];Y(i)}}})}}catch(s){console.error(s)}finally{P.value=!1}}const _e=e=>{de.push({name:"SportDetail",query:{data_id:e.data_id}})},ee=(e,s)=>!e||e==="-"?"0":e.split("-")[s]||"0",$=e=>e==null?"":String(e),U=()=>{const e={};z.selectOrders&&z.selectOrders.length&&z.selectOrders.forEach(s=>{s.uniqueKey&&(e[s.uniqueKey]=!0)}),K.value=e};te(()=>z.selectOrders,()=>{U()},{deep:!0,immediate:!0});const he=(e,s,t)=>{const d=J(e,s,t);return!!K.value[d]},ve=(e,s,t)=>{if(e.state!==0&&e.state!==1||e.is_locked||s.is_findLocked||!t||!t.odd||t.odd==="-"||t.suspended)return;const d=J(e.id,s.id,t);if(K.value[d])z.removeOrderItemByKey(d);else{const o={matchId:e.id,data_id:e.data_id,league:e.league,league_en:e.league_en,homeTeam:e.home_team,home_team_en:e.home_team_en,guestTeam:e.guest_team,guest_team_en:e.guest_team_en,betType:s.name,betTypeEn:s.name_en,betTypeName:t.value_text,betTypeNameEn:t.value,handicap:t.handicap,handicap_text:t.handicap_text,odds:t.odd,score:e.score,state:e.state,uniqueKey:d,optionValue:t.value,marketId:s.id,selection:{...t}};z.addOrderItem(o),s.values&&s.values.forEach(i=>{const c=J(e.id,s.id,i);K.value[c]&&c!==d&&z.removeOrderItemByKey(c)})}};return(e,s)=>{const t=fe,d=Ae,o=ye,i=me,c=xe,r=De,w=ge;return u(),h("div",Fe,[n("div",Pe,[I.value.length>0?(u(),h("div",Re,[v(t,null,{default:b(()=>[n("div",Xe,[n("div",Je,[(u(!0),h(D,null,S(I.value,(a,m)=>(u(),h("div",{class:L(["segmented-item",{"is-active":N.value===a}]),key:m,onClick:l=>Y(a)},[n("span",Ue,p(ne(a)),1)],10,We))),128))])])]),_:1})])):k("",!0),n("div",je,[n("div",Me,[v(t,{height:"100%",ref_key:"scrollbarRef",ref:oe},{default:b(()=>[v(w,{loading:P.value,animated:""},{template:b(()=>[(u(),h(D,null,S(5,a=>n("div",{class:"match-card",key:a},[n("div",Qe,[n("div",Ye,[Ze,v(d,{variant:"circle",style:{width:"16px",height:"16px","margin-right":"6px"}}),v(d,{variant:"text",style:{width:"80px"}})]),n("div",Ge,[v(d,{variant:"text",style:{width:"40px","margin-right":"8px"}}),v(d,{variant:"text",style:{width:"100px"}})])]),n("div",es,[n("div",ss,[n("div",ts,[n("div",as,[v(d,{variant:"circle",style:{width:"18px",height:"18px"}}),v(d,{variant:"text",style:{width:"60px","margin-left":"6px"}})]),v(d,{variant:"text",style:{width:"20px"}})]),n("div",ds,[n("div",os,[v(d,{variant:"circle",style:{width:"18px",height:"18px"}}),v(d,{variant:"text",style:{width:"80px","margin-left":"6px"}})]),v(d,{variant:"text",style:{width:"20px"}})])]),n("div",ns,[(u(),h(D,null,S(3,m=>n("div",{class:"market-col",key:m},[n("div",is,[v(d,{variant:"text",style:{width:"60px","margin-bottom":"4px"}})]),n("div",ls,[(u(),h(D,null,S(3,l=>v(d,{variant:"button",class:"odds-btn",style:{border:"none"},key:l})),64))])])),64))])])])),64))]),default:b(()=>[n("div",null,[(u(!0),h(D,null,S(x.value,a=>{var m;return j((u(),h("div",{class:"match-card",key:a.data_id||a.id,id:"match-"+(a.data_id||a.id)},[n("div",rs,[n("div",us,[_s,a.league_logo?(u(),B(o,{key:0,src:a.league_logo,size:16,style:{"margin-right":"6px","background-color":"transparent"}},null,8,["src"])):k("",!0),n("span",{class:"league-name",title:g(y)==="zh"?a.league:a.league_en},p(g(y)==="zh"?a.league:a.league_en),9,hs),a.state===1&&a.fixture_status?(u(),B(i,{key:1,style:{"margin-left":"10px"},size:"small"},{default:b(()=>{var l;return[H(p(g(A)((l=a.fixture_status)==null?void 0:l.long)),1)]}),_:2},1024)):k("",!0),a.is_roll===1?(u(),B(i,{key:2,style:{"margin-left":"10px"}},{default:b(()=>[H(p(g(A)("滚球")),1)]),_:1})):k("",!0),a.state===1?(u(),h("span",vs,[a.fixture_status?(u(),h(D,{key:0},[H(p((m=a.fixture_status)==null?void 0:m.seconds),1)],64)):k("",!0)])):k("",!0)]),n("div",ps,[n("span",fs,p(a.game_time||"--:--"),1)])]),n("div",{class:"match-card-main",onClick:l=>_e(a)},[n("div",ys,[n("div",ms,[n("div",xs,[n("div",ws,[v(o,{src:a.home_team_logo,size:24,class:"team-logo"},null,8,["src"]),n("span",{class:"team-name",title:g(y)==="zh"?a.home_team:a.home_team_en},p(g(y)==="zh"?a.home_team:a.home_team_en),9,ks)]),v(i,{size:"small",type:"success"},{default:b(()=>[H(p(g(A)("主")),1)]),_:1})]),a.state!==0?(u(),h("span",{key:0,class:L(["team-score",{"text-live":a.state===1}])},p(ee(a.score,0)),3)):k("",!0)]),n("div",bs,[n("div",Ds,[n("div",As,[v(o,{src:a.guest_team_logo,size:24,class:"team-logo"},null,8,["src"]),n("span",{class:"team-name",title:g(y)==="zh"?a.guest_team:a.guest_team_en},p(g(y)==="zh"?a.guest_team:a.guest_team_en),9,zs)]),v(i,{size:"small",type:"danger"},{default:b(()=>[H(p(g(A)("客")),1)]),_:1})]),a.state!==0?(u(),h("span",{key:0,class:L(["team-score",{"text-live":a.state===1}])},p(ee(a.score,1)),3)):k("",!0)])]),n("div",Es,[[0,1].includes(a.state)&&a.odds&&a.odds.length>0?(u(!0),h(D,{key:0},S(a.odds.slice(0,3),(l,f)=>(u(),h("div",{class:"market-col",key:l.id},[n("div",{class:"market-name",title:g(y)==="zh"?l.name:l.name_en},p(g(y)==="zh"?l.name:l.name_en),9,Ss),Z(l)||T(l)?(u(),h("div",Is,[T(l)?(u(),h(D,{key:0},[n("div",Ts,p(R(l)[0]),1),n("div",$s,p(R(l)[1]),1),n("div",Os,p(R(l)[2]),1)],64)):(u(),h(D,{key:1},[n("div",Ls,p(W(l)[0]),1),n("div",Ns,p(W(l)[1]),1)],64))])):(u(),h("div",Cs)),n("div",{class:L(["market-values",f>0?"market-values-border-left":""])},[(u(!0),h(D,null,S(le(l),(_,pe)=>(u(),h("div",{class:L(["odds-btn",{"is-locked":a.is_locked||_.suspended||!_.odd||l.is_findLocked,"is-active":he(a.id,l.id,_),"odds-up":q(E(a.id,l.id,_)),"odds-down":ce(E(a.id,l.id,_)),"is-centered-odds":X(l,_.value)&&!_.handicap_text}]),key:pe,style:He({flexDirection:!_.odd||_.suspended||a.is_locked||l.is_findLocked?"column":"row"}),onClick:Be(Ws=>ve(a,l,_),["stop"])},[!X(l,_.value)||_.handicap_text?(u(),h("div",Hs,[X(l,_.value)?k("",!0):(u(),h("span",{key:0,class:"selection-name",style:{"margin-right":"4px"},title:g(y)==="zh"?_.value_text:_.value},p($(g(y)==="zh"?_.value_text:_.value)),9,Vs)),_.handicap_text?(u(),h("span",Ks,p(_.handicap_text),1)):k("",!0)])):k("",!0),n("div",qs,[!_.odd||_.suspended||a.is_locked||l.is_findLocked?(u(),B(c,{key:0,class:"lock-icon"},{default:b(()=>[v(g(we))]),_:1})):(u(),h("span",Fs,[n("span",null,p(_.odd||_.odd===0?_.odd:"-"),1),re(E(a.id,l.id,_))?(u(),h("span",{key:0,class:L(["change-icon",q(E(a.id,l.id,_))?"up":"down"])},[j(v(c,null,{default:b(()=>[v(g(ke))]),_:2},1536),[[M,q(E(a.id,l.id,_))]]),j(v(c,null,{default:b(()=>[v(g(be))]),_:2},1536),[[M,!q(E(a.id,l.id,_))]])],2)):k("",!0)]))])],14,Bs))),128))],2)]))),128)):(u(),h("div",Ps,[a.state!==2?(u(),h("span",Rs,p(g(A)("暂无盘口数据")),1)):(u(),h("span",Xs,p(g(A)("已完场")),1))]))])],8,gs)],8,cs)),[[M,a.league_id===1]])}),128)),x.value.length===0?(u(),B(r,{key:0,description:g(A)("暂无赛事数据")},null,8,["description"])):k("",!0)])]),_:1},8,["loading"])]),_:1},512)])])]),v(qe)])}}}),st=ze(Js,[["__scopeId","data-v-dbc7731d"]]);export{st as default};