龙三郎 il y a 1 an
Parent
commit
6b881a8b64
73 fichiers modifiés avec 277 ajouts et 41 suppressions
  1. 0 0
      dist/assets/Detail-218058e0.js
  2. 0 1
      dist/assets/Detail-4fe83250.css
  3. 0 0
      dist/assets/Detail-e629c782.js
  4. 1 0
      dist/assets/Detail-eb407319.css
  5. 0 0
      dist/assets/Index-0122596b.js
  6. 0 0
      dist/assets/Index-0e90d9a3.js
  7. 0 0
      dist/assets/Index-131018a9.js
  8. 0 1
      dist/assets/Index-23214c4d.css
  9. 0 0
      dist/assets/Index-2753d0be.js
  10. 0 0
      dist/assets/Index-372c8a0e.js
  11. 0 0
      dist/assets/Index-579c559b.js
  12. 0 0
      dist/assets/Index-60dca73c.js
  13. 0 0
      dist/assets/Index-65d74512.js
  14. 0 0
      dist/assets/Index-6ea8c29f.js
  15. 0 0
      dist/assets/Index-7435951a.js
  16. 0 0
      dist/assets/Index-75f1bbf2.js
  17. 0 0
      dist/assets/Index-8413b7ad.js
  18. 0 0
      dist/assets/Index-8f04d8e8.js
  19. 0 0
      dist/assets/Index-98aeff7e.js
  20. 0 0
      dist/assets/Index-a7ee3677.js
  21. 0 0
      dist/assets/Index-ac199f42.css
  22. 0 0
      dist/assets/Index-b9559c4c.js
  23. 0 0
      dist/assets/Index-c5169181.js
  24. 0 0
      dist/assets/Index-d8fd2ef6.js
  25. 0 0
      dist/assets/Index-eb228153.js
  26. 0 0
      dist/assets/Index-f9a846c9.js
  27. 1 1
      dist/assets/Index1-b0a26493.js
  28. 0 0
      dist/assets/axios-1de5cf2d.js
  29. 0 0
      dist/assets/function-call-05ebe677.js
  30. 1 0
      dist/assets/index-01c1107c.js
  31. 0 0
      dist/assets/index-06ed8422.css
  32. 0 0
      dist/assets/index-16c9d10b.js
  33. 0 0
      dist/assets/index-305e4da0.js
  34. 0 0
      dist/assets/index-496173cc.css
  35. 0 1
      dist/assets/index-4e59f6cc.js
  36. 1 0
      dist/assets/index-5a66f410.js
  37. 1 0
      dist/assets/index-628981da.js
  38. 0 1
      dist/assets/index-6440dfc9.js
  39. 0 0
      dist/assets/index-69ff4e75.js
  40. 0 0
      dist/assets/index-6b2cb0b9.css
  41. 0 0
      dist/assets/index-6bced3f4.js
  42. 1 0
      dist/assets/index-6cd9ff18.js
  43. 0 0
      dist/assets/index-6fe369de.js
  44. 0 0
      dist/assets/index-997aa0fc.js
  45. 1 1
      dist/assets/index-b65fba2c.js
  46. 1 0
      dist/assets/index-c057c01c.js
  47. 0 0
      dist/assets/index-c5114efa.css
  48. 1 1
      dist/assets/index-c9a903a0.js
  49. 0 1
      dist/assets/index-d43e462e.css
  50. 1 0
      dist/assets/index-d6220461.css
  51. 0 0
      dist/assets/index-e4dd81d1.js
  52. 0 0
      dist/assets/index-e75664f2.js
  53. 0 0
      dist/assets/index-e8224928.css
  54. 0 0
      dist/assets/index-f0330e0c.js
  55. 0 0
      dist/assets/index-f3494371.js
  56. 0 0
      dist/assets/index-f615d39e.js
  57. 1 1
      dist/assets/interceptor-5a0fbdae.js
  58. 0 1
      dist/assets/request-545ea7ff.js
  59. 1 0
      dist/assets/request-b925ec3f.js
  60. 0 1
      dist/assets/use-expose-60a6d544.js
  61. 1 1
      dist/assets/use-placeholder-11f198ec.js
  62. 1 1
      dist/assets/use-route-d0420bb1.js
  63. 0 0
      dist/assets/util-5786b1b0.css
  64. 0 0
      dist/assets/util-928bab92.js
  65. 0 0
      dist/assets/util-9a06e803.js
  66. 0 0
      dist/assets/util-a1d0d7af.css
  67. 1 1
      dist/index.html
  68. 3 3
      src/components/CusNavigation.vue
  69. 2 0
      src/network/axios/index.ts
  70. 1 1
      src/pages/article/Detail.vue
  71. 217 0
      src/pages/device/list/Index.vue
  72. 38 22
      src/pages/login/Index.vue
  73. 1 1
      src/router/index.ts

Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/Detail-218058e0.js


+ 0 - 1
dist/assets/Detail-4fe83250.css

@@ -1 +0,0 @@
-.cus-goback[data-v-5c74da3f]{margin-right:3px}.cus-goback[data-v-5c74da3f]:hover{cursor:pointer}

Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/Detail-e629c782.js


+ 1 - 0
dist/assets/Detail-eb407319.css

@@ -0,0 +1 @@
+.cus-goback[data-v-9430a462]{margin-right:3px}.cus-goback[data-v-9430a462]:hover{cursor:pointer}

Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/Index-0122596b.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/Index-0e90d9a3.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/Index-131018a9.js


+ 0 - 1
dist/assets/Index-23214c4d.css

@@ -1 +0,0 @@
-.van-tabbar--fixed[data-v-03eec758]{left:auto;max-width:475px}.cell-list .van-cell[data-v-03eec758]{padding:14px 16px}

Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/Index-2753d0be.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/Index-372c8a0e.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/Index-579c559b.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/Index-60dca73c.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/Index-65d74512.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/Index-6ea8c29f.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/Index-7435951a.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/Index-75f1bbf2.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/Index-8413b7ad.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/Index-8f04d8e8.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/Index-98aeff7e.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/Index-a7ee3677.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/Index-ac199f42.css


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/Index-b9559c4c.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/Index-c5169181.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/Index-d8fd2ef6.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/Index-eb228153.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/Index-f9a846c9.js


+ 1 - 1
dist/assets/Index1-3239be29.js → dist/assets/Index1-b0a26493.js

@@ -1 +1 @@
-import{_ as i,b as d,e as v,P as e}from"./index-a9196ab5.js";const t={},o={style:{position:"flex",height:"100%",width:"100%","background-color":"#aaa"}},c=e('<div style="display:flex;width:100%;height:100%;align-items:center;justify-content:center;"><div style="height:60%;width:60%;display:flex;flex-direction:column;"><div style="height:200px;background-color:red;">jjj</div><div style="overflow:auto;background-color:#ccc;flex-grow:1;"><div>123456</div><div>123456</div><div>123456</div><div>123456</div><div>123456</div><div>123456</div><div>123456</div><div>123456</div><div>123456</div><div>123456</div><div>123456</div><div>123456</div><div>123456</div><div>123456</div><div>123456</div><div>123456</div><div>123456</div><div>123456</div><div>123456</div><div>123456</div><div>123456</div><div>123456</div><div>123456</div><div>123456</div><div>123456</div><div>123456</div><div>123456</div><div>123456</div><div>123456</div><div>123456</div><div>123456</div><div>666666</div></div><div style="height:200px;background-color:red;"></div></div></div>',1),r=[c];function s(n,l){return d(),v("div",o,r)}const h=i(t,[["render",s]]);export{h as default};
+import{_ as i,b as d,e as v,P as e}from"./index-e4dd81d1.js";const t={},o={style:{position:"flex",height:"100%",width:"100%","background-color":"#aaa"}},c=e('<div style="display:flex;width:100%;height:100%;align-items:center;justify-content:center;"><div style="height:60%;width:60%;display:flex;flex-direction:column;"><div style="height:200px;background-color:red;">jjj</div><div style="overflow:auto;background-color:#ccc;flex-grow:1;"><div>123456</div><div>123456</div><div>123456</div><div>123456</div><div>123456</div><div>123456</div><div>123456</div><div>123456</div><div>123456</div><div>123456</div><div>123456</div><div>123456</div><div>123456</div><div>123456</div><div>123456</div><div>123456</div><div>123456</div><div>123456</div><div>123456</div><div>123456</div><div>123456</div><div>123456</div><div>123456</div><div>123456</div><div>123456</div><div>123456</div><div>123456</div><div>123456</div><div>123456</div><div>123456</div><div>123456</div><div>666666</div></div><div style="height:200px;background-color:red;"></div></div></div>',1),r=[c];function s(n,l){return d(),v("div",o,r)}const h=i(t,[["render",s]]);export{h as default};

Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/axios-1de5cf2d.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/function-call-05ebe677.js


+ 1 - 0
dist/assets/index-01c1107c.js

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

Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/index-06ed8422.css


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/index-16c9d10b.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/index-305e4da0.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/index-496173cc.css


+ 0 - 1
dist/assets/index-4e59f6cc.js

@@ -1 +0,0 @@
-import{d as I,c as t,I as S}from"./index-a9196ab5.js";import{c as k,t as x,f as B,I as P,w as T}from"./index-7004b5fb.js";import{H as h}from"./use-route-3f897e76.js";const[p,r]=k("tag"),v={size:String,mark:Boolean,show:x,type:B("default"),color:String,plain:Boolean,round:Boolean,textColor:String,closeable:Boolean};var w=I({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(S,{name:o.closeable?"van-fade":void 0},{default:()=>[o.show?d():null]})}});const A=T(w);export{A as T};

+ 1 - 0
dist/assets/index-5a66f410.js

@@ -0,0 +1 @@
+import{c as u,e as d,l as f,n as c,f as m,b as x,w as y}from"./index-6fe369de.js";import{c as a,d as S,a as p}from"./index-e4dd81d1.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:c,type:m("circular"),color:String,vertical:Boolean,textSize:c,textColor:String};var C=S({name:g,props:I,setup(e,{slots:n}){const l=p(()=>d({color:e.color},f(e.size))),i=()=>{const t=e.type==="spinner"?v:z;return a("span",{class:r("spinner",e.type),style:l.value},[n.icon?n.icon():t])},o=()=>{var t;if(n.default)return a("span",{class:r("text"),style:{fontSize:x(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 P=y(C);export{P as L};

+ 1 - 0
dist/assets/index-628981da.js

@@ -0,0 +1 @@
+import{d as I,c,I as h,M as P}from"./index-e4dd81d1.js";import{c as S,t as v,f as w,I as x,w as y}from"./index-6fe369de.js";import{H as B}from"./use-route-d0420bb1.js";import{a as T}from"./axios-1de5cf2d.js";const[_,m]=S("tag"),j={size:String,mark:Boolean,show:v,type:w("default"),color:String,plain:Boolean,round:Boolean,textColor:String,closeable:Boolean};var L=I({name:_,props:j,emits:["close"],setup(e,{slots:n,emit:t}){const r=s=>{s.stopPropagation(),t("close",s)},o=()=>e.plain?{color:e.textColor||e.color,borderColor:e.color}:{color:e.textColor,background:e.color},a=()=>{var s;const{type:d,mark:g,plain:p,round:b,size:l,closeable:k}=e,u={mark:g,plain:p,round:b};l&&(u[l]=l);const C=k&&c(x,{name:"cross",class:[m("close"),B],onClick:r},null);return c("span",{style:o(),class:m([u,d])},[(s=n.default)==null?void 0:s.call(n),C])};return()=>c(h,{name:e.closeable?"van-fade":void 0},{default:()=>[e.show?a():null]})}});const M=y(L);const z=P("userInfo",{state:()=>({mobile:"",username:"",password:"",token:"",roles:[],isLogin:!1,isRememberMe:!1}),persist:{enabled:!0,encryptionKey:"userInfo",storage:localStorage}}),i=z(),f=T.create({baseURL:"/forward-service",timeout:1e4}),N=function(e,n,t){const{url:r,data:o}=e;f.post(r,o,{headers:{token:i.token}}).then(a=>{const s=a.data;s.code==0?n&&n(s):s.code==3?i.isLogin=!1:t&&t(s.msg)},a=>{t&&t(a.message)}).catch(a=>{console.log(a)})},R=function(e){const{url:n,data:t}=e;return f.post(n,t,{headers:{token:i.token}}).then(r=>{const o=r.data;return o.code==0?Promise.resolve(o):(o.code==3&&console.log(o),Promise.reject(o.msg))},r=>Promise.reject(r.message))};export{M as T,N as a,R as p,z as u};

+ 0 - 1
dist/assets/index-6440dfc9.js

@@ -1 +0,0 @@
-import{c as V,u as y,n as A,t as g,v as T,w as C}from"./index-7004b5fb.js";import{u as M}from"./use-expose-60a6d544.js";import{F as N}from"./use-route-3f897e76.js";import{d as _,c as x}from"./index-a9196ab5.js";const[I,O]=V("form"),j={colon:Boolean,disabled:Boolean,readonly:Boolean,showError:Boolean,labelWidth:A,labelAlign:String,inputAlign:String,scrollToError:Boolean,validateFirst:Boolean,submitOnEnter:g,showErrorMessage:g,errorMessageAlign:String,validateTrigger:{type:[String,Array],default:"onBlur"}};var k=_({name:I,props:j,emits:["submit","failed"],setup(i,{emit:s,slots:u}){const{children:r,linkChildren:v}=y(N),l=e=>e?r.filter(t=>e.includes(t.name)):r,p=e=>new Promise((t,n)=>{const o=[];l(e).reduce((w,E)=>w.then(()=>{if(!o.length)return E.validate().then(h=>{h&&o.push(h)})}),Promise.resolve()).then(()=>{o.length?n(o):t()})}),b=e=>new Promise((t,n)=>{const o=l(e);Promise.all(o.map(a=>a.validate())).then(a=>{a=a.filter(Boolean),a.length?n(a):t()})}),B=e=>{const t=r.find(n=>n.name===e);return t?new Promise((n,o)=>{t.validate().then(a=>{a?o(a):n()})}):Promise.reject()},c=e=>typeof e=="string"?B(e):i.validateFirst?p(e):b(e),F=e=>{typeof e=="string"&&(e=[e]),l(e).forEach(n=>{n.resetValidation()})},P=()=>r.reduce((e,t)=>(e[t.name]=t.getValidationStatus(),e),{}),d=(e,t)=>{r.some(n=>n.name===e?(n.$el.scrollIntoView(t),!0):!1)},f=()=>r.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)})},S=e=>{T(e),m()};return v({props:i}),M({submit:m,validate:c,getValues:f,scrollToField:d,resetValidation:F,getValidationStatus:P}),()=>{var e;return x("form",{class:O(),onSubmit:S},[(e=u.default)==null?void 0:e.call(u)])}}});const W=C(k);export{W as F};

Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/index-69ff4e75.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/index-6b2cb0b9.css


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/index-6bced3f4.js


+ 1 - 0
dist/assets/index-6cd9ff18.js

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

Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/index-6fe369de.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/index-997aa0fc.js


+ 1 - 1
dist/assets/index-368bfbd4.js → dist/assets/index-b65fba2c.js

@@ -1 +1 @@
-import{r as L,u as y}from"./use-route-3f897e76.js";import{c as D,e as I,f as B,n as o,t as V,d as u,r as s,I as b,w as _}from"./index-7004b5fb.js";import{d as q,c as n}from"./index-a9196ab5.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,required:Boolean,iconPrefix:String,valueClass:u,labelClass:u,titleClass:u,titleStyle:null,arrowDirection:String,clickable:{type:Boolean,default:null}},N=I({},A,L);var R=q({name:z,props:N,setup(e,{slots:l}){const v=y(),m=()=>{if(l.label||s(e.label))return n("div",{class:[r("label"),e.labelClass]},[l.label?l.label():e.label])},g=()=>{var a;if(l.title||s(e.title)){const t=(a=l.title)==null?void 0:a.call(l);return Array.isArray(t)&&t.length===0?void 0:n("div",{class:[r("title"),e.titleClass],style:e.titleStyle},[t||n("span",null,[e.title]),m()])}},h=()=>{const a=l.value||l.default;if(a||s(e.value))return n("div",{class:[r("value"),e.valueClass]},[a?a():n("span",null,[e.value])])},w=()=>{if(l.icon)return l.icon();if(e.icon)return n(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 a=e.arrowDirection&&e.arrowDirection!=="right"?`arrow-${e.arrowDirection}`:"arrow";return n(b,{name:a,class:r("right-icon")},null)}};return()=>{var a;const{tag:t,size:i,center:P,border:k,isLink:S,required:x}=e,c=(a=e.clickable)!=null?a:S,d={center:P,required:x,clickable:c,borderless:!k};return i&&(d[i]=!!i),n(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 L,u as y}from"./use-route-d0420bb1.js";import{c as D,e as I,f as B,n as o,t as V,d as u,r as s,I as b,w as _}from"./index-6fe369de.js";import{d as q,c as n}from"./index-e4dd81d1.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,required:Boolean,iconPrefix:String,valueClass:u,labelClass:u,titleClass:u,titleStyle:null,arrowDirection:String,clickable:{type:Boolean,default:null}},N=I({},A,L);var R=q({name:z,props:N,setup(e,{slots:l}){const v=y(),m=()=>{if(l.label||s(e.label))return n("div",{class:[r("label"),e.labelClass]},[l.label?l.label():e.label])},g=()=>{var a;if(l.title||s(e.title)){const t=(a=l.title)==null?void 0:a.call(l);return Array.isArray(t)&&t.length===0?void 0:n("div",{class:[r("title"),e.titleClass],style:e.titleStyle},[t||n("span",null,[e.title]),m()])}},h=()=>{const a=l.value||l.default;if(a||s(e.value))return n("div",{class:[r("value"),e.valueClass]},[a?a():n("span",null,[e.value])])},w=()=>{if(l.icon)return l.icon();if(e.icon)return n(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 a=e.arrowDirection&&e.arrowDirection!=="right"?`arrow-${e.arrowDirection}`:"arrow";return n(b,{name:a,class:r("right-icon")},null)}};return()=>{var a;const{tag:t,size:i,center:P,border:k,isLink:S,required:x}=e,c=(a=e.clickable)!=null?a:S,d={center:P,required:x,clickable:c,borderless:!k};return i&&(d[i]=!!i),n(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 - 0
dist/assets/index-c057c01c.js

@@ -0,0 +1 @@
+import{c as o,t as c,w as d}from"./index-6fe369de.js";import{d as u,c as r,F as m,m as f}from"./index-e4dd81d1.js";import{B as p}from"./use-route-d0420bb1.js";const[v,a]=o("cell-group"),g={title:String,inset:Boolean,border:c};var B=u({name:v,inheritAttrs:!1,props:g,setup(e,{slots:t,attrs:l}){const n=()=>{var i;return r("div",f({class:[a({inset:e.inset}),{[p]:e.border&&!e.inset}]},l),[(i=t.default)==null?void 0:i.call(t)])},s=()=>r("div",{class:a("title",{inset:e.inset})},[t.title?t.title():e.title]);return()=>e.title||t.title?r(m,null,[s(),n()]):n()}});const _=d(B);export{_ as C};

Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/index-c5114efa.css


+ 1 - 1
dist/assets/index-e2132b47.js → dist/assets/index-c9a903a0.js

@@ -1 +1 @@
-import{c as B,b as u,r as $,k as j,n as d,t as z,f as P,I as D,w as N}from"./index-7004b5fb.js";import{d as _,r as f,g as C,a as R,y as U,H as F,o as H,z as b,c as n,w as M,N as O,m as S}from"./index-a9196ab5.js";const[T,t]=B("image"),V={src:String,alt:String,fit:String,position:String,round:Boolean,block:Boolean,width:d,height:d,radius:d,lazyLoad:Boolean,iconSize:d,showError:z,errorIcon:P("photo-fail"),iconPrefix:String,showLoading:z,loadingIcon:P("photo")};var q=_({name:T,props:V,emits:["load","error"],setup(a,{emit:v,slots:s}){const i=f(!1),o=f(!0),r=f(),{$Lazyload:l}=C().proxy,k=R(()=>{const e={width:u(a.width),height:u(a.height)};return $(a.radius)&&(e.overflow="hidden",e.borderRadius=u(a.radius)),e});U(()=>a.src,()=>{i.value=!1,o.value=!0});const g=e=>{o.value&&(o.value=!1,v("load",e))},m=()=>{const e=new Event("load");Object.defineProperty(e,"target",{value:r.value,enumerable:!0}),g(e)},h=e=>{i.value=!0,o.value=!1,v("error",e)},w=(e,c,I)=>I?I():n(D,{name:e,size:a.iconSize,class:c,classPrefix:a.iconPrefix},null),x=()=>{if(o.value&&a.showLoading)return n("div",{class:t("loading")},[w(a.loadingIcon,t("loading-icon"),s.loading)]);if(i.value&&a.showError)return n("div",{class:t("error")},[w(a.errorIcon,t("error-icon"),s.error)])},E=()=>{if(i.value||!a.src)return;const e={alt:a.alt,class:t("img"),style:{objectFit:a.fit,objectPosition:a.position}};return a.lazyLoad?M(n("img",S({ref:r},e),null),[[O("lazy"),a.src]]):n("img",S({ref:r,src:a.src,onLoad:g,onError:h},e),null)},y=({el:e})=>{const c=()=>{e===r.value&&o.value&&m()};r.value?c():b(c)},L=({el:e})=>{e===r.value&&!i.value&&h()};return l&&j&&(l.$on("loaded",y),l.$on("error",L),F(()=>{l.$off("loaded",y),l.$off("error",L)})),H(()=>{b(()=>{var e;(e=r.value)!=null&&e.complete&&!a.lazyLoad&&m()})}),()=>{var e;return n("div",{class:t({round:a.round,block:a.block}),style:k.value},[E(),x(),(e=s.default)==null?void 0:e.call(s)])}}});const J=N(q);export{J as I};
+import{c as B,b as u,r as $,k as j,n as d,t as z,f as P,I as D,w as N}from"./index-6fe369de.js";import{d as _,r as f,g as C,a as R,y as U,H as F,o as H,z as b,c as n,w as M,N as O,m as S}from"./index-e4dd81d1.js";const[T,t]=B("image"),V={src:String,alt:String,fit:String,position:String,round:Boolean,block:Boolean,width:d,height:d,radius:d,lazyLoad:Boolean,iconSize:d,showError:z,errorIcon:P("photo-fail"),iconPrefix:String,showLoading:z,loadingIcon:P("photo")};var q=_({name:T,props:V,emits:["load","error"],setup(a,{emit:v,slots:s}){const i=f(!1),o=f(!0),r=f(),{$Lazyload:l}=C().proxy,k=R(()=>{const e={width:u(a.width),height:u(a.height)};return $(a.radius)&&(e.overflow="hidden",e.borderRadius=u(a.radius)),e});U(()=>a.src,()=>{i.value=!1,o.value=!0});const g=e=>{o.value&&(o.value=!1,v("load",e))},m=()=>{const e=new Event("load");Object.defineProperty(e,"target",{value:r.value,enumerable:!0}),g(e)},h=e=>{i.value=!0,o.value=!1,v("error",e)},w=(e,c,I)=>I?I():n(D,{name:e,size:a.iconSize,class:c,classPrefix:a.iconPrefix},null),x=()=>{if(o.value&&a.showLoading)return n("div",{class:t("loading")},[w(a.loadingIcon,t("loading-icon"),s.loading)]);if(i.value&&a.showError)return n("div",{class:t("error")},[w(a.errorIcon,t("error-icon"),s.error)])},E=()=>{if(i.value||!a.src)return;const e={alt:a.alt,class:t("img"),style:{objectFit:a.fit,objectPosition:a.position}};return a.lazyLoad?M(n("img",S({ref:r},e),null),[[O("lazy"),a.src]]):n("img",S({ref:r,src:a.src,onLoad:g,onError:h},e),null)},y=({el:e})=>{const c=()=>{e===r.value&&o.value&&m()};r.value?c():b(c)},L=({el:e})=>{e===r.value&&!i.value&&h()};return l&&j&&(l.$on("loaded",y),l.$on("error",L),F(()=>{l.$off("loaded",y),l.$off("error",L)})),H(()=>{b(()=>{var e;(e=r.value)!=null&&e.complete&&!a.lazyLoad&&m()})}),()=>{var e;return n("div",{class:t({round:a.round,block:a.block}),style:k.value},[E(),x(),(e=s.default)==null?void 0:e.call(s)])}}});const J=N(q);export{J as I};

+ 0 - 1
dist/assets/index-d43e462e.css

@@ -1 +0,0 @@
-.van-swipe-cell{position:relative;overflow:hidden;cursor:-webkit-grab;cursor:grab}.van-swipe-cell__wrapper{transition-timing-function:cubic-bezier(.18,.89,.32,1);transition-property:transform}.van-swipe-cell__left,.van-swipe-cell__right{position:absolute;top:0;height:100%}.van-swipe-cell__left{left:0;transform:translate3d(-100%,0,0)}.van-swipe-cell__right{right:0;transform:translate3d(100%,0,0)}

+ 1 - 0
dist/assets/index-d6220461.css

@@ -0,0 +1 @@
+:root{--van-back-top-size: 40px;--van-back-top-right: 30px;--van-back-top-bottom: 40px;--van-back-top-z-index: 100;--van-back-top-icon-size: 20px;--van-back-top-text-color: #fff;--van-back-top-background: var(--van-blue)}.van-back-top{position:fixed;display:flex;align-items:center;justify-content:center;width:var(--van-back-top-size);height:var(--van-back-top-size);right:var(--van-back-top-right);bottom:var(--van-back-top-bottom);z-index:var(--van-back-top-z-index);cursor:pointer;color:var(--van-back-top-text-color);border-radius:var(--van-radius-max);box-shadow:0 2px 8px #0000001f;transform:scale(0);transition:var(--van-duration-base) cubic-bezier(.25,.8,.5,1);background-color:var(--van-back-top-background)}.van-back-top:active{opacity:var(--van-active-opacity)}.van-back-top__placeholder{display:none}.van-back-top--active{transform:scale(1)}.van-back-top__icon{font-size:var(--van-back-top-icon-size);font-weight:var(--van-font-bold)}:root{--van-pull-refresh-head-height: 50px;--van-pull-refresh-head-font-size: var(--van-font-size-md);--van-pull-refresh-head-text-color: var(--van-text-color-2);--van-pull-refresh-loading-icon-size: 16px}.van-pull-refresh{overflow:hidden}.van-pull-refresh__track{position:relative;height:100%;transition-property:transform}.van-pull-refresh__head{position:absolute;left:0;width:100%;height:var(--van-pull-refresh-head-height);overflow:hidden;color:var(--van-pull-refresh-head-text-color);font-size:var(--van-pull-refresh-head-font-size);line-height:var(--van-pull-refresh-head-height);text-align:center;transform:translateY(-100%)}.van-pull-refresh__loading .van-loading__spinner{width:var(--van-pull-refresh-loading-icon-size);height:var(--van-pull-refresh-loading-icon-size)}

Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/index-e4dd81d1.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/index-e75664f2.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/index-e8224928.css


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/index-f0330e0c.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/index-f3494371.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/index-f615d39e.js


+ 1 - 1
dist/assets/interceptor-8b4dcb44.js → dist/assets/interceptor-5a0fbdae.js

@@ -1 +1 @@
-import{R as r,h as p}from"./index-7004b5fb.js";function e(l,{args:t=[],done:i,canceled:s}){if(l){const f=l.apply(null,t);r(f)?f.then(o=>{o?i():s&&s()}).catch(p):f?i():s&&s()}else i()}export{e as c};
+import{R as r,h as p}from"./index-6fe369de.js";function e(l,{args:t=[],done:i,canceled:s}){if(l){const f=l.apply(null,t);r(f)?f.then(o=>{o?i():s&&s()}).catch(p):f?i():s&&s()}else i()}export{e as c};

+ 0 - 1
dist/assets/request-545ea7ff.js

@@ -1 +0,0 @@
-import{u as s,a as n}from"./index-e75664f2.js";const c="https://www.huifutiancai.com/huishou-service",o=s(),t=n.create({baseURL:c,timeout:5e3});t.interceptors.request.use(function(e){return o.token&&(e.headers.accessToken=o.token),e},function(e){return Promise.reject(e)});t.interceptors.response.use(function(e){return e},function(e){return Promise.reject(e)});const i=function(e,r){return t.post(e,r)};export{i as p};

+ 1 - 0
dist/assets/request-b925ec3f.js

@@ -0,0 +1 @@
+import{a as s}from"./axios-1de5cf2d.js";import{M as n}from"./index-e4dd81d1.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};

+ 0 - 1
dist/assets/use-expose-60a6d544.js

@@ -1 +0,0 @@
-import{e as n}from"./index-7004b5fb.js";import{g as o}from"./index-a9196ab5.js";function a(t){const e=o();e&&n(e.proxy,t)}export{a as u};

+ 1 - 1
dist/assets/use-placeholder-1a8c1d98.js → dist/assets/use-placeholder-11f198ec.js

@@ -1 +1 @@
-import{Q as u,N as c,M as r}from"./index-7004b5fb.js";import{L as h,y as a,r as l,o as p,z as n,c as d}from"./index-a9196ab5.js";const f=Symbol();function g(s){const t=h(f,null);t&&a(t,e=>{e&&s()})}const m=(s,t)=>{const e=l(),o=()=>{e.value=r(s).height};return p(()=>{if(n(o),t)for(let i=1;i<=3;i++)setTimeout(o,100*i)}),g(()=>n(o)),a([u,c],o),e};function w(s,t){const e=m(s,!0);return o=>d("div",{class:t("placeholder"),style:{height:e.value?`${e.value}px`:void 0}},[o()])}export{f as P,w as u};
+import{Q as u,L as c,K as r}from"./index-6fe369de.js";import{L as h,y as a,r as l,o as p,z as n,c as d}from"./index-e4dd81d1.js";const f=Symbol();function g(s){const t=h(f,null);t&&a(t,e=>{e&&s()})}const m=(s,t)=>{const e=l(),o=()=>{e.value=r(s).height};return p(()=>{if(n(o),t)for(let i=1;i<=3;i++)setTimeout(o,100*i)}),g(()=>n(o)),a([u,c],o),e};function w(s,t){const e=m(s,!0);return o=>d("div",{class:t("placeholder"),style:{height:e.value?`${e.value}px`:void 0}},[o()])}export{f as P,w as u};

+ 1 - 1
dist/assets/use-route-3f897e76.js → dist/assets/use-route-d0420bb1.js

@@ -1 +1 @@
-import{g as c}from"./index-a9196ab5.js";const o="van-hairline",r=`${o}--top`,R=`${o}--left`,T=`${o}--bottom`,E=`${o}--surround`,_=`${o}--top-bottom`,B=`${o}-unset--top-bottom`,i="van-haptics-feedback",u=Symbol("van-form"),p=500,f=5,S={to:[String,Object],url:String,replace:Boolean};function e({to:t,url:s,replace:n,$router:a}){t&&a?a[n?"replace":"push"](t):s&&(n?location.replace(s):location.href=s)}function D(){const t=c().proxy;return()=>e(t)}export{_ as B,u as F,i as H,p as L,f as T,r as a,o as b,R as c,B as d,T as e,E as f,S as r,D as u};
+import{g as c}from"./index-e4dd81d1.js";const o="van-hairline",r=`${o}--top`,R=`${o}--left`,T=`${o}--bottom`,E=`${o}--surround`,_=`${o}--top-bottom`,B=`${o}-unset--top-bottom`,i="van-haptics-feedback",u=Symbol("van-form"),p=500,f=5,S={to:[String,Object],url:String,replace:Boolean};function e({to:t,url:s,replace:n,$router:a}){t&&a?a[n?"replace":"push"](t):s&&(n?location.replace(s):location.href=s)}function D(){const t=c().proxy;return()=>e(t)}export{_ as B,u as F,i as H,p as L,f as T,r as a,o as b,R as c,B as d,T as e,E as f,S as r,D as u};

Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/util-5786b1b0.css


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/util-928bab92.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/util-9a06e803.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/util-a1d0d7af.css


+ 1 - 1
dist/index.html

@@ -6,7 +6,7 @@
     <link type="text/css" rel="stylesheet" href="//at.alicdn.com/t/c/font_3378860_jxulrbfimdf.css" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
     <title>驼人物联网平台</title>
-    <script type="module" crossorigin src="/wap/assets/index-a9196ab5.js"></script>
+    <script type="module" crossorigin src="/wap/assets/index-e4dd81d1.js"></script>
     <link rel="stylesheet" href="/wap/assets/index-a26c7d6f.css">
   </head>
   <body>

+ 3 - 3
src/components/CusNavigation.vue

@@ -10,11 +10,11 @@
       </a-breadcrumb>
     </div> -->
     <div style="line-height: 0px;" v-if="gobackabled" class="cus-goback" @click="onGoback">
-      <van-icon name="static/images/icon-back.png" size="1.6rem" />
+      <van-icon name="static/images/icon-back.png" size="1.7rem" />
     </div>
     <div style="font-family: PingFangSC, PingFang SC;
-      font-weight: 600;
-      font-size: 1rem;
+      font-weight: bold;
+      font-size: 1.1rem;
       color: #191A1A;
       line-height: 30px;
       text-align: justify;

+ 2 - 0
src/network/axios/index.ts

@@ -68,6 +68,8 @@ export const post_promise = function(request: RequestType): Promise<any>{
     if(result.code == 0){
       return Promise.resolve(result)
     }else if(result.code == 3){
+      console.log(result)
+      return Promise.reject(result.msg)
       // 路由跳转
       // message.error(result.msg, 3, ()=>{
       //   console.log(userInfo);

+ 1 - 1
src/pages/article/Detail.vue

@@ -4,7 +4,7 @@
     height: 100vh;">
 
     <!-- 导航 -->
-    <div style="padding: 16px;">
+    <div style="padding: 10px;">
       <CusNavigation gobackabled title="新闻详情"></CusNavigation>
     </div>
 

+ 217 - 0
src/pages/device/list/Index.vue

@@ -0,0 +1,217 @@
+<template>
+  <div style="display: flex; flex-direction:column;height: 100vh;">
+    
+    <!-- 店铺名称 -->
+    <div style="padding: 10px 16px 10px 16px;">
+      <div style="display: flex; 
+        justify-content:space-between; 
+        align-items:center;">
+        <div style="font-size: 20px; font-weight: bold;">
+          <span>设备</span>
+        </div>
+        <div style="line-height: 0px;">
+          <van-icon name="static/images/icon-search-black.png" size="1.7rem" />
+        </div>
+      </div>
+    </div>
+
+    
+    <div class="container" style="overflow-y: auto;flex: 1;">
+      <van-pull-refresh style="min-height: 100%;" v-model="refreshing" @refresh="onRefresh">
+        <van-swipe-cell v-for="item in dataList" style="background-color: #fff; margin-bottom: 10px;">
+          <template #right>
+            <div style="width: 50px; height: 100%; background-color: red; 
+              display: flex; justify-content:center; align-items: center;">
+              <div>
+                <div style="color: #fff; font-weight: bold;">
+                  <span>删除</span>
+                </div>
+              </div>
+            </div>
+          </template>
+          <van-cell clickable>
+            <div style="text-align: left;">
+              <!-- 第一行 -->
+              <div style="display: flex; justify-content: space-between; margin-bottom: 5px;">
+                <div style="color: #000; font-size: 0.9rem;">
+                  <span>{{item.productName}}</span>
+                </div>
+                <div>{{ item.createtime }}</div>
+              </div>
+              <!-- 第二行 -->
+              <div style="display: flex; align-items: flex-end; margin-bottom: 20px;">
+                <div style="color: #000; font-weight: bold;">
+                  <span>{{ item.mac }}</span>
+                </div>
+                <div style="margin-left: 5px; margin-bottom: 2px;">
+                  <template v-if="getTimeSpan(item.modifytime) < 1200">
+                    <van-tag round size="medium" type="success">在线</van-tag>
+                  </template>
+                  <template v-else>
+                    <van-tag round size="medium" type="danger">离线</van-tag>
+                  </template>
+                </div>
+              </div>
+              <!-- 第三行 -->
+              <div style="display: flex; justify-content: space-between;">
+                <div style="display: flex; color: #000;">
+                  <div>
+                    <van-icon name="static/images/icon-location2.png" size="1.5rem" />
+                  </div>
+                  <div style="margin-left: 3px;">位置</div>
+                </div>
+                <div style="display: flex; color: #000;">
+                  <div>
+                    <van-icon name="static/images/icon-log.png" size="1.5rem" />
+                  </div>
+                  <div style="margin-left: 3px;">日志</div>
+                </div>
+                <div style="display: flex; color: #000;">
+                  <div>
+                    <van-icon name="static/images/icon-edit.png" size="1.5rem" />
+                  </div>
+                  <div style="margin-left: 3px;">编辑</div>
+                </div>
+              </div>
+              
+            </div>
+          </van-cell>
+        </van-swipe-cell>
+
+        <!-- 数据提示 -->
+        <div>
+          <div v-if="refreshing"></div>
+          <div v-else-if="dataList.length == 0" style="text-align: center; padding: 20px; color: #ccc;">
+            <span>暂无数据</span>
+          </div>
+          <div v-else-if="isLoading" style="text-align: center; padding: 20px;">
+            <van-loading type="spinner" color="#1989fa" />
+          </div>
+          <div v-else-if="page.pages <= page.pageNum" style="text-align: center; padding: 20px; color: #ccc;">
+            <span>没有更多了</span>
+          </div>
+          <div v-else style="text-align: center; padding: 20px;">
+            <span @click="clickLoading">点击加载</span>
+          </div>
+        </div>
+        <div style="height: 60px; "></div>
+
+      </van-pull-refresh>
+      <!-- 返回顶部 -->
+      <van-back-top target=".container" right="5vw" bottom="80px" />
+    </div>
+  </div>
+
+</template>
+
+<script setup lang="ts">
+  import { onMounted, reactive, ref } from 'vue';
+  // import { useRouter } from 'vue-router'
+  import { post_promise } from '@/network/axios';
+  import 'vant/es/toast/style';
+  // 路由
+  // const router = useRouter();
+
+  // 分页
+  const page = reactive({
+    pageNum: 1,
+    pageSize: 10,
+    pages: 0,
+  })
+  const dataList = ref<any[]>([]);
+  const refreshing = ref(false);
+  const isLoading = ref(false);
+  const finished = ref(false);
+
+  // 获取数据
+  const getData = () => {
+    console.log('onload.....')
+
+    post_promise({url: '/device/search', data: {
+      size: page.pageSize,
+      page: page.pageNum,
+      sort: "createtime",
+      order: "desc",
+      keyWord: "",
+      mac: ''
+    }})
+    .then((result) => {
+      console.log(result)
+      // 刷新结束
+      isLoading.value = false;
+      refreshing.value = false;
+      // 处理成功结果
+      if(result.code == 0){
+        // 下拉刷新时清空列表
+        const dataArr:any[] = result.data;
+        const pages = Math.ceil(result.total / page.pageSize);
+        console.log(pages);
+        console.log(dataArr)
+        
+        if(page.pageNum == 1){
+          dataList.value.splice(0, dataList.value.length);
+        }
+        dataList.value.push(...dataArr);
+        page.pages = pages
+        console.log(dataList.value, pages)
+      }
+    },(result) => {
+        console.log(result)
+      isLoading.value = false;
+      refreshing.value = false;
+          // 跳转到首页
+    }).catch((ex) => {
+      console.log(ex)
+      isLoading.value = false;
+      refreshing.value = false;
+        // 跳转到首页
+    })
+
+
+  };
+  const onRefresh = () => {
+    console.log('onrefresh...')
+    console.log(refreshing.value)
+    page.pageNum = 1;
+    // 清空列表数据
+    finished.value = false;
+
+    // 重新加载数据
+    // 将 loading 设置为 true,表示处于加载状态
+    isLoading.value = true;
+    getData();
+  };
+
+  const getTimeSpan = (time: string) => {
+    const before = Date.parse(time);
+    const now = new Date().getTime();
+
+    return (now - before) / 1000;
+  }
+
+  // 生命周期
+  onMounted(() => {
+    console.log('onMounted');
+    // const before = Date.parse("2011-10-10 14:48:00");
+    // const now = Date.parse("2011-10-10 15:08:00");
+    // console.log(before)
+    // console.log(now)
+    // console.log(now - before)
+    getData();
+  })
+
+
+  // 点击加载
+  const clickLoading = () => {
+    console.log('clickLoading');
+    page.pageNum++
+    isLoading.value = true
+    getData();
+  }
+
+</script>
+
+<style scoped>
+
+
+</style>

+ 38 - 22
src/pages/login/Index.vue

@@ -65,7 +65,7 @@
               </template>
             </van-field>
             <div style="padding: 16px;">
-              <van-checkbox v-model="rememberPasswordChecked" shape="square">记住密码</van-checkbox>
+              <van-checkbox v-model="isRememberMe" shape="square">记住密码</van-checkbox>
             </div>
           </van-cell-group>
           <div style="margin: 16px;">
@@ -101,13 +101,13 @@
 
 <script setup lang="ts">
   import { onMounted, ref } from 'vue'
-  import { useLocalStore } from '@/store';
+  import { useStoreOfUserInfo } from '@/store/userInfo'
   import { useRouter } from 'vue-router'
   import { post, post_promise } from '@/network/axios';
   import type { FormInstance } from 'vant';
   // 路由
   const router = useRouter();
-  const localStore = useLocalStore();
+  const userInfo = useStoreOfUserInfo();
   // 表单实例
   const formRef = ref<FormInstance>();
   // 用户名和验证码
@@ -115,7 +115,7 @@
   const password = ref('')
   const captchaCode = ref('')
   const captchaKey = ref('')
-  const rememberPasswordChecked = ref(true);
+  const isRememberMe = ref(true);
 
 
   // 验证吗
@@ -151,41 +151,57 @@
   onMounted(() => {
     console.log('onMounted');
     refreshVerifycode();
-    rememberPasswordChecked.value = localStore.$state.rememberPassword;
-    if(rememberPasswordChecked.value){
-      username.value = localStore.$state.username
-      password.value = localStore.$state.password
+    isRememberMe.value = userInfo.isRememberMe as boolean;
+    if(isRememberMe.value){
+      username.value = userInfo.username
+      password.value = userInfo.password as string;
     }
   })
   // 登录提交
   const onSubmit = () => {
     formRef.value?.validate().then(() => {
       // 记住密码
-      localStore.$patch({
-        rememberPassword: rememberPasswordChecked.value
+      userInfo.$patch({
+        isRememberMe: isRememberMe.value as any
       })
       // 记住账号密码
-      if(rememberPasswordChecked.value){
-        localStore.$patch({
-          username: username.value,
-          password: password.value
+      if(isRememberMe.value){
+        userInfo.$patch({
+          username: username.value as any,
+          password: password.value as any
         })
       }
       // 登录
       post_promise({url: '/user/login', data: {
         username: username.value,
         password: password.value,
+        captchaCode: captchaCode.value,
+        captchaKey: captchaKey.value,
       }})
-      .then(({data}) => {
-        console.log(data)
-        if(data.code == 0){
-          // 存储token
-          localStore.$patch((state) => {
-            state.token = data.data.token
+      .then((result) => {
+        console.log(result)
+        const { username, token, roleIds, mobile } = result.data;
+        userInfo.$patch({
+          mobile: mobile,
+          username: username, 
+          token: token,
+          roles: roleIds,
+          isLogin: true as any,
+          isRememberMe: isRememberMe.value as any,
+        })
+        // 是否记住密码
+        if(isRememberMe.value){
+          userInfo.$patch({
+            password: password.value as any
+          })
+        }else{
+          userInfo.$patch({
+            password: '' as any
           })
-          // 跳转到首页
-          router.push('/')
         }
+        console.log(userInfo)
+        // 跳转到首页
+        router.replace('/');
       },(result) => {
         console.log(result)
           // 跳转到首页

+ 1 - 1
src/router/index.ts

@@ -15,7 +15,7 @@ const routes: Array<RouteRecordRaw> = [
       },
       {
         path: '/device',
-        component: ()=> import('@/pages/device/Index.vue')
+        component: ()=> import('@/pages/device/list/Index.vue')
       },
       {
         path: '/mine',

Certains fichiers n'ont pas été affichés car il y a eu trop de fichiers modifiés dans ce diff