PageSourceSearch

https://www.mechrevo.com/na/_nuxt/BjOn5zNv.js

js mechrevo.com collected 2026-09-24 22:51:27 UTC 38,278 bytes, 1 lines download raw bytes

1import{_ as Pe}from"./CxMCNjUa.js";import{A as ce,R as Be,o as s,c as i,a as e,b as T,t as $,g as ie,w as U,q as Se,F as ee,D as ne,C as Y,k as I,P as ae,V as Me,x as h,H as B,z as Ue,y as ue,n as Ce,cb as Ne,cc as He,cd as Fe,K as Ae,G as be,ad as Te,d as W,U as re,j as we,f as a,r as ge,a0 as Qe,ag as ke,v as $e,Z as Ke,s as te,L as ze,a4 as Ge,h as We,l as je,m as Xe,i as Le,_ as Ye,Q as De,ca as Ze}from"./C4-mtOfP.js";import{I as ve}from"./WAJsY_rR.js";import{_ as oe}from"./DlAUqK2U.js";import{s as Ie}from"./CnRz1fRY.js";import{o as Je}from"./pb_TXfmz.js";import{u as et}from"./Bk6l6lPE.js";import{C as tt}from"./Bo50q7aM.js";import{R as st,A as nt}from"./DkKs-n4T.js";const ot=["aria-label","aria-expanded"],lt=["aria-label"],at={class:"region-panel__content"},it={class:"region-panel__header"},rt=["aria-label"],ut={class:"region-panel__body"},ct={class:"region-grid"},dt=["href","onClick"],ht={class:"region-card__name"},vt={class:"region-card__language"},gt={__name:"RegionLanguageSelector",props:{variant:{type:String,default:"pc",validator:r=>["pc","mobile"].includes(r)}},setup(r){const o=Ue(),g=h(!1),w=B(()=>o.public?.locale||"en-US"),f=B(()=>o.public?.market||"na"),t=B(()=>o.public?.regionSites||{}),l=B(()=>w.value.toLowerCase().startsWith("zh")||f.value==="cn"),p=B(()=>l.value?"简体中文":"Global"),u=B(()=>l.value?"选择您的国家/地区":"Select your country/region"),x=B(()=>l.value?"关闭地区选择":"Close region selector"),R=B(()=>l.value?"选择语言和地区":"Select language and region"),M=[{titleCn:"亚太",titleEn:"Asia Pacific",items:[{name:"中国大陆",language:"简体中文",market:"cn",href:"/cn"},{name:"中國香港",language:"简体中文",market:"cn",href:"/cn"},{name:"Hong Kong, China",language:"English"},{name:"Singapore",language:"English"},{name:"Philippines",language:"English"}]},{titleCn:"欧洲",titleEn:"Europe",items:[{name:"France",language:"English"},{name:"Deutschland",language:"English"},{name:"Ireland",language:"English"},{name:"Italia",language:"English"},{name:"Norway",language:"English"},{name:"Poland",language:"English"},{name:"Portugal",language:"English"},{name:"Slovakia",language:"English"},{name:"España",language:"English"},{name:"Sweden",language:"English"},{name:"Switzerland",language:"English"},{name:"United Kingdom",language:"English"}]},{titleCn:"中东",titleEn:"Middle East",items:[{name:"UAE",language:"English"}]},{titleCn:"北美洲",titleEn:"North America",items:[{name:"United States",language:"English",market:"na",href:"/na"},{name:"Canada",language:"English",market:"na",href:"/na"}]},{titleCn:"其他国家或地区",titleEn:"Other Regions",items:[{name:"Other Regions",language:"English",href:"/en"}]}],n=B(()=>M.map(C=>({title:l.value?C.titleCn:C.titleEn,items:C.items}))),_=()=>{g.value=!0},d=()=>{g.value=!1},S=C=>C.market?C.market===f.value:!1,v=C=>C.market&&t.value[C.market]?t.value[C.market]:C.href?C.href:C.market==="cn"?"/cn":C.market==="na"?"/na":t.value.en||"/en",y=C=>new URL(C,window.location.origin).href,P=(C,D)=>{const q=v(C);if(!q)return;D.preventDefault();const V=y(q);window.location.href!==V?window.location.assign(V):d()},j=C=>{C.key==="Escape"&&d()};return ce(g,C=>{document.body.classList.toggle("region-panel-open",C),C?document.addEventListener("keydown",j):document.removeEventListener("keydown",j)}),Be(()=>{document.body.classList.remove("region-panel-open"),document.removeEventListener("keydown",j)}),(C,D)=>(s(),i("div",{class:Y(["region-language-selector",[`region-language-selector--${r.variant}`]])},[e("button",{class:"region-language-trigger",type:"button","aria-label":R.value,"aria-expanded":g.value,onClick:_},[T(ve,{name:"https://glbfs.mechrevo.com/website/static/svgicons/global.svg",size:"16px"}),e("span",null,$(p.value),1)],8,ot),(s(),ie(Me,{to:"body"},[T(ae,{name:"region-panel"},{default:U(()=>[g.value?(s(),i("div",{key:0,class:"region-panel",role:"dialog","aria-modal":"true","aria-label":u.value,onClick:Se(d,["self"])},[e("section",at,[e("header",it,[e("h2",null,$(u.value),1),e("button",{class:"region-panel__close",type:"button","aria-label":x.value,onClick:d},[...D[0]||(D[0]=[e("span",{"aria-hidden":"true"},null,-1)])],8,rt)]),e("div",ut,[(s(!0),i(ee,null,ne(n.value,q=>(s(),i("section",{key:q.title,class:"region-group"}
1,[e("h3",null,$(q.title),1),e("div",ct,[(s(!0),i(ee,null,ne(q.items,V=>(s(),i("a",{key:`${q.title}-${V.name}`,class:Y(["region-card",{"is-current":S(V)}]),href:v(V),onClick:z=>P(V,z)},[e("span",ht,$(V.name),1),e("span",vt,$(V.language),1)],10,dt))),128))])]))),128))])])],8,lt)):I("",!0)]),_:1})]))],2))}},pt=oe(gt,[["__scopeId","data-v-b1702806"]]),Re={getLinks(r){return ue.get("/links",r)},getLinksTree(r,o){return ue.get("/links/tree",{params:{category1:r,category2:o}})},getLinkDetail(r){return ue.get(`/links/${r}`)}},ft=()=>{const r=h([]),o=h([]),g=h(!1);return{topMenus:r,bottomMenus:o,loading:g,fetchTopMenus:async()=>{try{g.value=!0;const t=await Re.getLinksTree("global","top_menu");return r.value=t.objects||[],r.value}catch(t){return console.error("获取顶部菜单失败:",t),[]}finally{g.value=!1}},fetchBottomMenus:async()=>{try{g.value=!0;const t=await Re.getLinksTree("global","bottom_menu");return o.value=t.objects||[],o.value}catch(t){return console.error("获取底部菜单失败:",t),[]}finally{g.value=!1}}}};function Ve(){const r=Ce(),o={QRCODE:"qrcode",SMS:"sms"},g={PHONE:1,CODE:2},w=h(o.QRCODE),f=h(g.PHONE),t=h(""),l=h(""),p=h(""),u=h(!1),x=h(0),R=h("");let M=null;const n=B(()=>/^1[3-9]\d{9}$/.test(t.value)),_=B(()=>l.value.length===6),d=B(()=>x.value>0?`${x.value}秒后重试`:"获取验证码"),S=(E=60)=>{x.value=E,M=Ie(()=>{x.value--,x.value<=0&&v()},1e3)},v=()=>{M&&(clearInterval(M),M=null),x.value=0},y=async()=>{if(!n.value)throw new Error("请输入正确的手机号");if(!p.value)throw new Error("请完成滑块验证");if(x.value>0)throw new Error("请稍后再试");u.value=!0;try{const E=await He(t.value,p.value);return E.result&&E.result.code&&(R.value=E.result.code),S(60),E}finally{u.value=!1}},P=async()=>{await y(),f.value=g.CODE},j=()=>{f.value=g.PHONE,l.value=""},C=async()=>{if(!n.value)throw new Error("请输入正确的手机号");if(!_.value)throw new Error("请输入6位验证码");u.value=!0;try{return await r.loginWithPhone(t.value,l.value),D(),!0}finally{u.value=!1}},D=()=>{f.value=g.PHONE,t.value="",l.value="",p.value="",R.value="",X.value=!1,v()},q=h(null),V=h(""),z=h(""),Q=h(!1),X=h(!1);let G=null;const K=async()=>{u.value=!0;try{const E=await Ne();return q.value=E.qrCodeDataURL,V.value=E.scene,z.value=E.expireTime,console.log("get qrcode",V.value,z.value),N(),E}finally{u.value=!1}},N=()=>{Q.value||(Q.value=!0,G=Ie(async()=>{try{const E=await Fe(V.value);if(E===null)return;if(E&&E.token)return X.value=!0,L(),r.setToken(E.token),await r.fetchUserInfo(),!0}catch(E){console.error("轮询登录状态失败:",E),L()}},2e3))},L=()=>{G&&(clearInterval(G),G=null),Q.value=!1};return{LOGIN_TYPE:o,LOGIN_STEP:g,loginType:w,currentStep:f,phone:t,code:l,captchaToken:p,loading:u,countdown:x,devSmsCode:R,qrcodeData:q,qrcodeScene:V,qrcodeExpireTime:z,qrcodePolling:Q,qrcodeLoginSuccess:X,isPhoneValid:n,isCodeComplete:_,countdownText:d,sendSmsCode:y,nextStep:P,prevStep:j,login:C,reset:D,cleanup:()=>{v(),L()},getLoginQrcode:K,refreshQrcode:async()=>{L(),await K()},switchLoginType:E=>{w.value=E,E===o.QRCODE?K():L()}}}const mt={name:"dragVerify",components:{Icon:Ae},props:{isPassing:{type:Boolean,default:!1},width:{type:Number,default:250},height:{type:Number,default:40},text:{type:String,default:"swiping to the right side"},successText:{type:String,default:"success"},background:{type:String,default:"#eee"},progressBarBg:{type:String,default:"#76c61d"},completedBg:{type:String,default:"#76c61d"},circle:{type:Boolean,default:!1},radius:{type:String,default:"4px"},handlerIcon:{type:String,default:"mdi-light:chevron-double-right"},successIcon:{type:String,default:"mdi-light:check-circle"},handlerBg:{type:String,default:"#fff"},textSize:{type:String,default:"14px"},textColor:{type:String,default:"#333"}},mounted:function(){const r=this.$refs.dragVerify;r.style.setProperty("--textColor",this.textColor),r.style.setProperty("--width",Math.floor(this.width/2)+"px"),r.style.setProperty("--pwidth",-Math.floor(this.width/2)+"px"),console.log(this.$slots)},computed:{handlerStyle:function(){return{width:this.height+"px",height:this.height+"px",background:this.handlerBg}},message:function(){return this.isPassing?this.successText:this.text},dragVerifyStyle:function(){return{width:this.width+"px",height:this.height+"px",lineHeight:this.height+"px",background:this.background,borderRadius:this.circle?this.height/2+"px":this.radius}},progressBarStyle:function(){return{background:this.progressBarBg,height:this.height+"px",borderRadius:this.circle?this.height/2+"px 0 0 "+this.height/2+"px":this.radius}},textStyle:function(){return{height:this.height+"px",width:this.width+"px",fontSize:this.textSize}}},data(){return{isMoving:!1,x:0,isOk:!1,currentIcon:this.handlerIcon}},methods:{dragStart:function(r){this.isPassing||(this.isMoving=!0,this.x=r.pageX||r.touches[0].pageX),this.$emit("handlerMove")},dragMoving:function(r){if(this.isMoving&&!this.isPassing){var o=(r.pageX||r.touches[0].pageX)-this.x,g=this.$refs.handler;o>0&&o<=this.width-this.height?(g.style.left=o+"px",this.$refs.progressBar.style.width=o+this.height/2+"px"):o>this.width-this.height&&(g.style.left=this.width-this.height+"px",this.$refs.progressBar.style.width=this.width-this.height/2+"px",this.passVerify())}},dragFinish:function(r){if(this.isMoving&&!this.isPassing){var o=(r.pageX||r.changedTouches[0].pageX)-this.x;if(o<this.width-this.height){this.isOk=!0;var g=this;setTimeout(function(){g.$refs.handler.style.left="0",g.$refs.progressBar.style.width="0",g.isOk=!1},500),this.$emit("passfail")}else{var w=this.$refs.handler;w.style.left=this.width-this.height+"px",this.$refs.progressBar.style.width=this.width-this.height/2+"px",this.passVerify()}this.isMoving=!1}},passVerify:function(){this.$emit("update:isPassing",!0),this.isMoving=!1,this.currentIcon=this.successIcon,this.$refs.progressBar.style.background=this.completedBg,this.$refs.message.style["-webkit-text-fill-color"]="unset",this.$refs.message.style.animation="slidetounlock2 3s infinite",this.$refs.message.style.color="#fff",this.$emit("passcallback")},reset:function(){this.isMoving=!1,this.x=0,this.isOk=!1,this.currentIcon=this.handlerIcon;var r=this.$refs.handler,o=this.$refs.message;r.style.left="0",this.$refs.progressBar.style.width="0",o.style["-webkit-text-fill-color"]="transparent",o.style.animation="slidetounlock 3s infinite",o.style.color=this.background,this.$emit("update:isPassing",!1)}}};function _t(r,o,g,w,f,t){const l=ve;return s(),i("div",{ref:"dragVerify",class:"drag_verify",style:be(t.dragVerifyStyle),onMousemove:o[2]||(o[2]=(...p)=>t.dragMoving&&t.dragMoving(...p)),onMouseup:o[3]||(o[3]=(...p)=>t.dragFinish&&t.dragFinish(...p)),onMouseleave:o[4]||(o[4]=(...p)=>t.dragFinish&&t.dragFinish(...p)),onTouchmove:o[5]||(o[5]=(...p)=>t.dragMoving&&t.dragMoving(...p)),onTouchend:o[6]||(o[6]=(...p)=>t.dragFinish&&t.dragFinish(...p))},[e("div",{class:Y(["dv_progress_bar",{goFirst2:f.isOk}]),ref:"progressBar",style:be(t.progressBarStyle)},null,6),e("div",{class:"dv_text",style:be(t.textStyle),ref:"message"},[r.$slots.textBefore?Te(r.$slots,"textBefore",{key:0},void 0,!0):I("",!0),W(" "+$(t.message)+" ",1),r.$slots.textAfter?Te(r.$slots,"textAfter",{key:1},void 0,!0):I("",!0)],4),e("div",{class:Y(["dv_handler dv_handler_bg",{goFirst:f.isOk}]),onMousedown:o[0]||(o[0]=(...p)=>t.dragStart&&t.dragStart(...p)),onTouchstart:o[1]||(o[1]=(...p)=>t.dragStart&&t.dragStart(...p)),ref:"handler",style:be(t.handlerStyle)}
1,[f.currentIcon?(s(),ie(l,{key:0,icon:f.currentIcon,width:"24px",height:"24px",class:"handler-icon"},null,8,["icon"])):I("",!0)],38)],36)}const yt=oe(mt,[["render",_t],["__scopeId","data-v-df479fcf"]]),bt={class:"code-input"},wt={class:"code-boxes"},kt=["value","onInput","onKeydown"],St={__name:"CodeInput",props:{modelValue:{type:String,default:""},length:{type:Number,default:6}},emits:["update:modelValue","complete"],setup(r,{expose:o,emit:g}){const w=r,f=g,t=h([]),l=B(()=>{const n=w.modelValue.split("");for(;n.length<w.length;)n.push("");return n.slice(0,w.length)}),p=(n,_)=>{const S=_.target.value.replace(/\D/g,"");if(S){const v=[...l.value];v[n]=S[0];const y=v.join("");f("update:modelValue",y),n<w.length-1?re(()=>{t.value[n+1]?.focus()}):(_.target.blur(),y.length===w.length&&f("complete",y))}else{const v=[...l.value];v[n]="",f("update:modelValue",v.join(""))}},u=(n,_)=>{if(_.key==="Backspace"){if(!l.value[n]&&n>0){const d=[...l.value];d[n-1]="",f("update:modelValue",d.join("")),re(()=>{t.value[n-1]?.focus()})}else if(l.value[n]){const d=[...l.value];d[n]="",f("update:modelValue",d.join(""))}}else _.key==="ArrowLeft"&&n>0?t.value[n-1]?.focus():_.key==="ArrowRight"&&n<w.length-1&&t.value[n+1]?.focus()},x=n=>{n.preventDefault();const d=n.clipboardData.getData("text").replace(/\D/g,"").slice(0,w.length);if(d){f("update:modelValue",d);const S=Math.min(d.length,w.length)-1;re(()=>{t.value[S]?.focus()}),d.length===w.length&&f("complete",d)}},R=()=>{const n=l.value.findIndex(d=>!d),_=n>=0?n:0;re(()=>{t.value[_]?.focus()})};return o({focusFirst:R,clear:()=>{f("update:modelValue",""),R()}}),(n,_)=>(s(),i("div",bt,[e("div",wt,[(s(!0),i(ee,null,ne(l.value,(d,S)=>(s(),i("input",{key:S,ref_for:!0,ref:v=>t.value[S]=v,type:"text",inputmode:"numeric",maxlength:"1",value:d,onInput:v=>p(S,v),onKeydown:v=>u(S,v),onPaste:x,class:Y(["code-box",{filled:d}])},null,42,kt))),128))])]))}},Oe=oe(St,[["__scopeId","data-v-563c0797"]]),Ct={key:0,class:"login-fullscreen-overlay"},$t={class:"login-content"},xt={class:"login-box"},It={class:"login-box-body"},Mt={class:"login-tabs"},Lt={key:0,class:"qrcode-login"},Et={class:"qrcode-container"},Tt={key:0,class:"qrcode-loading"},Rt={key:1,class:"qrcode-wrapper"},Pt=["src"],Bt={key:0,class:"qrcode-mask qrcode-success"},Dt={key:1,class:"qrcode-mask"},Vt={key:2,class:"qrcode-error"},Ot={key:1,class:"sms-login"},qt={key:0,class:"step-phone"},Ut={class:"form-group"},Nt={class:"phone-input-wrapper"},Ht={class:"form-group"},Ft={class:"form-group"},At={class:"checkbox-wrapper"},Qt=["disabled"],Kt={key:1,class:"step-code"},zt={class:"code-tip"},Gt={class:"form-group"},Wt={class:"code-actions"},jt=["disabled"],Xt={key:0,class:"dev-tip"},Yt=["disabled"],Zt={__name:"LoginModal",props:{visible:{type:Boolean,default:!1}},emits:["update:visible","success"],setup(r,{emit:o}){const g=r,w=o,f=h(null),t=h(null),l=h(!1),p=h(!1),{LOGIN_TYPE:u,LOGIN_STEP:x,loginType:R,currentStep:M,phone:n,code:_,captchaToken:d,loading:S,countdown:v,devSmsCode:y,qrcodeData:P,qrcodePolling:j,qrcodeLoginSuccess:C,isPhoneValid:D,isCodeComplete:q,countdownText:V,nextStep:z,prevStep:Q,login:X,reset:G,cleanup:K,getLoginQrcode:N,refreshQrcode:L,switchLoginType:se}=Ve();let F=null;const pe=()=>{F&&clearInterval(F),F=Ie(()=>{Ce().isLoggedIn&&R.value===u.QRCODE&&(clearInterval(F),F=null,w("success"),de(),te.success("登录成功"),setTimeout(()=>{window.location.reload()},500))},500)};we(()=>{K(),F&&clearInterval(F)});const E=()=>{d.value=`captcha_${Date.now()}_${Math.random().toString(36).substr(2,9)}`},fe=O=>{se(O)},me=async()=>{try{await L()}catch{te.error("刷新二维码失败")}},_e=async()=>{try{await z(),setTimeout(()=>{t.value?.focusFirst()},100)}catch(O){te.error(O.response?.data?.error||"发送验证码失败")}},xe=()=>{Q(),f.value?.reset(),l.value=!1},H=async()=>{try{await z()}catch(O){te.error(O.response?.data?.error||"发送验证码失败")}},ye=async()=>{try{await X(),w("success"),de(),te.success("登录成功"),setTimeout(()=>{window.location.reload()},500)}catch(O){te.error(O.response?.data?.error||"登录失败")}},de=()=>{w("update:visible",!1)};return ce(()=>g.visible,O=>{O?R.value===u.QRCODE&&(N(),pe()):(F&&(clearInterval(F),F=null),setTimeout(()=>{G(),l.value=!1,p.value=!1},300))}),we(()=>{K(),F&&clearInterval(F)}),(O,b)=>(s(),ie(Me,{to:"body"},[T(ae,{name:"modal"},{default:U(()=>[r.visible?(s(),i("div",Ct,[e("div",$t,[b[16]||(b[16]=e("div",{class:"logo-section"},[e("img",{src:"https://glbfs.mechrevo.com/website/static/images/logo-white-full.png",alt:"机械革命",class:"logo-white"})],-1)),e("div",xt,[e("div",{class:"login-box-header"},[b[6]||(b[6]=e("h2",{class:"login-title"},"登录机械革命账号",-1)),e("button",{class:"close-btn",onClick:de},"×")]),e("div",It,[e("div",Mt,[e("div",{class:Y(["tab-item",{active:a(R)===a(u).QRCODE}]),onClick:b[0]||(b[0]=Z=>fe(a(u).QRCODE))}," 微信登录 ",2),e("div",{class:Y(["tab-item",{active:a(R)===a(u).SMS}]),onClick:b[1]||(b[1]=Z=>fe(a(u).SMS))}," 短信登录 ",2)]),a(R)===a(u).QRCODE?(s(),i("div",Lt,[e("div",Et,[a(S)?(s(),i("div",Tt,[...b[7]||(b[7]=[e("div",{class:"loading-spinner"},null,-1),e("p",null,"加载中...",-1)])])):a(P)?(s(),i("div",Rt,[e("img",{src:a(P),alt:"登录二维码",class:"qrcode-image"},null,8,Pt),a(C)?(s(),i("div",Bt,[...b[8]||(b[8]=[e("div",{class:"success-icon"},"✓",-1),e("p",null,"登录成功",-1)])])):a(j)?I("",!0):(s(),i("div",Dt,[b[9]||(b[9]=e("p",null,"二维码已过期",-1)),e("button",{class:"btn-refresh",onClick:me}
1," 刷新二维码 ")]))])):(s(),i("div",Vt,[b[10]||(b[10]=e("p",null,"二维码加载失败",-1)),e("button",{class:"btn-refresh",onClick:me}," 重新加载 ")]))]),b[11]||(b[11]=e("div",{class:"qrcode-tips"},[e("p",{class:"tip-title"},"使用微信扫一扫登录"),e("p",{class:"tip-desc"},"若继续,则表示同意隐私政策和使用条款。")],-1))])):I("",!0),a(R)===a(u).SMS?(s(),i("div",Ot,[a(M)===a(x).PHONE?(s(),i("div",qt,[e("div",Ut,[e("div",Nt,[b[12]||(b[12]=e("span",{class:"phone-prefix"},"+86",-1)),ge(e("input",{"onUpdate:modelValue":b[2]||(b[2]=Z=>ke(n)?n.value=Z:null),type:"tel",placeholder:"请输入手机号",maxlength:"11",class:"form-input",onKeyup:Qe(_e,["enter"])},null,544),[[$e,a(n)]])])]),e("div",Ht,[T(yt,{ref_key:"dragVerifyRef",ref:f,width:480,height:46,isPassing:l.value,"onUpdate:isPassing":b[3]||(b[3]=Z=>l.value=Z),text:"请按住滑块,拖到最右边","success-text":"验证成功","handler-icon":"mdi-light:chevron-double-right","success-icon":"mdi-light:check-circle",onPasscallback:E,style:{border:"solid 1px #dcdfe6"}},null,8,["isPassing"])]),e("div",Ft,[e("label",At,[ge(e("input",{type:"checkbox","onUpdate:modelValue":b[4]||(b[4]=Z=>p.value=Z)},null,512),[[Ke,p.value]]),b[13]||(b[13]=e("span",null,[W("同意并愿意遵守机械革命"),e("a",{href:"/service.html",target:"_blank"},"隐私政策和使用条款"),W("。")],-1))])]),e("button",{class:"btn-primary btn-block",disabled:!a(D)||!l.value||!p.value||a(S),onClick:_e},$(a(S)?"发送中...":"下一步"),9,Qt)])):I("",!0),a(M)===a(x).CODE?(s(),i("div",Kt,[e("p",zt,[b[14]||(b[14]=W(" 验证码已经发送至",-1)),e("strong",null,$(a(n)),1)]),e("div",Gt,[T(Oe,{ref_key:"codeInputRef",ref:t,modelValue:a(_),"onUpdate:modelValue":b[5]||(b[5]=Z=>ke(_)?_.value=Z:null),onComplete:ye},null,8,["modelValue"])]),e("div",Wt,[e("button",{class:"btn-text",disabled:a(v)>0,onClick:H},$(a(V)==="获取验证码"?"重新发送":a(V)),9,jt)]),a(y)?(s(),i("div",Xt,[e("p",null,[b[15]||(b[15]=W("开发环境验证码:",-1)),e("strong",null,$(a(y)),1)])])):I("",!0),e("button",{class:"btn-primary btn-block",disabled:!a(q)||a(S),onClick:ye},$(a(S)?"登录中...":"登录"),9,Yt),e("button",{class:"btn-text-link",onClick:xe}," 返回修改手机号 ")])):I("",!0)])):I("",!0)])])])])):I("",!0)]),_:1})]))}},Jt=oe(Zt,[["__scopeId","data-v-d37bb392"]]),es=""+new URL("logo-white.D88PIZJc.png",import.meta.url).href,ts=""+new URL("logo.DxK4HwXo.png",import.meta.url).href,ss={key:0,class:"pc-header-placeholder"},ns={class:"container"},os={class:"header-content"},ls=["src"],as={class:"nav-menu-wrapper"},is=["onMouseenter"],rs={key:1,class:"nav-item"},us={class:"search-input-icon"},cs={class:"header-actions"},ds={class:"container"},hs={class:"search-results-layout"},vs={class:"search-results-content"},gs={class:"search-results-inner"},ps=["onClick"],fs={key:0,class:"result-icon"},ms=["src","alt"],_s={key:1,class:"result-image-placeholder"},ys={class:"result-info"},bs={class:"result-name"},ws={class:"result-type"},ks={key:1,class:"search-no-results"},Ss={key:2,class:"search-loading"},Cs={class:"container"},$s={class:"sub-menu-inner"},xs={class:"sub-menu-content-wrapper"},Is={key:0,class:"sub-menu-image-wrapper"},Ms=["src","alt"],Ls=["src","alt"],Es=["src","alt"],Ts={class:"sub-menu-content"},Rs={class:"sub-menu-title"},Ps={key:0,class:"sub-menu-subtitle"},Bs={__name:"Header",props:{transparent:{type:Boolean,default:!1}},async setup(r){let o,g;const w=r,f=ze(),t=Ge(),l=Ce(),p=h(!1),u=h(null),x=h(!1),R=c=>c==="/"?{position:"fixed",forceShowSubMenu:!1}:c.startsWith("/series/")?{position:"relative",forceShowSubMenu:!0}:c.startsWith("/products/")?{position:"relative",forceShowSubMenu:!1}:{position:"relative",forceShowSubMenu:!1},M=B(()=>R(t.path)),n=B(()=>{const c=[];return M.value.position==="fixed"?c.push("is-fixed"):c.push("is-relative"),M.value.forceShowSubMenu&&c.push("has-forced-submenu"),c}),_=h(!1),d=h(""),S=h([]),v=h(!1),y=h(!1),P=h(null),j=h(null),C=h(null);let D=null;const q=B(()=>!(!w.transparent||x.value||_.value)),V=B(()=>q.value?es:ts),{data:z}=([o,g]=We(async()=>je("top-menus",async()=>{const{getCachedData:c}=Xe();return await c("cache:menu:top:v2",async()=>{const{fetchTopMenus:k}=ft();return await k()},3600)},{server:!0,lazy:!0})),o=await o,g(),o),Q=B(()=>z.value||[]),X=B(()=>u.value?Q.value.find(c=>c.id===u.value):null);Le(async()=>{l&&(l.initFromStorage(),console.log("Header mounted - isLoggedIn:",l.isLoggedIn,"userInfo:",l.userInfo)),console.log("Top menus loaded:",z.value),document.addEventListener("click",
1se)});const G=B(()=>{const c=t.path;if(c.startsWith("/series/")){for(const k of Q.value)if(k.children&&k.children.length>0&&k.children.some(J=>J.url&&c.startsWith(J.url)))return k.id}if(c.startsWith("/products/")){for(const k of Q.value)if(k.children&&k.children.length>0&&k.children.some(J=>J.url&&J.url.startsWith("/products/")))return k.id}return null});ce(()=>[M.value.forceShowSubMenu,G.value,Q.value.length],()=>{M.value.forceShowSubMenu&&G.value?(u.value=G.value,console.log("强制显示二级菜单,菜单 ID: ",u.value)):M.value.forceShowSubMenu||u.value&&!O.value&&!x.value&&(u.value=null)},{immediate:!0}),l&&ce(()=>l.isLoggedIn,c=>{console.log("Header - isLoggedIn changed:",c,"userInfo:",l.userInfo)},{immediate:!0});const K=()=>{_.value=!1,d.value="",S.value=[],y.value=!1,v.value=!1,D&&(clearTimeout(D),D=null)},N=()=>{x.value=!0},L=()=>{x.value=!1},se=c=>{if(!_.value)return;const k=P.value,A=C.value;c.target.closest(".search-btn")||k&&k.contains(c.target)||A&&A.contains(c.target)||K()},F=()=>{D&&clearTimeout(D);const c=d.value.trim();if(c.length<2){S.value=[],y.value=!1,v.value=!1;return}v.value=!0,y.value=!0,D=setTimeout(async()=>{await fe(c)},500)},pe=[{keywords:["售后"],path:"/service",name:"After-Sales Service"},{keywords:["驱动"],path:"https://gwqd.mechrevo.com/service/",name:"Driver Download"},{keywords:["保修"],path:"/service#service-policy",name:"Warranty Service Policy"},{keywords:["服务"],path:"/service",name:"Support & Service"},{keywords:["投诉"],action:"openCustomerService",name:"Online Customer Service"}],E=c=>{const k=c.toLowerCase(),A=[],J=new Set;for(const le of pe){const m=le.keywords.some(Ee=>k.includes(Ee.toLowerCase())||Ee.toLowerCase().includes(k)),he=le.path||le.action;m&&!J.has(he)&&(A.push({type:"special",id:he,name:le.name,path:le.path,action:le.action}),J.add(he))}return A},fe=async c=>{try{const k=E(c),A=await ue.get("/home/search",{params:{keyword:c,limit:10}});S.value=[...k,...A.objects||[]]}catch(k){console.error("搜索失败:",k);const A=E(c);S.value=A}finally{v.value=!1}},me=c=>({display_product:"",special:"快捷入口"})[c]||"",_e=c=>{c.type==="special"?c.action==="openCustomerService"?Je():c.path&&(c.path.startsWith("http")?window.open(c.path,"_blank"):f.push(c.path)):c.type==="display_product"&&f.push(`/products/${c.slug}`),K()},xe=async()=>{l&&(p.value=!1,console.log("Login success - isLoggedIn:",l.isLoggedIn,"userInfo:",l.userInfo),await re(),await l.fetchUserInfo(),console.log("After fetchUserInfo - isLoggedIn:",l.isLoggedIn,"userInfo:",l.userInfo),De("/user/devices"))};let H=null;const ye=c=>{H&&(clearTimeout(H),H=null),c&&c.children&&c.children.length>0?u.value=c.id:c&&(u.value=null)},de=()=>{M.value.forceShowSubMenu||(H=setTimeout(()=>{O.value||(u.value=null)},200))},O=h(!1),b=()=>{H&&(clearTimeout(H),H=null),O.value=!0},Z=()=>{M.value.forceShowSubMenu||(O.value=!1,H=setTimeout(()=>{u.value=null},100))},qe=()=>{H&&(clearTimeout(H),H=null),O.value=!1,u.value=null};return we(()=>{H&&(clearTimeout(H),H=null),D&&(clearTimeout(D),D=null),document.removeEventListener("click",se)}),(c,k)=>{const A=Pe,J=pt,le=Ye;return s(),i(ee,null,[!r.transparent&&M.value.position==="fixed"?(s(),i("div",ss)):I("",!0),e("header",{class:Y(["pc-header header-component",[{"is-transparent":q.value},...n.value]]),onMouseenter:N,onMouseleave:L},[e("div",ns,[e("div",os,[T(A,{to:"/",class:"logo"},{default:U(()=>[e("img",{src:V.value,alt:"机械革命"},null,8,ls)]),_:1}),e("div",as,[e("nav",{class:Y(["nav-menu",{"is-hidden":_.value}]),onMouseleave:de},[(s(!0),i(ee,null,ne(Q.value,m=>(s(),i("div",{key:m.id,class:"nav-item-wrapper",onMouseenter:he=>ye(m)},[m.url?(s(),ie(A,{key:0,to:m.url,class:"nav-item","active-class":"active"},{default:U(()=>[W($(m.title),1)]),_:2},1032,["to"])):(s(),i("span",rs,$(m.title),1))],40,is))),128))],34),e("div",{ref_key:"searchBoxRef",ref:P,class:Y(["search-box",{"is-active":_.value}])},[e("span",us,[T(ve,{name:"https://glbfs.mechrevo.com/website/static/svgicons/find.svg",size:"18px"})]),ge(e("input",{ref_key:"searchInputRef",ref:j,"onUpdate:modelValue":k[0]||(k[0]=m=>d.value=m),type:"text",class:"search-input",placeholder:"Search products...",onInput:F},null,544),[[$e,d.value]]),e("button",{class:"search-close-btn",onClick:Se(K,["stop"])},[T(ve,{name:"https://glbfs.mechrevo.com/website/static/svgicons/close.svg",size:"16px"})])],2)]),e("div",cs,[T(J,{variant:"pc"}),I("",!0)])])]),T(ae,{name:"search-dropdown"},{default:U(()=>[y.value&&(S.value.length>0||d.value.trim().length>=2&&!v.value||v.value)?(s(),i("div",{key:0,ref_key:"searchResultsRef",ref:C,class:"search-results-wrapper"},[e("div",ds,[e("div",hs,[k[12]||(k[12]=e("div",{class:"search-results-spacer"},null,-1)),e("div",vs,[e("div",gs,[S.value.length>0?(s(!0),i(ee,{key:0},ne(S.value,m=>(s(),i("div",{key:`${m.type}-${m.id}`,class:Y(["search-result-item",{"is-special":m.type==="special"}]),onClick:he=>_e(m)},[m.type==="special"?(s(),i("div",fs,[T(ve,{name:"https://glbfs.mechrevo.com/website/static/svgicons/find.svg",size:"16px",color:"#999999"})])):(s(),i(ee,{key:1},[m.main_image_urls?.thumb?(s(),i("img",{key:0,src:m.main_image_urls.thumb,alt:m.name,class:"result-image"},null,8,ms)):(s(),i("div",_s))],64)),e("div",ys,[e("div",bs,$(m.name),1),e("div",ws,$(me(m.type)),1)])],10,ps))),128)):S.value.length===0&&d.value.trim().length>=2&&!v.value?(s(),i("div",ks,[...k[10]||(k[10]=[e("div",{class:"no-results-text"},"没有符合的结果",-1)])])):v.value?(s(),i("div",Ss,[...k[11]||(k[11]=[e("div",{class:"loading-text"},"搜索中...",-1)])])):I("",!0)])]),k[13]||(k[13]=e("div",{class:"search-results-actions-spacer"},null,-1))])])],512)):I("",!0)]),_:1}),T(ae,{name:"dropdown"},{default:U(()=>[u.value&&X.value&&X.value.children&&X.value.children.length>
10?(s(),i("div",{key:0,class:"sub-menu-wrapper",onMouseenter:b,onMouseleave:Z},[e("div",Cs,[e("div",$s,[e("div",xs,[(s(!0),i(ee,null,ne(X.value.children,m=>(s(),ie(A,{key:m.id,to:m.url||"#",class:"sub-menu-item",onClick:qe},{default:U(()=>[m.main_image_urls?.thumb&&m.hover_image_urls?.thumb?(s(),i("div",Is,[e("img",{src:m.main_image_urls.thumb,alt:m.title,class:"sub-menu-image sub-menu-image-default"},null,8,Ms),e("img",{src:m.hover_image_urls.thumb,alt:m.title,class:"sub-menu-image sub-menu-image-hover"},null,8,Ls)])):m.main_image_urls?.thumb?(s(),i("img",{key:1,src:m.main_image_urls.thumb,alt:m.title,class:"sub-menu-image"},null,8,Es)):I("",!0),e("div",Ts,[e("div",Rs,$(m.title),1),m.sub_title?(s(),i("div",Ps,$(m.sub_title),1)):I("",!0)])]),_:2},1032,["to"]))),128))])])])],32)):I("",!0)]),_:1}),T(le,null,{default:U(()=>[T(Jt,{visible:p.value,"onUpdate:visible":k[4]||(k[4]=m=>p.value=m),onSuccess:xe},null,8,["visible"])]),_:1})],34)],64)}}},On=oe(Bs,[["__scopeId","data-v-78ecd518"]]),Ds={class:"modal-header"},Vs={class:"modal-title"},Os={class:"modal-body"},qs={key:0,class:"step-phone"},Us={class:"form-group"},Ns={class:"form-group"}
1,Hs={key:0,class:"dev-tip"},Fs=["disabled"],As={key:1,class:"step-code"},Qs={class:"code-tip"},Ks={class:"form-group"},zs={class:"code-actions"},Gs=["disabled"],Ws={key:0,class:"dev-tip"},js=["disabled"],Xs={__name:"LoginModal",props:{visible:{type:Boolean,default:!1}},emits:["update:visible","success"],setup(r,{emit:o}){const g=r,w=o,f=h(null),t=h(null),{LOGIN_STEP:l,currentStep:p,phone:u,code:x,captchaToken:R,loading:M,countdown:n,devSmsCode:_,isPhoneValid:d,isCodeComplete:S,countdownText:v,nextStep:y,prevStep:P,login:j,reset:C,cleanup:D}=Ve(),q=B(()=>p.value===l.PHONE?"登录 / 注册":"输入验证码"),V=N=>{R.value=N},z=async()=>{try{await y(),setTimeout(()=>{t.value?.focusFirst()},100)}catch(N){te.error(N.message||"发送验证码失败")}},Q=()=>{P(),f.value?.reset()},X=async()=>{try{await y()}catch(N){te.error(N.message||"发送验证码失败")}},G=async()=>{try{await j(),w("success"),K()}catch(N){te.error(N.message||"登录失败")}},K=()=>{w("update:visible",!1)};return ce(()=>g.visible,N=>{N||setTimeout(()=>{C()},300)}),we(()=>{D()}),(N,L)=>(s(),ie(Me,{to:"body"},[T(ae,{name:"slide-up"},{default:U(()=>[r.visible?(s(),i("div",{key:0,class:"mobile-modal-overlay",onClick:K},[e("div",{class:"mobile-modal-container",onClick:L[2]||(L[2]=Se(()=>{},["stop"]))},[e("div",Ds,[e("h2",Vs,$(q.value),1),e("button",{class:"modal-close",onClick:K},"×")]),e("div",Os,[a(p)===a(l).PHONE?(s(),i("div",qs,[e("div",Us,[L[3]||(L[3]=e("label",null,"手机号",-1)),ge(e("input",{"onUpdate:modelValue":L[0]||(L[0]=se=>ke(u)?u.value=se:null),type:"tel",placeholder:"请输入手机号",maxlength:"11",class:"form-input"},null,512),[[$e,a(u)]])]),e("div",Ns,[L[4]||(L[4]=e("label",null,"滑块验证",-1)),T(tt,{ref_key:"captchaRef",ref:f,onVerified:V},null,512)]),a(_)?(s(),i("div",Hs,[e("p",null,[L[5]||(L[5]=W("开发环境验证码:",-1)),e("strong",null,$(a(_)),1)])])):I("",!0),e("button",{class:"btn-primary btn-block",disabled:!a(d)||!a(R)||a(M),onClick:z},$(a(M)?"发送中...":"下一步"),9,Fs)])):I("",!0),a(p)===a(l).CODE?(s(),i("div",As,[e("p",Qs,[L[6]||(L[6]=W("验证码已发送至 ",-1)),e("strong",null,$(a(u)),1)]),e("div",Ks,[L[7]||(L[7]=e("label",null,"验证码",-1)),T(Oe,{ref_key:"codeInputRef",ref:t,modelValue:a(x),"onUpdate:modelValue":L[1]||(L[1]=se=>ke(x)?x.value=se:null),onComplete:G},null,8,["modelValue"])]),e("div",zs,[e("button",{class:"btn-text",disabled:a(n)>0,onClick:X},$(a(v)),9,Gs)]),a(_)?(s(),i("div",Ws,[e("p",null,[L[8]||(L[8]=W("开发环境验证码:",-1)),e("strong",null,$(a(_)),1)])])):I("",!0),e("button",{class:"btn-primary btn-block",disabled:!a(S)||a(M),onClick:G},$(a(M)?"登录中...":"登录"),9,js),e("button",{class:"btn-text btn-block",onClick:Q}," 返回修改手机号 ")])):I("",!0)])])])):I("",!0)]),_:1})]))}},Ys=oe(Xs,[["__scopeId","data-v-fa246740"]]),Zs={class:"mobile-header header-component"},Js={class:"header-content"},en={class:"user-avatar-small"},tn={key:0,class:"mobile-menu"},sn={class:"menu-content"},nn={class:"nav-menu"},on={class:"user-sheet-header"},ln={class:"user-info-section"},an={class:"user-avatar-large"},rn={class:"user-text"},un={class:"user-nickname"},cn={class:"user-phone"},dn={class:"user-sheet-menu"},hn={__name:"Header",setup(r){const o=Ce(),g=et(),{isMenuOpen:w}=Ze(g),f=h(!1),t=h(!1),l=[{label:"首页",path:"/"},{label:"产品",path:"/products"},{label:"解决方案",path:"/solutions"},{label:"下载",path:"/downloads"},{label:"售后服务",path:"/service"}];Le(()=>{o.initFromStorage()});const p=()=>{g.toggleMenu()},u=()=>{g.closeMenu()},x=async()=>{f.value=!1,await re(),De("/user/account")},R=async()=>{confirm("确定要退出登录吗?")&&(t.value=!1,await o.logout())};return(M,n)=>{const _=Pe;return s(),i("header",Zs,[e("div",Js,[e("button",{class:"menu-btn",onClick:p},[...n[6]||(n[6]=[e("span",{class:"menu-icon"},null,-1)])]),T(_,{to:"/",class:"logo"},{default:U(()=>[...n[7]||(n[7]=[e("span",{class:"logo-text"},"机械革命",-1)])]),_:1}),a(o).isLoggedIn?(s(),i("button",{key:0,class:"user-icon-btn",onClick:n[0]||(n[0]=d=>t.value=!0)},[e("span",en,$(a(o).userInfo?.nick_name?.[0]||"用"),1)])):(s(),i("button",{key:1,class:"login-btn-mobile",onClick:n[1]||(n[1]=d=>f.value=!0)}," 登录 "))]),T(ae,{name:"slide"},{default:U(()=>[a(w)?(s(),i("div",tn,[e("div",{class:"menu-overlay",onClick:u}),e("div",sn,[e("div",{class:"menu-header"},[e("button",{class:"close-btn",onClick:u},"×")]),e("nav",nn,[(s(),i(ee,null,ne(l,d=>T(_,{key:d.path,to:d.path,class:"nav-item",onClick:u},{default:U(()=>[W($(d.label),1)]),_:2},1032,["to"])),64))])])])):I("",!0)]),_:1}),T(ae,{name:"slide-up"},{default:U(()=>[t.value?(s(),i("div",{key:0,class:"user-sheet-overlay",onClick:n[4]||(n[4]=d=>t.value=!1)},[e("div",{class:"user-sheet",onClick:n[3]||(n[3]=Se(()=>{},["stop"]))},[e("div",on,[e("div",ln,[e("div",an,$(a(o).userInfo?.nick_name?.[0]||"用"),1),e("div",rn,[e("div",un,$(a(o).userInfo?.nick_name||"用户"),1),e("div",cn,$(a(o).userInfo?.phone||""),1)])])]),e("div",dn,[T(_,{to:"/user/account",class:"sheet-item",onClick:n[2]||(n[2]=d=>t.value=!1)},{default:U(()=>[...n[8]||(n[8]=[e("span",null,"个人中心",-1),e("span",{class:"arrow"},"›",-1)])]),_:1}),e("button",{class:"sheet-item",onClick:R},[...n[9]||(n[9]=[e("span",null,"退出登录",-1),e("span",{class:"arrow"},"›",-1)])])])])])):I("",!0)]),_:1}),T(Ys,{visible:f.value,"onUpdate:visible":n[5]||(n[5]=d=>f.value=d),onSuccess:x},null,8,["visible"])])}}}
1,qn=oe(hn,[["__scopeId","data-v-fcd6a78f"]]),vn={submitReview(r){return ue.post("/website_reviews",r)},getReviewAspects(){return ue.get("/website_reviews/aspects")}},gn={key:0,class:"review-popover"},pn={class:"review-content"},fn={key:0,class:"rating-section"},mn={class:"title"},_n={class:"stars"},yn=["onClick"],bn=["fill"],wn={key:1,class:"content-section"},kn=["disabled"],Sn={key:2,class:"success-message"},Cn={__name:"ReviewPopover",props:{visible:{type:Boolean,default:!1}},emits:["close"],setup(r,{emit:o}){const g=r,w=o,f=h([{value:"website",label:"官网体验(页面浏览/设计)"},{value:"service",label:"服务体验(售后/客服)"},{value:"product",label:"产品体验(产品/配套软件)"}]),t=h(""),l=h(0),p=h(""),u=h(!1),x=h(!1),R=B(()=>{const v=f.value.find(y=>y.value===t.value);return v?v.label:""}),M=B(()=>t.value&&l.value>0);function n(){w("close")}function _(v){l.value=v}async function d(){if(!(!M.value||u.value)){u.value=!0;try{const v={aspect:t.value,rating:l.value,content:p.value},y=await vn.submitReview(v);console.log("提交评价成功:",y),x.value=!0,setTimeout(()=>{x.value=!1,S(),n()},2e3)}catch(v){console.error("提交评价失败:",v),te.error("提交失败,请稍后重试:"+(v.message||"未知错误"))}finally{u.value=!1}}}function S(){t.value="",l.value=0,p.value="",x.value=!1}return ce(()=>g.visible,v=>{v||setTimeout(S,300)}),(v,y)=>r.visible?(s(),i("div",gn,[e("div",pn,[e("button",{class:"close-btn",onClick:n},[...y[2]||(y[2]=[e("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[e("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),e("line",{x1:"6",y1:"6",x2:"18",y2:"18"})],-1)])]),y[5]||(y[5]=e("h3",{class:"title"},[W("您要评价哪个方面:"),e("span",{class:"required"},"*")],-1)),T(a(nt),{value:t.value,"onUpdate:value":y[0]||(y[0]=P=>t.value=P),class:"aspect-options"},{default:U(()=>[(s(!0),i(ee,null,ne(f.value,P=>(s(),ie(a(st),{key:P.value,value:P.value,class:"aspect-option"},{default:U(()=>[W($(P.label),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),t.value?(s(),i("div",fn,[e("h3",mn,[W('请对"'+$(R.value)+'"进行评价:',1),y[3]||(y[3]=e("span",{class:"required"},"*",-1))]),e("div",_n,[(s(),i(ee,null,ne(5,P=>e("button",{key:P,class:Y(["star",{active:P<=l.value}]),onClick:j=>_(P),type:"button"},[(s(),i("svg",{xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32",viewBox:"0 0 24 24",fill:P<=l.value?"#FFD700":"#E0E0E0",stroke:"none"},[...y[4]||(y[4]=[e("path",{d:"M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z"},null,-1)])],8,bn))],10,yn)),64))])])):I("",!0),t.value&&l.value>0?(s(),i("div",wn,[ge(e("textarea",{"onUpdate:modelValue":y[1]||(y[1]=P=>p.value=P),class:"content-textarea",placeholder:"请输入您的评价内容(可选)",rows:"4"},null,512),[[$e,p.value]])])):I("",!0),e("button",{class:"submit-btn",disabled:!M.value||u.value,onClick:d},$(u.value?"提交中...":"提交"),9,kn),x.value?(s(),i("div",Sn," 感谢您的评价! ")):I("",!0)])])):I("",!0)}},$n=oe(Cn,[["__scopeId","data-v-80ce6b9f"]]),xn={class:"floating-buttons"},In={__name:"FloatingButtons",setup(r){const o=h(!1),g=h(!1);function w(){o.value=window.scrollY>window.innerHeight}function f(){window.scrollTo({top:0,behavior:"smooth"})}return Le(()=>{window.addEventListener("scroll",w),w()}),Be(()=>{window.removeEventListener("scroll",w)}),(t,l)=>(s(),i("div",xn,[T(ae,{name:"fade"},{default:U(()=>[o.value?(s(),i("button",{key:0,class:"floating-btn scroll-top-btn",onClick:f,title:"返回顶部"},[...l[1]||(l[1]=[e("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[e("polyline",{points:"18 15 12 9 6 15"})],-1)])])):I("",!0)]),_:1}),T($n,{visible:g.value,onClose:l[0]||(l[0]=p=>g.value=!1)},null,8,["visible"])]))}},Un=oe(In,[["__scopeId","data-v-252aecf1"]]);export{Un as F,On as _,qn as a,ft as u};

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.