| 1 |
- import{d as $,r as s,a as j,j as u,b as p,e as r,c as v,f as k,s as H,k as w,B as C,C as _,_ as Q}from"./index-ddf66cb5.js";import{B as W}from"./index-f37a4c38.js";import{F as U,k as X,s as Y}from"./vue-qrcode-reader-1a1b35e0.js";import{I as G}from"./index-e9453d64.js";const J={key:0,style:{height:"100vh",width:"100vw",display:"flex","flex-direction":"column",overflow:"hidden"}},K={style:{padding:"10px 16px","line-height":"0","align-items":"center",display:"flex","justify-content":"space-between"}},L={style:{"margin-left":"16px"}},Z={key:0},ee={key:1},te={style:{"flex-grow":"1","border-top":"1px solid #eee","box-sizing":"border-box"}},oe=$({__name:"Index",emits:["success","close"],setup(ne,{expose:S,emit:T}){const f=s(!1),B=()=>{f.value=!f.value},c=s(!1),N=()=>{c.value=!0},m=()=>{c.value=!1},P=()=>{m(),h("close")},h=T,E=()=>{const t=document.querySelector("input[name]");t.click(),console.log(t)},y=s([]);function x(t){console.log(t),y.value=t.map(e=>e.rawValue),h("success",y.value),m()}const F=s({facingMode:"environment"}),b=[{label:"rear camera",constraints:{facingMode:"environment"}},{label:"front camera",constraints:{facingMode:"user"}}],I=s(b);async function O(){const e=(await navigator.mediaDevices.enumerateDevices()).filter(({kind:n})=>n==="videoinput");I.value=[...b,...e.map(({deviceId:n,label:o})=>({label:`${o} (ID: ${n})`,constraints:{deviceId:n}}))],a.value=""}function z(t,e){for(const n of t){const[o,...d]=n.cornerPoints;e.strokeStyle="red",e.beginPath(),e.moveTo(o.x,o.y);for(const{x:l,y:i}of d)e.lineTo(l,i);e.lineTo(o.x,o.y),e.closePath(),e.stroke()}}function V(t,e){for(const n of t){const{boundingBox:{x:o,y:d,width:l,height:i}}=n;e.lineWidth=2,e.strokeStyle="#007bff",e.strokeRect(o,d,l,i)}}function A(t,e){for(const n of t){const{boundingBox:o,rawValue:d}=n,l=o.x+o.width/2,i=o.y+o.height/2,R=Math.max(12,50*o.width/e.canvas.width);e.font=`bold ${R}px sans-serif`,e.textAlign="center",e.lineWidth=3,e.strokeStyle="#35495e",e.strokeText(n.rawValue,l,i),e.fillStyle="#5cb984",e.fillText(d,l,i)}}const q=s([{text:"nothing (default)",value:void 0},{text:"outline",value:z},{text:"centered text",value:A},{text:"bounding box",value:V}][1]),g=s({aztec:!1,code_128:!1,code_39:!1,code_93:!1,codabar:!1,databar:!1,databar_expanded:!1,data_matrix:!1,dx_film_edge:!1,ean_13:!1,ean_8:!1,itf:!1,maxi_code:!1,micro_qr_code:!1,pdf417:!1,qr_code:!0,rm_qr_code:!1,upc_a:!1,upc_e:!1,linear_codes:!1,matrix_codes:!1}),D=j(()=>Object.keys(g.value).filter(t=>g.value[t])),a=s("");function M(t){a.value=`[${t.name}]: `,t.name==="NotAllowedError"?a.value+="you need to grant camera access permission":t.name==="NotFoundError"?a.value+="no camera on this device":t.name==="NotSupportedError"?a.value+="secure context required (HTTPS, localhost)":t.name==="NotReadableError"?a.value+="is the camera already in use?":t.name==="OverconstrainedError"?a.value+="installed cameras are not suitable":t.name==="StreamApiNotSupportedError"?a.value+="Stream API is not supported in this browser":t.name==="InsecureContextError"?a.value+="Camera access is only permitted in secure context. Use HTTPS or localhost rather than HTTP.":a.value+=t.message,Y({type:"danger",message:a.value,zIndex:9999999})}return S({open:N,stop:m}),(t,e)=>{const n=W,o=G;return c.value?(u(),p("div",J,[r("div",K,[r("div",null,[v(n,{plain:"",icon:"photo-o",type:"primary",size:"small",onClick:E},{default:k(()=>e[0]||(e[0]=[H("打开图片")])),_:1})]),r("div",L,[v(n,{plain:"",icon:"bulb-o",type:"primary",size:"small",onClick:B},{default:k(()=>[f.value?(u(),p("span",Z,"关闭灯光")):(u(),p("span",ee,"打开灯光"))]),_:1})]),e[1]||(e[1]=r("div",{style:{"flex-grow":"1"}},null,-1)),r("div",null,[v(o,{name:"close",size:"30",onClick:P})])]),r("div",te,[c.value?(u(),w(C(U),{key:0,onDetect:x,capture:null})):_("",!0),c.value?(u(),w(C(X),{key:1,torch:f.value,constraints:F.value,track:q.value.value,formats:D.value,onError:M,onDetect:x,onCameraOn:O},null,8,["torch","constraints","track","formats"])):_("",!0)])])):_("",!0)}}});const ce=Q(oe,[["__scopeId","data-v-9fb78c87"]]);export{ce as Q};
|