龙三郎 пре 1 година
родитељ
комит
8da7f7cfd8
48 измењених фајлова са 225 додато и 155 уклоњено
  1. 1 1
      dist/assets/About-f85559f1.js
  2. 1 1
      dist/assets/Feedback-f15dc0e5.js
  3. 0 0
      dist/assets/Index-01130708.js
  4. 0 0
      dist/assets/Index-1b2f8623.js
  5. 0 0
      dist/assets/Index-1d5037bf.js
  6. 1 0
      dist/assets/Index-242ea625.css
  7. 0 0
      dist/assets/Index-2581989f.js
  8. 0 0
      dist/assets/Index-2a8f0561.js
  9. 0 1
      dist/assets/Index-35f329c1.css
  10. 0 0
      dist/assets/Index-3d4edb94.js
  11. 0 0
      dist/assets/Index-40071b70.js
  12. 0 1
      dist/assets/Index-573978f3.css
  13. 1 0
      dist/assets/Index-5dd7b455.css
  14. 0 0
      dist/assets/Index-6fca31ed.js
  15. 0 0
      dist/assets/Index-7e5a9c55.js
  16. 0 0
      dist/assets/Index-a624750e.js
  17. 0 0
      dist/assets/Index-c468a745.js
  18. 0 0
      dist/assets/Index-fd2690cd.js
  19. 0 0
      dist/assets/Index-fd99393f.css
  20. 0 0
      dist/assets/Index-fdc98ab5.js
  21. 1 1
      dist/assets/Index1-5946ec96.js
  22. 1 1
      dist/assets/Instructions-34c32998.js
  23. 1 1
      dist/assets/Questions-c76896ec.js
  24. 0 0
      dist/assets/index-08375191.js
  25. 0 0
      dist/assets/index-12e14ec0.js
  26. 1 1
      dist/assets/index-20677592.js
  27. 1 1
      dist/assets/index-2f6774f7.js
  28. 1 0
      dist/assets/index-55c5b44d.js
  29. 0 0
      dist/assets/index-6474ea80.js
  30. 0 0
      dist/assets/index-6df2baca.js
  31. 0 0
      dist/assets/index-d96414a9.js
  32. 0 0
      dist/assets/index-e16fdb63.js
  33. 0 0
      dist/assets/index-e5a55569.js
  34. 0 0
      dist/assets/index-e7585dcb.js
  35. 0 0
      dist/assets/index-f85ccba1.js
  36. 1 1
      dist/assets/index-f8b4de83.js
  37. 1 1
      dist/assets/interceptor-0ac08fbd.js
  38. 1 1
      dist/assets/request-2e0a49ba.js
  39. 1 0
      dist/assets/use-expose-a96194e5.js
  40. 0 1
      dist/assets/use-expose-cd5a8a20.js
  41. 1 1
      dist/assets/use-placeholder-d18307c4.js
  42. 0 0
      dist/assets/util-de365546.js
  43. 1 1
      dist/index.html
  44. 177 0
      src/pages/findpassword/Index.vue
  45. 13 6
      src/pages/login/Index.vue
  46. 15 17
      src/pages/register/Index.vue
  47. 0 117
      src/pages/user/Login.vue
  48. 4 0
      src/router/index.ts

+ 1 - 1
dist/assets/About-45bfeccb.js → dist/assets/About-f85559f1.js

@@ -1 +1 @@
-import{_ as e,b as c,e as t}from"./index-ebd06049.js";const n={};function o(r,s){return c(),t("div",null," 关于我们 ")}const a=e(n,[["render",o]]);export{a as default};
+import{_ as e,b as c,e as t}from"./index-e5a55569.js";const n={};function o(r,s){return c(),t("div",null," 关于我们 ")}const a=e(n,[["render",o]]);export{a as default};

+ 1 - 1
dist/assets/Feedback-16526da9.js → dist/assets/Feedback-f15dc0e5.js

@@ -1 +1 @@
-import{_ as e,b as c,e as n}from"./index-ebd06049.js";const r={};function t(o,a){return c(),n("div",null," 关于我们 ")}const _=e(r,[["render",t]]);export{_ as default};
+import{_ as e,b as c,e as n}from"./index-e5a55569.js";const r={};function t(o,a){return c(),n("div",null," 关于我们 ")}const _=e(r,[["render",t]]);export{_ as default};

Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
dist/assets/Index-01130708.js


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
dist/assets/Index-1b2f8623.js


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
dist/assets/Index-1d5037bf.js


+ 1 - 0
dist/assets/Index-242ea625.css

@@ -0,0 +1 @@
+.van-tabbar--fixed[data-v-901ea312]{left:auto;max-width:475px}

Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
dist/assets/Index-2581989f.js


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
dist/assets/Index-2a8f0561.js


+ 0 - 1
dist/assets/Index-35f329c1.css

@@ -1 +0,0 @@
-.van-tabbar--fixed[data-v-285a7198]{left:auto;max-width:475px}

Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
dist/assets/Index-3d4edb94.js


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
dist/assets/Index-40071b70.js


+ 0 - 1
dist/assets/Index-573978f3.css

@@ -1 +0,0 @@
-.van-tabbar--fixed[data-v-e047f600]{left:auto;max-width:475px}

+ 1 - 0
dist/assets/Index-5dd7b455.css

@@ -0,0 +1 @@
+.van-tabbar--fixed[data-v-62502ee4]{left:auto;max-width:475px}

Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
dist/assets/Index-6fca31ed.js


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
dist/assets/Index-7e5a9c55.js


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
dist/assets/Index-a624750e.js


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
dist/assets/Index-c468a745.js


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
dist/assets/Index-fd2690cd.js


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
dist/assets/Index-fd99393f.css


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
dist/assets/Index-fdc98ab5.js


+ 1 - 1
dist/assets/Index1-4977ba79.js → dist/assets/Index1-5946ec96.js

@@ -1 +1 @@
-import{_ as i,b as d,e as v,R as e}from"./index-ebd06049.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,R as e}from"./index-e5a55569.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};

+ 1 - 1
dist/assets/Instructions-fd2a2f24.js → dist/assets/Instructions-34c32998.js

@@ -1 +1 @@
-import{_ as e,b as c,e as n}from"./index-ebd06049.js";const t={};function r(o,s){return c(),n("div",null," 关于我们 ")}const a=e(t,[["render",r]]);export{a as default};
+import{_ as e,b as c,e as n}from"./index-e5a55569.js";const t={};function r(o,s){return c(),n("div",null," 关于我们 ")}const a=e(t,[["render",r]]);export{a as default};

+ 1 - 1
dist/assets/Questions-dad71677.js → dist/assets/Questions-c76896ec.js

@@ -1 +1 @@
-import{_ as e,b as c,e as n}from"./index-ebd06049.js";const t={};function o(r,s){return c(),n("div",null," 关于我们 ")}const a=e(t,[["render",o]]);export{a as default};
+import{_ as e,b as c,e as n}from"./index-e5a55569.js";const t={};function o(r,s){return c(),n("div",null," 关于我们 ")}const a=e(t,[["render",o]]);export{a as default};

Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
dist/assets/index-08375191.js


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
dist/assets/index-12e14ec0.js


+ 1 - 1
dist/assets/index-1410084d.js → dist/assets/index-20677592.js

@@ -1 +1 @@
-import{d as I,c as t,I as S}from"./index-ebd06049.js";import{c as k,t as x,l as B,H as P,I as T,w as h}from"./index-c1f44820.js";const[v,s]=k("tag"),w={size:String,mark:Boolean,show:x,type:B("default"),color:String,plain:Boolean,round:Boolean,textColor:String,closeable:Boolean};var y=I({name:v,props:w,emits:["close"],setup(o,{slots:n,emit:r}){const c=e=>{e.stopPropagation(),r("close",e)},i=()=>o.plain?{color:o.textColor||o.color,borderColor:o.color}:{color:o.textColor,background:o.color},d=()=>{var e;const{type:u,mark:m,plain:g,round:f,size:a,closeable:C}=o,l={mark:m,plain:g,round:f};a&&(l[a]=a);const b=C&&t(T,{name:"cross",class:[s("close"),P],onClick:c},null);return t("span",{style:i(),class:s([l,u])},[(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 z=h(y);export{z as T};
+import{d as I,c as t,I as S}from"./index-e5a55569.js";import{c as k,t as x,l as B,H as P,I as T,w as h}from"./index-d96414a9.js";const[v,s]=k("tag"),w={size:String,mark:Boolean,show:x,type:B("default"),color:String,plain:Boolean,round:Boolean,textColor:String,closeable:Boolean};var y=I({name:v,props:w,emits:["close"],setup(o,{slots:n,emit:r}){const c=e=>{e.stopPropagation(),r("close",e)},i=()=>o.plain?{color:o.textColor||o.color,borderColor:o.color}:{color:o.textColor,background:o.color},d=()=>{var e;const{type:u,mark:m,plain:g,round:f,size:a,closeable:C}=o,l={mark:m,plain:g,round:f};a&&(l[a]=a);const b=C&&t(T,{name:"cross",class:[s("close"),P],onClick:c},null);return t("span",{style:i(),class:s([l,u])},[(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 z=h(y);export{z as T};

+ 1 - 1
dist/assets/index-b8adef18.js → dist/assets/index-2f6774f7.js

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

+ 1 - 0
dist/assets/index-55c5b44d.js

@@ -0,0 +1 @@
+import{c as V,u as y,n as A,t as g,D as T,a1 as C,w as M}from"./index-d96414a9.js";import{u as N}from"./use-expose-a96194e5.js";import{d as _,c as x}from"./index-e5a55569.js";const[D,I]=V("form"),O={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 j=_({name:D,props:O,emits:["submit","failed"],setup(l,{emit:s,slots:u}){const{children:i,linkChildren:v}=y(C),r=e=>e?i.filter(t=>e.includes(t.name)):i,p=e=>new Promise((t,n)=>{const o=[];r(e).reduce((E,F)=>E.then(()=>{if(!o.length)return F.validate().then(h=>{h&&o.push(h)})}),Promise.resolve()).then(()=>{o.length?n(o):t()})}),b=e=>new Promise((t,n)=>{const o=r(e);Promise.all(o.map(a=>a.validate())).then(a=>{a=a.filter(Boolean),a.length?n(a):t()})}),B=e=>{const t=i.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):l.validateFirst?p(e):b(e),P=e=>{typeof e=="string"&&(e=[e]),r(e).forEach(n=>{n.resetValidation()})},S=()=>i.reduce((e,t)=>(e[t.name]=t.getValidationStatus(),e),{}),d=(e,t)=>{i.some(n=>n.name===e?(n.$el.scrollIntoView(t),!0):!1)},f=()=>i.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}),l.scrollToError&&t[0].name&&d(t[0].name)})},w=e=>{T(e),m()};return v({props:l}),N({submit:m,validate:c,getValues:f,scrollToField:d,resetValidation:P,getValidationStatus:S}),()=>{var e;return x("form",{class:I(),onSubmit:w},[(e=u.default)==null?void 0:e.call(u)])}}});const R=M(j);export{R as F};

Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
dist/assets/index-6474ea80.js


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
dist/assets/index-6df2baca.js


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
dist/assets/index-d96414a9.js


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
dist/assets/index-e16fdb63.js


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
dist/assets/index-e5a55569.js


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
dist/assets/index-e7585dcb.js


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
dist/assets/index-f85ccba1.js


+ 1 - 1
dist/assets/index-12acba36.js → dist/assets/index-f8b4de83.js

@@ -1 +1 @@
-import{c as B,f as u,A as $,v as j,n as d,t as z,l as P,I as D,w as N}from"./index-c1f44820.js";import{d as _,r as f,g as C,a as R,y as U,H as A,o as F,z as b,c as n,w as H,N as M,m as S}from"./index-ebd06049.js";const[O,t]=B("image"),T={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 V=_({name:O,props:T,emits:["load","error"],setup(a,{emit:v,slots:s}){const i=f(!1),o=f(!0),r=f(),{$Lazyload:l}=C().proxy,x=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),E=()=>{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)])},k=()=>{if(i.value||!a.src)return;const e={alt:a.alt,class:t("img"),style:{objectFit:a.fit,objectPosition:a.position}};return a.lazyLoad?H(n("img",S({ref:r},e),null),[[M("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),A(()=>{l.$off("loaded",y),l.$off("error",L)})),F(()=>{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:x.value},[k(),E(),(e=s.default)==null?void 0:e.call(s)])}}});const J=N(V);export{J as I};
+import{c as B,f as u,A as $,v as j,n as d,t as z,l as P,I as D,w as N}from"./index-d96414a9.js";import{d as _,r as f,g as C,a as R,y as U,H as A,o as F,z as b,c as n,w as H,N as M,m as S}from"./index-e5a55569.js";const[O,t]=B("image"),T={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 V=_({name:O,props:T,emits:["load","error"],setup(a,{emit:v,slots:s}){const i=f(!1),o=f(!0),r=f(),{$Lazyload:l}=C().proxy,x=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),E=()=>{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)])},k=()=>{if(i.value||!a.src)return;const e={alt:a.alt,class:t("img"),style:{objectFit:a.fit,objectPosition:a.position}};return a.lazyLoad?H(n("img",S({ref:r},e),null),[[M("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),A(()=>{l.$off("loaded",y),l.$off("error",L)})),F(()=>{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:x.value},[k(),E(),(e=s.default)==null?void 0:e.call(s)])}}});const J=N(V);export{J as I};

+ 1 - 1
dist/assets/interceptor-77f719a0.js → dist/assets/interceptor-0ac08fbd.js

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

+ 1 - 1
dist/assets/request-90084a8d.js → dist/assets/request-2e0a49ba.js

@@ -1 +1 @@
-import{u as s,a as n}from"./index-9c8f373e.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};
+import{u as s,a as n}from"./index-6df2baca.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/use-expose-a96194e5.js

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

+ 0 - 1
dist/assets/use-expose-cd5a8a20.js

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

+ 1 - 1
dist/assets/use-placeholder-efd5789a.js → dist/assets/use-placeholder-d18307c4.js

@@ -1 +1 @@
-import{_ as u,W as c,V as r}from"./index-c1f44820.js";import{L as h,y as a,r as l,o as p,z as n,c as d}from"./index-ebd06049.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{_ as u,W as c,V as r}from"./index-d96414a9.js";import{L as h,y as a,r as l,o as p,z as n,c as d}from"./index-e5a55569.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};

Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
dist/assets/util-de365546.js


+ 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-ebd06049.js"></script>
+    <script type="module" crossorigin src="/wap/assets/index-e5a55569.js"></script>
     <link rel="stylesheet" href="/wap/assets/index-a26c7d6f.css">
   </head>
   <body>

+ 177 - 0
src/pages/findpassword/Index.vue

@@ -0,0 +1,177 @@
+<template>
+
+
+  <div style="height: 100vh; overflow: hidden; display: flex; flex-direction: column;">
+
+    <!-- 用户名称 -->
+    <div style="background-image: url('static/images/bg-register.png');
+      background-repeat: no-repeat;
+      background-position-y: 0px;
+      background-size: 100%">
+
+      <div style="padding: 100px 16px 30px 32px; display: flex; 
+        justify-content:space-between; 
+        align-items:center;">
+        <div>
+          <div style="color: #5C677C; height: 30px;">
+            <!-- <van-tag type="primary" size="large">欢迎登录</van-tag> -->
+          </div>
+          <div style="font-size: 1.1rem; font-weight: bold;">
+            <span>忘记密码</span>
+          </div>
+          <div style="font-size: 0.9rem; color: #6D7A90;">
+            <span>请输入手机号和验证码找回密码</span>
+          </div>
+        </div>
+      </div>
+
+
+      <div style="margin-top: 60px;">
+        <van-form ref="formRef" @submit="onSubmit">
+          <van-cell-group inset>
+            <van-field
+              v-model="username"
+              name="username"
+              label="账号"
+              label-width="70"
+              placeholder="请输入账号"
+              :rules="[{ required: true, message: '请填写账号' }]"
+            />
+            <van-field
+              v-model="password"
+              name="password"
+              center
+              clearable
+              label="密码"
+              label-width="70"
+              type="password"
+              placeholder="请输入密码"
+              :rules="[{ required: true, message: '请输入密码' }]"
+            >
+            </van-field>
+            <!-- <van-field style="align-items: center;"
+              v-model="username"
+              name="username"
+              label="验证码"
+              label-width="70"
+              placeholder="请输入账号"
+              :rules="[{ required: true, message: '请填写账号' }]">
+              <template #button>
+                <van-image
+                  width="100"
+                  fit="contain"
+                  src="/static/images/banner.png"
+                />
+              </template>
+            </van-field> -->
+          </van-cell-group>
+          <div style="margin: 16px;">
+            <van-button
+              round block type="primary" size="large"
+              native-type="submit">确认</van-button>
+          </div>
+          <div style="padding: 0px 16px; display: flex; justify-content: space-between;">
+            <!-- <div>
+              <a>忘记密码?</a>
+            </div> -->
+            <div>
+              <span>密码已找回?</span>
+              <a @click="onLogin">去登录</a>
+            </div>
+          </div>
+        </van-form>
+      </div>
+
+
+
+    </div>
+
+
+
+
+
+  </div>
+
+
+
+
+</template>
+
+<script setup lang="ts">
+  import { onMounted, ref } from 'vue'
+  import { useLocalStore } from '@/store';
+  import { useRouter } from 'vue-router'
+  import { post } from '@/api/request';
+  import type { FormInstance } from 'vant';
+  // 路由
+  const router = useRouter();
+  const localStore = useLocalStore();
+  // 表单实例
+  const formRef = ref<FormInstance>();
+  // 用户名和验证码
+  const username = ref('')
+  const password = ref('')
+  const rememberPasswordChecked = ref(true);
+
+
+  // 点击了去登陆
+  const onLogin = () => {
+    // 跳转到登录界面
+    router.replace('/login');
+  }
+  
+  // 生命周期
+  onMounted(() => {
+    console.log('onMounted');
+    rememberPasswordChecked.value = localStore.$state.rememberPassword;
+    if(rememberPasswordChecked.value){
+      username.value = localStore.$state.username
+      password.value = localStore.$state.password
+    }
+  })
+  // 登录提交
+  const onSubmit = () => {
+    formRef.value?.validate().then(() => {
+      // 记住密码
+      localStore.$patch({
+        rememberPassword: rememberPasswordChecked.value
+      })
+      // 记住账号密码
+      if(rememberPasswordChecked.value){
+        localStore.$patch({
+          username: username.value,
+          password: password.value
+        })
+      }
+      // 登录
+      post('/user/login',{
+        username: username.value,
+        password: password.value,
+      })
+      .then(({data}) => {
+        console.log(data)
+        if(data.code == 0){
+          // 存储token
+          localStore.$patch((state) => {
+            state.token = data.data.token
+          })
+          // 跳转到首页
+          router.push('/')
+        }
+      })
+    }).catch((ex) => {
+      console.log(ex)
+    })
+  }
+
+  
+
+</script>
+
+<style scoped>
+  .van-tabbar--fixed{
+    left: auto;
+    max-width: 475px;
+  }
+
+</style>

+ 13 - 6
src/pages/login/Index.vue

@@ -9,11 +9,11 @@
       background-position-y: 0px;
       background-size: 100%">
 
-      <div style="padding: 100px 16px 30px 16px; display: flex; 
+      <div style="padding: 100px 16px 30px 32px; display: flex; 
         justify-content:space-between; 
         align-items:center;">
         <div>
-          <div style="color: #5C677C; margin-top: 4px;">
+          <div style="color: #5C677C; height: 30px;">
             <van-tag type="primary" size="large">欢迎登录</van-tag>
           </div>
           <div style="font-size: 1.1rem; font-weight: bold;">
@@ -47,11 +47,11 @@
             >
             </van-field>
             <van-field style="align-items: center;"
-              v-model="username"
-              name="username"
+              v-model="captchaCode"
+              name="captchaCode"
               label="验证码"
               label-width="70"
-              placeholder="请输入账号"
+              placeholder="请输入验证码"
               :rules="[{ required: true, message: '请填写账号' }]">
               <template #button>
                 <van-image
@@ -74,7 +74,7 @@
           </div>
           <div style="padding: 0px 16px; display: flex; justify-content: space-between;">
             <div>
-              <a>忘记密码?</a>
+              <a @click="onFindpassword">忘记密码?</a>
             </div>
             <div>
               <a @click="onRegister">注册账号</a>
@@ -112,6 +112,7 @@
   // 用户名和验证码
   const username = ref('')
   const password = ref('')
+  const captchaCode = ref('')
   const captchaKey = ref('')
   const rememberPasswordChecked = ref(true);
 
@@ -138,6 +139,12 @@
     // 跳转到注册
     router.replace('/register');
   }
+
+  // 点击了忘记密码
+  const onFindpassword = () => {
+    // 跳转到注册
+    router.replace('/findpassword');
+  }
   
   // 生命周期
   onMounted(() => {

+ 15 - 17
src/pages/register/Index.vue

@@ -4,20 +4,20 @@
   <div style="height: 100vh; overflow: hidden; display: flex; flex-direction: column;">
 
     <!-- 用户名称 -->
-    <div style="background-image: url('/static/images/bg-register.png');
+    <div style="background-image: url('static/images/bg-register.png');
       background-repeat: no-repeat;
       background-position-y: 0px;
       background-size: 100%">
 
-      <div style="padding: 100px 16px 30px 16px; display: flex; 
+      <div style="padding: 100px 16px 30px 32px; display: flex; 
         justify-content:space-between; 
         align-items:center;">
         <div>
-          <div style="color: #5C677C; margin-top: 4px;">
-            <van-tag type="primary" size="large">欢迎登录</van-tag>
+          <div style="color: #5C677C; height: 30px;">
+            <!-- <van-tag type="primary" size="large">欢迎登录</van-tag> -->
           </div>
           <div style="font-size: 1.1rem; font-weight: bold;">
-            <span>驼人物联网平台</span>
+            <span>注册</span>
           </div>
         </div>
       </div>
@@ -61,21 +61,19 @@
                 />
               </template>
             </van-field> -->
-            <div style="padding: 16px;">
-              <van-checkbox v-model="rememberPasswordChecked" shape="square">记住密码</van-checkbox>
-            </div>
           </van-cell-group>
           <div style="margin: 16px;">
             <van-button
               round block type="primary" size="large"
-              native-type="submit">登录</van-button>
+              native-type="submit">注册</van-button>
           </div>
           <div style="padding: 0px 16px; display: flex; justify-content: space-between;">
-            <div>
+            <!-- <div>
               <a>忘记密码?</a>
-            </div>
+            </div> -->
             <div>
-              <a @click="onRegister">注册账号</a>
+              <span>已有账号?</span>
+              <a @click="onLogin">去登录</a>
             </div>
           </div>
         </van-form>
@@ -113,11 +111,11 @@
   const rememberPasswordChecked = ref(true);
 
 
-  // 点击了注册
-const onRegister = () => {
-  // 跳转到注册
-  router.replace('/register');
-}
+  // 点击了去登陆
+  const onLogin = () => {
+    // 跳转到登录界面
+    router.replace('/login');
+  }
   
   // 生命周期
   onMounted(() => {

+ 0 - 117
src/pages/user/Login.vue

@@ -1,117 +0,0 @@
-<template>
-
-  <div style="height: 100%; display: flex; align-items: center;">
-    <div>
-      <van-form ref="formRef" @submit="onSubmit">
-        <van-cell-group inset>
-          <van-field
-            v-model="username"
-            name="username"
-            label="账号"
-            label-width="70"
-            placeholder="请输入账号"
-            :rules="[{ required: true, message: '请填写账号' }]"
-          />
-          <van-field
-            v-model="password"
-            name="password"
-            center
-            clearable
-            label="密码"
-            label-width="70"
-            type="password"
-            placeholder="请输入密码"
-            :rules="[{ required: true, message: '请输入密码' }]"
-          >
-          </van-field>
-          <div style="padding: 16px;">
-            <van-checkbox v-model="rememberPasswordChecked" shape="square">记住密码</van-checkbox>
-          </div>
-        </van-cell-group>
-        <div style="margin: 16px;">
-          <van-button color="#4fc08d" 
-            round block type="primary" size="large"
-            native-type="submit">登录</van-button>
-        </div>
-      </van-form>
-    </div>
-    
-  
-
-  </div>
-
-
-
-</template>
-
-<script setup lang="ts">
-  import { onMounted, ref } from 'vue'
-  import { useLocalStore } from '@/store';
-  import { useRouter } from 'vue-router'
-  import { post } from '@/api/request';
-  import type { FormInstance } from 'vant';
-  // 路由
-  const router = useRouter();
-  const localStore = useLocalStore();
-  // 表单实例
-  const formRef = ref<FormInstance>();
-  // 用户名和验证码
-  const username = ref('')
-  const password = ref('')
-  const rememberPasswordChecked = ref(true);
-  
-  // 生命周期
-  onMounted(() => {
-    console.log('onMounted');
-    rememberPasswordChecked.value = localStore.$state.rememberPassword;
-    if(rememberPasswordChecked.value){
-      username.value = localStore.$state.username
-      password.value = localStore.$state.password
-    }
-  })
-  // 登录提交
-  const onSubmit = () => {
-    formRef.value?.validate().then(() => {
-      // 记住密码
-      localStore.$patch({
-        rememberPassword: rememberPasswordChecked.value
-      })
-      // 记住账号密码
-      if(rememberPasswordChecked.value){
-        localStore.$patch({
-          username: username.value,
-          password: password.value
-        })
-      }
-      // 登录
-      post('/user/login',{
-        username: username.value,
-        password: password.value,
-      })
-      .then(({data}) => {
-        console.log(data)
-        if(data.code == 0){
-          // 存储token
-          localStore.$patch((state) => {
-            state.token = data.data.token
-          })
-          // 跳转到首页
-          router.push('/')
-        }
-      })
-    }).catch((ex) => {
-      console.log(ex)
-    })
-  }
-
-  
-
-</script>
-
-<style scoped>
-  .van-tabbar--fixed{
-    left: auto;
-    max-width: 475px;
-  }
-
-</style>

+ 4 - 0
src/router/index.ts

@@ -47,6 +47,10 @@ const routes: Array<RouteRecordRaw> = [
     path: '/register',
     component: () => import('@/pages/register/Index.vue')
   },
+  {
+    path: '/findpassword',
+    component: () => import('@/pages/findpassword/Index.vue')
+  },
   {
     path: '/docs/instructions',
     component: () => import('@/pages/docs/Instructions.vue')

Неке датотеке нису приказане због велике количине промена