소스 검색

Merge branch 'newVersion' of http://git.dayaedu.com/lex/colexiu-project into newVersion

mo 2 년 전
부모
커밋
87911aad72
52개의 변경된 파일283개의 추가작업 그리고 119개의 파일을 삭제
  1. 0 0
      dist/assets/index-legacy.2749b463.js
  2. 0 0
      dist/assets/index-legacy.2ac15527.js
  3. 102 1
      dist/assets/index-legacy.4ae11942.js
  4. 0 0
      dist/assets/index-legacy.6c33600a.js
  5. 0 0
      dist/assets/index-legacy.7f3d9a2b.js
  6. 0 0
      dist/assets/index-legacy.9430f2e2.js
  7. 0 0
      dist/assets/index-legacy.d63a1feb.js
  8. 0 0
      dist/assets/index-legacy.f525a5c0.js
  9. 0 0
      dist/assets/index.1d0cc84f.js
  10. 0 0
      dist/assets/index.28cd52fa.js
  11. 70 1
      dist/assets/index.37658c21.js
  12. 0 0
      dist/assets/index.888d6e13.js
  13. 0 0
      dist/assets/index.941cbb9b.js
  14. 0 0
      dist/assets/index.a19350d3.js
  15. 0 0
      dist/assets/index.cb0c1e99.css
  16. 0 0
      dist/assets/index.d7081f8f.js
  17. 0 0
      dist/assets/index.f44ecd6e.js
  18. 1 1
      src/components/col-steps/index.tsx
  19. 1 1
      src/router/routes-admin.ts
  20. 1 1
      src/views/login/components/qr-login/index.tsx
  21. 1 1
      src/views/login/components/register-success/index.tsx
  22. 4 4
      src/views/login/components/teacher-auth/index.tsx
  23. 3 3
      src/views/role-auth/teacherAuth/components/cert-brief/index.tsx
  24. 1 1
      src/views/role-auth/teacherAuth/components/edu-information/index.tsx
  25. 7 1
      src/views/student-info/components/item/index.tsx
  26. 1 1
      src/views/student-info/components/user-menu/index.tsx
  27. 1 1
      src/views/student-info/components/users/index.tsx
  28. 1 1
      src/views/student-info/my-follow/index.tsx
  29. 2 2
      src/views/student-info/my-follow/item.tsx
  30. 12 1
      src/views/student-info/my-score/album-list.tsx
  31. 2 2
      src/views/user-info/components/item/index.tsx
  32. 1 1
      src/views/user-info/components/open-member/index.tsx
  33. 1 1
      src/views/user-info/components/user-menu/index.tsx
  34. 1 1
      src/views/user-info/components/users/index.tsx
  35. 2 1
      src/views/user-info/live-class/list.tsx
  36. 5 2
      src/views/user-info/live-operation/course-class/index.tsx
  37. 2 53
      src/views/user-info/live-operation/course-content/index.tsx
  38. 18 2
      src/views/user-info/live-operation/course-info/index.tsx
  39. 2 2
      src/views/user-info/live-operation/course-plan/index.module.less
  40. 1 1
      src/views/user-info/live-operation/course-preview/index.tsx
  41. 1 1
      src/views/user-info/live-operation/index.tsx
  42. 2 1
      src/views/user-info/music-operation/index.tsx
  43. 2 2
      src/views/user-info/my-fans/index.tsx
  44. 16 14
      src/views/user-info/open-live/index.tsx
  45. 1 1
      src/views/user-info/practice-setting/index.tsx
  46. 2 2
      src/views/user-info/video-class/list.tsx
  47. 5 2
      src/views/user-info/video-operation/course-content/index.tsx
  48. 3 0
      src/views/user-info/video-operation/course-info/index.tsx
  49. 0 2
      src/views/user-info/video-operation/course-preview/index.module.less
  50. 2 2
      src/views/user-info/video-operation/course-preview/index.tsx
  51. 4 3
      src/views/user-info/video-operation/index.tsx
  52. 2 2
      src/views/videoDetailList/index.tsx

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/assets/index-legacy.2749b463.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/assets/index-legacy.2ac15527.js


+ 102 - 1
dist/assets/index-legacy.4ae11942.js

@@ -1 +1,102 @@
-System.register(["./index-legacy.f525a5c0.js"],(function(e){"use strict";var t,s,r,i,n;return{setters:[function(e){t=e.d,s=e.c,r=e.bw,i=e.a,n=e.az}],execute:function(){e("I",t({name:"item",props:{item:{type:Object,default:function(){return{}}}},render:function(){var e=this.item;return s("div",{class:"border border-[#f5f5f5] rounded-sm w-[262px] h-[302px] m-auto overflow-hidden relative hover:shadow-md transition-all"},[e.subjectName&&s("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"},[e.subjectName]),s(r,{class:"w-full h-[175px] align-middle",fit:"cover",src:e.backgroundPic},null),s("div",{class:"mx-2.5 py-3.5 border-b border-b-[#F2F2F2]"},[s("div",{class:"text-lg leading-none font-medium whitespace-nowrap overflow-hidden text-ellipsis"},[e.courseGroupName]),s("div",{class:"text-sm text-[#999] pt-2.5"},[e.studentCount,i("人已购买")])]),s("div",{class:"mx-2.5 py-4 flex items-center justify-between"},[s("div",{class:"flex items-center"},[s(r,{class:"w-[22px] h-[22px] align-middle rounded-full overflow-hidden mr-2","object-fit":"cover",src:e.avatar||n},null),s("span",null,[e.teacherName])]),s("div",{class:"font-medium text-[15px] leading-5 text-[#2DC7AA]"},[i("¥"),e.coursePrice,i("/"),e.courseNum,i("课时")])])])}}))}}}));
+System.register(['./index-legacy.f525a5c0.js'], function (e) {
+  'use strict'
+  var t, s, r, i, n
+  return {
+    setters: [
+      function (e) {
+        ;(t = e.d), (s = e.c), (r = e.bw), (i = e.a), (n = e.az)
+      }
+    ],
+    execute: function () {
+      e(
+        'I',
+        t({
+          name: 'item',
+          props: {
+            item: {
+              type: Object,
+              default: function () {
+                return {}
+              }
+            }
+          },
+          render: function () {
+            var e = this.item
+            return s(
+              'div',
+              {
+                class:
+                  'border border-[#f5f5f5] rounded-sm w-[262px] h-[302px] m-auto overflow-hidden relative hover:shadow-md transition-all'
+              },
+              [
+                e.subjectName &&
+                  s(
+                    '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'
+                    },
+                    [e.subjectName]
+                  ),
+                s(
+                  r,
+                  {
+                    class: 'w-full h-[175px] align-middle',
+                    fit: 'cover',
+                    src: e.backgroundPic
+                  },
+                  null
+                ),
+                s(
+                  'div',
+                  { class: 'mx-2.5 py-3.5 border-b border-b-[#F2F2F2]' },
+                  [
+                    s(
+                      'div',
+                      {
+                        class:
+                          'text-lg leading-none font-semibold whitespace-nowrap overflow-hidden text-ellipsis'
+                      },
+                      [e.courseGroupName]
+                    ),
+                    s('div', { class: 'text-sm text-[#999] pt-2.5' }, [
+                      e.studentCount,
+                      i('人已购买')
+                    ])
+                  ]
+                ),
+                s(
+                  'div',
+                  { class: 'mx-2.5 py-4 flex items-center justify-between' },
+                  [
+                    s('div', { class: 'flex items-center' }, [
+                      s(
+                        r,
+                        {
+                          class:
+                            'w-[22px] h-[22px] align-middle rounded-full overflow-hidden mr-2',
+                          'object-fit': 'cover',
+                          src: e.avatar || n
+                        },
+                        null
+                      ),
+                      s('span', null, [e.teacherName])
+                    ]),
+                    s(
+                      'div',
+                      {
+                        class:
+                          'font-semibold text-[15px] leading-5 text-[#2DC7AA]'
+                      },
+                      [i('¥'), e.coursePrice, i('/'), e.courseNum, i('课时')]
+                    )
+                  ]
+                )
+              ]
+            )
+          }
+        })
+      )
+    }
+  }
+})

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/assets/index-legacy.6c33600a.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/assets/index-legacy.7f3d9a2b.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/assets/index-legacy.9430f2e2.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/assets/index-legacy.d63a1feb.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/assets/index-legacy.f525a5c0.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/assets/index.1d0cc84f.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/assets/index.28cd52fa.js


+ 70 - 1
dist/assets/index.37658c21.js

@@ -1 +1,70 @@
-import{d as r,c as e,bw as a,a as s,az as i}from"./index.1d0cc84f.js";var l=r({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(a,{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(a,{class:"w-[22px] h-[22px] align-middle rounded-full overflow-hidden mr-2","object-fit":"cover",src:t.avatar||i},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 { d as r, c as e, bw as a, a as s, az as i } from './index.1d0cc84f.js'
+var l = r({
+  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(
+          a,
+          {
+            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-semibold 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(
+              a,
+              {
+                class:
+                  'w-[22px] h-[22px] align-middle rounded-full overflow-hidden mr-2',
+                'object-fit': 'cover',
+                src: t.avatar || i
+              },
+              null
+            ),
+            e('span', null, [t.teacherName])
+          ]),
+          e(
+            'div',
+            { class: 'font-semibold text-[15px] leading-5 text-[#2DC7AA]' },
+            [s('\uFFE5'), t.coursePrice, s('/'), t.courseNum, s('\u8BFE\u65F6')]
+          )
+        ])
+      ]
+    )
+  }
+})
+export { l as I }

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/assets/index.888d6e13.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/assets/index.941cbb9b.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/assets/index.a19350d3.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/assets/index.cb0c1e99.css


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/assets/index.d7081f8f.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/assets/index.f44ecd6e.js


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

@@ -102,7 +102,7 @@ export default defineComponent({
               ) : (
                 <img src={item.icon} class="w-[18px] h-[22px]" />
               )}
-              <span class={['pl-2 text-lg font-medium leading-none']}>
+              <span class={['pl-2 text-lg font-semibold leading-none']}>
                 {item.title}
               </span>
             </div>

+ 1 - 1
src/router/routes-admin.ts

@@ -181,7 +181,7 @@ export default [
         name: 'userInfoMusicOperation',
         component: () => import('@/views/user-info/music-operation'),
         meta: {
-          title: '视频课',
+          title: '我的曲谱',
           index: 4,
           hidden: true,
           activeMenu: 'userInfoMusicClass',

+ 1 - 1
src/views/login/components/qr-login/index.tsx

@@ -148,7 +148,7 @@ export default defineComponent({
               <CircleCheck />
             </ElIcon>
             <p class="text-lg text-[#666] mt-6">扫码成功</p>
-            <p class="font-medium text-[#1A1A1A] text-[20px] pt-4">
+            <p class="font-semibold text-[#1A1A1A] text-[20px] pt-4">
               请在手机上根据提示确认登录
             </p>
 

+ 1 - 1
src/views/login/components/register-success/index.tsx

@@ -32,7 +32,7 @@ export default defineComponent({
   render() {
     return (
       <div class={['text-center']}>
-        <h2 class="text-2xl font-medium text-[#333] mb-6 flex flex-col items-center">
+        <h2 class="text-2xl font-semibold text-[#333] mb-6 flex flex-col items-center">
           注册成功
           <i class="w-12 h-1 bg-[#2DC7AA] inline-block leading-none rounded-sm mt-1"></i>
         </h2>

+ 4 - 4
src/views/login/components/teacher-auth/index.tsx

@@ -26,14 +26,14 @@ export default defineComponent({
   render() {
     return (
       <>
-        <h2 class="text-2xl font-medium text-[#333] mb-6 flex flex-col items-center">
+        <h2 class="text-2xl font-semibold text-[#333] mb-6 flex flex-col items-center">
           酷乐秀达人认证
           <i class="w-12 h-1 bg-[#2DC7AA] inline-block leading-none rounded-sm mt-1"></i>
         </h2>
 
         <img src={musicCenter} class="w-[305px] m-auto" />
 
-        <div class="text-center text-xl font-medium text-[#333] py-8">
+        <div class="text-center text-xl font-semibold text-[#333] py-8">
           完成酷乐秀认证能开启更多功能!
         </div>
         {/* <ElRow gutter={10}>
@@ -46,7 +46,7 @@ export default defineComponent({
             >
               <img src={teacher1} class="w-16 h-[84px]" />
               <div class="pl-3">
-                <p class="text-slate-700 text-[16px] font-medium">达人认证</p>
+                <p class="text-slate-700 text-[16px] font-semibold">达人认证</p>
                 <p class="text-gray-400 text-[14px] leading-5 pt-1">
                   开启线上
                   <br />
@@ -64,7 +64,7 @@ export default defineComponent({
             >
               <img src={teacher2} class="w-16 h-[84px]" />
               <div class="pl-3">
-                <p class="text-slate-700 text-[16px] font-medium">音乐人认证</p>
+                <p class="text-slate-700 text-[16px] font-semibold">音乐人认证</p>
                 <p class="text-gray-400 text-[14px] leading-5 pt-1">
                   上传曲谱
                   <br />

+ 3 - 3
src/views/role-auth/teacherAuth/components/cert-brief/index.tsx

@@ -84,10 +84,10 @@ export default defineComponent({
             </p>
             <p class={[styles.txt]}>
               学平台,器乐老师可通过自身的专业知识为自己带来
-              <span class="font-medium">授课及曲谱销</span>
+              <span class="font-semibold">授课及曲谱销</span>
             </p>
             <p class={[styles.txt, 'inline-block']}>
-              <span class="font-medium">售收益</span>。
+              <span class="font-semibold">售收益</span>。
             </p>
           </div>
         </div>
@@ -105,7 +105,7 @@ export default defineComponent({
                   <div class={[styles.col, 'flex items-center flex-col p-4']}>
                     <img class=" w-[72px] h-[72px]" src={item.logo} />
 
-                    <div class="flex items-center font-[18px] font-medium pb-3 pt-5">
+                    <div class="flex items-center font-[18px] font-semibold pb-3 pt-5">
                       <img class="w-[30px] h-[22px] mr-1" src={item.num} />
                       {item.title}
                     </div>

+ 1 - 1
src/views/role-auth/teacherAuth/components/edu-information/index.tsx

@@ -62,7 +62,7 @@ export default defineComponent({
       >
         <ElFormItem
           labelWidth={this.labelWidth}
-          label="毕业院校"
+          label="毕业院校(选填)"
           prop="graduateSchool"
           // rules={[
           //   {

+ 7 - 1
src/views/student-info/components/item/index.tsx

@@ -11,12 +11,18 @@ export default defineComponent({
     item: {
       type: Object,
       default: () => ({})
+    },
+    onItemClick: {
+      type: Function,
+      default: (item: any) => {}
     }
   },
   render() {
     const item = this.item
     return (
-      <div class="rounded-[10px] w-[156px] cursor-pointer overflow-hidden relative transition-all">
+      <div class="rounded-[10px] w-[156px] cursor-pointer overflow-hidden relative transition-all" onClick={() => {
+        this.onItemClick(item)
+      }}>
         <ElImage src={iconStart} class="w-6 h-6 !absolute top-2 right-4 z-10" />
 
         <ElImage

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

@@ -46,7 +46,7 @@ export default defineComponent({
           <RouterLink
             to={item.path}
             class={[
-              'py-4 px-6 flex items-center text-lg font-medium text-[#666] w-full last:mb-0 cursor-pointer',
+              'py-4 px-6 flex items-center text-lg font-semibold text-[#666] w-full last:mb-0 cursor-pointer',
               styles.menuItem,
               (item.name === this.activeRoute ||
                 item.name === this.acitveMenuRoute) &&

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

@@ -36,7 +36,7 @@ export default defineComponent({
           class="w-[68px] h-[68px] rounded-full border-2 border-[#2DC7AA] border-solid mt-6 mx-auto object-cover"
         />
 
-        <p class="text-[#333] text-lg font-medium pt-4 flex items-center justify-center">
+        <p class="text-[#333] text-lg font-semibold pt-4 flex items-center justify-center">
           {this.userInfo.username}
 
           <img

+ 1 - 1
src/views/student-info/my-follow/index.tsx

@@ -13,7 +13,7 @@ export default defineComponent({
   render() {
     return (
       <div class="h-full rounded-md overflow-hidden">
-        <div class="text-2xl font-medium text-black leading-none px-6 py-5 ">
+        <div class="text-2xl font-semibold text-black leading-none px-6 py-5 ">
           关注的老师
         </div>
 

+ 2 - 2
src/views/student-info/my-follow/item.tsx

@@ -59,13 +59,13 @@ export default defineComponent({
         </div>
         <div class="flex flex-col items-center">
           <ElImage
-            src={item.avatar}
+            src={item.avatar || iconTeacher}
             class="w-12 h-12 rounded-full border-2 border-[#2DC7AA] object-cover"
           />
           {item.isVip && <ElImage src={iconVip} class="h-7 -mt-4" />}
         </div>
 
-        <p class="text-base text-[#333] font-medium leading-tight pb-5 pt-2 text-center">
+        <p class="text-base text-[#333] font-semibold leading-tight pb-5 pt-2 text-center">
           {item.userName}
         </p>
         <p class="mx-4 text-center mb-3">

+ 12 - 1
src/views/student-info/my-score/album-list.tsx

@@ -91,7 +91,18 @@ export default defineComponent({
             {this.list.map((item: any) => (
               <>
                 <div class="w-1/4 pb-5">
-                  <Item class="m-auto" item={item} />
+                  <Item
+                    class="m-auto"
+                    item={item}
+                    onItemClick={(item: any) => {
+                      this.$router.push({
+                        path: '/albumDetail',
+                        query: {
+                          id: item.id
+                        }
+                      })
+                    }}
+                  />
                 </div>
               </>
             ))}

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

@@ -44,7 +44,7 @@ export default defineComponent({
           </div>
         </div>
 
-        <div class="text-base px-2.5 pt-2 text-[#666666] leading-none font-medium whitespace-nowrap overflow-hidden text-ellipsis">
+        <div class="text-base px-2.5 pt-2 text-[#666666] leading-none font-semibold whitespace-nowrap overflow-hidden text-ellipsis">
           {item.courseGroupName}
         </div>
 
@@ -55,7 +55,7 @@ export default defineComponent({
         )}
 
         <div class="mx-2.5 pt-1.5 pb-2 flex items-center justify-between">
-          <div class="text-xl text-[#F90000] font-medium leading-none">
+          <div class="text-xl text-[#F90000] font-semibold leading-none">
             <span class="text-sm leading-7">¥</span>
             {item.coursePrice}
           </div>

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

@@ -19,7 +19,7 @@ export default defineComponent({
           src={getAssetsHomeFile('icon_king.png')}
           class="w-[318px] absolute -top-10 left-1/2 -ml-[158px]"
         />
-        <div class="text-center text-2xl font-medium text-[#333] pt-[70px] pb-9">
+        <div class="text-center text-2xl font-semibold text-[#333] pt-[70px] pb-9">
           手机扫码开通{getUserType() === 'STUDENT' ? '酷乐秀' : '酷乐秀学院'}
           会员
         </div>

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

@@ -46,7 +46,7 @@ export default defineComponent({
           <RouterLink
             to={item.path}
             class={[
-              'py-4 px-6 flex items-center text-lg font-medium text-[#666] w-full last:mb-0 cursor-pointer',
+              'py-4 px-6 flex items-center text-lg font-semibold text-[#666] w-full last:mb-0 cursor-pointer',
               styles.menuItem,
               (item.name === this.activeRoute ||
                 item.name === this.acitveMenuRoute) &&

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

@@ -78,7 +78,7 @@ export default defineComponent({
           class="w-[68px] h-[68px] rounded-full border-2 border-[#2DC7AA] border-solid mt-6 mx-auto object-cover"
         />
 
-        <p class="text-[#333] text-lg font-medium pt-4 flex items-center justify-center">
+        <p class="text-[#333] text-lg font-semibold pt-4 flex items-center justify-center">
           {this.userInfo.username}
 
           <img

+ 2 - 1
src/views/user-info/live-class/list.tsx

@@ -81,7 +81,7 @@ export default defineComponent({
                           variant="image"
                           style={{ width: '100%', height: '122px' }}
                         ></ElSkeletonItem>
-                        <div class="text-base px-2.5 pt-2 text-[#666666] leading-none font-medium whitespace-nowrap overflow-hidden text-ellipsis">
+                        <div class="text-base px-2.5 pt-2 text-[#666666] leading-none font-semibold whitespace-nowrap overflow-hidden text-ellipsis">
                           <ElSkeletonItem variant="h3"></ElSkeletonItem>
                         </div>
 
@@ -129,6 +129,7 @@ export default defineComponent({
             <ColEmpty
               type="live"
               message="您尚未开通直播服务,开通后即可创建直播课程~"
+              buttonVisibility
               buttonText="立即开通"
               onDetail={() => {
                 this.$router.push('/userInfo/openLive')

+ 5 - 2
src/views/user-info/live-operation/course-class/index.tsx

@@ -129,6 +129,7 @@ export default defineComponent({
             prop="salesStartDate"
             rules={[
               {
+                type: 'date',
                 required: true,
                 message: '请输入开售日期'
               }
@@ -158,8 +159,10 @@ export default defineComponent({
             prop="salesEndDate"
             rules={[
               {
+                type: 'date',
                 required: true,
-                message: '请输入停售日期'
+                message: '请输入停售日期',
+                trigger: 'change'
               }
             ]}
           >
@@ -198,7 +201,7 @@ export default defineComponent({
               v-model={createState.live.mixStudentNum}
               // @ts-ignore
               onKeyup={this.onFormatter}
-              maxlength={5}
+              maxlength={8}
               v-slots={{
                 append: () => <span class="text-base text-[#333]">人</span>
               }}

+ 2 - 53
src/views/user-info/live-operation/course-content/index.tsx

@@ -285,7 +285,7 @@ export default defineComponent({
             round
             class="!w-44 !h-[48px] !text-base"
             onClick={() => {
-              createState.active = 2
+              createState.active = 1
               // 重置选择的课次
               createState.selectCourseList = []
               const currentY =
@@ -313,7 +313,7 @@ export default defineComponent({
           custom-class={!createState.coursePlanStatus && styles.dialog}
           v-slots={{
             header: () => (
-              <h2 class="text-center text-2xl text-[#333] font-medium">
+              <h2 class="text-center text-2xl text-[#333] font-semibold">
                 {!createState.coursePlanStatus ? '温馨提示' : '课程确认'}
               </h2>
             )
@@ -377,57 +377,6 @@ export default defineComponent({
             </div>
           </div>
         </ElDialog>
-        {/* <Popup show={this.selectStatus} class={styles.selectPopup}>
-          <div class={styles.selectContainer}>
-            <div class={styles.rTitle}>
-              <span>提示</span>
-            </div>
-            <div class={styles.selectPopupContent}>
-              <p class={styles.desc}>
-                {this.selectType === 'noEnough' && !createState.coursePlanStatus
-                  ? '您所选择的上课时间未达到您输入的课时数,系统根据已选时间将自动按周顺延排课。'
-                  : '您已选择以下上课时间段,时间段会暂时锁定,锁定期间学员不可购买该时间段课程。'}
-              </p>
-              {createState.live.coursePlanList &&
-                createState.live.coursePlanList.length > 0 &&
-                createState.coursePlanStatus && (
-                  <p class={styles.times}>
-                    {createState.live.coursePlanList.map((item: any) => (
-                      <span>
-                        {dayjs(item.startTime || new Date()).format(
-                          'YYYY-MM-DD'
-                        )}{' '}
-                        {dayjs(item.startTime || new Date()).format('HH:mm')}~
-                        {dayjs(item.endTime || new Date()).format('HH:mm')}
-                      </span>
-                    ))}
-                  </p>
-                )}
-            </div>
-
-            <div class={styles.selectBtn}>
-              <Button
-                class={styles.btn}
-                type="primary"
-                round
-                block
-                plain
-                onClick={this.onReset}
-              >
-                {this.selectType === 'noEnough' ? '继续选择' : '重新选择'}
-              </Button>
-              <Button
-                class={styles.btn}
-                type="primary"
-                round
-                block
-                onClick={this.onSure}
-              >
-                确认
-              </Button>
-            </div>
-          </div>
-        </Popup> */}
       </div>
     )
   }

+ 18 - 2
src/views/user-info/live-operation/course-info/index.tsx

@@ -40,6 +40,13 @@ export default defineComponent({
     }
   },
   async mounted() {
+    const rate = createState.rate || 0
+    const nums = createState.live.courseNum
+    const tempPrice = createState.live.coursePrice || 0
+    this.calcRatePrice = (tempPrice - (rate / 100) * tempPrice).toFixed(2)
+    this.calcSingleRatePrice = nums
+      ? ((tempPrice / nums) * (1 - rate / 100)).toFixed(2)
+      : 0
     try {
       // 获取手续费和分钟数
       let config = await request.get(
@@ -126,6 +133,7 @@ export default defineComponent({
           >
             <ElInput
               v-model={createState.live.name}
+              maxlength={50}
               placeholder="请输入课程名称"
             />
           </ElFormItem>
@@ -185,7 +193,7 @@ export default defineComponent({
               v-model={createState.live.courseNum}
               // @ts-ignore
               onKeyup={this.onFormaterCourse}
-              maxlength={3}
+              maxlength={2}
               v-slots={{
                 append: () => <span class="text-base text-[#333]">课时</span>
               }}
@@ -205,6 +213,13 @@ export default defineComponent({
               class="w-full"
               v-model={createState.live.singleMins}
               placeholder="请选择单课时长"
+              onChange={(item: any) => {
+                createState.minutes.forEach(child => {
+                  if (child.courseMinutes === item) {
+                    createState.live.freeMinutes = child.freeMinutes
+                  }
+                })
+              }}
             >
               {createState.minutes.map((item: any) => (
                 <ElOption
@@ -231,7 +246,7 @@ export default defineComponent({
               v-model={createState.live.coursePrice}
               // @ts-ignore
               onKeyup={this.onFormatter}
-              maxlength={9}
+              maxlength={8}
               v-slots={{
                 append: () => <span class="text-base text-[#333]">元</span>
               }}
@@ -259,6 +274,7 @@ export default defineComponent({
             round
             class="!w-44 !h-[48px] !text-base"
             onClick={() => {
+              console.log(createState.live)
               ;(this as any).$refs.form.validate(async (valid: boolean) => {
                 if (valid) {
                   createState.active = 1

+ 2 - 2
src/views/user-info/live-operation/course-plan/index.module.less

@@ -11,8 +11,8 @@
     .el-input,
     .el-select--large,
     .el-form-item--large .el-form-item__label {
-      height: 48px;
-      line-height: 48px;
+      height: 22px;
+      line-height: 22px;
     }
     .el-form-item__label {
       font-size: 16px;

+ 1 - 1
src/views/user-info/live-operation/course-preview/index.tsx

@@ -72,7 +72,7 @@ export default defineComponent({
           />
 
           <div class="bg-white">
-            <div class="p-[14px] text-lg text-[#1a1a1a] font-medium leading-none">
+            <div class="p-[14px] text-lg text-[#1a1a1a] font-semibold leading-none">
               <div class="overflow-hidden whitespace-nowrap text-ellipsis">
                 {this.userInfo.lessonName}
               </div>

+ 1 - 1
src/views/user-info/live-operation/index.tsx

@@ -18,7 +18,7 @@ export default defineComponent({
   render() {
     return (
       <>
-        <div class="text-2xl font-medium text-black leading-none px-6 py-5 ">
+        <div class="text-2xl font-semibold text-black leading-none px-6 py-5 ">
           {this.type === 'create' ? '新建直播课' : '编辑直播课'}
         </div>
 

+ 2 - 1
src/views/user-info/music-operation/index.tsx

@@ -61,6 +61,7 @@ export default defineComponent({
     }
   },
   async mounted() {
+    document.title = this.type === 'create' ? '新建曲谱' : '编辑曲谱'
     try {
       await request
         .get('/api-website/sysConfig/queryByParamName', {
@@ -209,7 +210,7 @@ export default defineComponent({
   render() {
     return (
       <div class={styles.form}>
-        <div class="text-2xl font-medium text-black leading-none px-6 py-5 ">
+        <div class="text-2xl font-semibold text-black leading-none px-6 py-5 ">
           {this.type === 'create' ? '新建曲谱' : '编辑曲谱'}
         </div>
 

+ 2 - 2
src/views/user-info/my-fans/index.tsx

@@ -58,7 +58,7 @@ export default defineComponent({
   render() {
     return (
       <div class="h-full rounded-md overflow-hidden">
-        <div class="text-2xl font-medium text-black leading-none px-6 py-5 ">
+        <div class="text-2xl font-semibold text-black leading-none px-6 py-5 ">
           我的粉丝
         </div>
 
@@ -109,7 +109,7 @@ export default defineComponent({
                       )}
                     </div>
 
-                    <p class="text-base text-[#333] font-medium leading-tight pb-5 pt-2 text-center">
+                    <p class="text-base text-[#333] font-semibold leading-tight pb-5 pt-2 text-center">
                       {item.userName}
                     </p>
                     <p>

+ 16 - 14
src/views/user-info/open-live/index.tsx

@@ -88,7 +88,7 @@ export default defineComponent({
   render() {
     return (
       <div class={styles.openLive}>
-        <div class="text-2xl font-medium text-black leading-none px-6 pt-5 pb-8 flex items-center justify-between">
+        <div class="text-2xl font-semibold text-black leading-none px-6 pt-5 pb-8 flex items-center justify-between">
           <span>开通直播</span>
 
           <ElButton
@@ -103,17 +103,19 @@ export default defineComponent({
         </div>
 
         <div class="px-6">
-          <div
-            class="py-3 px-[18px] rounded-lg text-sm text-[#E11212] flex items-center"
-            style={{
-              background: 'linear-gradient(139deg, #FFEEEE 0%, #FFDDDD 100%)'
-            }}
-          >
-            <img src={iconTips} class="w-[22px] h-[22px] mr-2.5" />
-            你尚未达到开通直播的条件!请立即去开通。
-          </div>
+          {!this.btnStatus && (
+            <div
+              class="py-3 px-[18px] rounded-lg text-sm text-[#E11212] flex items-center"
+              style={{
+                background: 'linear-gradient(139deg, #FFEEEE 0%, #FFDDDD 100%)'
+              }}
+            >
+              <img src={iconTips} class="w-[22px] h-[22px] mr-2.5" />
+              你尚未达到开通直播的条件!请立即去开通。
+            </div>
+          )}
 
-          <div class="mt-8 flex justify-between">
+          <div class={['flex justify-between', !this.btnStatus && 'mt-8']}>
             <div
               class="w-[334px] rounded-[10px] px-7 py-7"
               style={{
@@ -124,7 +126,7 @@ export default defineComponent({
                 <span class="text-2xl text-[#666]">
                   <i class="text-[#E32121]">*</i>粉丝数
                 </span>
-                <div class="text-2xl text-[#999] font-medium flex items-center">
+                <div class="text-2xl text-[#999] font-semibold flex items-center">
                   <span class="text-4xl text-black leading-none">
                     {this.users?.fansNum}
                   </span>
@@ -153,7 +155,7 @@ export default defineComponent({
                 <span class="text-2xl text-[#666]">
                   <i class="text-[#E32121]">*</i>课程数
                 </span>
-                <div class="text-2xl text-[#999] font-medium flex items-center">
+                <div class="text-2xl text-[#999] font-semibold flex items-center">
                   <span class="text-4xl text-black leading-none">
                     {this.users?.expTime}
                   </span>
@@ -200,7 +202,7 @@ export default defineComponent({
         >
           <div class="text-center">
             <img src={openLive} class="w-[290px] m-auto" />
-            <p class="text-xl font-medium text-[#333] pt-7 pb-8">
+            <p class="text-xl font-semibold text-[#333] pt-7 pb-8">
               开通成功,快去创建直播课吧
             </p>
 

+ 1 - 1
src/views/user-info/practice-setting/index.tsx

@@ -257,7 +257,7 @@ export default defineComponent({
   render() {
     return (
       <div class={styles.setting}>
-        <div class="text-2xl font-medium text-black leading-none px-6 py-5 ">
+        <div class="text-2xl font-semibold text-black leading-none px-6 py-5 ">
           陪练课设置
         </div>
         {state.user.data?.entryFlag ? (

+ 2 - 2
src/views/user-info/video-class/list.tsx

@@ -99,7 +99,7 @@ export default defineComponent({
                           style={{ width: '100%', height: '122px' }}
                         ></ElSkeletonItem>
                         {/* <div class="mx-2.5 py-3.5 border-b border-b-[#F2F2F2]">
-                          <div class="text-lg leading-none font-medium whitespace-nowrap overflow-hidden text-ellipsis">
+                          <div class="text-lg leading-none font-semibold whitespace-nowrap overflow-hidden text-ellipsis">
                             <ElSkeletonItem variant="h3"></ElSkeletonItem>
                           </div>
                           <div class="text-sm text-[#999] pt-2.5">
@@ -109,7 +109,7 @@ export default defineComponent({
                             ></ElSkeletonItem>
                           </div>
                         </div> */}
-                        <div class="text-base px-2.5 pt-2 text-[#666666] leading-none font-medium whitespace-nowrap overflow-hidden text-ellipsis">
+                        <div class="text-base px-2.5 pt-2 text-[#666666] leading-none font-semibold whitespace-nowrap overflow-hidden text-ellipsis">
                           <ElSkeletonItem variant="h3"></ElSkeletonItem>
                         </div>
 

+ 5 - 2
src/views/user-info/video-operation/course-content/index.tsx

@@ -198,7 +198,7 @@ export default defineComponent({
                   </ElTooltip>
                 )}
               </div>
-              <h2 class="text-xl font-medium pb-5">{`第 ${index + 1} 课`}</h2>
+              <h2 class="text-xl font-semibold pb-5">{`第 ${index + 1} 课`}</h2>
 
               <ElFormItem
                 label="课程标题"
@@ -261,7 +261,10 @@ export default defineComponent({
                     prop={`lessonList.${index}.coverUrl`}
                     rules={[{ required: true, message: '请上传视频封面' }]}
                   >
-                    <ColUpload v-model:modelValue={item.coverUrl} />
+                    <ColUpload
+                      v-model:modelValue={item.coverUrl}
+                      bucket="video-course"
+                    />
                   </ElFormItem>
                 </ElCol>
               </ElRow>

+ 3 - 0
src/views/user-info/video-operation/course-info/index.tsx

@@ -65,6 +65,9 @@ export default defineComponent({
         createState.subjectList = res.data || []
       }
 
+      const rate = createState.rate || 0
+      const price = createState.lessonGroup.lessonPrice || 0
+      this.calcRatePrice = (price - (rate / 100) * price).toFixed(2)
       // setInterval(() => {
       //   console.log(
       //     createState.lessonGroup.lessonCoverTemplateUrl,

+ 0 - 2
src/views/user-info/video-operation/course-preview/index.module.less

@@ -92,8 +92,6 @@
   width: 100px;
   height: 70px;
   position: relative;
-  border-radius: 4px;
-  overflow: hidden;
 
   .videoStop {
     position: absolute;

+ 2 - 2
src/views/user-info/video-operation/course-preview/index.tsx

@@ -42,7 +42,7 @@ export default defineComponent({
           />
 
           <div class="bg-white">
-            <div class="p-[14px] text-lg text-[#1a1a1a] font-medium leading-none">
+            <div class="p-[14px] text-lg text-[#1a1a1a] font-semibold leading-none">
               标题
             </div>
             <div class={[styles.userInfo, 'mx-[14px] py-[14px]']}>
@@ -104,7 +104,7 @@ export default defineComponent({
               <div class="flex mb-3">
                 <div class={styles.videoImg}>
                   <ElImage
-                    class="align-middle h-[70px] w-[100px]"
+                    class="align-middle h-[70px] w-[100px] rounded overflow-hidden"
                     src={item.coverUrl}
                     fit="cover"
                   />

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

@@ -44,14 +44,14 @@ export default defineComponent({
         ...group
       } = result.lessonGroup
       // 判断模板图片是否在模板列表中,如果不在则是用户自己上传的图片
-      let statusUrl = createState.templateList.includes(lessonCoverUrl)
+      const statusUrl = createState.templateList.includes(lessonCoverUrl)
         ? true
         : false
 
       createState.lessonGroup = {
         id: id,
         lessonName: lessonName,
-        lessonSubject: lessonSubject,
+        lessonSubject: Number(lessonSubject),
         lessonDesc: lessonDesc,
         lessonPrice: lessonPrice,
         lessonCoverTemplateUrl: statusUrl ? lessonCoverUrl : '',
@@ -82,6 +82,7 @@ export default defineComponent({
     }
   },
   async mounted() {
+    document.title = this.type === 'create' ? '新建视频课' : '编辑视频课'
     try {
       const sysConfig = await request.get(
         '/api-website/sysConfig/queryByParamName',
@@ -97,7 +98,7 @@ export default defineComponent({
   render() {
     return (
       <>
-        <div class="text-2xl font-medium text-black leading-none px-6 py-5 ">
+        <div class="text-2xl font-semibold text-black leading-none px-6 py-5 ">
           {this.type === 'create' ? '新建视频课' : '编辑视频课'}
         </div>
 

+ 2 - 2
src/views/videoDetailList/index.tsx

@@ -34,10 +34,10 @@ export default defineComponent({
 
       pageInfo: {
         // 分页规则
-        limit: 10, // 限制显示条数
+        limit: 9, // 限制显示条数
         page: 1, // 当前页
         total: 0, // 总条数
-        page_size: [10, 20, 40, 50] // 选择限制显示条数
+        page_size: [9, 18, 36, 45] // 选择限制显示条数
       },
       isshowData: false
     })

이 변경점에서 너무 많은 파일들이 변경되어 몇몇 파일들은 표시되지 않았습니다.