lex 1 år sedan
förälder
incheckning
fd321e18a3

+ 27 - 13
src/views/prepare-lessons/components/lesson-main/courseware/index.tsx

@@ -40,10 +40,20 @@ export default defineComponent({
     const router = useRouter();
     const dialog = useDialog();
     const message = useMessage();
+
+    const localStorageSubjectId = localStorage.getItem(
+      'prepareLessonSubjectId'
+    );
+
     const forms = reactive({
       className: route.query.name as any,
       classGroupId: route.query.classGroupId,
-      subjectId: route.query.subjectId ? Number(route.query.subjectId) : null,
+      // 选取参数带的,后取缓存
+      subjectId: route.query.subjectId
+        ? Number(route.query.subjectId)
+        : localStorageSubjectId
+        ? Number(localStorageSubjectId)
+        : null,
       coursewareList: [] as any,
       loadingStatus: false,
       showAttendClass: false,
@@ -281,26 +291,32 @@ export default defineComponent({
 
       // 并且没有声部时才会更新
       if (subjectList.length > 0) {
+        // 并且声部在列表中
+        const localStorageSubjectId = localStorage.getItem(
+          'prepareLessonSubjectId'
+        );
+        const subjectId =
+          forms.subjectId || localStorageSubjectId
+            ? Number(localStorageSubjectId)
+            : null;
         // 判断浏览器上面是否有
         const index = subjectList.findIndex(
-          (subject: any) => subject.id == forms.subjectId
+          (subject: any) => subject.id == subjectId
         );
 
-        // 并且声部在列表中
-        if (forms.subjectId && index >= 0) {
-          prepareStore.setSubjectId(forms.subjectId);
+        if (subjectId && index >= 0) {
+          prepareStore.setSubjectId(subjectId);
         } else {
           // 判断是否有缓存
           prepareStore.setSubjectId(subjectList[0].id);
         }
 
-        // console.log(prepareStore.getSubjectId, 'getSubjectId');
+        // 保存
+        localStorage.setItem(
+          'prepareLessonSubjectId',
+          prepareStore.getSubjectId as any
+        );
       }
-      // 保存
-      localStorage.setItem(
-        'prepareLessonSubjectId',
-        prepareStore.getSubjectId as any
-      );
     };
 
     watch(
@@ -715,8 +731,6 @@ export default defineComponent({
                   forms.removeVisiable1 = false;
                   forms.isEdit = true;
                   // prepareStore.setCoursewareList([]);
-
-                  console.log(prepareStore.getCoursewareList, 'getCourseware1');
                 }}>
                 确定
               </NButton>

+ 1 - 1
src/views/prepare-lessons/components/lesson-main/index.tsx

@@ -16,7 +16,7 @@ export default defineComponent({
           paneClass={styles.paneTitle}
           justifyContent="center"
           paneWrapperClass={styles.paneWrapperContainer}
-          onUpdate: value={(val: string) => {
+          onUpdate:value={(val: string) => {
             prepareStore.setTabType(val);
           }}>
           <NTabPane name="courseware" tab="课件" displayDirective="show">

+ 58 - 8
src/views/xiaoku-ai/index.tsx

@@ -12,10 +12,13 @@ export default defineComponent({
   setup() {
     const catchStore = useCatchStore();
     const router = useRouter();
+
+    const xiaokuAiSearch = localStorage.getItem('xiaoku-ai-search');
+    const xiaokuAi = xiaokuAiSearch ? JSON.parse(xiaokuAiSearch) : {};
     const forms = reactive({
-      musicTagIds: [] as any[],
+      musicTagIds: xiaokuAi.musicTagIds ? xiaokuAi.musicTagIds : ([] as any[]),
       enable: true,
-      subjectId: null,
+      subjectId: xiaokuAi.subjectId || null,
       keyword: '',
       page: 1,
       rows: 9999
@@ -23,7 +26,7 @@ export default defineComponent({
     const data = reactive({
       tags: [] as any[],
       tagChildren: [] as any[],
-      tagActiveId: '',
+      tagActiveId: xiaokuAi.tagActiveId || '',
       tagActive: {} as any,
       list: [] as any,
       loading: false
@@ -31,11 +34,21 @@ export default defineComponent({
     const getTags = async () => {
       const res = await api_musicTagTree();
       if (Array.isArray(res?.data) && res.data.length) {
-        data.tags = res.data;
-        data.tagActiveId = res.data[0].id;
-        const list: any[] = [];
-        renderTag(res.data[0].children, list);
-        data.tagChildren = list;
+        data.tags = res.data || [];
+        const index = data.tags.findIndex(
+          (item: any) => item.id == data.tagActiveId
+        );
+        if (index > -1) {
+          data.tagActiveId = res.data[index].id;
+          const list: any[] = [];
+          renderTag(res.data[index].children, list);
+          data.tagChildren = list;
+        } else {
+          data.tagActiveId = res.data[0].id;
+          const list: any[] = [];
+          renderTag(res.data[0].children, list);
+          data.tagChildren = list;
+        }
       }
     };
 
@@ -85,6 +98,15 @@ export default defineComponent({
         await getList();
         // 获取教材分类列表
         await catchStore.getSubjects();
+
+        localStorage.setItem(
+          'xiaoku-ai-search',
+          JSON.stringify({
+            tagActiveId: data.tagActiveId,
+            subjectId: forms.subjectId,
+            musicTagIds: forms.musicTagIds
+          })
+        );
       } catch {
         //
       }
@@ -95,6 +117,16 @@ export default defineComponent({
     const changeTag = (item: any, index: number) => {
       data.tagActiveId = item.id;
       forms.musicTagIds = [];
+
+      localStorage.setItem(
+        'xiaoku-ai-search',
+        JSON.stringify({
+          tagActiveId: item.id,
+          subjectId: forms.subjectId,
+          musicTagIds: forms.musicTagIds
+        })
+      );
+
       const list: any[] = [];
       renderTag(data.tags[index].children, list);
       data.tagChildren = list;
@@ -122,6 +154,15 @@ export default defineComponent({
         forms.musicTagIds.push(activeItem.id);
         data.tagChildren[columnIndex].activeIndex = index;
       }
+
+      localStorage.setItem(
+        'xiaoku-ai-search',
+        JSON.stringify({
+          tagActiveId: data.tagActiveId,
+          subjectId: forms.subjectId,
+          musicTagIds: forms.musicTagIds
+        })
+      );
       getList();
     };
     return () => (
@@ -196,6 +237,15 @@ export default defineComponent({
                         }
                         onClick={() => {
                           forms.subjectId = item.id;
+
+                          localStorage.setItem(
+                            'xiaoku-ai-search',
+                            JSON.stringify({
+                              tagActiveId: data.tagActiveId,
+                              subjectId: item.id,
+                              musicTagIds: forms.musicTagIds
+                            })
+                          );
                           getList();
                         }}>
                         {item.name}