Kaynağa Gözat

Merge branch 'iteration-login'

liushengqiang 1 yıl önce
ebeveyn
işleme
e90a2ade8f

+ 21 - 10
src/views/classList/components/classRecord.tsx

@@ -11,6 +11,7 @@ import { getTimes } from '/src/utils';
 export default defineComponent({
   name: 'class-record',
   setup() {
+    const route = useRoute();
     const nowTime = dayjs().format('YYYY-MM-DD');
     const state = reactive({
       searchForm: {
@@ -27,7 +28,6 @@ export default defineComponent({
       },
       tableList: [] as any
     });
-    const route = useRoute();
     const search = () => {
       state.pagination.page = 1;
       getList();
@@ -40,7 +40,7 @@ export default defineComponent({
     const getList = async () => {
       state.loading = true;
       try {
-        const res = await courseSchedulePage({
+        const { data } = await courseSchedulePage({
           classGroupId: route.query.id,
           ...getTimes(
             state.searchForm.createTimer,
@@ -49,12 +49,17 @@ export default defineComponent({
           ),
           ...state.pagination
         });
-        state.tableList = res.data.rows;
-        state.pagination.pageTotal = res.data.total;
+        const rows = data.rows || [];
+        rows.forEach((row: any) => {
+          row.lessonCourseware = row.lessonCoursewareJson
+            ? JSON.parse(row.lessonCoursewareJson)
+            : {};
+        });
+        state.tableList = rows;
+        state.pagination.pageTotal = data.total;
         state.loading = false;
       } catch (e) {
         state.loading = false;
-        console.log(e);
       }
     };
     onMounted(() => {
@@ -95,9 +100,11 @@ export default defineComponent({
                   <div class={styles.time}>
                     {dayjs(item.classDate).format('YYYY-MM-DD')}
                   </div>
-                  <NTag type="primary" class={styles.ntag} strong>
-                    三年二班
-                  </NTag>
+                  {route.query.name && (
+                    <NTag type="primary" class={styles.ntag} strong>
+                      {route.query.name}
+                    </NTag>
+                  )}
                 </div>
                 <div class={styles.content}>
                   <NAvatar
@@ -108,8 +115,12 @@ export default defineComponent({
                   <div class={styles.userInfo}>
                     <h2>{item.teacherName}</h2>
                     <p>
-                      人教版二年级上册 | 第二十一单元
-                      |【歌表演】我和我的祖国一刻也不能分割
+                      {item.lessonCourseware.lessonCoursewareName} |{' '}
+                      {item.lessonCourseware.lessonCoursewareDetailName}|{' '}
+                      {
+                        item.lessonCourseware
+                          .lessonCoursewareKnowledgeDetailName
+                      }
                     </p>
                   </div>
                 </div>

+ 17 - 0
src/views/xiaoku-ai/api.ts

@@ -28,3 +28,20 @@ export const api_musicSheetPage = (params: any) => {
     data: params
   });
 };
+
+/**
+ * 查询曲谱收藏状态
+ */
+export const api_materialFavoriteStatus = (params: any) => {
+  return request.post('/edu-app/material/favoriteStatus', {
+    data: params
+  });
+};
+/**
+ * 曲谱收藏
+ */
+export const api_materialFavorite = (params: any) => {
+  return request.post('/edu-app/material/favorite', {
+    data: params
+  });
+};

+ 28 - 4
src/views/xiaoku-music/index.tsx

@@ -32,7 +32,12 @@ import { useRoute, useRouter } from 'vue-router';
 import PlayItem from './component/play-item';
 import PlayLoading from './component/play-loading';
 import TheNoticeBar from '/src/components/TheNoticeBar';
-import { api_musicSheetPage, api_subjectList } from '../xiaoku-ai/api';
+import {
+  api_materialFavorite,
+  api_materialFavoriteStatus,
+  api_musicSheetPage,
+  api_subjectList
+} from '../xiaoku-ai/api';
 import { useUserStore } from '/src/store/modules/users';
 
 export default defineComponent({
@@ -85,6 +90,9 @@ export default defineComponent({
         data.finshed = res.data.rows.length < forms.rows;
         console.log('🚀 ~ data.finshed:', data.finshed);
       }
+      if (data.list[data.listActive]) {
+        getFavitor(data.list[data.listActive]);
+      }
       data.loading = false;
     };
 
@@ -113,6 +121,16 @@ export default defineComponent({
         obv.observe(spinRef.value);
       });
     });
+    /** 查看收藏状态 */
+    const getFavitor = async (item: any) => {
+      const res = await api_materialFavoriteStatus({
+        type: 'MUSIC',
+        materialId: item.id
+      });
+      if (res?.code === 200) {
+        item.favitor = res.data;
+      }
+    };
 
     /** 改变模仿的曲谱 */
     const handleChange = (item: IMusicItem) => {
@@ -120,15 +138,21 @@ export default defineComponent({
       if (index > -1) {
         data.listActive = index;
       }
+      getFavitor(item);
     };
     /** 选中的item */
     const activeItem = computed(() => {
       return data.list[data.listActive] || {};
     });
 
-    /** 收藏 */
+    /** 收藏曲谱 */
     const handleFavitor = () => {
-      data.list[data.listActive].delFlag = !data.list[data.listActive].delFlag;
+      data.list[data.listActive].favitor = !data.list[data.listActive].favitor;
+      api_materialFavorite({
+        favoriteFlag: data.list[data.listActive].favitor,
+        type: 'MUSIC',
+        materialId: data.list[data.listActive].id
+      });
     };
 
     /** 播放曲目 */
@@ -313,7 +337,7 @@ export default defineComponent({
                   class={styles.favitor}
                   onClick={() => handleFavitor()}>
                   <Transition name="favitor" mode="out-in">
-                    {activeItem.value.delFlag ? (
+                    {activeItem.value.favitor ? (
                       <img src={icon_favitorActive} key="1" />
                     ) : (
                       <img src={icon_favitor} key="2" />

+ 1 - 0
src/views/xiaoku-music/type.ts

@@ -10,4 +10,5 @@ export interface IMusicItem {
   /** 首调 */
   firstTone: string;
   delFlag: boolean;
+  favitor: boolean;
 }

+ 2 - 2
vite.config.ts

@@ -13,8 +13,8 @@ function resolve(dir: string) {
 }
 // https://vitejs.dev/config/
 // https://github.com/vitejs/vite/issues/1930 .env
-// const proxyUrl = 'https://dev.kt.colexiu.com/';
-const proxyUrl = 'https://test.lexiaoya.cn';
+const proxyUrl = 'https://dev.kt.colexiu.com/';
+// const proxyUrl = 'https://test.lexiaoya.cn';
 export default defineConfig({
   base: './',
   plugins: [