瀏覽代碼

Merge branch 'iteration-large-version' into jenkins

lex 1 年之前
父節點
當前提交
f8921f8cd2

+ 47 - 1
src/store/modules/catchData.ts

@@ -6,7 +6,8 @@ export const useCatchStore = defineStore('catch-store', {
   state: () => ({
     bookVersionList: [] as any[], // 其它类型
     musicTypeList: [] as any[], // 乐谱分类
-    subjectList: [] as any[] // 声部列表
+    subjectList: [] as any[], // 声部列表,
+    subjectInstruemnts: [] as any[] // 乐器列表,
   }),
   getters: {
     getBookVersion(): any[] {
@@ -35,6 +36,17 @@ export const useCatchStore = defineStore('catch-store', {
         },
         ...this.subjectList
       ];
+    },
+    getSubjectInstruments(): any[] {
+      return [
+        {
+          name: '全部',
+          id: null,
+          label: '全部',
+          value: null
+        },
+        ...this.subjectInstruemnts
+      ];
     }
   },
   actions: {
@@ -47,6 +59,9 @@ export const useCatchStore = defineStore('catch-store', {
     setSubjects(subjects: any[]) {
       this.subjectList = subjects;
     },
+    setSubjectInstruemnts(subjects: any[]) {
+      this.subjectInstruemnts = subjects;
+    },
     /**
      * 判断是否有声部数据,如不存在则获取声部列表
      * @returns Promise
@@ -65,6 +80,8 @@ export const useCatchStore = defineStore('catch-store', {
         });
 
         const tempSubjectList = data || [];
+
+        const tempSubjectInstruments: any = [];
         tempSubjectList.forEach((item: any) => {
           item.value = item.id;
           item.label = item.name;
@@ -74,9 +91,38 @@ export const useCatchStore = defineStore('catch-store', {
               child.value = child.id;
             });
           }
+
+          const tempSi = {
+            value: item.id,
+            label: item.name,
+            id: item.id,
+            name: item.name,
+            instruments: [] as any
+          };
+          if (item.instruments) {
+            if (item.instruments.length == 1) {
+              tempSi.value = item.instruments[0].id;
+              tempSi.label = item.instruments[0].name;
+              tempSi.id = item.id;
+              tempSi.name = item.name;
+            } else if (item.instruments.length > 1) {
+              item.instruments.forEach((child: any) => {
+                child.label = child.name;
+                child.value = child.id;
+                tempSi.instruments.push({
+                  label: child.name,
+                  value: child.id,
+                  id: child.id,
+                  name: child.name
+                });
+              });
+            }
+          }
+          tempSubjectInstruments.push(tempSi);
         });
 
         this.setSubjects(tempSubjectList || []);
+        this.setSubjectInstruemnts(tempSubjectInstruments || []);
         return Promise.resolve();
       } catch (e) {
         return Promise.reject(e);

+ 6 - 1
src/views/natural-resources/components/my-collect/index.tsx

@@ -68,7 +68,12 @@ export default defineComponent({
     const showGuide = ref(false);
     const onSearch = async (item: any) => {
       state.pagination.page = 1;
-      state.searchGroup = Object.assign(state.searchGroup, item);
+      // state.searchGroup = Object.assign(state.searchGroup, item);
+      const { subjectId, ...res } = item;
+      state.searchGroup = Object.assign(state.searchGroup, {
+        ...res,
+        musicalInstrumentId: subjectId
+      });
       getList();
     };
     // 收藏

+ 4 - 4
src/views/natural-resources/components/my-collect/search-group-resources.tsx

@@ -198,7 +198,7 @@ export default defineComponent({
           )} */}
           <NFormItem label="声部:">
             <NSpace class={styles.spaceSection2}>
-              {catchStore.getSubjectAllList.map((subject: any) =>
+              {catchStore.getSubjectInstruments.map((subject: any) =>
                 subject.instruments && subject.instruments.length > 1 ? (
                   <NPopselect
                     options={subject.instruments}
@@ -207,7 +207,7 @@ export default defineComponent({
                     onUpdate:value={() => {
                       onSearch();
                     }}
-                    key={subject.id}
+                    key={subject.value}
                     class={[styles.popSelect]}>
                     <span
                       class={[
@@ -223,10 +223,10 @@ export default defineComponent({
                   <span
                     class={[
                       styles.textBtn,
-                      forms.subjectId === subject.id && styles.textBtnActive
+                      forms.subjectId === subject.value && styles.textBtnActive
                     ]}
                     onClick={() => {
-                      forms.subjectId = subject.id;
+                      forms.subjectId = subject.value;
                       onSearch();
                     }}>
                     {subject.name}

+ 5 - 1
src/views/natural-resources/components/my-resources/index.tsx

@@ -110,7 +110,11 @@ export default defineComponent({
 
     const onSearch = async (item: any) => {
       state.pagination.page = 1;
-      state.searchGroup = Object.assign(state.searchGroup, item);
+      const { subjectId, ...res } = item;
+      state.searchGroup = Object.assign(state.searchGroup, {
+        ...res,
+        musicalInstrumentId: subjectId
+      });
       getList();
     };
 

+ 5 - 5
src/views/natural-resources/components/my-resources/search-group-resources.tsx

@@ -194,14 +194,14 @@ export default defineComponent({
         <NForm labelAlign="left" labelPlacement="left">
           <NFormItem label="声部:">
             <NSpace class={styles.spaceSection2}>
-              {catchStore.getSubjectAllList.map((subject: any) =>
+              {catchStore.getSubjectInstruments.map((subject: any) =>
                 subject.instruments && subject.instruments.length > 1 ? (
                   <NPopselect
                     options={subject.instruments}
                     trigger="hover"
                     v-model:value={state.tempSubjectId}
                     onUpdate:value={() => {
-                      if (state.tempSubjectId !== subject.id) {
+                      if (state.tempSubjectId !== subject.value) {
                         state.isEdit = false;
                         state.isSelectAll = false;
                         emit('edit', state.isEdit);
@@ -209,7 +209,7 @@ export default defineComponent({
                       forms.subjectId = state.tempSubjectId;
                       onSearch();
                     }}
-                    key={subject.id}
+                    key={subject.value}
                     class={[styles.popSelect]}>
                     <span
                       class={[
@@ -225,10 +225,10 @@ export default defineComponent({
                   <span
                     class={[
                       styles.textBtn,
-                      forms.subjectId === subject.id && styles.textBtnActive
+                      forms.subjectId === subject.value && styles.textBtnActive
                     ]}
                     onClick={() => {
-                      forms.subjectId = subject.id;
+                      forms.subjectId = subject.value;
                       onSearch();
                     }}>
                     {subject.name}

+ 6 - 1
src/views/natural-resources/components/share-resources/index.tsx

@@ -68,7 +68,12 @@ export default defineComponent({
 
     const onSearch = async (item: any) => {
       state.pagination.page = 1;
-      state.searchGroup = Object.assign(state.searchGroup, item);
+      // state.searchGroup = Object.assign(state.searchGroup, item);
+      const { subjectId, ...res } = item;
+      state.searchGroup = Object.assign(state.searchGroup, {
+        ...res,
+        musicalInstrumentId: subjectId
+      });
       getList();
     };
 

+ 4 - 4
src/views/natural-resources/components/share-resources/search-group-resources.tsx

@@ -213,7 +213,7 @@ export default defineComponent({
                   {subject.name}
                 </NButton>
               ))} */}
-              {catchStore.getSubjectAllList.map((subject: any) =>
+              {catchStore.getSubjectInstruments.map((subject: any) =>
                 subject.instruments && subject.instruments.length > 1 ? (
                   <NPopselect
                     options={subject.instruments}
@@ -222,7 +222,7 @@ export default defineComponent({
                     onUpdate:value={() => {
                       onSearch();
                     }}
-                    key={subject.id}
+                    key={subject.value}
                     class={[styles.popSelect]}>
                     <span
                       class={[
@@ -238,10 +238,10 @@ export default defineComponent({
                   <span
                     class={[
                       styles.textBtn,
-                      forms.subjectId === subject.id && styles.textBtnActive
+                      forms.subjectId === subject.value && styles.textBtnActive
                     ]}
                     onClick={() => {
-                      forms.subjectId = subject.id;
+                      forms.subjectId = subject.value;
                       onSearch();
                     }}>
                     {subject.name}

+ 13 - 5
src/views/prepare-lessons/model/select-resources/select-item/class-search-group/index.tsx

@@ -129,7 +129,15 @@ export default defineComponent({
       await catchStore.getMusicSheetCategory();
       // 获取声部
       await catchStore.getSubjects();
-
+      catchStore.getSubjectInstruments.forEach((item: any) => {
+        if (item.id == props.subjectId) {
+          if (item.instruments.length > 0) {
+            forms.subjectId = item.instruments[0].value;
+          } else {
+            forms.subjectId = item.value;
+          }
+        }
+      });
       // 这里开始
       // musicCateRef
       // if (forms.type === 'MUSIC') {
@@ -235,7 +243,7 @@ export default defineComponent({
 
           <NFormItem label="声部:">
             <NSpace class={[styles.spaceSection, styles.spaceSection2]}>
-              {catchStore.getSubjectAllList.map((subject: any) =>
+              {catchStore.getSubjectInstruments.map((subject: any) =>
                 subject.instruments && subject.instruments.length > 1 ? (
                   <NPopselect
                     options={subject.instruments}
@@ -244,7 +252,7 @@ export default defineComponent({
                     onUpdate:value={() => {
                       onSearch();
                     }}
-                    key={subject.id}
+                    key={subject.value}
                     class={[styles.popSelect]}>
                     <span
                       class={[
@@ -260,10 +268,10 @@ export default defineComponent({
                   <span
                     class={[
                       styles.textBtn,
-                      forms.subjectId === subject.id && styles.textBtnActive
+                      forms.subjectId === subject.value && styles.textBtnActive
                     ]}
                     onClick={() => {
-                      forms.subjectId = subject.id;
+                      forms.subjectId = subject.value;
                       onSearch();
                     }}>
                     {subject.name}

+ 6 - 1
src/views/prepare-lessons/model/select-resources/select-item/index.tsx

@@ -106,7 +106,12 @@ export default defineComponent({
     const throttledFnSearch = useDebounceFn(item => {
       state.pagination.page = 1;
       state.tableList = [];
-      state.searchGroup = Object.assign(state.searchGroup, item);
+      // state.searchGroup = Object.assign(state.searchGroup, item);
+      const { subjectId, ...res } = item;
+      state.searchGroup = Object.assign(state.searchGroup, {
+        ...res,
+        musicalInstrumentId: subjectId
+      });
       getList();
     }, 500);
 

+ 15 - 5
src/views/prepare-lessons/model/select-resources/select-item/resource-search-group/index.tsx

@@ -31,7 +31,7 @@ export default defineComponent({
     },
     subjectId: {
       type: String,
-      default: ''
+      default: null
     }
   },
   emits: ['search'],
@@ -130,6 +130,16 @@ export default defineComponent({
       // 获取声部
       await catchStore.getSubjects();
 
+      catchStore.getSubjectInstruments.forEach((item: any) => {
+        if (item.id == props.subjectId) {
+          if (item.instruments.length > 0) {
+            forms.subjectId = item.instruments[0].value;
+          } else {
+            forms.subjectId = item.value;
+          }
+        }
+      });
+
       // 这里开始
       // musicCateRef
       if (forms.type === 'MUSIC') {
@@ -257,7 +267,7 @@ export default defineComponent({
                   {music.name}
                 </NButton>
               ))} */}
-              {catchStore.getSubjectAllList.map((subject: any) =>
+              {catchStore.getSubjectInstruments.map((subject: any) =>
                 subject.instruments && subject.instruments.length > 1 ? (
                   <NPopselect
                     options={subject.instruments}
@@ -266,7 +276,7 @@ export default defineComponent({
                     onUpdate:value={() => {
                       onSearch();
                     }}
-                    key={subject.id}
+                    key={subject.value}
                     class={[styles.popSelect]}>
                     <span
                       class={[
@@ -282,10 +292,10 @@ export default defineComponent({
                   <span
                     class={[
                       styles.textBtn,
-                      forms.subjectId === subject.id && styles.textBtnActive
+                      forms.subjectId === subject.value && styles.textBtnActive
                     ]}
                     onClick={() => {
-                      forms.subjectId = subject.id;
+                      forms.subjectId = subject.value;
                       onSearch();
                     }}>
                     {subject.name}

+ 5 - 8
src/views/xiaoku-music/index.tsx

@@ -86,7 +86,7 @@ export default defineComponent({
     const getSubjects = async () => {
       // const res = await api_subjectList();
       // if (Array.isArray(res?.data)) {
-      const tempSubjectList = catchStore.getSubjectAllList;
+      const tempSubjectList = catchStore.getSubjectInstruments;
       const subjectList = sessionStorage.getItem('musicSubjectList')
         ? JSON.parse(sessionStorage.getItem('musicSubjectList') as any)
         : [];
@@ -98,6 +98,7 @@ export default defineComponent({
         }
       });
       data.tags = [{ name: '全部', id: 0 }, ...resultList];
+      console.log(data.tags);
       // }
     };
     const getList = async () => {
@@ -106,7 +107,8 @@ export default defineComponent({
       try {
         res = await api_musicSheetPage({
           ...forms,
-          musicSubject: data.tagIndex ? data.tagIndex : ''
+          // musicSubject: data.tagIndex ? data.tagIndex : ''
+          musicalInstrumentId: data.tagIndex ? data.tagIndex : ''
         });
       } catch (error) {
         console.log(error);
@@ -118,7 +120,6 @@ export default defineComponent({
       if (res?.code === 200 && Array.isArray(res?.data?.rows)) {
         data.list = [...data.list, ...res.data.rows];
         data.finshed = res.data.rows.length < forms.rows;
-        console.log('🚀 ~ data.finshed:', data.finshed);
       }
       if (data.list[data.listActive]) {
         getFavitor(data.list[data.listActive]);
@@ -206,6 +207,7 @@ export default defineComponent({
 
     const selectChildObj = (item: any) => {
       const obj: any = {};
+
       item?.forEach((child: any) => {
         if (child.id === data.tagIndex) {
           obj.selected = true;
@@ -355,11 +357,6 @@ export default defineComponent({
                           v-model:value={data.tagIndex}
                           onUpdate:value={() => {
                             // onSearch();
-                            console.log(
-                              data.tagIndex,
-                              'tagIndex',
-                              data.tagIndex
-                            );
                             data.reshing = true;
                             handleGetList();
                           }}