lex 2 vuotta sitten
vanhempi
commit
d180385b8e
32 muutettua tiedostoa jossa 229 lisäystä ja 82 poistoa
  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.1d0cc84f.js
  9. 0 0
      dist/assets/index.28cd52fa.js
  10. 70 1
      dist/assets/index.37658c21.js
  11. 0 0
      dist/assets/index.888d6e13.js
  12. 0 0
      dist/assets/index.941cbb9b.js
  13. 0 0
      dist/assets/index.a19350d3.js
  14. 0 0
      dist/assets/index.cb0c1e99.css
  15. 0 0
      dist/assets/index.d7081f8f.js
  16. 0 0
      dist/assets/index.f44ecd6e.js
  17. 1 1
      src/router/routes-admin.ts
  18. 1 1
      src/views/student-info/my-follow/item.tsx
  19. 1 0
      src/views/user-info/live-class/list.tsx
  20. 5 2
      src/views/user-info/live-operation/course-class/index.tsx
  21. 1 52
      src/views/user-info/live-operation/course-content/index.tsx
  22. 18 2
      src/views/user-info/live-operation/course-info/index.tsx
  23. 2 2
      src/views/user-info/live-operation/course-plan/index.module.less
  24. 1 1
      src/views/user-info/live-operation/index.tsx
  25. 2 1
      src/views/user-info/music-operation/index.tsx
  26. 12 10
      src/views/user-info/open-live/index.tsx
  27. 4 1
      src/views/user-info/video-operation/course-content/index.tsx
  28. 3 0
      src/views/user-info/video-operation/course-info/index.tsx
  29. 0 2
      src/views/user-info/video-operation/course-preview/index.module.less
  30. 1 1
      src/views/user-info/video-operation/course-preview/index.tsx
  31. 3 2
      src/views/user-info/video-operation/index.tsx
  32. 2 2
      src/views/videoDetailList/index.tsx

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/index-legacy.2749b463.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 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('课时')]
+                    )
+                  ]
+                )
+              ]
+            )
+          }
+        })
+      )
+    }
+  }
+})

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/index-legacy.6c33600a.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/index-legacy.7f3d9a2b.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/index-legacy.9430f2e2.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/index-legacy.d63a1feb.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/index.1d0cc84f.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 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 }

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/index.888d6e13.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/index.941cbb9b.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/index.a19350d3.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/index.cb0c1e99.css


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/index.d7081f8f.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dist/assets/index.f44ecd6e.js


+ 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/student-info/my-follow/item.tsx

@@ -59,7 +59,7 @@ 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" />}

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

@@ -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>
               }}

+ 1 - 52
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 =
@@ -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/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>
 

+ 12 - 10
src/views/user-info/open-live/index.tsx

@@ -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={{

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

@@ -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;

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

@@ -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"
                   />

+ 3 - 2
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',

+ 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
     })

Kaikkia tiedostoja ei voida näyttää, sillä liian monta tiedostoa muuttui tässä diffissä