lex-wxl před 1 týdnem
rodič
revize
0d62dbe1aa
53 změnil soubory, kde provedl 625 přidání a 5 odebrání
  1. 1 0
      dist/assets/auth-login-legacy.a3043bcb.js
  2. 1 0
      dist/assets/auth-login-legacy.f87f1b51.js
  3. 1 0
      dist/assets/auth-login.8ffde554.js
  4. 1 0
      dist/assets/auth-login.dd3a5c28.js
  5. 5 0
      dist/assets/home-layout-center-legacy.15fb6589.js
  6. 4 0
      dist/assets/home-layout-center-legacy.bc2f6764.js
  7. 5 0
      dist/assets/home-layout-center.ef86bde3.js
  8. 4 0
      dist/assets/home-layout-center.f2d1c2e3.js
  9. 1 0
      dist/assets/index-legacy.257a2eda.js
  10. 1 0
      dist/assets/index-legacy.2fb978bb.js
  11. 1 0
      dist/assets/index-legacy.a50c5f42.js
  12. 1 0
      dist/assets/index-legacy.e80190f7.js
  13. 1 0
      dist/assets/index.394ebd14.js
  14. 1 0
      dist/assets/index.4a585c68.js
  15. 1 0
      dist/assets/index.732e96c9.js
  16. 1 0
      dist/assets/index.dbc2efc6.js
  17. 1 0
      dist/assets/login-legacy.9fd6005d.js
  18. 1 0
      dist/assets/login-legacy.aa8b070f.js
  19. 1 0
      dist/assets/login.e1f9b5bc.js
  20. 1 0
      dist/assets/login.f5c90135.js
  21. 1 0
      dist/assets/routes-common-legacy.47797dae.js
  22. 1 0
      dist/assets/routes-common-legacy.87f4aabc.js
  23. 1 0
      dist/assets/routes-common.cf54f743.js
  24. 1 0
      dist/assets/routes-common.e4494951.js
  25. 1 0
      dist/assets/teacher-legacy.30becdb5.js
  26. 1 0
      dist/assets/teacher-legacy.af1eec9a.js
  27. 1 0
      dist/assets/teacher.6943afb5.js
  28. 1 0
      dist/assets/teacher.9b7582aa.js
  29. 1 0
      dist/assets/tenant-legacy.3406fcde.js
  30. 1 0
      dist/assets/tenant-legacy.4d64a26c.js
  31. 1 0
      dist/assets/tenant.23ae7882.js
  32. 1 0
      dist/assets/tenant.7d3796a2.js
  33. 12 0
      dist/index.html
  34. 11 0
      dist/teacher.html
  35. 9 0
      dist/tenant.html
  36. 18 4
      src/router/routes-student.ts
  37. 65 0
      src/student/register/download.module.less
  38. 87 0
      src/student/register/download.tsx
  39. binární
      src/student/register/images/bg.png
  40. binární
      src/student/register/images/bg2.png
  41. binární
      src/student/register/images/bottom_bg.png
  42. binární
      src/student/register/images/center_bg.png
  43. binární
      src/student/register/images/icon-1.png
  44. binární
      src/student/register/images/icon-bird.png
  45. binární
      src/student/register/images/icon-radio.png
  46. binární
      src/student/register/images/icon-range.png
  47. binární
      src/student/register/images/icon-tips.png
  48. binární
      src/student/register/images/icon-title.png
  49. binární
      src/student/register/images/icon-top.png
  50. binární
      src/student/register/images/wx_bg.png
  51. 145 0
      src/student/register/index.module.less
  52. 231 0
      src/student/register/index.tsx
  53. 1 1
      vite.config.ts

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
dist/assets/auth-login-legacy.a3043bcb.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
dist/assets/auth-login-legacy.f87f1b51.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
dist/assets/auth-login.8ffde554.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
dist/assets/auth-login.dd3a5c28.js


+ 5 - 0
dist/assets/home-layout-center-legacy.15fb6589.js

@@ -0,0 +1,5 @@
+<<<<<<<< HEAD:dist/assets/home-layout-center-legacy.bc2f6764.js
+!function(){function e(e,t,n,r,o,s,u){try{var a=e[s](u),c=a.value}catch(i){return void n(i)}a.done?t(c):Promise.resolve(c).then(r,o)}System.register(["./ResizeObserver.es-legacy.5b47f92b.js","./index-legacy.a50c5f42.js","./auth-legacy.11bdf0c5.js","./routes-common-legacy.47797dae.js"],(function(t){"use strict";var n,r,o,s,u,a,c,i,f,l;return{setters:[function(e){n=e.d,r=e.g,o=e.u,s=e.p,u=e.i,a=e.j,c=e.C,i=e.F},function(e){f=e.a,l=e.b},function(){},function(){}],execute:function(){t("default",n({name:"home-layout-center",data:function(){return{status:!1}},mounted:function(){this.getUserInfo()},methods:{getUserInfo:function(){var t,n=this;return(t=regeneratorRuntime.mark((function e(){var t,a,c;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,f.post("/api-auth/smsLogin",{requestType:"form",data:{clientId:"student",clientSecret:"student",phone:r.orchestraInfo.phone,token:r.orchestraInfo.token,isSurportRegister:!0}});case 3:return t=e.sent,a=t.data.authentication,o(a.token_type+" "+a.access_token),s({api:"setCache",content:{key:"h5-colexiu-token",value:a.token_type+" "+a.access_token}}),e.next=9,f.get("/api-student/student/queryUserInfo",{initRequest:!0});case 9:c=e.sent,u(c.data),n.$router.push("/home"),e.next=17;break;case 14:e.prev=14,e.t0=e.catch(0),n.status=!0;case 17:case"end":return e.stop()}}),e,null,[[0,14]])})),function(){var n=this,r=arguments;return new Promise((function(o,s){var u=t.apply(n,r);function a(t){e(u,o,s,a,c,"next",t)}function c(t){e(u,o,s,a,c,"throw",t)}a(void 0)}))})()}},render:function(){return a(i,null,[this.status?a("div",{class:l.error},[a(c,{type:"notFond",classImgSize:"CERT",tips:"加载失败,请稍后重试",buttonText:"重新加载",plain:!0,onClick:this.getUserInfo},null)]):a("div",null,null)])}}))}}}))}();
+========
+!function(){function e(e,t,n,r,o,s,u){try{var a=e[s](u),c=a.value}catch(i){return void n(i)}a.done?t(c):Promise.resolve(c).then(r,o)}System.register(["./ResizeObserver.es-legacy.5b47f92b.js","./index-legacy.257a2eda.js","./auth-legacy.11bdf0c5.js","./routes-common-legacy.87f4aabc.js"],(function(t){"use strict";var n,r,o,s,u,a,c,i,f,l;return{setters:[function(e){n=e.d,r=e.g,o=e.u,s=e.p,u=e.i,a=e.j,c=e.C,i=e.F},function(e){f=e.a,l=e.b},function(){},function(){}],execute:function(){t("default",n({name:"home-layout-center",data:function(){return{status:!1}},mounted:function(){this.getUserInfo()},methods:{getUserInfo:function(){var t,n=this;return(t=regeneratorRuntime.mark((function e(){var t,a,c;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,f.post("/api-auth/smsLogin",{requestType:"form",data:{clientId:"student",clientSecret:"student",phone:r.orchestraInfo.phone,token:r.orchestraInfo.token,isSurportRegister:!0}});case 3:return t=e.sent,a=t.data.authentication,o(a.token_type+" "+a.access_token),s({api:"setCache",content:{key:"h5-colexiu-token",value:a.token_type+" "+a.access_token}}),e.next=9,f.get("/api-student/student/queryUserInfo",{initRequest:!0});case 9:c=e.sent,u(c.data),n.$router.push("/home"),e.next=17;break;case 14:e.prev=14,e.t0=e.catch(0),n.status=!0;case 17:case"end":return e.stop()}}),e,null,[[0,14]])})),function(){var n=this,r=arguments;return new Promise((function(o,s){var u=t.apply(n,r);function a(t){e(u,o,s,a,c,"next",t)}function c(t){e(u,o,s,a,c,"throw",t)}a(void 0)}))})()}},render:function(){return a(i,null,[this.status?a("div",{class:l.error},[a(c,{type:"notFond",classImgSize:"CERT",tips:"加载失败,请稍后重试",buttonText:"重新加载",plain:!0,onClick:this.getUserInfo},null)]):a("div",null,null)])}}))}}}))}();
+>>>>>>>> iteration-20250724:dist/assets/home-layout-center-legacy.15fb6589.js

+ 4 - 0
dist/assets/home-layout-center-legacy.bc2f6764.js

@@ -1 +1,5 @@
+<<<<<<<< HEAD:dist/assets/home-layout-center-legacy.bc2f6764.js
 !function(){function e(e,t,n,r,o,s,u){try{var a=e[s](u),c=a.value}catch(i){return void n(i)}a.done?t(c):Promise.resolve(c).then(r,o)}System.register(["./ResizeObserver.es-legacy.5b47f92b.js","./index-legacy.a50c5f42.js","./auth-legacy.11bdf0c5.js","./routes-common-legacy.47797dae.js"],(function(t){"use strict";var n,r,o,s,u,a,c,i,f,l;return{setters:[function(e){n=e.d,r=e.g,o=e.u,s=e.p,u=e.i,a=e.j,c=e.C,i=e.F},function(e){f=e.a,l=e.b},function(){},function(){}],execute:function(){t("default",n({name:"home-layout-center",data:function(){return{status:!1}},mounted:function(){this.getUserInfo()},methods:{getUserInfo:function(){var t,n=this;return(t=regeneratorRuntime.mark((function e(){var t,a,c;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,f.post("/api-auth/smsLogin",{requestType:"form",data:{clientId:"student",clientSecret:"student",phone:r.orchestraInfo.phone,token:r.orchestraInfo.token,isSurportRegister:!0}});case 3:return t=e.sent,a=t.data.authentication,o(a.token_type+" "+a.access_token),s({api:"setCache",content:{key:"h5-colexiu-token",value:a.token_type+" "+a.access_token}}),e.next=9,f.get("/api-student/student/queryUserInfo",{initRequest:!0});case 9:c=e.sent,u(c.data),n.$router.push("/home"),e.next=17;break;case 14:e.prev=14,e.t0=e.catch(0),n.status=!0;case 17:case"end":return e.stop()}}),e,null,[[0,14]])})),function(){var n=this,r=arguments;return new Promise((function(o,s){var u=t.apply(n,r);function a(t){e(u,o,s,a,c,"next",t)}function c(t){e(u,o,s,a,c,"throw",t)}a(void 0)}))})()}},render:function(){return a(i,null,[this.status?a("div",{class:l.error},[a(c,{type:"notFond",classImgSize:"CERT",tips:"加载失败,请稍后重试",buttonText:"重新加载",plain:!0,onClick:this.getUserInfo},null)]):a("div",null,null)])}}))}}}))}();
+========
+!function(){function e(e,t,n,r,o,s,u){try{var a=e[s](u),c=a.value}catch(i){return void n(i)}a.done?t(c):Promise.resolve(c).then(r,o)}System.register(["./ResizeObserver.es-legacy.5b47f92b.js","./index-legacy.257a2eda.js","./auth-legacy.11bdf0c5.js","./routes-common-legacy.87f4aabc.js"],(function(t){"use strict";var n,r,o,s,u,a,c,i,f,l;return{setters:[function(e){n=e.d,r=e.g,o=e.u,s=e.p,u=e.i,a=e.j,c=e.C,i=e.F},function(e){f=e.a,l=e.b},function(){},function(){}],execute:function(){t("default",n({name:"home-layout-center",data:function(){return{status:!1}},mounted:function(){this.getUserInfo()},methods:{getUserInfo:function(){var t,n=this;return(t=regeneratorRuntime.mark((function e(){var t,a,c;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,f.post("/api-auth/smsLogin",{requestType:"form",data:{clientId:"student",clientSecret:"student",phone:r.orchestraInfo.phone,token:r.orchestraInfo.token,isSurportRegister:!0}});case 3:return t=e.sent,a=t.data.authentication,o(a.token_type+" "+a.access_token),s({api:"setCache",content:{key:"h5-colexiu-token",value:a.token_type+" "+a.access_token}}),e.next=9,f.get("/api-student/student/queryUserInfo",{initRequest:!0});case 9:c=e.sent,u(c.data),n.$router.push("/home"),e.next=17;break;case 14:e.prev=14,e.t0=e.catch(0),n.status=!0;case 17:case"end":return e.stop()}}),e,null,[[0,14]])})),function(){var n=this,r=arguments;return new Promise((function(o,s){var u=t.apply(n,r);function a(t){e(u,o,s,a,c,"next",t)}function c(t){e(u,o,s,a,c,"throw",t)}a(void 0)}))})()}},render:function(){return a(i,null,[this.status?a("div",{class:l.error},[a(c,{type:"notFond",classImgSize:"CERT",tips:"加载失败,请稍后重试",buttonText:"重新加载",plain:!0,onClick:this.getUserInfo},null)]):a("div",null,null)])}}))}}}))}();
+>>>>>>>> iteration-20250724:dist/assets/home-layout-center-legacy.15fb6589.js

+ 5 - 0
dist/assets/home-layout-center.ef86bde3.js

@@ -0,0 +1,5 @@
+<<<<<<<< HEAD:dist/assets/home-layout-center.f2d1c2e3.js
+import{d as r,g as s,u,p as i,i as c,j as e,C as l,F as p}from"./ResizeObserver.es.62ab429c.js";import{a,b as h}from"./index.394ebd14.js";import"./auth.ec0e1c23.js";import"./routes-common.cf54f743.js";var g=r({name:"home-layout-center",data(){return{status:!1}},mounted(){this.getUserInfo()},methods:{async getUserInfo(){try{const o=await a.post("/api-auth/smsLogin",{requestType:"form",data:{clientId:"student",clientSecret:"student",phone:s.orchestraInfo.phone,token:s.orchestraInfo.token,isSurportRegister:!0}}),{authentication:t}=o.data;u(t.token_type+" "+t.access_token),i({api:"setCache",content:{key:"h5-colexiu-token",value:t.token_type+" "+t.access_token}});const n=await a.get("/api-student/student/queryUserInfo",{initRequest:!0});c(n.data),this.$router.push("/home")}catch{this.status=!0}}},render(){return e(p,null,[this.status?e("div",{class:h.error},[e(l,{type:"notFond",classImgSize:"CERT",tips:"\u52A0\u8F7D\u5931\u8D25\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5",buttonText:"\u91CD\u65B0\u52A0\u8F7D",plain:!0,onClick:this.getUserInfo},null)]):e("div",null,null)])}});export{g as default};
+========
+import{d as r,g as s,u,p as i,i as c,j as e,C as l,F as p}from"./ResizeObserver.es.62ab429c.js";import{a,b as h}from"./index.dbc2efc6.js";import"./auth.ec0e1c23.js";import"./routes-common.e4494951.js";var g=r({name:"home-layout-center",data(){return{status:!1}},mounted(){this.getUserInfo()},methods:{async getUserInfo(){try{const o=await a.post("/api-auth/smsLogin",{requestType:"form",data:{clientId:"student",clientSecret:"student",phone:s.orchestraInfo.phone,token:s.orchestraInfo.token,isSurportRegister:!0}}),{authentication:t}=o.data;u(t.token_type+" "+t.access_token),i({api:"setCache",content:{key:"h5-colexiu-token",value:t.token_type+" "+t.access_token}});const n=await a.get("/api-student/student/queryUserInfo",{initRequest:!0});c(n.data),this.$router.push("/home")}catch{this.status=!0}}},render(){return e(p,null,[this.status?e("div",{class:h.error},[e(l,{type:"notFond",classImgSize:"CERT",tips:"\u52A0\u8F7D\u5931\u8D25\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5",buttonText:"\u91CD\u65B0\u52A0\u8F7D",plain:!0,onClick:this.getUserInfo},null)]):e("div",null,null)])}});export{g as default};
+>>>>>>>> iteration-20250724:dist/assets/home-layout-center.ef86bde3.js

+ 4 - 0
dist/assets/home-layout-center.f2d1c2e3.js

@@ -1 +1,5 @@
+<<<<<<<< HEAD:dist/assets/home-layout-center.f2d1c2e3.js
 import{d as r,g as s,u,p as i,i as c,j as e,C as l,F as p}from"./ResizeObserver.es.62ab429c.js";import{a,b as h}from"./index.394ebd14.js";import"./auth.ec0e1c23.js";import"./routes-common.cf54f743.js";var g=r({name:"home-layout-center",data(){return{status:!1}},mounted(){this.getUserInfo()},methods:{async getUserInfo(){try{const o=await a.post("/api-auth/smsLogin",{requestType:"form",data:{clientId:"student",clientSecret:"student",phone:s.orchestraInfo.phone,token:s.orchestraInfo.token,isSurportRegister:!0}}),{authentication:t}=o.data;u(t.token_type+" "+t.access_token),i({api:"setCache",content:{key:"h5-colexiu-token",value:t.token_type+" "+t.access_token}});const n=await a.get("/api-student/student/queryUserInfo",{initRequest:!0});c(n.data),this.$router.push("/home")}catch{this.status=!0}}},render(){return e(p,null,[this.status?e("div",{class:h.error},[e(l,{type:"notFond",classImgSize:"CERT",tips:"\u52A0\u8F7D\u5931\u8D25\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5",buttonText:"\u91CD\u65B0\u52A0\u8F7D",plain:!0,onClick:this.getUserInfo},null)]):e("div",null,null)])}});export{g as default};
+========
+import{d as r,g as s,u,p as i,i as c,j as e,C as l,F as p}from"./ResizeObserver.es.62ab429c.js";import{a,b as h}from"./index.dbc2efc6.js";import"./auth.ec0e1c23.js";import"./routes-common.e4494951.js";var g=r({name:"home-layout-center",data(){return{status:!1}},mounted(){this.getUserInfo()},methods:{async getUserInfo(){try{const o=await a.post("/api-auth/smsLogin",{requestType:"form",data:{clientId:"student",clientSecret:"student",phone:s.orchestraInfo.phone,token:s.orchestraInfo.token,isSurportRegister:!0}}),{authentication:t}=o.data;u(t.token_type+" "+t.access_token),i({api:"setCache",content:{key:"h5-colexiu-token",value:t.token_type+" "+t.access_token}});const n=await a.get("/api-student/student/queryUserInfo",{initRequest:!0});c(n.data),this.$router.push("/home")}catch{this.status=!0}}},render(){return e(p,null,[this.status?e("div",{class:h.error},[e(l,{type:"notFond",classImgSize:"CERT",tips:"\u52A0\u8F7D\u5931\u8D25\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5",buttonText:"\u91CD\u65B0\u52A0\u8F7D",plain:!0,onClick:this.getUserInfo},null)]):e("div",null,null)])}});export{g as default};
+>>>>>>>> iteration-20250724:dist/assets/home-layout-center.ef86bde3.js

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
dist/assets/index-legacy.257a2eda.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
dist/assets/index-legacy.2fb978bb.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
dist/assets/index-legacy.a50c5f42.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
dist/assets/index-legacy.e80190f7.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
dist/assets/index.394ebd14.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
dist/assets/index.4a585c68.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
dist/assets/index.732e96c9.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
dist/assets/index.dbc2efc6.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
dist/assets/login-legacy.9fd6005d.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
dist/assets/login-legacy.aa8b070f.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
dist/assets/login.e1f9b5bc.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
dist/assets/login.f5c90135.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
dist/assets/routes-common-legacy.47797dae.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
dist/assets/routes-common-legacy.87f4aabc.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
dist/assets/routes-common.cf54f743.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
dist/assets/routes-common.e4494951.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
dist/assets/teacher-legacy.30becdb5.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
dist/assets/teacher-legacy.af1eec9a.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
dist/assets/teacher.6943afb5.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
dist/assets/teacher.9b7582aa.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
dist/assets/tenant-legacy.3406fcde.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
dist/assets/tenant-legacy.4d64a26c.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
dist/assets/tenant.23ae7882.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
dist/assets/tenant.7d3796a2.js


+ 12 - 0
dist/index.html

@@ -52,10 +52,17 @@
             _T_));
     })(Object);
   </script>
+<<<<<<< HEAD
   <script type="module" crossorigin src="./assets/index.394ebd14.js"></script>
   <link rel="modulepreload" href="./assets/ResizeObserver.es.62ab429c.js">
   <link rel="modulepreload" href="./assets/auth.ec0e1c23.js">
   <link rel="modulepreload" href="./assets/routes-common.cf54f743.js">
+=======
+  <script type="module" crossorigin src="./assets/index.dbc2efc6.js"></script>
+  <link rel="modulepreload" href="./assets/ResizeObserver.es.62ab429c.js">
+  <link rel="modulepreload" href="./assets/auth.ec0e1c23.js">
+  <link rel="modulepreload" href="./assets/routes-common.e4494951.js">
+>>>>>>> iteration-20250724
   <link rel="stylesheet" href="./assets/ResizeObserver.es.cf474077.css">
   <link rel="stylesheet" href="./assets/auth.f09b6d78.css">
   <link rel="stylesheet" href="./assets/index.820e7d12.css">
@@ -67,8 +74,13 @@
   
   <!-- <script type="module" src="/src/teacher/main.ts"></script> -->
   <script nomodule>!function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",(function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()}),!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();</script>
+<<<<<<< HEAD
   <script nomodule id="vite-legacy-polyfill" src="./assets/polyfills-legacy.5fcf6b6f.js"></script>
   <script nomodule id="vite-legacy-entry" data-src="./assets/index-legacy.a50c5f42.js">System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))</script>
+=======
+  <script nomodule id="vite-legacy-polyfill" src="./assets/polyfills-legacy.4f87b3bc.js"></script>
+  <script nomodule id="vite-legacy-entry" data-src="./assets/index-legacy.257a2eda.js">System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))</script>
+>>>>>>> iteration-20250724
 </body>
 
 </html>

+ 11 - 0
dist/teacher.html

@@ -52,9 +52,15 @@
             _T_));
     })(Object);
   </script>
+<<<<<<< HEAD
   <script type="module" crossorigin src="./assets/teacher.6943afb5.js"></script>
   <link rel="modulepreload" href="./assets/ResizeObserver.es.62ab429c.js">
   <link rel="modulepreload" href="./assets/routes-common.cf54f743.js">
+=======
+  <script type="module" crossorigin src="./assets/teacher.9b7582aa.js"></script>
+  <link rel="modulepreload" href="./assets/ResizeObserver.es.62ab429c.js">
+  <link rel="modulepreload" href="./assets/routes-common.e4494951.js">
+>>>>>>> iteration-20250724
   <link rel="stylesheet" href="./assets/ResizeObserver.es.cf474077.css">
   <link rel="stylesheet" href="./assets/teacher.ded4b243.css">
   <script type="module">!function(){try{new Function("m","return import(m)")}catch(o){console.warn("vite: loading legacy build because dynamic import is unsupported, syntax error above should be ignored");var e=document.getElementById("vite-legacy-polyfill"),n=document.createElement("script");n.src=e.src,n.onload=function(){System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))},document.body.appendChild(n)}}();</script>
@@ -64,8 +70,13 @@
   <div id="app"></div>
   
   <script nomodule>!function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",(function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()}),!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();</script>
+<<<<<<< HEAD
   <script nomodule id="vite-legacy-polyfill" src="./assets/polyfills-legacy.5fcf6b6f.js"></script>
   <script nomodule id="vite-legacy-entry" data-src="./assets/teacher-legacy.30becdb5.js">System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))</script>
+=======
+  <script nomodule id="vite-legacy-polyfill" src="./assets/polyfills-legacy.4f87b3bc.js"></script>
+  <script nomodule id="vite-legacy-entry" data-src="./assets/teacher-legacy.af1eec9a.js">System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))</script>
+>>>>>>> iteration-20250724
 </body>
 
 </html>

+ 9 - 0
dist/tenant.html

@@ -52,7 +52,11 @@
             _T_));
     })(Object);
   </script>
+<<<<<<< HEAD
   <script type="module" crossorigin src="./assets/tenant.7d3796a2.js"></script>
+=======
+  <script type="module" crossorigin src="./assets/tenant.23ae7882.js"></script>
+>>>>>>> iteration-20250724
   <link rel="modulepreload" href="./assets/ResizeObserver.es.62ab429c.js">
   <link rel="modulepreload" href="./assets/auth.ec0e1c23.js">
   <link rel="stylesheet" href="./assets/ResizeObserver.es.cf474077.css">
@@ -66,8 +70,13 @@
   
   <!-- <script type="module" src="/src/teacher/main.ts"></script> -->
   <script nomodule>!function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",(function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()}),!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();</script>
+<<<<<<< HEAD
   <script nomodule id="vite-legacy-polyfill" src="./assets/polyfills-legacy.5fcf6b6f.js"></script>
   <script nomodule id="vite-legacy-entry" data-src="./assets/tenant-legacy.3406fcde.js">System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))</script>
+=======
+  <script nomodule id="vite-legacy-polyfill" src="./assets/polyfills-legacy.4f87b3bc.js"></script>
+  <script nomodule id="vite-legacy-entry" data-src="./assets/tenant-legacy.4d64a26c.js">System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))</script>
+>>>>>>> iteration-20250724
 </body>
 
 </html>

+ 18 - 4
src/router/routes-student.ts

@@ -170,16 +170,14 @@ export default [
       },
       {
         path: '/discount-card',
-        component: () =>
-          import('@/student/discount-card/index'),
+        component: () => import('@/student/discount-card/index'),
         meta: {
           title: '畅学卡'
         }
       },
       {
         path: '/double12Active',
-        component: () =>
-          import('@/student/activePage/double12Active'),
+        component: () => import('@/student/activePage/double12Active'),
         meta: {
           title: '双十二限时特惠'
         }
@@ -241,6 +239,22 @@ export default [
     }
   },
   {
+    path: '/register',
+    name: 'register',
+    component: () => import('@/student/register/index'),
+    meta: {
+      title: '酷乐秀账号注册'
+    }
+  },
+  {
+    path: '/registerDownload',
+    name: 'registerDownload',
+    component: () => import('@/student/register/download'),
+    meta: {
+      title: '下载酷乐秀APP'
+    }
+  },
+  {
     path: '/transfer',
     component: () => import('@/student/down-load/transfer'),
     meta: {

+ 65 - 0
src/student/register/download.module.less

@@ -0,0 +1,65 @@
+.downloadBox {
+  position: relative;
+  min-height: 100vh;
+  background: url('./images/bg2.png') no-repeat center center;
+  background-size: cover;
+
+  .iconTop {
+    padding: 34px 48px;
+
+    img {
+      width: 100%;
+      height: auto;
+    }
+  }
+}
+
+.bottomBox {
+  position: absolute;
+  bottom: 0;
+  left: 0;
+  width: 100%;
+
+  img {
+    width: 100%;
+  }
+
+  .btnDownload {
+    position: absolute;
+    right: 50%;
+    bottom: 30px;
+    transform: translateX(50%);
+    background-color: #fff;
+    color: #14bc9c;
+    border: none;
+    width: 260px;
+    height: 42px;
+    background: #ffffff;
+    border-radius: 22px;
+    cursor: pointer;
+    font-size: 16px;
+
+    &:hover {
+      background-color: #fff;
+    }
+    &:active {
+      background-color: #fff;
+    }
+  }
+}
+
+
+.wxpopup {
+  width: 100%;
+  height: 100vh;
+  position: fixed;
+  top: 0;
+  left: 0;
+  background: rgba(0, 0, 0, 0.5);
+  z-index: 9999;
+
+  img {
+    width: 88%;
+    margin: 0 6%;
+  }
+}

+ 87 - 0
src/student/register/download.tsx

@@ -0,0 +1,87 @@
+import { defineComponent, reactive } from 'vue'
+import styles from './download.module.less'
+import centerBg from './images/center_bg.png'
+import bottomBg from './images/bottom_bg.png'
+import wxBg from './images/wx_bg.png'
+import { Button } from 'vant'
+import request from '@/helpers/request'
+import { browser } from '@/helpers/utils'
+
+export default defineComponent({
+  name: 'student-register-download',
+  setup() {
+    const urls = reactive({
+      wxStatus: false,
+      androidUrl: ''
+    })
+    const getDownloadUrl = async () => {
+      try {
+        const { data } = await request.get(
+          '/api-student/open/appVersionInfo/queryLatestByPlatform',
+          {
+            params: {
+              platform: 'android-student',
+              status: 'history'
+            }
+          }
+        )
+        urls.androidUrl = data.downloadUrl
+      } catch {
+        //
+      }
+    }
+
+    getDownloadUrl()
+
+    // 下载按钮点击事件
+    const onDownload = () => {
+      if (!browser().weixin) {
+        urls.wxStatus = true
+        return
+      }
+      let urlIos = ''
+      let urlAndroid = ''
+      if (location.origin.indexOf('online.colexiu.com') > -1) {
+        urlIos = 'https://itunes.apple.com/cn/app/id1626971695?mt=8'
+        urlAndroid = urls.androidUrl // 'https://oss.dayaedu.com/appstore/clx-student-domain.apk'
+      } else {
+        urlIos = 'https://www.pgyer.com/powy'
+        urlAndroid = urls.androidUrl // 'https://www.pgyer.com/70e7'
+      }
+
+      if (
+        browser().ios ||
+        /(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)
+      ) {
+        window.location.href = urlIos
+      } else {
+        window.location.href = urlAndroid
+      }
+    }
+    return () => (
+      <div class={styles.downloadBox}>
+        <div class={styles.iconTop}>
+          <img src={centerBg} />
+        </div>
+
+        <div class={styles.bottomBox}>
+          <img class={styles.bottomBg} src={bottomBg} />
+          <Button class={styles.btnDownload} onClick={onDownload}>
+            点击下载
+          </Button>
+        </div>
+
+        {urls.wxStatus && (
+          <div
+            class={styles.wxpopup}
+            onClick={() => {
+              urls.wxStatus = false
+            }}
+          >
+            <img src={wxBg} alt="" />
+          </div>
+        )}
+      </div>
+    )
+  }
+})

binární
src/student/register/images/bg.png


binární
src/student/register/images/bg2.png


binární
src/student/register/images/bottom_bg.png


binární
src/student/register/images/center_bg.png


binární
src/student/register/images/icon-1.png


binární
src/student/register/images/icon-bird.png


binární
src/student/register/images/icon-radio.png


binární
src/student/register/images/icon-range.png


binární
src/student/register/images/icon-tips.png


binární
src/student/register/images/icon-title.png


binární
src/student/register/images/icon-top.png


binární
src/student/register/images/wx_bg.png


+ 145 - 0
src/student/register/index.module.less

@@ -0,0 +1,145 @@
+.registerBox {
+  min-height: 100vh;
+  background: url('./images/bg.png') no-repeat center center;
+  background-size: cover;
+}
+
+.iconTop {
+  display: block;
+  width: calc(100% - 56px);
+  padding: 20px 28px 5px;
+}
+.iconBird {
+  display: block;
+  width: calc(100% - 32px);
+  padding: 0 16px 15px;
+}
+
+.contentBox {
+  background: url('./images/icon-range.png') no-repeat center center;
+  background-size: contain;
+  position: relative;
+  margin: 15px 16px 0;
+  min-height: 359px;
+  overflow: hidden;
+  .title {
+    margin-top: 12px;
+    margin-left: 16px;
+    img {
+      width: 116px;
+      height: 34px;
+    }
+  }
+
+  .codeText {
+    font-size: 14px;
+    color: #14bc9c;
+  }
+
+  :global {
+    .van-cell-group {
+      padding: 19px 18px 0;
+      background-color: transparent;
+    }
+    .van-field {
+      line-height: 20px;
+      background: #f5f6f7;
+      border-radius: 20px;
+      font-size: 14px;
+      color: #131415;
+      padding: 10px 16px;
+      margin-bottom: 16px;
+
+      .van-field__button {
+        border-left: 1px solid #2dc7aa;
+        padding-left: 16px;
+      }
+      .van-count-down {
+        font-size: 14px;
+        color: #9bdfd3;
+      }
+    }
+    .van-field__control::placeholder {
+      color: rgba(0, 0, 0, 0.3);
+    }
+  }
+
+  .phoneField {
+    margin-bottom: 12px;
+  }
+
+  .tips {
+    margin-left: 5px;
+    margin-bottom: 12px;
+    display: flex;
+    align-items: center;
+    font-weight: 400;
+    font-size: 12px;
+    color: #ff5c30;
+    line-height: 16px;
+
+    img {
+      width: 14px;
+      height: 14px;
+      margin-right: 4px;
+    }
+  }
+}
+
+.icon1 {
+  position: absolute;
+  top: -4px;
+  right: 22px;
+  width: 59px;
+  height: 60px;
+}
+
+.protocol {
+  display: flex;
+  align-items: center;
+  font-size: 12px;
+  padding: 0 0 20px;
+  text-align: center;
+  color: #aaa;
+  margin-left: 24px;
+
+  .protocolText {
+    color: var(--van-primary);
+    line-height: 15px;
+  }
+
+  :global {
+    .van-checkbox__icon {
+      font-size: 15px;
+      display: flex !important;
+      align-items: center;
+    }
+    .van-checkbox__label {
+      margin-left: 6px;
+    }
+  }
+
+  .boxStyle {
+    background: transparent !important;
+    width: 15px !important;
+    height: 15px !important;
+    border: transparent !important;
+    display: flex !important;
+    align-items: center !important;
+  }
+}
+
+.btnBox {
+  padding: 0 18px;
+
+  :global {
+    .van-button {
+      background: #2dc7aa;
+      border-radius: 22px;
+      font-weight: 600;
+      font-size: 16px;
+      color: #eef8fe;
+      border: none;
+    }
+  }
+}

+ 231 - 0
src/student/register/index.tsx

@@ -0,0 +1,231 @@
+import { defineComponent, reactive, ref } from 'vue'
+import styles from './index.module.less'
+import iconTop from './images/icon-top.png'
+import iconBird from './images/icon-bird.png'
+import iconTitle from './images/icon-title.png'
+import icon1 from './images/icon-1.png'
+import ImgCode from '@/components/col-img-code'
+import activeButtonIcon from '@common/images/icon_checkbox.png'
+import inactiveButtonIcon from '@common/images/icon_checkbox_default.png'
+import iconTips from './images/icon-tips.png'
+import {
+  Button,
+  CellGroup,
+  Checkbox,
+  CountDown,
+  Field,
+  Icon,
+  Toast
+} from 'vant'
+import { checkPhone } from '@/helpers/utils'
+import { useRoute, useRouter } from 'vue-router'
+import request from '@/helpers/request'
+
+// 用户注册
+export default defineComponent({
+  name: 'student-register',
+  setup() {
+    const router = useRouter()
+    const route = useRoute()
+    const forms = reactive({
+      username: null,
+      phone: null as any,
+      smsCode: null
+    })
+    const checked = ref(false) // 是否同意协议
+
+    const imgCodeStatus = ref(false) // 是否显示图片验证码
+
+    const countDownTime = ref(1000 * 60) // 倒计时时间,单位毫秒
+    const countDownStatus = ref(true)
+
+    const countDownRef = ref<any>(null)
+
+    const onSendCode = async () => {
+      // 发送验证码
+      if (!checkPhone(forms.phone)) {
+        return Toast('请输入正确的手机号码')
+      }
+      imgCodeStatus.value = true
+    }
+    const onCodeSend = () => {
+      countDownStatus.value = false
+      countDownRef.value?.start()
+    }
+    const onFinished = () => {
+      countDownStatus.value = true
+      countDownRef.value?.reset()
+    }
+
+    // 跳转协议
+    const onPreviewProtocol = (type: string) => {
+      if (type === 'user') {
+        router.push({
+          path: '/registerProtocol',
+          query: {
+            showHeader: 1
+          }
+        })
+      } else if (type === 'privacy') {
+        router.push({
+          path: '/privacyProtocol',
+          query: {
+            showHeader: 1
+          }
+        })
+      }
+    }
+
+    // 提交
+    const onSubmit = async () => {
+      try {
+        if (!forms.username) {
+          return Toast('请输入您的姓名')
+        }
+
+        if (!checkPhone(forms.phone)) {
+          return Toast('请输入正确的手机号码')
+        }
+
+        if (!forms.smsCode) {
+          return Toast('请输入验证码')
+        }
+
+        if (!checked.value) {
+          return Toast('请同意用户注册协议和隐私政策')
+        }
+        // 提交注册信息
+        await request.post('/api-auth/smsLogin', {
+          requestType: 'form',
+          data: {
+            clientId: 'student',
+            clientSecret: 'student',
+            phone: forms.phone,
+            smsCode: forms.smsCode,
+            username: forms.username,
+            inviteUserId: route.query.inviteUserId || null
+          }
+        })
+
+        // 登录成功后,跳转到注册页
+        router.push('/registerDownload')
+      } catch {
+        //
+      }
+    }
+    return () => (
+      <div class={styles.registerBox}>
+        <img class={styles.iconTop} src={iconTop} />
+        <img class={styles.iconBird} src={iconBird} />
+
+        <div class={styles.contentBox}>
+          <img class={styles.icon1} src={icon1} />
+          <div class={styles.title}>
+            <img src={iconTitle} />
+          </div>
+
+          <CellGroup border={false}>
+            <Field
+              border={false}
+              v-model={forms.username}
+              name="姓名"
+              placeholder="请输入您的姓名"
+              type="tel"
+              maxlength={11}
+            />
+            <Field
+              border={false}
+              v-model={forms.phone}
+              type="tel"
+              maxlength={11}
+              name="手机号码"
+              placeholder="请输入手机号码"
+              class={styles.phoneField}
+            />
+
+            <div class={styles.tips}>
+              <img src={iconTips} />
+              <span>该手机号码即为酷乐秀APP登录账号</span>
+            </div>
+
+            <Field
+              border={false}
+              v-model={forms.smsCode}
+              name="验证码"
+              placeholder="请输入验证码"
+              type="tel"
+              maxlength={6}
+              // @ts-ignore
+              vSlots={{
+                button: () =>
+                  countDownStatus.value ? (
+                    <span class={styles.codeText} onClick={onSendCode}>
+                      获取验证码
+                    </span>
+                  ) : (
+                    <CountDown
+                      ref={countDownRef.value}
+                      auto-start={false}
+                      time={countDownTime.value}
+                      onFinish={onFinished}
+                      format="sss后重试"
+                    />
+                  )
+              }}
+            />
+          </CellGroup>
+          <div class={styles.protocol}>
+            <Checkbox
+              v-model={checked.value}
+              v-slots={{
+                icon: (props: any) => (
+                  <Icon
+                    class={styles.boxStyle}
+                    name={props.checked ? activeButtonIcon : inactiveButtonIcon}
+                    size="15"
+                  />
+                )
+              }}
+            >
+              我已阅读并同意
+            </Checkbox>
+            <span
+              class={styles.protocolText}
+              onClick={() => {
+                onPreviewProtocol('user')
+              }}
+            >
+              《用户注册协议》
+            </span>
+            和
+            <span
+              class={styles.protocolText}
+              onClick={() => {
+                onPreviewProtocol('privacy')
+              }}
+            >
+              《隐私政策》
+            </span>
+          </div>
+          <div class={styles.btnBox}>
+            <Button round block type="primary" onClick={onSubmit}>
+              立即登录
+            </Button>
+          </div>
+        </div>
+
+        {imgCodeStatus.value ? (
+          <ImgCode
+            v-model:value={imgCodeStatus.value}
+            phone={forms.phone}
+            registerType="REGISTER"
+            onClose={() => {
+              imgCodeStatus.value = false
+            }}
+            onSendCode={onCodeSend}
+          />
+        ) : null}
+      </div>
+    )
+  }
+})

+ 1 - 1
vite.config.ts

@@ -12,7 +12,7 @@ function resolve(dir: string) {
 // https://vitejs.dev/config/
 // https://github.com/vitejs/vite/issues/1930 .env
 // const proxyUrl = 'https://online.colexiu.com/'
-const proxyUrl = 'https://dev.colexiu.com/'
+const proxyUrl = 'https://test.colexiu.com/'
 // const proxyUrl = 'http://192.168.3.14:8000/'
 export default defineConfig({
   base: './',

Některé soubory nejsou zobrazeny, neboť je v těchto rozdílových datech změněno mnoho souborů