|  | @@ -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]}
 |