PageSourceSearch

https://www.mechrevo.com/en/_nuxt/c-3rsCTN.js

js mechrevo.com collected 2026-10-02 11:06:30 UTC 10,329 bytes, 1 lines download raw bytes

1import{o as n,g as C,c as a,a as s,k as b,q as S,U as O,A as T,b as p,w as $,r as J,Y as K,t as y,N as Q,x as v,s as h,a0 as W,i as E,B as X,F as V,D as A,C as j,d as M,f as F,a1 as Z,a2 as ss,n as es,u as ts,O as H,_ as os}from"./CBVuVATE.js";import{u as ns}from"./7wDI_HF0.js";import{_ as ls}from"./CbBh4sUL.js";import{I as as}from"./C-s4FLFn.js";import{_ as is}from"./CfXGDlWm.js";import{_ as cs}from"./DlqKviNY.js";import{_ as rs}from"./CKGOmlzf.js";import{p as ds}from"./DJAT4Apd.js";import{S as us}from"./BmBfj051.js";import{_ as U}from"./DlAUqK2U.js";import{A as _s}from"./qxRBVmAk.js";import"./pb_TXfmz.js";import"./wy6QX1Ie.js";import"./C9PSfLM3.js";import"./BWPJAYnm.js";import"./D6qJbdzf.js";import"./DDkvXkMO.js";import"./BvDKD9B8.js";import"./D1mFsme-.js";import"./BUbgdMAE.js";import"./CpVhHdWL.js";import"./Dua2NKO9.js";import"./Deuc0E8-.js";import"./BOzQKgBA.js";const ps={class:"modal-content"},vs={class:"modal-body"},ms={key:0,class:"manual-viewer"},bs=["src"],fs={key:1,class:"no-manual"},hs={class:"modal-footer"},gs={__name:"ManualModal",props:{visible:{type:Boolean,default:!1},manualUrl:{type:String,default:""}},emits:["update:visible"],setup(_,{emit:d}){const t=_,i=d,c=()=>{i("update:visible",!1)},m=()=>{t.manualUrl&&window.open(t.manualUrl,"_blank")};return(k,r)=>(n(),C(O,{to:"body"},[_.visible?(n(),a("div",{key:0,class:"modal-overlay",onClick:S(c,["self"])},[s("div",ps,[s("div",{class:"modal-header"},[r[0]||(r[0]=s("h3",null,"产品说明书",-1)),s("button",{class:"close-btn",onClick:c},"✕")]),s("div",vs,[_.manualUrl?(n(),a("div",ms,[s("iframe",{src:_.manualUrl,class:"manual-iframe"},null,8,bs)])):(n(),a("div",fs,[...r[1]||(r[1]=[s("p",null,"暂无产品说明书",-1)])]))]),s("div",hs,[_.manualUrl?(n(),a("button",{key:0,class:"btn-secondary",onClick:m}," 下载说明书 ")):b("",!0),s("button",{class:"btn-primary",onClick:c},"关闭")])])])):b("",!0)]))}},ks=U(gs,[["__scopeId","data-v-ff80b2af"]]),ys={class:"modal-body"},Cs={class:"confirm-section"},ws={class:"checkbox-label"},xs={class:"button-group"},$s={__name:"UnbindDeviceModal",props:{visible:{type:Boolean,default:!1},device:{type:Object,default:null}},emits:["update:visible","success"],setup(_,{emit:d}){const t=_,i=d,c=v(!1),m=v(!1),k=async()=>{if(!c.value){h.error("请确认您已阅读并同意解绑须知");return}if(!t.device?.sn){h.error("设备信息不完整");return}m.value=!0;try{await W(t.device.sn),h.success("设备解绑成功"),r(),i("success")}catch(g){h.error(g.message||"解绑失败")}finally{m.value=!1}},r=()=>{i("update:visible",!1)},D=()=>{c.value=!1};return T(()=>t.visible,g=>{g||setTimeout(D,300)}),(g,u)=>(n(),C(O,{to:"body"},[p(Q,{name:"modal"},{default:$(()=>[_.visible?(n(),a("div",{key:0,class:"modal-overlay",onClick:r},[s("div",{class:"modal-container",onClick:u[1]||(u[1]=S(()=>{},["stop"]))},[s("div",{class:"modal-header"},[u[2]||(u[2]=s("h2",{class:"modal-title"},"解绑设备",-1)),s("button",{class:"modal-close",onClick:r},"×")]),s("div",ys,[u[4]||(u[4]=s("div",{class:"warning-section"},[s("div",{class:"warning-icon"},"⚠️"),s("h3",{class:"warning-title"},"设备解绑须知"),s("ul",{class:"warning-list"},[s("li",null,"解绑后,您绑定的设备信息和服务单记录将被清空"),s("li",null,"如有未完成的服务单,请等待完成后再申请解绑")])],-1)),s("div",Cs,[s("label",ws,[J(s("input",{type:"checkbox","onUpdate:modelValue":u[0]||(u[0]=I=>c.value=I)},null,512),[[K,c.value]]),u[3]||(u[3]=s("span",null,"我已阅读并同意以上须知,确认解绑设备",-1))])]),s("div",xs,[s("button",{class:"btn-cancel",onClick:r},"取消"),s("button",{class:"btn-danger",onClick:k},y(m.value?"解绑中...":"确认解绑"),1)])])])])):b("",!0)]),_:1})]))}},Us=U($s,[["__scopeId","data-v-147ed90f"]]),Ds={class:"user-devices-page"},Is={key:0,class:"devices-section"},Ms={class:"container"},Ss={key:0,class:"empty-state"},Ns={key:1},Bs={key:0,class:"single-device-container"},Ts=["onClick"],zs={class:"single-device-content"},Ls={class:"single-device-info"},Ps={class:"device-name"},Vs={class:"device-model"},As={class:"device-sn"},js={class:"single-device-image-wrapper"},Hs=["src","alt"],Os=["onClick"],Es={key:1,class:"multiple-device-container"},Fs={class:"devices-grid"},qs=["onClick"],Rs={class:"device-image-wrapper"},Ys=["src","alt"],Gs=["onClick"],Js={class:"device-info-wrapper"},Ks={class:"device-name"},Qs={class:"device-model"},Ws={class:"device-sn"},Xs={class:"bind-wrapper"}
1,Zs={key:0,class:"section-title"},se={class:"bind-section"},ee={class:"bind-content"},te={key:0,class:"bind-title"},oe={key:1,class:"bind-subtitle"},ne={class:"bind-form"},le={class:"input-wrapper"},ae={class:"mx-2"},ie={class:"contact-section"},ce={class:"container"},re={class:"contact-grid"},de={__name:"Devices",setup(_){const d=v(""),t=v([]),i=v(null),c=v(!1),m=v(!1),k=v(!1),r=v(!1),D=v(null),g=async()=>{try{const l=await Z();t.value=l.objects||[],t.value.length>0&&(i.value=t.value[0])}catch(l){console.error("加载设备列表失败:",l)}},u=async()=>{if(!d.value.trim()){h.error("请输入SN序列号");return}c.value=!0;try{const l=await ss(d.value.trim().toUpperCase());console.log("res",l),d.value="",await g(),h.success("设备绑定成功")}catch(l){console.log("error",l),h.error(l.response?.data?.error||"请求失败, 请稍后再试")}finally{c.value=!1}},I=l=>{i.value=l},z=l=>{D.value=l,r.value=!0},q=async()=>{await g(),h.success("设备已成功解绑")},L=l=>{if(!l?.product?.params_with_labels)return"";const o=l.product.params_with_labels,f=x=>o.find(N=>N.key===x)?.value,w=[f("color"),f("screen_size"),f("cpu_model"),f("gpu_model"),f("ram_size"),f("storage_size")].filter(x=>x);return w.length>0?w.join(" | "):""},R=v([]),P=async()=>{if(console.log("加载驱动列表",i.value?.product?.id),!!i.value?.product?.id)try{const l=await ds.getProductDrivers(i.value?.product?.id);console.log("res",l),R.value=l.objects||[]}catch(l){console.error("获取驱动列表失败:",l)}};return T(i,()=>{i.value?.product?.id&&P()}),E(()=>{g(),P()}),(l,o)=>{const f=X("IconifyIcon"),w=ls,x=as,N=is,Y=cs,G=rs;return n(),a("div",Ds,[t.value.length>0?(n(),a("section",Is,[s("div",Ms,[o[10]||(o[10]=s("h3",{class:"section-title"},"我的设备",-1)),t.value.length===0?(n(),a("div",Ss,[...o[5]||(o[5]=[s("p",null,"暂无绑定设备",-1),s("p",{class:"empty-tip"},"请在上方输入SN序列号绑定您的设备",-1)])])):(n(),a("div",Ns,[t.value.length===1?(n(),a("div",Bs,[(n(!0),a(V,null,A(t.value,e=>(n(),a("div",{key:e.sn,class:j(["single-device-card",{active:i.value?.sn===e.sn}]),onClick:B=>I(e)},[s("div",zs,[s("div",Ls,[s("h4",Ps,[o[6]||(o[6]=M(" 机械革命 (MECHREVO)",-1)),o[7]||(o[7]=s("br",null,null,-1)),M(" "+y(e.material_name),1)]),s("p",Vs,y(L(e)),1),s("p",As,"SN码 : "+y(e.sn),1)]),s("div",js,[s("img",{src:e.org_info_hash?.materialImage,alt:e.name,class:"single-device-image"},null,8,Hs),s("button",{class:"unbind-btn",onClick:S(B=>z(e),["stop"])},"解绑",8,Os)])]),e.product?.display_products?.[0]?(n(),C(w,{key:0,to:`/products/${e.product.display_products[0].slug}/supports`,class:"support-link"},{default:$(()=>[o[8]||(o[8]=M(" 技术支持 ",-1)),p(f,{width:"20px",height:"20px",icon:"lsicon:right-outline",class:"inline-block"})]),_:1},8,["to"])):b("",!0)],10,Ts))),128))])):(n(),a("div",Es,[s("div",Fs,[(n(!0),a(V,null,A(t.value,e=>(n(),a("div",{key:e.sn,class:j(["device-card",{active:i.value?.sn===e.sn}]),onClick:B=>I(e)},[s("div",Rs,[s("img",{src:e.org_info_hash?.materialImage,alt:e.material_name,class:"device-image"},null,8,Ys),s("button",{class:"unbind-btn",onClick:S(B=>z(e),["stop"])},"解绑",8,Gs)]),s("div",Js,[s("h4",Ks,y(e.material_name),1),s("p",Qs,y(L(e)),1),s("p",Ws,"SN码: "+y(e.sn),1)]),e.product?.display_products?.[0]?(n(),C(w,{key:0,to:`/products/${e.product.display_products[0].slug}/supports`,class:"support-link"},{default:$(()=>[o[9]||(o[9]=M(" 技术支持 ",-1)),p(f,{width:"20px",height:"20px",icon:"lsicon:right-outline",class:"inline-block"})]),_:1},8,["to"])):b("",!0)],10,qs))),128))])]))]))])])):b("",!0),b("",!0),s("section",Xs,[t.value.length>0?(n(),a("h3",Zs,"绑定设备序列号")):b("",!0),s("div",se,[s("div",ee,[t.value.length===0?(n(),a("h2",te,"绑定设备序列号")):b("",!0),t.value.length===0?(n(),a("p",oe,"绑定设备后您将获得更多官方指引,快捷随行")):b("",!0),s("div",ne,[s("div",le,[p(F(_s),{value:d.value,"onUpdate:value":o[0]||(o[0]=e=>d.value=e),placeholder:"请输入您设备的序列号","enter-button":c.value?"绑定中...":"  绑 定  ",size:"large",onSearch:u},{prefix:$(()=>[s("span",ae,[p(x,{name:"find",size:"24px",color:"#ccc"})])]),_:1},8,["value","enter-button"])])]),s("button",{class:"help-btn",onClick:o[1]||(o[1]=e=>m.value=!0)}," 如何查询设备的序列号? ")])])]),s("section",ie,[s("div",ce,[o[23]||(o[23]=s("h3",{class:"section-title"},"联系我们",-1)),s("div",re,[p(N,{style:{"margin-bottom":"20px"}}),p(Y)])])]),p(G),p(us,{visible:m.value,"onUpdate:visible":o[2]||(o[2]=e=>m.value=e)},null,8,["visible"]),p(ks,{visible:k.value,"onUpdate:visible":o[3]||(o[3]=e=>k.value=e),"manual-url":i.value?.manual_url},null,8,["visible","manual-url"]),p(Us,{visible:r.value,"onUpdate:visible":o[4]||(o[4]=e=>r.value=e),device:D.value,onSuccess:q},null,8,["visible","device"])])}}},ue=U(de,[["__scopeId","data-v-6a35b00c"]]),_e={class:"mobile-user-devices"},pe={__name:"Devices",setup(_){return(d,t)=>(n(),a("div",_e,[...t[0]||(t[0]=[s("div",{class:"temp-notice"},[s("h2",null,"我的设备 (移动端)"),s("p",null,"移动端版本正在开发中..."),s("p",null,"请使用PC端访问完整功能")],-1)])]))}},ve=U(pe,[["__scopeId","data-v-2403e355"]]),me={class:"user-devices-full-page"},be={__name:"devices",setup(_){const{isMobile:d}=ns(),t=es(),i=()=>{console.log("检查登录状态:",t.isLoggedIn,t.token),!t.isLoggedIn&&!t.token&&(h.error("请先登录"),H("/"))};return E(async()=>{t.token?(console.log("已有 token,直接检查"),i()):(console.log("等待 token 初始化..."),setTimeout(()=>{i()},100))}),T(()=>t.isLoggedIn,c=>{console.log("登录状态变化:",c),c||H("/")}),ts({title:"我的设备 - 机械革命"}),(c,m)=>{const k=os;return n(),C(k,null,{default:$(()=>[s("div",me,[F(d)?(n(),C(ve,{key:1})):(n(),C(ue,{key:0}))])]),_:1})}}},Oe=U(be,[["__scopeId","data-v-930da242"]]);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.