浏览代码

Squashed commit of the following:

commit e461f607e230bc11933834729815a19e6c2fe642
Author: lex-xin <2026880080@qq.com>
Date:   Fri Sep 13 16:31:36 2024 +0800

    修改

commit ef85dab6483f2553f0cce2d7f2d286c0fce224b6
Author: lex-xin <2026880080@qq.com>
Date:   Fri Sep 13 16:29:58 2024 +0800

    修改

commit b62a1051da05648248f33eebd2e0535fca1d5894
Author: lex-xin <2026880080@qq.com>
Date:   Fri Sep 13 15:34:35 2024 +0800

    update

commit e184b69f60a75598c37b3c0b26f8a742b021f948
Merge: 084133fa6 0e5e1195d
Author: lex-xin <2026880080@qq.com>
Date:   Fri Sep 13 15:21:44 2024 +0800

    Merge branch 'iteration-20240909' of http://git.dayaedu.com/liushengqiang/classroom-app into iteration-20240909

commit 084133fa68516e8c849d444a2e24a7305981d39a
Author: lex-xin <2026880080@qq.com>
Date:   Fri Sep 13 15:21:35 2024 +0800

    Update index.tsx

commit 0e5e1195d0107515dd3259f9bbc11e3cec04fffe
Author: 黄琪勇 <156749300@qq.com>
Date:   Fri Sep 13 14:05:48 2024 +0800

    去掉排序逻辑

commit 4a5fc9d0838f3169f230450abe224bc74c5f2a1b
Author: lex-xin <2026880080@qq.com>
Date:   Fri Sep 13 11:58:15 2024 +0800

    更新

commit 7f5328fc5cbab576b7af0ac9a40163a902728df4
Author: lex-xin <2026880080@qq.com>
Date:   Thu Sep 12 20:34:03 2024 +0800

    修改

commit ae04cb423e8be09403fa27c6c4308ceab1542423
Author: lex-xin <2026880080@qq.com>
Date:   Thu Sep 12 15:26:57 2024 +0800

    修改问题

commit f37b8e93d3c53d294398b4db729df354acad0d47
Author: lex-xin <2026880080@qq.com>
Date:   Wed Sep 11 15:53:27 2024 +0800

    添加修改样式
lex-xin 9 月之前
父节点
当前提交
ca7df2ef5c

+ 2 - 2
src/helpers/constant.ts

@@ -36,7 +36,7 @@ export const schoolType = {
  * 场景
  */
 export const audioPlayType = {
-  PLAY: "演奏",
   SING: "演唱",
-  PLAY_SING: "演奏+演唱"
+  PLAY: "演奏",
+  PLAY_SING: "演唱+演奏"
 } as any;

+ 1 - 0
src/helpers/utils.ts

@@ -48,6 +48,7 @@ export const browser = () => {
     }
     return IsIPad;
   }
+  //  || navigator?.userAgent?.includes("UAWEIVRD-W09") 
 
   return {
     trident: u.indexOf('Trident') > -1, //IE内核

+ 15 - 4
src/views/co-ai/index.module.less

@@ -527,6 +527,8 @@
   border: none;
   width: 63%;
   border-radius: 18px;
+  display: flex;
+  flex-direction: column;
 }
 
 .right-musicName {
@@ -543,6 +545,7 @@
 }
 
 .rightBox {
+  flex: 1;
   width: 100%;
   height: 100%;
   border-radius: 18px;
@@ -578,6 +581,7 @@
     // height: calc(100% - 78px);
     display: flex;
     flex-direction: column;
+    height: 100%;
 
     .iframeSection {
       flex: 1 auto;
@@ -586,14 +590,21 @@
         height: 100%;
       }
     }
+
+    .imgSection {
+      flex: 1 auto;
+      overflow-x: hidden;
+      overflow-y: auto;
+      height: 100%;
+    }
   }
 }
 
 .rightBtns {
-  position: absolute;
-  bottom: 0;
-  left: 0;
-  right: 0;
+  // position: absolute;
+  // bottom: 0;
+  // left: 0;
+  // right: 0;
   padding: 0 18px 18px 18px;
   display: flex;
   align-items: flex-end;

+ 92 - 31
src/views/co-ai/index.tsx

@@ -323,9 +323,9 @@ export default defineComponent({
     const musicIframeLoad = () => {
       const token = storage.get(ACCESS_TOKEN);
       const details = data.musics[data.musicIndex];
-      if(!details?.id){
-        data.iframeSrc = ""
-        return
+      if (!details?.id) {
+        data.iframeSrc = '';
+        return;
       }
       // 如果在配置里面匹配不到,则默认显示五线谱
       const musicRenderType =
@@ -376,18 +376,18 @@ export default defineComponent({
 
     // 判断 值当前有没有图片
     const isMusicImg = computed(() => {
-      const musicsData = data.musics[data.musicIndex]
-      if(data.showMusicImg === 'first' && musicsData?.musicFirstImg){
-        return true
+      const musicsData = data.musics[data.musicIndex];
+      if (data.showMusicImg === 'first' && musicsData?.musicFirstImg) {
+        return true;
       }
-      if(data.showMusicImg === 'fixed' && musicsData?.musicJianImg){
-        return true
+      if (data.showMusicImg === 'fixed' && musicsData?.musicJianImg) {
+        return true;
       }
-      if(musicsData?.musicImg) {
-        return true
+      if (musicsData?.musicImg) {
+        return true;
       }
-      return false
-    })
+      return false;
+    });
 
     // 判断是否可转谱 - 为空也可以转谱
     const checkConverTible = (isConvertibleScore: any, scoreType: string) => {
@@ -445,7 +445,7 @@ export default defineComponent({
     // 解析xml,获取分轨信息
     const analyzeXml = async () => {
       const details = data.musics[data.musicIndex];
-      console.log(details?.musicSheetType, 'details?.musicSheetType')
+      console.log(details?.musicSheetType, 'details?.musicSheetType');
       if (details?.musicSheetType === 'CONCERT') {
         if (details.xmlFileUrl) {
           const res = await fetch(details.xmlFileUrl).then(response =>
@@ -546,7 +546,9 @@ export default defineComponent({
           ?.getElementsByTagName('score-part') || [];
       const partListNames = Array.from(partList).map(
         (item: any) =>
-          item.getElementsByTagName('part-name')?.[0]?.textContent?.trim() || item.getAttribute('id') || ''
+          item.getElementsByTagName('part-name')?.[0]?.textContent?.trim() ||
+          item.getAttribute('id') ||
+          ''
       );
       const parts: any = xmlParse.getElementsByTagName('part');
 
@@ -586,8 +588,8 @@ export default defineComponent({
             track: item
           };
         })
-        .filter((item: any) => item.canselect)
-        .sort((a: any, b: any) => a.sortId - b.sortId);
+        .filter((item: any) => item.canselect);
+      //.sort((a: any, b: any) => a.sortId - b.sortId);
       data.trackList = arr;
       // 是否显示总谱
       const selectMusic = data.musics[data.musicIndex];
@@ -786,7 +788,7 @@ export default defineComponent({
                     onSearch={async val => {
                       if (!data.loading) {
                         musicForms.keyword = val;
-                        data.musicIndex = 0
+                        data.musicIndex = 0;
                         await handleReset();
                         await analyzeXml();
                         musicIframeLoad();
@@ -890,20 +892,18 @@ export default defineComponent({
                             <img src={iconFire} class={styles.iconFire} />
                             {formatUsedNum(item.usedNum)}
                           </span>
-                          {item.audioPlayTypes?.includes('PLAY') && (
-                            <span
-                              class={[styles.iconPlayType, styles.iconPlay]}>
-                              演奏
-                            </span>
-                          )}
-
                           {item.audioPlayTypes?.includes('SING') && (
                             <span
                               class={[styles.iconPlayType, styles.iconSing]}>
                               演唱
                             </span>
                           )}
-
+                          {item.audioPlayTypes?.includes('PLAY') && (
+                            <span
+                              class={[styles.iconPlayType, styles.iconPlay]}>
+                              演奏
+                            </span>
+                          )}
                           <div class={[styles.musicAuthor, 'van-ellipsis']}>
                             {item.composer || '佚名'}
                           </div>
@@ -936,11 +936,10 @@ export default defineComponent({
                 </div>
               )}
 
-              <div class={styles.ensembleSection} ref={downRef}>
+              <div class={styles.ensembleSection}>
                 <div class={styles['right-musicName']}>
                   {data.musics[data.musicIndex]?.musicSheetName}
                 </div>
-                {/* ensembleDetail */}
                 {data.iframeSrc && (isEnsemble.value || !isMusicImg.value) ? (
                   <div class={styles.iframeSection}>
                     <>
@@ -970,7 +969,7 @@ export default defineComponent({
                     </>
                   </div>
                 ) : (
-                  <>
+                  <div class={styles.imgSection}>
                     {data.showMusicImg === 'first' ? (
                       <>
                         {data.musics[data.musicIndex]?.musicFirstImg
@@ -1019,9 +1018,71 @@ export default defineComponent({
                           })}
                       </>
                     )}
-                  </>
+                  </div>
                 )}
               </div>
+
+              <div
+                class={styles.ensembleSection}
+                ref={downRef}
+                style={{
+                  display: 'block',
+                  height: 'auto',
+                }}>
+                <div class={styles['right-musicName']}>
+                  {data.musics[data.musicIndex]?.musicSheetName}
+                </div>
+                <div>
+                  {data.showMusicImg === 'first' ? (
+                    <>
+                      {data.musics[data.musicIndex]?.musicFirstImg
+                        ?.split(',')
+                        .map((item: any, index: number) => {
+                          return (
+                            <img
+                              class={styles.staff}
+                              src={item + '?v=' + Date.now()}
+                              key={item}
+                              crossorigin="anonymous"
+                            />
+                          );
+                        })}
+                    </>
+                  ) : data.showMusicImg === 'fixed' ? (
+                    <>
+                      <TransitionGroup name="van-fade">
+                        {data.musics[data.musicIndex]?.musicJianImg
+                          ?.split(',')
+                          .map((item: any, index: number) => {
+                            return (
+                              <img
+                                class={styles.staff}
+                                src={item + '?v=' + Date.now()}
+                                key={item}
+                                crossorigin="anonymous"
+                              />
+                            );
+                          })}
+                      </TransitionGroup>
+                    </>
+                  ) : (
+                    <>
+                      {data.musics[data.musicIndex]?.musicImg
+                        ?.split(',')
+                        .map((item: any, index: number) => {
+                          return (
+                            <img
+                              class={styles.staff}
+                              src={item + '?v=' + Date.now()}
+                              key={item}
+                              crossorigin="anonymous"
+                            />
+                          );
+                        })}
+                    </>
+                  )}
+                </div>
+              </div>
             </div>
 
             <div class={styles.rightBtns}>
@@ -1045,7 +1106,7 @@ export default defineComponent({
                 </Popover>
               )}
 
-              {(!isEnsemble.value && isMusicImg.value) && (
+              {!isEnsemble.value && isMusicImg.value && (
                 <img id="coai-2" src={icon_down} onClick={handleSave} />
               )}
               {data.musics[data.musicIndex]?.id && (
@@ -1121,7 +1182,7 @@ export default defineComponent({
               onClose={() => (data.showChangeVoice = false)}
               onConfirm={async (index: number) => {
                 data.selectMusicInstrumentIndex = index;
-                console.log(index, 'index-------------------')
+                console.log(index, 'index-------------------');
                 // await analyzeXml();
                 // data.iframeSrc = '';
                 musicIframeLoad();

+ 6 - 5
src/views/courseware-play/component/musicScore.module.less

@@ -38,13 +38,14 @@
 
 .startBtn {
   position: absolute;
-  left: 1%;
-  bottom: 1.93333rem;
+  left: 4.6%;
+  // bottom: 1.93333rem;
+  bottom: 20%;
   z-index: 11;
 
-  &:active {
-    opacity: .8;
-  }
+  // &:active {
+  //   opacity: .8;
+  // }
 }
 
 .loading {

+ 4 - 5
src/views/courseware-play/component/points.tsx

@@ -210,19 +210,18 @@ export default defineComponent({
 
                               <div class={styles.audioPlayTypeSection}>
                                 {material.audioPlayTypesArray.includes(
-                                  'PLAY'
+                                  'SING'
                                 ) && (
                                   <img
-                                    src={iconPlayDefault}
+                                    src={iconSingDefault}
                                     class={styles.iconPlay}
                                   />
                                 )}
-
                                 {material.audioPlayTypesArray.includes(
-                                  'SING'
+                                  'PLAY'
                                 ) && (
                                   <img
-                                    src={iconSingDefault}
+                                    src={iconPlayDefault}
                                     class={styles.iconPlay}
                                   />
                                 )}

+ 19 - 37
src/views/courseware-play/image/icon-start.svg

@@ -1,50 +1,32 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<svg width="121px" height="38px" viewBox="0 0 121 38" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-    <title>按钮/小按钮/橙</title>
+<svg width="95px" height="32px" viewBox="0 0 95 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <title>按钮/小按钮/橙备份</title>
     <defs>
-        <linearGradient x1="15.3622126%" y1="46.5566937%" x2="89.7647319%" y2="53.6358332%" id="linearGradient-1">
-            <stop stop-color="#FF9C63" offset="0%"></stop>
-            <stop stop-color="#FF7144" offset="100%"></stop>
+        <linearGradient x1="2.80023677%" y1="49.0374063%" x2="97.3547855%" y2="51.4481282%" id="linearGradient-1">
+            <stop stop-color="#45CBFE" offset="0%"></stop>
+            <stop stop-color="#239DFD" offset="100%"></stop>
         </linearGradient>
-        <linearGradient x1="-67.2865798%" y1="54.9313571%" x2="100%" y2="50%" id="linearGradient-2">
-            <stop stop-color="#5BECFF" offset="0%"></stop>
-            <stop stop-color="#259CFE" offset="100%"></stop>
-        </linearGradient>
-        <rect id="path-3" x="0" y="0" width="121" height="38" rx="19"></rect>
-        <text id="text-4" font-family="PingFangSC-Medium, PingFang SC" font-size="16" font-weight="400" fill="#FFFFFF">
-            <tspan x="49" y="24">去练习</tspan>
-        </text>
-        <filter x="-4.2%" y="-4.5%" width="108.3%" height="118.2%" filterUnits="objectBoundingBox" id="filter-5">
-            <feOffset dx="0" dy="1" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
-            <feGaussianBlur stdDeviation="0.5" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
-            <feColorMatrix values="0 0 0 0 0.108514357   0 0 0 0 0.562412481   0 0 0 0 0.907525104  0 0 0 1 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
-        </filter>
-        <linearGradient x1="50%" y1="0%" x2="50%" y2="100%" id="linearGradient-6">
+        <rect id="path-2" x="0" y="0" width="95" height="32" rx="16"></rect>
+        <linearGradient x1="50%" y1="0%" x2="50%" y2="100%" id="linearGradient-3">
             <stop stop-color="#FCFFFF" offset="0%"></stop>
-            <stop stop-color="#D4F1FF" offset="100%"></stop>
+            <stop stop-color="#FFE4D4" offset="100%"></stop>
         </linearGradient>
-        <path d="M10,0 C15.5228475,0 20,4.4771525 20,10 C20,15.5228475 15.5228475,20 10,20 C4.4771525,20 0,15.5228475 0,10 C0,4.4771525 4.4771525,0 10,0 Z M15.8740909,4.13727273 C15.7362351,3.65455394 15.2331964,3.37495234 14.7504546,3.51272728 L10.205,4.81181817 C9.89624241,4.89978885 9.65677854,5.14409039 9.57499999,5.45454546 L9.54545455,5.45454546 L9.54590909,11.0254545 C8.4211929,10.2420678 6.92120134,10.2669785 5.82311793,11.0872797 C4.72503453,11.907581 4.27567032,13.3388975 4.70785225,14.6396281 C5.14003419,15.9403587 6.35662277,16.8181818 7.72727272,16.8181818 L7.83636363,16.8163636 C9.5501842,16.7575695 10.9091192,15.3511924 10.9090909,13.6363636 L10.9090909,8.24636364 L15.25,7.00636364 C15.6400039,6.89481163 15.9089107,6.53837105 15.9090909,6.13272727 L15.9090909,4.38727272 C15.9090909,4.30271722 15.8973272,4.21857285 15.8740909,4.13727273 Z" id="path-7"></path>
-        <filter x="-10.0%" y="-5.0%" width="120.0%" height="120.0%" filterUnits="objectBoundingBox" id="filter-8">
-            <feOffset dx="0" dy="1" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
-            <feGaussianBlur stdDeviation="0.5" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
-            <feColorMatrix values="0 0 0 0 0.108514357   0 0 0 0 0.562412481   0 0 0 0 0.907525104  0 0 0 1 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
-        </filter>
+        <path d="M10,0 C15.5228475,0 20,4.4771525 20,10 C20,15.5228475 15.5228475,20 10,20 C4.4771525,20 0,15.5228475 0,10 C0,4.4771525 4.4771525,0 10,0 Z M15.8740909,4.13727273 C15.7362351,3.65455394 15.2331964,3.37495234 14.7504546,3.51272728 L10.205,4.81181817 C9.89624241,4.89978885 9.65677854,5.14409039 9.57499999,5.45454546 L9.54545455,5.45454546 L9.54590909,11.0254545 C8.4211929,10.2420678 6.92120134,10.2669785 5.82311793,11.0872797 C4.72503453,11.907581 4.27567032,13.3388975 4.70785225,14.6396281 C5.14003419,15.9403587 6.35662277,16.8181818 7.72727272,16.8181818 L7.83636363,16.8163636 C9.5501842,16.7575695 10.9091192,15.3511924 10.9090909,13.6363636 L10.9090909,8.24636364 L15.25,7.00636364 C15.6400039,6.89481163 15.9089107,6.53837105 15.9090909,6.13272727 L15.9090909,4.38727272 C15.9090909,4.30271722 15.8973272,4.21857285 15.8740909,4.13727273 Z" id="path-4"></path>
     </defs>
     <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
-        <g id="课件列表" transform="translate(-350.000000, -321.000000)">
-            <g id="编组-2" transform="translate(350.000000, 321.000000)">
+        <g id="数字课堂课件页面-小酷AI-去练习" transform="translate(-103.000000, -261.000000)">
+            <g id="编组-2" transform="translate(103.000000, 261.000000)">
                 <g id="button-normal">
-                    <use fill="url(#linearGradient-1)" xlink:href="#path-3"></use>
-                    <use fill="url(#linearGradient-2)" xlink:href="#path-3"></use>
-                </g>
-                <g id="确定" fill-rule="nonzero" fill="#FFFFFF" fill-opacity="1">
-                    <use filter="url(#filter-5)" xlink:href="#text-4"></use>
-                    <use xlink:href="#text-4"></use>
+                    <use fill="url(#linearGradient-1)" xlink:href="#path-2"></use>
+                    <use fill="#FFC121" xlink:href="#path-2"></use>
                 </g>
-                <g id="编组" transform="translate(24.000000, 9.000000)" fill-rule="nonzero">
+                <g id="编组-20" transform="translate(14.000000, 6.000000)" fill-rule="nonzero">
+                    <text id="确定" font-family="PingFangSC-Medium, PingFang SC" font-size="14" font-weight="400" fill="#7D4D00">
+                        <tspan x="25" y="15">去练习</tspan>
+                    </text>
                     <g id="形状结合">
-                        <use fill="black" fill-opacity="1" filter="url(#filter-8)" xlink:href="#path-7"></use>
-                        <use fill="url(#linearGradient-6)" xlink:href="#path-7"></use>
+                        <use fill="url(#linearGradient-3)" xlink:href="#path-4"></use>
+                        <use fill="#7D4D00" xlink:href="#path-4"></use>
                     </g>
                 </g>
             </g>

+ 8 - 4
src/views/hot-music-more/index.module.less

@@ -88,6 +88,10 @@
   height: calc(100vh - var(--header-height));
 }
 
+.musicListSection {
+  overflow: hidden;
+}
+
 .musicList {
   margin: 8px 13px 13px;
   background: #FFFFFF;
@@ -156,16 +160,16 @@
       padding: 2px 3px 1px;
       background: #FFF8F7;
       border-radius: 3px;
-      border: 1px solid #FFC5C5;
+      border: 0.6px solid #FFC5C5;
       line-height: 1;
-      margin-right: 2px;
+      margin-right: 1px;
       transform: scale(0.85);
 
       .iconFire {
         display: inline-block;
         width: 8px;
         height: 10px;
-        margin-right: 3px;
+        margin-right: 1px;
       }
     }
 
@@ -175,7 +179,7 @@
       background: #FFFFFF;
       border-radius: 3px;
       line-height: 1;
-      margin-right: 3px;
+      margin-right: 1px;
       transform: scale(0.85);
     }
 

+ 10 - 9
src/views/hot-music-more/index.tsx

@@ -432,7 +432,8 @@ export default defineComponent({
           onLoad={getMusicList}
           immediateCheck={false}>
           {state.musics.length > 0 && (
-            <div class={styles.musicList}>
+            <div class={styles.musicListSection}>
+              <div class={styles.musicList}>
               {state.musics.map((item: any) => (
                 <Cell
                   class={styles.musicItem}
@@ -458,19 +459,18 @@ export default defineComponent({
                             <img src={iconFire} class={styles.iconFire} />
                             {formatUsedNum(item.usedNum)}
                           </span>
-                          {item.audioPlayTypes?.includes('PLAY') && (
-                            <span
-                              class={[styles.iconPlayType, styles.iconPlay]}>
-                              演奏
-                            </span>
-                          )}
-
                           {item.audioPlayTypes?.includes('SING') && (
                             <span
                               class={[styles.iconPlayType, styles.iconSing]}>
                               演唱
                             </span>
                           )}
+                          {item.audioPlayTypes?.includes('PLAY') && (
+                            <span
+                              class={[styles.iconPlayType, styles.iconPlay]}>
+                              演奏
+                            </span>
+                          )}
 
                           {item.composer && <p>{item.composer}</p>}
                         </div>
@@ -483,6 +483,7 @@ export default defineComponent({
                 </Cell>
               ))}
             </div>
+            </div>
           )}
         </List>
 
@@ -511,7 +512,7 @@ export default defineComponent({
                   // musicForms.grade = state.sGrade;
                   musicForms.audioPlayTypes = state.sAPT
                     ? state.sAPT === 'PLAY_SING'
-                      ? ['PLAY', 'SING']
+                      ? ['SING', 'PLAY']
                       : [state.sAPT]
                     : [];
                   state.searchPopup = false;