Pārlūkot izejas kodu

Merge branch 'newVersion' into dev

lex 2 gadi atpakaļ
vecāks
revīzija
292f003e50

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

@@ -20,29 +20,35 @@ export default defineComponent({
     onTypeChange: {
       type: Function,
       default: (type: any) => {}
+    },
+    type: {
+      type: String,
+      default: ''
     }
   },
   data() {
     return {
-      registerType: 'student' as 'teacher' | 'student'
+      registerType: 'student'
     }
   },
   async mounted() {
-    try {
-      if (state.user.data?.userId) {
+    if (this.type) {
+      this.registerType = this.type
+    } else {
+      try {
         // 获取用户信息
         await getUserInfo()
+      } catch {
+        //
       }
-    } catch {
-      //
+      this.registerType = getUserType() === 'STUDENT' ? 'student' : 'teacher'
     }
-    this.registerType = getUserType() === 'STUDENT' ? 'student' : 'teacher'
   },
   render() {
     return (
       <div class={['text-center']}>
         <h2 class="text-2xl font-semibold text-[#333] mb-6 flex flex-col items-center">
-          注册成功
+          {this.type ? '酷乐秀' : '注册成功'}
           <i class="w-12 h-1 bg-[#2DC7AA] inline-block leading-none rounded-sm mt-1"></i>
         </h2>
 
@@ -62,10 +68,12 @@ export default defineComponent({
         <div
           class={[styles.scanTxt, 'leading-6 text-lg text-[#333] pt-4 pb-2']}
         >
-          <p>
-            恭喜您已成功注册酷乐秀
-            {this.registerType === 'teacher' ? '老师' : '学生'}账号!
-          </p>
+          {!this.type && (
+            <p>
+              恭喜您已成功注册酷乐秀
+              {this.registerType === 'teacher' ? '老师' : '学生'}账号!
+            </p>
+          )}
           <p>
             {/* <span> */}
             下载酷乐秀

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

@@ -246,8 +246,21 @@ export default defineComponent({
             <ElInput
               placeholder="请输入课程组售价"
               v-model={createState.live.coursePrice}
-              // @ts-ignore
-              onKeyup={this.onFormatter}
+              // onKeyup={this.onFormatter}
+              onInput={(value: any) => {
+                createState.live.coursePrice =
+                  verifyNumberIntegerAndFloat(value)
+
+                // 计算手续费
+                const rate = createState.rate || 0
+                const price = createState.live.coursePrice || 0
+                this.calcRatePrice = (price - (rate / 100) * price).toFixed(2)
+
+                const nums = createState.live.courseNum
+                this.calcSingleRatePrice = nums
+                  ? ((price / nums) * (1 - rate / 100)).toFixed(2)
+                  : 0
+              }}
               maxlength={8}
               v-slots={{
                 append: () => <span class="text-base text-[#333]">元</span>

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

@@ -5,7 +5,7 @@ import CourseClass from './course-class'
 import CourseContent from './course-content'
 import CourseInfo from './course-info'
 import CoursePlan from './course-plan'
-import { createState } from './createState'
+import { createState, resestState } from './createState'
 
 export default defineComponent({
   name: 'live-operatoin',
@@ -15,6 +15,9 @@ export default defineComponent({
       type: query.type || 'create'
     }
   },
+  created() {
+    resestState()
+  },
   render() {
     return (
       <>

+ 5 - 0
src/views/user-info/open-live/index.module.less

@@ -9,5 +9,10 @@
     .el-dialog__header {
       padding: 0;
     }
+    .el-button.is-disabled {
+      background: #bababa;
+      border-color: #bababa;
+      opacity: 1;
+    }
   }
 }

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

@@ -111,7 +111,7 @@ export default defineComponent({
               }}
             >
               <img src={iconTips} class="w-[22px] h-[22px] mr-2.5" />
-              你尚未达到开通直播的条件!请立即去开通。
+              你尚未达到开通直播的条件
             </div>
           )}
 

+ 30 - 15
src/views/videoDetailList/modals/downModel.tsx

@@ -2,12 +2,14 @@ import { defineComponent, toRefs, reactive, onMounted, ref } from 'vue'
 import player from '../images/player.png'
 import classes from './videoCourseItem.module.less'
 import detaile from '@/components/videoDetailItem/images/detaile.png'
-import { ElDialog, ElButton } from 'element-plus'
+import { ElDialog, ElButton, ElIcon } from 'element-plus'
 import QrcodeVue from 'qrcode.vue'
 import register_bg from '@/views/login/images/register_bg.png'
+import RegisterSuccess from '@/views/login/components/register-success'
+import { CloseBold } from '@element-plus/icons-vue'
 export default defineComponent({
   name: 'downModel',
-  emits:['close'],
+  emits: ['close'],
   props: {
     item: {
       type: Object,
@@ -20,37 +22,50 @@ export default defineComponent({
   setup(props, conent) {
     const state = reactive({
       title: props.item,
-      item: props.item,
-      qrCodeDownLoad: 'http://dev.colexiu.com/student/#/download'
+      item: props.item
     })
     const onClose = () => {
       conent.emit('close')
     }
     return () => (
       <>
-        <div class={[classes.loginSection, 'relative',]}>
-          <i
+        <div class={[classes.loginSection, 'relative bg-white']}>
+          <div
+            class={['rounded-full flex absolute top-[22px] right-[22px] z-10']}
+            onClick={() => {
+              onClose()
+            }}
+          >
+            <ElIcon size={16} color="#999999">
+              <CloseBold />
+            </ElIcon>
+          </div>
+          <div
+            class={[
+              classes.loginTabs,
+              'px-14 pt-9 pb-12 bg-white relative',
+              classes.registerSuccessBg
+            ]}
+          >
+            <RegisterSuccess type="student" onClose={onClose} />
+          </div>
+          {/* <i
             class={[
               classes.iconClose,
               'w-9 h-9 rounded-full flex absolute -top-1 -right-[18px]'
             ]}
             onClick={() => {
-             onClose()
+              onClose()
             }}
           ></i>
-          <img
-            src={register_bg}
-            class={[classes.loginBg, '-mt-[10px]']}
-          />
-          <div class={ 'text-center pt-4 bg-white pb-4 pl-4 pr-4'}>
+          <img src={register_bg} class={[classes.loginBg, '-mt-[10px]']} />
+          <div class={'text-center pt-4 bg-white pb-4 pl-4 pr-4'}>
             <QrcodeVue
               value={state.qrCodeDownLoad}
               class="mx-auto shadow-lg w-[138px] h-[138px] align-middle"
             />
 
-            {/* <h3 class="text-lg text=[#1a1a1a] pt-4 pb-2">注册成功</h3> */}
             <div class={[classes.scanTxt, 'leading-6']}>
-              {/* <p>恭喜您已成功注册酷乐秀老师账号!</p> */}
               <p class=" text=[#1a1a1a] pt-4 pb-2">
                 <span>下载酷乐秀学生端APP</span>发现更大的世界
               </p>
@@ -66,7 +81,7 @@ export default defineComponent({
             >
               知道了
             </ElButton>
-          </div>
+          </div> */}
         </div>
       </>
     )

+ 1 - 1
src/views/videoDetailList/modals/showVideoDetail.tsx

@@ -37,7 +37,7 @@ export default defineComponent({
         {/*    */}
         <div class={classes.wrap}>
           <colVideo
-          styleValue={{ with: '800px', height: '450px' }}
+            styleValue={{ with: '800px', height: '450px' }}
             controls={false}
             src={state.item.videoUrl}
             class={classes.videoItemVideo}

+ 10 - 2
src/views/videoDetailList/modals/videoCourseItem.module.less

@@ -2,9 +2,9 @@
   display: flex;
   flex-direction: row;
   padding: 20px 0;
-  border-bottom: 1px solid #E7E6E6;
+  border-bottom: 1px solid #e7e6e6;
   &:hover {
-    background-color: #F4F4F4;
+    background-color: #f4f4f4;
   }
   .videoImgWrapImg {
     width: 208px;
@@ -80,6 +80,8 @@
     .el-dialog {
       --el-dialog-width: 440px !important;
       --el-dialog-bg-color: transparent !important;
+      border-radius: 10px;
+      overflow: hidden;
     }
     .el-dialog__header,
     .el-dialog__body {
@@ -101,6 +103,12 @@
   }
 }
 
+.registerSuccessBg {
+  background: url('@/views/login/images/register_popup_bg.png') no-repeat left
+    top;
+  background-size: 128px;
+}
+
 .scanTxt {
   span {
     color: var(--el-color-primary);

+ 6 - 3
src/views/videoDetailList/modals/videoCourseItem.tsx

@@ -21,7 +21,7 @@ export default defineComponent({
     const state = reactive({
       title: props.item,
       item: props.item,
-      showDown: false
+      showDown: true
     })
     watch(
       () => props.item,
@@ -39,7 +39,7 @@ export default defineComponent({
         >
           <div class={classes.videoImgWrap}>
             <img
-          class={ classes.videoImgWrapImg}
+              class={classes.videoImgWrapImg}
               src={state.item.coverUrl ? state.item.coverUrl : detaile}
               alt=""
             />
@@ -49,7 +49,10 @@ export default defineComponent({
           <div class={classes.courseInfo}>
             <h4>{state.item.videoTitle}</h4>
             <p class={classes.courseDetial}>{state.item.videoContent}</p>
-            <p  class={classes.courseDetialTime}><img src={clock} alt="" /> <span>课时:</span><span>120分钟</span></p>
+            <p class={classes.courseDetialTime}>
+              <img src={clock} alt="" /> <span>课时:</span>
+              <span>120分钟</span>
+            </p>
           </div>
           <ElDialog
             modelValue={state.showDown}