lex 1 год назад
Родитель
Сommit
a774fa792b
2 измененных файлов с 45 добавлено и 4 удалено
  1. 10 0
      src/views/courseware-list/api.ts
  2. 35 4
      src/views/courseware-list/index.tsx

+ 10 - 0
src/views/courseware-list/api.ts

@@ -52,3 +52,13 @@ export const api_tenantInfoDetail = (params: any): Promise<any> => {
     params: params
   });
 };
+
+/**
+ * 获取声部列表
+ * returns subjects
+ */
+export const api_subjectList = (params: any) => {
+  return request.post('/edu-app/subject/page', {
+    data: params
+  });
+};

+ 35 - 4
src/views/courseware-list/index.tsx

@@ -31,7 +31,8 @@ import {
   api_lessonCoursewareDetail,
   api_classLessonCoursewarePage,
   api_classLessonCoursewareDetail,
-  api_tenantInfoDetail
+  api_tenantInfoDetail,
+  api_subjectList
 } from './api';
 import { NImage } from 'naive-ui';
 import { state } from '@/state';
@@ -79,6 +80,7 @@ export default defineComponent({
     const forms = reactive({
       currentGradeNum: null,
       bookVersionId: null as any,
+      subjectId: null,
       page: 1,
       rows: 999,
       type: 'COURSEWARE'
@@ -105,6 +107,7 @@ export default defineComponent({
       tab: 'all',
       details: [] as any[],
       bookData: {} as any,
+      subjectList: [] as any,
       showBook: false,
       book: {} as DOMRect
     });
@@ -143,10 +146,9 @@ export default defineComponent({
         });
       }
       data.loading = false;
-      setTimeout(()=>{
+      setTimeout(() => {
         isShowGuide.value = true;
-      },100)
-
+      }, 100);
     };
     const getFavoriteList = async () => {
       data.loading = true;
@@ -155,6 +157,7 @@ export default defineComponent({
         userId: state.user?.data?.id,
         page: forms.page,
         rows: forms.rows,
+        subjectId: forms.subjectId,
         bookVersionId: forms.bookVersionId != -1 ? forms.bookVersionId : '',
         currentGradeNum: forms.currentGradeNum ? forms.currentGradeNum : ''
       });
@@ -177,6 +180,7 @@ export default defineComponent({
         bookVersionId: forms.bookVersionId ? forms.bookVersionId : '',
         page: forms.page,
         rows: forms.rows,
+        subjectId: forms.subjectId,
         currentGradeNum: forms.currentGradeNum ? forms.currentGradeNum : ''
       });
       if (res?.code === 200 && Array.isArray(res?.data?.rows)) {
@@ -214,7 +218,21 @@ export default defineComponent({
       }
       getData();
     };
+
+    const getSubjectList = async () => {
+      try {
+        const res = await api_subjectList({
+          enableFlag: true,
+          delFlag: 0,
+          page: 1,
+          rows: 999
+        });
+        console.log(res.data, ' subjectList');
+        data.subjectList = res.data.rows || [];
+      } catch {}
+    };
     onMounted(() => {
+      getSubjectList();
       getTanentList();
       getData();
     });
@@ -321,6 +339,7 @@ export default defineComponent({
               styles.downBtn,
               (data.tab != 'course' && forms.bookVersionId > 0) ||
               (data.tab == 'course' && forms.bookVersionId) ||
+              forms.subjectId ||
               forms.currentGradeNum
                 ? styles.activeBtn
                 : ''
@@ -473,6 +492,18 @@ export default defineComponent({
                   </Tag>
                 ))}
               </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)}>
+                    {item.name}
+                  </Tag>
+                ))}
+              </div>
             </div>
 
             <div class={styles.btnGroup}>