lex 1 năm trước cách đây
mục cha
commit
e10dee0efc
34 tập tin đã thay đổi với 244 bổ sung59 xóa
  1. 5 0
      dist/assets/index-005d3a2c.js
  2. 5 0
      dist/assets/index-0ab0dd73.js
  3. 0 0
      dist/assets/index-210b49cb.js
  4. 1 0
      dist/assets/index-4f11acc3.js
  5. 0 0
      dist/assets/index-a68f9cb3.css
  6. 1 0
      dist/assets/index-ad5fc5a6.js
  7. 1 0
      dist/assets/index-aecef414.js
  8. 0 0
      dist/assets/index-b57017fe.js
  9. 1 0
      dist/assets/index-b87c41a4.js
  10. 1 0
      dist/assets/index-b991e85b.js
  11. 5 0
      dist/assets/index-e1728b59.js
  12. 5 0
      dist/assets/index-f3a113f2.js
  13. 1 0
      dist/assets/index-ff518ca7.js
  14. 1 0
      dist/assets/index-legacy-064a579a.js
  15. 1 0
      dist/assets/index-legacy-095b76fb.js
  16. 1 0
      dist/assets/index-legacy-1e53b0c4.js
  17. 1 0
      dist/assets/index-legacy-2163d0a1.js
  18. 1 0
      dist/assets/index-legacy-3981ea28.js
  19. 0 0
      dist/assets/index-legacy-4872c42d.js
  20. 0 0
      dist/assets/index-legacy-71e078fb.js
  21. 1 0
      dist/assets/index-legacy-b8df66b0.js
  22. 1 0
      dist/assets/index-legacy-c5633437.js
  23. 1 0
      dist/assets/index-legacy-e0834dfa.js
  24. 0 0
      dist/assets/plyr-legacy-55e4c40a.js
  25. 20 0
      dist/index.html
  26. BIN
      src/views/knowledge-library/images/library-1.png
  27. BIN
      src/views/knowledge-library/images/library-2.png
  28. BIN
      src/views/knowledge-library/images/library-3.png
  29. 36 3
      src/views/knowledge-library/index.module.less
  30. 91 50
      src/views/knowledge-library/index.tsx
  31. 45 3
      src/views/knowledge-library/unit-detail.tsx
  32. 17 1
      src/views/student-register/index.tsx
  33. 0 1
      src/views/student-register/register-modal/index.tsx
  34. 1 1
      src/views/student-register/shop-mall/modal/add-goods-cart/index.tsx

+ 5 - 0
dist/assets/index-005d3a2c.js

@@ -0,0 +1,5 @@
+<<<<<<<< HEAD:dist/assets/index-0ab0dd73.js
+import{c as d,d as r,a5 as m,w as p,a2 as V,a as s,n as g,a3 as h,k as u,a8 as f,ac as k,h as v}from"./index-c21a042c.js";import{c as P,s as b}from"./Checker-ee0472d1.js";const[c,C]=d("radio-group"),_={disabled:Boolean,iconSize:g,direction:String,modelValue:h,checkedColor:String},i=Symbol(c);var w=r({name:c,props:_,emits:["change","update:modelValue"],setup(e,{emit:n,slots:t}){const{linkChildren:o}=m(i),l=a=>n("update:modelValue",a);return p(()=>e.modelValue,a=>n("change",a)),o({props:e,updateValue:l}),V(()=>e.modelValue),()=>{var a;return s("div",{class:C([e.direction]),role:"radiogroup"},[(a=t.default)==null?void 0:a.call(t)])}}});const x=u(w),[R,S]=d("radio");var $=r({name:R,props:P,emits:["update:modelValue"],setup(e,{emit:n,slots:t}){const{parent:o}=f(i),l=()=>(o?o.props.modelValue:e.modelValue)===e.name,a=()=>{o?o.updateValue(e.name):n("update:modelValue",e.name)};return()=>s(b,v({bem:S,role:"radio",parent:o,checked:l(),onToggle:a},e),k(t,["default","icon"]))}});const y=u($);export{x as R,y as a};
+========
+import{c as d,d as r,a4 as m,w as p,a2 as V,a as s,n as g,a3 as h,k as u,a7 as f,ab as k,h as v}from"./index-9ef2d9ca.js";import{c as b,s as P}from"./Checker-be945f54.js";const[c,C]=d("radio-group"),_={disabled:Boolean,iconSize:g,direction:String,modelValue:h,checkedColor:String},i=Symbol(c);var w=r({name:c,props:_,emits:["change","update:modelValue"],setup(e,{emit:n,slots:t}){const{linkChildren:o}=m(i),l=a=>n("update:modelValue",a);return p(()=>e.modelValue,a=>n("change",a)),o({props:e,updateValue:l}),V(()=>e.modelValue),()=>{var a;return s("div",{class:C([e.direction]),role:"radiogroup"},[(a=t.default)==null?void 0:a.call(t)])}}});const x=u(w),[R,S]=d("radio");var $=r({name:R,props:b,emits:["update:modelValue"],setup(e,{emit:n,slots:t}){const{parent:o}=f(i),l=()=>(o?o.props.modelValue:e.modelValue)===e.name,a=()=>{o?o.updateValue(e.name):n("update:modelValue",e.name)};return()=>s(P,v({bem:S,role:"radio",parent:o,checked:l(),onToggle:a},e),k(t,["default","icon"]))}});const y=u($);export{x as R,y as a};
+>>>>>>>> master:dist/assets/index-005d3a2c.js

+ 5 - 0
dist/assets/index-0ab0dd73.js

@@ -0,0 +1,5 @@
+<<<<<<<< HEAD:dist/assets/index-0ab0dd73.js
+import{c as d,d as r,a5 as m,w as p,a2 as V,a as s,n as g,a3 as h,k as u,a8 as f,ac as k,h as v}from"./index-c21a042c.js";import{c as P,s as b}from"./Checker-ee0472d1.js";const[c,C]=d("radio-group"),_={disabled:Boolean,iconSize:g,direction:String,modelValue:h,checkedColor:String},i=Symbol(c);var w=r({name:c,props:_,emits:["change","update:modelValue"],setup(e,{emit:n,slots:t}){const{linkChildren:o}=m(i),l=a=>n("update:modelValue",a);return p(()=>e.modelValue,a=>n("change",a)),o({props:e,updateValue:l}),V(()=>e.modelValue),()=>{var a;return s("div",{class:C([e.direction]),role:"radiogroup"},[(a=t.default)==null?void 0:a.call(t)])}}});const x=u(w),[R,S]=d("radio");var $=r({name:R,props:P,emits:["update:modelValue"],setup(e,{emit:n,slots:t}){const{parent:o}=f(i),l=()=>(o?o.props.modelValue:e.modelValue)===e.name,a=()=>{o?o.updateValue(e.name):n("update:modelValue",e.name)};return()=>s(b,v({bem:S,role:"radio",parent:o,checked:l(),onToggle:a},e),k(t,["default","icon"]))}});const y=u($);export{x as R,y as a};
+========
+import{c as d,d as r,a4 as m,w as p,a2 as V,a as s,n as g,a3 as h,k as u,a7 as f,ab as k,h as v}from"./index-9ef2d9ca.js";import{c as b,s as P}from"./Checker-be945f54.js";const[c,C]=d("radio-group"),_={disabled:Boolean,iconSize:g,direction:String,modelValue:h,checkedColor:String},i=Symbol(c);var w=r({name:c,props:_,emits:["change","update:modelValue"],setup(e,{emit:n,slots:t}){const{linkChildren:o}=m(i),l=a=>n("update:modelValue",a);return p(()=>e.modelValue,a=>n("change",a)),o({props:e,updateValue:l}),V(()=>e.modelValue),()=>{var a;return s("div",{class:C([e.direction]),role:"radiogroup"},[(a=t.default)==null?void 0:a.call(t)])}}});const x=u(w),[R,S]=d("radio");var $=r({name:R,props:b,emits:["update:modelValue"],setup(e,{emit:n,slots:t}){const{parent:o}=f(i),l=()=>(o?o.props.modelValue:e.modelValue)===e.name,a=()=>{o?o.updateValue(e.name):n("update:modelValue",e.name)};return()=>s(P,v({bem:S,role:"radio",parent:o,checked:l(),onToggle:a},e),k(t,["default","icon"]))}});const y=u($);export{x as R,y as a};
+>>>>>>>> master:dist/assets/index-005d3a2c.js

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
dist/assets/index-210b49cb.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1 - 0
dist/assets/index-4f11acc3.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
dist/assets/index-a68f9cb3.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1 - 0
dist/assets/index-ad5fc5a6.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1 - 0
dist/assets/index-aecef414.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
dist/assets/index-b57017fe.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1 - 0
dist/assets/index-b87c41a4.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1 - 0
dist/assets/index-b991e85b.js


+ 5 - 0
dist/assets/index-e1728b59.js

@@ -0,0 +1,5 @@
+<<<<<<<< HEAD:dist/assets/index-e1728b59.js
+import{d as i,q as l,U as u,x as y,y as x,a as n,I as _,R as c,br as f,bs as I}from"./index-c21a042c.js";const q="_payCenter_19c4e_1",a={payCenter:q,"error-icon":"_error-icon_19c4e_5","error-text":"_error-text_19c4e_12"},b=i({name:"pay-center",setup(){const p=l(),r=u(),e=y({errorText:"",code:null,pay_channel:r.query.pay_channel,wxAppId:r.query.wxAppId,body:r.query.body,price:r.query.price,orderNo:r.query.orderNo,userId:r.query.userId}),d=()=>{const o=e.pay_channel;if(c().weixin)if(o==="wx_pub"){const t=f();console.log(t),t?(e.code=t,s()):I(e.wxAppId),document.title="微信支付"}else o=="alipay_qr"&&(e.errorText="请使用支付宝扫码");else c().alipay?o==="wx_pub"?e.errorText="请使用微信扫码":o=="alipay_qr"&&(document.title="支付宝支付",s()):e.errorText="请在微信或支付宝客户端打开";e.errorText&&(document.title="ERROR")},s=()=>{p.replace({path:"/payDefine",query:{pay_channel:e.pay_channel,wxAppId:e.wxAppId,body:e.body,price:e.price,code:e.code,orderNo:e.orderNo,userId:e.userId}})};return x(()=>{d()}),()=>n("div",{class:a.payCenter},[n("div",{class:a["error-text"]},[e.errorText&&n(_,{class:a["error-icon"],name:"warning-o"},null),e.errorText])])}});export{b as default};
+========
+import{d as i,q as l,U as u,x as y,y as x,a as n,I as _,R as s,bq as f,br as q}from"./index-9ef2d9ca.js";const I="_payCenter_19c4e_1",a={payCenter:I,"error-icon":"_error-icon_19c4e_5","error-text":"_error-text_19c4e_12"},b=i({name:"pay-center",setup(){const p=l(),r=u(),e=y({errorText:"",code:null,pay_channel:r.query.pay_channel,wxAppId:r.query.wxAppId,body:r.query.body,price:r.query.price,orderNo:r.query.orderNo,userId:r.query.userId}),d=()=>{const o=e.pay_channel;if(s().weixin)if(o==="wx_pub"){const t=f();console.log(t),t?(e.code=t,c()):q(e.wxAppId),document.title="微信支付"}else o=="alipay_qr"&&(e.errorText="请使用支付宝扫码");else s().alipay?o==="wx_pub"?e.errorText="请使用微信扫码":o=="alipay_qr"&&(document.title="支付宝支付",c()):e.errorText="请在微信或支付宝客户端打开";e.errorText&&(document.title="ERROR")},c=()=>{p.replace({path:"/payDefine",query:{pay_channel:e.pay_channel,wxAppId:e.wxAppId,body:e.body,price:e.price,code:e.code,orderNo:e.orderNo,userId:e.userId}})};return x(()=>{d()}),()=>n("div",{class:a.payCenter},[n("div",{class:a["error-text"]},[e.errorText&&n(_,{class:a["error-icon"],name:"warning-o"},null),e.errorText])])}});export{b as default};
+>>>>>>>> master:dist/assets/index-f3a113f2.js

+ 5 - 0
dist/assets/index-f3a113f2.js

@@ -0,0 +1,5 @@
+<<<<<<<< HEAD:dist/assets/index-e1728b59.js
+import{d as i,q as l,U as u,x as y,y as x,a as n,I as _,R as c,br as f,bs as I}from"./index-c21a042c.js";const q="_payCenter_19c4e_1",a={payCenter:q,"error-icon":"_error-icon_19c4e_5","error-text":"_error-text_19c4e_12"},b=i({name:"pay-center",setup(){const p=l(),r=u(),e=y({errorText:"",code:null,pay_channel:r.query.pay_channel,wxAppId:r.query.wxAppId,body:r.query.body,price:r.query.price,orderNo:r.query.orderNo,userId:r.query.userId}),d=()=>{const o=e.pay_channel;if(c().weixin)if(o==="wx_pub"){const t=f();console.log(t),t?(e.code=t,s()):I(e.wxAppId),document.title="微信支付"}else o=="alipay_qr"&&(e.errorText="请使用支付宝扫码");else c().alipay?o==="wx_pub"?e.errorText="请使用微信扫码":o=="alipay_qr"&&(document.title="支付宝支付",s()):e.errorText="请在微信或支付宝客户端打开";e.errorText&&(document.title="ERROR")},s=()=>{p.replace({path:"/payDefine",query:{pay_channel:e.pay_channel,wxAppId:e.wxAppId,body:e.body,price:e.price,code:e.code,orderNo:e.orderNo,userId:e.userId}})};return x(()=>{d()}),()=>n("div",{class:a.payCenter},[n("div",{class:a["error-text"]},[e.errorText&&n(_,{class:a["error-icon"],name:"warning-o"},null),e.errorText])])}});export{b as default};
+========
+import{d as i,q as l,U as u,x as y,y as x,a as n,I as _,R as s,bq as f,br as q}from"./index-9ef2d9ca.js";const I="_payCenter_19c4e_1",a={payCenter:I,"error-icon":"_error-icon_19c4e_5","error-text":"_error-text_19c4e_12"},b=i({name:"pay-center",setup(){const p=l(),r=u(),e=y({errorText:"",code:null,pay_channel:r.query.pay_channel,wxAppId:r.query.wxAppId,body:r.query.body,price:r.query.price,orderNo:r.query.orderNo,userId:r.query.userId}),d=()=>{const o=e.pay_channel;if(s().weixin)if(o==="wx_pub"){const t=f();console.log(t),t?(e.code=t,c()):q(e.wxAppId),document.title="微信支付"}else o=="alipay_qr"&&(e.errorText="请使用支付宝扫码");else s().alipay?o==="wx_pub"?e.errorText="请使用微信扫码":o=="alipay_qr"&&(document.title="支付宝支付",c()):e.errorText="请在微信或支付宝客户端打开";e.errorText&&(document.title="ERROR")},c=()=>{p.replace({path:"/payDefine",query:{pay_channel:e.pay_channel,wxAppId:e.wxAppId,body:e.body,price:e.price,code:e.code,orderNo:e.orderNo,userId:e.userId}})};return x(()=>{d()}),()=>n("div",{class:a.payCenter},[n("div",{class:a["error-text"]},[e.errorText&&n(_,{class:a["error-icon"],name:"warning-o"},null),e.errorText])])}});export{b as default};
+>>>>>>>> master:dist/assets/index-f3a113f2.js

+ 1 - 0
dist/assets/index-ff518ca7.js

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

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1 - 0
dist/assets/index-legacy-064a579a.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1 - 0
dist/assets/index-legacy-095b76fb.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1 - 0
dist/assets/index-legacy-1e53b0c4.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1 - 0
dist/assets/index-legacy-2163d0a1.js


+ 1 - 0
dist/assets/index-legacy-3981ea28.js

@@ -0,0 +1 @@
+System.register(["./index-legacy-1b5de80c.js"],(function(e,r){"use strict";var t,n,o,c,a,i,d,p,u,l;return{setters:[function(e){t=e.d,n=e.q,o=e.U,c=e.x,a=e.y,i=e.a,d=e.I,p=e.R,u=e.br,l=e.bs}],execute:function(){var r=document.createElement("style");r.textContent="._payCenter_19c4e_1{min-height:100vh;overflow:hidden}._error-icon_19c4e_5{display:block;color:#ffb07b;font-size:.8rem;margin-bottom:.8rem;font-weight:700}._error-text_19c4e_12{font-size:.4rem;width:100%;text-align:center;color:#3f3f3f;margin-top:2.66667rem}\n",document.head.appendChild(r);var y="_payCenter_19c4e_1",_="_error-icon_19c4e_5",s="_error-text_19c4e_12";e("default",t({name:"pay-center",setup:function(){var e=n(),r=o(),t=c({errorText:"",code:null,pay_channel:r.query.pay_channel,wxAppId:r.query.wxAppId,body:r.query.body,price:r.query.price,orderNo:r.query.orderNo,userId:r.query.userId}),x=function(){e.replace({path:"/payDefine",query:{pay_channel:t.pay_channel,wxAppId:t.wxAppId,body:t.body,price:t.price,code:t.code,orderNo:t.orderNo,userId:t.userId}})};return a((function(){!function(){var e=t.pay_channel;if(p().weixin)if("wx_pub"===e){var r=u();console.log(r),r?(t.code=r,x()):l(t.wxAppId),document.title="微信支付"}else"alipay_qr"==e&&(t.errorText="请使用支付宝扫码");else p().alipay?"wx_pub"===e?t.errorText="请使用微信扫码":"alipay_qr"==e&&(document.title="支付宝支付",x()):t.errorText="请在微信或支付宝客户端打开";t.errorText&&(document.title="ERROR")}()})),function(){return i("div",{class:y},[i("div",{class:s},[t.errorText&&i(d,{class:_,name:"warning-o"},null),t.errorText])])}}}))}}}));

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
dist/assets/index-legacy-4872c42d.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
dist/assets/index-legacy-71e078fb.js


+ 1 - 0
dist/assets/index-legacy-b8df66b0.js

@@ -0,0 +1 @@
+System.register(["./index-legacy-1b5de80c.js"],(function(t,e){"use strict";var o,i,n,s,f,d,r;return{setters:[function(t){o=t.d,i=t.x,n=t.r,s=t.y,f=t.Z,d=t.w,r=t.a}],execute:function(){var e=document.createElement("style");e.textContent="._sticky_4d2w6_1{position:sticky;top:0;z-index:99}._white_4d2w6_6{background-color:#fff}._white_4d2w6_6>div{padding-top:.4rem;box-shadow:0 0 .26667rem rgba(216,216,216,.5)}\n",document.head.appendChild(e);var c="_sticky_4d2w6_1";t("M",o({name:"m-sticky",props:{position:{type:String,default:"top"},mode:{type:String,default:"fixed"},offsetTop:{type:String,default:"0px"},offsetBottom:{default:"0px"},varName:{type:String,default:"--header-height"}},emits:["barHeight"],setup:function(t,e){var o=e.slots,a=e.emit,u=i({divStyle:{},heightV:0,sectionStyle:{width:"100%",height:"auto",left:"0"}}),l=n(),p=n();return s((function(){"top"===t.position?u.divStyle.top=t.offsetTop||"0px":u.divStyle.bottom=t.offsetBottom||"0px",new ResizeObserver((function(){!function(e){u.sectionStyle.height="".concat(e,"px"),u.heightV=e,document.documentElement.style.setProperty(t.varName,"".concat(e,"px")),a("barHeight",e)}(f(p.value).height)})).observe(l.value)})),d((function(){return t.offsetTop}),(function(){u.divStyle.top=t.offsetTop})),d((function(){return t.offsetBottom}),(function(){u.divStyle.bottom=t.offsetBottom})),function(){return r("div",{style:[u.sectionStyle],class:"sticky"===t.mode&&c},[r("div",{ref:l,class:["van-sticky","fixed"===t.mode?"van-sticky--fixed":""],style:[u.divStyle,u.sectionStyle]},[r("div",{ref:p},[o.default&&o.default()])])])}}}))}}}));

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1 - 0
dist/assets/index-legacy-c5633437.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1 - 0
dist/assets/index-legacy-e0834dfa.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
dist/assets/plyr-legacy-55e4c40a.js


+ 20 - 0
dist/index.html

@@ -37,8 +37,18 @@
   <meta name="referrer" content="no-referrer" />
   <title>学生端</title>
   <script src="./flexible.js" charset="UTF-8"></script>
+<<<<<<< HEAD
   <script type="module" crossorigin src="./assets/index-4e1584f0.js"></script>
   <link rel="stylesheet" href="./assets/index-909fc1b9.css">
+=======
+<<<<<<< HEAD
+  <script type="module" crossorigin src="./assets/index-c21a042c.js"></script>
+  <link rel="stylesheet" href="./assets/index-466c9a64.css">
+=======
+  <script type="module" crossorigin src="./assets/index-9ef2d9ca.js"></script>
+  <link rel="stylesheet" href="./assets/index-909fc1b9.css">
+>>>>>>> master
+>>>>>>> iteration-create
   <script type="module">import.meta.url;import("_").catch(()=>1);async function* g(){};if(location.protocol!="file:"){window.__vite_is_modern_browser=true}</script>
   <script type="module">!function(){if(window.__vite_is_modern_browser)return;console.warn("vite: loading legacy chunks, syntax error above and the same error below 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>
 </head>
@@ -58,8 +68,18 @@
       //   }
   </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 crossorigin id="vite-legacy-polyfill" src="./assets/polyfills-legacy-bd1acabc.js"></script>
   <script nomodule crossorigin id="vite-legacy-entry" data-src="./assets/index-legacy-2d9da299.js">System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))</script>
+=======
+<<<<<<< HEAD
+  <script nomodule crossorigin id="vite-legacy-polyfill" src="./assets/polyfills-legacy-139bd16a.js"></script>
+  <script nomodule crossorigin id="vite-legacy-entry" data-src="./assets/index-legacy-1b5de80c.js">System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))</script>
+=======
+  <script nomodule crossorigin id="vite-legacy-polyfill" src="./assets/polyfills-legacy-c561b68a.js"></script>
+  <script nomodule crossorigin id="vite-legacy-entry" data-src="./assets/index-legacy-caa3359b.js">System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))</script>
+>>>>>>> master
+>>>>>>> iteration-create
 </body>
 
 </html>

BIN
src/views/knowledge-library/images/library-1.png


BIN
src/views/knowledge-library/images/library-2.png


BIN
src/views/knowledge-library/images/library-3.png


+ 36 - 3
src/views/knowledge-library/index.module.less

@@ -100,15 +100,48 @@
         margin-right: 6px;
         background: linear-gradient(to bottom, #259CFE, #3FC2FF);
       }
+
+      span {
+        max-width: 200px;
+        white-space: nowrap;
+        overflow: hidden;
+        text-overflow: ellipsis;
+      }
     }
   }
 
-  .unitImg {
-    width: 100%;
+  .unitItem {
+    position: relative;
     max-height: 154px;
 
-    &+.unitImg {
+    &+.unitItem {
       margin-top: 12px;
     }
+
+    .name {
+      position: absolute;
+      top: 0;
+      left: 0;
+      width: 100%;
+      height: 100%;
+      z-index: 2;
+      font-size: 16px;
+      font-weight: bold;
+      color: #781714;
+      line-height: 19px;
+      display: flex;
+      align-items: center;
+      justify-content: center;
+
+      span {
+        max-width: 70%;
+        text-align: center;
+      }
+    }
+  }
+
+  .unitImg {
+    width: 100%;
+    max-height: 154px;
   }
 }

+ 91 - 50
src/views/knowledge-library/index.tsx

@@ -1,33 +1,83 @@
-import OEmpty from '@/components/m-empty';
 import MHeader from '@/components/m-header';
 import MSticky from '@/components/m-sticky';
-import { defineComponent, reactive } from 'vue';
+import { defineComponent, onMounted, reactive } from 'vue';
 import styles from './index.module.less';
-import { useRouter } from 'vue-router';
+import { useRoute, useRouter } from 'vue-router';
 import { Button, Collapse, CollapseItem, Image } from 'vant';
+import request from '@/helpers/request';
+import library1 from './images/library-1.png';
+import library2 from './images/library-2.png';
+import library3 from './images/library-3.png';
+import { useEventListener, useWindowScroll } from '@vueuse/core';
 
 export default defineComponent({
   name: 'knowledge-ligrary',
   setup() {
     const router = useRouter();
+    const route = useRoute();
 
     const forms = reactive({
+      cid: route.query.cid,
       list: [] as any,
-      activeNames: 1
+      activeNames: null,
+      background: 'transparent',
+      color: '#fff'
     });
 
-    const getList = () => {
-      // console.log('1');
+    const getList = async () => {
+      try {
+        const { data } = await request.post(
+          '/edu-app/lessonCourseware/queryStudentLessonDetail',
+          {
+            requestType: 'form',
+            data: {
+              lessonCoursewareId: forms.cid
+            }
+          }
+        );
+        forms.list = data;
+        if (data && data.length > 0) {
+          forms.activeNames = data[0].lessonCoursewareDetailId;
+        }
+      } catch {
+        //
+      }
     };
 
+    const getBg = (index: number) => {
+      if (index % 3 === 1) {
+        return library1;
+      } else if (index % 3 === 2) {
+        return library2;
+      } else if (index % 3 === 0) {
+        return library3;
+      }
+    };
+
+    onMounted(() => {
+      useEventListener(document, 'scroll', () => {
+        const { y } = useWindowScroll();
+        if (y.value > 52) {
+          forms.background = '#fff';
+          forms.color = '#323333';
+        } else {
+          forms.background = 'transparent';
+          forms.color = '#fff';
+        }
+      });
+      getList();
+    });
     return () => (
       <div class={styles.knowledgeLibrary}>
         <MSticky position="top">
-          <MHeader border={false} background="transparent">
+          <MHeader
+            border={false}
+            background={forms.background}
+            color={forms.color}>
             {{
               right: () => (
                 <div
-                  class={styles.wroingBtn}
+                  class={[styles.wroingBtn]}
                   onClick={() => router.push('/wroing-book')}>
                   <i class={styles.iconWroing}></i>错题本
                 </div>
@@ -37,53 +87,44 @@ export default defineComponent({
         </MSticky>
 
         <div class={styles.btnGroup}>
-          <Button class={styles.btnPractice}></Button>
-          <Button class={styles.btnTest}></Button>
+          <Button class={styles.btnPractice} round></Button>
+          <Button class={styles.btnTest} round></Button>
         </div>
 
         <div class={[styles.containerSection, styles.librarySection]}>
-          <Collapse v-model={forms.activeNames} accordion>
-            <CollapseItem
-              title={'第一单元'}
-              name={1}
-              value={forms.activeNames === 1 ? '收起' : '展开'}
-              border={false}>
-              <Image
-                class={styles.unitImg}
-                onClick={() => router.push('/unit-detail')}
-                lazyLoad
-                src={
-                  'https://lanhu-dds-backend.oss-cn-beijing.aliyuncs.com/merge_image/imgs/a0c89db386a44702acf8ae61fe74c201_mergeImage.png'
-                }
-              />
-
-              <Image
-                class={styles.unitImg}
-                onClick={() => router.push('/unit-detail')}
-                lazyLoad
-                src={
-                  'https://lanhu-dds-backend.oss-cn-beijing.aliyuncs.com/merge_image/imgs/a0c89db386a44702acf8ae61fe74c201_mergeImage.png'
-                }
-              />
-            </CollapseItem>
-
-            <CollapseItem
-              title={'第二单元'}
-              name={2}
-              value={forms.activeNames === 2 ? '收起' : '展开'}
-              border={false}>
-              <Image
-                class={styles.unitImg}
-                onClick={() => router.push('/unit-detail')}
-                lazyLoad
-                src={
-                  'https://lanhu-dds-backend.oss-cn-beijing.aliyuncs.com/merge_image/imgs/a0c89db386a44702acf8ae61fe74c201_mergeImage.png'
-                }
-              />
-            </CollapseItem>
+          <Collapse v-model={forms.activeNames} accordion border={false}>
+            {forms.list.map((item: any) => (
+              <CollapseItem
+                title={item.lessonCoursewareDetailName}
+                name={item.lessonCoursewareDetailId}
+                value={forms.activeNames === 1 ? '收起' : '展开'}
+                border={false}>
+                {item.knowledgeDetails &&
+                  item.knowledgeDetails.map((detail: any, index: number) => (
+                    <div
+                      class={styles.unitItem}
+                      onClick={() =>
+                        router.push({
+                          path: '/unit-detail',
+                          query: {
+                            detailId: detail.lessonCoursewareDetailId
+                          }
+                        })
+                      }>
+                      <Image
+                        class={styles.unitImg}
+                        lazyLoad
+                        src={getBg(index)}
+                      />
+                      <p class={styles.name}>
+                        <span>{detail.name}</span>
+                      </p>
+                    </div>
+                  ))}
+              </CollapseItem>
+            ))}
           </Collapse>
         </div>
-        {/* <OEmpty description="暂无阶段自测" /> */}
       </div>
     );
   }

+ 45 - 3
src/views/knowledge-library/unit-detail.tsx

@@ -1,18 +1,60 @@
 import MHeader from '@/components/m-header';
 import MSticky from '@/components/m-sticky';
-import { defineComponent } from 'vue';
+import { defineComponent, onMounted, reactive } from 'vue';
 import styles from './index.module.less';
-import { useRouter } from 'vue-router';
+import { useRoute, useRouter } from 'vue-router';
 import { Image } from 'vant';
+import request from '@/helpers/request';
+import { useEventListener, useWindowScroll } from '@vueuse/core';
 
 export default defineComponent({
   name: 'wroing-book',
   setup() {
     const router = useRouter();
+    const route = useRoute();
+
+    const forms = reactive({
+      detailId: route.query.detailId,
+      background: 'transparent',
+      color: '#fff'
+    });
+
+    const getList = async () => {
+      try {
+        const { data } = await request.post(
+          '/edu-app/lessonCourseware/queryStudentLessonDetail',
+          {
+            requestType: 'form',
+            data: {
+              lessonCoursewareId: forms.detailId
+            }
+          }
+        );
+      } catch {
+        //
+      }
+    };
+
+    onMounted(() => {
+      useEventListener(document, 'scroll', () => {
+        const { y } = useWindowScroll();
+        if (y.value > 52) {
+          forms.background = '#fff';
+          forms.color = '#323333';
+        } else {
+          forms.background = 'transparent';
+          forms.color = '#fff';
+        }
+      });
+      getList();
+    });
     return () => (
       <div class={styles.knowledgeLibrary}>
         <MSticky position="top">
-          <MHeader border={false} background="transparent">
+          <MHeader
+            border={false}
+            background={forms.background}
+            color={forms.color}>
             {{
               right: () => (
                 <div

+ 17 - 1
src/views/student-register/index.tsx

@@ -22,6 +22,8 @@ import { useStudentRegisterStore } from '@/store/modules/student-register-store'
 import request from '@/helpers/request';
 import { moneyFormat } from '@/helpers/utils';
 import deepClone from '@/helpers/deep-clone';
+import { storage } from '@/helpers/storage';
+import { ACCESS_TOKEN } from '@/store/mutation-types';
 import OWxTip from '@/components/m-wx-tip';
 
 export default defineComponent({
@@ -100,7 +102,6 @@ export default defineComponent({
     // 删除商品
     const onGoodsRemove = (item: any) => {
       showConfirmDialog({
-        // title: '标题',
         message: '是否删除该商品',
         confirmButtonColor: '#FF8633'
       }).then(() => {
@@ -113,6 +114,21 @@ export default defineComponent({
     const onRegisterSubmit = async () => {
       try {
         forms.submitLoading = true;
+
+        // 检测token是否失效
+        const Authorization = storage.get(ACCESS_TOKEN) || '';
+        const authInfo = await request.post('/edu-app/open/user/verification', {
+          noAuthorization: true,
+          data: { token: Authorization }
+        });
+        // 判断当前token是否失效
+        if (!authInfo.data) {
+          storage.remove(ACCESS_TOKEN);
+          studentRegisterStore.deleteToken();
+          forms.popupRegister = true;
+          return;
+        }
+
         // 请求是否有待支付订单,如果有则自动关闭
         await paymentOrderUnpaid();
         const schoolInfo = await request.get(

+ 0 - 1
src/views/student-register/register-modal/index.tsx

@@ -58,7 +58,6 @@ export default defineComponent({
       } else {
         tempList.push([...five, ...one, ...three]);
       }
-      console.log(tempList, props.schoolType, props.gradeYear);
       return tempList;
     });
     const forms = reactive({

+ 1 - 1
src/views/student-register/shop-mall/modal/add-goods-cart/index.tsx

@@ -137,7 +137,7 @@ export default defineComponent({
         let isExist = false; // 是否存在 是否是同一个商品,同一个sku
         studentRegisterStore.getGoods.forEach((goods: any) => {
           if (
-            goods.id === body.productId &&
+            goods.productId === body.productId &&
             goods.productSkuId === body.productSkuId
           ) {
             isExist = true;

Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác