2 lines
7.3 KiB
JavaScript
2 lines
7.3 KiB
JavaScript
var b=(j,p,u)=>new Promise((_,y)=>{var l=m=>{try{E(u.next(m))}catch(g){y(g)}},c=m=>{try{E(u.throw(m))}catch(g){y(g)}},E=m=>m.done?_(m.value):Promise.resolve(m.value).then(l,c);E((u=u.apply(j,p)).next())});import{_ as se}from"./_plugin-vue_export-helper-DRcqrMy4.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import{v as le,aA as oe,j as ne,W as re,y as v,B as k,C as t,D as a,E as n,M as z,S as R,u as D,Q as o,an as ie,R as i,z as A,K as U,a5 as $,r as C,c as ue}from"./vue-vendor-81Zqb-7t.js";import{ac as ce,g as de,D as ve,c as pe,af as _e,a5 as me,e as fe,j as ye,A as ge,ag as be,ah as ke,ae as Ce,ai as he,N as Ee,O as Se,H as we,f as De,E as h,ab as Ae}from"./element-plus-CSxUwlOP.js";import{b as Ie}from"./assets-BWrZWWEK.js";import{A as F}from"./constants-7urqdt8E.js";import"./index-Dua4jQwX.js";const Ne={class:"asset-scan"},xe={class:"card-header"},je={class:"scan-area"},Oe={class:"video-container"},Te={class:"scan-placeholder"},He={class:"card-header"},Be={class:"history-list"},Me=["onClick"],Ve={class:"history-code"},ze={class:"history-time"},Re={key:0,class:"loading-container"},Ue={key:1,class:"asset-detail"},$e={class:"detail-actions"},Fe=le({__name:"AssetScan",setup(j){oe();const p=C(),u=C(!1),_=C(""),y=C(!1),l=C(null),c=C([]),E=()=>b(this,null,function*(){u.value?g():yield m()}),m=()=>b(this,null,function*(){try{const s=yield navigator.mediaDevices.getUserMedia({video:{facingMode:"environment"}});p.value&&(p.value.srcObject=s,u.value=!0,K())}catch(s){console.error("启动相机失败:",s),h.error("无法访问相机,请检查权限设置")}}),g=()=>{p.value&&p.value.srcObject&&(p.value.srcObject.getTracks().forEach(e=>e.stop()),p.value.srcObject=null),u.value=!1};let S=null;const K=()=>{S=setInterval(()=>{if(!u.value){S&&clearInterval(S);return}},3e3)},O=()=>b(this,null,function*(){if(!_.value.trim()){h.warning("请输入资产编码");return}yield T(_.value),l.value&&P(_.value)}),T=s=>b(this,null,function*(){y.value=!0;try{const e=yield Ie(s);l.value=e,h.success("查询成功")}catch(e){h.error("未找到该资产"),l.value=null}finally{y.value=!1}}),P=s=>{const e=c.value.findIndex(f=>f.assetCode===s);e!==-1&&c.value.splice(e,1),c.value.unshift({assetCode:s,timestamp:Date.now()}),c.value.length>20&&(c.value=c.value.slice(0,20)),localStorage.setItem("scan_history",JSON.stringify(c.value))},J=()=>{const s=localStorage.getItem("scan_history");if(s)try{c.value=JSON.parse(s)}catch(e){console.error("加载历史记录失败",e)}},L=()=>{c.value=[],localStorage.removeItem("scan_history"),h.success("历史记录已清空")},Q=s=>b(this,null,function*(){_.value=s.assetCode,yield T(s.assetCode)}),W=s=>Ae(s).format("MM-DD HH:mm"),q=ue(()=>{var s;return((s=l.value)==null?void 0:s.dynamicAttributes)&&Object.keys(l.value.dynamicAttributes).length>0}),G=s=>{const e=Object.values(F).find(f=>f.value===s);return(e==null?void 0:e.type)||""},X=s=>{const e=Object.values(F).find(f=>f.value===s);return(e==null?void 0:e.label)||s},Y=()=>{h.info("完整详情功能开发中")},Z=()=>{l.value=null,_.value=""};return ne(()=>{J()}),re(()=>{g(),S&&clearInterval(S)}),(s,e)=>{const f=ce,w=ye,H=pe,B=me,ee=fe,N=ve,x=Ce,M=de,d=Se,ae=we,V=Ee,te=De;return v(),k("div",Ne,[t(f,{onBack:e[0]||(e[0]=r=>s.$router.back()),title:"返回",content:"扫码查询"}),t(te,{gutter:20,style:{"margin-top":"20px"}},{default:a(()=>[t(M,{span:12},{default:a(()=>[t(N,null,{header:a(()=>[n("div",xe,[e[2]||(e[2]=n("span",null,"扫码查询",-1)),t(w,{type:"primary",icon:u.value?D(be):D(ke),onClick:E},{default:a(()=>[o(i(u.value?"关闭相机":"打开相机"),1)]),_:1},8,["icon"])])]),default:a(()=>[n("div",je,[z(n("div",Oe,[n("video",{ref_key:"videoRef",ref:p,class:"scan-video",autoplay:"",muted:"",playsinline:""},null,512),e[3]||(e[3]=n("div",{class:"scan-overlay"},[n("div",{class:"scan-frame"}),n("p",{class:"scan-tip"},"将二维码放入框内")],-1))],512),[[R,u.value]]),z(n("div",Te,[t(H,{size:80,color:"#909399"},{default:a(()=>[t(D(_e))]),_:1}),e[4]||(e[4]=n("p",null,"点击上方按钮打开相机",-1))],512),[[R,!u.value]]),t(B,null,{default:a(()=>[...e[5]||(e[5]=[o("或手动输入",-1)])]),_:1}),t(ee,{modelValue:_.value,"onUpdate:modelValue":e[1]||(e[1]=r=>_.value=r),placeholder:"请输入资产编码",clearable:"",onKeyup:ie(O,["enter"])},{append:a(()=>[t(w,{icon:D(ge),onClick:O},{default:a(()=>[...e[6]||(e[6]=[o(" 查询 ",-1)])]),_:1},8,["icon"])]),_:1},8,["modelValue"])])]),_:1}),t(N,{style:{"margin-top":"20px"}},{header:a(()=>[n("div",He,[e[8]||(e[8]=n("span",null,"扫码历史",-1)),t(w,{link:"",type:"primary",onClick:L},{default:a(()=>[...e[7]||(e[7]=[o(" 清空 ",-1)])]),_:1})])]),default:a(()=>[n("div",Be,[c.value.length===0?(v(),A(x,{key:0,description:"暂无扫码记录"})):(v(!0),k(U,{key:1},$(c.value,(r,I)=>(v(),k("div",{key:I,class:"history-item",onClick:Ke=>Q(r)},[n("div",Ve,i(r.assetCode),1),n("div",ze,i(W(r.timestamp)),1)],8,Me))),128))])]),_:1})]),_:1}),t(M,{span:12},{default:a(()=>[t(N,null,{header:a(()=>[...e[9]||(e[9]=[n("span",null,"资产详情",-1)])]),default:a(()=>[y.value?(v(),k("div",Re,[t(H,{class:"is-loading",size:40},{default:a(()=>[t(D(he))]),_:1}),e[10]||(e[10]=n("p",null,"查询中...",-1))])):l.value?(v(),k("div",Ue,[t(V,{title:"基本信息",column:1,border:""},{default:a(()=>[t(d,{label:"资产编码"},{default:a(()=>[o(i(l.value.assetCode),1)]),_:1}),t(d,{label:"资产名称"},{default:a(()=>[o(i(l.value.assetName),1)]),_:1}),t(d,{label:"设备类型"},{default:a(()=>{var r;return[o(i((r=l.value.deviceType)==null?void 0:r.typeName),1)]}),_:1}),t(d,{label:"品牌"},{default:a(()=>{var r;return[o(i(((r=l.value.brand)==null?void 0:r.brandName)||"-"),1)]}),_:1}),t(d,{label:"型号"},{default:a(()=>[o(i(l.value.model||"-"),1)]),_:1}),t(d,{label:"序列号"},{default:a(()=>[o(i(l.value.serialNumber||"-"),1)]),_:1}),t(d,{label:"所属网点"},{default:a(()=>{var r;return[o(i((r=l.value.organization)==null?void 0:r.orgName),1)]}),_:1}),t(d,{label:"位置"},{default:a(()=>[o(i(l.value.location||"-"),1)]),_:1}),t(d,{label:"状态"},{default:a(()=>[t(ae,{type:G(l.value.status)},{default:a(()=>[o(i(X(l.value.status)),1)]),_:1},8,["type"])]),_:1}),t(d,{label:"采购价格"},{default:a(()=>[o(i(l.value.purchasePrice?`¥${l.value.purchasePrice.toFixed(2)}`:"-"),1)]),_:1}),t(d,{label:"采购日期"},{default:a(()=>[o(i(l.value.purchaseDate||"-"),1)]),_:1}),t(d,{label:"保修截止"},{default:a(()=>[o(i(l.value.warrantyExpireDate||"-"),1)]),_:1})]),_:1}),t(B,{"content-position":"left"},{default:a(()=>[...e[11]||(e[11]=[o("动态属性",-1)])]),_:1}),q.value?(v(),A(V,{key:0,column:2,border:""},{default:a(()=>[(v(!0),k(U,null,$(l.value.dynamicAttributes,(r,I)=>(v(),A(d,{key:I,label:I},{default:a(()=>[o(i(r),1)]),_:2},1032,["label"]))),128))]),_:1})):(v(),A(x,{key:1,description:"暂无动态属性","image-size":80})),n("div",$e,[t(w,{type:"primary",onClick:Y},{default:a(()=>[...e[12]||(e[12]=[o(" 查看完整详情 ",-1)])]),_:1}),t(w,{onClick:Z},{default:a(()=>[...e[13]||(e[13]=[o(" 清空 ",-1)])]),_:1})])])):(v(),A(x,{key:2,description:"请扫码或输入资产编码查询"}))]),_:1})]),_:1})]),_:1})])}}}),na=se(Fe,[["__scopeId","data-v-f855dff2"]]);export{na as default};
|