浏览代码

Merge branch 'dev' of http://git.dayaedu.com/huangqiyong/classroom into dev

黄琪勇 10 月之前
父节点
当前提交
bcbb252b33
共有 3 个文件被更改,包括 281 次插入27 次删除
  1. 37 7
      src/api/cloudPractice.api.ts
  2. 239 15
      src/views/cloudPractice/cloudPractice.tsx
  3. 5 5
      src/views/cloudPractice/index.module.scss

+ 37 - 7
src/api/cloudPractice.api.ts

@@ -1,5 +1,7 @@
 import {
-   httpAxios_gym
+   httpAxios_gym,
+   httpAxios_gyt,
+   httpAxios_klx
    // httpAxios_gyt
 } from "@/api/ApiInstance"
 
@@ -30,15 +32,16 @@ export const queryPage2_gym = (data: any) => {
 /**
  * 管乐团
  */
-export const queryTree_gyt = () => {
-   return httpAxios_gym.axioseRquest({
+export const queryTree_gyt = (data: any) => {
+   return httpAxios_gyt.axioseRquest({
       method: "post",
-      url: "/api-teacher/musicSheetCategories/page"
+      url: "/api-teacher/musicSheetCategories/page",
+      data
    })
 }
 
 export const querySubjectIds_gyt = (data?: any) => {
-   return httpAxios_gym.axioseRquest({
+   return httpAxios_gyt.axioseRquest({
       method: "get",
       url: "/api-teacher/subject/musicList",
       params: data
@@ -46,9 +49,36 @@ export const querySubjectIds_gyt = (data?: any) => {
 }
 
 export const queryPage2_gyt = (data: any) => {
-   return httpAxios_gym.axioseRquest({
-      method: "get",
+   return httpAxios_gyt.axioseRquest({
+      method: "post",
       url: "/api-teacher/musicSheet/page",
+      data
+   })
+}
+
+/**
+ * 酷乐秀
+ */
+export const queryTree_klx = (data?: any) => {
+   return httpAxios_klx.axioseRquest({
+      method: "get",
+      url: "/api-teacher/tenantGroupAlbum/buyAlbumInfo",
+      params: data
+   })
+}
+
+export const querySubjectIds_klx = (data?: any) => {
+   return httpAxios_klx.axioseRquest({
+      method: "get",
+      url: "/api-teacher/open/subject/queryPage",
       params: data
    })
 }
+
+export const queryPage2_klx = (data: any) => {
+   return httpAxios_klx.axioseRquest({
+      method: "post",
+      url: "/api-teacher/tenantAlbumMusic/page",
+      data
+   })
+}

+ 239 - 15
src/views/cloudPractice/cloudPractice.tsx

@@ -13,7 +13,17 @@ import iconBtnPlay from "../../img/cloudPractice/icon-btn-play.png"
 import btnSubmit from "../../img/cloudPractice/btn-submit.png"
 import iconTransfer from "../../img/cloudPractice/icon-transfer.png"
 import { httpAjaxErrMsg } from "@/plugin/httpAjax"
-import { queryPage2_gym, queryPage2_gyt, querySubjectIds_gym, querySubjectIds_gyt, queryTree_gym, queryTree_gyt } from "@/api/cloudPractice.api"
+import {
+   queryPage2_gym,
+   queryPage2_gyt,
+   queryPage2_klx,
+   querySubjectIds_gym,
+   querySubjectIds_gyt,
+   querySubjectIds_klx,
+   queryTree_gym,
+   queryTree_gyt,
+   queryTree_klx
+} from "@/api/cloudPractice.api"
 // import { getToken } from "@/libs/auth"
 // import { URL_TEACH_GYM } from "@/config"
 import axios from "axios"
@@ -71,19 +81,33 @@ export default defineComponent({
       const activeItem = computed(() => {
          const list = state.list[state.listActive] || {}
          const mp3 = {
-            GYT: "",
+            GYT: list?.audioFileUrl,
             GYM: list?.musicSheetType === "CONCERT" ? list?.metronomeUrl : list?.metronomeMp3Url || list?.mp3Url,
             KLX: ""
          }
 
-         return {
-            id: list?.id,
-            name: list?.name,
-            background: list?.background,
-            xmlUrl: list?.xmlUrl,
-            musicSheetType: list?.musicSheetType,
-            audioFileUrl: mp3[userStoreHook.roles!]
+         let tempList: any = {}
+
+         if (userStoreHook.roles === "GYM") {
+            tempList = {
+               id: list?.id,
+               name: list?.name,
+               background: list?.background,
+               xmlUrl: list?.xmlUrl,
+               musicSheetType: list?.musicSheetType,
+               audioFileUrl: mp3[userStoreHook.roles!]
+            }
+         } else if (userStoreHook.roles === "GYT") {
+            tempList = {
+               id: list?.id,
+               name: list?.musicSheetName,
+               background: list?.background,
+               xmlUrl: list?.xmlFileUrl,
+               musicSheetType: list?.musicSheetType,
+               audioFileUrl: mp3[userStoreHook.roles!]
+            }
          }
+         return tempList
       })
 
       const songPrevNextStatus = computed(() => {
@@ -185,7 +209,12 @@ export default defineComponent({
       /** 管乐团数据查询 */
       const handleSearchList_gyt = async () => {
          loading.value = true
-         await httpAjaxErrMsg(queryTree_gyt).then(res => {
+         await httpAjaxErrMsg(queryTree_gyt, {
+            enable: true,
+            page: 1,
+            parentId: 0,
+            rows: 10
+         }).then(res => {
             loading.value = false
             if (res.code === 200) {
                storeData.value = res.data || []
@@ -217,6 +246,17 @@ export default defineComponent({
                   label: "全部声部",
                   value: -1
                })
+
+               const userSubjectId = userStoreHook.userInfo.subjectId
+               if (userSubjectId) {
+                  const tempSubjectId = userSubjectId.split(",")[0]
+                  state.subjectList.forEach((item: any) => {
+                     // 判断是否存在声部编号
+                     if (item.value === Number(tempSubjectId)) {
+                        state.subjectId = Number(tempSubjectId)
+                     }
+                  })
+               }
             }
          })
       }
@@ -229,13 +269,14 @@ export default defineComponent({
             musicSubject: state.subjectId === -1 ? null : state.subjectId,
             musicSheetCategoriesId: state.typeId === -1 ? state.levelId : state.typeId,
             keyword: state.queryStr,
+            detailFlag: true,
             status: 1
          }
          console.log(state.typeId, state.levelId, "level")
          await httpAjaxErrMsg(queryPage2_gyt, params).then(res => {
             loading.value = false
             if (res.code === 200) {
-               const result = res.data || []
+               const result = res.data || {}
 
                if (state.reshing) {
                   state.list = []
@@ -243,8 +284,100 @@ export default defineComponent({
                }
 
                if (Array.isArray(result.rows)) {
+                  result.rows.forEach((item: any) => {
+                     item.name = item.musicSheetName
+                  })
                   state.list = [...state.list, ...result.rows]
-                  state.finshed = state.page >= result.totalPage
+                  state.finshed = state.page >= result.pages
+               } else {
+                  state.finshed = true
+               }
+            }
+         })
+      }
+
+      /** 酷乐秀机构数据查询 */
+      const handleSearchList_klx = async () => {
+         loading.value = true
+         await httpAjaxErrMsg(queryTree_klx, {
+            enable: true,
+            page: 1,
+            parentId: 0,
+            rows: 10
+         }).then(res => {
+            loading.value = false
+            if (res.code === 200) {
+               state.categoryList = res.data || []
+
+               setDefaultData()
+            }
+         })
+      }
+
+      const handleGetSubject_klx = async () => {
+         loading.value = true
+         await httpAjaxErrMsg(querySubjectIds_klx, {
+            queryType: "list",
+            page: 1,
+            rows: 100
+         }).then(res => {
+            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,
+                     value: item.id
+                  }
+               })
+
+               state.subjectList.unshift({
+                  label: "全部声部",
+                  value: -1
+               })
+
+               const userSubjectId = userStoreHook.userInfo.subjectId
+               if (userSubjectId) {
+                  const tempSubjectId = userSubjectId.split(",")[0]
+                  state.subjectList.forEach((item: any) => {
+                     // 判断是否存在声部编号
+                     if (item.value === Number(tempSubjectId)) {
+                        state.subjectId = Number(tempSubjectId)
+                     }
+                  })
+               }
+            }
+         })
+      }
+
+      const handleGetList_klx = async () => {
+         loading.value = true
+         const params = {
+            page: state.page,
+            rows: state.rows,
+            musicSubject: state.subjectId === -1 ? null : state.subjectId,
+            musicSheetCategoriesId: state.typeId === -1 ? state.levelId : state.typeId,
+            keyword: state.queryStr,
+            status: 1
+         }
+         console.log(state.typeId, state.levelId, "level")
+         await httpAjaxErrMsg(queryPage2_klx, params).then(res => {
+            loading.value = false
+            if (res.code === 200) {
+               const result = res.data || {}
+
+               if (state.reshing) {
+                  state.list = []
+                  state.reshing = false
+               }
+
+               if (Array.isArray(result.rows)) {
+                  result.rows.forEach((item: any) => {
+                     item.name = item.musicSheetName
+                  })
+                  state.list = [...state.list, ...result.rows]
+                  state.finshed = state.page >= result.pages
                } else {
                   state.finshed = true
                }
@@ -260,7 +393,7 @@ export default defineComponent({
          } else if (userStoreHook.roles === "GYT") {
             await handleSearchList_gyt()
          } else if (userStoreHook.roles === "KLX") {
-            //
+            await handleSearchList_klx()
          }
       }
 
@@ -271,7 +404,7 @@ export default defineComponent({
          } else if (userStoreHook.roles === "GYT") {
             await handleGetSubject_gyt()
          } else if (userStoreHook.roles === "KLX") {
-            //
+            await handleGetSubject_klx()
          }
       }
 
@@ -282,12 +415,22 @@ export default defineComponent({
          } else if (userStoreHook.roles === "GYT") {
             await handleGetList_gyt()
          } else if (userStoreHook.roles === "KLX") {
-            //
+            await handleGetList_klx()
          }
       }
 
       /** 初始化数据 */
       const setDefaultData = (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)
+         }
+      }
+
+      const initCategories_gym = (type?: "first" | "category" | "level" | "type") => {
          if (storeData.value.length > 0 && !["category", "level", "type"].includes(type as any)) {
             let result: any = []
             if (type === "first" && state.firstTreeId) {
@@ -345,6 +488,87 @@ export default defineComponent({
          }
       }
 
+      const initCategories_gyt = (type?: "first" | "category" | "level" | "type") => {
+         if (storeData.value.length > 0 && !["level", "type"].includes(type as any)) {
+            let result: any = []
+            if (type === "first" && state.firstTreeId) {
+               result = storeData.value.find((item: any) => item.id === state.firstTreeId)?.musicSheetCategoriesList || []
+            } else {
+               state.firstTreeId = storeData.value[0]?.id
+               result = storeData.value[0]?.musicSheetCategoriesList || []
+            }
+
+            console.log(result, "result -----")
+            state.levelList = result.map((item: any) => {
+               return {
+                  label: item.name,
+                  value: item.id,
+                  musicSheetCategoriesList: item.musicSheetCategoriesList || []
+               }
+            })
+         }
+
+         if (state.levelList.length > 0) {
+            let result: any = []
+            if (type === "level" && state.levelId) {
+               result = state.levelList.find((item: any) => item.value === state.levelId)?.musicSheetCategoriesList
+            } else {
+               state.levelId = state.levelList[0]?.value
+               result = state.levelList[0]?.musicSheetCategoriesList || []
+            }
+
+            state.typeList = result.map((item: any) => {
+               return {
+                  label: item.name,
+                  value: item.id
+               }
+            })
+            state.typeList.unshift({
+               label: "全部",
+               value: -1
+            })
+         }
+      }
+
+      const initCategories_klx = (type?: "first" | "category" | "level" | "type") => {
+         if (state.categoryList.length > 0 && !["level", "type"].includes(type as any)) {
+            let result: any = []
+            if (type === "category" && state.categoryId) {
+               result = state.categoryList.find((item: any) => item.id === state.categoryId)?.musicSheetCategoriesList || []
+            } else {
+               state.categoryId = state.categoryList[0]?.id
+               result = state.categoryList[0]?.musicSheetCategoriesList || []
+            }
+            console.log(result, "result -----")
+            state.levelList = result.map((item: any) => {
+               return {
+                  label: item.name,
+                  value: item.id,
+                  musicSheetCategoriesList: item.musicSheetCategoriesList || []
+               }
+            })
+         }
+         // if (state.levelList.length > 0) {
+         //    let result: any = []
+         //    if (type === "level" && state.levelId) {
+         //       result = state.levelList.find((item: any) => item.value === state.levelId)?.musicSheetCategoriesList
+         //    } else {
+         //       state.levelId = state.levelList[0]?.value
+         //       result = state.levelList[0]?.musicSheetCategoriesList || []
+         //    }
+         //    state.typeList = result.map((item: any) => {
+         //       return {
+         //          label: item.name,
+         //          value: item.id
+         //       }
+         //    })
+         //    state.typeList.unshift({
+         //       label: "全部",
+         //       value: -1
+         //    })
+         // }
+      }
+
       const __init = async () => {
          await handleAllSearchList()
          await handleAllGetSubject()

+ 5 - 5
src/views/cloudPractice/index.module.scss

@@ -211,8 +211,8 @@
       }
 
       .queryCp {
-         margin: 12px 30px 0 !important;
-         width: calc(100% - 60px) !important;
+         margin: 12px 20px 0 !important;
+         width: calc(100% - 40px) !important;
          // margin-top: 12px;
          background: #fff3d7 !important;
          .el-input__wrapper {
@@ -371,10 +371,10 @@
    .leftArrow {
       position: absolute;
       top: 245px;
-      left: -17px;
+      left: -15px;
       display: inline-block;
-      width: 28px;
-      height: 28px;
+      width: 32px;
+      height: 32px;
       background: #ffffff;
       border-radius: 6px;
       transform: rotate(45deg);