Forráskód Böngészése

Merge branch 'iteration-20240425-subject' into online

lex 1 éve
szülő
commit
86b3a89290

+ 1 - 1
src/views/co-ai/baseIndex.tsx

@@ -76,7 +76,7 @@ export default defineComponent({
       const { musicTagId, ...music } = forms;
       const res = await api_musicSheetCategoriesPage({
         musicTagIds: [musicTagId],
-        subjectId: state.user.data?.subjectId || '',
+        // subjectId: state.user.data?.subjectId || '',
         enable: true,
         ...music
         // currentGradeNum: forms.currentGradeNum ? forms.currentGradeNum : ''

+ 1 - 1
src/views/co-ai/index.tsx

@@ -63,7 +63,7 @@ export default defineComponent({
       page: 1,
       rows: 999,
       enable: true,
-      subjectId: state.user.data?.subjectId || '',
+      // subjectId: state.user.data?.subjectId || '',
       musicTagIds: route.query.musicTagId ? [route.query.musicTagId] : []
     });
     const musicForms = reactive({

+ 75 - 0
src/views/courseware-list/index.module.less

@@ -385,6 +385,81 @@
     }
   }
 
+  .subjectItem {
+    width: 31%;
+    height: 30px;
+    // line-height: 30px;
+    text-align: center;
+    background: #F6F6F6;
+    border-radius: 50px;
+    font-size: 13px;
+    color: #333333;
+    border: 1px solid #F6F6F6;
+    margin-bottom: 12px;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+
+    &:nth-child(3n + 2) {
+      margin-left: 2.333%;
+      margin-right: 2.333%;
+    }
+
+    // &:nth-child(3n + 3) {
+    //   margin-left: 2.333%;
+    // }
+
+    &.arrow::after {
+      content: '';
+      display: inline-block;
+      margin-left: 3px;
+      width: 0;
+      height: 0;
+      border-left: 4px solid transparent;
+      border-right: 4px solid transparent;
+      border-top: 4px solid transparent;
+      border-bottom: 4px solid #777777;
+      transform: translateY(3px) rotate(180deg);
+    }
+
+
+    &.active {
+      border: 1px solid #1CACF1;
+      background: #EBF8FF;
+      color: #1CACF1;
+
+      &::after {
+        border-bottom: 4px solid #1CACF1;
+        transform: translateY(-2px) rotate(0deg);
+      }
+    }
+  }
+
+  // .arrow::after {
+  //   content: '';
+  //   display: inline-block;
+  //   margin-left: 3px;
+  //   width: 0;
+  //   height: 0;
+  //   border-left: 4px solid transparent;
+  //   border-right: 4px solid transparent;
+  //   border-top: 4px solid transparent;
+  //   border-bottom: 4px solid #777777;
+  //   transform: translateY(3px) rotate(180deg);
+  // }
+
+
+  // &.active {
+  //   border: 1px solid #1CACF1;
+  //   background: #EBF8FF;
+  //   color: #1CACF1;
+
+  //   &::after {
+  //     border-bottom: 4px solid #1CACF1;
+  //     transform: translateY(-2px) rotate(0deg);
+  //   }
+  // }
+
   .btnGroup {
     border: 1px solid #f2f2f2;
     padding: 16px 12px;

+ 78 - 44
src/views/courseware-list/index.tsx

@@ -84,24 +84,28 @@ export default defineComponent({
     const forms = reactive({
       currentGradeNum: coursewareStorage.currentGradeNum || null,
       bookVersionId: coursewareStorage.bookVersionId || (null as any),
-      subjectId:
-        coursewareStorage.subjectId ||
-        state.user.data?.subjectId ||
-        (null as any),
+      // instrumentId:
+      //   coursewareStorage.instrumentId ||
+      //   state.user.data?.instrumentId ||
+      //   (null as any),
+      // subjectId:
+      //   coursewareStorage.subjectId ||
+      //   state.user.data?.subjectId ||
+      //   (null as any),
       page: 1,
       rows: 999,
       type: 'COURSEWARE'
     });
-    const _actions = computed(() => {
-      return BOOK_DATA.grades.map((item, index) => {
-        return {
-          ...item,
-          color:
-            forms.currentGradeNum === index ? 'var(--van-primary-color)' : '',
-          className: forms.currentGradeNum === index ? 'fontBlod' : ''
-        };
-      });
-    });
+    // const _actions = computed(() => {
+    //   return BOOK_DATA.grades.map((item, index) => {
+    //     return {
+    //       ...item,
+    //       color:
+    //         forms.currentGradeNum === index ? 'var(--van-primary-color)' : '',
+    //       className: forms.currentGradeNum === index ? 'fontBlod' : ''
+    //     };
+    //   });
+    // });
     // const onSelect = (action: any, index: number) => {
     //   forms.currentGradeNum = index;
     //   handleChange();
@@ -115,6 +119,7 @@ export default defineComponent({
       details: [] as any[],
       bookData: {} as any,
       subjectList: [] as any,
+      instrumentList: [] as any, // 乐器列表
       showBook: false,
       book: {} as DOMRect
     });
@@ -171,7 +176,7 @@ export default defineComponent({
         userId: state.user?.data?.id,
         page: forms.page,
         rows: forms.rows,
-        subjectId: forms.subjectId,
+        // subjectId: forms.subjectId,
         bookVersionId: forms.bookVersionId != -1 ? forms.bookVersionId : '',
         currentGradeNum: forms.currentGradeNum ? forms.currentGradeNum : ''
       });
@@ -194,7 +199,7 @@ export default defineComponent({
         bookVersionId: forms.bookVersionId ? forms.bookVersionId : '',
         page: forms.page,
         rows: forms.rows,
-        subjectId: forms.subjectId,
+        // subjectId: forms.subjectId,
         currentGradeNum: forms.currentGradeNum ? forms.currentGradeNum : ''
       });
       if (res?.code === 200 && Array.isArray(res?.data?.rows)) {
@@ -255,6 +260,14 @@ export default defineComponent({
       // console.log(browser().isTablet, 'browser().isTablet');
       await getTanentList();
       await getSubjectList();
+
+      // if (forms.subjectId && data.subjectList.length > 0) {
+      //   data.subjectList.forEach((item: any) => {
+      //     if (item.id == forms.subjectId) {
+      //       data.instrumentList = item.instruments || [];
+      //     }
+      //   });
+      // }
       getData();
       // 安卓的状态栏
       postMessage({
@@ -293,8 +306,8 @@ export default defineComponent({
     const getDetail = async (item: any) => {
       if (data.tab === 'course') {
         const res = await api_classLessonCoursewareDetail({
-          id: item.id,
-          subjectId: forms.subjectId
+          id: item.id
+          // subjectId: forms.subjectId
         });
         if (res?.code == 200 && Array.isArray(res?.data?.lessonList)) {
           data.details = res.data.lessonList || [];
@@ -316,8 +329,8 @@ export default defineComponent({
         }
       } else {
         const res = await api_lessonCoursewareDetail({
-          id: item.id,
-          subjectId: forms.subjectId
+          id: item.id
+          // subjectId: forms.subjectId
         });
         if (res?.code == 200 && Array.isArray(res?.data?.lessonList)) {
           data.details = res.data.lessonList || [];
@@ -379,7 +392,6 @@ export default defineComponent({
               styles.downBtn,
               (data.tab != 'course' && forms.bookVersionId > 0) ||
               (data.tab == 'course' && forms.bookVersionId) ||
-              forms.subjectId ||
               forms.currentGradeNum
                 ? styles.activeBtn
                 : ''
@@ -388,9 +400,7 @@ export default defineComponent({
             size="small"
             onClick={() => (popoverShow.value = true)}
             {...{ id: 'courseware-3' }}>
-            {/* {BOOK_DATA.grades[forms.currentGradeNum].text} */}
             筛选
-            {/* <img class={styles.icon} src={icon_arrow} /> */}
             <svg
               class={[styles.icon, popoverShow.value ? styles.iconUp : '']}
               width="9px"
@@ -423,17 +433,6 @@ export default defineComponent({
               </g>
             </svg>
           </Button>
-          {/* <Popover
-            v-model:show={popoverShow.value}
-            class={styles.popover}
-            actions={_actions.value}
-            onSelect={onSelect}>
-            {{
-              reference: () => (
-
-              )
-            }}
-          </Popover> */}
         </div>
 
         <div
@@ -499,7 +498,7 @@ export default defineComponent({
         <TheBook
           show={data.showBook}
           bookData={data.bookData}
-          subjectId={forms.subjectId}
+          // subjectId={forms.subjectId}
           tab={data.tab}
           rect={data.book}
           onClose={() => {
@@ -542,17 +541,43 @@ export default defineComponent({
                 ))}
               </div>
 
-              <div class={styles.popoverTitle}>选择声部</div>
+              {/* <div class={styles.popoverTitle}>选择声部</div>
               <div class={[styles.popupList, styles.versionList]}>
                 {data.subjectList.map((item: any) => (
-                  <Tag
-                    plain={forms.subjectId == item.id}
-                    round
-                    onClick={() => (forms.subjectId = item.id)}>
+                  <span
+                    // plain={forms.subjectId == item.id}
+                    class={[
+                      styles.subjectItem,
+                      forms.subjectId == item.id && styles.active,
+                      item.instruments?.length > 0 && styles.arrow
+                    ]}
+                    onClick={() => {
+                      forms.subjectId = item.id;
+                      data.instrumentList = item.instruments || [];
+                      if (data.instrumentList.length > 0) {
+                        forms.instrumentId = data.instrumentList[0].id;
+                      }
+                    }}>
                     {item.name}
-                  </Tag>
+                  </span>
                 ))}
               </div>
+
+              {data.instrumentList.length > 0 && (
+                <>
+                  <div class={styles.popoverTitle}>选择乐器</div>
+                  <div class={[styles.popupList, styles.versionList]}>
+                    {data.instrumentList.map((item: any) => (
+                      <Tag
+                        plain={forms.instrumentId == item.id}
+                        round
+                        onClick={() => (forms.instrumentId = item.id)}>
+                        {item.name}
+                      </Tag>
+                    ))}
+                  </div>
+                </>
+              )}*/}
             </div>
 
             <div class={styles.btnGroup}>
@@ -561,7 +586,15 @@ export default defineComponent({
                 onClick={() => {
                   forms.bookVersionId = null;
                   forms.currentGradeNum = null;
-                  forms.subjectId = state.user.data?.subjectId || null;
+                  // forms.subjectId = state.user.data?.subjectId || null;
+                  // forms.instrumentId = state.user.data?.instrumentId || null;
+                  // if (forms.subjectId && data.subjectList.length > 0) {
+                  //   data.subjectList.forEach((item: any) => {
+                  //     if (item.id == forms.subjectId) {
+                  //       data.instrumentList = item.instruments || [];
+                  //     }
+                  //   });
+                  // }
                 }}>
                 重置
               </Button>
@@ -574,8 +607,9 @@ export default defineComponent({
                     'courseware-list',
                     JSON.stringify({
                       bookVersionId: forms.bookVersionId,
-                      currentGradeNum: forms.currentGradeNum,
-                      subjectId: forms.subjectId
+                      currentGradeNum: forms.currentGradeNum
+                      // subjectId: forms.subjectId,
+                      // instrumentId: forms.instrumentId
                     })
                   );
                   getData();

+ 5 - 5
src/views/hot-music-more/index.tsx

@@ -102,14 +102,14 @@ export default defineComponent({
     /** 获取音乐教材列表 */
     const getMusicSheetCategories = async () => {
       try {
-        let subjectIds = baseState.user.data?.subjectId || '';
-        subjectIds = subjectIds.split(',');
-        const subjectId = subjectIds[0] || '';
+        // let subjectIds = baseState.user.data?.subjectId || '';
+        // subjectIds = subjectIds.split(',');
+        // const subjectId = subjectIds[0] || '';
         const res = await api_musicSheetCategoriesPage({
           page: 1,
           rows: 999,
-          enable: true,
-          subjectId: subjectId
+          enable: true
+          // subjectId: subjectId
           // musicTagIds: route.query.musicTagId ? [route.query.musicTagId] : []
         });
         if (res.code === 200 && Array.isArray(res?.data?.rows)) {

BIN
src/views/student-register/images/new/icon-8.png


BIN
src/views/student-register/images/new/tuangou1.png


+ 1 - 1
src/views/student-register/index-apply.tsx

@@ -1700,7 +1700,7 @@ export default defineComponent({
               <div class={[styles.memberNumer, styles.aiMemberNumber]}>
                 <img src={iconGift} class={styles.iconGift} />
                 <p>
-                  现在购买赠送乐器AI学练工具
+                  首次购买赠送乐器AI学练工具
                   <span>{forms.detailVip.membershipDays || 0}</span>天有效期
                 </p>
               </div>

+ 1 - 1
src/views/student-register/index-origin.tsx

@@ -403,7 +403,7 @@ export default defineComponent({
                     title: () => (
                       <div class={styles.gift}>
                         <img src={iconGift} class={styles.iconGift} />
-                        现在购买赠送 <span>{item.membershipDays || 0}</span>
+                        首次购买赠送 <span>{item.membershipDays || 0}</span>
                         天有效期
                       </div>
                     )

+ 1 - 1
src/views/student-register/index.tsx

@@ -1640,7 +1640,7 @@ export default defineComponent({
                 <div class={styles.memberNumer}>
                   <img src={iconGift} class={styles.iconGift} />
                   <p>
-                    现在购买赠送乐器AI学练工具
+                    首次购买赠送乐器AI学练工具
                     <span>{forms.detailVip.membershipDays || 0}</span>天有效期
                   </p>
                 </div>

+ 1 - 3
src/views/student-register/register-new/index.tsx

@@ -741,9 +741,7 @@ export default defineComponent({
                 required
                 input-align="right"
               />
-              {studentInfo.extra.registerType === 'GIFT_VIP_DAY' &&
-              forms.giftVipDay &&
-              Number(forms.giftVipDay) > 0 ? (
+              {forms.giftVipDay && Number(forms.giftVipDay) > 0 ? (
                 <div class={styles.giftTips}>
                   <img src={vipGiftIcon} />
                   <span>

+ 9 - 0
src/views/tempo-practice/index.module.less

@@ -17,6 +17,10 @@
       pointer-events: none;
       visibility: hidden;
     }
+
+    .head {
+      padding: 0 23px 8px 23px;
+    }
   }
 
   &.courseware {
@@ -273,6 +277,11 @@
     height: 39px;
   }
 
+  .setting {
+    width: 74px;
+    height: 39px;
+  }
+
   .speedChange {
     width: 110px;
     height: 39px;