PageSourceSearch

https://www.100ex.ai/assets/home-Lnopwf6Q.js

js 100ex.ai collected 2026-10-05 11:46:43 UTC 11,776 bytes, 1 lines download raw bytes

1import{u as ot}from"./useIsDesktop-B4-CwEy6.js";import{l as Y,a4 as ut,c as it,H as i,I as r,k as T,P as L,J as t,u as n,F as w,B as m,N as l,M as h,A as rt,_ as dt,y as U,$ as mt,t as vt,a2 as ct,r as c,f}from"./vendor-BB0pBhfa.js";import{G as bt,l as _t,j as pt,m as yt,k as gt,n as ht}from"./gyb-D2fZ_zTT.js";import{r as ft,_ as Z}from"./index-DWVZku9D.js";import{G as kt,f as _,D as x,n as wt,b as Q,d as xt}from"./gyb-format-DFouztiV.js";import{_ as Dt}from"./GybSheet.vue_vue_type_script_setup_true_lang-D2NDJkeu.js";import{c as X}from"./gyb-symbols-B9DKkLhG.js";import{l as G,O as St}from"./gyb-types-WIqKACpW.js";import{D as d}from"./decimal-CaUHonIL.js";import"./lodash-rBtdimoK.js";import"./vant-06ie2Nec.js";const Nt={class:"gyb-proto home","data-testid":"gyb-home"},Ct={class:"card home-hero","data-testid":"gyb-home-hero"},Pt={class:"num home-val","data-testid":"gyb-home-hold"},$t={key:0,class:"home-note","data-testid":"gyb-home-nousd"},Ot={class:"home-row"},Rt={class:"num home-sub home-sub--green"},It={class:"num home-sub"},Ut={class:"lvflow"},At={class:"lvnow"},Bt={key:0,class:"lvmax"},Et={class:"lvnext"},Ft={class:"lvpct"},Mt={class:"num"},Gt={class:"pbar home-pbar"},Tt={class:"home-progress"},Vt={class:"nav3 home-nav"},qt={key:1,class:"empty empty--err","data-testid":"gyb-home-error"},Ht={class:"prod-top"},zt={class:"nm"},Wt={class:"prod-rate"},jt={class:"r"},Jt=["onClick"],Kt={class:"prod-meta"},Lt={key:0,class:"note red"},Qt={key:3,class:"empty","data-testid":"gyb-home-empty"},Xt={class:"note vi","data-testid":"gyb-home-sub-done"},Yt={class:"sub-head"},Zt={class:"sub-name"},te={class:"sub-meta"},ee={class:"sub-rate"},se={class:"sub-rate-main"},ae={class:"num sub-rate-num"},le={class:"chip"},ne={class:"amt"},oe=["placeholder"],ue={class:"u"},ie={class:"sub-limits"},re={class:"card sub-card"},de={class:"kv"},me={class:"num sum-green","data-testid":"gyb-home-sub-estimate"},ve={class:"kv"},ce={class:"num","data-testid":"gyb-home-sub-fee"},be={key:0,class:"note red","data-testid":"gyb-home-sub-error"},_e=["disabled"],pe=Y({__name:"HomePage",setup(tt){const k=ut(),C=c([]),p=c([]),P=c(0),b=c(null),A=c({}),B=c(!0),$=c(""),E=f(()=>p.value.length>0&&p.value.every(a=>a.principal_usd!=="")),et=f(()=>E.value?Q(p.value.map(a=>a.principal_usd)):""),V=f(()=>p.value.length>0&&p.value.every(a=>a.paid_interest_usd!=="")?Q(p.value.map(a=>a.paid_interest_usd)):"");function O(a){if(!a)return 0;try{return Math.min(100,Math.max(0,new d(a).mul(100).toNumber()))}catch{return 0}}function F(a,e=3){if(!a)return x;try{return new d(a).mul(100).toDecimalPlaces(e,d.ROUND_DOWN).toString()+"%"}catch{return x}}const o=c(null),y=c(""),g=c(!1),q=c(""),R=c(!1),D=c(""),S=c(null),I=f(()=>{var a;return xt(A.value,(a=o.value)==null?void 0:a.token_name)}),M=f(()=>{const a=o.value,e=y.value.trim();if(!a||!e)return!1;try{const v=new d(e);return!(!v.isPositive()||a.min_amount&&v.lessThan(new d(a.min_amount))||a.max_amount&&v.greaterThan(new d(a.max_amount)))}catch{return!1}}),H=f(()=>{const a=o.value,e=y.value.trim();if(!a||!e||!M.value)return"";try{return new d(e).mul(new d(a.month_rate||0)).toDecimalPlaces(Number(a.amount_decimals??4),d.ROUND_DOWN).toString()}catch{return""}}),z=f(()=>{const a=o.value,e=y.value.trim();if(!a||!e||!M.value)return"";try{return new d(e).mul(new d(a.fee_rate||0)).toDecimalPlaces(Number(a.amount_decimals??4),d.ROUND_DOWN).toString()}catch{return""}}),W=f(()=>!o.value||R.value||!g.value?!1:M.value);function st(a){o.value=a,y.value="",g.value=!1,D.value="",S.value=null,q.value=wt()}function at(){const a=o.value,e=I.value;if(!(!a||e===null))try{const v=a.max_amount?d.min(new d(e),new d(a.max_amount)):new d(e);y.value=v.toString()}catch{y.value=e}}async function lt(){var e,v;const a=o.value;if(!(!a||!W.value)){R.value=!0,D.value="";try{const u=await _t({product_id:a.id,amount:y.value.trim(),request_id:q.value,risk_acknowledged:g.value});S.value={order_no:String(((e=u==null?void 0:u.data)==null?void 0:e.order_no)??""),principal:String(((v=u==null?void 0:u.data)==null?void 0:v.principal)??"")},await nt()}catch(u){D.value=(u==null?void 0:u.msg)||(u==null?void 0:u.message)||"申购失败"}finally{R.value=!1}}}async function j(){var a,e,v,u;B.value=!0,$.value="";try{const s=await pt();C.value=((a=s==null?void 0:s.data)==null?void 0:a.products)??[]}catch(s){$.value=(s==null?void 0:s.msg)||(s==null?void 0:s.message)||"加载产品失败"}finally{B.value=!1}try{const s=await yt();p.value=((e=s==null?void 0:s.data)==null?void 0:e.tokens)??[]}catch{p.value=[]}try{const s=await gt({state:St,page_num:1,page_size:1});P.value=Number(((v=s==null?void 0:s.data)==null?void 0:v.total)??0)}catch{P.value=0}try{const s=await ht();b.value=(s==null?void 0:s.data)??null}catch{b.value=null}try{const s=await ft(),J=((u=s==null?void 0:s.data)==null?void 0:u.data)??[],K={};for(const N of J)N!=null&&N.token_name&&(K[N.token_name]=String(N.balance??"0"));A.value=K}catch{A.value={}}}const nt=j;return it(j),(a,e)=>{var v,u;return i(),r("div",Nt,[T(kt,{title:"跟盈宝 Pro"},{right:L(()=>[t("button",{type:"button",class:"nav-link","data-testid":"gyb-home-rules",onClick:e[0]||(e[0]=s=>n(k).push("/gyb/rules"))}," 产品规则 ")]),_:1}),t("div",Ct,[e[12]||(e[12]=t("div",{class:"home-cap"},"我的持仓折合",-1)),t("div",Pt,[E.value?(i(),r(w,{key:0},[m(l(n(_)(et.value,2))+" ",1),e[8]||(e[8]=t("span",{class:"home-unit"},"USD",-1))],64)):(i(),r(w,{key:1},[m(l(n(x)),1)],64))]),!E.value&&p.value.length?(i(),r("div",$t,[...e[9]||(e[9]=[m(" 部分币种取不到价格,不给美元合计——",-1),t("b",null,"这不代表持仓为零",-1),m("。 ",-1)])])):h("",!0),e[13]||(e[13]=t("div",{class:"hr"},null,-1)),t("div",Ot,[t("div",null,[e[10]||(e[10]=t("small",null,"累计利息",-1)),t("b",Rt,l(V.value?"+"+n(_)(V.value,2):n(x)),1)]),t("div",null,[e[11]||(e[11]=t("small",null,"持仓中",-1)),t("b",It,l(P.value)+" 笔",1)])])]),b.value?(i(),r("div",{key:0,class:"card tap home-level","data-testid":"gyb-home-level",onClick:e[1]||(e[1]=s=>n(k).push("/gyb/partner"))},[e[17]||(e[17]=t("div",{class:"home-level-head"},[t("span",{class:"home-level-cap"},"当前生效等级"),t("span",{class:"home-level-more"},"查看更多 →")],-1)),t("div",Ut,[t("div",At,[e[14]||(e[14]=t("small",null,"当前生效",-1)),t("b",null,l(n(G)(b.value.effective_level)),1
1)]),b.value.is_max?(i(),r("div",Bt,"已达最高等级")):(i(),r(w,{key:1},[e[16]||(e[16]=t("span",{class:"lvarrow"},"→",-1)),t("div",Et,[t("small",null,"本产品 "+l(n(G)(b.value.local_level))+" 可升至",1),t("b",null,l(n(G)(b.value.next_level)),1)]),t("div",Ft,[t("b",Mt,l(O(b.value.overall_percent).toFixed(0))+"%",1),e[15]||(e[15]=t("small",null,"升级进度",-1))])],64))]),b.value.is_max?h("",!0):(i(),r(w,{key:0},[t("div",Gt,[t("i",{style:rt({width:O(b.value.overall_percent)+"%"})},null,4)]),t("div",Tt,[t("span",null,"个人持仓 "+l(O((v=b.value.hold_progress)==null?void 0:v.percent).toFixed(0))+"%",1),t("span",null,"团队业绩 "+l(O((u=b.value.team_progress)==null?void 0:u.percent).toFixed(0))+"%",1)])],64))])):h("",!0),t("div",Vt,[t("button",{type:"button","data-testid":"gyb-home-goholdings",onClick:e[2]||(e[2]=s=>n(k).push("/gyb/holdings"))},[e[18]||(e[18]=t("em",null,"▤",-1)),t("b",null,l(P.value),1),e[19]||(e[19]=m("我的持仓 ",-1))]),t("button",{type:"button","data-testid":"gyb-home-goearnings",onClick:e[3]||(e[3]=s=>n(k).push("/gyb/earnings"))},[...e[20]||(e[20]=[t("em",null,"◍",-1),t("b",null,"›",-1),m("我的收益 ",-1)])])]),e[32]||(e[32]=t("div",{class:"sect"},"托管产品",-1)),$.value?(i(),r("p",qt,l($.value),1)):C.value.length?(i(!0),r(w,{key:2},dt(C.value,s=>(i(),r("div",{key:s.id,class:"prod","data-testid":"gyb-home-product"},[t("div",Ht,[t("span",{class:U(["coin",n(X)(s.token_name)])},l(s.token_name),3),t("div",zt,[t("b",null,l(s.name),1),t("small",null,l(s.trader_name)+" · "+l(s.token_name),1)])]),t("div",Wt,[t("div",jt,[t("b",null,l(F(s.month_rate)),1),e[21]||(e[21]=t("em",null,"月利率",-1))]),t("button",{type:"button",class:"btn prod-btn","data-testid":"gyb-home-subscribe",onClick:J=>st(s)}," 申购 ",8,Jt)]),t("div",Kt,[t("div",null,[e[22]||(e[22]=t("small",null,"管理规模",-1)),t("b",null,l(n(_)(s.total_amount,0)),1)]),t("div",null,[e[23]||(e[23]=t("small",null,"参与人数",-1)),t("b",null,l(s.total_users),1)]),t("div",null,[e[24]||(e[24]=t("small",null,"产品周期",-1)),t("b",null,l(s.period_days)+" 天",1)])]),s.cap_users&&s.total_users>=s.cap_users?(i(),r("div",Lt," 参与人数已达上限("+l(s.cap_users)+" 人),暂不可申购。 ",1)):h("",!0)]))),128)):B.value?h("",!0):(i(),r("p",Qt,"暂无在售产品")),o.value?(i(),mt(Dt,{key:4,title:"申购","data-testid":"gyb-home-sub-sheet",onClose:e[7]||(e[7]=s=>o.value=null)},{default:L(()=>[S.value?(i(),r(w,{key:0},[t("div",Xt,[e[25]||(e[25]=m(" 申购成功,订单号 ",-1)),t("b",null,l(S.value.order_no),1),m(",本金 "+l(n(_)(S.value.principal,4))+"。 ",1)]),t("button",{type:"button",class:"btn sub-submit",onClick:e[4]||(e[4]=s=>n(k).push("/gyb/holdings"))}," 去我的持仓查看 ")],64)):(i(),r(w,{key:1},[t("div",Yt,[t("span",{class:U(["coin",n(X)(o.value.token_name)])},l(o.value.token_name),3),t("div",Zt,[t("b",null,l(o.value.name),1),t("div",te,l(o.value.token_name)+" · "+l(o.value.total_users)+" 人参与",1)])]),t("div",ee,[t("div",se,[t("span",ae,l(F(o.value.month_rate)),1),e[26]||(e[26]=t("span",{class:"sub-rate-cap"},"月利率",-1))]),t("span",le,"周期 "+l(o.value.period_days)+" 天",1)]),e[30]||(e[30]=t("div",{class:"sect"},"投入金额",-1)),t("div",ne,[vt(t("input",{"onUpdate:modelValue":e[5]||(e[5]=s=>y.value=s),class:"num",inputmode:"decimal",placeholder:`${n(_)(o.value.min_amount,0)} - ${n(_)(o.value.max_amount,0)}`,"data-testid":"gyb-home-sub-amount"},null,8,oe),[[ct,y.value]]),t("span",ue,l(o.value.token_name),1),I.value!==null?(i(),r("span",{key:0,class:"mx","data-testid":"gyb-home-sub-max",onClick:at},"最大")):h("",!0)]),t("div",ie,[t("span",null,"可用 "+l(I.value===null?"未知":n(_)(I.value,4))+" "+l(o.value.token_name),1),t("span",null,"单笔 "+l(n(_)(o.value.min_amount,0))+" ~ "+l(n(_)(o.value.max_amount,0)),1)]),t("div",re,[t("div",de,[e[27]||(e[27]=t("span",null,"本期预计利息",-1)),t("b",me,l(H.value?"+"+n(_)(H.value,4):n(x)),1)]),t("div",ve,[t("span",null,"手续费("+l(F(o.value.fee_rate))+")",1),t("b",ce,l(z.value?n(_)(z.value,4):n(x)),1)]),e[28]||(e[28]=t("div",{class:"note q sub-est-note"},[m(" 以上是"),t("b",null,"按当前月利率试算"),m("的参考值,实际以服务端发放为准。 ")],-1))]),t("div",{class:"sub-agree","data-testid":"gyb-home-sub-agree",onClick:e[6]||(e[6]=s=>g.value=!g.value)},[t("div",{class:U(["sub-check",{on:g.value}])},l(g.value?"✓":""),3),e[29]||(e[29]=t("div",{class:"sub-agree-txt"},[m(" 我已阅读并同意"),t("b",null,"《跟盈宝 Pro 风险揭示书》"),m("与"),t("b",null,"《用户服务协议》")],-1))]),e[31]||(e[31]=t("div",{class:"note red"},[m(" 自动续期"),t("b",null,"默认开启"),m(",将在到期剩余 ≤ 3 天时自动续期 1 个月。 "),t("b",null,"一旦发生续期(含自动续期),该订单将不再支持提前赎回。"),m(" 如需保留赎回权,请在订单详情中关闭自动续期。 ")],-1)),D.value?(i(),r("p",be,l(D.value),1)):h("",!0),t("button",{type:"button",class:"btn sub-submit",disabled:!W.value,"data-testid":"gyb-home-sub-submit",onClick:lt},l(R.value?"提交中…":g.value?"确认申购":"请先勾选风险揭示书"),9,_e)],64))]),_:1})):h("",!0),T(bt)])}}}),ye=Z(pe,[["__scopeId","data-v-573883ea"]]),ge=Y({__name:"home",setup(tt){const k=ot();return(C,p)=>(i(),r("div",{class:U(n(k)?"gyb-shell gyb-shell--web":"gyb-shell")},[T(ye)],2))}}),Oe=Z(ge,[["__scopeId","data-v-68651fcd"]]);export{Oe as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.