龙三郎 1 year ago
parent
commit
26e86661b5
49 changed files with 241 additions and 37 deletions
  1. 0 0
      dist/assets/Changepassword-ace7d226.js
  2. 1 1
      dist/assets/CusNavigation-23ee1d8e.js
  3. 0 0
      dist/assets/Detail-c3b8f6d0.js
  4. 0 0
      dist/assets/Index-09857b9f.js
  5. 0 0
      dist/assets/Index-1d58271d.js
  6. 0 0
      dist/assets/Index-308fbada.js
  7. 0 0
      dist/assets/Index-5118d37d.js
  8. 0 0
      dist/assets/Index-604b5279.js
  9. 0 0
      dist/assets/Index-77e9fc0c.js
  10. 0 0
      dist/assets/Index-78d7f571.js
  11. 0 0
      dist/assets/Index-836cece0.js
  12. 0 0
      dist/assets/Index-8cf69ab7.js
  13. 0 0
      dist/assets/Index-92528b76.js
  14. 0 0
      dist/assets/Index-b7a0c0f4.js
  15. 0 0
      dist/assets/Index-bd47c9eb.js
  16. 0 0
      dist/assets/Index-bde6e49e.js
  17. 0 0
      dist/assets/Index-c4560d2c.js
  18. 0 0
      dist/assets/Index-deebab7c.js
  19. 1 0
      dist/assets/Index3-88d0200b.css
  20. 0 0
      dist/assets/Index3-986cd5fa.js
  21. 0 0
      dist/assets/Index3-d0c533aa.js
  22. 0 0
      dist/assets/Location-94956b71.js
  23. 0 0
      dist/assets/Log-9b470b6f.js
  24. 0 0
      dist/assets/function-call-a6e704e9.js
  25. 0 0
      dist/assets/index-1ca3ff9b.js
  26. 0 0
      dist/assets/index-2798ef46.js
  27. 1 1
      dist/assets/index-2bf92ff3.js
  28. 0 0
      dist/assets/index-2d51967a.js
  29. 0 0
      dist/assets/index-3b201526.js
  30. 1 1
      dist/assets/index-4f6aca6a.js
  31. 0 0
      dist/assets/index-6ab71683.js
  32. 1 1
      dist/assets/index-7879226f.js
  33. 0 4
      dist/assets/index-84dbbcf9.js
  34. 1 1
      dist/assets/index-93c30256.js
  35. 1 1
      dist/assets/index-9b694a80.js
  36. 1 1
      dist/assets/index-b7b68d49.js
  37. 1 1
      dist/assets/index-b93b95c6.js
  38. 0 0
      dist/assets/index-cce3d2f5.js
  39. 4 0
      dist/assets/index-dfe95a46.js
  40. 1 1
      dist/assets/index-fbe0edcb.js
  41. 1 1
      dist/assets/on-popup-reopen-ea59097f.js
  42. 1 1
      dist/assets/request-f5648540.js
  43. 1 1
      dist/assets/use-placeholder-7b2508ff.js
  44. 1 1
      dist/assets/use-route-b714f72d.js
  45. 0 1
      dist/assets/use-scope-id-35da71d1.js
  46. 1 0
      dist/assets/use-scope-id-9a7de863.js
  47. 0 0
      dist/assets/util-1620efec.js
  48. 1 1
      dist/index.html
  49. 221 18
      src/pages/demo/Index3.vue

File diff suppressed because it is too large
+ 0 - 0
dist/assets/Changepassword-ace7d226.js


+ 1 - 1
dist/assets/CusNavigation-b7a86075.js → dist/assets/CusNavigation-23ee1d8e.js

@@ -1 +1 @@
-import{d as k,r as v,u as x,j as n,b as i,c as s,f as _,W as c,e as p,E as d,x as w,F as C,_ as P}from"./index-84dbbcf9.js";import{P as B}from"./index-ba3f0885.js";import{I as N}from"./index-7d547c99.js";const S={style:{height:"38px",padding:"10px",display:"flex","align-items":"center","border-bottom":"1px solid #f0f0f0"}},z={style:{"font-weight":"bold","font-size":"1.1rem",color:"#191A1A"}},A={style:{"flex-grow":"1"}},I=k({__name:"CusNavigation",props:{title:{type:String,default:void 0},gobackabled:{type:Boolean,default:!1},searchabled:{type:Boolean,default:!1},plusabled:{type:Boolean,default:!1}},setup(t,{expose:h}){const l=v(!1),a=v(!1),b=x(),y=o=>{console.log(o),b.go(-1)},f=()=>{l.value=!1},m=()=>{a.value=!1};return h({closeSearchPopup:f,closePlusPopup:m,closeAllPopup:()=>{f(),m()}}),(o,e)=>{const g=B,r=N;return n(),i(C,null,[s(g,{show:l.value,"onUpdate:show":e[0]||(e[0]=u=>l.value=u),position:"top","close-on-click-overlay":!0},{default:_(()=>[c(o.$slots,"search",{},void 0,!0)]),_:3},8,["show"]),s(g,{show:a.value,"onUpdate:show":e[1]||(e[1]=u=>a.value=u),position:"top"},{default:_(()=>[c(o.$slots,"plus",{},void 0,!0)]),_:3},8,["show"]),p("div",S,[t.gobackabled?(n(),i("div",{key:0,style:{"line-height":"0px"},class:"cus-goback",onClick:y},[s(r,{name:"static/images/icon-back.png",size:"1.7rem"})])):d("",!0),p("div",z,[p("span",null,w(t.title),1)]),p("div",A,[c(o.$slots,"default",{},void 0,!0)]),t.searchabled?(n(),i("div",{key:1,style:{"line-height":"0px","margin-left":"10px"},onClick:e[2]||(e[2]=()=>{l.value=!0})},[s(r,{name:"static/images/icon-search-black.png",size:"2rem"})])):d("",!0),t.plusabled?(n(),i("div",{key:2,style:{"line-height":"0px","margin-left":"10px"},onClick:e[3]||(e[3]=()=>{a.value=!0})},[s(r,{name:"plus",size:"1.5rem"})])):d("",!0)])],64)}}});const U=P(I,[["__scopeId","data-v-0288d4b2"]]);export{U as _};
+import{d as k,r as v,u as x,j as n,b as i,c as s,f as _,W as c,e as p,E as d,x as w,F as C,_ as P}from"./index-dfe95a46.js";import{P as B}from"./index-1ca3ff9b.js";import{I as N}from"./index-cce3d2f5.js";const S={style:{height:"38px",padding:"10px",display:"flex","align-items":"center","border-bottom":"1px solid #f0f0f0"}},z={style:{"font-weight":"bold","font-size":"1.1rem",color:"#191A1A"}},A={style:{"flex-grow":"1"}},I=k({__name:"CusNavigation",props:{title:{type:String,default:void 0},gobackabled:{type:Boolean,default:!1},searchabled:{type:Boolean,default:!1},plusabled:{type:Boolean,default:!1}},setup(t,{expose:h}){const l=v(!1),a=v(!1),b=x(),y=o=>{console.log(o),b.go(-1)},f=()=>{l.value=!1},m=()=>{a.value=!1};return h({closeSearchPopup:f,closePlusPopup:m,closeAllPopup:()=>{f(),m()}}),(o,e)=>{const g=B,r=N;return n(),i(C,null,[s(g,{show:l.value,"onUpdate:show":e[0]||(e[0]=u=>l.value=u),position:"top","close-on-click-overlay":!0},{default:_(()=>[c(o.$slots,"search",{},void 0,!0)]),_:3},8,["show"]),s(g,{show:a.value,"onUpdate:show":e[1]||(e[1]=u=>a.value=u),position:"top"},{default:_(()=>[c(o.$slots,"plus",{},void 0,!0)]),_:3},8,["show"]),p("div",S,[t.gobackabled?(n(),i("div",{key:0,style:{"line-height":"0px"},class:"cus-goback",onClick:y},[s(r,{name:"static/images/icon-back.png",size:"1.7rem"})])):d("",!0),p("div",z,[p("span",null,w(t.title),1)]),p("div",A,[c(o.$slots,"default",{},void 0,!0)]),t.searchabled?(n(),i("div",{key:1,style:{"line-height":"0px","margin-left":"10px"},onClick:e[2]||(e[2]=()=>{l.value=!0})},[s(r,{name:"static/images/icon-search-black.png",size:"2rem"})])):d("",!0),t.plusabled?(n(),i("div",{key:2,style:{"line-height":"0px","margin-left":"10px"},onClick:e[3]||(e[3]=()=>{a.value=!0})},[s(r,{name:"plus",size:"1.5rem"})])):d("",!0)])],64)}}});const U=P(I,[["__scopeId","data-v-0288d4b2"]]);export{U as _};

File diff suppressed because it is too large
+ 0 - 0
dist/assets/Detail-c3b8f6d0.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/Index-09857b9f.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/Index-1d58271d.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/Index-308fbada.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/Index-5118d37d.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/Index-604b5279.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/Index-77e9fc0c.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/Index-78d7f571.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/Index-836cece0.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/Index-8cf69ab7.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/Index-92528b76.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/Index-b7a0c0f4.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/Index-bd47c9eb.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/Index-bde6e49e.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/Index-c4560d2c.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/Index-deebab7c.js


+ 1 - 0
dist/assets/Index3-88d0200b.css

@@ -0,0 +1 @@
+.error[data-v-7c1f2a40]{font-weight:700;color:red}.barcode-format-checkbox[data-v-7c1f2a40]{margin-right:10px;white-space:nowrap;display:inline-block}

File diff suppressed because it is too large
+ 0 - 0
dist/assets/Index3-986cd5fa.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/Index3-d0c533aa.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/Location-94956b71.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/Log-9b470b6f.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/function-call-a6e704e9.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/index-1ca3ff9b.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/index-2798ef46.js


+ 1 - 1
dist/assets/index-75f5b35a.js → dist/assets/index-2bf92ff3.js

@@ -1 +1 @@
-import{a as m}from"./axios-9cbf0d09.js";import{q as f,U as u}from"./index-84dbbcf9.js";import{s as l}from"./function-call-d4acb7bb.js";const a=f(),i=m.create({baseURL:"/forward-service",timeout:1e4}),h=function(c,r,s){const{url:o,data:e}=c;i.post(o,e,{headers:{token:a.token}}).then(t=>{const n=t.data;n.code==0?r&&r(n):n.code==3?a.isLogin=!1:s&&s(n.msg)},t=>{s&&s(t.message)}).catch(t=>{console.log(t)})},k=function(c){const{url:r,data:s}=c;return i.post(r,s,{headers:{token:a.token}}).then(o=>{const e=o.data;if(e.code==0)return Promise.resolve(e);if(e.code==3)console.log(e),a.isLogin=!1,l({message:e.msg,onClose:()=>{u()}});else return Promise.reject(e.msg)},o=>Promise.reject(o.message))};export{h as a,k as p};
+import{a as m}from"./axios-9cbf0d09.js";import{q as f,U as u}from"./index-dfe95a46.js";import{s as l}from"./function-call-a6e704e9.js";const a=f(),i=m.create({baseURL:"/forward-service",timeout:1e4}),h=function(c,r,s){const{url:o,data:e}=c;i.post(o,e,{headers:{token:a.token}}).then(t=>{const n=t.data;n.code==0?r&&r(n):n.code==3?a.isLogin=!1:s&&s(n.msg)},t=>{s&&s(t.message)}).catch(t=>{console.log(t)})},k=function(c){const{url:r,data:s}=c;return i.post(r,s,{headers:{token:a.token}}).then(o=>{const e=o.data;if(e.code==0)return Promise.resolve(e);if(e.code==3)console.log(e),a.isLogin=!1,l({message:e.msg,onClose:()=>{u()}});else return Promise.reject(e.msg)},o=>Promise.reject(o.message))};export{h as a,k as p};

File diff suppressed because it is too large
+ 0 - 0
dist/assets/index-2d51967a.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/index-3b201526.js


+ 1 - 1
dist/assets/index-5dba0a6a.js → dist/assets/index-4f6aca6a.js

@@ -1 +1 @@
-import{d as S,c as t,M as k}from"./index-84dbbcf9.js";import{c as x,t as B,d as I,I as P,w as T}from"./index-7d547c99.js";import{H as h}from"./constant-eba5e2d8.js";const[p,r]=x("tag"),v={size:String,mark:Boolean,show:B,type:I("default"),color:String,plain:Boolean,round:Boolean,textColor:String,closeable:Boolean};var w=S({name:p,props:v,emits:["close"],setup(o,{slots:n,emit:s}){const c=e=>{e.stopPropagation(),s("close",e)},i=()=>o.plain?{color:o.textColor||o.color,borderColor:o.color}:{color:o.textColor,background:o.color},d=()=>{var e;const{type:m,mark:u,plain:f,round:g,size:a,closeable:C}=o,l={mark:u,plain:f,round:g};a&&(l[a]=a);const b=C&&t(P,{name:"cross",class:[r("close"),h],onClick:c},null);return t("span",{style:i(),class:r([l,m])},[(e=n.default)==null?void 0:e.call(n),b])};return()=>t(k,{name:o.closeable?"van-fade":void 0},{default:()=>[o.show?d():null]})}});const A=T(w);export{A as T};
+import{d as S,c as t,M as k}from"./index-dfe95a46.js";import{c as x,t as B,d as I,I as P,w as T}from"./index-cce3d2f5.js";import{H as h}from"./constant-eba5e2d8.js";const[p,r]=x("tag"),v={size:String,mark:Boolean,show:B,type:I("default"),color:String,plain:Boolean,round:Boolean,textColor:String,closeable:Boolean};var w=S({name:p,props:v,emits:["close"],setup(o,{slots:n,emit:s}){const c=e=>{e.stopPropagation(),s("close",e)},i=()=>o.plain?{color:o.textColor||o.color,borderColor:o.color}:{color:o.textColor,background:o.color},d=()=>{var e;const{type:m,mark:u,plain:f,round:g,size:a,closeable:C}=o,l={mark:u,plain:f,round:g};a&&(l[a]=a);const b=C&&t(P,{name:"cross",class:[r("close"),h],onClick:c},null);return t("span",{style:i(),class:r([l,m])},[(e=n.default)==null?void 0:e.call(n),b])};return()=>t(k,{name:o.closeable?"van-fade":void 0},{default:()=>[o.show?d():null]})}});const A=T(w);export{A as T};

File diff suppressed because it is too large
+ 0 - 0
dist/assets/index-6ab71683.js


+ 1 - 1
dist/assets/index-1589a215.js → dist/assets/index-7879226f.js

@@ -1 +1 @@
-import{c as u,e as d,l as f,n as l,d as m,f as y,w as S}from"./index-7d547c99.js";import{c as a,d as p,a as x}from"./index-84dbbcf9.js";const[g,r]=u("loading"),v=Array(12).fill(null).map((e,n)=>a("i",{class:r("line",String(n+1))},null)),z=a("svg",{class:r("circular"),viewBox:"25 25 50 50"},[a("circle",{cx:"50",cy:"50",r:"20",fill:"none"},null)]),I={size:l,type:m("circular"),color:String,vertical:Boolean,textSize:l,textColor:String};var C=p({name:g,props:I,setup(e,{slots:n}){const c=x(()=>d({color:e.color},f(e.size))),i=()=>{const t=e.type==="spinner"?v:z;return a("span",{class:r("spinner",e.type),style:c.value},[n.icon?n.icon():t])},o=()=>{var t;if(n.default)return a("span",{class:r("text"),style:{fontSize:y(e.textSize),color:(t=e.textColor)!=null?t:e.color}},[n.default()])};return()=>{const{type:t,vertical:s}=e;return a("div",{class:r([t,{vertical:s}]),"aria-live":"polite","aria-busy":!0},[i(),o()])}}});const _=S(C);export{_ as L};
+import{c as u,e as d,l as f,n as l,d as m,f as y,w as S}from"./index-cce3d2f5.js";import{c as a,d as p,a as x}from"./index-dfe95a46.js";const[g,r]=u("loading"),v=Array(12).fill(null).map((e,n)=>a("i",{class:r("line",String(n+1))},null)),z=a("svg",{class:r("circular"),viewBox:"25 25 50 50"},[a("circle",{cx:"50",cy:"50",r:"20",fill:"none"},null)]),I={size:l,type:m("circular"),color:String,vertical:Boolean,textSize:l,textColor:String};var C=p({name:g,props:I,setup(e,{slots:n}){const c=x(()=>d({color:e.color},f(e.size))),i=()=>{const t=e.type==="spinner"?v:z;return a("span",{class:r("spinner",e.type),style:c.value},[n.icon?n.icon():t])},o=()=>{var t;if(n.default)return a("span",{class:r("text"),style:{fontSize:y(e.textSize),color:(t=e.textColor)!=null?t:e.color}},[n.default()])};return()=>{const{type:t,vertical:s}=e;return a("div",{class:r([t,{vertical:s}]),"aria-live":"polite","aria-busy":!0},[i(),o()])}}});const _=S(C);export{_ as L};

File diff suppressed because it is too large
+ 0 - 4
dist/assets/index-84dbbcf9.js


+ 1 - 1
dist/assets/index-6f228878.js → dist/assets/index-93c30256.js

@@ -1 +1 @@
-import{a as s}from"./use-scope-id-35da71d1.js";import{c,t as d,w as m}from"./index-7d547c99.js";import{d as u,c as r,F as f,m as p}from"./index-84dbbcf9.js";import{B as v}from"./constant-eba5e2d8.js";const[g,a]=c("cell-group"),B={title:String,inset:Boolean,border:d};var O=u({name:g,inheritAttrs:!1,props:B,setup(e,{slots:t,attrs:l}){const n=()=>{var i;return r("div",p({class:[a({inset:e.inset}),{[v]:e.border&&!e.inset}]},l,s()),[(i=t.default)==null?void 0:i.call(t)])},o=()=>r("div",{class:a("title",{inset:e.inset})},[t.title?t.title():e.title]);return()=>e.title||t.title?r(f,null,[o(),n()]):n()}});const h=m(O);export{h as C};
+import{a as s}from"./use-scope-id-9a7de863.js";import{c,t as d,w as m}from"./index-cce3d2f5.js";import{d as u,c as r,F as f,m as p}from"./index-dfe95a46.js";import{B as v}from"./constant-eba5e2d8.js";const[g,a]=c("cell-group"),B={title:String,inset:Boolean,border:d};var O=u({name:g,inheritAttrs:!1,props:B,setup(e,{slots:t,attrs:l}){const n=()=>{var i;return r("div",p({class:[a({inset:e.inset}),{[v]:e.border&&!e.inset}]},l,s()),[(i=t.default)==null?void 0:i.call(t)])},o=()=>r("div",{class:a("title",{inset:e.inset})},[t.title?t.title():e.title]);return()=>e.title||t.title?r(f,null,[o(),n()]):n()}});const h=m(O);export{h as C};

+ 1 - 1
dist/assets/index-edaca013.js → dist/assets/index-9b694a80.js

@@ -1 +1 @@
-import{c as V,u as y,n as A,t as h,v as T,w as C}from"./index-7d547c99.js";import{u as M}from"./use-scope-id-35da71d1.js";import{F as N}from"./constant-eba5e2d8.js";import{d as _,c as q}from"./index-84dbbcf9.js";const[x,I]=V("form"),O={colon:Boolean,disabled:Boolean,readonly:Boolean,required:[Boolean,String],showError:Boolean,labelWidth:A,labelAlign:String,inputAlign:String,scrollToError:Boolean,validateFirst:Boolean,submitOnEnter:h,showErrorMessage:h,errorMessageAlign:String,validateTrigger:{type:[String,Array],default:"onBlur"}};var j=_({name:x,props:O,emits:["submit","failed"],setup(i,{emit:s,slots:u}){const{children:a,linkChildren:v}=y(N),l=e=>e?a.filter(t=>e.includes(t.name)):a,p=e=>new Promise((t,n)=>{const r=[];l(e).reduce((w,E)=>w.then(()=>{if(!r.length)return E.validate().then(g=>{g&&r.push(g)})}),Promise.resolve()).then(()=>{r.length?n(r):t()})}),b=e=>new Promise((t,n)=>{const r=l(e);Promise.all(r.map(o=>o.validate())).then(o=>{o=o.filter(Boolean),o.length?n(o):t()})}),B=e=>{const t=a.find(n=>n.name===e);return t?new Promise((n,r)=>{t.validate().then(o=>{o?r(o):n()})}):Promise.reject()},c=e=>typeof e=="string"?B(e):i.validateFirst?p(e):b(e),S=e=>{typeof e=="string"&&(e=[e]),l(e).forEach(n=>{n.resetValidation()})},F=()=>a.reduce((e,t)=>(e[t.name]=t.getValidationStatus(),e),{}),d=(e,t)=>{a.some(n=>n.name===e?(n.$el.scrollIntoView(t),!0):!1)},f=()=>a.reduce((e,t)=>(t.name!==void 0&&(e[t.name]=t.formValue.value),e),{}),m=()=>{const e=f();c().then(()=>s("submit",e)).catch(t=>{s("failed",{values:e,errors:t}),i.scrollToError&&t[0].name&&d(t[0].name)})},P=e=>{T(e),m()};return v({props:i}),M({submit:m,validate:c,getValues:f,scrollToField:d,resetValidation:S,getValidationStatus:F}),()=>{var e;return q("form",{class:I(),onSubmit:P},[(e=u.default)==null?void 0:e.call(u)])}}});const W=C(j);export{W as F};
+import{c as V,u as y,n as A,t as h,v as T,w as C}from"./index-cce3d2f5.js";import{u as M}from"./use-scope-id-9a7de863.js";import{F as N}from"./constant-eba5e2d8.js";import{d as _,c as q}from"./index-dfe95a46.js";const[x,I]=V("form"),O={colon:Boolean,disabled:Boolean,readonly:Boolean,required:[Boolean,String],showError:Boolean,labelWidth:A,labelAlign:String,inputAlign:String,scrollToError:Boolean,validateFirst:Boolean,submitOnEnter:h,showErrorMessage:h,errorMessageAlign:String,validateTrigger:{type:[String,Array],default:"onBlur"}};var j=_({name:x,props:O,emits:["submit","failed"],setup(i,{emit:s,slots:u}){const{children:a,linkChildren:v}=y(N),l=e=>e?a.filter(t=>e.includes(t.name)):a,p=e=>new Promise((t,n)=>{const r=[];l(e).reduce((w,E)=>w.then(()=>{if(!r.length)return E.validate().then(g=>{g&&r.push(g)})}),Promise.resolve()).then(()=>{r.length?n(r):t()})}),b=e=>new Promise((t,n)=>{const r=l(e);Promise.all(r.map(o=>o.validate())).then(o=>{o=o.filter(Boolean),o.length?n(o):t()})}),B=e=>{const t=a.find(n=>n.name===e);return t?new Promise((n,r)=>{t.validate().then(o=>{o?r(o):n()})}):Promise.reject()},c=e=>typeof e=="string"?B(e):i.validateFirst?p(e):b(e),S=e=>{typeof e=="string"&&(e=[e]),l(e).forEach(n=>{n.resetValidation()})},F=()=>a.reduce((e,t)=>(e[t.name]=t.getValidationStatus(),e),{}),d=(e,t)=>{a.some(n=>n.name===e?(n.$el.scrollIntoView(t),!0):!1)},f=()=>a.reduce((e,t)=>(t.name!==void 0&&(e[t.name]=t.formValue.value),e),{}),m=()=>{const e=f();c().then(()=>s("submit",e)).catch(t=>{s("failed",{values:e,errors:t}),i.scrollToError&&t[0].name&&d(t[0].name)})},P=e=>{T(e),m()};return v({props:i}),M({submit:m,validate:c,getValues:f,scrollToField:d,resetValidation:S,getValidationStatus:F}),()=>{var e;return q("form",{class:I(),onSubmit:P},[(e=u.default)==null?void 0:e.call(u)])}}});const W=C(j);export{W as F};

+ 1 - 1
dist/assets/index-9d0fb4b4.js → dist/assets/index-b7b68d49.js

@@ -1 +1 @@
-import{r as y,u as L}from"./use-route-38eed520.js";import{c as D,e as I,d as B,n as o,t as V,b as u,r as s,I as b,w as _}from"./index-7d547c99.js";import{d as q,c as a}from"./index-84dbbcf9.js";const[z,r]=D("cell"),A={tag:B("div"),icon:String,size:String,title:o,value:o,label:o,center:Boolean,isLink:Boolean,border:V,iconPrefix:String,valueClass:u,labelClass:u,titleClass:u,titleStyle:null,arrowDirection:String,required:{type:[Boolean,String],default:null},clickable:{type:Boolean,default:null}},N=I({},A,y);var R=q({name:z,props:N,setup(e,{slots:l}){const v=L(),m=()=>{if(l.label||s(e.label))return a("div",{class:[r("label"),e.labelClass]},[l.label?l.label():e.label])},g=()=>{var n;if(l.title||s(e.title)){const t=(n=l.title)==null?void 0:n.call(l);return Array.isArray(t)&&t.length===0?void 0:a("div",{class:[r("title"),e.titleClass],style:e.titleStyle},[t||a("span",null,[e.title]),m()])}},h=()=>{const n=l.value||l.default;if(n||s(e.value))return a("div",{class:[r("value"),e.valueClass]},[n?n():a("span",null,[e.value])])},w=()=>{if(l.icon)return l.icon();if(e.icon)return a(b,{name:e.icon,class:r("left-icon"),classPrefix:e.iconPrefix},null)},C=()=>{if(l["right-icon"])return l["right-icon"]();if(e.isLink){const n=e.arrowDirection&&e.arrowDirection!=="right"?`arrow-${e.arrowDirection}`:"arrow";return a(b,{name:n,class:r("right-icon")},null)}};return()=>{var n;const{tag:t,size:i,center:P,border:S,isLink:k,required:x}=e,c=(n=e.clickable)!=null?n:k,d={center:P,required:!!x,clickable:c,borderless:!S};return i&&(d[i]=!!i),a(t,{class:r(d),role:c?"button":void 0,tabindex:c?0:void 0,onClick:v},{default:()=>{var f;return[w(),g(),h(),C(),(f=l.extra)==null?void 0:f.call(l)]}})}}});const E=_(R);export{E as C,A as c};
+import{r as y,u as L}from"./use-route-b714f72d.js";import{c as D,e as I,d as B,n as o,t as V,b as u,r as s,I as b,w as _}from"./index-cce3d2f5.js";import{d as q,c as a}from"./index-dfe95a46.js";const[z,r]=D("cell"),A={tag:B("div"),icon:String,size:String,title:o,value:o,label:o,center:Boolean,isLink:Boolean,border:V,iconPrefix:String,valueClass:u,labelClass:u,titleClass:u,titleStyle:null,arrowDirection:String,required:{type:[Boolean,String],default:null},clickable:{type:Boolean,default:null}},N=I({},A,y);var R=q({name:z,props:N,setup(e,{slots:l}){const v=L(),m=()=>{if(l.label||s(e.label))return a("div",{class:[r("label"),e.labelClass]},[l.label?l.label():e.label])},g=()=>{var n;if(l.title||s(e.title)){const t=(n=l.title)==null?void 0:n.call(l);return Array.isArray(t)&&t.length===0?void 0:a("div",{class:[r("title"),e.titleClass],style:e.titleStyle},[t||a("span",null,[e.title]),m()])}},h=()=>{const n=l.value||l.default;if(n||s(e.value))return a("div",{class:[r("value"),e.valueClass]},[n?n():a("span",null,[e.value])])},w=()=>{if(l.icon)return l.icon();if(e.icon)return a(b,{name:e.icon,class:r("left-icon"),classPrefix:e.iconPrefix},null)},C=()=>{if(l["right-icon"])return l["right-icon"]();if(e.isLink){const n=e.arrowDirection&&e.arrowDirection!=="right"?`arrow-${e.arrowDirection}`:"arrow";return a(b,{name:n,class:r("right-icon")},null)}};return()=>{var n;const{tag:t,size:i,center:P,border:S,isLink:k,required:x}=e,c=(n=e.clickable)!=null?n:k,d={center:P,required:!!x,clickable:c,borderless:!S};return i&&(d[i]=!!i),a(t,{class:r(d),role:c?"button":void 0,tabindex:c?0:void 0,onClick:v},{default:()=>{var f;return[w(),g(),h(),C(),(f=l.extra)==null?void 0:f.call(l)]}})}}});const E=_(R);export{E as C,A as c};

+ 1 - 1
dist/assets/index-d6e7009f.js → dist/assets/index-b93b95c6.js

@@ -1 +1 @@
-import{r as z,u as I}from"./use-route-38eed520.js";import{c as R,e as p,d as l,n as C,I as w,v as D,w as L}from"./index-7d547c99.js";import{L as N}from"./index-1589a215.js";import{e as q}from"./constant-eba5e2d8.js";import{d as O,c as o}from"./index-84dbbcf9.js";const[U,a]=R("button"),_=p({},z,{tag:l("button"),text:String,icon:String,type:l("default"),size:l("normal"),color:String,block:Boolean,plain:Boolean,round:Boolean,square:Boolean,loading:Boolean,hairline:Boolean,disabled:Boolean,iconPrefix:String,nativeType:l("button"),loadingSize:C,loadingText:String,loadingType:String,iconPosition:l("left")});var E=O({name:U,props:_,emits:["click"],setup(n,{emit:g,slots:t}){const f=I(),m=()=>t.loading?t.loading():o(N,{size:n.loadingSize,type:n.loadingType,class:a("loading")},null),c=()=>{if(n.loading)return m();if(t.icon)return o("div",{class:a("icon")},[t.icon()]);if(n.icon)return o(w,{name:n.icon,class:a("icon"),classPrefix:n.iconPrefix},null)},b=()=>{let e;if(n.loading?e=n.loadingText:e=t.default?t.default():n.text,e)return o("span",{class:a("text")},[e])},x=()=>{const{color:e,plain:r}=n;if(e){const i={color:r?e:"white"};return r||(i.background=e),e.includes("gradient")?i.border=0:i.borderColor=e,i}},y=e=>{n.loading?D(e):n.disabled||(g("click",e),f())};return()=>{const{tag:e,type:r,size:i,block:S,round:B,plain:P,square:k,loading:T,disabled:s,hairline:d,nativeType:v,iconPosition:u}=n,h=[a([r,i,{plain:P,block:S,round:B,square:k,loading:T,disabled:s,hairline:d}]),{[q]:d}];return o(e,{type:v,class:h,style:x(),disabled:s,onClick:y},{default:()=>[o("div",{class:a("content")},[u==="left"&&c(),b(),u==="right"&&c()])]})}}});const H=L(E);export{H as B};
+import{r as z,u as I}from"./use-route-b714f72d.js";import{c as R,e as p,d as l,n as C,I as w,v as D,w as L}from"./index-cce3d2f5.js";import{L as N}from"./index-7879226f.js";import{e as q}from"./constant-eba5e2d8.js";import{d as O,c as o}from"./index-dfe95a46.js";const[U,a]=R("button"),_=p({},z,{tag:l("button"),text:String,icon:String,type:l("default"),size:l("normal"),color:String,block:Boolean,plain:Boolean,round:Boolean,square:Boolean,loading:Boolean,hairline:Boolean,disabled:Boolean,iconPrefix:String,nativeType:l("button"),loadingSize:C,loadingText:String,loadingType:String,iconPosition:l("left")});var E=O({name:U,props:_,emits:["click"],setup(n,{emit:g,slots:t}){const f=I(),m=()=>t.loading?t.loading():o(N,{size:n.loadingSize,type:n.loadingType,class:a("loading")},null),c=()=>{if(n.loading)return m();if(t.icon)return o("div",{class:a("icon")},[t.icon()]);if(n.icon)return o(w,{name:n.icon,class:a("icon"),classPrefix:n.iconPrefix},null)},b=()=>{let e;if(n.loading?e=n.loadingText:e=t.default?t.default():n.text,e)return o("span",{class:a("text")},[e])},x=()=>{const{color:e,plain:r}=n;if(e){const i={color:r?e:"white"};return r||(i.background=e),e.includes("gradient")?i.border=0:i.borderColor=e,i}},y=e=>{n.loading?D(e):n.disabled||(g("click",e),f())};return()=>{const{tag:e,type:r,size:i,block:S,round:B,plain:P,square:k,loading:T,disabled:s,hairline:d,nativeType:v,iconPosition:u}=n,h=[a([r,i,{plain:P,block:S,round:B,square:k,loading:T,disabled:s,hairline:d}]),{[q]:d}];return o(e,{type:v,class:h,style:x(),disabled:s,onClick:y},{default:()=>[o("div",{class:a("content")},[u==="left"&&c(),b(),u==="right"&&c()])]})}}});const H=L(E);export{H as B};

File diff suppressed because it is too large
+ 0 - 0
dist/assets/index-cce3d2f5.js


File diff suppressed because it is too large
+ 4 - 0
dist/assets/index-dfe95a46.js


+ 1 - 1
dist/assets/index-0db0a924.js → dist/assets/index-fbe0edcb.js

@@ -1 +1 @@
-import{c as L,m as M,n as B,r as R,J as O,C as _,K as z,v as A,y as F,w as J}from"./index-7d547c99.js";import{u as K}from"./index-ba3f0885.js";import{u as V}from"./use-scope-id-35da71d1.js";import{d as X,r as v,B as $,a as x,c as p}from"./index-84dbbcf9.js";import{c as j}from"./on-popup-reopen-b537597c.js";const[q,C]=L("swipe-cell"),G={name:M(""),disabled:Boolean,leftWidth:B,rightWidth:B,beforeClose:Function,stopPropagation:Boolean};var Q=X({name:q,props:G,emits:["open","close","click"],setup(t,{emit:i,slots:f}){let n,c,u,l;const d=v(),k=v(),w=v(),o=$({offset:0,dragging:!1}),r=K(),T=e=>e.value?z(e).width:0,g=x(()=>R(t.leftWidth)?+t.leftWidth:T(k)),h=x(()=>R(t.rightWidth)?+t.rightWidth:T(w)),W=e=>{o.offset=e==="left"?g.value:-h.value,n||(n=!0,i("open",{name:t.name,position:e}))},m=e=>{o.offset=0,n&&(n=!1,i("close",{name:t.name,position:e}))},D=e=>{const a=Math.abs(o.offset),s=.15,I=n?1-s:s,y=e==="left"?g.value:h.value;y&&a>y*I?W(e):m(e)},H=e=>{t.disabled||(u=o.offset,r.start(e))},N=e=>{if(t.disabled)return;const{deltaX:a}=r;r.move(e),r.isHorizontal()&&(c=!0,o.dragging=!0,(!n||a.value*u<0)&&A(e,t.stopPropagation),o.offset=F(a.value+u,-h.value,g.value))},b=()=>{o.dragging&&(o.dragging=!1,D(o.offset>0?"left":"right"),setTimeout(()=>{c=!1},0))},P=(e="outside")=>{l||(i("click",e),n&&!c&&(l=!0,j(t.beforeClose,{args:[{name:t.name,position:e}],done:()=>{l=!1,m(e)},canceled:()=>l=!1,error:()=>l=!1})))},S=(e,a)=>s=>{a&&s.stopPropagation(),P(e)},E=(e,a)=>{const s=f[e];if(s)return p("div",{ref:a,class:C(e),onClick:S(e,!0)},[s()])};return V({open:W,close:m}),O(d,()=>P("outside"),{eventName:"touchstart"}),_("touchmove",N,{target:d}),()=>{var e;const a={transform:`translate3d(${o.offset}px, 0, 0)`,transitionDuration:o.dragging?"0s":".6s"};return p("div",{ref:d,class:C(),onClick:S("cell",c),onTouchstartPassive:H,onTouchend:b,onTouchcancel:b},[p("div",{class:C("wrapper"),style:a},[E("left",k),(e=f.default)==null?void 0:e.call(f),E("right",w)])])}}});const oe=J(Q);export{oe as S};
+import{c as L,m as M,n as B,r as R,J as O,C as _,K as z,v as A,y as F,w as J}from"./index-cce3d2f5.js";import{u as K}from"./index-1ca3ff9b.js";import{u as V}from"./use-scope-id-9a7de863.js";import{d as X,r as v,B as $,a as x,c as p}from"./index-dfe95a46.js";import{c as j}from"./on-popup-reopen-ea59097f.js";const[q,C]=L("swipe-cell"),G={name:M(""),disabled:Boolean,leftWidth:B,rightWidth:B,beforeClose:Function,stopPropagation:Boolean};var Q=X({name:q,props:G,emits:["open","close","click"],setup(t,{emit:i,slots:f}){let n,c,u,l;const d=v(),k=v(),w=v(),o=$({offset:0,dragging:!1}),r=K(),T=e=>e.value?z(e).width:0,g=x(()=>R(t.leftWidth)?+t.leftWidth:T(k)),h=x(()=>R(t.rightWidth)?+t.rightWidth:T(w)),W=e=>{o.offset=e==="left"?g.value:-h.value,n||(n=!0,i("open",{name:t.name,position:e}))},m=e=>{o.offset=0,n&&(n=!1,i("close",{name:t.name,position:e}))},D=e=>{const a=Math.abs(o.offset),s=.15,I=n?1-s:s,y=e==="left"?g.value:h.value;y&&a>y*I?W(e):m(e)},H=e=>{t.disabled||(u=o.offset,r.start(e))},N=e=>{if(t.disabled)return;const{deltaX:a}=r;r.move(e),r.isHorizontal()&&(c=!0,o.dragging=!0,(!n||a.value*u<0)&&A(e,t.stopPropagation),o.offset=F(a.value+u,-h.value,g.value))},b=()=>{o.dragging&&(o.dragging=!1,D(o.offset>0?"left":"right"),setTimeout(()=>{c=!1},0))},P=(e="outside")=>{l||(i("click",e),n&&!c&&(l=!0,j(t.beforeClose,{args:[{name:t.name,position:e}],done:()=>{l=!1,m(e)},canceled:()=>l=!1,error:()=>l=!1})))},S=(e,a)=>s=>{a&&s.stopPropagation(),P(e)},E=(e,a)=>{const s=f[e];if(s)return p("div",{ref:a,class:C(e),onClick:S(e,!0)},[s()])};return V({open:W,close:m}),O(d,()=>P("outside"),{eventName:"touchstart"}),_("touchmove",N,{target:d}),()=>{var e;const a={transform:`translate3d(${o.offset}px, 0, 0)`,transitionDuration:o.dragging?"0s":".6s"};return p("div",{ref:d,class:C(),onClick:S("cell",c),onTouchstartPassive:H,onTouchend:b,onTouchcancel:b},[p("div",{class:C("wrapper"),style:a},[E("left",k),(e=f.default)==null?void 0:e.call(f),E("right",w)])])}}});const oe=J(Q);export{oe as S};

+ 1 - 1
dist/assets/on-popup-reopen-b537597c.js → dist/assets/on-popup-reopen-ea59097f.js

@@ -1 +1 @@
-import{Q as a,h as n}from"./index-7d547c99.js";import{X as e,w as r}from"./index-84dbbcf9.js";function c(s,{args:t=[],done:o,canceled:i,error:p}){if(s){const f=s.apply(null,t);a(f)?f.then(l=>{l?o():i&&i()}).catch(p||n):f?o():i&&i()}else o()}const u=Symbol();function h(s){const t=e(u,null);t&&r(t,o=>{o&&s()})}export{u as P,c,h as o};
+import{Q as a,h as n}from"./index-cce3d2f5.js";import{X as e,w as r}from"./index-dfe95a46.js";function c(s,{args:t=[],done:o,canceled:i,error:p}){if(s){const f=s.apply(null,t);a(f)?f.then(l=>{l?o():i&&i()}).catch(p||n):f?o():i&&i()}else o()}const u=Symbol();function h(s){const t=e(u,null);t&&r(t,o=>{o&&s()})}export{u as P,c,h as o};

+ 1 - 1
dist/assets/request-fe7a1f27.js → dist/assets/request-f5648540.js

@@ -1 +1 @@
-import{a as s}from"./axios-9cbf0d09.js";import{N as n}from"./index-84dbbcf9.js";const c=n("localStore",{state:()=>({username:"",password:"",rememberPassword:!0,token:""}),persist:{enabled:!0,encryptionKey:"nfgj",storage:localStorage}}),a="https://www.huifutiancai.com/huishou-service",r=c(),t=s.create({baseURL:a,timeout:5e3});t.interceptors.request.use(function(e){return r.token&&(e.headers.accessToken=r.token),e},function(e){return Promise.reject(e)});t.interceptors.response.use(function(e){return e},function(e){return Promise.reject(e)});const p=function(e,o){return t.post(e,o)};export{p,c as u};
+import{a as s}from"./axios-9cbf0d09.js";import{N as n}from"./index-dfe95a46.js";const c=n("localStore",{state:()=>({username:"",password:"",rememberPassword:!0,token:""}),persist:{enabled:!0,encryptionKey:"nfgj",storage:localStorage}}),a="https://www.huifutiancai.com/huishou-service",r=c(),t=s.create({baseURL:a,timeout:5e3});t.interceptors.request.use(function(e){return r.token&&(e.headers.accessToken=r.token),e},function(e){return Promise.reject(e)});t.interceptors.response.use(function(e){return e},function(e){return Promise.reject(e)});const p=function(e,o){return t.post(e,o)};export{p,c as u};

+ 1 - 1
dist/assets/use-placeholder-efb8b539.js → dist/assets/use-placeholder-7b2508ff.js

@@ -1 +1 @@
-import{N as r,L as h,K as n}from"./index-7d547c99.js";import{o as u}from"./on-popup-reopen-b537597c.js";import{r as c,o as l,A as a,w as d,c as p}from"./index-84dbbcf9.js";const f=(o,s)=>{const t=c(),e=()=>{t.value=n(o).height};return l(()=>{if(a(e),s)for(let i=1;i<=3;i++)setTimeout(e,100*i)}),u(()=>a(e)),d([r,h],e),t};function v(o,s){const t=f(o,!0);return e=>p("div",{class:s("placeholder"),style:{height:t.value?`${t.value}px`:void 0}},[e()])}export{v as u};
+import{N as r,L as h,K as n}from"./index-cce3d2f5.js";import{o as u}from"./on-popup-reopen-ea59097f.js";import{r as c,o as l,A as a,w as d,c as p}from"./index-dfe95a46.js";const f=(o,s)=>{const t=c(),e=()=>{t.value=n(o).height};return l(()=>{if(a(e),s)for(let i=1;i<=3;i++)setTimeout(e,100*i)}),u(()=>a(e)),d([r,h],e),t};function v(o,s){const t=f(o,!0);return e=>p("div",{class:s("placeholder"),style:{height:t.value?`${t.value}px`:void 0}},[e()])}export{v as u};

+ 1 - 1
dist/assets/use-route-38eed520.js → dist/assets/use-route-b714f72d.js

@@ -1 +1 @@
-import{g as n}from"./index-84dbbcf9.js";const a={to:[String,Object],url:String,replace:Boolean};function c({to:e,url:o,replace:t,$router:r}){e&&r?r[t?"replace":"push"](e):o&&(t?location.replace(o):location.href=o)}function i(){const e=n().proxy;return()=>c(e)}export{a as r,i as u};
+import{g as n}from"./index-dfe95a46.js";const a={to:[String,Object],url:String,replace:Boolean};function c({to:e,url:o,replace:t,$router:r}){e&&r?r[t?"replace":"push"](e):o&&(t?location.replace(o):location.href=o)}function i(){const e=n().proxy;return()=>c(e)}export{a as r,i as u};

+ 0 - 1
dist/assets/use-scope-id-35da71d1.js

@@ -1 +0,0 @@
-import{e as s}from"./index-7d547c99.js";import{g as o}from"./index-84dbbcf9.js";function a(n){const e=o();e&&s(e.proxy,n)}const c=()=>{var n;const{scopeId:e}=((n=o())==null?void 0:n.vnode)||{};return e?{[e]:""}:null};export{c as a,a as u};

+ 1 - 0
dist/assets/use-scope-id-9a7de863.js

@@ -0,0 +1 @@
+import{e as s}from"./index-cce3d2f5.js";import{g as o}from"./index-dfe95a46.js";function a(n){const e=o();e&&s(e.proxy,n)}const c=()=>{var n;const{scopeId:e}=((n=o())==null?void 0:n.vnode)||{};return e?{[e]:""}:null};export{c as a,a as u};

File diff suppressed because it is too large
+ 0 - 0
dist/assets/util-1620efec.js


+ 1 - 1
dist/index.html

@@ -7,7 +7,7 @@
     <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
     <title>驼人物联网平台</title>
     <script type="text/javascript" src="//api.map.baidu.com/api?type=webgl&v=1.0&ak=r6wmhUcG2BBUmqP4OjRlxLOMbQ3F1Ptn"></script>
-    <script type="module" crossorigin src="/wap/assets/index-84dbbcf9.js"></script>
+    <script type="module" crossorigin src="/wap/assets/index-dfe95a46.js"></script>
     <link rel="stylesheet" href="/wap/assets/index-3cbea24c.css">
   </head>
   <body>

+ 221 - 18
src/pages/demo/Index3.vue

@@ -1,35 +1,238 @@
 <template>
-  
-  <div style="height: 100vh; width: 100vw;">
-    <div style="padding: 20px 16px;">
-      <span>扫码结果:</span>
-      <span>{{ scanResult }}</span>
+  <div>
+    <p>
+      Modern mobile phones often have a variety of different cameras installed (e.g. front, rear,
+      wide-angle, infrared, desk-view). The one picked by default is sometimes not the best choice.
+      For more fine-grained control, you can select a camera by device constraints or by the device
+      ID:
+
+      <select v-model="selectedConstraints">
+        <option
+          v-for="option in constraintOptions"
+          :key="option.label"
+          :value="option.constraints"
+        >
+          {{ option.label }}
+        </option>
+      </select>
+    </p>
+
+    <p>
+      Detected codes are visually highlighted in real-time. Use the following dropdown to change the
+      flavor:
+
+      <select v-model="trackFunctionSelected">
+        <option
+          v-for="option in trackFunctionOptions"
+          :key="option.text"
+          :value="option"
+        >
+          {{ option.text }}
+        </option>
+      </select>
+    </p>
+
+    <p>
+      By default only QR-codes are detected but a variety of other barcode formats are also
+      supported. You can select one or multiple but the more you select the more expensive scanning
+      becomes: <br />
+
+      <span
+        v-for="option in Object.keys(barcodeFormats)"
+        :key="option"
+        class="barcode-format-checkbox"
+      >
+        <input
+          type="checkbox"
+          v-model="barcodeFormats[option]"
+          :id="option"
+        />
+        <label :for="option">{{ option }}</label>
+      </span>
+    </p>
+
+    <p class="error">{{ error }}</p>
+
+    <p class="decode-result">
+      Last result: <b>{{ result }}</b>
+    </p>
+
+    <div>
+      <qrcode-stream
+        :constraints="selectedConstraints"
+        :track="trackFunctionSelected.value"
+        :formats="selectedBarcodeFormats"
+        @error="onError"
+        @detect="onDetect"
+        @camera-on="onCameraReady"
+      />
     </div>
-    <QrcodeStream @decode="onDecode" @init="onInit"></QrcodeStream>
   </div>
-
 </template>
 
 <script setup lang="ts">
-import { ref } from 'vue'
+import { ref, computed } from 'vue'
 import { QrcodeStream } from 'vue-qrcode-reader'
 
-const scanResult = ref('');
+/*** detection handling ***/
+
+const result = ref('')
+
+function onDetect(detectedCodes: any) {
+  console.log(detectedCodes)
+  result.value = JSON.stringify(detectedCodes.map((code: any) => code.rawValue))
+}
+
+/*** select camera ***/
+
+const selectedConstraints = ref({ facingMode: 'environment' })
+const defaultConstraintOptions = [
+  { label: 'rear camera', constraints: { facingMode: 'environment' } },
+  { label: 'front camera', constraints: { facingMode: 'user' } }
+]
+const constraintOptions = ref<any>(defaultConstraintOptions)
+
+async function onCameraReady() {
+  // NOTE: on iOS we can't invoke `enumerateDevices` before the user has given
+  // camera access permission. `QrcodeStream` internally takes care of
+  // requesting the permissions. The `camera-on` event should guarantee that this
+  // has happened.
+  const devices = await navigator.mediaDevices.enumerateDevices()
+  const videoDevices = devices.filter(({ kind }) => kind === 'videoinput')
+
+  constraintOptions.value = [
+    ...defaultConstraintOptions,
+    ...videoDevices.map(({ deviceId, label }) => ({
+      label: `${label} (ID: ${deviceId})`,
+      constraints: { deviceId }
+    }))
+  ]
+
+  error.value = ''
+}
+
+/*** track functons ***/
+
+function paintOutline(detectedCodes: any, ctx: any) {
+  for (const detectedCode of detectedCodes) {
+    const [firstPoint, ...otherPoints] = detectedCode.cornerPoints
 
-const onInit = async (promise: any) => {
-  try{
-    await promise
-  } catch(error){
-    console.log(error)
+    ctx.strokeStyle = 'red'
+
+    ctx.beginPath()
+    ctx.moveTo(firstPoint.x, firstPoint.y)
+    for (const { x, y } of otherPoints) {
+      ctx.lineTo(x, y)
+    }
+    ctx.lineTo(firstPoint.x, firstPoint.y)
+    ctx.closePath()
+    ctx.stroke()
   }
 }
+function paintBoundingBox(detectedCodes: any, ctx: any) {
+  for (const detectedCode of detectedCodes) {
+    const {
+      boundingBox: { x, y, width, height }
+    } = detectedCode
+
+    ctx.lineWidth = 2
+    ctx.strokeStyle = '#007bff'
+    ctx.strokeRect(x, y, width, height)
+  }
+}
+function paintCenterText(detectedCodes: any, ctx: any) {
+  for (const detectedCode of detectedCodes) {
+    const { boundingBox, rawValue } = detectedCode
+
+    const centerX = boundingBox.x + boundingBox.width / 2
+    const centerY = boundingBox.y + boundingBox.height / 2
 
-const onDecode = (result: any) => {
-  scanResult.value = result;
+    const fontSize = Math.max(12, (50 * boundingBox.width) / ctx.canvas.width)
+
+    ctx.font = `bold ${fontSize}px sans-serif`
+    ctx.textAlign = 'center'
+
+    ctx.lineWidth = 3
+    ctx.strokeStyle = '#35495e'
+    ctx.strokeText(detectedCode.rawValue, centerX, centerY)
+
+    ctx.fillStyle = '#5cb984'
+    ctx.fillText(rawValue, centerX, centerY)
+  }
 }
+const trackFunctionOptions = [
+  { text: 'nothing (default)', value: undefined },
+  { text: 'outline', value: paintOutline },
+  { text: 'centered text', value: paintCenterText },
+  { text: 'bounding box', value: paintBoundingBox }
+]
+const trackFunctionSelected = ref(trackFunctionOptions[1])
+
+/*** barcode formats ***/
 
+const barcodeFormats = ref<any>({
+  aztec: false,
+  code_128: false,
+  code_39: false,
+  code_93: false,
+  codabar: false,
+  databar: false,
+  databar_expanded: false,
+  data_matrix: false,
+  dx_film_edge: false,
+  ean_13: false,
+  ean_8: false,
+  itf: false,
+  maxi_code: false,
+  micro_qr_code: false,
+  pdf417: false,
+  qr_code: true,
+  rm_qr_code: false,
+  upc_a: false,
+  upc_e: false,
+  linear_codes: false,
+  matrix_codes: false
+})
+const selectedBarcodeFormats = computed(() => {
+  return Object.keys(barcodeFormats.value).filter((format) => barcodeFormats.value[format])
+})
+
+/*** error handling ***/
+
+const error = ref('')
+
+function onError(err: any) {
+  error.value = `[${err.name}]: `
+
+  if (err.name === 'NotAllowedError') {
+    error.value += 'you need to grant camera access permission'
+  } else if (err.name === 'NotFoundError') {
+    error.value += 'no camera on this device'
+  } else if (err.name === 'NotSupportedError') {
+    error.value += 'secure context required (HTTPS, localhost)'
+  } else if (err.name === 'NotReadableError') {
+    error.value += 'is the camera already in use?'
+  } else if (err.name === 'OverconstrainedError') {
+    error.value += 'installed cameras are not suitable'
+  } else if (err.name === 'StreamApiNotSupportedError') {
+    error.value += 'Stream API is not supported in this browser'
+  } else if (err.name === 'InsecureContextError') {
+    error.value +=
+      'Camera access is only permitted in secure context. Use HTTPS or localhost rather than HTTP.'
+  } else {
+    error.value += err.message
+  }
+}
 </script>
 
 <style scoped>
-
-</style>
+.error {
+  font-weight: bold;
+  color: red;
+}
+.barcode-format-checkbox {
+  margin-right: 10px;
+  white-space: nowrap;
+  display: inline-block;
+}
+</style>

Some files were not shown because too many files changed in this diff