lex-xin пре 3 година
родитељ
комит
c2a837045e
100 измењених фајлова са 221 додато и 223 уклоњено
  1. 0 0
      dist/assets/create-legacy.9c8df675.js
  2. 0 0
      dist/assets/create-legacy.c3f910da.js
  3. 0 0
      dist/assets/create.0783d518.js
  4. 0 0
      dist/assets/create.090c64ef.css
  5. 0 0
      dist/assets/create.0ae07d48.css
  6. 0 0
      dist/assets/create.17f918ed.js
  7. 0 0
      dist/assets/create.2b3938a5.css
  8. 0 0
      dist/assets/create.37df2d78.js
  9. 0 0
      dist/assets/create.6aca8267.css
  10. 0 0
      dist/assets/create.9fdfa766.js
  11. 0 0
      dist/assets/index-legacy.001104e5.js
  12. 0 0
      dist/assets/index-legacy.0f1bd449.js
  13. 0 0
      dist/assets/index-legacy.170d02e6.js
  14. 0 0
      dist/assets/index-legacy.2e81cf31.js
  15. 0 0
      dist/assets/index-legacy.2f25be32.js
  16. 0 0
      dist/assets/index-legacy.3974fa5c.js
  17. 0 0
      dist/assets/index-legacy.3fe186ff.js
  18. 0 0
      dist/assets/index-legacy.441d5a47.js
  19. 0 0
      dist/assets/index-legacy.5af9a4a5.js
  20. 0 0
      dist/assets/index-legacy.654ebe0f.js
  21. 1 1
      dist/assets/index-legacy.673786e4.js
  22. 0 0
      dist/assets/index-legacy.71a19265.js
  23. 0 0
      dist/assets/index-legacy.77793bb4.js
  24. 0 0
      dist/assets/index-legacy.8b51c1a5.js
  25. 0 0
      dist/assets/index-legacy.8f502713.js
  26. 0 0
      dist/assets/index-legacy.a01be287.js
  27. 0 0
      dist/assets/index-legacy.a8ffd151.js
  28. 0 0
      dist/assets/index-legacy.a9b881d1.js
  29. 0 0
      dist/assets/index-legacy.ac8c347c.js
  30. 0 0
      dist/assets/index-legacy.d12b9591.js
  31. 0 0
      dist/assets/index-legacy.d8f2e228.js
  32. 0 0
      dist/assets/index-legacy.eec427cf.js
  33. 0 0
      dist/assets/index-legacy.ffcb3f48.js
  34. 1 1
      dist/assets/index.08e697ae.js
  35. 0 0
      dist/assets/index.13b82f88.js
  36. 0 0
      dist/assets/index.184c1243.css
  37. 0 0
      dist/assets/index.1defe979.css
  38. 0 0
      dist/assets/index.216161d9.js
  39. 0 0
      dist/assets/index.2537792d.js
  40. 0 0
      dist/assets/index.3512787a.js
  41. 0 0
      dist/assets/index.43a6ddca.js
  42. 0 0
      dist/assets/index.5aa5f962.js
  43. 0 0
      dist/assets/index.5b82a88e.js
  44. 0 0
      dist/assets/index.5c9c9331.js
  45. 0 0
      dist/assets/index.5d9de75c.js
  46. 1 0
      dist/assets/index.618f8994.js
  47. 0 0
      dist/assets/index.6992ad83.js
  48. 0 0
      dist/assets/index.7020eb38.js
  49. 1 0
      dist/assets/index.76caf9e7.css
  50. 0 0
      dist/assets/index.78e30731.js
  51. 0 0
      dist/assets/index.8cc22d59.js
  52. 0 0
      dist/assets/index.911fdb46.js
  53. 1 0
      dist/assets/index.9785f317.css
  54. 1 1
      dist/assets/index.98fc0422.js
  55. 0 1
      dist/assets/index.a16ee869.js
  56. 0 0
      dist/assets/index.bb92a415.js
  57. 0 0
      dist/assets/index.bf9e4503.js
  58. 0 0
      dist/assets/index.c019098d.js
  59. 0 0
      dist/assets/index.c302f130.js
  60. 0 1
      dist/assets/index.cc4c0b27.css
  61. 0 0
      dist/assets/index.d48e6675.js
  62. 0 0
      dist/assets/index.e5e749bb.js
  63. 0 0
      dist/assets/index.ecc48f25.js
  64. 0 1
      dist/assets/index.f70e74fc.css
  65. 0 0
      dist/assets/live-detail-legacy.5098ee2b.js
  66. 0 0
      dist/assets/live-detail-legacy.c7af54fd.js
  67. 0 0
      dist/assets/live-detail.6cbe7d32.js
  68. 0 0
      dist/assets/live-detail.b5cc1b39.js
  69. 0 0
      dist/assets/login-legacy.5a2dfbbc.js
  70. 0 0
      dist/assets/login-legacy.aaf8ac5f.js
  71. 0 0
      dist/assets/login.d2ff6e24.js
  72. 0 0
      dist/assets/login.f86a7fb9.js
  73. 0 0
      dist/assets/member-record-legacy.7505c05e.js
  74. 0 0
      dist/assets/member-record.41e91baf.js
  75. 0 0
      dist/assets/polyfills-legacy.27a76653.js
  76. 0 0
      dist/assets/polyfills-legacy.f394899b.js
  77. 0 0
      dist/assets/practice-setting-legacy.02f254c4.js
  78. 0 0
      dist/assets/practice-setting.27833735.js
  79. 0 0
      dist/assets/practice-setting.7c94965d.js
  80. 0 0
      dist/assets/switch-legacy.0dad502f.js
  81. 1 1
      dist/assets/switch.1cd14c16.js
  82. 0 0
      dist/assets/teacher-legacy.052cf68c.js
  83. 0 0
      dist/assets/teacher.5d9e3c85.js
  84. 0 0
      dist/assets/teacher.7ccdac42.js
  85. 0 0
      dist/assets/trade-detail-legacy.8c94d035.js
  86. 0 0
      dist/assets/trade-detail.355f251e.js
  87. 0 0
      dist/assets/video-class-detail-legacy.5e1639c0.js
  88. 0 0
      dist/assets/video-class-detail-legacy.a411a5d3.js
  89. 0 0
      dist/assets/video-class-detail.2e75ef7b.js
  90. 0 0
      dist/assets/video-class-detail.4b56969b.js
  91. 0 0
      dist/assets/video-detail-legacy.477d6686.js
  92. 0 0
      dist/assets/video-detail-legacy.ff9120ca.js
  93. 0 0
      dist/assets/video-detail.b8936c6e.js
  94. 0 0
      dist/assets/video-detail.ed698a10.js
  95. 0 0
      dist/assets/vueFilter-legacy.e6981e80.js
  96. 0 0
      dist/assets/vueFilter.0fbb0cac.js
  97. 6 6
      dist/index.html
  98. 6 6
      dist/teacher.html
  99. 9 16
      src/business-components/subject-list/index.module.less
  100. 193 188
      src/business-components/subject-list/index.tsx

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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


+ 1 - 1
dist/assets/index-legacy.a6401181.js → dist/assets/index-legacy.673786e4.js

@@ -1 +1 @@
-;(function(){var __vite_style__=document.createElement('style');__vite_style__.innerHTML="._f404_h02wy_1{min-height:100vh;text-align:center}._f404_h02wy_1 p{font-size:.42667rem;color:#999}._f404_h02wy_1 .van-image{margin-top:2.66667rem;width:70%}._f404_h02wy_1 .van-button{margin-top:.53333rem;background-color:transparent;width:50%}\n";document.head.appendChild(__vite_style__);System.register(['./vendor-legacy.d78f8ccd.js','./index-legacy.f25f109a4.js','./vueFilter-legacy.8765a739.js'],function(exports){'use strict';var defineComponent,createVNode,Image,createTextVNode,Button,browser,postMessage;return{setters:[function(module){defineComponent=module.d;createVNode=module.a;Image=module.q;createTextVNode=module.b;Button=module.B;},function(){},function(module){browser=module.c;postMessage=module.p;}],execute:function execute(){var f404="_f404_h02wy_1";var styles={f404:f404};var img404="./assets/404.91cd33be.png";var index=exports('default',defineComponent({name:'NotFound',render:function render(){var _this=this;return createVNode("div",{"class":styles.f404},[createVNode(Image,{"src":img404},null),createVNode("p",null,[createTextVNode("\u9875\u9762\u627E\u4E0D\u5230\u4E86")]),createVNode(Button,{"type":"primary","plain":true,"round":true,"onClick":function onClick(){if(browser().iPhone){postMessage({api:'back'});}else{_this.$router.back();}}},{default:function _default(){return[createTextVNode("\u8FD4\u56DE")];}})]);}}));}};});})();
+;(function(){var __vite_style__=document.createElement('style');__vite_style__.innerHTML="._f404_h02wy_1{min-height:100vh;text-align:center}._f404_h02wy_1 p{font-size:.42667rem;color:#999}._f404_h02wy_1 .van-image{margin-top:2.66667rem;width:70%}._f404_h02wy_1 .van-button{margin-top:.53333rem;background-color:transparent;width:50%}\n";document.head.appendChild(__vite_style__);System.register(['./vendor-legacy.d78f8ccd.js','./index-legacy.f25f109a4.js','./vueFilter-legacy.e6981e80.js'],function(exports){'use strict';var defineComponent,createVNode,Image,createTextVNode,Button,browser,postMessage;return{setters:[function(module){defineComponent=module.d;createVNode=module.a;Image=module.q;createTextVNode=module.b;Button=module.B;},function(){},function(module){browser=module.c;postMessage=module.p;}],execute:function execute(){var f404="_f404_h02wy_1";var styles={f404:f404};var img404="./assets/404.91cd33be.png";var index=exports('default',defineComponent({name:'NotFound',render:function render(){var _this=this;return createVNode("div",{"class":styles.f404},[createVNode(Image,{"src":img404},null),createVNode("p",null,[createTextVNode("\u9875\u9762\u627E\u4E0D\u5230\u4E86")]),createVNode(Button,{"type":"primary","plain":true,"round":true,"onClick":function onClick(){if(browser().iPhone){postMessage({api:'back'});}else{_this.$router.back();}}},{default:function _default(){return[createTextVNode("\u8FD4\u56DE")];}})]);}}));}};});})();

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


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


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


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


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


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


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


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


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


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


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


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


+ 1 - 1
dist/assets/index.599c4eb0.js → dist/assets/index.08e697ae.js

@@ -1 +1 @@
-import{p as a}from"./vueFilter.14447004.js";import{d as h,a as i,F as d,N as c}from"./vendor.8455490d.js";const g="_colHeader_1rdkc_1",u="_transparent_1rdkc_5",p="_headerSection_1rdkc_8";var s={colHeader:g,transparent:u,headerSection:p},f=h({name:"col-header",props:{title:String,isBack:{type:Boolean,default:!1},isFixed:{type:Boolean,default:!0},styleName:{type:Object,default:()=>({})},titleClass:String,background:{type:String,default:"white"},color:{type:String,default:"#323233"},rightText:String,onClickRight:{type:Function,default:()=>{}},border:{type:Boolean,default:!0}},data(){return{headerTitle:null,navBarHeight:0,titleHeight:44}},mounted(){this.headerTitle=this.title||this.$route.meta.title,this.navBarInit()},unmounted(){a({api:"setBarStatus",content:{status:1}})},methods:{navBarInit(){a({api:"setBarStatus",content:{status:0}});let n=sessionStorage.getItem("navHeight"),o=sessionStorage.getItem("titleHeight");n&&o?this.navBarHeight=Number(n):a({api:"getNavHeight"},l=>{const{content:t}=l,r=t.dpi||2;if(t.navHeight){const e=t.navHeight/r;sessionStorage.setItem("navHeight",String(e)),this.navBarHeight=e}if(t.titleHeight){const e=t.titleHeight/r;sessionStorage.setItem("titleHeight",String(e)),this.titleHeight=e}})},onClickLeft(){this.$router.back()},clickRight(){this.onClickRight&&this.onClickRight()}},render(){return i("div",null,[this.$slots.content?i("div",{style:{paddingTop:`${this.navBarHeight}px`},class:s.headerSection},[this.$slots.content(this.navBarHeight)]):i(d,null,[i("div",{style:{paddingTop:`${this.navBarHeight}px`},class:s.headerSection},[i(c,{title:this.headerTitle,class:[s.colHeader],style:{background:this.background,color:this.color},"left-arrow":this.isBack,rightText:this.rightText,fixed:this.isFixed,border:this.border,"onClick-right":this.clickRight,"onClick-left":this.onClickLeft},null)]),this.$slots.default?this.$slots.default():null])])}});export{f as C};
+import{p as a}from"./vueFilter.0fbb0cac.js";import{d as h,a as i,F as d,N as c}from"./vendor.8455490d.js";const g="_colHeader_1rdkc_1",u="_transparent_1rdkc_5",p="_headerSection_1rdkc_8";var s={colHeader:g,transparent:u,headerSection:p},f=h({name:"col-header",props:{title:String,isBack:{type:Boolean,default:!1},isFixed:{type:Boolean,default:!0},styleName:{type:Object,default:()=>({})},titleClass:String,background:{type:String,default:"white"},color:{type:String,default:"#323233"},rightText:String,onClickRight:{type:Function,default:()=>{}},border:{type:Boolean,default:!0}},data(){return{headerTitle:null,navBarHeight:0,titleHeight:44}},mounted(){this.headerTitle=this.title||this.$route.meta.title,this.navBarInit()},unmounted(){a({api:"setBarStatus",content:{status:1}})},methods:{navBarInit(){a({api:"setBarStatus",content:{status:0}});let n=sessionStorage.getItem("navHeight"),o=sessionStorage.getItem("titleHeight");n&&o?this.navBarHeight=Number(n):a({api:"getNavHeight"},l=>{const{content:t}=l,r=t.dpi||2;if(t.navHeight){const e=t.navHeight/r;sessionStorage.setItem("navHeight",String(e)),this.navBarHeight=e}if(t.titleHeight){const e=t.titleHeight/r;sessionStorage.setItem("titleHeight",String(e)),this.titleHeight=e}})},onClickLeft(){this.$router.back()},clickRight(){this.onClickRight&&this.onClickRight()}},render(){return i("div",null,[this.$slots.content?i("div",{style:{paddingTop:`${this.navBarHeight}px`},class:s.headerSection},[this.$slots.content(this.navBarHeight)]):i(d,null,[i("div",{style:{paddingTop:`${this.navBarHeight}px`},class:s.headerSection},[i(c,{title:this.headerTitle,class:[s.colHeader],style:{background:this.background,color:this.color},"left-arrow":this.isBack,rightText:this.rightText,fixed:this.isFixed,border:this.border,"onClick-right":this.clickRight,"onClick-left":this.onClickLeft},null)]),this.$slots.default?this.$slots.default():null])])}});export{f as C};

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


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


+ 0 - 0
dist/assets/teacher.c2cf0659.css → dist/assets/index.1defe979.css


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


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


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


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


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


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


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


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


+ 1 - 0
dist/assets/index.618f8994.js

@@ -0,0 +1 @@
+import{d as r,a as e,q as s,b as a,B as t}from"./vendor.8455490d.js";/* empty css               */import{c as o,p as u}from"./vueFilter.0fbb0cac.js";const n="_f404_h02wy_1";var i={f404:n},d="./assets/404.91cd33be.png",f=r({name:"NotFound",render(){return e("div",{class:i.f404},[e(s,{src:d},null),e("p",null,[a("\u9875\u9762\u627E\u4E0D\u5230\u4E86")]),e(t,{type:"primary",plain:!0,round:!0,onClick:()=>{o().iPhone?u({api:"back"}):this.$router.back()}},{default:()=>[a("\u8FD4\u56DE")]})])}});export{f as default};

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


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


+ 1 - 0
dist/assets/index.76caf9e7.css

@@ -0,0 +1 @@
+._colProtocol_1iira_1{font-size:.32rem;padding:.4rem .37333rem;color:#999}._colProtocol_1iira_1 ._protocolText_1iira_6{color:var(--van-primary);line-height:.4rem}._colProtocol_1iira_1 ._boxStyle_1iira_10{background:transparent!important;width:.4rem;height:.4rem;border:transparent!important}._colProtocol_1iira_1 .van-checkbox{display:inline-block;align-items:inherit;overflow:inherit}._colProtocol_1iira_1 .van-checkbox__icon{height:.4rem;line-height:.4rem;display:inline-block;vertical-align:sub}._colProtocol_1iira_1 .van-checkbox__label{line-height:.4rem}

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


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


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


+ 1 - 0
dist/assets/index.9785f317.css

@@ -0,0 +1 @@
+._subjects_2ady3_1{padding:.4rem 0 0}._subjects_2ady3_1 ._subjectContainer_2ady3_4{min-height:calc(100vh - 2.53333rem)}._subjects_2ady3_1 ._title_2ady3_7{padding:.32rem 0;margin:0 .4rem;color:#333;font-size:.42667rem}._subjects_2ady3_1 ._title_2ady3_7:before{content:" ";display:inline-block;width:.08rem;height:.42667rem;background:#2dc7aa;border-radius:.08rem;margin-right:.21333rem;vertical-align:text-bottom}._subjects_2ady3_1 ._subject-list_2ady3_23{display:flex;align-items:center;flex-wrap:wrap;padding:0 .26667rem}._subjects_2ady3_1 ._subject-list_2ady3_23 ._subject-item_2ady3_29{position:relative;width:2.88rem;height:2.88rem;margin-right:.13333rem;margin-left:.13333rem;margin-bottom:.26667rem;border-radius:.18667rem;overflow:hidden}._subjects_2ady3_1 ._subject-list_2ady3_23 ._topBg_2ady3_39{position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(180deg,rgba(0,0,0,0) 0%,rgba(0,0,0,.54) 100%)}._subjects_2ady3_1 ._subject-list_2ady3_23 ._checkbox_2ady3_47{position:absolute;right:.18667rem;top:.18667rem}._subjects_2ady3_1 ._subject-list_2ady3_23 ._name_2ady3_52{position:absolute;bottom:.18667rem;left:.18667rem;font-size:.42667rem;font-weight:500;color:#fff;line-height:.58667rem}._subjects_2ady3_1 ._subject-list_2ady3_23 .van-checkbox__icon,._subjects_2ady3_1 ._subject-list_2ady3_23 .van-radio__icon{height:.58667rem}._subjects_2ady3_1 ._subject-list_2ady3_23 .van-checkbox__icon .van-icon,._subjects_2ady3_1 ._subject-list_2ady3_23 .van-radio__icon .van-icon{border:0}._subjects_2ady3_1 ._subject-list_2ady3_23 .van-checkbox__icon--checked .van-icon,._subjects_2ady3_1 ._subject-list_2ady3_23 .van-radio__icon--checked .van-icon{background:transparent;border:transparent}

+ 1 - 1
dist/assets/index.d6ad9d92.js → dist/assets/index.98fc0422.js

@@ -1 +1 @@
-import{d as a,a as o,D as c,b as s,I as n,P as i}from"./vendor.8455490d.js";/* empty css               *//* empty css                */import{a as r,i as h}from"./icon_checkbox_default.2fe5d57e.js";const d="_colProtocol_1pph9_1",m="_protocolText_1pph9_6",f="_boxStyle_1pph9_10";var e={colProtocol:d,protocolText:m,boxStyle:f},B=a({name:"protocol",props:{modelValue:{type:Boolean,default:!1}},data(){return{checked:!1,popupStatus:!1,protocolHTML:"",protocolPopup:null}},mounted(){this.checked=this.modelValue,window.addEventListener("hashchange",this.onHash,!1)},unmounted(){window.removeEventListener("hashchange",this.onHash,!1)},watch:{checked(t){this.$emit("update:modelValue",t)}},methods:{onHash(){this.popupStatus=!1},onPopupClose(){if(this.popupStatus=!this.popupStatus,this.popupStatus){const t=this.$route;let u=0;for(let x in t.query)u+=1;const l=window.location.href,p=u>0?"&pto="+ +new Date:"?pto="+ +new Date;history.pushState("","",`${l}${p}`)}else window.history.go(-1);this.protocolPopup&&(this.protocolPopup.scrollTop=0)}},render(){return o("div",{class:e.colProtocol},[o(c,{modelValue:this.checked,"onUpdate:modelValue":t=>this.checked=t},{default:()=>[s("\u6211\u5DF2\u9605\u8BFB\u5E76\u540C\u610F")],icon:t=>o(n,{class:e.boxStyle,name:t.checked?r:h,size:"15"},null)}),o("span",{onClick:this.onPopupClose,class:e.protocolText},[s("\u300A\u9177\u4E50\u79C0\u5E73\u53F0\u670D\u52A1\u534F\u8BAE\u300B")]),o(i,{ref:this.protocolPopup,show:this.popupStatus,position:"bottom",style:{height:"100%"}},{default:()=>[o("div",{class:e.protocolContent},[o("div",{class:e.protocolTitle},[s("\u9177\u4E50\u79C0\u5E73\u53F0\u670D\u52A1\u534F\u8BAE")]),o("div",{class:e.protocolContent},[s("\u5446\u5934\u5446\u8111\u7684\u534F\u8BAE\u5185\u5BB9")])])]})])}});export{B as C};
+import{d as c,a as o,D as i,b as s,I as p,P as n}from"./vendor.8455490d.js";/* empty css               *//* empty css                */import{a as r,i as h}from"./icon_checkbox_default.2fe5d57e.js";const d="_colProtocol_1iira_1",m="_protocolText_1iira_6",f="_boxStyle_1iira_10";var e={colProtocol:d,protocolText:m,boxStyle:f},B=c({name:"protocol",props:{modelValue:{type:Boolean,default:!1}},data(){return{checked:!1,popupStatus:!1,protocolHTML:"",protocolPopup:null}},mounted(){this.checked=this.modelValue,window.addEventListener("hashchange",this.onHash,!1)},unmounted(){window.removeEventListener("hashchange",this.onHash,!1)},watch:{checked(t){this.$emit("update:modelValue",t)}},methods:{onHash(){this.popupStatus=!1},onPopupClose(){if(this.popupStatus=!this.popupStatus,this.popupStatus){const t=this.$route;let u=0;for(let x in t.query)u+=1;const l=window.location.href,a=u>0?"&pto="+ +new Date:"?pto="+ +new Date;history.pushState("","",`${l}${a}`)}else window.history.go(-1);this.protocolPopup&&(this.protocolPopup.scrollTop=0)}},render(){return o("div",{class:e.colProtocol},[o(i,{modelValue:this.checked,"onUpdate:modelValue":t=>this.checked=t},{default:()=>[s("\u6211\u5DF2\u9605\u8BFB\u5E76\u540C\u610F")],icon:t=>o(p,{class:e.boxStyle,name:t.checked?r:h,size:"15"},null)}),o("span",{onClick:this.onPopupClose,class:e.protocolText},[s("\u300A\u9177\u4E50\u79C0\u5E73\u53F0\u670D\u52A1\u534F\u8BAE\u300B")]),o(n,{ref:this.protocolPopup,show:this.popupStatus,position:"bottom",style:{height:"100%"}},{default:()=>[o("div",{class:e.protocolContent},[o("div",{class:e.protocolTitle},[s("\u9177\u4E50\u79C0\u5E73\u53F0\u670D\u52A1\u534F\u8BAE")]),o("div",{class:e.protocolContent},[s("\u5446\u5934\u5446\u8111\u7684\u534F\u8BAE\u5185\u5BB9")])])]})])}});export{B as C};

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

@@ -1 +0,0 @@
-import{d as a,a as e,q as s,b as r,B as t}from"./vendor.8455490d.js";/* empty css               */import{c as o,p as u}from"./vueFilter.14447004.js";const n="_f404_h02wy_1";var i={f404:n},d="./assets/404.91cd33be.png",f=a({name:"NotFound",render(){return e("div",{class:i.f404},[e(s,{src:d},null),e("p",null,[r("\u9875\u9762\u627E\u4E0D\u5230\u4E86")]),e(t,{type:"primary",plain:!0,round:!0,onClick:()=>{o().iPhone?u({api:"back"}):this.$router.back()}},{default:()=>[r("\u8FD4\u56DE")]})])}});export{f as default};

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


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


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


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


+ 0 - 1
dist/assets/index.cc4c0b27.css

@@ -1 +0,0 @@
-._subjects_1ijt0_1{padding:.4rem .4rem 2.13333rem}._subjects_1ijt0_1 ._title_1ijt0_4{padding:.32rem 0;color:#333;font-size:.42667rem}._subjects_1ijt0_1 ._title_1ijt0_4:before{content:" ";display:inline-block;width:.08rem;height:.42667rem;background:#2dc7aa;border-radius:.08rem;margin-right:.21333rem;vertical-align:text-bottom}._subjects_1ijt0_1 ._btn-group_1ijt0_19{position:fixed;bottom:0;left:0;right:0;margin:.32rem}._subjects_1ijt0_1 ._subject-list_1ijt0_26{display:flex;align-items:center;flex-wrap:wrap}._subjects_1ijt0_1 ._subject-list_1ijt0_26 ._subject-item_1ijt0_31{position:relative;width:2.88rem;height:2.88rem;margin-right:.26667rem;margin-bottom:.26667rem;border-radius:.18667rem;overflow:hidden}._subjects_1ijt0_1 ._subject-list_1ijt0_26 ._subject-item_1ijt0_31:nth-child(3n){margin-right:0}._subjects_1ijt0_1 ._subject-list_1ijt0_26 ._topBg_1ijt0_43{position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(180deg,rgba(0,0,0,0) 0%,rgba(0,0,0,.54) 100%)}._subjects_1ijt0_1 ._subject-list_1ijt0_26 ._checkbox_1ijt0_51{position:absolute;right:.18667rem;top:.18667rem}._subjects_1ijt0_1 ._subject-list_1ijt0_26 ._name_1ijt0_56{position:absolute;bottom:.18667rem;left:.18667rem;font-size:.42667rem;font-weight:500;color:#fff;line-height:.58667rem}._subjects_1ijt0_1 ._subject-list_1ijt0_26 .van-checkbox__icon,._subjects_1ijt0_1 ._subject-list_1ijt0_26 .van-radio__icon{height:.58667rem}._subjects_1ijt0_1 ._subject-list_1ijt0_26 .van-checkbox__icon .van-icon,._subjects_1ijt0_1 ._subject-list_1ijt0_26 .van-radio__icon .van-icon{border:0}._subjects_1ijt0_1 ._subject-list_1ijt0_26 .van-checkbox__icon--checked .van-icon,._subjects_1ijt0_1 ._subject-list_1ijt0_26 .van-radio__icon--checked .van-icon{background:transparent;border:transparent}

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


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


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


+ 0 - 1
dist/assets/index.f70e74fc.css

@@ -1 +0,0 @@
-._colProtocol_1pph9_1{font-size:.32rem;padding:.4rem .37333rem;color:#999}._colProtocol_1pph9_1 ._protocolText_1pph9_6{color:var(--van-primary);line-height:.4rem}._colProtocol_1pph9_1 ._boxStyle_1pph9_10{background:transparent;width:.4rem;height:.4rem;border:transparent}._colProtocol_1pph9_1 .van-checkbox{display:inline-block;align-items:inherit;overflow:inherit}._colProtocol_1pph9_1 .van-checkbox__icon{height:.4rem;line-height:.4rem;display:inline-block;vertical-align:sub}._colProtocol_1pph9_1 .van-checkbox__label{line-height:.4rem}

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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


+ 1 - 1
dist/assets/switch.70b8cedf.js → dist/assets/switch.1cd14c16.js

@@ -1 +1 @@
-import{d as a,a as t,B as l,b as u,w as n,x as d,z as o,A as i}from"./vendor.8455490d.js";/* empty css               *//* empty css               *//* empty css               *//* empty css               */import{r as c}from"./vueFilter.14447004.js";var h=a({name:"MusicListItem",props:{data:{type:Object,default:()=>null}},render(){return this.data?t("div",null,null):null}}),p={"list-contaner":"_list-contaner_v1ygs_1"};function f(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!d(e)}var s=a({name:"MusicList",props:{auditStatus:{type:Number,default:0}},data(){return{list:[],loading:!1,error:!1,finished:!1,page:1}},methods:{async FetchList(){this.loading=!0;try{const e=await c.post("/api-web/music/sheet/list",{data:{auditStatus:this.auditStatus}});e.data.length&&(this.list=this.list.concat(e.data))}catch{this.error=!0}this.loading=!1},toUpload(){this.$router.push({path:"/music-upload"})}},render(){let e;return t("div",{class:p["list-contaner"]},[t(l,{onClick:this.toUpload},{default:()=>[u("\u4E0A\u4F20\u66F2\u8C31")]}),t(n,{loading:this.loading,error:this.error,finished:this.finished,onLoad:this.FetchList},f(e=this.list.map(r=>t(h,{data:r},null)))?e:{default:()=>[e]})])}}),S=a({name:"MusicListSwitch",render(){return t("div",null,[t(o,null,{default:()=>[t(i,{title:"\u5DF2\u4E0A\u67B6"},{default:()=>[t(s,{auditStatus:0},null)]}),t(i,{title:"\u5BA1\u6838\u4E2D"},{default:()=>[t(s,{auditStatus:1},null)]}),t(i,{title:"\u5BA1\u6838\u5931\u8D25"},{default:()=>[t(s,{auditStatus:2},null)]})]})])}});export{S as default};
+import{d as a,a as t,B as l,b as u,w as n,x as d,z as o,A as i}from"./vendor.8455490d.js";/* empty css               *//* empty css               *//* empty css               *//* empty css               */import{r as c}from"./vueFilter.0fbb0cac.js";var h=a({name:"MusicListItem",props:{data:{type:Object,default:()=>null}},render(){return this.data?t("div",null,null):null}}),p={"list-contaner":"_list-contaner_v1ygs_1"};function f(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!d(e)}var s=a({name:"MusicList",props:{auditStatus:{type:Number,default:0}},data(){return{list:[],loading:!1,error:!1,finished:!1,page:1}},methods:{async FetchList(){this.loading=!0;try{const e=await c.post("/api-web/music/sheet/list",{data:{auditStatus:this.auditStatus}});e.data.length&&(this.list=this.list.concat(e.data))}catch{this.error=!0}this.loading=!1},toUpload(){this.$router.push({path:"/music-upload"})}},render(){let e;return t("div",{class:p["list-contaner"]},[t(l,{onClick:this.toUpload},{default:()=>[u("\u4E0A\u4F20\u66F2\u8C31")]}),t(n,{loading:this.loading,error:this.error,finished:this.finished,onLoad:this.FetchList},f(e=this.list.map(r=>t(h,{data:r},null)))?e:{default:()=>[e]})])}}),S=a({name:"MusicListSwitch",render(){return t("div",null,[t(o,null,{default:()=>[t(i,{title:"\u5DF2\u4E0A\u67B6"},{default:()=>[t(s,{auditStatus:0},null)]}),t(i,{title:"\u5BA1\u6838\u4E2D"},{default:()=>[t(s,{auditStatus:1},null)]}),t(i,{title:"\u5BA1\u6838\u5931\u8D25"},{default:()=>[t(s,{auditStatus:2},null)]})]})])}});export{S as default};

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


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


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


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


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


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
dist/assets/video-class-detail-legacy.5e1639c0.js


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


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


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


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


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


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


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


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


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


+ 6 - 6
dist/index.html

@@ -34,12 +34,12 @@
   <meta name="msapplication-tap-highlight" content="no">
   <title>酷乐秀</title>
   <script src="./flexible.js" charset="UTF-8"></script>
-  <script type="module" crossorigin src="./assets/index.9a217fdb.js"></script>
+  <script type="module" crossorigin src="./assets/index.8cc22d59.js"></script>
   <link rel="modulepreload" href="./assets/vendor.8455490d.js">
-  <link rel="modulepreload" href="./assets/vueFilter.14447004.js">
-  <link rel="stylesheet" href="./assets/vueFilter.af285593.css">
+  <link rel="modulepreload" href="./assets/vueFilter.0fbb0cac.js">
   <link rel="stylesheet" href="./assets/vendor.177057eb.css">
-  <link rel="stylesheet" href="./assets/teacher.c2cf0659.css">
+  <link rel="stylesheet" href="./assets/vueFilter.af285593.css">
+  <link rel="stylesheet" href="./assets/index.1defe979.css">
   <script type="module">!function(){try{new Function("m","return import(m)")}catch(o){console.warn("vite: loading legacy build because dynamic import is unsupported, syntax error above should be ignored");var e=document.getElementById("vite-legacy-polyfill"),n=document.createElement("script");n.src=e.src,n.onload=function(){System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))},document.body.appendChild(n)}}();</script>
 </head>
 
@@ -48,8 +48,8 @@
   
   <!-- <script type="module" src="/src/teacher/main.ts"></script> -->
   <script nomodule>!function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",(function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()}),!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();</script>
-  <script nomodule id="vite-legacy-polyfill" src="./assets/polyfills-legacy.27a76653.js"></script>
-  <script nomodule id="vite-legacy-entry" data-src="./assets/index-legacy.45de952b.js">System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))</script>
+  <script nomodule id="vite-legacy-polyfill" src="./assets/polyfills-legacy.f394899b.js"></script>
+  <script nomodule id="vite-legacy-entry" data-src="./assets/index-legacy.001104e5.js">System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))</script>
 </body>
 
 </html>

+ 6 - 6
dist/teacher.html

@@ -34,12 +34,12 @@
   <meta name="msapplication-tap-highlight" content="no">
   <title>酷乐秀</title>
   <script src="./flexible.js" charset="UTF-8"></script>
-  <script type="module" crossorigin src="./assets/teacher.7ccdac42.js"></script>
+  <script type="module" crossorigin src="./assets/teacher.5d9e3c85.js"></script>
   <link rel="modulepreload" href="./assets/vendor.8455490d.js">
-  <link rel="modulepreload" href="./assets/vueFilter.14447004.js">
-  <link rel="stylesheet" href="./assets/vendor.177057eb.css">
+  <link rel="modulepreload" href="./assets/vueFilter.0fbb0cac.js">
   <link rel="stylesheet" href="./assets/vueFilter.af285593.css">
-  <link rel="stylesheet" href="./assets/teacher.c2cf0659.css">
+  <link rel="stylesheet" href="./assets/vendor.177057eb.css">
+  <link rel="stylesheet" href="./assets/index.1defe979.css">
   <script type="module">!function(){try{new Function("m","return import(m)")}catch(o){console.warn("vite: loading legacy build because dynamic import is unsupported, syntax error above should be ignored");var e=document.getElementById("vite-legacy-polyfill"),n=document.createElement("script");n.src=e.src,n.onload=function(){System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))},document.body.appendChild(n)}}();</script>
 </head>
 
@@ -47,8 +47,8 @@
   <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 id="vite-legacy-polyfill" src="./assets/polyfills-legacy.27a76653.js"></script>
-  <script nomodule id="vite-legacy-entry" data-src="./assets/teacher-legacy.59aba6e8.js">System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))</script>
+  <script nomodule id="vite-legacy-polyfill" src="./assets/polyfills-legacy.f394899b.js"></script>
+  <script nomodule id="vite-legacy-entry" data-src="./assets/teacher-legacy.052cf68c.js">System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))</script>
 </body>
 
 </html>

+ 9 - 16
src/business-components/subject-list/index.module.less

@@ -1,8 +1,11 @@
 .subjects {
-  padding: 15px 15px 80px;
-
+  padding: 15px 0 0;
+  .subjectContainer {
+    min-height: calc(100vh - 95px);
+  }
   .title {
     padding: 12px 0;
+    margin: 0 15px;
     color: #333;
     font-size: 16px;
     &::before {
@@ -17,33 +20,23 @@
     }
   }
 
-  .btn-group {
-    position: fixed;
-    bottom: 0;
-    left: 0;
-    right: 0;
-    margin: 12px;
-    // background-color: #fff;
-  }
-
   .subject-list {
     display: flex;
     align-items: center;
     // justify-content: space-between;
+    // justify-content: center;
     flex-wrap: wrap;
+    padding: 0 10px;
 
     .subject-item {
       position: relative;
       width: 108px;
       height: 108px;
-      margin-right: 10px;
+      margin-right: 5px;
+      margin-left: 5px;
       margin-bottom: 10px;
       border-radius: 7px;
       overflow: hidden;
-
-      &:nth-child(3n) {
-        margin-right: 0;
-      }
     }
 
     .topBg {

+ 193 - 188
src/business-components/subject-list/index.tsx

@@ -6,7 +6,8 @@ import {
   Image,
   Loading,
   Radio,
-  RadioGroup
+  RadioGroup,
+  Sticky
 } from 'vant'
 import { defineComponent, PropType } from 'vue'
 import styles from './index.module.less'
@@ -69,212 +70,216 @@ export default defineComponent({
   render() {
     return (
       <div class={styles.subjects}>
-        {this.subjectList.length ? (
-          this.selectType === 'Checkbox' ? (
-            <CheckboxGroup v-model={this.checkBox} max={this.max}>
-              {!this.single &&
-                this.subjectList.map((item: any) =>
-                  item.subjects && item.subjects.length > 0 ? (
-                    <>
-                      <div class={styles.title}>{item.name}</div>
-                      <div class={styles['subject-list']}>
-                        {item.subjects &&
-                          item.subjects.map((sub: any) => (
-                            <div
-                              class={styles['subject-item']}
-                              onClick={() => this.onSelect(sub.id)}
-                            >
-                              <Image
-                                src={sub.img}
-                                width="100%"
-                                height="100%"
-                                fit="cover"
-                                v-slots={{
-                                  loading: () => (
-                                    <Loading type="spinner" size={20} />
-                                  )
-                                }}
-                              />
-                              <div class={styles.topBg}>
-                                <Checkbox
-                                  name={sub.id}
-                                  class={styles.checkbox}
-                                  disabled
-                                  ref={(el: any) =>
-                                    (this.checkboxRefs[sub.id] = el)
-                                  }
+        <div class={styles.subjectContainer}>
+          {this.subjectList.length ? (
+            this.selectType === 'Checkbox' ? (
+              <CheckboxGroup v-model={this.checkBox} max={this.max}>
+                {!this.single &&
+                  this.subjectList.map((item: any) =>
+                    item.subjects && item.subjects.length > 0 ? (
+                      <>
+                        <div class={styles.title}>{item.name}</div>
+                        <div class={styles['subject-list']}>
+                          {item.subjects &&
+                            item.subjects.map((sub: any) => (
+                              <div
+                                class={styles['subject-item']}
+                                onClick={() => this.onSelect(sub.id)}
+                              >
+                                <Image
+                                  src={sub.img}
+                                  width="100%"
+                                  height="100%"
+                                  fit="cover"
                                   v-slots={{
-                                    icon: (props: any) => (
-                                      <Icon
-                                        name={
-                                          props.checked
-                                            ? checkBoxActive
-                                            : checkBoxDefault
-                                        }
-                                        size="22"
-                                      />
+                                    loading: () => (
+                                      <Loading type="spinner" size={20} />
                                     )
                                   }}
                                 />
-                                <p class={styles.name}>{sub.name}</p>
+                                <div class={styles.topBg}>
+                                  <Checkbox
+                                    name={sub.id}
+                                    class={styles.checkbox}
+                                    disabled
+                                    ref={(el: any) =>
+                                      (this.checkboxRefs[sub.id] = el)
+                                    }
+                                    v-slots={{
+                                      icon: (props: any) => (
+                                        <Icon
+                                          name={
+                                            props.checked
+                                              ? checkBoxActive
+                                              : checkBoxDefault
+                                          }
+                                          size="22"
+                                        />
+                                      )
+                                    }}
+                                  />
+                                  <p class={styles.name}>{sub.name}</p>
+                                </div>
                               </div>
-                            </div>
-                          ))}
-                      </div>
-                    </>
-                  ) : null
-                )}
-              {this.single ? (
-                <div class={styles['subject-list']}>
-                  {this.subjectList.map((item: any) => (
-                    <div
-                      class={styles['subject-item']}
-                      onClick={() => this.onSelect(item.id)}
-                    >
-                      <Image
-                        src={item.img}
-                        width="100%"
-                        height="100%"
-                        fit="cover"
-                        v-slots={{
-                          loading: () => <Loading type="spinner" size={20} />
-                        }}
-                      />
-                      <div class={styles.topBg}>
-                        <Checkbox
-                          name={item.id}
-                          class={styles.checkbox}
-                          disabled
-                          ref={(el: any) => (this.checkboxRefs[item.id] = el)}
+                            ))}
+                        </div>
+                      </>
+                    ) : null
+                  )}
+                {this.single ? (
+                  <div class={styles['subject-list']}>
+                    {this.subjectList.map((item: any) => (
+                      <div
+                        class={styles['subject-item']}
+                        onClick={() => this.onSelect(item.id)}
+                      >
+                        <Image
+                          src={item.img}
+                          width="100%"
+                          height="100%"
+                          fit="cover"
                           v-slots={{
-                            icon: (props: any) => (
-                              <Icon
-                                name={
-                                  props.checked
-                                    ? checkBoxActive
-                                    : checkBoxDefault
-                                }
-                                size="22"
-                              />
-                            )
+                            loading: () => <Loading type="spinner" size={20} />
                           }}
                         />
-                        <p class={styles.name}>{item.name}</p>
+                        <div class={styles.topBg}>
+                          <Checkbox
+                            name={item.id}
+                            class={styles.checkbox}
+                            disabled
+                            ref={(el: any) => (this.checkboxRefs[item.id] = el)}
+                            v-slots={{
+                              icon: (props: any) => (
+                                <Icon
+                                  name={
+                                    props.checked
+                                      ? checkBoxActive
+                                      : checkBoxDefault
+                                  }
+                                  size="22"
+                                />
+                              )
+                            }}
+                          />
+                          <p class={styles.name}>{item.name}</p>
+                        </div>
                       </div>
-                    </div>
-                  ))}
-                </div>
-              ) : null}
-            </CheckboxGroup>
-          ) : (
-            <RadioGroup v-model={this.radio}>
-              {!this.single &&
-                this.subjectList.map((item: any) =>
-                  item.subjects && item.subjects.length > 0 ? (
-                    <>
-                      <div class={styles.title}>{item.name}</div>
-                      <div class={styles['subject-list']}>
-                        {item.subjects &&
-                          item.subjects.map((sub: any) => (
-                            <div
-                              class={styles['subject-item']}
-                              onClick={() => this.onSelect(sub.id)}
-                            >
-                              <Image
-                                src={sub.img}
-                                width="100%"
-                                height="100%"
-                                fit="cover"
-                                v-slots={{
-                                  loading: () => (
-                                    <Loading type="spinner" size={20} />
-                                  )
-                                }}
-                              />
-                              <div class={styles.topBg}>
-                                <Radio
-                                  name={sub.id}
-                                  class={styles.checkbox}
+                    ))}
+                  </div>
+                ) : null}
+              </CheckboxGroup>
+            ) : (
+              <RadioGroup v-model={this.radio}>
+                {!this.single &&
+                  this.subjectList.map((item: any) =>
+                    item.subjects && item.subjects.length > 0 ? (
+                      <>
+                        <div class={styles.title}>{item.name}</div>
+                        <div class={styles['subject-list']}>
+                          {item.subjects &&
+                            item.subjects.map((sub: any) => (
+                              <div
+                                class={styles['subject-item']}
+                                onClick={() => this.onSelect(sub.id)}
+                              >
+                                <Image
+                                  src={sub.img}
+                                  width="100%"
+                                  height="100%"
+                                  fit="cover"
                                   v-slots={{
-                                    icon: (props: any) => (
-                                      <Icon
-                                        name={
-                                          props.checked
-                                            ? checkBoxActive
-                                            : checkBoxDefault
-                                        }
-                                        size="22"
-                                      />
+                                    loading: () => (
+                                      <Loading type="spinner" size={20} />
                                     )
                                   }}
                                 />
-                                <p class={styles.name}>{sub.name}</p>
+                                <div class={styles.topBg}>
+                                  <Radio
+                                    name={sub.id}
+                                    class={styles.checkbox}
+                                    v-slots={{
+                                      icon: (props: any) => (
+                                        <Icon
+                                          name={
+                                            props.checked
+                                              ? checkBoxActive
+                                              : checkBoxDefault
+                                          }
+                                          size="22"
+                                        />
+                                      )
+                                    }}
+                                  />
+                                  <p class={styles.name}>{sub.name}</p>
+                                </div>
                               </div>
-                            </div>
-                          ))}
-                      </div>
-                    </>
-                  ) : null
-                )}
-              {this.single ? (
-                <div class={styles['subject-list']}>
-                  {this.subjectList.map((item: any) => (
-                    <div
-                      class={styles['subject-item']}
-                      onClick={() => this.onSelect(item.id)}
-                    >
-                      <Image
-                        src={item.img}
-                        width="100%"
-                        height="100%"
-                        fit="cover"
-                        v-slots={{
-                          loading: () => <Loading type="spinner" size={20} />
-                        }}
-                      />
-                      <div class={styles.topBg}>
-                        <Radio
-                          name={item.id}
-                          class={styles.checkbox}
+                            ))}
+                        </div>
+                      </>
+                    ) : null
+                  )}
+                {this.single ? (
+                  <div class={styles['subject-list']}>
+                    {this.subjectList.map((item: any) => (
+                      <div
+                        class={styles['subject-item']}
+                        onClick={() => this.onSelect(item.id)}
+                      >
+                        <Image
+                          src={item.img}
+                          width="100%"
+                          height="100%"
+                          fit="cover"
                           v-slots={{
-                            icon: (props: any) => (
-                              <Icon
-                                name={
-                                  props.checked
-                                    ? checkBoxActive
-                                    : checkBoxDefault
-                                }
-                                size="22"
-                              />
-                            )
+                            loading: () => <Loading type="spinner" size={20} />
                           }}
                         />
-                        <p class={styles.name}>{item.name}</p>
+                        <div class={styles.topBg}>
+                          <Radio
+                            name={item.id}
+                            class={styles.checkbox}
+                            v-slots={{
+                              icon: (props: any) => (
+                                <Icon
+                                  name={
+                                    props.checked
+                                      ? checkBoxActive
+                                      : checkBoxDefault
+                                  }
+                                  size="22"
+                                />
+                              )
+                            }}
+                          />
+                          <p class={styles.name}>{item.name}</p>
+                        </div>
                       </div>
-                    </div>
-                  ))}
-                </div>
-              ) : null}
-            </RadioGroup>
-          )
-        ) : (
-          <ColResult tips="暂无声部数据" btnStatus={false} />
-        )}
-
-        <div class={styles['btn-group']}>
-          <Button
-            round
-            block
-            type="primary"
-            onClick={() =>
-              this.onChoice(
-                this.selectType === 'Checkbox' ? this.checkBox : this.radio
-              )
-            }
-          >
-            确定
-          </Button>
+                    ))}
+                  </div>
+                ) : null}
+              </RadioGroup>
+            )
+          ) : (
+            <ColResult tips="暂无声部数据" btnStatus={false} />
+          )}
         </div>
+
+        <Sticky offsetBottom={0} position="bottom">
+          <div class={'btnGroup'}>
+            <Button
+              round
+              block
+              type="primary"
+              onClick={() =>
+                this.onChoice(
+                  this.selectType === 'Checkbox' ? this.checkBox : this.radio
+                )
+              }
+            >
+              确定
+            </Button>
+          </div>
+        </Sticky>
       </div>
     )
   }

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