Browse Source

Merge branch 'online' into iteration-login

lex 1 year ago
parent
commit
0edb0f25fd
98 changed files with 506 additions and 15 deletions
  1. 1 1
      dist/assets/Scrollbar-638d4c19.js
  2. 1 0
      dist/assets/Scrollbar-legacy-6d186d19.js
  3. 1 1
      dist/assets/data-08a3c9f6.js
  4. 0 0
      dist/assets/data-legacy-7b2c411a.js
  5. 0 0
      dist/assets/e-delete-50e50a8c.svg
  6. 0 0
      dist/assets/e-edit-27c28498.svg
  7. 0 0
      dist/assets/e-tag-41ad6d7f.svg
  8. 1 0
      dist/assets/headerD-legacy-a41bea57.js
  9. 0 0
      dist/assets/icon-add-540d8f63.svg
  10. 0 0
      dist/assets/icon-assignHomework-16a80795.svg
  11. 0 0
      dist/assets/icon-down-c5693186.svg
  12. 0 0
      dist/assets/icon-menu-74c5e633.svg
  13. 0 0
      dist/assets/icon-pause-5efb540a.svg
  14. 0 0
      dist/assets/icon-pause-70c10a79.svg
  15. 0 0
      dist/assets/icon-play-f01e3616.svg
  16. 0 0
      dist/assets/icon-replay-06435dc9.svg
  17. 0 0
      dist/assets/icon-up-c2aeb981.svg
  18. 0 0
      dist/assets/icon_arrow-653dc704.svg
  19. 0 0
      dist/assets/icon_back-8a62341e.svg
  20. 0 0
      dist/assets/icon_default-486fe3d3.svg
  21. 0 0
      dist/assets/icon_goXiaoku-af3839bc.svg
  22. 0 0
      dist/assets/icon_next-7ede96c3.svg
  23. 0 0
      dist/assets/icon_pause-b55f26df.svg
  24. 0 0
      dist/assets/icon_play-e55ce8d9.svg
  25. 0 0
      dist/assets/icon_pre-f15675ed.svg
  26. 0 0
      dist/assets/icon_search-cda46378.svg
  27. 0 0
      dist/assets/icon_searchActive-80477bdc.svg
  28. 0 0
      dist/assets/icon_separator-36fe21d8.svg
  29. 0 0
      dist/assets/index-02390318.css
  30. 0 0
      dist/assets/index-0310aded.css
  31. 0 0
      dist/assets/index-05507db4.js
  32. 0 0
      dist/assets/index-076f3ddd.css
  33. 0 0
      dist/assets/index-16c80eef.css
  34. 0 0
      dist/assets/index-1baabc1e.css
  35. 0 0
      dist/assets/index-2d47a39b.js
  36. 0 0
      dist/assets/index-3a985559.js
  37. 0 0
      dist/assets/index-45abc4e7.js
  38. 1 1
      dist/assets/index-489a7f4d.js
  39. 1 1
      dist/assets/index-4e12e5ee.js
  40. 0 0
      dist/assets/index-56f7ea59.js
  41. 0 0
      dist/assets/index-5a5ffe57.css
  42. 0 0
      dist/assets/index-636288a7.js
  43. 0 0
      dist/assets/index-636b0edf.css
  44. 1 0
      dist/assets/index-70bb47c4.js
  45. 0 0
      dist/assets/index-774f6734.css
  46. 0 0
      dist/assets/index-8116e4d8.css
  47. 0 0
      dist/assets/index-88703940.js
  48. 0 0
      dist/assets/index-8e927364.js
  49. 0 0
      dist/assets/index-9122d76c.js
  50. 1 1
      dist/assets/index-98fcf9b1.js
  51. 0 0
      dist/assets/index-9b5d0b9d.js
  52. 0 0
      dist/assets/index-9f1df0ca.css
  53. 0 0
      dist/assets/index-af550680.css
  54. 0 0
      dist/assets/index-b51192d1.js
  55. 0 0
      dist/assets/index-bd60a592.js
  56. 1 1
      dist/assets/index-c5b37f0c.js
  57. 0 0
      dist/assets/index-c5dda1f6.js
  58. 0 1
      dist/assets/index-cb64a4b6.js
  59. 1 1
      dist/assets/index-cffb74ce.js
  60. 0 0
      dist/assets/index-d881bcb2.js
  61. 0 0
      dist/assets/index-dec9deed.css
  62. 0 0
      dist/assets/index-f1b5a417.js
  63. 0 0
      dist/assets/index-f8d7ac29.css
  64. 1 0
      dist/assets/index-legacy-0133e503.js
  65. 1 0
      dist/assets/index-legacy-152fd71f.js
  66. 1 0
      dist/assets/index-legacy-32395098.js
  67. 0 0
      dist/assets/index-legacy-432b2fb1.js
  68. 0 0
      dist/assets/index-legacy-4350e458.js
  69. 1 0
      dist/assets/index-legacy-5441356f.js
  70. 0 0
      dist/assets/index-legacy-626c7276.js
  71. 0 0
      dist/assets/index-legacy-6b896b4b.js
  72. 0 0
      dist/assets/index-legacy-729295c6.js
  73. 0 0
      dist/assets/index-legacy-76ed30e6.js
  74. 0 0
      dist/assets/index-legacy-c04c74c8.js
  75. 0 0
      dist/assets/index-legacy-c3b8955b.js
  76. 0 0
      dist/assets/index-legacy-c3ce8626.js
  77. 0 0
      dist/assets/index-legacy-cb2745de.js
  78. 0 0
      dist/assets/index-legacy-d836552f.js
  79. 0 0
      dist/assets/index-legacy-e3e712f5.js
  80. 0 0
      dist/assets/index-legacy-edf402f4.js
  81. 0 0
      dist/assets/index-legacy-f29a6c05.js
  82. 0 0
      dist/assets/index-legacy-f2a20864.js
  83. 0 0
      dist/assets/p-delete-f451a434.svg
  84. 0 0
      dist/assets/p-edit-4f706e0f.svg
  85. 0 0
      dist/assets/p-tag-c1dd923a.svg
  86. 0 0
      dist/assets/polyfills-legacy-fb1ae481.js
  87. 1 0
      dist/assets/teacherIcon-legacy-3eeb62c3.js
  88. 0 0
      dist/assets/tick-03d73309.css
  89. 0 0
      dist/assets/tick-bc5fe25f.js
  90. 0 0
      dist/assets/tick-d77a2a84.js
  91. 0 0
      dist/assets/tick-eab18532.css
  92. 0 0
      dist/assets/tick-legacy-206a674c.js
  93. 189 3
      dist/index.html
  94. 182 1
      index.html
  95. 2 0
      package.json
  96. 70 2
      src/App.tsx
  97. 19 1
      src/router/router-guards.ts
  98. 29 0
      vite.config.ts

+ 1 - 1
dist/assets/Scrollbar-292d974b.js → dist/assets/Scrollbar-638d4c19.js

@@ -1 +1 @@
-import{ab as l,d as e,r as a,ae as n,at as t}from"./index-7e55e09b.js";const c=Object.assign(Object.assign({},l.props),{trigger:String,xScrollable:Boolean,onScroll:Function,size:Number}),i=e({name:"Scrollbar",props:c,setup(){const r=a(null);return Object.assign(Object.assign({},{scrollTo:(...o)=>{var s;(s=r.value)===null||s===void 0||s.scrollTo(o[0],o[1])},scrollBy:(...o)=>{var s;(s=r.value)===null||s===void 0||s.scrollBy(o[0],o[1])}}),{scrollbarInstRef:r})},render(){return n(t,Object.assign({ref:"scrollbarInstRef"},this.$props),this.$slots)}}),d=i;export{d as N};
+import{ab as l,d as e,r as a,ae as n,at as t}from"./index-2d47a39b.js";const c=Object.assign(Object.assign({},l.props),{trigger:String,xScrollable:Boolean,onScroll:Function,size:Number}),i=e({name:"Scrollbar",props:c,setup(){const r=a(null);return Object.assign(Object.assign({},{scrollTo:(...o)=>{var s;(s=r.value)===null||s===void 0||s.scrollTo(o[0],o[1])},scrollBy:(...o)=>{var s;(s=r.value)===null||s===void 0||s.scrollBy(o[0],o[1])}}),{scrollbarInstRef:r})},render(){return n(t,Object.assign({ref:"scrollbarInstRef"},this.$props),this.$slots)}}),d=i;export{d as N};

+ 1 - 0
dist/assets/Scrollbar-legacy-6d186d19.js

@@ -0,0 +1 @@
+System.register(["./index-legacy-76ed30e6.js"],(function(r,s){"use strict";var e,l,t,n,o;return{setters:[r=>{e=r.ab,l=r.d,t=r.r,n=r.ae,o=r.at}],execute:function(){const s=Object.assign(Object.assign({},e.props),{trigger:String,xScrollable:Boolean,onScroll:Function,size:Number}),c=l({name:"Scrollbar",props:s,setup(){const r=t(null),s={scrollTo:(...s)=>{var e;null===(e=r.value)||void 0===e||e.scrollTo(s[0],s[1])},scrollBy:(...s)=>{var e;null===(e=r.value)||void 0===e||e.scrollBy(s[0],s[1])}};return Object.assign(Object.assign({},s),{scrollbarInstRef:r})},render(){return n(o,Object.assign({ref:"scrollbarInstRef"},this.$props),this.$slots)}});r("N",c)}}}));

+ 1 - 1
dist/assets/data-f2ac7710.js → dist/assets/data-08a3c9f6.js

@@ -1,4 +1,4 @@
-import{av as Ke,r as j,aw as Xe,ax as M,a8 as i,ay as p,a9 as J,az as me,aA as Ye,aB as We,d as Qe,aa as Ze,ab as ke,aC as es,E as f,a6 as ss,aD as cs,w as de,aE as ts,ad as he,aF as is,aG as Z,ae as h,aH as ns,aI as as,aJ as os,aK as us,T as ls,aL as D,aM as z,M as Q,aN as ge}from"./index-7e55e09b.js";const rs={railHeight:"4px",railWidthVertical:"4px",handleSize:"18px",dotHeight:"8px",dotWidth:"8px",dotBorderRadius:"4px"},ms=t=>{const a="rgba(0, 0, 0, .85)",T="0 2px 8px 0 rgba(0, 0, 0, 0.12)",{railColor:g,primaryColor:u,baseColor:l,cardColor:N,modalColor:S,popoverColor:L,borderRadius:H,fontSize:I,opacityDisabled:_}=t;return Object.assign(Object.assign({},rs),{fontSize:I,markFontSize:I,railColor:g,railColorHover:g,fillColor:u,fillColorHover:u,opacityDisabled:_,handleColor:"#FFF",dotColor:N,dotColorModal:S,dotColorPopover:L,handleBoxShadow:"0 1px 4px 0 rgba(0, 0, 0, 0.3), inset 0 0 1px 0 rgba(0, 0, 0, 0.05)",handleBoxShadowHover:"0 1px 4px 0 rgba(0, 0, 0, 0.3), inset 0 0 1px 0 rgba(0, 0, 0, 0.05)",handleBoxShadowActive:"0 1px 4px 0 rgba(0, 0, 0, 0.3), inset 0 0 1px 0 rgba(0, 0, 0, 0.05)",handleBoxShadowFocus:"0 1px 4px 0 rgba(0, 0, 0, 0.3), inset 0 0 1px 0 rgba(0, 0, 0, 0.05)",indicatorColor:a,indicatorBoxShadow:T,indicatorTextColor:l,indicatorBorderRadius:H,dotBorder:`2px solid ${g}`,dotBorderActive:`2px solid ${u}`,dotBoxShadow:""})},ds={name:"Slider",common:Ke,self:ms},hs=ds;function pe(t){return window.TouchEvent&&t instanceof window.TouchEvent}function ye(){const t=j(new Map),a=T=>g=>{t.value.set(T,g)};return Xe(()=>{t.value.clear()}),[t,a]}const gs=M([i("slider",`
+import{av as Ke,r as j,aw as Xe,ax as M,a8 as i,ay as p,a9 as J,az as me,aA as Ye,aB as We,d as Qe,aa as Ze,ab as ke,aC as es,E as f,a6 as ss,aD as cs,w as de,aE as ts,ad as he,aF as is,aG as Z,ae as h,aH as ns,aI as as,aJ as os,aK as us,T as ls,aL as D,aM as z,M as Q,aN as ge}from"./index-2d47a39b.js";const rs={railHeight:"4px",railWidthVertical:"4px",handleSize:"18px",dotHeight:"8px",dotWidth:"8px",dotBorderRadius:"4px"},ms=t=>{const a="rgba(0, 0, 0, .85)",T="0 2px 8px 0 rgba(0, 0, 0, 0.12)",{railColor:g,primaryColor:u,baseColor:l,cardColor:N,modalColor:S,popoverColor:L,borderRadius:H,fontSize:I,opacityDisabled:_}=t;return Object.assign(Object.assign({},rs),{fontSize:I,markFontSize:I,railColor:g,railColorHover:g,fillColor:u,fillColorHover:u,opacityDisabled:_,handleColor:"#FFF",dotColor:N,dotColorModal:S,dotColorPopover:L,handleBoxShadow:"0 1px 4px 0 rgba(0, 0, 0, 0.3), inset 0 0 1px 0 rgba(0, 0, 0, 0.05)",handleBoxShadowHover:"0 1px 4px 0 rgba(0, 0, 0, 0.3), inset 0 0 1px 0 rgba(0, 0, 0, 0.05)",handleBoxShadowActive:"0 1px 4px 0 rgba(0, 0, 0, 0.3), inset 0 0 1px 0 rgba(0, 0, 0, 0.05)",handleBoxShadowFocus:"0 1px 4px 0 rgba(0, 0, 0, 0.3), inset 0 0 1px 0 rgba(0, 0, 0, 0.05)",indicatorColor:a,indicatorBoxShadow:T,indicatorTextColor:l,indicatorBorderRadius:H,dotBorder:`2px solid ${g}`,dotBorderActive:`2px solid ${u}`,dotBoxShadow:""})},ds={name:"Slider",common:Ke,self:ms},hs=ds;function pe(t){return window.TouchEvent&&t instanceof window.TouchEvent}function ye(){const t=j(new Map),a=T=>g=>{t.value.set(T,g)};return Xe(()=>{t.value.clear()}),[t,a]}const gs=M([i("slider",`
  display: block;
  padding: calc((var(--n-handle-size) - var(--n-rail-height)) / 2) 0;
  position: relative;

File diff suppressed because it is too large
+ 0 - 0
dist/assets/data-legacy-7b2c411a.js


+ 0 - 0
dist/assets/e-delete-42180152.svg → dist/assets/e-delete-50e50a8c.svg


+ 0 - 0
dist/assets/e-edit-a0caffbb.svg → dist/assets/e-edit-27c28498.svg


+ 0 - 0
dist/assets/e-tag-e90db03d.svg → dist/assets/e-tag-41ad6d7f.svg


+ 1 - 0
dist/assets/headerD-legacy-a41bea57.js

@@ -0,0 +1 @@
+System.register([],(function(e,t){"use strict";return{execute:function(){e("h",""+new URL("headerD-b79bc401.png",t.meta.url).href)}}}));

+ 0 - 0
dist/assets/icon-add-e1bd484b.svg → dist/assets/icon-add-540d8f63.svg


+ 0 - 0
dist/assets/icon-assignHomework-b4738536.svg → dist/assets/icon-assignHomework-16a80795.svg


+ 0 - 0
dist/assets/icon-down-372e6a8f.svg → dist/assets/icon-down-c5693186.svg


+ 0 - 0
dist/assets/icon-menu-c82b47a8.svg → dist/assets/icon-menu-74c5e633.svg


+ 0 - 0
dist/assets/icon-pause-259f3cb5.svg → dist/assets/icon-pause-5efb540a.svg


+ 0 - 0
dist/assets/icon-pause-a04ae1da.svg → dist/assets/icon-pause-70c10a79.svg


+ 0 - 0
dist/assets/icon-play-f09d7ebf.svg → dist/assets/icon-play-f01e3616.svg


+ 0 - 0
dist/assets/icon-replay-2c102172.svg → dist/assets/icon-replay-06435dc9.svg


+ 0 - 0
dist/assets/icon-up-decb9226.svg → dist/assets/icon-up-c2aeb981.svg


+ 0 - 0
dist/assets/icon_arrow-b4fee1f7.svg → dist/assets/icon_arrow-653dc704.svg


+ 0 - 0
dist/assets/icon_back-8fc3ec5e.svg → dist/assets/icon_back-8a62341e.svg


+ 0 - 0
dist/assets/icon_default-c2fa566e.svg → dist/assets/icon_default-486fe3d3.svg


+ 0 - 0
dist/assets/icon_goXiaoku-c05e1880.svg → dist/assets/icon_goXiaoku-af3839bc.svg


+ 0 - 0
dist/assets/icon_next-7dc20456.svg → dist/assets/icon_next-7ede96c3.svg


+ 0 - 0
dist/assets/icon_pause-6dbc64e3.svg → dist/assets/icon_pause-b55f26df.svg


+ 0 - 0
dist/assets/icon_play-43b52923.svg → dist/assets/icon_play-e55ce8d9.svg


+ 0 - 0
dist/assets/icon_pre-20929b0c.svg → dist/assets/icon_pre-f15675ed.svg


+ 0 - 0
dist/assets/icon_search-8a6ade17.svg → dist/assets/icon_search-cda46378.svg


+ 0 - 0
dist/assets/icon_searchActive-bf7fd0c6.svg → dist/assets/icon_searchActive-80477bdc.svg


+ 0 - 0
dist/assets/icon_separator-7cca8458.svg → dist/assets/icon_separator-36fe21d8.svg


File diff suppressed because it is too large
+ 0 - 0
dist/assets/index-02390318.css


File diff suppressed because it is too large
+ 0 - 0
dist/assets/index-0310aded.css


File diff suppressed because it is too large
+ 0 - 0
dist/assets/index-05507db4.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/index-076f3ddd.css


File diff suppressed because it is too large
+ 0 - 0
dist/assets/index-16c80eef.css


File diff suppressed because it is too large
+ 0 - 0
dist/assets/index-1baabc1e.css


File diff suppressed because it is too large
+ 0 - 0
dist/assets/index-2d47a39b.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/index-3a985559.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/index-45abc4e7.js


+ 1 - 1
dist/assets/index-369b3b3c.js → dist/assets/index-489a7f4d.js

@@ -1 +1 @@
-import{d as f,r as l,e as A,w as d,f as m}from"./index-7e55e09b.js";const p="_wrap_3lsnj_1",y="_isAnitaion_3lsnj_7",v="_notice_3lsnj_7",a={wrap:p,isAnitaion:y,notice:v},o=n=>{requestAnimationFrame(()=>{requestAnimationFrame(()=>{n()})})},h=f({name:"TheNoticeBar",props:{text:{type:String,default:""},isAnimation:{type:Boolean,default:!1}},setup(n){const e=l(),i=l(),t=A({isActive:!1,wrapWidth:0,contentWidth:0,contentStyle:{transitionDuration:"0s",transform:"translateX(0px)"},time:null}),s=()=>{t.isActive||!i.value||!e.value||(t.isActive=!0,t.contentWidth=i.value.getBoundingClientRect().width,t.wrapWidth=e.value.getBoundingClientRect().width,r())},r=()=>{if(t.contentWidth<=t.wrapWidth||!t.isActive){t.contentStyle.transitionDuration="0s",t.contentStyle.transform="translateX(0px)";return}t.contentStyle.transitionDuration="5s",t.contentStyle.transform="translateX(-100%)",t.time=setTimeout(()=>{t.contentStyle.transitionDuration="0s",t.contentStyle.transform=`translateX(${t.wrapWidth}px)`,o(r)},5*1e3)},c=()=>{clearTimeout(t.time),t.isActive=!1,t.contentStyle.transitionDuration="0s",t.contentStyle.transform="translateX(0px)",t.time=null};return d(()=>n.isAnimation,u=>{o(u?s:c)}),()=>m("div",{ref:e,class:[a.wrap,n.isAnimation?a.isAnitaion:""],onMouseenter:()=>!n.isAnimation&&s(),onMouseleave:()=>!n.isAnimation&&c()},[m("div",{ref:i,style:t.contentStyle,class:a.notice},[n.text])])}});export{h as T};
+import{d as f,r as l,e as A,w as d,f as m}from"./index-2d47a39b.js";const p="_wrap_3lsnj_1",y="_isAnitaion_3lsnj_7",v="_notice_3lsnj_7",a={wrap:p,isAnitaion:y,notice:v},o=n=>{requestAnimationFrame(()=>{requestAnimationFrame(()=>{n()})})},h=f({name:"TheNoticeBar",props:{text:{type:String,default:""},isAnimation:{type:Boolean,default:!1}},setup(n){const e=l(),i=l(),t=A({isActive:!1,wrapWidth:0,contentWidth:0,contentStyle:{transitionDuration:"0s",transform:"translateX(0px)"},time:null}),s=()=>{t.isActive||!i.value||!e.value||(t.isActive=!0,t.contentWidth=i.value.getBoundingClientRect().width,t.wrapWidth=e.value.getBoundingClientRect().width,r())},r=()=>{if(t.contentWidth<=t.wrapWidth||!t.isActive){t.contentStyle.transitionDuration="0s",t.contentStyle.transform="translateX(0px)";return}t.contentStyle.transitionDuration="5s",t.contentStyle.transform="translateX(-100%)",t.time=setTimeout(()=>{t.contentStyle.transitionDuration="0s",t.contentStyle.transform=`translateX(${t.wrapWidth}px)`,o(r)},5*1e3)},c=()=>{clearTimeout(t.time),t.isActive=!1,t.contentStyle.transitionDuration="0s",t.contentStyle.transform="translateX(0px)",t.time=null};return d(()=>n.isAnimation,u=>{o(u?s:c)}),()=>m("div",{ref:e,class:[a.wrap,n.isAnimation?a.isAnitaion:""],onMouseenter:()=>!n.isAnimation&&s(),onMouseleave:()=>!n.isAnimation&&c()},[m("div",{ref:i,style:t.contentStyle,class:a.notice},[n.text])])}});export{h as T};

File diff suppressed because it is too large
+ 1 - 1
dist/assets/index-4e12e5ee.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/index-56f7ea59.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/index-5a5ffe57.css


File diff suppressed because it is too large
+ 0 - 0
dist/assets/index-636288a7.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/index-636b0edf.css


+ 1 - 0
dist/assets/index-70bb47c4.js

@@ -0,0 +1 @@
+import{d as u,e as n,f as e,h as o,F as l,j as h,k as i}from"./index-2d47a39b.js";const d="_TheSearch_18qen_1",m="_active_18qen_15",c={TheSearch:d,active:m,default:"_default_18qen_21"},p=""+new URL("icon_search-cda46378.svg",import.meta.url).href,f=""+new URL("icon_searchActive-80477bdc.svg",import.meta.url).href,_=u({name:"TheSearch",props:{round:{type:Boolean,default:!1}},emits:["search"],setup(t,{emit:s}){const a=n({value:""});return()=>e(o,{class:c.TheSearch,round:t.round,placeholder:"请输入搜索关键词",modelValue:a.value,"onUpdate:modelValue":r=>a.value=r},{prefix:()=>e(l,null,[e("img",{class:c.default,src:p},null),e("img",{class:c.active,src:f},null)]),suffix:()=>e(h,{size:"small",round:!0,type:"primary",onClick:()=>s("search",a.value)},{default:()=>[i("搜索")]})})}});export{_ as T};

File diff suppressed because it is too large
+ 0 - 0
dist/assets/index-774f6734.css


File diff suppressed because it is too large
+ 0 - 0
dist/assets/index-8116e4d8.css


File diff suppressed because it is too large
+ 0 - 0
dist/assets/index-88703940.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/index-8e927364.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/index-9122d76c.js


+ 1 - 1
dist/assets/index-ed8ddbb6.js → dist/assets/index-98fcf9b1.js

@@ -1 +1 @@
-import{d as l,f as e,h as u,I as o,r,R as I,o as c,F as p}from"./index-7e55e09b.js";const g="_searchInput_1cmht_1",m="_searchIcon_1cmht_9",S={searchInput:g,searchIcon:m},E=l({name:"student-studentList",props:["searchWord"],emits:["changeValue"],setup(t,{emit:n,attrs:A}){return()=>e("div",null,[e(u,o(A,{clearable:!0,class:S.searchInput,value:t.searchWord,onInput:a=>{n("changeValue",a)}}),{prefix:()=>e("span",{class:"icon-search-input"},null)})])}}),h="_arrow_fei3f_1",C="_CSelectWrap_fei3f_5",J="_CSelectInitWrap_fei3f_21",s={arrow:h,CSelectWrap:C,CSelectInitWrap:J},w="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAaCAYAAACtv5zzAAAAAXNSR0IArs4c6QAAANtJREFUSEvt0zFOAkEYQOFv7eEi9iba0GLlDextKNUbECmpuIItFSWNmnANPIEWtoZkJ5LJDv9AQuVOs8Vm3tt5/2zjzKs5M18vCAv/r0TXmLdNJvgI+1B9i26wwqCFfuMWb5GkZgY5PDGrJJGgBK+WHBJ0wZ9a8stemoMnKQlK8FkLfkQuGeM9n0mXIIInRpUkF9TCqyX7gmPhVZIkGGKL3TOt3UBT8+i657m+cInPJBhhfSK8dJI7LJPgAq+4whSL6JML7x/wjA3u8RP9aCd6/rb1gjBhnyhM9As5gjEbhIMMwQAAAABJRU5ErkJggg==",B="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAaCAYAAACtv5zzAAAAAXNSR0IArs4c6QAAASlJREFUSEvtlDFOxDAQRWecigJOAMegABpKFI3TcgUqShZusFDScIA9AbJltt0mSPQcI83SJjMo0S7KBmM7xTYoaT3zn+f/cRD2/OGe9WECRB3+JxaVZXlQVdUCAE4RcU5EL9HZPQXGmBsAeACADyK6RkTuLLLWFsz8uu1BxJnW+mkMxFo7Y+Z5r+eyKIpVB3DOHTdN8ykiR9sCpdQ9ET2mQIbiiLjOsuwkz/P1T8jW2nNmXgLA4ZhJjDF3ItK/yJdS6oqIylZnZ4vGQmLivwCbPJImSRH3AlIgqeJ/AkKQ9izk+XApgi/ZOXdR1/VbP/iBwE6gvo2L/ip8wW+EouJBi/q38UCSxJMBbaEx5kxEnrsmxFut9XvKI4xalCISqpkAUQcni6IWfQOwkaYb9TFYBgAAAABJRU5ErkJggg==",W=l({props:{inline:{type:Boolean,default:!1}},name:"CSelect",setup(t,{emit:n,attrs:A}){r(null);const a=r(!1);return()=>e(p,null,[e("div",{class:[s.CSelectWrap,t.inline?s.CSelectInitWrap:null]},[e(I,o({"show-checkmark":!1},A,{"onUpdate:show":i=>{a.value=i}}),{arrow:()=>a.value?e(c,{class:s.arrow,src:w},null):e(c,{class:s.arrow,src:B},null)})])])}});export{W as C,E as S};
+import{d as l,f as e,h as u,I as o,r,R as I,o as c,F as p}from"./index-2d47a39b.js";const g="_searchInput_1cmht_1",m="_searchIcon_1cmht_9",S={searchInput:g,searchIcon:m},E=l({name:"student-studentList",props:["searchWord"],emits:["changeValue"],setup(t,{emit:n,attrs:A}){return()=>e("div",null,[e(u,o(A,{clearable:!0,class:S.searchInput,value:t.searchWord,onInput:a=>{n("changeValue",a)}}),{prefix:()=>e("span",{class:"icon-search-input"},null)})])}}),h="_arrow_fei3f_1",C="_CSelectWrap_fei3f_5",J="_CSelectInitWrap_fei3f_21",s={arrow:h,CSelectWrap:C,CSelectInitWrap:J},w="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAaCAYAAACtv5zzAAAAAXNSR0IArs4c6QAAANtJREFUSEvt0zFOAkEYQOFv7eEi9iba0GLlDextKNUbECmpuIItFSWNmnANPIEWtoZkJ5LJDv9AQuVOs8Vm3tt5/2zjzKs5M18vCAv/r0TXmLdNJvgI+1B9i26wwqCFfuMWb5GkZgY5PDGrJJGgBK+WHBJ0wZ9a8stemoMnKQlK8FkLfkQuGeM9n0mXIIInRpUkF9TCqyX7gmPhVZIkGGKL3TOt3UBT8+i657m+cInPJBhhfSK8dJI7LJPgAq+4whSL6JML7x/wjA3u8RP9aCd6/rb1gjBhnyhM9As5gjEbhIMMwQAAAABJRU5ErkJggg==",B="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAaCAYAAACtv5zzAAAAAXNSR0IArs4c6QAAASlJREFUSEvtlDFOxDAQRWecigJOAMegABpKFI3TcgUqShZusFDScIA9AbJltt0mSPQcI83SJjMo0S7KBmM7xTYoaT3zn+f/cRD2/OGe9WECRB3+JxaVZXlQVdUCAE4RcU5EL9HZPQXGmBsAeACADyK6RkTuLLLWFsz8uu1BxJnW+mkMxFo7Y+Z5r+eyKIpVB3DOHTdN8ykiR9sCpdQ9ET2mQIbiiLjOsuwkz/P1T8jW2nNmXgLA4ZhJjDF3ItK/yJdS6oqIylZnZ4vGQmLivwCbPJImSRH3AlIgqeJ/AkKQ9izk+XApgi/ZOXdR1/VbP/iBwE6gvo2L/ip8wW+EouJBi/q38UCSxJMBbaEx5kxEnrsmxFut9XvKI4xalCISqpkAUQcni6IWfQOwkaYb9TFYBgAAAABJRU5ErkJggg==",W=l({props:{inline:{type:Boolean,default:!1}},name:"CSelect",setup(t,{emit:n,attrs:A}){r(null);const a=r(!1);return()=>e(p,null,[e("div",{class:[s.CSelectWrap,t.inline?s.CSelectInitWrap:null]},[e(I,o({"show-checkmark":!1},A,{"onUpdate:show":i=>{a.value=i}}),{arrow:()=>a.value?e(c,{class:s.arrow,src:w},null):e(c,{class:s.arrow,src:B},null)})])])}});export{W as C,E as S};

File diff suppressed because it is too large
+ 0 - 0
dist/assets/index-9b5d0b9d.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/index-9f1df0ca.css


File diff suppressed because it is too large
+ 0 - 0
dist/assets/index-af550680.css


File diff suppressed because it is too large
+ 0 - 0
dist/assets/index-b51192d1.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/index-bd60a592.js


+ 1 - 1
dist/assets/index-c761c231.js → dist/assets/index-c5b37f0c.js

@@ -1 +1 @@
-import{X as y,Y as F,S as P,Z as C,J as S}from"./index-7e55e09b.js";function g(e){return y()?(F(e),!0):!1}function w(e){return typeof e=="function"?e():S(e)}const R=typeof window<"u",m=()=>{};function D(e,i){function n(...t){return new Promise((o,r)=>{Promise.resolve(e(()=>i.apply(this,t),{fn:i,thisArg:this,args:t})).then(o).catch(r)})}return n}function b(e,i={}){let n,t,o=m;const r=u=>{clearTimeout(u),o(),o=m};return u=>{const a=w(e),s=w(i.maxWait);return n&&r(n),a<=0||s!==void 0&&s<=0?(t&&(r(t),t=null),Promise.resolve(u())):new Promise((c,p)=>{o=i.rejectOnCancel?p:c,s&&!t&&(t=setTimeout(()=>{n&&r(n),t=null,c(u())},s)),n=setTimeout(()=>{t&&r(t),t=null,c(u())},a)})}}function j(e,i=!0,n=!0,t=!1){let o=0,r,l=!0,u=m,a;const s=()=>{r&&(clearTimeout(r),r=void 0,u(),u=m)};return p=>{const f=w(e),T=Date.now()-o,d=()=>a=p();return s(),f<=0?(o=Date.now(),d()):(T>f&&(n||!l)?(o=Date.now(),d()):i&&(a=new Promise((h,x)=>{u=t?x:h,r=setTimeout(()=>{o=Date.now(),l=!0,h(d()),s()},Math.max(0,f-T))})),!n&&!r&&(r=setTimeout(()=>l=!0,f)),l=!1,a)}}function U(e,i=200,n={}){return D(b(i,n),e)}function V(e,i=200,n=!1,t=!0,o=!1){return D(j(i,n,t,o),e)}function W(e){P()&&C(e)}export{V as a,g as b,w as c,R as i,W as t,U as u};
+import{X as y,Y as F,S as P,Z as C,J as S}from"./index-2d47a39b.js";function g(e){return y()?(F(e),!0):!1}function w(e){return typeof e=="function"?e():S(e)}const R=typeof window<"u",m=()=>{};function D(e,i){function n(...t){return new Promise((o,r)=>{Promise.resolve(e(()=>i.apply(this,t),{fn:i,thisArg:this,args:t})).then(o).catch(r)})}return n}function b(e,i={}){let n,t,o=m;const r=u=>{clearTimeout(u),o(),o=m};return u=>{const a=w(e),s=w(i.maxWait);return n&&r(n),a<=0||s!==void 0&&s<=0?(t&&(r(t),t=null),Promise.resolve(u())):new Promise((c,p)=>{o=i.rejectOnCancel?p:c,s&&!t&&(t=setTimeout(()=>{n&&r(n),t=null,c(u())},s)),n=setTimeout(()=>{t&&r(t),t=null,c(u())},a)})}}function j(e,i=!0,n=!0,t=!1){let o=0,r,l=!0,u=m,a;const s=()=>{r&&(clearTimeout(r),r=void 0,u(),u=m)};return p=>{const f=w(e),T=Date.now()-o,d=()=>a=p();return s(),f<=0?(o=Date.now(),d()):(T>f&&(n||!l)?(o=Date.now(),d()):i&&(a=new Promise((h,x)=>{u=t?x:h,r=setTimeout(()=>{o=Date.now(),l=!0,h(d()),s()},Math.max(0,f-T))})),!n&&!r&&(r=setTimeout(()=>l=!0,f)),l=!1,a)}}function U(e,i=200,n={}){return D(b(i,n),e)}function V(e,i=200,n=!1,t=!0,o=!1){return D(j(i,n,t,o),e)}function W(e){P()&&C(e)}export{V as a,g as b,w as c,R as i,W as t,U as u};

File diff suppressed because it is too large
+ 0 - 0
dist/assets/index-c5dda1f6.js


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

@@ -1 +0,0 @@
-import{d as u,e as n,f as e,h as o,F as l,j as h,k as i}from"./index-7e55e09b.js";const d="_TheSearch_18qen_1",f="_active_18qen_15",t={TheSearch:d,active:f,default:"_default_18qen_21"},m=""+new URL("icon_search-8a6ade17.svg",import.meta.url).href,p=""+new URL("icon_searchActive-bf7fd0c6.svg",import.meta.url).href,_=u({name:"TheSearch",props:{round:{type:Boolean,default:!1}},emits:["search"],setup(c,{emit:s}){const a=n({value:""});return()=>e(o,{class:t.TheSearch,round:c.round,placeholder:"请输入搜索关键词",modelValue:a.value,"onUpdate:modelValue":r=>a.value=r},{prefix:()=>e(l,null,[e("img",{class:t.default,src:m},null),e("img",{class:t.active,src:p},null)]),suffix:()=>e(h,{size:"small",round:!0,type:"primary",onClick:()=>s("search",a.value)},{default:()=>[i("搜索")]})})}});export{_ as T};

+ 1 - 1
dist/assets/index-68458e9b.js → dist/assets/index-cffb74ce.js

@@ -1 +1 @@
-import{d as t,f as e,aO as u,j as a,k as p}from"./index-7e55e09b.js";const r=t({name:"404-page",setup(){return()=>e("div",{style:{height:"220px","margin-top":"150px","padding-top":"30px","font-size":"15px","text-align":"center"}},[e(u,{description:"你访问的页面不见了,你还可以",size:"large"},null),e(a,{type:"primary",text:!0},{default:()=>[p("返回上一页")]})])}});export{r as default};
+import{d as t,f as e,aO as u,j as a,k as p}from"./index-2d47a39b.js";const r=t({name:"404-page",setup(){return()=>e("div",{style:{height:"220px","margin-top":"150px","padding-top":"30px","font-size":"15px","text-align":"center"}},[e(u,{description:"你访问的页面不见了,你还可以",size:"large"},null),e(a,{type:"primary",text:!0},{default:()=>[p("返回上一页")]})])}});export{r as default};

File diff suppressed because it is too large
+ 0 - 0
dist/assets/index-d881bcb2.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/index-dec9deed.css


File diff suppressed because it is too large
+ 0 - 0
dist/assets/index-f1b5a417.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/index-f8d7ac29.css


+ 1 - 0
dist/assets/index-legacy-0133e503.js

@@ -0,0 +1 @@
+System.register(["./index-legacy-76ed30e6.js"],(function(e,t){"use strict";var i,n,r,a,p;return{setters:[e=>{i=e.d,n=e.f,r=e.aO,a=e.j,p=e.k}],execute:function(){e("default",i({name:"404-page",setup:()=>()=>n("div",{style:{height:"220px","margin-top":"150px","padding-top":"30px","font-size":"15px","text-align":"center"}},[n(r,{description:"你访问的页面不见了,你还可以",size:"large"},null),n(a,{type:"primary",text:!0},{default:()=>[p("返回上一页")]})])}))}}}));

+ 1 - 0
dist/assets/index-legacy-152fd71f.js

@@ -0,0 +1 @@
+System.register(["./index-legacy-76ed30e6.js"],(function(e,n){"use strict";var t,a,r,c,_,i,u;return{setters:[e=>{t=e.d,a=e.e,r=e.f,c=e.h,_=e.F,i=e.j,u=e.k}],execute:function(){var l=document.createElement("style");l.textContent="._TheSearch_18qen_1{border-radius:1.04167vw!important}._TheSearch_18qen_1 .n-input-wrapper{padding-left:.625vw;padding-right:.20833vw;height:2.1875vw!important}._TheSearch_18qen_1 .n-button{height:1.77083vw;font-size:.78125vw;font-weight:500;width:auto}._TheSearch_18qen_1 ._active_18qen_15{display:none}._TheSearch_18qen_1.n-input--focus ._active_18qen_15{display:block}._TheSearch_18qen_1.n-input--focus ._default_18qen_21{display:none}._TheSearch_18qen_1.n-input--focus .n-button{opacity:1}\n",document.head.appendChild(l);const s="_TheSearch_18qen_1",o="_active_18qen_15",h="_default_18qen_21",d=""+new URL("icon_search-cda46378.svg",n.meta.url).href,p=""+new URL("icon_searchActive-80477bdc.svg",n.meta.url).href;e("T",t({name:"TheSearch",props:{round:{type:Boolean,default:!1}},emits:["search"],setup(e,{emit:n}){const t=a({value:""});return()=>r(c,{class:s,round:e.round,placeholder:"请输入搜索关键词",modelValue:t.value,"onUpdate:modelValue":e=>t.value=e},{prefix:()=>r(_,null,[r("img",{class:h,src:d},null),r("img",{class:o,src:p},null)]),suffix:()=>r(i,{size:"small",round:!0,type:"primary",onClick:()=>n("search",t.value)},{default:()=>[u("搜索")]})})}}))}}}));

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

@@ -0,0 +1 @@
+System.register(["./index-legacy-76ed30e6.js"],(function(t,n){"use strict";var e,i,o,a,s;return{setters:[t=>{e=t.d,i=t.r,o=t.e,a=t.w,s=t.f}],execute:function(){var n=document.createElement("style");n.textContent="._wrap_3lsnj_1{max-width:100%;overflow:hidden;display:flex;align-items:center}._wrap_3lsnj_1._isAnitaion_3lsnj_7 ._notice_3lsnj_7,._wrap_3lsnj_1:hover ._notice_3lsnj_7{width:auto;overflow:initial}._notice_3lsnj_7{transition-duration:5s;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition-timing-function:linear}\n",document.head.appendChild(n);const r="_wrap_3lsnj_1",l="_isAnitaion_3lsnj_7",c="_notice_3lsnj_7",u=t=>{requestAnimationFrame((()=>{requestAnimationFrame((()=>{t()}))}))};t("T",e({name:"TheNoticeBar",props:{text:{type:String,default:""},isAnimation:{type:Boolean,default:!1}},setup(t){const n=i(),e=i(),d=o({isActive:!1,wrapWidth:0,contentWidth:0,contentStyle:{transitionDuration:"0s",transform:"translateX(0px)"},time:null}),_=()=>{!d.isActive&&e.value&&n.value&&(d.isActive=!0,d.contentWidth=e.value.getBoundingClientRect().width,d.wrapWidth=n.value.getBoundingClientRect().width,m())},m=()=>{if(d.contentWidth<=d.wrapWidth||!d.isActive)return d.contentStyle.transitionDuration="0s",void(d.contentStyle.transform="translateX(0px)");d.contentStyle.transitionDuration="5s",d.contentStyle.transform="translateX(-100%)",d.time=setTimeout((()=>{d.contentStyle.transitionDuration="0s",d.contentStyle.transform=`translateX(${d.wrapWidth}px)`,u(m)}),5e3)},p=()=>{clearTimeout(d.time),d.isActive=!1,d.contentStyle.transitionDuration="0s",d.contentStyle.transform="translateX(0px)",d.time=null};return a((()=>t.isAnimation),(t=>{u(t?_:p)})),()=>s("div",{ref:n,class:[r,t.isAnimation?l:""],onMouseenter:()=>!t.isAnimation&&_(),onMouseleave:()=>!t.isAnimation&&p()},[s("div",{ref:e,style:d.contentStyle,class:c},[t.text])])}}))}}}));

File diff suppressed because it is too large
+ 0 - 0
dist/assets/index-legacy-432b2fb1.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/index-legacy-4350e458.js


+ 1 - 0
dist/assets/index-legacy-5441356f.js

@@ -0,0 +1 @@
+System.register(["./index-legacy-76ed30e6.js"],(function(t,e){"use strict";var n,o,r,u,i;return{setters:[t=>{n=t.X,o=t.Y,r=t.S,u=t.Z,i=t.J}],execute:function(){function e(t){return"function"==typeof t?t():i(t)}t({a:function(t,n=200,o=!1,r=!0,u=!1){return s(function(t,n=!0,o=!0,r=!1){let u,i,s=0,a=!0,f=c;const l=()=>{u&&(clearTimeout(u),u=void 0,f(),f=c)},m=c=>{const m=e(t),w=Date.now()-s,d=()=>i=c();return l(),m<=0?(s=Date.now(),d()):(w>m&&(o||!a)?(s=Date.now(),d()):n&&(i=new Promise(((t,e)=>{f=r?e:t,u=setTimeout((()=>{s=Date.now(),a=!0,t(d()),l()}),Math.max(0,m-w))}))),o||u||(u=setTimeout((()=>a=!0),m)),a=!1,i)};return m}(n,o,r,u),t)},b:function(t){return!!n()&&(o(t),!0)},c:e,t:function(t){r()&&u(t)},u:function(t,n=200,o={}){return s(function(t,n={}){let o,r,u=c;const i=t=>{clearTimeout(t),u(),u=c},s=c=>{const s=e(t),a=e(n.maxWait);return o&&i(o),s<=0||void 0!==a&&a<=0?(r&&(i(r),r=null),Promise.resolve(c())):new Promise(((t,e)=>{u=n.rejectOnCancel?e:t,a&&!r&&(r=setTimeout((()=>{o&&i(o),r=null,t(c())}),a)),o=setTimeout((()=>{r&&i(r),r=null,t(c())}),s)}))};return s}(n,o),t)}}),t("i","undefined"!=typeof window);const c=()=>{};function s(t,e){return function(...n){return new Promise(((o,r)=>{Promise.resolve(t((()=>e.apply(this,n)),{fn:e,thisArg:this,args:n})).then(o).catch(r)}))}}}}}));

File diff suppressed because it is too large
+ 0 - 0
dist/assets/index-legacy-626c7276.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/index-legacy-6b896b4b.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/index-legacy-729295c6.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/index-legacy-76ed30e6.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/index-legacy-c04c74c8.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/index-legacy-c3b8955b.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/index-legacy-c3ce8626.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/index-legacy-cb2745de.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/index-legacy-d836552f.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/index-legacy-e3e712f5.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/index-legacy-edf402f4.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/index-legacy-f29a6c05.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/index-legacy-f2a20864.js


+ 0 - 0
dist/assets/p-delete-0e4c7354.svg → dist/assets/p-delete-f451a434.svg


+ 0 - 0
dist/assets/p-edit-ecf6e1a4.svg → dist/assets/p-edit-4f706e0f.svg


+ 0 - 0
dist/assets/p-tag-db7b6399.svg → dist/assets/p-tag-c1dd923a.svg


File diff suppressed because it is too large
+ 0 - 0
dist/assets/polyfills-legacy-fb1ae481.js


+ 1 - 0
dist/assets/teacherIcon-legacy-3eeb62c3.js

@@ -0,0 +1 @@
+System.register([],(function(e,t){"use strict";return{execute:function(){e("d",""+new URL("teacherIcon-288bbd9f.png",t.meta.url).href)}}}));

File diff suppressed because it is too large
+ 0 - 0
dist/assets/tick-03d73309.css


File diff suppressed because it is too large
+ 0 - 0
dist/assets/tick-bc5fe25f.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/tick-d77a2a84.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/tick-eab18532.css


File diff suppressed because it is too large
+ 0 - 0
dist/assets/tick-legacy-206a674c.js


+ 189 - 3
dist/index.html

@@ -1,6 +1,8 @@
 <!DOCTYPE html>
+
 <html lang="zh-CN">
 
+
 <head>
   <meta charset="UTF-8" />
   <link rel="icon" href="./favicon.ico" />
@@ -24,13 +26,197 @@
   <meta name="msapplication-tap-highlight" content="no" />
   <meta name="referrer" content="no-referrer" />
   <title>老师端</title>
-  <script type="module" crossorigin src="./assets/index-7e55e09b.js"></script>
-  <link rel="stylesheet" href="./assets/index-bdf2c1bf.css">
+  <script type="module" crossorigin src="./assets/index-2d47a39b.js"></script>
+  <link rel="stylesheet" href="./assets/index-636b0edf.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>
 </head>
+<style>
+  body {
+    background: #f1f5ff;
+    width: 100%;
+  }
+
+  .bgImg {
+    width: 23.75vw;
+  }
+
+  .btnImg {
+    width: 15vw;
+    position: absolute;
+    left: 50%;
+    margin-left: -7.5vw;
+    bottom: 1.61458vw;
+    cursor: pointer;
+  }
+
+  /* .imgWrap {
+    width: 456px;
+    position: absolute;
+    top: 141px;
+    left: 50%;
+    margin-left: -288px;
+  } */
+
+  .imgWrap {
+    margin-top: 15.625vw;
+    text-align: center;
+    /* width: 456px;
+        position: absolute;
+        top: 141px;
+        left: 50%;
+        margin-left: -288px;*/
+  }
+
+  .subMsg {
+    margin-top: 1.66667vw;
+    font-size: 1.14583vw;
+    line-height: 1.5625vw;
+    color: #777;
+  }
+
+  .subBtn {
+    width: 12.03125vw;
+    height: 3.22917vw;
+    background: #198CFE;
+    border-radius: 0.9375vw;
+    border: none;
+    font-size: 1.14583vw;
+    font-family: PingFangSC-Semibold, PingFang SC;
+    font-weight: 600;
+    color: #FFFFFF;
+    line-height: 1.5625vw;
+    cursor: pointer;
+    margin-top: 1.66667vw;
+    list-style: none outside none;
+    text-decoration: none;
+  }
+</style>
+<!-- 按钮 https://gyt.ks3-cn-beijing.ksyuncs.com/basic/1688699779209.png -->
+<!-- 背景 https://gyt.ks3-cn-beijing.ksyuncs.com/basic/1688699993534.png -->
+
+<body class="myBody">
+  <script type="text/javascript">
+    function gotoLinlk() {
+      console.log('点击')
+      var agent = navigator.userAgent.toLowerCase();
+      var isMac = function () { return /macintosh|mac os x/i.test(navigator.userAgent); }();
+      if (agent.indexOf("win32") >= 0 || agent.indexOf("wow32") >= 0) {
+        window.open('https://appstore.ks3-cn-beijing.ksyuncs.com/ChromeStandaloneSetup32.exe')
+      }
+      if (agent.indexOf("win64") >= 0 || agent.indexOf("wow64") >= 0) {
+        window.open('https://appstore.ks3-cn-beijing.ksyuncs.com/ChromeStandaloneSetup64.exe')
+      }
+      if (isMac) {
+        window.open('https://appstore.ks3-cn-beijing.ksyuncs.com/googlechrome-mac.dmg')
+      }
+    }
+    function getChromeVersion() {
+      var arr = navigator.userAgent.split(' ');
+      var chromeVersion = '';
+      for (let i = 0; i < arr.length; i++) {
+        if (/chrome/i.test(arr[i])) chromeVersion = arr[i];
+      }
+      if (chromeVersion) {
+        return Number(chromeVersion.split('/')[1].split('.')[0]);
+      } else {
+        return false;
+      }
+    };
+    function IsFF() {
+      var sAgent = window.navigator.userAgent.toLowerCase();
 
-<body>
+      if (sAgent.indexOf("firefox") != -1) {
+        return true;
+      }
+      return false;
+    }
+
+    function isChrome() {
+      var isChromium = window.chrome;
+      var winNav = window.navigator;
+      var vendorName = winNav.vendor;
+      var isOpera = typeof window.opr !== 'undefined';
+      var isIEedge = winNav.userAgent.indexOf('Edge') > -1;
+      var isIOSChrome = winNav.userAgent.match('CriOS');
+      return (
+        isIOSChrome ||
+        (isChromium !== null &&
+          typeof isChromium !== 'undefined' &&
+          vendorName === 'Google Inc.' &&
+          isOpera === false &&
+          isIEedge === false)
+      );
+    };
+    function IEVersion() {
+      var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串
+      var isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1; //判断是否IE<11浏览器
+      var isEdge = userAgent.indexOf("Edge") > -1 && !isIE; //判断是否IE的Edge浏览器
+      var isIE11 = userAgent.indexOf('Trident') > -1 && userAgent.indexOf("rv:11.0") > -1;
+      if (isIE) {
+        var reIE = new RegExp("MSIE (\\d+\\.\\d+);");
+        reIE.test(userAgent);
+        var fIEVersion = parseFloat(RegExp["$1"]);
+        if (fIEVersion == 7) {
+          return 7;
+        } else if (fIEVersion == 8) {
+          return 8;
+        } else if (fIEVersion == 9) {
+          return 9;
+        } else if (fIEVersion == 10) {
+          return 10;
+        } else {
+          return 6;//IE版本<=7
+        }
+      } else if (isEdge) {
+        return 'edge';//edge
+      } else if (isIE11) {
+        return 11; //IE11
+      } else {
+        return -1;//不是ie浏览器
+      }
+    }
+    (function (window) {
+
+      // if (IEVersion() != -1) {
+
+      //   document.writeln("<pre style='text-align:center;color:#fff;background-color:#0cc; height:100%;border:0;position:fixed;top:0;left:0;width:100%;z-index:1234'>" +
+      //     "<h2 style='padding-top:200px;margin:0'><strong>" + str + "<br/></strong></h2><h2>" +
+      //     str2 + "</h2>");
+      //   document.execCommand("Stop");
+      // };
+
+      if (!isChrome()) {
+        // document.writeln("<div class='imgWrap'><img src='https://gyt.ks3-cn-beijing.ksyuncs.com/basic/1688699993534.png' class='bgImg' alt=''><img src='https://gyt.ks3-cn-beijing.ksyuncs.com/basic/1688699779209.png' class='btnImg' alt=''></div>");
+        document.writeln(" <div class='imgWrap'><h1>当前浏览器版本过低</h1><p class='subMsg'>为了保证良好的上课体验,推荐您使用谷歌浏览器</p> <button class='subBtn' onclick='gotoLinlk()'>下载谷歌浏览器</button>");
+        document.execCommand("Stop");
+        // if (IsFF()) {
+        //   window.stop()
+        // } else {
+        //   document.execCommand("Stop");
+        // }
+
+      } else {
+        console.log(getChromeVersion(), 'getChromeVersion')
+        if (getChromeVersion() < 90) {
+
+          document.writeln(" <div class='imgWrap'><h1>当前浏览器版本过低</h1><p class='subMsg'>为了保证良好的上课体验,推荐您使用谷歌浏览器</p> <button class='subBtn' onclick='gotoLinlk()'>下载谷歌浏览器</button>");
+          document.execCommand("Stop");
+          window.stop()
+          console.log('Stop')
+        }
+
+        // if (IsFF()) {
+      }
+
+    })(window);
+  </script>
   <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>
+  <script nomodule crossorigin id="vite-legacy-polyfill" src="./assets/polyfills-legacy-fb1ae481.js"></script>
+  <script nomodule crossorigin id="vite-legacy-entry" data-src="./assets/index-legacy-76ed30e6.js">System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))</script>
 </body>
 
 </html>

+ 182 - 1
index.html

@@ -1,6 +1,8 @@
 <!DOCTYPE html>
+
 <html lang="zh-CN">
 
+
 <head>
   <meta charset="UTF-8" />
   <link rel="icon" href="/favicon.ico" />
@@ -25,10 +27,189 @@
   <meta name="referrer" content="no-referrer" />
   <title>老师端</title>
 </head>
+<style>
+  body {
+    background: #f1f5ff;
+    width: 100%;
+  }
+
+  .bgImg {
+    width: 456px;
+  }
+
+  .btnImg {
+    width: 288px;
+    position: absolute;
+    left: 50%;
+    margin-left: -144px;
+    bottom: 31px;
+    cursor: pointer;
+  }
+
+  /* .imgWrap {
+    width: 456px;
+    position: absolute;
+    top: 141px;
+    left: 50%;
+    margin-left: -288px;
+  } */
+
+  .imgWrap {
+    margin-top: 300px;
+    text-align: center;
+    /* width: 456px;
+        position: absolute;
+        top: 141px;
+        left: 50%;
+        margin-left: -288px;*/
+  }
+
+  .subMsg {
+    margin-top: 32px;
+    font-size: 22px;
+    line-height: 30px;
+    color: #777;
+  }
+
+  .subBtn {
+    width: 231px;
+    height: 62px;
+    background: #198CFE;
+    border-radius: 18px;
+    border: none;
+    font-size: 22px;
+    font-family: PingFangSC-Semibold, PingFang SC;
+    font-weight: 600;
+    color: #FFFFFF;
+    line-height: 30px;
+    cursor: pointer;
+    margin-top: 32px;
+    list-style: none outside none;
+    text-decoration: none;
+  }
+</style>
+<!-- 按钮 https://gyt.ks3-cn-beijing.ksyuncs.com/basic/1688699779209.png -->
+<!-- 背景 https://gyt.ks3-cn-beijing.ksyuncs.com/basic/1688699993534.png -->
+
+<body class="myBody">
+  <script type="text/javascript">
+    function gotoLinlk() {
+      console.log('点击')
+      var agent = navigator.userAgent.toLowerCase();
+      var isMac = function () { return /macintosh|mac os x/i.test(navigator.userAgent); }();
+      if (agent.indexOf("win32") >= 0 || agent.indexOf("wow32") >= 0) {
+        window.open('https://appstore.ks3-cn-beijing.ksyuncs.com/ChromeStandaloneSetup32.exe')
+      }
+      if (agent.indexOf("win64") >= 0 || agent.indexOf("wow64") >= 0) {
+        window.open('https://appstore.ks3-cn-beijing.ksyuncs.com/ChromeStandaloneSetup64.exe')
+      }
+      if (isMac) {
+        window.open('https://appstore.ks3-cn-beijing.ksyuncs.com/googlechrome-mac.dmg')
+      }
+    }
+    function getChromeVersion() {
+      var arr = navigator.userAgent.split(' ');
+      var chromeVersion = '';
+      for (let i = 0; i < arr.length; i++) {
+        if (/chrome/i.test(arr[i])) chromeVersion = arr[i];
+      }
+      if (chromeVersion) {
+        return Number(chromeVersion.split('/')[1].split('.')[0]);
+      } else {
+        return false;
+      }
+    };
+    function IsFF() {
+      var sAgent = window.navigator.userAgent.toLowerCase();
 
-<body>
+      if (sAgent.indexOf("firefox") != -1) {
+        return true;
+      }
+      return false;
+    }
+
+    function isChrome() {
+      var isChromium = window.chrome;
+      var winNav = window.navigator;
+      var vendorName = winNav.vendor;
+      var isOpera = typeof window.opr !== 'undefined';
+      var isIEedge = winNav.userAgent.indexOf('Edge') > -1;
+      var isIOSChrome = winNav.userAgent.match('CriOS');
+      return (
+        isIOSChrome ||
+        (isChromium !== null &&
+          typeof isChromium !== 'undefined' &&
+          vendorName === 'Google Inc.' &&
+          isOpera === false &&
+          isIEedge === false)
+      );
+    };
+    function IEVersion() {
+      var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串
+      var isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1; //判断是否IE<11浏览器
+      var isEdge = userAgent.indexOf("Edge") > -1 && !isIE; //判断是否IE的Edge浏览器
+      var isIE11 = userAgent.indexOf('Trident') > -1 && userAgent.indexOf("rv:11.0") > -1;
+      if (isIE) {
+        var reIE = new RegExp("MSIE (\\d+\\.\\d+);");
+        reIE.test(userAgent);
+        var fIEVersion = parseFloat(RegExp["$1"]);
+        if (fIEVersion == 7) {
+          return 7;
+        } else if (fIEVersion == 8) {
+          return 8;
+        } else if (fIEVersion == 9) {
+          return 9;
+        } else if (fIEVersion == 10) {
+          return 10;
+        } else {
+          return 6;//IE版本<=7
+        }
+      } else if (isEdge) {
+        return 'edge';//edge
+      } else if (isIE11) {
+        return 11; //IE11
+      } else {
+        return -1;//不是ie浏览器
+      }
+    }
+    (function (window) {
+
+      // if (IEVersion() != -1) {
+
+      //   document.writeln("<pre style='text-align:center;color:#fff;background-color:#0cc; height:100%;border:0;position:fixed;top:0;left:0;width:100%;z-index:1234'>" +
+      //     "<h2 style='padding-top:200px;margin:0'><strong>" + str + "<br/></strong></h2><h2>" +
+      //     str2 + "</h2>");
+      //   document.execCommand("Stop");
+      // };
+
+      if (!isChrome()) {
+        // document.writeln("<div class='imgWrap'><img src='https://gyt.ks3-cn-beijing.ksyuncs.com/basic/1688699993534.png' class='bgImg' alt=''><img src='https://gyt.ks3-cn-beijing.ksyuncs.com/basic/1688699779209.png' class='btnImg' alt=''></div>");
+        document.writeln(" <div class='imgWrap'><h1>当前浏览器版本过低</h1><p class='subMsg'>为了保证良好的上课体验,推荐您使用谷歌浏览器</p> <button class='subBtn' onclick='gotoLinlk()'>下载谷歌浏览器</button>");
+        document.execCommand("Stop");
+        // if (IsFF()) {
+        //   window.stop()
+        // } else {
+        //   document.execCommand("Stop");
+        // }
+
+      } else {
+        console.log(getChromeVersion(), 'getChromeVersion')
+        if (getChromeVersion() < 90) {
+
+          document.writeln(" <div class='imgWrap'><h1>当前浏览器版本过低</h1><p class='subMsg'>为了保证良好的上课体验,推荐您使用谷歌浏览器</p> <button class='subBtn' onclick='gotoLinlk()'>下载谷歌浏览器</button>");
+          document.execCommand("Stop");
+          window.stop()
+          console.log('Stop')
+        }
+
+        // if (IsFF()) {
+      }
+
+    })(window);
+  </script>
   <div id="app"></div>
   <script type="module" src="/src/main.ts"></script>
+
 </body>
 
 </html>

+ 2 - 0
package.json

@@ -37,6 +37,7 @@
     "pinia": "^2.1.4",
     "plyr": "^3.7.8",
     "query-string": "^8.1.0",
+    "terser": "^5.18.2",
     "umi-request": "^1.4.0",
     "vudio.js": "^1.0.3",
     "vue": "^3.3.4",
@@ -52,6 +53,7 @@
     "@types/numeral": "^2.0.2",
     "@typescript-eslint/eslint-plugin": "^5.57.1",
     "@typescript-eslint/parser": "^5.57.1",
+    "@vitejs/plugin-legacy": "^4.1.0",
     "@vitejs/plugin-vue": "^4.1.0",
     "@vitejs/plugin-vue-jsx": "^3.0.1",
     "@vue/babel-plugin-jsx": "^1.1.1",

+ 70 - 2
src/App.tsx

@@ -1,5 +1,5 @@
-import { computed, defineComponent } from 'vue';
-import { NConfigProvider, zhCN, dateZhCN } from 'naive-ui';
+import { computed, defineComponent, onMounted, ref } from 'vue';
+import { NConfigProvider, zhCN, dateZhCN, NModal } from 'naive-ui';
 import { AppProvider } from './components/Application';
 import { RouterView } from 'vue-router';
 import setting from './settings/designSetting';
@@ -8,9 +8,11 @@ import RouterError from './components/RouterError';
 export default defineComponent({
   name: 'App',
   setup() {
+    const isIOSChrome = ref();
     const getThemeOverrides = computed(() => {
       const appTheme = setting.appTheme;
       const lightenStr = lighten(setting.appTheme, 6);
+
       return {
         common: {
           primaryColor: appTheme,
@@ -22,6 +24,62 @@ export default defineComponent({
         }
       };
     });
+    // const showModal = ref(false);
+    const showModalMsg = ref('');
+    // 判断浏览器
+    const isChrome = () => {
+      const isChromium = (window as any).chrome;
+      const winNav = window.navigator;
+      const vendorName = winNav.vendor;
+      const isOpera = typeof (window as any).opr !== 'undefined';
+      const isIEedge = winNav.userAgent.indexOf('Edge') > -1;
+      isIOSChrome.value = winNav.userAgent.match('CriOS');
+      return (
+        isIOSChrome.value ||
+        (isChromium !== null &&
+          typeof isChromium !== 'undefined' &&
+          vendorName === 'Google Inc.' &&
+          isOpera === false &&
+          isIEedge === false)
+      );
+    };
+
+    // 获取谷歌版本
+    const getChromeVersion = () => {
+      const arr = navigator.userAgent.split(' ');
+      let chromeVersion = '' as any;
+      for (let i = 0; i < arr.length; i++) {
+        if (/chrome/i.test(arr[i])) chromeVersion = arr[i];
+      }
+      if (chromeVersion) {
+        return Number(chromeVersion.split('/')[1].split('.')[0]);
+      } else {
+        return false;
+      }
+    };
+
+    const isChromeFlag = isChrome();
+    if (isChromeFlag) {
+      const chromeVersion = getChromeVersion();
+      if (!chromeVersion || (chromeVersion && chromeVersion < 100)) {
+        showModalMsg.value =
+          '您当前的chrome版本过低,为了保证您的用户体验请升级后使用';
+        // showModal.value = true;
+      }
+      // if (chromeVersion) {
+      //   return Number(chromeVersion.split('/')[1].split('.')[0]);
+      // } else {
+      //   return false;
+      // }
+    } else {
+      showModalMsg.value = '为了保证您的用户体验,请使用chrome打开,点击确定下载';
+      // showModal.value = true;
+      console.log('---');
+    }
+
+    const submitCallback = () => {
+      window.open('https://www.google.cn/intl/zh-CN/chrome/');
+    };
     return () => (
       <>
         <NConfigProvider
@@ -35,6 +93,16 @@ export default defineComponent({
             <RouterError />
           </AppProvider>
         </NConfigProvider>
+        {/* <NModal
+          show={showModal.value}
+          closeOnEsc={false}
+          closable={false}
+          maskClosable={false}
+          preset="dialog"
+          title="确认"
+          content={showModalMsg.value}
+          positive-text="确认"
+          onPositiveClick={submitCallback}></NModal> */}
       </>
     );
   }

+ 19 - 1
src/router/router-guards.ts

@@ -7,11 +7,29 @@ import { ACCESS_TOKEN } from '@/store/mutation-types';
 const LOGIN_PATH = PageEnum.BASE_LOGIN;
 
 const whitePathList = [LOGIN_PATH]; // no redirect whitelist
-
+const isChrome = () => {
+  const isChromium = (window as any).chrome;
+  const winNav = window.navigator;
+  const vendorName = winNav.vendor;
+  const isOpera = typeof (window as any).opr !== 'undefined';
+  const isIEedge = winNav.userAgent.indexOf('Edge') > -1;
+  const isIOSChrome = winNav.userAgent.match('CriOS');
+  return (
+    isIOSChrome ||
+    (isChromium !== null &&
+      typeof isChromium !== 'undefined' &&
+      vendorName === 'Google Inc.' &&
+      isOpera === false &&
+      isIEedge === false)
+  );
+};
 export function createRouterGuards(router: Router) {
   const userStore = useUserStore();
   router.beforeEach(async (to, from, next) => {
     // console.log('access token');
+    if (!isChrome()) {
+      return;
+    }
     window.$loadingBar && window.$loadingBar.start();
 
     // console.log(window.$loadingBar, '232332');

+ 29 - 0
vite.config.ts

@@ -4,6 +4,7 @@ import vueJsx from '@vitejs/plugin-vue-jsx';
 import Components from 'unplugin-vue-components/vite';
 import { NaiveUiResolver } from 'unplugin-vue-components/resolvers';
 import viteESLint from 'vite-plugin-eslint';
+import legacyPlugin from '@vitejs/plugin-legacy';
 // eslint-disable-next-line @typescript-eslint/no-var-requires
 const path = require('path');
 
@@ -23,8 +24,36 @@ export default defineConfig({
     Components({
       dts: true,
       resolvers: [NaiveUiResolver()]
+    }),
+    legacyPlugin({
+      targets: ['defaults', 'not IE 11'],
+      additionalLegacyPolyfills: ['regenerator-runtime/runtime'],
+      renderLegacyChunks: true,
+      polyfills: [
+        'es.symbol',
+        'es.promise',
+        'es.promise.finally',
+        'es/map',
+        'es/set',
+        'es.array.filter',
+        'es.array.for-each',
+        'es.array.flat-map',
+        'es.object.define-properties',
+        'es.object.define-property',
+        'es.object.get-own-property-descriptor',
+        'es.object.get-own-property-descriptors',
+        'es.object.keys',
+        'es.object.to-string',
+        'web.dom-collections.for-each',
+        'esnext.global-this',
+        'esnext.string.match-all'
+      ]
     })
   ],
+
+  build: {
+    target: 'es2015'
+  },
   resolve: {
     alias: {
       '@': resolve('./src'),

Some files were not shown because too many files changed in this diff