lex 2 yıl önce
ebeveyn
işleme
54f073b0a0
88 değiştirilmiş dosya ile 950 ekleme ve 71 silme
  1. 0 0
      dist/assets/icon_upload-legacy.e1b38fd3.js
  2. 0 0
      dist/assets/icon_upload.dcbc1f75.js
  3. 0 0
      dist/assets/index-legacy.0bd20167.js
  4. 0 0
      dist/assets/index-legacy.0dba9d84.js
  5. 0 0
      dist/assets/index-legacy.179a018d.js
  6. 0 0
      dist/assets/index-legacy.1e504323.js
  7. 0 0
      dist/assets/index-legacy.1fb64305.js
  8. 0 0
      dist/assets/index-legacy.29737b64.js
  9. 1 1
      dist/assets/index-legacy.3e02bc27.js
  10. 0 0
      dist/assets/index-legacy.4504839d.js
  11. 0 0
      dist/assets/index-legacy.45cd1fe4.js
  12. 0 0
      dist/assets/index-legacy.56bb299e.js
  13. 0 0
      dist/assets/index-legacy.58826cb9.js
  14. 1 1
      dist/assets/index-legacy.5b0b232b.js
  15. 0 0
      dist/assets/index-legacy.6d7c56e7.js
  16. 0 0
      dist/assets/index-legacy.77a01f78.js
  17. 0 0
      dist/assets/index-legacy.7fc86ee8.js
  18. 0 0
      dist/assets/index-legacy.823f9a66.js
  19. 0 0
      dist/assets/index-legacy.b04f5e20.js
  20. 0 0
      dist/assets/index-legacy.cb73b98d.js
  21. 0 0
      dist/assets/index-legacy.cbcf69a8.js
  22. 0 0
      dist/assets/index-legacy.d4b596ab.js
  23. 0 0
      dist/assets/index-legacy.d5124e3d.js
  24. 1 1
      dist/assets/index-legacy.f019e096.js
  25. 0 0
      dist/assets/index.01f0e8e6.js
  26. 1 1
      dist/assets/index.0987f156.js
  27. 0 0
      dist/assets/index.0e8e6725.js
  28. 0 0
      dist/assets/index.11b9bc6d.js
  29. 0 0
      dist/assets/index.19b2193b.js
  30. 0 0
      dist/assets/index.21016eca.js
  31. 0 0
      dist/assets/index.27b924ac.js
  32. 0 0
      dist/assets/index.2b3713cb.js
  33. 0 0
      dist/assets/index.37973e14.css
  34. 0 0
      dist/assets/index.4393207b.js
  35. 0 0
      dist/assets/index.43e32bd1.js
  36. 1 1
      dist/assets/index.4558bde5.js
  37. 0 0
      dist/assets/index.47e9cbbb.js
  38. 0 0
      dist/assets/index.52f16f05.css
  39. 0 0
      dist/assets/index.5c852c72.js
  40. 0 1
      dist/assets/index.5d291a3f.css
  41. 0 0
      dist/assets/index.6b7bbcf7.js
  42. 1 0
      dist/assets/index.6e53a27d.css
  43. 0 1
      dist/assets/index.7365836d.js
  44. 0 0
      dist/assets/index.740e7a38.js
  45. 0 0
      dist/assets/index.85e4ebae.js
  46. 0 0
      dist/assets/index.8852aef5.js
  47. 0 0
      dist/assets/index.abb1a41d.js
  48. 0 0
      dist/assets/index.b22694dc.js
  49. 1 0
      dist/assets/index.bd36d846.js
  50. 0 0
      dist/assets/index.c3ed4822.js
  51. 0 0
      dist/assets/index.c9bac888.js
  52. 1 1
      dist/assets/index.d4b02ecc.js
  53. 0 0
      dist/assets/index.dedf3efa.css
  54. 0 0
      dist/assets/index.f4ede994.js
  55. 0 0
      dist/assets/index.f5a2a3f4.js
  56. 0 0
      dist/assets/index.faea6221.js
  57. 0 1
      dist/assets/index.fc24e43a.css
  58. 0 0
      dist/assets/index.fc6286d2.js
  59. 1 0
      dist/assets/index.fe07eb52.css
  60. 0 0
      dist/assets/polyfills-legacy.ff5cd7b0.js
  61. 0 0
      dist/assets/scrollbar.min-legacy.430c8947.js
  62. 0 0
      dist/assets/scrollbar.min.afb0ed75.js
  63. 0 0
      dist/assets/searchdetail-legacy.331a7dcc.js
  64. 1 1
      dist/assets/searchdetail.d9fbec74.js
  65. 0 0
      dist/assets/swiper-slide-legacy.3f4d9d93.js
  66. 0 0
      dist/assets/swiper-slide.09b09ef7.js
  67. 0 0
      dist/assets/swiper-slide.5dd3e5b6.js
  68. 0 0
      dist/assets/vendor-legacy.706cb271.js
  69. 0 0
      dist/assets/vendor.b3a685a0.js
  70. 5 5
      dist/index.html
  71. 2 2
      package-lock.json
  72. 268 0
      src/components/col-cropper/cropper.tsx
  73. 85 0
      src/components/col-cropper/index.module.less
  74. 189 0
      src/components/col-cropper/index.tsx
  75. 22 12
      src/components/col-header/index.tsx
  76. BIN
      src/components/col-upload/images/icon_rate.png
  77. 2 2
      src/components/col-upload/index.module.less
  78. 1 1
      src/components/col-upload/index.tsx
  79. 10 1
      src/components/musicLIstItem/index.tsx
  80. 0 2
      src/views/user-info/components/user-menu/index.tsx
  81. 1 1
      src/views/user-info/components/users/index.tsx
  82. 3 1
      src/views/user-info/music-class/index.tsx
  83. 15 0
      src/views/user-info/music-class/list.tsx
  84. 17 1
      src/views/user-info/music-operation/index.module.less
  85. 254 15
      src/views/user-info/music-operation/index.tsx
  86. 61 13
      src/views/user-info/video-operation/course-info/index.tsx
  87. 4 4
      src/views/user-info/video-operation/index.tsx
  88. 1 1
      yarn.lock

Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/assets/icon_upload-legacy.e1b38fd3.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/assets/icon_upload.dcbc1f75.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/assets/index-legacy.0bd20167.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/assets/index-legacy.0dba9d84.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/assets/index-legacy.179a018d.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/assets/index-legacy.1e504323.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/assets/index-legacy.1fb64305.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/assets/index-legacy.29737b64.js


+ 1 - 1
dist/assets/index-legacy.c35609c7.js → dist/assets/index-legacy.3e02bc27.js

@@ -1,4 +1,4 @@
-;(function(){function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value;}catch(error){reject(error);return;}if(info.done){resolve(value);}else{Promise.resolve(value).then(_next,_throw);}}function _asyncToGenerator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value);}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err);}_next(undefined);});};}var __vite_style__=document.createElement('style');__vite_style__.innerHTML="._liveClass_kwizm_1 .el-tabs__nav-wrap{padding-left:2.75rem;padding-right:2.75rem}._liveClass_kwizm_1 .el-tabs__item{height:64px;line-height:64px;padding:0 42px}._liveClass_kwizm_1 .el-tabs__nav-wrap:after{height:1px;background:#eeeeee}\n";document.head.appendChild(__vite_style__);System.register(['./index-legacy.a5ce9255.js','./index-legacy.4504839d.js','./index-legacy.7639e914.js','./vendor-legacy.6c99da57.js','./icon_teacher-legacy.51535f30.js'],function(exports){'use strict';var Pagination,ColEmpty,request,Item,defineComponent,createVNode,Fragment,ElSkeleton,ElSkeletonItem,ElButton,createTextVNode,ElTabs,ElTabPane;return{setters:[function(module){Pagination=module.P;ColEmpty=module.C;},function(module){request=module.r;},function(module){Item=module.I;},function(module){defineComponent=module.d;createVNode=module.c;Fragment=module.F;ElSkeleton=module.a4;ElSkeletonItem=module.a5;ElButton=module.f;createTextVNode=module.a;ElTabs=module.q;ElTabPane=module.t;},function(){}],execute:function execute(){var liveClass="_liveClass_kwizm_1";var styles={liveClass:liveClass};var List=defineComponent({name:'list',props:{groupStatus:{type:String,default:''}},data:function data(){return{pageInfo:{// 分页规则
+;(function(){function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value;}catch(error){reject(error);return;}if(info.done){resolve(value);}else{Promise.resolve(value).then(_next,_throw);}}function _asyncToGenerator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value);}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err);}_next(undefined);});};}var __vite_style__=document.createElement('style');__vite_style__.innerHTML="._liveClass_kwizm_1 .el-tabs__nav-wrap{padding-left:2.75rem;padding-right:2.75rem}._liveClass_kwizm_1 .el-tabs__item{height:64px;line-height:64px;padding:0 42px}._liveClass_kwizm_1 .el-tabs__nav-wrap:after{height:1px;background:#eeeeee}\n";document.head.appendChild(__vite_style__);System.register(['./index-legacy.0dba9d84.js','./index-legacy.77a01f78.js','./index-legacy.f019e096.js','./vendor-legacy.706cb271.js','./icon_teacher-legacy.51535f30.js'],function(exports){'use strict';var Pagination,ColEmpty,request,Item,defineComponent,createVNode,Fragment,ElSkeleton,ElSkeletonItem,ElButton,createTextVNode,ElTabs,ElTabPane;return{setters:[function(module){Pagination=module.P;ColEmpty=module.C;},function(module){request=module.r;},function(module){Item=module.I;},function(module){defineComponent=module.d;createVNode=module.c;Fragment=module.F;ElSkeleton=module.a4;ElSkeletonItem=module.a5;ElButton=module.f;createTextVNode=module.a;ElTabs=module.q;ElTabPane=module.t;},function(){}],execute:function execute(){var liveClass="_liveClass_kwizm_1";var styles={liveClass:liveClass};var List=defineComponent({name:'list',props:{groupStatus:{type:String,default:''}},data:function data(){return{pageInfo:{// 分页规则
 limit:10,// 限制显示条数
 page:1,// 当前页
 total:0,// 总条数

Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/assets/index-legacy.4504839d.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/assets/index-legacy.45cd1fe4.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/assets/index-legacy.56bb299e.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/assets/index-legacy.58826cb9.js


+ 1 - 1
dist/assets/index-legacy.2f3d7a8d.js → dist/assets/index-legacy.5b0b232b.js

@@ -1,4 +1,4 @@
-;(function(){function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value;}catch(error){reject(error);return;}if(info.done){resolve(value);}else{Promise.resolve(value).then(_next,_throw);}}function _asyncToGenerator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value);}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err);}_next(undefined);});};}var __vite_style__=document.createElement('style');__vite_style__.innerHTML="._liveClass_kwizm_1 .el-tabs__nav-wrap{padding-left:2.75rem;padding-right:2.75rem}._liveClass_kwizm_1 .el-tabs__item{height:64px;line-height:64px;padding:0 42px}._liveClass_kwizm_1 .el-tabs__nav-wrap:after{height:1px;background:#eeeeee}\n";document.head.appendChild(__vite_style__);System.register(['./index-legacy.a5ce9255.js','./index-legacy.4504839d.js','./index-legacy.7639e914.js','./vendor-legacy.6c99da57.js','./icon_teacher-legacy.51535f30.js'],function(exports){'use strict';var Pagination,ColEmpty,request,state,Item,defineComponent,createVNode,Fragment,ElSkeleton,ElSkeletonItem,ElButton,createTextVNode,ElTabs,ElTabPane;return{setters:[function(module){Pagination=module.P;ColEmpty=module.C;},function(module){request=module.r;state=module.a;},function(module){Item=module.I;},function(module){defineComponent=module.d;createVNode=module.c;Fragment=module.F;ElSkeleton=module.a4;ElSkeletonItem=module.a5;ElButton=module.f;createTextVNode=module.a;ElTabs=module.q;ElTabPane=module.t;},function(){}],execute:function execute(){var liveClass="_liveClass_kwizm_1";var styles={liveClass:liveClass};var List=defineComponent({name:'list',props:{auditStatus:{type:String,default:''}},data:function data(){return{pageInfo:{// 分页规则
+;(function(){function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value;}catch(error){reject(error);return;}if(info.done){resolve(value);}else{Promise.resolve(value).then(_next,_throw);}}function _asyncToGenerator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value);}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err);}_next(undefined);});};}var __vite_style__=document.createElement('style');__vite_style__.innerHTML="._liveClass_kwizm_1 .el-tabs__nav-wrap{padding-left:2.75rem;padding-right:2.75rem}._liveClass_kwizm_1 .el-tabs__item{height:64px;line-height:64px;padding:0 42px}._liveClass_kwizm_1 .el-tabs__nav-wrap:after{height:1px;background:#eeeeee}\n";document.head.appendChild(__vite_style__);System.register(['./index-legacy.0dba9d84.js','./index-legacy.77a01f78.js','./index-legacy.f019e096.js','./vendor-legacy.706cb271.js','./icon_teacher-legacy.51535f30.js'],function(exports){'use strict';var Pagination,ColEmpty,request,state,Item,defineComponent,createVNode,Fragment,ElSkeleton,ElSkeletonItem,ElButton,createTextVNode,ElTabs,ElTabPane;return{setters:[function(module){Pagination=module.P;ColEmpty=module.C;},function(module){request=module.r;state=module.a;},function(module){Item=module.I;},function(module){defineComponent=module.d;createVNode=module.c;Fragment=module.F;ElSkeleton=module.a4;ElSkeletonItem=module.a5;ElButton=module.f;createTextVNode=module.a;ElTabs=module.q;ElTabPane=module.t;},function(){}],execute:function execute(){var liveClass="_liveClass_kwizm_1";var styles={liveClass:liveClass};var List=defineComponent({name:'list',props:{auditStatus:{type:String,default:''}},data:function data(){return{pageInfo:{// 分页规则
 limit:10,// 限制显示条数
 page:1,// 当前页
 total:0,// 总条数

Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/assets/index-legacy.6d7c56e7.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/assets/index-legacy.77a01f78.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/assets/index-legacy.7fc86ee8.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/assets/index-legacy.823f9a66.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/assets/index-legacy.b04f5e20.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/assets/index-legacy.cb73b98d.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/assets/index-legacy.cbcf69a8.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/assets/index-legacy.d4b596ab.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/assets/index-legacy.d5124e3d.js


+ 1 - 1
dist/assets/index-legacy.7639e914.js → dist/assets/index-legacy.f019e096.js

@@ -1 +1 @@
-;(function(){System.register(['./icon_teacher-legacy.51535f30.js','./vendor-legacy.6c99da57.js'],function(exports){'use strict';var iconTeacher,defineComponent,createVNode,ElImage,createTextVNode;return{setters:[function(module){iconTeacher=module.i;},function(module){defineComponent=module.d;createVNode=module.c;ElImage=module.l;createTextVNode=module.a;}],execute:function execute(){var Item=exports('I',defineComponent({name:'item',props:{item:{type:Object,default:function _default(){return{};}}},render:function render(){var item=this.item;return createVNode("div",{"class":"border border-[#f5f5f5] rounded-sm w-[262px] h-[302px] m-auto overflow-hidden relative hover:shadow-md transition-all"},[item.subjectName&&createVNode("div",{"class":"absolute top-2 right-3 bg-black/40 text-white text-sm rounded-sm px-3 h-7 flex items-center justify-center z-10"},[item.subjectName]),createVNode(ElImage,{"class":"w-full h-[175px] align-middle","fit":"cover","src":item.backgroundPic},null),createVNode("div",{"class":"mx-2.5 py-3.5 border-b border-b-[#F2F2F2]"},[createVNode("div",{"class":"text-lg leading-none font-medium whitespace-nowrap overflow-hidden text-ellipsis"},[item.courseGroupName]),createVNode("div",{"class":"text-sm text-[#999] pt-2.5"},[item.studentCount,createTextVNode("\u4EBA\u5DF2\u8D2D\u4E70")])]),createVNode("div",{"class":"mx-2.5 py-4 flex items-center justify-between"},[createVNode("div",{"class":"flex items-center"},[createVNode(ElImage,{"class":"w-[22px] h-[22px] align-middle rounded-full overflow-hidden mr-2","object-fit":"cover","src":item.avatar||iconTeacher},null),createVNode("span",null,[item.teacherName])]),createVNode("div",{"class":"font-medium text-[15px] leading-5 text-[#2DC7AA]"},[createTextVNode("\uFFE5"),item.coursePrice,createTextVNode("/"),item.courseNum,createTextVNode("\u8BFE\u65F6")])])]);}}));}};});})();
+;(function(){System.register(['./icon_teacher-legacy.51535f30.js','./vendor-legacy.706cb271.js'],function(exports){'use strict';var iconTeacher,defineComponent,createVNode,ElImage,createTextVNode;return{setters:[function(module){iconTeacher=module.i;},function(module){defineComponent=module.d;createVNode=module.c;ElImage=module.l;createTextVNode=module.a;}],execute:function execute(){var Item=exports('I',defineComponent({name:'item',props:{item:{type:Object,default:function _default(){return{};}}},render:function render(){var item=this.item;return createVNode("div",{"class":"border border-[#f5f5f5] rounded-sm w-[262px] h-[302px] m-auto overflow-hidden relative hover:shadow-md transition-all"},[item.subjectName&&createVNode("div",{"class":"absolute top-2 right-3 bg-black/40 text-white text-sm rounded-sm px-3 h-7 flex items-center justify-center z-10"},[item.subjectName]),createVNode(ElImage,{"class":"w-full h-[175px] align-middle","fit":"cover","src":item.backgroundPic},null),createVNode("div",{"class":"mx-2.5 py-3.5 border-b border-b-[#F2F2F2]"},[createVNode("div",{"class":"text-lg leading-none font-medium whitespace-nowrap overflow-hidden text-ellipsis"},[item.courseGroupName]),createVNode("div",{"class":"text-sm text-[#999] pt-2.5"},[item.studentCount,createTextVNode("\u4EBA\u5DF2\u8D2D\u4E70")])]),createVNode("div",{"class":"mx-2.5 py-4 flex items-center justify-between"},[createVNode("div",{"class":"flex items-center"},[createVNode(ElImage,{"class":"w-[22px] h-[22px] align-middle rounded-full overflow-hidden mr-2","object-fit":"cover","src":item.avatar||iconTeacher},null),createVNode("span",null,[item.teacherName])]),createVNode("div",{"class":"font-medium text-[15px] leading-5 text-[#2DC7AA]"},[createTextVNode("\uFFE5"),item.coursePrice,createTextVNode("/"),item.courseNum,createTextVNode("\u8BFE\u65F6")])])]);}}));}};});})();

Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/assets/index.01f0e8e6.js


+ 1 - 1
dist/assets/index.623b3ad5.js → dist/assets/index.0987f156.js

@@ -1 +1 @@
-import{d as a,c as t,f as i,a6 as l}from"./vendor.2305d70d.js";var o="./assets/icon_empty.df5db7bf.png",p=a({name:"col-empty",props:{message:{type:String,default:"\u6682\u65E0\u6570\u636E"},buttonText:{type:String,default:"\u53BB\u9996\u9875"},buttonVisibility:{type:Boolean,default:!1}},render(){return t("div",{class:"w-full h-full text-center flex items-center justify-center flex-col"},[t("img",{src:o,class:"w-64 m-auto"},null),t("p",{class:"text-base text-[#999999] pt-4 pb-6"},[this.message]),this.buttonVisibility&&t(i,{type:"primary",class:"rounded-sm !px-12",style:{height:"38px"}},{default:()=>[this.buttonText]})])}});const s="_hidden_8qru8_9";var n={"pagination-container":"_pagination-container_8qru8_1",hidden:s},u=a({name:"pagination",props:{total:{required:!0,type:Number},page:{type:Number,default:1},limit:{type:Number,default:10},pageSizes:{type:Array,default:[10,20,30,50]},layout:{type:String,default:"total, sizes, prev, pager, next, jumper"},background:{type:Boolean,default:!0},autoScroll:{type:Boolean,default:!0},hidden:{type:Boolean,default:!1},sync:{type:Boolean,default:!1},saveKey:{type:String,default:""},pagination:{type:Function,default:()=>{}}},methods:{handleSizeChange(e){console.log(e,"headleSizeChange"),this.$emit("update:page",1),this.$emit("update:limit",e),this.pagination(),this.autoScroll&&scrollTo(0,800)},handleCurrentChange(e){console.log(e,"val"),this.autoScroll&&scrollTo(0,800)}},render(){return t("div",{class:[n["pagination-container"],this.hidden&&n.hidden]},[t(l,{currentPage:this.page,"onUpdate:currentPage":e=>this.page=e,pageSize:this.limit,"onUpdate:pageSize":e=>{this.handleSizeChange(e)},pageSizes:this.pageSizes,total:this.total,hideOnSinglePage:!0,background:!0,layout:"total, sizes, prev, pager, next, jumper","onSise-change":this.handleSizeChange,"onCurrent-change":this.handleCurrentChange},null)])}});export{p as C,u as P};
+import{d as a,c as t,f as i,a6 as l}from"./vendor.b3a685a0.js";var o="./assets/icon_empty.df5db7bf.png",p=a({name:"col-empty",props:{message:{type:String,default:"\u6682\u65E0\u6570\u636E"},buttonText:{type:String,default:"\u53BB\u9996\u9875"},buttonVisibility:{type:Boolean,default:!1}},render(){return t("div",{class:"w-full h-full text-center flex items-center justify-center flex-col"},[t("img",{src:o,class:"w-64 m-auto"},null),t("p",{class:"text-base text-[#999999] pt-4 pb-6"},[this.message]),this.buttonVisibility&&t(i,{type:"primary",class:"rounded-sm !px-12",style:{height:"38px"}},{default:()=>[this.buttonText]})])}});const s="_hidden_8qru8_9";var n={"pagination-container":"_pagination-container_8qru8_1",hidden:s},u=a({name:"pagination",props:{total:{required:!0,type:Number},page:{type:Number,default:1},limit:{type:Number,default:10},pageSizes:{type:Array,default:[10,20,30,50]},layout:{type:String,default:"total, sizes, prev, pager, next, jumper"},background:{type:Boolean,default:!0},autoScroll:{type:Boolean,default:!0},hidden:{type:Boolean,default:!1},sync:{type:Boolean,default:!1},saveKey:{type:String,default:""},pagination:{type:Function,default:()=>{}}},methods:{handleSizeChange(e){console.log(e,"headleSizeChange"),this.$emit("update:page",1),this.$emit("update:limit",e),this.pagination(),this.autoScroll&&scrollTo(0,800)},handleCurrentChange(e){console.log(e,"val"),this.autoScroll&&scrollTo(0,800)}},render(){return t("div",{class:[n["pagination-container"],this.hidden&&n.hidden]},[t(l,{currentPage:this.page,"onUpdate:currentPage":e=>this.page=e,pageSize:this.limit,"onUpdate:pageSize":e=>{this.handleSizeChange(e)},pageSizes:this.pageSizes,total:this.total,hideOnSinglePage:!0,background:!0,layout:"total, sizes, prev, pager, next, jumper","onSise-change":this.handleSizeChange,"onCurrent-change":this.handleCurrentChange},null)])}});export{p as C,u as P};

Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/assets/index.0e8e6725.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/assets/index.11b9bc6d.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/assets/index.19b2193b.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/assets/index.21016eca.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/assets/index.27b924ac.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/assets/index.2b3713cb.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/assets/index.37973e14.css


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/assets/index.4393207b.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/assets/index.43e32bd1.js


+ 1 - 1
dist/assets/index.981954ef.js → dist/assets/index.4558bde5.js

@@ -1 +1 @@
-import{r as n}from"./index.21016eca.js";import{d as i,r,u as _,c as e,F as p,k as u,O as d,P as a,f as y}from"./vendor.2305d70d.js";const v="_mySwiper_yyv5o_1",m="_title_yyv5o_7",w="_w1200_yyv5o_11",b="_section_yyv5o_15",h="_hotAlbum_yyv5o_18",S="_titleWrap_yyv5o_25",g="_dotImg_yyv5o_33",j="_albumList_yyv5o_44",f="_videoList_yyv5o_52",L="_videoNav_yyv5o_59",W="_wrapRight_yyv5o_72",I="_arrow_yyv5o_80";var O={mySwiper:v,"swiper-slide":"_swiper-slide_yyv5o_4",title:m,w1200:w,section:b,hotAlbum:h,titleWrap:S,dotImg:g,albumList:j,videoList:f,videoNav:L,wrapRight:W,arrow:I};const q="_wrap_1q257_1",x="_inputSelect_1q257_4",A="_selectWrap_1q257_113",N="_line_1q257_118";var l={wrap:q,inputSelect:x,selectWrap:A,line:N},C=i({name:"searchInput",props:{title:{type:String,default:""}},setup(o,V){const s=r({title:o.title,search:"",subject:"",subjectList:[]}),c=async()=>{try{const t=await n.get("/api-website/open/subject/subjectSelect",{});s.subjectList=t.data}catch(t){console.log(t)}};return _(()=>{c()}),()=>e(p,null,[e("div",{class:l.wrap},[e(u,{modelValue:s.search,"onUpdate:modelValue":t=>s.search=t,placeholder:"\u641C\u4E00\u641C\u4F60\u60F3\u7EC3\u4E60\u7684\u66F2\u76EE",class:l.inputSelect},{prepend:()=>e("div",{class:l.selectWrap},[e(d,{modelValue:s.subject,"onUpdate:modelValue":t=>s.subject=t,placeholder:"\u8BF7\u9009\u62E9\u58F0\u90E8",style:"width: 115px","popper-class":"subSelect"},{default:()=>[e(a,{label:"Restaurant",value:"1"},null),e(a,{label:"Order No.",value:"2"},null),e(a,{label:"Tel",value:"3"},null)],suffix:()=>e("div",{class:l.san},null)}),e("div",{class:l.line},null)]),append:()=>e(y,{style:{color:"#2DC7AA",font:"20px"},icon:"Search"},null)})])])}});export{O as a,C as s};
+import{r as n}from"./index.b22694dc.js";import{d as i,r,u as _,c as e,F as p,k as u,P as d,S as a,f as y}from"./vendor.b3a685a0.js";const v="_mySwiper_yyv5o_1",m="_title_yyv5o_7",b="_w1200_yyv5o_11",w="_section_yyv5o_15",h="_hotAlbum_yyv5o_18",S="_titleWrap_yyv5o_25",g="_dotImg_yyv5o_33",j="_albumList_yyv5o_44",f="_videoList_yyv5o_52",L="_videoNav_yyv5o_59",W="_wrapRight_yyv5o_72",I="_arrow_yyv5o_80";var C={mySwiper:v,"swiper-slide":"_swiper-slide_yyv5o_4",title:m,w1200:b,section:w,hotAlbum:h,titleWrap:S,dotImg:g,albumList:j,videoList:f,videoNav:L,wrapRight:W,arrow:I};const q="_wrap_1q257_1",x="_inputSelect_1q257_4",A="_selectWrap_1q257_113",N="_line_1q257_118";var l={wrap:q,inputSelect:x,selectWrap:A,line:N},F=i({name:"searchInput",props:{title:{type:String,default:""}},setup(o,V){const s=r({title:o.title,search:"",subject:"",subjectList:[]}),c=async()=>{try{const t=await n.get("/api-website/open/subject/subjectSelect",{});s.subjectList=t.data}catch(t){console.log(t)}};return _(()=>{c()}),()=>e(p,null,[e("div",{class:l.wrap},[e(u,{modelValue:s.search,"onUpdate:modelValue":t=>s.search=t,placeholder:"\u641C\u4E00\u641C\u4F60\u60F3\u7EC3\u4E60\u7684\u66F2\u76EE",class:l.inputSelect},{prepend:()=>e("div",{class:l.selectWrap},[e(d,{modelValue:s.subject,"onUpdate:modelValue":t=>s.subject=t,placeholder:"\u8BF7\u9009\u62E9\u58F0\u90E8",style:"width: 115px","popper-class":"subSelect"},{default:()=>[e(a,{label:"Restaurant",value:"1"},null),e(a,{label:"Order No.",value:"2"},null),e(a,{label:"Tel",value:"3"},null)],suffix:()=>e("div",{class:l.san},null)}),e("div",{class:l.line},null)]),append:()=>e(y,{style:{color:"#2DC7AA",font:"20px"},icon:"Search"},null)})])])}});export{C as a,F as s};

Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/assets/index.47e9cbbb.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/assets/index.52f16f05.css


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/assets/index.5c852c72.js


+ 0 - 1
dist/assets/index.5d291a3f.css

@@ -1 +0,0 @@
-._form_fvzbi_1 .el-radio-button__inner{border:var(--el-border);border-radius:var(--el-border-radius-base)!important;width:100%;padding:11px 19px!important}._form_fvzbi_1 .el-radio-button__original-radio:checked+.el-radio-button__inner{background-color:#e9fff8;color:var(--el-color-primary);box-shadow:none}

Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/assets/index.6b7bbcf7.js


+ 1 - 0
dist/assets/index.6e53a27d.css

@@ -0,0 +1 @@
+._form_1xn3x_1 .el-radio-button__inner,._tags_1xn3x_2 .el-radio-button__inner{border:var(--el-border);border-radius:var(--el-border-radius-base)!important;width:100%;padding:11px 19px!important}._form_1xn3x_1 .el-radio-button__original-radio:checked+.el-radio-button__inner,._tags_1xn3x_2 .el-radio-button__original-radio:checked+.el-radio-button__inner{background-color:#e9fff8;color:var(--el-color-primary);box-shadow:none}._form_1xn3x_1 .el-dialog__body,._tags_1xn3x_2 .el-dialog__body{padding-top:0}._rule_1xn3x_18{font-size:14px;line-height:27px;color:#999;margin:0 14px}._rule_1xn3x_18>p>span{color:#ff4e19;font-weight:700}

+ 0 - 1
dist/assets/index.7365836d.js

@@ -1 +0,0 @@
-import{a as r}from"./arrow.15dbd454.js";import{d as o,c as t,a as c}from"./vendor.2305d70d.js";var i="./assets/icon.c76ae863.png";const n="_itemWrap_1tjqy_1",_="_left_1tjqy_23",l="_imgWrap_1tjqy_28",m="_textWrap_1tjqy_33",u="_authorInfo_1tjqy_45",p="_icon_1tjqy_50",g="_authorName_1tjqy_56",d="_tagList_1tjqy_61",h="_tag_1tjqy_61",j="_right_1tjqy_74",v="_touchButton_1tjqy_80",y="_vip_1tjqy_90",f="_free_1tjqy_94",q="_charge_1tjqy_98",W="_arrow_1tjqy_102";var a={itemWrap:n,left:_,imgWrap:l,textWrap:m,authorInfo:u,icon:p,authorName:g,tagList:d,tag:h,right:j,touchButton:v,vip:y,free:f,charge:q,arrow:W},I="./assets/music.24d07fa6.png";const N={CHARGE:"\u70B9\u64AD",FREE:"\u514D\u8D39",VIP:"VIP"};var x=o({name:"musicLIstItem",props:{item:{type:Object,default:()=>({})}},setup(e){const s=e.item;return()=>t("div",null,[t("div",{class:a.itemWrap},[t("div",{class:a.left},[t("div",{class:a.imgWrap},[t("img",{src:I,alt:""},null)]),t("div",{class:a.textWrap},[t("p",null,[s.musicSheetName,t("span",null,[c("\u4F5C\u66F2: "),s.composer])]),t("div",{class:a.authorInfo},[t("img",{class:a.icon,src:s.addUserAvatar||i,alt:""},null),t("span",{class:a.authorName},[s.addName]),t("div",{class:a.tagList},[t("div",{class:a.tag},[s.subjectNames])])])])]),t("div",{class:a.right},[t("div",{class:[a.touchButton,a[s.chargeType.toLocaleLowerCase()]]},[N[s.chargeType]]),t("img",{class:a.arrow,src:r,alt:""},null)])])])}});export{x as M,i};

Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/assets/index.740e7a38.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/assets/index.85e4ebae.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/assets/index.8852aef5.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/assets/index.abb1a41d.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/assets/index.b22694dc.js


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

@@ -0,0 +1 @@
+import{a as o}from"./arrow.15dbd454.js";import{d as c,c as t,a as r}from"./vendor.b3a685a0.js";var i="./assets/icon.c76ae863.png";const n="_itemWrap_1tjqy_1",_="_left_1tjqy_23",l="_imgWrap_1tjqy_28",m="_textWrap_1tjqy_33",u="_authorInfo_1tjqy_45",p="_icon_1tjqy_50",g="_authorName_1tjqy_56",d="_tagList_1tjqy_61",h="_tag_1tjqy_61",y="_right_1tjqy_74",j="_touchButton_1tjqy_80",v="_vip_1tjqy_90",f="_free_1tjqy_94",q="_charge_1tjqy_98",W="_arrow_1tjqy_102";var a={itemWrap:n,left:_,imgWrap:l,textWrap:m,authorInfo:u,icon:p,authorName:g,tagList:d,tag:h,right:y,touchButton:j,vip:v,free:f,charge:q,arrow:W},I="./assets/music.24d07fa6.png";const N={CHARGE:"\u70B9\u64AD",FREE:"\u514D\u8D39",VIP:"VIP"};var C=c({name:"musicLIstItem",props:{item:{type:Object,default:()=>({})},onClick:{type:Function,default:e=>{}}},setup(e){const s=e.item;return()=>t("div",{onClick:()=>{e.onClick(s)}},[t("div",{class:a.itemWrap},[t("div",{class:a.left},[t("div",{class:a.imgWrap},[t("img",{src:I,alt:""},null)]),t("div",{class:a.textWrap},[t("p",null,[s.musicSheetName,t("span",null,[r("\u4F5C\u66F2: "),s.composer])]),t("div",{class:a.authorInfo},[t("img",{class:a.icon,src:s.addUserAvatar||i,alt:""},null),t("span",{class:a.authorName},[s.addName]),t("div",{class:a.tagList},[t("div",{class:a.tag},[s.subjectNames])])])])]),t("div",{class:a.right},[t("div",{class:[a.touchButton,a[s.chargeType.toLocaleLowerCase()]]},[N[s.chargeType]]),t("img",{class:a.arrow,src:o,alt:""},null)])])])}});export{C as M,i};

Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/assets/index.c3ed4822.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/assets/index.c9bac888.js


+ 1 - 1
dist/assets/index.5ebb1b6a.js → dist/assets/index.d4b02ecc.js

@@ -1 +1 @@
-import{i as a}from"./icon_teacher.c6352c6e.js";import{d as i,c as e,l as r,a as s}from"./vendor.2305d70d.js";var l=i({name:"item",props:{item:{type:Object,default:()=>({})}},render(){const t=this.item;return e("div",{class:"border border-[#f5f5f5] rounded-sm w-[262px] h-[302px] m-auto overflow-hidden relative hover:shadow-md transition-all"},[t.subjectName&&e("div",{class:"absolute top-2 right-3 bg-black/40 text-white text-sm rounded-sm px-3 h-7 flex items-center justify-center z-10"},[t.subjectName]),e(r,{class:"w-full h-[175px] align-middle",fit:"cover",src:t.backgroundPic},null),e("div",{class:"mx-2.5 py-3.5 border-b border-b-[#F2F2F2]"},[e("div",{class:"text-lg leading-none font-medium whitespace-nowrap overflow-hidden text-ellipsis"},[t.courseGroupName]),e("div",{class:"text-sm text-[#999] pt-2.5"},[t.studentCount,s("\u4EBA\u5DF2\u8D2D\u4E70")])]),e("div",{class:"mx-2.5 py-4 flex items-center justify-between"},[e("div",{class:"flex items-center"},[e(r,{class:"w-[22px] h-[22px] align-middle rounded-full overflow-hidden mr-2","object-fit":"cover",src:t.avatar||a},null),e("span",null,[t.teacherName])]),e("div",{class:"font-medium text-[15px] leading-5 text-[#2DC7AA]"},[s("\uFFE5"),t.coursePrice,s("/"),t.courseNum,s("\u8BFE\u65F6")])])])}});export{l as I};
+import{i as a}from"./icon_teacher.c6352c6e.js";import{d as i,c as e,l as r,a as s}from"./vendor.b3a685a0.js";var l=i({name:"item",props:{item:{type:Object,default:()=>({})}},render(){const t=this.item;return e("div",{class:"border border-[#f5f5f5] rounded-sm w-[262px] h-[302px] m-auto overflow-hidden relative hover:shadow-md transition-all"},[t.subjectName&&e("div",{class:"absolute top-2 right-3 bg-black/40 text-white text-sm rounded-sm px-3 h-7 flex items-center justify-center z-10"},[t.subjectName]),e(r,{class:"w-full h-[175px] align-middle",fit:"cover",src:t.backgroundPic},null),e("div",{class:"mx-2.5 py-3.5 border-b border-b-[#F2F2F2]"},[e("div",{class:"text-lg leading-none font-medium whitespace-nowrap overflow-hidden text-ellipsis"},[t.courseGroupName]),e("div",{class:"text-sm text-[#999] pt-2.5"},[t.studentCount,s("\u4EBA\u5DF2\u8D2D\u4E70")])]),e("div",{class:"mx-2.5 py-4 flex items-center justify-between"},[e("div",{class:"flex items-center"},[e(r,{class:"w-[22px] h-[22px] align-middle rounded-full overflow-hidden mr-2","object-fit":"cover",src:t.avatar||a},null),e("span",null,[t.teacherName])]),e("div",{class:"font-medium text-[15px] leading-5 text-[#2DC7AA]"},[s("\uFFE5"),t.coursePrice,s("/"),t.courseNum,s("\u8BFE\u65F6")])])])}});export{l as I};

Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/assets/index.dedf3efa.css


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/assets/index.f4ede994.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/assets/index.f5a2a3f4.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/assets/index.faea6221.js


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

@@ -1 +0,0 @@
-._uploadSection_1u8uy_1{width:156px;height:106px;background:#f8faf9;border-radius:4px;border:1px solid rgba(45,199,170,.26);font-size:14px;color:#2dc7aa;line-height:20px}._uploadFile_1u8uy_11{width:100%;min-width:300px;height:40px;border:1px solid rgba(142,142,142,.26);border-radius:4px;display:flex;align-items:center;padding:0 15px;color:var(--el-text-color-regular)}._uploadFile_1u8uy_11 .el-icon{margin-right:5px}._fileUpload_1u8uy_25 .el-upload--text{width:100%}._fileUpload_1u8uy_25 .el-loading-spinner{display:flex;align-items:center;height:40px;justify-content:center;margin-top:-20px}._fileUpload_1u8uy_25 .el-loading-spinner svg{width:20px;height:20px;margin-right:5px}._uploadClass_1u8uy_40{height:106px;width:100%}._uploadClass_1u8uy_40 .el-loading-spinner{margin-top:-43px;height:106px}

Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/assets/index.fc6286d2.js


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

@@ -0,0 +1 @@
+._uploadSection_dmnai_1{width:156px;height:106px;background:#f8faf9;border-radius:4px;border:1px solid rgba(45,199,170,.26);font-size:14px;color:#2dc7aa;line-height:20px}._uploadFile_dmnai_11{width:100%;min-width:300px;height:40px;border:1px solid rgba(142,142,142,.26);border-radius:4px;display:flex;align-items:center;padding:0 15px;color:var(--el-text-color-regular)}._uploadFile_dmnai_11 .el-icon{margin-right:5px}._fileUpload_dmnai_25 .el-upload--text{width:100%}._fileUpload_dmnai_25 .el-loading-spinner{display:flex;align-items:center;height:42px!important;justify-content:center;margin-top:-20px!important}._fileUpload_dmnai_25 .el-loading-spinner svg{width:20px;height:20px;margin-right:5px}._uploadClass_dmnai_40{height:106px;width:100%}._uploadClass_dmnai_40 .el-loading-spinner{margin-top:-43px;height:106px}

Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/assets/polyfills-legacy.ff5cd7b0.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/assets/scrollbar.min-legacy.430c8947.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/assets/scrollbar.min.afb0ed75.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/assets/searchdetail-legacy.331a7dcc.js


+ 1 - 1
dist/assets/searchdetail.404886e9.js → dist/assets/searchdetail.d9fbec74.js

@@ -1 +1 @@
-import{s as o,a as l}from"./index.981954ef.js";import{h as c,a as u}from"./scrollbar.min.9e473618.js";import{s as r,r as n}from"./index.21016eca.js";import{d as m,r as d,u as b,c as s,q as h,t as p}from"./vendor.2305d70d.js";import"./arrow.15dbd454.js";var w=m({name:"searchdetail",components:{hotSearch:c,silder:r,searchInput:o,albumItem:u},setup(){const e=d({albumList:[],musicList:[]}),i=async()=>{try{const a=await n.post("/api-website/open/music/album/list",{data:{albumStatus:1,page:1,rows:10}});e.albumList=a.data.rows}catch(a){console.log(a)}};return b(()=>{i()}),()=>s("div",null,[s("div",{class:"bg-white"},[s("div",{class:l.w1200},[s("div",{class:l.section},[s("div",{class:l.albumList},[e.albumList.map(a=>s(u,{detail:a},null))])])])])])}}),S=m({name:"searchdetail",components:{hotSearch:c,silder:r,searchInput:o,searchAlbum:w},setup(){const e=d({albumList:[],musicList:[]}),i=async()=>{try{const t=await n.post("/api-website/open/music/album/list",{data:{albumStatus:1,page:1,rows:10}});e.albumList=t.data.rows}catch(t){console.log(t)}},a=async()=>{try{const t=await n.post("/api-website/open/music/sheet/list",{data:{albumStatus:"PASS",page:1,rows:5,state:1}});e.musicList=t.data.rows}catch(t){console.log(t)}};return b(()=>{i(),a()}),()=>s("div",null,[s("div",{class:"bg-white"},[s("div",{class:l.w1200},[s("div",{class:l.section},[s(o,null,null),s(c,{type:"search"},null),s(h,null,{default:()=>[s(p,{label:"\u4E13\u8F91",name:"album"},{default:()=>[s(w,null,null)]}),s(p,{label:"\u4E50\u8C31",name:"music"},null)]})])])])])}});export{S as default};
+import{s as o,a as l}from"./index.4558bde5.js";import{h as c,a as u}from"./scrollbar.min.afb0ed75.js";import{s as r,r as n}from"./index.b22694dc.js";import{d as m,r as d,u as b,c as s,q as h,t as p}from"./vendor.b3a685a0.js";import"./arrow.15dbd454.js";var w=m({name:"searchdetail",components:{hotSearch:c,silder:r,searchInput:o,albumItem:u},setup(){const e=d({albumList:[],musicList:[]}),i=async()=>{try{const a=await n.post("/api-website/open/music/album/list",{data:{albumStatus:1,page:1,rows:10}});e.albumList=a.data.rows}catch(a){console.log(a)}};return b(()=>{i()}),()=>s("div",null,[s("div",{class:"bg-white"},[s("div",{class:l.w1200},[s("div",{class:l.section},[s("div",{class:l.albumList},[e.albumList.map(a=>s(u,{detail:a},null))])])])])])}}),S=m({name:"searchdetail",components:{hotSearch:c,silder:r,searchInput:o,searchAlbum:w},setup(){const e=d({albumList:[],musicList:[]}),i=async()=>{try{const t=await n.post("/api-website/open/music/album/list",{data:{albumStatus:1,page:1,rows:10}});e.albumList=t.data.rows}catch(t){console.log(t)}},a=async()=>{try{const t=await n.post("/api-website/open/music/sheet/list",{data:{albumStatus:"PASS",page:1,rows:5,state:1}});e.musicList=t.data.rows}catch(t){console.log(t)}};return b(()=>{i(),a()}),()=>s("div",null,[s("div",{class:"bg-white"},[s("div",{class:l.w1200},[s("div",{class:l.section},[s(o,null,null),s(c,{type:"search"},null),s(h,null,{default:()=>[s(p,{label:"\u4E13\u8F91",name:"album"},{default:()=>[s(w,null,null)]}),s(p,{label:"\u4E50\u8C31",name:"music"},null)]})])])])])}});export{S as default};

Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/assets/swiper-slide-legacy.3f4d9d93.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/assets/swiper-slide.09b09ef7.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/assets/swiper-slide.5dd3e5b6.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/assets/vendor-legacy.706cb271.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/assets/vendor.b3a685a0.js


+ 5 - 5
dist/index.html

@@ -34,9 +34,9 @@
     <!-- windows phone 点击无高光 -->
     <meta name="msapplication-tap-highlight" content="no" />
     <title>酷乐秀</title>
-    <script type="module" crossorigin src="./assets/index.21016eca.js"></script>
-    <link rel="modulepreload" href="./assets/vendor.2305d70d.js">
-    <link rel="stylesheet" href="./assets/index.dedf3efa.css">
+    <script type="module" crossorigin src="./assets/index.b22694dc.js"></script>
+    <link rel="modulepreload" href="./assets/vendor.b3a685a0.js">
+    <link rel="stylesheet" href="./assets/index.37973e14.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>
 
@@ -44,7 +44,7 @@
     <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.bd1e9e62.js"></script>
-    <script nomodule id="vite-legacy-entry" data-src="./assets/index-legacy.4504839d.js">System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))</script>
+    <script nomodule id="vite-legacy-polyfill" src="./assets/polyfills-legacy.ff5cd7b0.js"></script>
+    <script nomodule id="vite-legacy-entry" data-src="./assets/index-legacy.77a01f78.js">System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))</script>
   </body>
 </html>

+ 2 - 2
package-lock.json

@@ -8179,7 +8179,7 @@
     },
     "node_modules/vue-cropper": {
       "version": "1.0.3",
-      "resolved": "https://registry.npmjs.org/vue-cropper/-/vue-cropper-1.0.3.tgz",
+      "resolved": "https://registry.npmmirror.com/vue-cropper/-/vue-cropper-1.0.3.tgz",
       "integrity": "sha512-yDrZkE4H5vOiMA9WQHE+6rmXrZ1S9TMZasEPAZPKg/2I/nySHL4ECD1lNxt7+ofTPKT+9+2sQkCwagPqEqiqJg=="
     },
     "node_modules/vue-demi": {
@@ -15253,7 +15253,7 @@
     },
     "vue-cropper": {
       "version": "1.0.3",
-      "resolved": "https://registry.npmjs.org/vue-cropper/-/vue-cropper-1.0.3.tgz",
+      "resolved": "https://registry.npmmirror.com/vue-cropper/-/vue-cropper-1.0.3.tgz",
       "integrity": "sha512-yDrZkE4H5vOiMA9WQHE+6rmXrZ1S9TMZasEPAZPKg/2I/nySHL4ECD1lNxt7+ofTPKT+9+2sQkCwagPqEqiqJg=="
     },
     "vue-demi": {

+ 268 - 0
src/components/col-cropper/cropper.tsx

@@ -0,0 +1,268 @@
+import { defineComponent } from 'vue'
+import styles from './index.module.less'
+import { VueCropper } from 'vue-cropper'
+import umiRequest from 'umi-request'
+import 'vue-cropper/dist/index.css'
+import {
+  ElButton,
+  ElCol,
+  ElDialog,
+  ElIcon,
+  ElImage,
+  ElMessage,
+  ElRow
+} from 'element-plus'
+import { CirclePlus, Remove } from '@element-plus/icons-vue'
+import iconRate from '../col-upload/images/icon_rate.png'
+import request from '@/helpers/request'
+
+export default defineComponent({
+  name: 'cropper',
+  props: {
+    cropperNo: {
+      type: Function,
+      default: (data: any) => {}
+    },
+    cropperOk: {
+      type: Function,
+      default: () => {}
+    },
+    bucket: {
+      type: String,
+      default: 'daya'
+    }
+  },
+  data() {
+    return {
+      ossUploadUrl: 'https://ks3-cn-beijing.ksyuncs.com/' + this.bucket,
+      dataObj: {
+        policy: '',
+        signature: '',
+        key: '',
+        KSSAccessKeyId: '',
+        acl: 'public-read',
+        name: ''
+      },
+      visible: false,
+      img: null,
+      options: {
+        img: '', //裁剪图片的地址
+        autoCrop: true, //是否默认生成截图框
+        autoCropWidth: 180, //默认生成截图框宽度
+        autoCropHeight: 180, //默认生成截图框高度
+        fixedBox: true, //是否固定截图框大小 不允许改变
+        full: false,
+        enlarge: 1, // 是否按照截图框比例输出 默认为1
+        previewsCircle: true, //预览图是否是原圆形
+        centerBox: true,
+        outputType: 'png',
+        title: '修改头像',
+        name: null // 文件名称
+      },
+      previews: {} as any,
+      url: {
+        upload: '/sys/common/saveToImgByStr'
+      }
+    }
+  },
+  methods: {
+    edit(record: any) {
+      const { options } = this
+      this.visible = true
+      this.options = Object.assign({}, options, record)
+      console.log(this.options)
+    },
+    /**
+     * 取消截图
+     */
+    cancelHandel() {
+      this.visible = false
+      this.cropperNo()
+    },
+    /**
+     * 确认截图
+     */
+    okHandel() {
+      ;(this as any).$refs.cropperRef.getCropBlob(async data => {
+        console.log(data, 'data')
+        console.log(this.previews, 'previews')
+        console.log(this.options, 'options')
+        const options: any = this.options
+        const fileName =
+          (options.name ? options.name.split('.')[0] : +new Date()) + '.png'
+        // let form = new FormData()
+        // form.append('file', this.blobToFile(data, fileName), fileName)
+        try {
+          let key = new Date().getTime() + fileName
+          let obj = {
+            filename: fileName,
+            bucketName: this.bucket,
+            postData: {
+              filename: fileName,
+              acl: 'public-read',
+              key: key,
+              unknowValueField: []
+            }
+          }
+          const { data } = await request.post('/api-website/getUploadSign', {
+            data: obj
+          })
+          this.dataObj = {
+            policy: data.policy,
+            signature: data.signature,
+            key: key,
+            KSSAccessKeyId: data.kssAccessKeyId,
+            acl: 'public-read',
+            name: fileName
+          }
+
+          let formData = new FormData()
+          for (let key in obj) {
+            formData.append(key, obj[key])
+          }
+          formData.append('file', this.blobToFile(data, fileName), fileName)
+          await umiRequest(this.ossUploadUrl, {
+            method: 'POST',
+            data: formData
+          })
+          console.log(this.ossUploadUrl + '/' + key)
+          const uploadUrl = this.ossUploadUrl + '/' + key
+
+          // const res = await uploadFile(form)
+          // this.$emit('cropper-ok', res)
+        } catch (err: any) {
+          ElMessage.error(err)
+        } finally {
+          this.cancelHandel()
+        }
+        // this.cropperOk(data)
+        // this.$emit('cropper-ok', data)
+      })
+    },
+    //转成blob
+    blobToFile(Blob: any, fileName: any) {
+      //兼容IE
+      Blob.lastModifiedDate = new Date()
+      Blob.name = fileName
+      return Blob
+    },
+    base64ToFile(urlData: any, fileName: any) {
+      let arr = urlData.split(',')
+      let mime = arr[0].match(/:(.*?);/)[1]
+      let bytes = atob(arr[1]) // 解码base64
+      let n = bytes.length
+      let ia = new Uint8Array(n)
+      while (n--) {
+        ia[n] = bytes.charCodeAt(n)
+      }
+      return new File([ia], fileName, { type: mime })
+    },
+    //移动框的事件
+    realTime(data: any) {
+      this.previews = data
+    },
+    //图片缩放
+    changeScale(num: number) {
+      num = num || 1
+      ;(this as any).$refs.cropperRef.changeScale(num)
+    },
+    //向左旋转
+    rotateLeft() {
+      ;(this as any).$refs.cropperRef.rotateLeft()
+    },
+    //向右旋转
+    rotateRight() {
+      ;(this as any).$refs.cropperRef.rotateRight()
+    }
+  },
+  render() {
+    return (
+      <ElDialog
+        modelValue={this.visible}
+        onUpdate:modelValue={val => (this.visible = val)}
+        appendToBody
+        title={this.options.title}
+        closeOnClickModal={false}
+        width={'800px'}
+        v-slots={{
+          footer: () => (
+            <span class="dialog-footer !text-center block">
+              <ElButton onClick={this.cancelHandel}>取消</ElButton>
+              <ElButton type="primary" onClick={this.okHandel}>
+                保 存
+              </ElButton>
+            </span>
+          )
+        }}
+      >
+        <ElRow>
+          <ElCol xs={24} md={12} style={{ width: '350px' }}>
+            <VueCropper
+              ref="cropperRef"
+              img={this.options.img}
+              info={true}
+              autoCrop={this.options.autoCrop}
+              autoCropWidth={this.options.autoCropWidth}
+              full={this.options.full}
+              outputType={this.options.outputType}
+              autoCropHeight={this.options.autoCropHeight}
+              fixedBox={this.options.fixedBox}
+              enlarge={this.options.enlarge}
+              onRealTime={this.realTime}
+              style={{ height: '350px' }}
+            />
+            <div class="flex pt-2">
+              <div
+                onClick={() => {
+                  this.changeScale(1)
+                }}
+                class="mr-2 cursor-pointer"
+                title="放大"
+              >
+                <ElIcon size={30} color="#333">
+                  <CirclePlus />
+                </ElIcon>
+              </div>
+              <div
+                onClick={() => {
+                  this.changeScale(-1)
+                }}
+                class="mr-2 cursor-pointer"
+                title="缩小"
+              >
+                <ElIcon size={30} color="#333">
+                  <Remove />
+                </ElIcon>
+              </div>
+              <div
+                onClick={this.rotateRight}
+                title="向右旋转"
+                class="cursor-pointer"
+              >
+                <img src={iconRate} class="w-[30px] h-[30px]" />
+              </div>
+            </div>
+          </ElCol>
+          <ElCol xs={24} md={12} style={{ height: '350px' }}>
+            <div class={styles.previewImg}>
+              <span>预览图片</span>
+              <div
+                class={
+                  this.options.previewsCircle
+                    ? styles['avatar-upload-preview']
+                    : styles['avatar-upload-preview_range']
+                }
+                style={{
+                  width: this.options.autoCropWidth + 'px',
+                  height: this.options.autoCropHeight + 'px'
+                }}
+              >
+                <ElImage src={this.previews.url} style={this.previews.img} />
+              </div>
+            </div>
+          </ElCol>
+        </ElRow>
+      </ElDialog>
+    )
+  }
+})

+ 85 - 0
src/components/col-cropper/index.module.less

@@ -0,0 +1,85 @@
+.uploadSection {
+  width: 156px;
+  height: 106px;
+  background: #f8faf9;
+  border-radius: 4px;
+  border: 1px solid rgba(45, 199, 170, 0.26);
+  font-size: 14px;
+  color: #2dc7aa;
+  line-height: 20px;
+}
+
+.uploadClass {
+  height: 106px;
+  width: 100%;
+
+  :global {
+    .el-loading-spinner {
+      margin-top: -43px;
+      height: 106px;
+    }
+  }
+}
+
+.avatar-upload-preview_range,
+.avatar-upload-preview {
+  width: 180px;
+  height: 180px;
+  box-shadow: 0 0 4px #ccc;
+  overflow: hidden;
+  img {
+    background-color: #f7f7f7;
+    height: 100%;
+  }
+}
+.avatar-upload-preview_range {
+  border-radius: 0;
+}
+.previewImg {
+  padding-left: 50px;
+  padding-top: 10px;
+  & > span {
+    display: block;
+    color: #212121;
+    font-size: 16px;
+    padding-bottom: 15px;
+  }
+}
+.operation {
+  font-size: 24px;
+  display: flex;
+  align-items: center;
+  margin-top: 20px;
+  & > i {
+    margin-left: 12px;
+    cursor: pointer;
+  }
+  .icon-rate {
+    display: inline-block;
+    width: 20px;
+    height: 20px;
+    background: url('./images/icon_rate.png') no-repeat center;
+    background-size: contain;
+  }
+}
+.vue-cropper {
+  border-radius: 5px;
+  overflow: hidden;
+}
+:deep(.el-dialog) {
+  margin-bottom: 10vh;
+  .el-dialog__header {
+    // background: #363d55;
+    background: #fff;
+    padding: 15px 20px 15px;
+    .el-dialog__title {
+      color: #212121;
+    }
+    .el-dialog__headerbtn .el-dialog__close {
+      color: #212121;
+    }
+  }
+  .el-dialog__body {
+    padding-top: 0;
+  }
+}

+ 189 - 0
src/components/col-cropper/index.tsx

@@ -0,0 +1,189 @@
+import { ElIcon, ElImage, ElLoading, ElMessage, ElUpload } from 'element-plus'
+import { defineComponent, PropType } from 'vue'
+import { Document } from '@element-plus/icons-vue'
+import styles from './index.module.less'
+import iconUpload from '../col-upload/images/icon_upload.png'
+import request from '@/helpers/request'
+import Cropper from './cropper'
+
+export default defineComponent({
+  name: 'col-upload',
+  props: {
+    modelValue: {
+      type: String,
+      default: ''
+    },
+    cropper: {
+      // 是否进行裁切
+      type: Boolean,
+      default: false
+    },
+    options: {
+      // 裁切需要参数
+      type: Object,
+      default: {
+        autoCrop: true, //是否默认生成截图框
+        enlarge: 1, //  图片放大倍数
+        autoCropWidth: 200, //默认生成截图框宽度
+        autoCropHeight: 200, //默认生成截图框高度
+        fixedBox: true, //是否固定截图框大小 不允许改变
+        previewsCircle: true, //预览图是否是原圆形
+        title: '上传图片'
+      }
+    },
+    // 显示图片原始图片
+    showSize: {
+      type: Boolean,
+      default: false
+    },
+    disabled: {
+      type: Boolean,
+      default: false
+    },
+    bucket: {
+      type: String,
+      default: 'daya'
+    },
+    size: {
+      type: Number,
+      default: 5 // 默认5M
+    },
+    accept: {
+      type: String,
+      default: 'images/*'
+    },
+    tips: {
+      type: String,
+      default: '请上传图片'
+    },
+    extraTips: {
+      type: String,
+      default: '图片最大不能超过5MB'
+    }
+  },
+  data() {
+    return {
+      fileList: [] as any,
+      isStopRun: false,
+      loading: false
+    }
+  },
+  methods: {
+    onDelete() {
+      // 删除图片
+      this.$emit('update:modelValue', '')
+    },
+    //从本地选择文件
+    async handleChange(info: any) {
+      // console.log(info)
+      if (this.isStopRun) {
+        return
+      }
+      this.loading = true
+      const options = this.options
+      this.getBase64(info.file, (imageUrl: any) => {
+        const target = Object.assign({}, options, {
+          img: imageUrl,
+          name: info.file.name // 上传文件名
+        })
+        ;(this as any).$refs.CropperModal.edit(target)
+      })
+    },
+    // 上传之前 格式与大小校验
+    beforeUpload(file) {
+      this.isStopRun = false
+      var fileType = file.type
+      if (fileType.indexOf('image') < 0) {
+        ElMessage.warning('请上传图片')
+        this.isStopRun = true
+        return false
+      }
+      // const isJpgOrPng = this.acceptArray.includes(file.type)
+      // if (!isJpgOrPng) {
+      //   ElMessage.error('你上传图片格式不正确!')
+      //   this.isStopRun = true
+      // }
+      console.log(this.size)
+      const size = this.size || 0
+      const isLtSize = file.size < size * 1024 * 1024
+      if (!isLtSize) {
+        ElMessage.error('图片大小不能超过' + this.size + 'MB!')
+        this.isStopRun = true
+      }
+      return isLtSize
+    },
+    error() {
+      this.remove()
+      this.loading = false
+    },
+    remove() {
+      this.fileList = []
+      this.onDelete()
+    },
+    //获取服务器返回的地址
+    handleCropperSuccess(data) {
+      //将返回的数据回显
+      this.loading = false
+      this.$emit('crop-upload-success', data)
+    },
+    // 取消上传
+    handleCropperClose() {
+      this.loading = false
+      this.remove()
+    },
+    getBase64(img, callback) {
+      const reader = new FileReader()
+      reader.addEventListener('load', () => callback(reader.result))
+      reader.readAsDataURL(img)
+    }
+  },
+  render() {
+    return (
+      <div class={[styles.colUpload, 'w-full']}>
+        <ElUpload
+          disabled={this.disabled}
+          showFileList={false}
+          accept={this.accept}
+          beforeUpload={this.beforeUpload}
+          // @ts-ignore
+          httpRequest={this.handleChange}
+          // limit={1}
+          ref="uploadRef"
+        >
+          <div
+            ref="uploadDom"
+            class={[styles.uploadClass, 'w-full']}
+            style={{ height: '106px' }}
+          >
+            {this.modelValue ? (
+              <ElImage
+                src={this.modelValue}
+                fit="cover"
+                class={styles.uploadSection}
+              />
+            ) : (
+              <div
+                class={[
+                  styles.uploadSection,
+                  'flex items-center flex-col justify-center'
+                ]}
+              >
+                <img src={iconUpload} class="w-8 h-7 mb-3" />
+                <p>{this.tips}</p>
+              </div>
+            )}
+          </div>
+        </ElUpload>
+
+        <p class="text-3 text-[#999999] leading-6 pt-1">{this.extraTips}</p>
+
+        <Cropper
+          ref="CropperModal"
+          bucket={this.bucket}
+          cropperNo={this.handleCropperClose}
+          cropperOk={this.handleCropperSuccess}
+        />
+      </div>
+    )
+  }
+})

+ 22 - 12
src/components/col-header/index.tsx

@@ -3,6 +3,7 @@ import { ElButton } from 'element-plus'
 import './index.css'
 import logo from './images/logo.png'
 import { state } from '@/state'
+import { RouterLink } from 'vue-router'
 
 export default defineComponent({
   name: 'col-header',
@@ -16,10 +17,18 @@ export default defineComponent({
         { name: '社区', href: '#', current: false },
         { name: '下载', href: '/downLoad', current: false }
       ],
-      navPath:   ['','/musicLibrary','','','/downLoad']
+      navPath: ['', '/musicLibrary', '', '', '/downLoad']
+    }
+  },
+  watch: {
+    $route(res: any) {
+      this.navigator.forEach((item: any) => {
+        if (item.href === res.path) {
+          item.current = true
+        }
+      })
     }
   },
-  mounted() {},
   render() {
     return (
       <div class="topNav">
@@ -30,23 +39,24 @@ export default defineComponent({
             </div>
             <div class="flex space-x-[76px] md:space-x-16 ml-28 sm:ml-20 h-full navWrap">
               {this.navigator.map((item: any) => (
-                <a
-                  href={item.href}
+                <div
                   onClick={() => {
                     this.navigator.forEach((item: any) => {
                       item.current = false
                     })
                     item.current = true
                   }}
-                  class={[
-                    item.current
-                      ? 'activeItem'
-                      : 'normalItem',
-                    'itemCenter'
-                  ]}
                 >
-                  {item.name}
-                </a>
+                  <RouterLink
+                    to={item.href}
+                    class={[
+                      item.current ? 'activeItem' : 'normalItem',
+                      'itemCenter'
+                    ]}
+                  >
+                    {item.name}
+                  </RouterLink>
+                </div>
               ))}
             </div>
           </div>

BIN
src/components/col-upload/images/icon_rate.png


+ 2 - 2
src/components/col-upload/index.module.less

@@ -35,9 +35,9 @@
     .el-loading-spinner {
       display: flex;
       align-items: center;
-      height: 40px;
+      height: 42px !important;
       justify-content: center;
-      margin-top: -20px;
+      margin-top: -20px !important;
       svg {
         width: 20px;
         height: 20px;

+ 1 - 1
src/components/col-upload/index.tsx

@@ -58,7 +58,7 @@ export default defineComponent({
   },
   methods: {
     handleSuccess() {
-      // this.loading?.close()
+      this.loading?.close()
       let url = this.ossUploadUrl + '/' + this.dataObj.key
       console.log(url)
       this.$emit('update:modelValue', url)

+ 10 - 1
src/components/musicLIstItem/index.tsx

@@ -6,6 +6,7 @@ import music from './images/music.png'
 import arrow from './images/arrow.png'
 
 type Props = {
+  id?: Number
   addName: String
   addUserAvatar: String
   musicSheetName: String
@@ -25,12 +26,20 @@ export default defineComponent({
     item: {
       type: Object as () => Props,
       default: () => ({})
+    },
+    onClick: {
+      type: Function,
+      default: (item: any) => {}
     }
   },
   setup(props: any) {
     const item = props.item
     return () => (
-      <div>
+      <div
+        onClick={() => {
+          props.onClick(item)
+        }}
+      >
         <div class={classes.itemWrap}>
           <div class={classes.left}>
             <div class={classes.imgWrap}>

+ 0 - 2
src/views/user-info/components/user-menu/index.tsx

@@ -1,5 +1,3 @@
-import { ElLink } from 'element-plus'
-import { userInfo } from 'os'
 import { defineComponent } from 'vue'
 import { RouterLink } from 'vue-router'
 import styles from './index.module.less'

+ 1 - 1
src/views/user-info/components/users/index.tsx

@@ -16,7 +16,7 @@ export default defineComponent({
       <div class="bg-white rounded-[6px] text-center pt-[30px] pb-8 flex items-center flex-col">
         <img src={iconTeacher} class="w-[68px] h-[68px] rounded-full" />
 
-        <p class="text-[#1A1A1A] text-lg pt-4">李老师</p>
+        <p class="text-[#1A1A1A] text-lg pt-4">{this.userInfo.username}</p>
 
         {(this.userInfo.entryFlag == 1 || this.userInfo.musicianFlag) && (
           <div class="pt-3 pb-6">

+ 3 - 1
src/views/user-info/music-class/index.tsx

@@ -6,8 +6,10 @@ import List from './list'
 export default defineComponent({
   name: 'music-class',
   data() {
+    const musicActiveName = sessionStorage.getItem('musicActiveName')
+    sessionStorage.removeItem('musicActiveName')
     return {
-      activeName: 'PASS',
+      activeName: musicActiveName || 'PASS',
       num: {
         doing: 0,
         pass: 0,

+ 15 - 0
src/views/user-info/music-class/list.tsx

@@ -105,7 +105,22 @@ export default defineComponent({
           >
             {this.list.map((item: any) => (
               <MusicLIstItem
+                onClick={(item: any) => {
+                  if (this.auditStatus === 'UNPASS') {
+                    console.log(item)
+                    this.$router.push({
+                      path: '/userInfo/musicOperation',
+                      query: {
+                        type: 'update',
+                        id: item.id
+                      }
+                    })
+                  } else {
+                    // 跳转对应详情
+                  }
+                }}
                 item={{
+                  id: item.id,
                   addName: item.addName,
                   addUserAvatar: item.addUserAvatar,
                   musicSheetName: item.musicSheetName,

+ 17 - 1
src/views/user-info/music-operation/index.module.less

@@ -1,4 +1,5 @@
-.form {
+.form,
+.tags {
   :global {
     .el-radio-button__inner {
       border: var(--el-border);
@@ -11,5 +12,20 @@
       color: var(--el-color-primary);
       box-shadow: none;
     }
+
+    .el-dialog__body {
+      padding-top: 0;
+    }
+  }
+}
+
+.rule {
+  font-size: 14px;
+  line-height: 27px;
+  color: #999;
+  margin: 0 14px;
+  > p > span {
+    color: #ff4e19;
+    font-weight: bold;
   }
 }

+ 254 - 15
src/views/user-info/music-operation/index.tsx

@@ -1,5 +1,6 @@
 import ColUpload from '@/components/col-upload'
 import request from '@/helpers/request'
+import { verifyNumberIntegerAndFloat } from '@/helpers/toolsValidate'
 import {
   ElButton,
   ElForm,
@@ -9,11 +10,18 @@ import {
   ElOptionGroup,
   ElRadioButton,
   ElRadioGroup,
-  ElSelect
+  ElSelect,
+  ElDialog,
+  ElMessage
 } from 'element-plus'
 import { defineComponent } from 'vue'
 import styles from './index.module.less'
 
+export type BackgroundMp3 = {
+  url?: string
+  track?: string
+}
+
 export default defineComponent({
   name: 'music-operation',
   data() {
@@ -21,39 +29,166 @@ export default defineComponent({
     return {
       type: query.type || 'create',
       subjectList: [],
+      tagList: [],
+      submitLoading: false,
+      reason: '',
       form: {
+        audioType: 'MP3',
         xmlFileUrl: '',
         hasBeat: 0,
         mp3Url: '',
         bgmp3Url: '',
+        midiUrl: '',
         musicSheetName: '',
         composer: '',
-        vlewSubjectList: null as any,
+        musicSubject: null as any,
         tags: [] as string[],
         canEvaluate: 1,
         showFingering: 1,
-        chargeType: 0
-      }
+        chargeType: 0,
+        musicPrice: '',
+        backgroundMp3s: [
+          {
+            url: '',
+            track: ''
+          }
+        ] as BackgroundMp3[]
+      },
+      radioList: [], // 选中的人数
+      tagStatus: false,
+      music_sheet_service_fee: 0
     }
   },
   async mounted() {
     try {
+      await request
+        .get('/api-website/sysConfig/queryByParamName', {
+          params: {
+            paramName: 'music_sheet_service_fee'
+          }
+        })
+        .then(res => (this.music_sheet_service_fee = res.data.paramValue))
       await request.get('/api-website/open/subject/subjectSelect').then(res => {
         this.subjectList = res.data || []
-        // console.log(this.subjectList)
-        // this.subjectListNames = this.getSubjectListNames(teacherState.subjectList)
       })
 
       await request.get('/api-website/open/MusicTag/tree').then(res => {
-        console.log(res)
+        this.tagList = res.data || []
       })
+
+      if (this.$route.query.id) {
+        this.setDetail(this.$route.query.id as string)
+      }
     } catch {}
   },
   methods: {
+    async setDetail(id: string) {
+      try {
+        const res = await request.get(
+          '/api-website/open/music/sheet/detail/' + id
+        )
+        this.form.chargeType = res.data.chargeType === 'FREE' ? 0 : 2
+        this.form.showFingering = res.data.showFingering
+        this.form.canEvaluate = res.data.canEvaluate
+        if (this.form.chargeType) {
+          this.form.musicPrice = res.data.musicPrice
+        }
+
+        this.form.composer = res.data.composer
+        this.form.musicSheetName = res.data.musicSheetName
+        this.form.audioType = res.data.audioType
+        this.form.musicSubject = Number(res.data.musicSubject)
+
+        const musicTag = res.data.musicTag.split(',')
+        this.form.tags = musicTag.map((item: any) => {
+          return Number(item)
+        })
+        this.radioList = this.form.tags as any
+
+        this.form.xmlFileUrl = res.data.xmlFileUrl
+
+        this.form.audioType = res.data.mp3Type
+
+        if (this.form.audioType === 'MP3') {
+          this.form.hasBeat = res.data.hasBeat || 0
+          this.form.mp3Url = res.data.metronomeUrl || res.data.url
+        } else {
+          this.form.midiUrl = res.data.midiUrl
+        }
+
+        this.form.backgroundMp3s = (res.data.background || []).map(
+          (item: any, index: any) => {
+            if (index === 0) {
+              this.form.bgmp3Url = item.metronomeUrl || item.audioFileUrl
+            }
+            return {
+              url: this.form.hasBeat ? item.metronomeUrl : item.audioFileUrl,
+              track: item.track
+            }
+          }
+        )
+        this.reason = res.data.reason
+
+        console.log(this.form.bgmp3Url)
+      } catch (error) {
+        console.log(error)
+      }
+    },
+    createSubmitData() {
+      const { form } = this
+      const beatType = form.hasBeat ? 'MP3_METRONOME' : 'MP3'
+      const mp3Type = form.audioType === 'MP3' ? beatType : 'MIDI'
+      return {
+        audioType: form.audioType,
+        sourceType: 'TEACHER',
+        mp3Type,
+        hasBeat: form.hasBeat,
+        url: form.hasBeat ? '' : form.mp3Url,
+        metronomeUrl: form.hasBeat ? form.mp3Url : '',
+        showFingering: Number(form.showFingering),
+        musicTag: form.tags.join(','),
+        musicSubject: form.musicSubject || undefined,
+        musicSheetName: form.musicSheetName,
+        midiUrl: form.midiUrl,
+        xmlFileUrl: form.xmlFileUrl,
+        canEvaluate: Number(form.canEvaluate),
+        chargeType: form.chargeType === 0 ? 'FREE' : 'CHARGE',
+        composer: form.composer,
+        musicPrice: form.musicPrice,
+        background: form.backgroundMp3s.map(item => ({
+          audioFileUrl: form.hasBeat ? '' : form.bgmp3Url,
+          track: item.track,
+          metronomeUrl: form.hasBeat ? form.bgmp3Url : ''
+        }))
+      }
+    },
+    onFormatter(e: any) {
+      e.target.value = verifyNumberIntegerAndFloat(e.target.value)
+    },
     onSubmit() {
-      ;(this as any).$refs.form.validate((valid: any) => {
+      ;(this as any).$refs.form.validate(async (valid: any) => {
         if (valid) {
-          console.log(true)
+          this.submitLoading = true
+          console.log(this.createSubmitData(), 'createSubmitData')
+          try {
+            if (this.$route.query.id) {
+              await request.post('/api-website/music/sheet/update', {
+                data: {
+                  ...this.createSubmitData(),
+                  id: this.$route.query.id
+                }
+              })
+            } else {
+              await request.post('/api-website/music/sheet/create', {
+                data: this.createSubmitData()
+              })
+            }
+          } catch (error) {}
+          this.submitLoading = false
+
+          ElMessage.success('上传成功')
+          sessionStorage.setItem('musicActiveName', 'DOING')
+          this.$router.back()
         } else {
           this.$nextTick(() => {
             let isError = document.getElementsByClassName('is-error')
@@ -150,14 +285,14 @@ export default defineComponent({
           </ElFormItem>
           <ElFormItem
             label="曲目声部"
-            prop="vlewSubjectList"
+            prop="musicSubject"
             rules={[
               { required: true, message: '请选择曲目声部', trigger: 'change' }
             ]}
           >
             <ElSelect
               filterable
-              v-model={this.form.vlewSubjectList}
+              v-model={this.form.musicSubject}
               placeholder="请选择曲目声部"
               class="w-full"
             >
@@ -180,9 +315,33 @@ export default defineComponent({
             prop="tags"
             rules={[{ required: true, message: '请选择曲目标签' }]}
           >
-            {/* <ElInput v-model={this.form.tags} placeholder="请输入乐谱名称" /> */}
-            <div>
-              <ElSelect></ElSelect>
+            <div class="w-full relative">
+              <div
+                class=" w-full block h-[42px] absolute top-0 left-0 z-10"
+                onClick={() => {
+                  console.log(111)
+                  this.tagStatus = true
+                }}
+              ></div>
+              <ElSelect
+                multiple
+                v-model={this.form.tags}
+                placeholder="请选择曲目标签"
+                class="w-full"
+              >
+                {this.tagList.map((group: any) => (
+                  <ElOptionGroup key={group.id} label={group.name}>
+                    {group.children &&
+                      group.children.map((item: any) => (
+                        <ElOption
+                          key={item.id}
+                          value={item.id}
+                          label={item.name}
+                        />
+                      ))}
+                  </ElOptionGroup>
+                ))}
+              </ElSelect>
             </div>
           </ElFormItem>
           <ElFormItem
@@ -222,11 +381,47 @@ export default defineComponent({
               <ElRadioButton label={0} class="mr-3 w-24">
               </ElRadioButton>
-              <ElRadioButton label={1} class="w-24">
+              <ElRadioButton label={2} class="w-24">
               </ElRadioButton>
             </ElRadioGroup>
           </ElFormItem>
+          {this.form.chargeType === 2 && (
+            <>
+              <ElFormItem
+                label="收费价格"
+                prop="musicPrice"
+                rules={[{ required: true, message: '请输入收费价格' }]}
+              >
+                <ElInput
+                  v-model={this.form.musicPrice}
+                  placeholder="请输入收费价格"
+                  // @ts-ignore
+                  maxlength={5}
+                  onKeyup={this.onFormatter}
+                  v-slots={{
+                    append: () => <span>元</span>
+                  }}
+                />
+              </ElFormItem>
+
+              <ElFormItem>
+                <div class={styles.rule}>
+                  <p>扣除手续费后该曲目预计收入为:</p>
+                  <p>
+                    每人:
+                    <span>
+                      {((parseFloat(this.form.musicPrice || '0') || 0) *
+                        (100 - this.music_sheet_service_fee)) /
+                        100}
+                    </span>
+                    元/人
+                  </p>
+                  <p>您的乐谱收入将在学员购买后结算到您的账户中</p>
+                </div>
+              </ElFormItem>
+            </>
+          )}
         </ElForm>
         <div class="border-t border-t-[#E5E5E5] text-center pt-6 pb-7">
           <ElButton
@@ -241,10 +436,54 @@ export default defineComponent({
             type="primary"
             class="!w-40 !h-[38px]"
             onClick={this.onSubmit}
+            loading={this.submitLoading}
           >
             提交审核
           </ElButton>
         </div>
+
+        <ElDialog
+          modelValue={this.tagStatus}
+          onUpdate:modelValue={val => (this.tagStatus = val)}
+          width="35%"
+          title="全部标签"
+        >
+          {this.tagList.map((item: any, index: number) => (
+            <div class={[styles.tags, 'py-2']}>
+              <div class="text-sm pb-2">{item.name}</div>
+              {item.children.map((child: any) => (
+                <ElRadioGroup v-model={this.radioList[index]} class="pb-2">
+                  <ElRadioButton label={child.id} class="mr-3 w-24">
+                    {child.name}
+                  </ElRadioButton>
+                </ElRadioGroup>
+              ))}
+            </div>
+          ))}
+          <div class="text-center pt-2">
+            <ElButton
+              class="!w-36"
+              size="large"
+              onClick={() => {
+                this.radioList = []
+              }}
+            >
+              重置
+            </ElButton>
+            <ElButton
+              class="!w-36"
+              size="large"
+              type="primary"
+              onClick={() => {
+                this.form.tags = this.radioList
+                this.tagStatus = false
+                ;(this as any).$refs.form.clearValidate('tags')
+              }}
+            >
+              确认
+            </ElButton>
+          </div>
+        </ElDialog>
       </div>
     )
   }

+ 61 - 13
src/views/user-info/video-operation/course-info/index.tsx

@@ -1,4 +1,4 @@
-import ColUpload from '@/components/col-upload'
+import ColCropper from '@/components/col-cropper'
 import request from '@/helpers/request'
 import { verifyNumberIntegerAndFloat } from '@/helpers/toolsValidate'
 import {
@@ -61,6 +61,10 @@ export default defineComponent({
     }
   },
   methods: {
+    // onChoice(id: number) {
+    //   createState.lessonGroup.lessonSubject = id
+    //   this.subjectStatus = false
+    // },
     onFormatter(val: any) {
       return verifyNumberIntegerAndFloat(val)
     },
@@ -80,22 +84,59 @@ export default defineComponent({
         <ElForm
           class="px-[200px] pb-10 pt-7"
           size="large"
-          labelWidth={'90px'}
+          labelWidth={'100px'}
           labelPosition="left"
+          model={createState.lessonGroup}
         >
-          <ElFormItem label="课程名称">
-            <ElInput placeholder="请输入课程名称" />
+          <ElFormItem
+            label="课程名称"
+            prop="lessonName"
+            rules={[
+              {
+                required: true,
+                message: '请输入课程名称'
+              }
+            ]}
+          >
+            <ElInput
+              v-model={createState.lessonGroup.lessonName}
+              placeholder="请输入课程名称"
+            />
           </ElFormItem>
-          <ElFormItem label="课程声部">
-            <ElSelect class="w-full" placeholder="请选择课程声部">
+          <ElFormItem
+            label="课程声部"
+            prop="lessonSubject"
+            rules={[
+              {
+                required: true,
+                message: '请选择课程声部',
+                trigger: 'change'
+              }
+            ]}
+          >
+            {/* <ElSelect
+              class="w-full"
+              v-model={createState.lessonGroup.lessonSubject}
+              placeholder="请选择课程声部"
+            >
               {createState.subjectList.map((item: any) => (
                 <ElOption value={item.id}>{item.name}</ElOption>
               ))}
-            </ElSelect>
+            </ElSelect> */}
           </ElFormItem>
-          <ElFormItem label="课程介绍">
+          <ElFormItem
+            label="课程介绍"
+            prop="lessonDesc"
+            rules={[
+              {
+                required: true,
+                message: '请输入课程介绍'
+              }
+            ]}
+          >
             <ElInput
               placeholder="请输入课程介绍"
+              v-model={createState.lessonGroup.lessonDesc}
               type="textarea"
               // @ts-ignore
               maxlength={200}
@@ -103,9 +144,19 @@ export default defineComponent({
               showWordLimit
             />
           </ElFormItem>
-          <ElFormItem label="课程组售价">
+          <ElFormItem
+            label="课程组售价"
+            prop="lessonPrice"
+            rules={[
+              {
+                required: true,
+                message: '请输入课程组售价'
+              }
+            ]}
+          >
             <ElInput
               placeholder="请输入课程组售价"
+              v-model={createState.lessonGroup.lessonPrice}
               formatter={this.onFormatter}
               v-slots={{
                 append: () => <span class="text-base text-[#333]">元</span>
@@ -114,9 +165,6 @@ export default defineComponent({
           </ElFormItem>
           <div class="text-sm text-[#999] pl-[90px] leading-relaxed pb-2">
             <p>扣除手续费后您的课程预计收入为: </p>
-            {/* <p>
-              单课时<span class="px-1 text-[#FF4E19]">19</span>元/人
-            </p> */}
             <p>
               课程组总收入
               <span class="px-1 text-[#FF4E19]">{this.calcRatePrice}</span>元/人
@@ -147,7 +195,7 @@ export default defineComponent({
                 ))}
               </ElRow>
             </ElRadioGroup> */}
-            <ColUpload />
+            <ColCropper />
           </ElFormItem>
         </ElForm>
         <div class="border-t border-t-[#E5E5E5] text-center pt-6 pb-7">

+ 4 - 4
src/views/user-info/video-operation/index.tsx

@@ -7,10 +7,10 @@ import { createState } from './createState'
 
 export default defineComponent({
   name: 'video-operation',
-  props: {
-    type: {
-      type: String,
-      default: 'create'
+  data() {
+    const query = this.$route.query
+    return {
+      type: query.type || 'create'
     }
   },
   async created() {

+ 1 - 1
yarn.lock

@@ -5228,7 +5228,7 @@
 
 "vue-cropper@^1.0.3":
   "integrity" "sha512-yDrZkE4H5vOiMA9WQHE+6rmXrZ1S9TMZasEPAZPKg/2I/nySHL4ECD1lNxt7+ofTPKT+9+2sQkCwagPqEqiqJg=="
-  "resolved" "https://registry.npmjs.org/vue-cropper/-/vue-cropper-1.0.3.tgz"
+  "resolved" "https://registry.npmmirror.com/vue-cropper/-/vue-cropper-1.0.3.tgz"
   "version" "1.0.3"
 
 "vue-demi@*":

Bu fark içinde çok fazla dosya değişikliği olduğu için bazı dosyalar gösterilmiyor