lex-xin 8 miesięcy temu
rodzic
commit
044a3b68f6
2 zmienionych plików z 145 dodań i 85 usunięć
  1. 1 1
      src/api/cloudPractice.api.ts
  2. 144 84
      src/views/cloudPractice/cloudPractice.tsx

+ 1 - 1
src/api/cloudPractice.api.ts

@@ -86,7 +86,7 @@ export const queryPage2_klx = (data: any) => {
 export const selectCondition_klx = (data: any) => {
    return httpAxios_klx.axioseRquest({
       method: "post",
-      url: "/api-teacher/tenantAlbumMusic/selectCondition",
+      url: "/api-teacher/tenantGroupAlbum/selectCondition",
       data
    })
 }

+ 144 - 84
src/views/cloudPractice/cloudPractice.tsx

@@ -22,7 +22,8 @@ import {
    querySubjectIds_klx,
    queryTree_gym,
    queryTree_gyt,
-   queryTree_klx
+   queryTree_klx,
+   selectCondition_klx
 } from "@/api/cloudPractice.api"
 // import { getToken } from "@/libs/auth"
 // import { URL_TEACH_GYM } from "@/config"
@@ -102,6 +103,16 @@ export default defineComponent({
                musicSheetType: list?.musicSheetType,
                audioFileUrl: list?.audioFileUrl
             }
+         } else if (userStoreHook.roles === "KLX") {
+            const item: any = list.background?.[0]
+            tempList = {
+               id: list?.id,
+               name: list?.musicSheetName,
+               background: list?.background,
+               xmlUrl: list?.xmlFileUrl,
+               musicSheetType: list?.musicSheetType,
+               audioFileUrl: item?.audioFileUrl
+            }
          }
          return tempList
       })
@@ -181,7 +192,7 @@ export default defineComponent({
             categoriesId: state.typeId === -1 ? state.levelId : state.typeId,
             search: state.queryStr
          }
-         console.log(state.typeId, state.levelId, "level")
+
          await httpAjaxErrMsg(queryPage2_gym, params).then(res => {
             loading.value = false
             if (res.code === 200) {
@@ -299,46 +310,52 @@ export default defineComponent({
             page: 1,
             parentId: 0,
             rows: 10
-         }).then(res => {
-            loading.value = false
-            if (res.code === 200) {
-               const result = res.data || []
-
-               state.categoryList = result.map((item: any) => {
-                  const subjectCounts = item.subjectCounts ? true : false
-                  const musicCounts = item.musicCounts ? true : false
-                  const ensembleCounts = item.ensembleCounts ? true : false
-                  const list: any = []
-                  if (subjectCounts) {
-                     list.push({
-                        label: "基础云练",
-                        value: "SUBJECT"
-                     })
-                  }
-                  if (musicCounts) {
-                     list.push({
-                        label: "独奏云练",
-                        value: "MUSIC"
-                     })
-                  }
-                  if (ensembleCounts) {
-                     list.push({
-                        label: "合奏云练",
-                        value: "ENSEMBLE"
-                     })
-                  }
-                  return {
-                     value: item.id,
-                     label: item.name,
-                     musicSheetCategoriesList: list
-                  }
-               })
-
-               console.log(state.categoryList, "state.categoryList")
-
-               setDefaultData()
-            }
          })
+            .then(res => {
+               loading.value = false
+               if (res.code === 200) {
+                  const result = res.data || []
+
+                  const tempList: any = []
+                  result.forEach((item: any) => {
+                     if (item.musicNum > 0) {
+                        const subjectCounts = item.subjectCounts ? true : false
+                        const musicCounts = item.musicCounts ? true : false
+                        const ensembleCounts = item.ensembleCounts ? true : false
+                        const list: any = []
+                        if (subjectCounts) {
+                           list.push({
+                              label: "基础云练",
+                              value: "SUBJECT"
+                           })
+                        }
+                        if (musicCounts) {
+                           list.push({
+                              label: "独奏云练",
+                              value: "MUSIC"
+                           })
+                        }
+                        if (ensembleCounts) {
+                           list.push({
+                              label: "合奏云练",
+                              value: "ENSEMBLE"
+                           })
+                        }
+                        tempList.push({
+                           value: item.id,
+                           label: item.name,
+                           musicSheetCategoriesList: list
+                        })
+                     }
+                  })
+                  state.categoryList = tempList
+
+                  setDefaultData()
+               }
+            })
+            .catch(() => {
+               state.finshed = true
+            })
       }
 
       const handleGetSubject_klx = async () => {
@@ -351,7 +368,6 @@ export default defineComponent({
             loading.value = false
             if (res.code === 200) {
                const result = res.data?.rows || []
-               console.log(res, "res")
                state.subjectList = result.map((item: any) => {
                   return {
                      label: item.name,
@@ -379,18 +395,18 @@ export default defineComponent({
       }
 
       const handleGetList_klx = async () => {
+         if (!state.categoryId) return
          loading.value = true
          const params = {
             page: state.page,
             rows: state.rows,
             albumId: state.categoryId,
-            musicSubject: state.subjectId === -1 ? null : state.subjectId,
+            subjectId: state.subjectId === -1 ? null : state.subjectId,
             subjectType: state.firstTreeId,
-            musicSheetCategoriesId: state.typeId === -1 ? state.levelId : state.typeId,
-            keyword: state.queryStr,
-            status: 1
+            level: state.levelId === -1 ? null : state.levelId,
+            type: state.typeId === -1 ? null : state.typeId,
+            keyword: state.queryStr
          }
-         console.log(state.typeId, state.levelId, "level")
          await httpAjaxErrMsg(queryPage2_klx, params).then(res => {
             loading.value = false
             if (res.code === 200) {
@@ -414,9 +430,49 @@ export default defineComponent({
          })
       }
 
-      const handle_klx = async () => {
-         // subjectType: params.subjectType,
-         // tenantAlbumId: params.albumId
+      const handleSelectCondition_klx = async () => {
+         if (!state.categoryId || !state.firstTreeId) return
+         loading.value = true
+         const params = {
+            tenantAlbumId: state.categoryId,
+            subjectType: state.firstTreeId
+         }
+         await httpAjaxErrMsg(selectCondition_klx, params).then(res => {
+            loading.value = false
+            if (res.code === 200) {
+               const result = res.data || {}
+
+               if (result.levelList && result.levelList.length > 0) {
+                  state.levelList = result.levelList.map((item: any) => {
+                     return {
+                        label: item.value,
+                        value: item.id
+                     }
+                  })
+
+                  state.levelList.unshift({
+                     label: "全部级别",
+                     value: -1
+                  })
+                  state.levelId = -1
+               }
+
+               if (result.typeList && result.typeList.length > 0) {
+                  state.typeList = result.typeList.map((item: any) => {
+                     return {
+                        label: item.value,
+                        value: item.id
+                     }
+                  })
+
+                  state.typeList.unshift({
+                     label: "全部类型",
+                     value: -1
+                  })
+                  state.typeId = -1
+               }
+            }
+         })
       }
 
       /** 条件查询 */
@@ -454,13 +510,13 @@ export default defineComponent({
       }
 
       /** 初始化数据 */
-      const setDefaultData = (type?: "first" | "category" | "level" | "type") => {
+      const setDefaultData = async (type?: "first" | "category" | "level" | "type") => {
          if (userStoreHook.roles === "GYM") {
             initCategories_gym(type)
          } else if (userStoreHook.roles === "GYT") {
             initCategories_gyt(type)
          } else if (userStoreHook.roles === "KLX") {
-            initCategories_klx(type)
+            await initCategories_klx(type)
          }
       }
 
@@ -490,7 +546,6 @@ export default defineComponent({
                state.categoryName = state.categoryList[0]?.label
                result = state.categoryList[0]?.sysMusicScoreCategoriesList || []
             }
-            console.log(result, "result", type)
             state.levelList = result.map((item: any) => {
                return {
                   label: item.name,
@@ -563,7 +618,7 @@ export default defineComponent({
          }
       }
 
-      const initCategories_klx = (type?: "first" | "category" | "level" | "type") => {
+      const initCategories_klx = async (type?: "first" | "category" | "level" | "type") => {
          if (state.categoryList.length > 0 && !["level", "type", "first"].includes(type as any)) {
             let result: any = []
             if (type === "category" && state.categoryId) {
@@ -581,12 +636,14 @@ export default defineComponent({
             })
          }
 
-         if (storeData.value.length > 0 && !["category", "level", "type"].includes(type as any)) {
+         if (storeData.value.length > 0 && !["level", "type"].includes(type as any)) {
+            console.log(storeData.value.length, "storeData.value.length", type)
             if (type === "first" && state.firstTreeId) {
-               //
+               await handleSelectCondition_klx()
             } else {
                //
                state.firstTreeId = storeData.value[0]?.id
+               await handleSelectCondition_klx()
             }
          }
       }
@@ -755,9 +812,9 @@ export default defineComponent({
                               {storeData.value.map((item: any) => (
                                  <div
                                     class={[styles.leftSection_item, item.id === state.firstTreeId && styles.leftSection_item__active]}
-                                    onClick={() => {
+                                    onClick={async () => {
                                        state.firstTreeId = item.id
-                                       setDefaultData("first")
+                                       await setDefaultData("first")
                                        handleGetList()
                                     }}
                                  >
@@ -774,13 +831,12 @@ export default defineComponent({
                                     <NPopselect
                                        options={state.categoryList}
                                        v-model:value={state.categoryId}
-                                       onUpdate:value={(val: any) => {
+                                       onUpdate:value={async (val: any) => {
                                           const item = state.categoryList.find((item: any) => item.value === val)
-                                          console.log(item, "item")
                                           if (item) {
                                              state.categoryName = item.label
                                              state.categoryId = item.value
-                                             setDefaultData("category")
+                                             await setDefaultData("category")
                                              handleGetList()
                                           }
                                        }}
@@ -802,29 +858,33 @@ export default defineComponent({
                                        placeholder="全部声部"
                                        onChange={handleGetList}
                                     />
-                                    <Dictionary
-                                       popperClass="classTypePopper"
-                                       v-model={state.levelId}
-                                       height={42}
-                                       options={state.levelList}
-                                       placeholder="级别"
-                                       onChange={() => {
-                                          setDefaultData("level")
-                                          handleGetList()
-                                       }}
-                                    />
-                                    <Dictionary
-                                       popperClass="classTypePopper"
-                                       v-model={state.typeId}
-                                       height={42}
-                                       options={state.typeList}
-                                       propsOpt={{
-                                          labelField: "name",
-                                          valueField: "id"
-                                       }}
-                                       placeholder="分类"
-                                       onChange={handleGetList}
-                                    />
+                                    {state.levelList.length ? (
+                                       <Dictionary
+                                          popperClass="classTypePopper"
+                                          v-model={state.levelId}
+                                          height={42}
+                                          options={state.levelList}
+                                          placeholder="级别"
+                                          onChange={() => {
+                                             setDefaultData("level")
+                                             handleGetList()
+                                          }}
+                                       />
+                                    ) : null}
+                                    {state.typeList.length > 0 ? (
+                                       <Dictionary
+                                          popperClass="classTypePopper"
+                                          v-model={state.typeId}
+                                          height={42}
+                                          options={state.typeList}
+                                          propsOpt={{
+                                             labelField: "name",
+                                             valueField: "id"
+                                          }}
+                                          placeholder="分类"
+                                          onChange={handleGetList}
+                                       />
+                                    ) : null}
                                  </div>
                                  <div
                                     class={[styles.btnSearch, state.searchStatus && styles.btnSearchActive]}