lex 1 năm trước cách đây
mục cha
commit
b2d7dc89c3
33 tập tin đã thay đổi với 386 bổ sung83 xóa
  1. BIN
      dist/assets/icon-load-15c8bd42.gif
  2. 0 0
      dist/assets/index-0516d314.js
  3. 0 0
      dist/assets/index-0c71ccbf.js
  4. 1 1
      dist/assets/index-31bde35d.js
  5. 0 0
      dist/assets/index-3c2ef0c3.js
  6. 0 0
      dist/assets/index-669118d2.js
  7. 0 0
      dist/assets/index-7bdeb505.js
  8. 0 0
      dist/assets/index-9ccfaa3c.css
  9. 1 1
      dist/assets/index-a2855a62.js
  10. 1 1
      dist/assets/index-d358c5eb.js
  11. 0 0
      dist/assets/index-e9763339.js
  12. 0 0
      dist/assets/index-legacy-11689d0c.js
  13. 0 0
      dist/assets/index-legacy-406504c4.js
  14. 0 0
      dist/assets/index-legacy-44a67e0b.js
  15. 0 0
      dist/assets/index-legacy-9a9dea02.js
  16. 0 0
      dist/assets/index-legacy-a4f7eb5c.js
  17. 0 0
      dist/assets/index-legacy-ce0e456f.js
  18. 1 1
      dist/assets/index-legacy-cf49a7ce.js
  19. 1 1
      dist/assets/index-legacy-e28ac63e.js
  20. 0 0
      dist/assets/index-legacy-e7e55299.js
  21. 0 0
      dist/assets/login-3af0b38f.js
  22. 0 0
      dist/assets/login-legacy-825c231c.js
  23. 0 0
      dist/assets/useFee-9b798a2f.js
  24. 0 0
      dist/assets/useFee-legacy-d6ee3403.js
  25. 0 0
      dist/assets/vue3-lottie.es-d2f95078.js
  26. 0 0
      dist/assets/vue3-lottie.es-legacy-23e1ad62.js
  27. 99 14
      dist/flexible.js
  28. 2 2
      dist/index.html
  29. 99 14
      public/flexible.js
  30. 48 0
      src/views/coursewarePlay/component/play-loading/index.module.less
  31. 16 0
      src/views/coursewarePlay/component/play-loading/index.tsx
  32. 35 0
      src/views/coursewarePlay/component/point.module.less
  33. 82 48
      src/views/coursewarePlay/component/points.tsx

BIN
dist/assets/icon-load-15c8bd42.gif


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


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


+ 1 - 1
dist/assets/index-47831f12.js → dist/assets/index-31bde35d.js

@@ -1 +1 @@
-import{z as t,d as s,c as e,F as i,E as l,R as a,bd as r,D as n,G as o}from"./index-0af571ca.js";const[d,c]=t("cell-group"),u=o(s({name:d,inheritAttrs:!1,props:{title:String,inset:Boolean,border:l},setup(t,{slots:s,attrs:l}){const o=()=>{var i;return e("div",a({"class":[c({inset:t.inset}),{[n]:t.border&&!t.inset}]},l,r()),[null==(i=s["default"])?void 0:i.call(s)])};return()=>t.title||s.title?e(i,null,[e("div",{"class":c("title",{inset:t.inset})},[s.title?s.title():t.title]),o()]):o()}}));export{u as C};
+import{z as t,d as s,c as e,F as i,E as l,R as a,bd as r,D as n,G as o}from"./index-7bdeb505.js";const[d,c]=t("cell-group"),u=o(s({name:d,inheritAttrs:!1,props:{title:String,inset:Boolean,border:l},setup(t,{slots:s,attrs:l}){const o=()=>{var i;return e("div",a({"class":[c({inset:t.inset}),{[n]:t.border&&!t.inset}]},l,r()),[null==(i=s["default"])?void 0:i.call(s)])};return()=>t.title||s.title?e(i,null,[e("div",{"class":c("title",{inset:t.inset})},[s.title?s.title():t.title]),o()]):o()}}));export{u as C};

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


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


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


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


+ 1 - 1
dist/assets/index-cc72ee74.js → dist/assets/index-a2855a62.js

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

+ 1 - 1
dist/assets/index-d5ec2a6e.js → dist/assets/index-d358c5eb.js

@@ -1 +1 @@
-import{z as l,H as e,Y as a,d as i,Z as r,c as t,a2 as n,I as s,E as o,aH as c,aC as u,a0 as d,G as v}from"./index-0af571ca.js";const[b,f]=l("cell"),g={tag:n("div"),icon:String,size:String,title:s,value:s,label:s,center:Boolean,isLink:Boolean,border:o,iconPrefix:String,valueClass:c,labelClass:c,titleClass:c,titleStyle:null,arrowDirection:String,required:{type:[Boolean,String],"default":null},clickable:{type:Boolean,"default":null}},p=v(i({name:b,props:e({},g,a),setup(l,{slots:e}){const a=r(),i=()=>{if(e.label||u(l.label))return t("div",{"class":[f("label"),l.labelClass]},[e.label?e.label():l.label])},n=()=>{var a;if(e.title||u(l.title)){const r=null==(a=e.title)?void 0:a.call(e);if(Array.isArray(r)&&0===r.length)return;return t("div",{"class":[f("title"),l.titleClass],style:l.titleStyle},[r||t("span",null,[l.title]),i()])}},s=()=>{const a=e.value||e["default"];if(a||u(l.value))return t("div",{"class":[f("value"),l.valueClass]},[a?a():t("span",null,[l.value])])},o=()=>{if(e["right-icon"])return e["right-icon"]();if(l.isLink){const e=l.arrowDirection&&"right"!==l.arrowDirection?"arrow-".concat(l.arrowDirection):"arrow";return t(d,{name:e,"class":f("right-icon")},null)}};return()=>{var i;const{tag:r,size:c,center:u,border:v,isLink:b,required:g}=l,p=null!=(i=l.clickable)?i:b,C={center:u,required:!!g,clickable:p,borderless:!v};return c&&(C[c]=!!c),t(r,{"class":f(C),role:p?"button":void 0,tabindex:p?0:void 0,onClick:a},{"default":()=>{var a;return[e.icon?e.icon():l.icon?t(d,{name:l.icon,"class":f("left-icon"),classPrefix:l.iconPrefix},null):void 0,n(),s(),o(),null==(a=e.extra)?void 0:a.call(e)]}})}}}));export{p as C,g as c};
+import{z as l,H as e,Y as a,d as i,Z as r,c as t,a2 as n,I as s,E as o,aH as c,aC as u,a0 as d,G as v}from"./index-7bdeb505.js";const[b,f]=l("cell"),g={tag:n("div"),icon:String,size:String,title:s,value:s,label:s,center:Boolean,isLink:Boolean,border:o,iconPrefix:String,valueClass:c,labelClass:c,titleClass:c,titleStyle:null,arrowDirection:String,required:{type:[Boolean,String],"default":null},clickable:{type:Boolean,"default":null}},p=v(i({name:b,props:e({},g,a),setup(l,{slots:e}){const a=r(),i=()=>{if(e.label||u(l.label))return t("div",{"class":[f("label"),l.labelClass]},[e.label?e.label():l.label])},n=()=>{var a;if(e.title||u(l.title)){const r=null==(a=e.title)?void 0:a.call(e);if(Array.isArray(r)&&0===r.length)return;return t("div",{"class":[f("title"),l.titleClass],style:l.titleStyle},[r||t("span",null,[l.title]),i()])}},s=()=>{const a=e.value||e["default"];if(a||u(l.value))return t("div",{"class":[f("value"),l.valueClass]},[a?a():t("span",null,[l.value])])},o=()=>{if(e["right-icon"])return e["right-icon"]();if(l.isLink){const e=l.arrowDirection&&"right"!==l.arrowDirection?"arrow-".concat(l.arrowDirection):"arrow";return t(d,{name:e,"class":f("right-icon")},null)}};return()=>{var i;const{tag:r,size:c,center:u,border:v,isLink:b,required:g}=l,p=null!=(i=l.clickable)?i:b,C={center:u,required:!!g,clickable:p,borderless:!v};return c&&(C[c]=!!c),t(r,{"class":f(C),role:p?"button":void 0,tabindex:p?0:void 0,onClick:a},{"default":()=>{var a;return[e.icon?e.icon():l.icon?t(d,{name:l.icon,"class":f("left-icon"),classPrefix:l.iconPrefix},null):void 0,n(),s(),o(),null==(a=e.extra)?void 0:a.call(e)]}})}}}));export{p as C,g as c};

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


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


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


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


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


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


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


+ 1 - 1
dist/assets/index-legacy-255b750b.js → dist/assets/index-legacy-cf49a7ce.js

@@ -1 +1 @@
-System.register(["./index-legacy-419fc5d8.js"],(function(t,e){"use strict";var s,i,r,n,l,c,o,u,a;return{setters:[t=>{s=t.z,i=t.d,r=t.c,n=t.F,l=t.E,c=t.R,o=t.bd,u=t.D,a=t.G}],execute:function(){const[e,d]=s("cell-group"),v={title:String,inset:Boolean,border:l};var g=i({name:e,inheritAttrs:!1,props:v,setup(t,{slots:e,attrs:s}){const i=()=>{var i;return r("div",c({"class":[d({inset:t.inset}),{[u]:t.border&&!t.inset}]},s,o()),[null==(i=e["default"])?void 0:i.call(e)])};return()=>t.title||e.title?r(n,null,[r("div",{"class":d("title",{inset:t.inset})},[e.title?e.title():t.title]),i()]):i()}});t("C",a(g))}}}));
+System.register(["./index-legacy-406504c4.js"],(function(t,e){"use strict";var s,i,r,n,l,c,o,u,a;return{setters:[t=>{s=t.z,i=t.d,r=t.c,n=t.F,l=t.E,c=t.R,o=t.bd,u=t.D,a=t.G}],execute:function(){const[e,d]=s("cell-group"),v={title:String,inset:Boolean,border:l};var g=i({name:e,inheritAttrs:!1,props:v,setup(t,{slots:e,attrs:s}){const i=()=>{var i;return r("div",c({"class":[d({inset:t.inset}),{[u]:t.border&&!t.inset}]},s,o()),[null==(i=e["default"])?void 0:i.call(e)])};return()=>t.title||e.title?r(n,null,[r("div",{"class":d("title",{inset:t.inset})},[e.title?e.title():t.title]),i()]):i()}});t("C",a(g))}}}));

+ 1 - 1
dist/assets/index-legacy-b677c4f8.js → dist/assets/index-legacy-e28ac63e.js

@@ -1 +1 @@
-System.register(["./index-legacy-419fc5d8.js"],(function(e,l){"use strict";var t,r,i,n,a,s,o,c,u,d,v,b,f;return{setters:[e=>{t=e.z,r=e.H,i=e.Y,n=e.d,a=e.Z,s=e.c,o=e.a2,c=e.I,u=e.E,d=e.aH,v=e.aC,b=e.a0,f=e.G}],execute:function(){const[l,g]=t("cell"),y=e("c",{tag:o("div"),icon:String,size:String,title:c,value:c,label:c,center:Boolean,isLink:Boolean,border:u,iconPrefix:String,valueClass:d,labelClass:d,titleClass:d,titleStyle:null,arrowDirection:String,required:{type:[Boolean,String],"default":null},clickable:{type:Boolean,"default":null}}),C=r({},y,i);var S=n({name:l,props:C,setup(e,{slots:l}){const t=a(),r=()=>{if(l.label||v(e.label))return s("div",{"class":[g("label"),e.labelClass]},[l.label?l.label():e.label])},i=()=>{var t;if(l.title||v(e.title)){const i=null==(t=l.title)?void 0:t.call(l);if(Array.isArray(i)&&0===i.length)return;return s("div",{"class":[g("title"),e.titleClass],style:e.titleStyle},[i||s("span",null,[e.title]),r()])}},n=()=>{const t=l.value||l["default"];if(t||v(e.value))return s("div",{"class":[g("value"),e.valueClass]},[t?t():s("span",null,[e.value])])},o=()=>{if(l["right-icon"])return l["right-icon"]();if(e.isLink){const l=e.arrowDirection&&"right"!==e.arrowDirection?`arrow-${e.arrowDirection}`:"arrow";return s(b,{name:l,"class":g("right-icon")},null)}};return()=>{var r;const{tag:a,size:c,center:u,border:d,isLink:v,required:f}=e,y=null!=(r=e.clickable)?r:v,C={center:u,required:!!f,clickable:y,borderless:!d};return c&&(C[c]=!!c),s(a,{"class":g(C),role:y?"button":void 0,tabindex:y?0:void 0,onClick:t},{"default":()=>{var t;return[l.icon?l.icon():e.icon?s(b,{name:e.icon,"class":g("left-icon"),classPrefix:e.iconPrefix},null):void 0,i(),n(),o(),null==(t=l.extra)?void 0:t.call(l)]}})}}});e("C",f(S))}}}));
+System.register(["./index-legacy-406504c4.js"],(function(e,l){"use strict";var t,r,i,n,a,s,o,c,u,d,v,b,f;return{setters:[e=>{t=e.z,r=e.H,i=e.Y,n=e.d,a=e.Z,s=e.c,o=e.a2,c=e.I,u=e.E,d=e.aH,v=e.aC,b=e.a0,f=e.G}],execute:function(){const[l,g]=t("cell"),y=e("c",{tag:o("div"),icon:String,size:String,title:c,value:c,label:c,center:Boolean,isLink:Boolean,border:u,iconPrefix:String,valueClass:d,labelClass:d,titleClass:d,titleStyle:null,arrowDirection:String,required:{type:[Boolean,String],"default":null},clickable:{type:Boolean,"default":null}}),C=r({},y,i);var S=n({name:l,props:C,setup(e,{slots:l}){const t=a(),r=()=>{if(l.label||v(e.label))return s("div",{"class":[g("label"),e.labelClass]},[l.label?l.label():e.label])},i=()=>{var t;if(l.title||v(e.title)){const i=null==(t=l.title)?void 0:t.call(l);if(Array.isArray(i)&&0===i.length)return;return s("div",{"class":[g("title"),e.titleClass],style:e.titleStyle},[i||s("span",null,[e.title]),r()])}},n=()=>{const t=l.value||l["default"];if(t||v(e.value))return s("div",{"class":[g("value"),e.valueClass]},[t?t():s("span",null,[e.value])])},o=()=>{if(l["right-icon"])return l["right-icon"]();if(e.isLink){const l=e.arrowDirection&&"right"!==e.arrowDirection?`arrow-${e.arrowDirection}`:"arrow";return s(b,{name:l,"class":g("right-icon")},null)}};return()=>{var r;const{tag:a,size:c,center:u,border:d,isLink:v,required:f}=e,y=null!=(r=e.clickable)?r:v,C={center:u,required:!!f,clickable:y,borderless:!d};return c&&(C[c]=!!c),s(a,{"class":g(C),role:y?"button":void 0,tabindex:y?0:void 0,onClick:t},{"default":()=>{var t;return[l.icon?l.icon():e.icon?s(b,{name:e.icon,"class":g("left-icon"),classPrefix:e.iconPrefix},null):void 0,i(),n(),o(),null==(t=l.extra)?void 0:t.call(l)]}})}}});e("C",f(S))}}}));

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


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


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


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


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


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


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
dist/assets/vue3-lottie.es-legacy-23e1ad62.js


+ 99 - 14
dist/flexible.js

@@ -1,14 +1,99 @@
-!function(a,b){function c(){var b=f.getBoundingClientRect().width;b/i>540&&(b=540*i);var c=b/10;f.style.fontSize=c+"px",k.rem=a.rem=c}var d,e=a.document,f=e.documentElement,g=e.querySelector('meta[name="viewport"]'),h=e.querySelector('meta[name="flexible"]'),i=0,j=0,k=b.flexible||(b.flexible={});if(g){console.warn("将根据已有的meta标签来设置缩放比例");var l=g.getAttribute("content").match(/initial\-scale=([\d\.]+)/);l&&(j=parseFloat(l[1]),i=parseInt(1/j))}else if(h){var m=h.getAttribute("content");if(m){var n=m.match(/initial\-dpr=([\d\.]+)/),o=m.match(/maximum\-dpr=([\d\.]+)/);n&&(i=parseFloat(n[1]),j=parseFloat((1/i).toFixed(2))),o&&(i=parseFloat(o[1]),j=parseFloat((1/i).toFixed(2)))}}if(!i&&!j){var p=a.navigator.userAgent,q=(!!p.match(/android/gi),!!p.match(/iphone/gi)),r=q&&!!p.match(/OS 9_3/),s=a.devicePixelRatio;i=q&&!r?s>=3&&(!i||i>=3)?3:s>=2&&(!i||i>=2)?2:1:1,j=1/i}if(f.setAttribute("data-dpr",i),!g)if(g=e.createElement("meta"),g.setAttribute("name","viewport"),g.setAttribute("content","initial-scale="+j+", maximum-scale="+j+", minimum-scale="+j+", user-scalable=no"),f.firstElementChild)f.firstElementChild.appendChild(g);else{var t=e.createElement("div");t.appendChild(g),e.write(t.innerHTML)}a.addEventListener("resize",function(){clearTimeout(d),d=setTimeout(c,300)},!1),a.addEventListener("pageshow",function(a){a.persisted&&(clearTimeout(d),d=setTimeout(c,300))},!1),"complete"===e.readyState?e.body.style.fontSize=12*i+"px":e.addEventListener("DOMContentLoaded",function(){e.body.style.fontSize=12*i+"px"},!1),c(),k.dpr=a.dpr=i,k.refreshRem=c,k.rem2px=function(a){var b=parseFloat(a)*this.rem;return"string"==typeof a&&a.match(/rem$/)&&(b+="px"),b},k.px2rem=function(a){var b=parseFloat(a)/this.rem;return"string"==typeof a&&a.match(/px$/)&&(b+="rem"),b}}(window,window.lib||(window.lib={}));
-
-
-
-
-
-
-
-
-
-
-
-
-
+!(function (a, b) {
+  function c() {
+    var b = f.getBoundingClientRect().width;
+    b / i > 420 && (b = 420 * i);
+    var c = b / 10;
+    (f.style.fontSize = c + 'px'), (k.rem = a.rem = c);
+  }
+  var d,
+    e = a.document,
+    f = e.documentElement,
+    g = e.querySelector('meta[name="viewport"]'),
+    h = e.querySelector('meta[name="flexible"]'),
+    i = 0,
+    j = 0,
+    k = b.flexible || (b.flexible = {});
+  if (g) {
+    console.warn('将根据已有的meta标签来设置缩放比例');
+    var l = g.getAttribute('content').match(/initial\-scale=([\d\.]+)/);
+    l && ((j = parseFloat(l[1])), (i = parseInt(1 / j)));
+  } else if (h) {
+    var m = h.getAttribute('content');
+    if (m) {
+      var n = m.match(/initial\-dpr=([\d\.]+)/),
+        o = m.match(/maximum\-dpr=([\d\.]+)/);
+      n && ((i = parseFloat(n[1])), (j = parseFloat((1 / i).toFixed(2)))),
+        o && ((i = parseFloat(o[1])), (j = parseFloat((1 / i).toFixed(2))));
+    }
+  }
+  if (!i && !j) {
+    var p = a.navigator.userAgent,
+      q = (!!p.match(/android/gi), !!p.match(/iphone/gi)),
+      r = q && !!p.match(/OS 9_3/),
+      s = a.devicePixelRatio;
+    (i =
+      q && !r
+        ? s >= 3 && (!i || i >= 3)
+          ? 3
+          : s >= 2 && (!i || i >= 2)
+          ? 2
+          : 1
+        : 1),
+      (j = 1 / i);
+  }
+  if ((f.setAttribute('data-dpr', i), !g))
+    if (
+      ((g = e.createElement('meta')),
+      g.setAttribute('name', 'viewport'),
+      g.setAttribute(
+        'content',
+        'initial-scale=' +
+          j +
+          ', maximum-scale=' +
+          j +
+          ', minimum-scale=' +
+          j +
+          ', user-scalable=no'
+      ),
+      f.firstElementChild)
+    )
+      f.firstElementChild.appendChild(g);
+    else {
+      var t = e.createElement('div');
+      t.appendChild(g), e.write(t.innerHTML);
+    }
+  a.addEventListener(
+    'resize',
+    function () {
+      clearTimeout(d), (d = setTimeout(c, 300));
+    },
+    !1
+  ),
+    a.addEventListener(
+      'pageshow',
+      function (a) {
+        a.persisted && (clearTimeout(d), (d = setTimeout(c, 300)));
+      },
+      !1
+    ),
+    'complete' === e.readyState
+      ? (e.body.style.fontSize = 12 * i + 'px')
+      : e.addEventListener(
+          'DOMContentLoaded',
+          function () {
+            e.body.style.fontSize = 12 * i + 'px';
+          },
+          !1
+        ),
+    c(),
+    (k.dpr = a.dpr = i),
+    (k.refreshRem = c),
+    (k.rem2px = function (a) {
+      var b = parseFloat(a) * this.rem;
+      return 'string' == typeof a && a.match(/rem$/) && (b += 'px'), b;
+    }),
+    (k.px2rem = function (a) {
+      var b = parseFloat(a) / this.rem;
+      return 'string' == typeof a && a.match(/px$/) && (b += 'rem'), b;
+    });
+})(window, window.lib || (window.lib = {}));

+ 2 - 2
dist/index.html

@@ -15,7 +15,7 @@
   <meta name="HandheldFriendly" content="true" />
   <title>管乐迷</title>
   <script src="./flexible.js" charset="UTF-8"></script>
-  <script type="module" crossorigin src="./assets/index-0af571ca.js"></script>
+  <script type="module" crossorigin src="./assets/index-7bdeb505.js"></script>
   <link rel="stylesheet" href="./assets/index-a5076509.css">
   <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>
@@ -26,7 +26,7 @@
   
   <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>
   <script nomodule crossorigin id="vite-legacy-polyfill" src="./assets/polyfills-legacy-9f17e47e.js"></script>
-  <script nomodule crossorigin id="vite-legacy-entry" data-src="./assets/index-legacy-419fc5d8.js">System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))</script>
+  <script nomodule crossorigin id="vite-legacy-entry" data-src="./assets/index-legacy-406504c4.js">System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))</script>
 </body>
 
 </html>

+ 99 - 14
public/flexible.js

@@ -1,14 +1,99 @@
-!function(a,b){function c(){var b=f.getBoundingClientRect().width;b/i>540&&(b=540*i);var c=b/10;f.style.fontSize=c+"px",k.rem=a.rem=c}var d,e=a.document,f=e.documentElement,g=e.querySelector('meta[name="viewport"]'),h=e.querySelector('meta[name="flexible"]'),i=0,j=0,k=b.flexible||(b.flexible={});if(g){console.warn("将根据已有的meta标签来设置缩放比例");var l=g.getAttribute("content").match(/initial\-scale=([\d\.]+)/);l&&(j=parseFloat(l[1]),i=parseInt(1/j))}else if(h){var m=h.getAttribute("content");if(m){var n=m.match(/initial\-dpr=([\d\.]+)/),o=m.match(/maximum\-dpr=([\d\.]+)/);n&&(i=parseFloat(n[1]),j=parseFloat((1/i).toFixed(2))),o&&(i=parseFloat(o[1]),j=parseFloat((1/i).toFixed(2)))}}if(!i&&!j){var p=a.navigator.userAgent,q=(!!p.match(/android/gi),!!p.match(/iphone/gi)),r=q&&!!p.match(/OS 9_3/),s=a.devicePixelRatio;i=q&&!r?s>=3&&(!i||i>=3)?3:s>=2&&(!i||i>=2)?2:1:1,j=1/i}if(f.setAttribute("data-dpr",i),!g)if(g=e.createElement("meta"),g.setAttribute("name","viewport"),g.setAttribute("content","initial-scale="+j+", maximum-scale="+j+", minimum-scale="+j+", user-scalable=no"),f.firstElementChild)f.firstElementChild.appendChild(g);else{var t=e.createElement("div");t.appendChild(g),e.write(t.innerHTML)}a.addEventListener("resize",function(){clearTimeout(d),d=setTimeout(c,300)},!1),a.addEventListener("pageshow",function(a){a.persisted&&(clearTimeout(d),d=setTimeout(c,300))},!1),"complete"===e.readyState?e.body.style.fontSize=12*i+"px":e.addEventListener("DOMContentLoaded",function(){e.body.style.fontSize=12*i+"px"},!1),c(),k.dpr=a.dpr=i,k.refreshRem=c,k.rem2px=function(a){var b=parseFloat(a)*this.rem;return"string"==typeof a&&a.match(/rem$/)&&(b+="px"),b},k.px2rem=function(a){var b=parseFloat(a)/this.rem;return"string"==typeof a&&a.match(/px$/)&&(b+="rem"),b}}(window,window.lib||(window.lib={}));
-
-
-
-
-
-
-
-
-
-
-
-
-
+!(function (a, b) {
+  function c() {
+    var b = f.getBoundingClientRect().width;
+    b / i > 420 && (b = 420 * i);
+    var c = b / 10;
+    (f.style.fontSize = c + 'px'), (k.rem = a.rem = c);
+  }
+  var d,
+    e = a.document,
+    f = e.documentElement,
+    g = e.querySelector('meta[name="viewport"]'),
+    h = e.querySelector('meta[name="flexible"]'),
+    i = 0,
+    j = 0,
+    k = b.flexible || (b.flexible = {});
+  if (g) {
+    console.warn('将根据已有的meta标签来设置缩放比例');
+    var l = g.getAttribute('content').match(/initial\-scale=([\d\.]+)/);
+    l && ((j = parseFloat(l[1])), (i = parseInt(1 / j)));
+  } else if (h) {
+    var m = h.getAttribute('content');
+    if (m) {
+      var n = m.match(/initial\-dpr=([\d\.]+)/),
+        o = m.match(/maximum\-dpr=([\d\.]+)/);
+      n && ((i = parseFloat(n[1])), (j = parseFloat((1 / i).toFixed(2)))),
+        o && ((i = parseFloat(o[1])), (j = parseFloat((1 / i).toFixed(2))));
+    }
+  }
+  if (!i && !j) {
+    var p = a.navigator.userAgent,
+      q = (!!p.match(/android/gi), !!p.match(/iphone/gi)),
+      r = q && !!p.match(/OS 9_3/),
+      s = a.devicePixelRatio;
+    (i =
+      q && !r
+        ? s >= 3 && (!i || i >= 3)
+          ? 3
+          : s >= 2 && (!i || i >= 2)
+          ? 2
+          : 1
+        : 1),
+      (j = 1 / i);
+  }
+  if ((f.setAttribute('data-dpr', i), !g))
+    if (
+      ((g = e.createElement('meta')),
+      g.setAttribute('name', 'viewport'),
+      g.setAttribute(
+        'content',
+        'initial-scale=' +
+          j +
+          ', maximum-scale=' +
+          j +
+          ', minimum-scale=' +
+          j +
+          ', user-scalable=no'
+      ),
+      f.firstElementChild)
+    )
+      f.firstElementChild.appendChild(g);
+    else {
+      var t = e.createElement('div');
+      t.appendChild(g), e.write(t.innerHTML);
+    }
+  a.addEventListener(
+    'resize',
+    function () {
+      clearTimeout(d), (d = setTimeout(c, 300));
+    },
+    !1
+  ),
+    a.addEventListener(
+      'pageshow',
+      function (a) {
+        a.persisted && (clearTimeout(d), (d = setTimeout(c, 300)));
+      },
+      !1
+    ),
+    'complete' === e.readyState
+      ? (e.body.style.fontSize = 12 * i + 'px')
+      : e.addEventListener(
+          'DOMContentLoaded',
+          function () {
+            e.body.style.fontSize = 12 * i + 'px';
+          },
+          !1
+        ),
+    c(),
+    (k.dpr = a.dpr = i),
+    (k.refreshRem = c),
+    (k.rem2px = function (a) {
+      var b = parseFloat(a) * this.rem;
+      return 'string' == typeof a && a.match(/rem$/) && (b += 'px'), b;
+    }),
+    (k.px2rem = function (a) {
+      var b = parseFloat(a) / this.rem;
+      return 'string' == typeof a && a.match(/px$/) && (b += 'rem'), b;
+    });
+})(window, window.lib || (window.lib = {}));

+ 48 - 0
src/views/coursewarePlay/component/play-loading/index.module.less

@@ -0,0 +1,48 @@
+.audioAnimate {
+  // position: absolute;
+  // left: 0;
+  // right: 0;
+  // top: 0;
+  // bottom: 0;
+  // background-color: rgba(0, 0, 0, .6);
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  padding-bottom: 30%;
+
+  div {
+    width: 2px;
+    height: 10px;
+    background: linear-gradient(135deg, #34FFC5 0%, #1BD2FF 100%);
+    transform-origin: bottom;
+    border-radius: 5px 5px 0 0;
+    margin: 0 1px 0;
+  }
+
+  & div:nth-child(1) {
+    animation: musicWave 0.5s infinite linear both alternate;
+  }
+
+  & div:nth-child(2) {
+    animation: musicWave 0.2s infinite linear both alternate;
+  }
+
+  & div:nth-child(3) {
+    animation: musicWave 0.6s infinite linear both alternate;
+  }
+
+  & div:nth-child(4) {
+    animation: musicWave 0.3s infinite linear both alternate;
+  }
+}
+
+
+@keyframes musicWave {
+  0% {
+    height: 3px;
+  }
+
+  100% {
+    height: 10px;
+  }
+}

+ 16 - 0
src/views/coursewarePlay/component/play-loading/index.tsx

@@ -0,0 +1,16 @@
+import { defineComponent } from 'vue';
+import styles from './index.module.less';
+
+export default defineComponent({
+  name: 'playLoading',
+  setup() {
+    return () => (
+      <div class={styles.audioAnimate}>
+        <div></div>
+        <div></div>
+        <div></div>
+        <div></div>
+      </div>
+    );
+  }
+});

+ 35 - 0
src/views/coursewarePlay/component/point.module.less

@@ -8,23 +8,27 @@
   font-size: 12px;
   box-sizing: border-box;
 }
+
 .pointHead {
   display: flex;
   align-items: center;
   padding: 13px 10px 15px 15px;
   flex-shrink: 0;
   font-size: 14px;
+
   img {
     width: 16px;
     height: 16px;
     margin-right: 7px;
   }
 }
+
 .content {
   flex: 1;
   overflow-y: auto;
   padding: 0 20px;
 }
+
 .collapse {
   &.childActive {
     :global {
@@ -32,10 +36,12 @@
         color: #fff;
       }
     }
+
     .arrow {
       opacity: 1;
     }
   }
+
   &:after {
     display: none;
     border-width: 0;
@@ -44,6 +50,7 @@
   .borderTop {
     border-top: 1px solid rgba(255, 255, 255, 0.2);
   }
+
   :global {
     .van-cell {
       background: transparent;
@@ -51,15 +58,19 @@
       color: rgba(255, 255, 255, 0.5);
       padding: 6px 0;
     }
+
     .van-cell__title {
       font-weight: 600;
     }
+
     .van-collapse-item__title--expanded {
       color: #fff;
     }
+
     .van-collapse-item--border:after {
       display: none;
     }
+
     .van-collapse-item__content {
       background: transparent;
       color: #fff;
@@ -75,19 +86,23 @@
     //   border-top: 1px solid rgba(255, 255, 255, 0.2);
     // }
   }
+
   .childCollapseItem {
     padding-left: 14px;
     border-top: 0;
+
     :global {
       .van-cell {
         padding-left: 0;
         font-size: 14px;
       }
+
       .van-collapse-item__content {
         padding-left: 0px;
       }
     }
   }
+
   .arrow {
     display: block;
     width: 10px;
@@ -96,6 +111,7 @@
     transition: all 0.3s;
     opacity: 0.5;
   }
+
   :global(.van-collapse-item__title--expanded) {
     .arrow {
       transform: rotate(90deg);
@@ -103,6 +119,7 @@
     }
   }
 }
+
 .item {
   display: flex;
   align-items: center;
@@ -110,10 +127,13 @@
   padding: 4px 5px 4px 0;
   border-radius: 6px;
   font-size: 12px;
+  position: relative;
+
   :global {
     .van-icon {
       display: none;
     }
+
     .van-image {
       margin-left: 16px;
       margin-right: 6px;
@@ -123,12 +143,27 @@
     }
   }
 }
+
 .itemActive {
   background: rgba(0, 0, 0, 0.15);
   color: var(--van-primary);
+
   :global {
     .van-icon {
       display: block;
     }
   }
+
+  .playLoading {
+    display: block;
+  }
 }
+
+
+.playLoading {
+  display: none;
+  font-size: 12px;
+  position: absolute;
+  right: 4px;
+  top: 9px;
+}

+ 82 - 48
src/views/coursewarePlay/component/points.tsx

@@ -1,9 +1,17 @@
-import { defineComponent, reactive, watch } from 'vue'
-import styles from './point.module.less'
-import { iconMulv, iconArrow} from '../image/icons.json'
-import iconZhibo from '../image/icon-load.gif'
-import { iconImage, iconImageActive, iconVideo, iconVideoActive, iconSong, iconSongActive } from '../image/icons.json'
-import { Collapse, CollapseItem, Icon, Image } from 'vant'
+import { defineComponent, reactive, watch } from 'vue';
+import styles from './point.module.less';
+import { iconMulv, iconArrow } from '../image/icons.json';
+// import iconZhibo from '../image/icon-load.gif';
+import {
+  iconImage,
+  iconImageActive,
+  iconVideo,
+  iconVideoActive,
+  iconSong,
+  iconSongActive
+} from '../image/icons.json';
+import { Collapse, CollapseItem, Icon, Image } from 'vant';
+import PlayLoading from './play-loading';
 export default defineComponent({
   name: 'points-list',
   props: {
@@ -25,29 +33,34 @@ export default defineComponent({
     const pointData = reactive({
       active: props.tabActive[0] || '',
       childActive: props.tabActive[1] || ''
-    })
+    });
     watch(
       () => props.tabActive,
       () => {
-        pointData.active = props.tabActive[0] || ''
-        pointData.childActive = props.tabActive[1] || ''
+        pointData.active = props.tabActive[0] || '';
+        pointData.childActive = props.tabActive[1] || '';
       }
-    )
+    );
 
-    console.log(pointData.active, 'pointData.active', props.data, props.tabActive)
+    console.log(
+      pointData.active,
+      'pointData.active',
+      props.data,
+      props.tabActive
+    );
 
     // 获取对应图片
     const getImage = (item: any) => {
       if (item.type === 'VIDEO') {
-        return props.itemActive == item.id ? iconVideoActive : iconVideo
+        return props.itemActive == item.id ? iconVideoActive : iconVideo;
       } else if (['IMAGE', 'IMG'].includes(item.type)) {
-        return props.itemActive == item.id ? iconImageActive : iconImage
+        return props.itemActive == item.id ? iconImageActive : iconImage;
       } else if (item.type === 'SONG') {
-        return props.itemActive == item.id ? iconSongActive : iconSong
+        return props.itemActive == item.id ? iconSongActive : iconSong;
       } else {
-        return props.itemActive == item.id ? iconVideoActive : iconVideo
+        return props.itemActive == item.id ? iconVideoActive : iconVideo;
       }
-    }
+    };
     return () => (
       <div class={styles.container}>
         <div class={styles.pointHead}>
@@ -59,10 +72,9 @@ export default defineComponent({
             class={styles.collapse}
             modelValue={pointData.active}
             onUpdate:modelValue={(val: any) => {
-              pointData.active = val
+              pointData.active = val;
             }}
-            accordion
-          >
+            accordion>
             {props.data.map((item: any, index: number) => {
               return (
                 <CollapseItem
@@ -71,8 +83,7 @@ export default defineComponent({
                   class={index > 0 ? styles.borderTop : ''}
                   isLink={false}
                   title={item.name}
-                  name={item.id}
-                >
+                  name={item.id}>
                   {{
                     default: () => (
                       <>
@@ -82,37 +93,47 @@ export default defineComponent({
                               <div
                                 class={[
                                   styles.item,
-                                  props.itemActive == n.id ? styles.itemActive : ''
+                                  props.itemActive == n.id
+                                    ? styles.itemActive
+                                    : ''
                                 ]}
                                 onClick={() => {
                                   emit('handleSelect', {
                                     itemActive: n.id,
                                     tabActive: item.id,
                                     tabName: item.name
-                                  })
-                                }}
-                              >
-                                <Image src={getImage(n)} class={styles.itemImage} />
-                                <span style={{ width: '80%' }} class="van-ellipsis">
+                                  });
+                                }}>
+                                <Image
+                                  src={getImage(n)}
+                                  class={styles.itemImage}
+                                />
+                                <span
+                                  style={{ width: '80%' }}
+                                  class="van-ellipsis">
                                   {n.name}
                                 </span>
-                                <Icon name={iconZhibo} />
+                                {/* <Icon name={iconZhibo} /> */}
+                                <div class={styles.playLoading}>
+                                  <PlayLoading />
+                                </div>
                               </div>
-                            )
+                            );
                           })}
 
                         {Array.isArray(item?.children) && (
                           <Collapse
                             class={[
                               styles.collapse,
-                              pointData.active === item.id ? styles.childActive : ''
+                              pointData.active === item.id
+                                ? styles.childActive
+                                : ''
                             ]}
                             modelValue={pointData.childActive}
                             onUpdate:modelValue={(val: any) => {
-                              pointData.childActive = val
+                              pointData.childActive = val;
                             }}
-                            accordion
-                          >
+                            accordion>
                             {item?.children.map((child: any) => {
                               return (
                                 <CollapseItem
@@ -121,8 +142,7 @@ export default defineComponent({
                                   isLink={false}
                                   title={child.name}
                                   name={child.id}
-                                  class={styles.childCollapseItem}
-                                >
+                                  class={styles.childCollapseItem}>
                                   {{
                                     default: () => (
                                       <>
@@ -132,30 +152,44 @@ export default defineComponent({
                                               <div
                                                 class={[
                                                   styles.item,
-                                                  props.itemActive == n.id ? styles.itemActive : ''
+                                                  props.itemActive == n.id
+                                                    ? styles.itemActive
+                                                    : ''
                                                 ]}
                                                 onClick={() => {
                                                   emit('handleSelect', {
                                                     itemActive: n.id,
                                                     tabActive: child.id,
                                                     tabName: child.name
-                                                  })
-                                                }}
-                                              >
-                                                <Image src={getImage(n)} class={styles.itemImage} />
-                                                <span style={{ width: '73%' }} class="van-ellipsis">
+                                                  });
+                                                }}>
+                                                <Image
+                                                  src={getImage(n)}
+                                                  class={styles.itemImage}
+                                                />
+                                                <span
+                                                  style={{ width: '73%' }}
+                                                  class="van-ellipsis">
                                                   {n.name}
                                                 </span>
-                                                <Icon name={iconZhibo} />
+                                                {/* <Icon name={iconZhibo} /> */}
+                                                <div class={styles.playLoading}>
+                                                  <PlayLoading />
+                                                </div>
                                               </div>
-                                            )
+                                            );
                                           })}
                                       </>
                                     ),
-                                    icon: () => <img class={styles.arrow} src={iconArrow} />
+                                    icon: () => (
+                                      <img
+                                        class={styles.arrow}
+                                        src={iconArrow}
+                                      />
+                                    )
                                   }}
                                 </CollapseItem>
-                              )
+                              );
                             })}
                           </Collapse>
                         )}
@@ -164,11 +198,11 @@ export default defineComponent({
                     icon: () => <img class={styles.arrow} src={iconArrow} />
                   }}
                 </CollapseItem>
-              )
+              );
             })}
           </Collapse>
         </div>
       </div>
-    )
+    );
   }
-})
+});

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