2 lines
3.9 KiB
JavaScript
2 lines
3.9 KiB
JavaScript
import{d as a,r as e,G as l,b as s,g as t,f as c,aB as o,az as r,c as n,w as u,j as _,k as i,a as d,P as f,o as y,l as h,m as p,q as v,t as m,x as b,F as g,y as w,z as k,v as C,aA as x,D as L,S as z,e as j,_ as I}from"./index-uBvBZpJK.js";import{l as T,g as V}from"./crypto.Ca71aBdf.js";const F=I(a({__name:"crypto",setup(a){const I=e(0),F=e(667),R=l(()=>{const a=I.value+d(232);return F.value-a+"px"}),$=e([]),q=e(""),A=e([{label:"热门",key:"hot"},{label:"涨幅榜",key:"gainers"},{label:"跌幅榜",key:"losers"},{label:"成交额",key:"volume"}]),B=e(0),D=l(()=>{let a=[...$.value];const e=q.value.trim().toLowerCase();return e&&(a=a.filter(a=>a.symbol.toLowerCase().includes(e)||a.name.toLowerCase().includes(e))),1===B.value?a.sort((a,e)=>e.change-a.change):2===B.value?a.sort((a,e)=>a.change-e.change):3===B.value?a.sort((a,e)=>e.priceRaw-a.priceRaw):a}),G=async()=>{console.log("[CryptoList] fetchTickers start");try{$.value=await V(),console.log("[CryptoList] fetchTickers ok count=>",$.value.length)}catch(a){console.error("[CryptoList] fetchTickers error=>",a),_({title:"行情加载失败",icon:"none"})}};let H=null;const M=()=>{H&&(clearInterval(H),H=null)};return s(()=>{t({success:a=>{F.value=a.windowHeight||667,I.value=0}}),T().then(G)}),c(()=>{M(),H=setInterval(G,3e4)}),o(()=>{M()}),r(()=>{M()}),(a,e)=>{const l=i,s=v,t=f("u-icon"),c=x,o=z;return y(),n(l,{class:"crypto-page"},{default:u(()=>[h(l,{class:"status-bar",style:p({height:I.value+"px"})},null,8,["style"]),h(l,{class:"navbar"},{default:u(()=>[h(s,{class:"navbar__title"},{default:u(()=>[m("加密行情")]),_:1})]),_:1}),h(l,{class:"market-tabs"},{default:u(()=>[(y(!0),b(g,null,w(A.value,(a,e)=>(y(),n(l,{key:e,class:k(["market-tab",{active:B.value===e}]),onClick:a=>(a=>{B.value=a})(e)},{default:u(()=>[h(s,null,{default:u(()=>[m(C(a.label),1)]),_:2},1024)]),_:2},1032,["class","onClick"]))),128)),h(l,{class:"market-tabs__search"},{default:u(()=>[h(t,{name:"search",size:"24",color:"#999"}),h(c,{class:"market-tabs__input",modelValue:q.value,"onUpdate:modelValue":e[0]||(e[0]=a=>q.value=a),placeholder:"搜索","placeholder-style":"color:#ccc","confirm-type":"search"},null,8,["modelValue"]),q.value?(y(),n(t,{key:0,name:"close-circle-fill",size:"28",color:"#ccc",onClick:e[1]||(e[1]=a=>q.value="")})):L("",!0)]),_:1})]),_:1}),h(l,{class:"list-header"},{default:u(()=>[h(s,{class:"list-header__col"},{default:u(()=>[m("名称")]),_:1}),h(s,{class:"list-header__col"},{default:u(()=>[m("最新价")]),_:1}),h(s,{class:"list-header__col"},{default:u(()=>[m("24h涨跌")]),_:1})]),_:1}),h(o,{"scroll-y":"",class:"coin-list",style:p({height:R.value})},{default:u(()=>[(y(!0),b(g,null,w(D.value,a=>(y(),n(l,{key:a.symbol,class:"coin-row",onClick:e=>(a=>{j({url:`/pages/crypto/crypto_detail?symbol=${a.symbol}`})})(a)},{default:u(()=>[h(l,{class:"coin-row__left"},{default:u(()=>[h(l,{class:"coin-row__logo",style:p({background:a.color+"18"})},{default:u(()=>[h(s,{class:"coin-row__logo-text",style:p({color:a.color})},{default:u(()=>[m(C(a.icon),1)]),_:2},1032,["style"])]),_:2},1032,["style"]),h(l,{class:"coin-row__name"},{default:u(()=>[h(s,{class:"coin-row__symbol"},{default:u(()=>[m(C(a.symbol),1)]),_:2},1024),h(s,{class:"coin-row__subtitle"},{default:u(()=>[m(C(a.name),1)]),_:2},1024)]),_:2},1024)]),_:2},1024),h(l,{class:"coin-row__price"},{default:u(()=>[h(s,{class:"coin-row__price-val"},{default:u(()=>[m("$"+C(a.price),1)]),_:2},1024),h(s,{class:"coin-row__mcap"},{default:u(()=>[m("市值"+C(a.mcap),1)]),_:2},1024)]),_:2},1024),h(l,{class:k(["coin-row__badge",a.change>=0?"up":"down"])},{default:u(()=>[h(s,{class:"coin-row__badge-arrow"},{default:u(()=>[m(C(a.change>=0?"▲":"▼"),1)]),_:2},1024),h(s,{class:"coin-row__badge-text"},{default:u(()=>[m(C(Math.abs(a.change).toFixed(2))+"%",1)]),_:2},1024)]),_:2},1032,["class"])]),_:2},1032,["onClick"]))),128))]),_:1},8,["style"])]),_:1})}}}),[["__scopeId","data-v-6b409d5e"]]);export{F as default};
|