|
@@ -24,7 +24,8 @@ import {
|
|
|
queryTree_gyt,
|
|
|
queryTree_klx,
|
|
|
selectCondition_klx,
|
|
|
- cbsDetail_gym
|
|
|
+ cbsDetail_gym,
|
|
|
+ cbsDetail_klx
|
|
|
} from "@/api/cloudPractice.api"
|
|
|
import axios from "axios"
|
|
|
import { getInstrumentName } from "@/libs/instruments"
|
|
@@ -89,6 +90,19 @@ export default defineComponent({
|
|
|
})
|
|
|
const partColumns = ref<any>([])
|
|
|
|
|
|
+ const musicRenderType = computed(() => {
|
|
|
+ const details = state.details
|
|
|
+ const template: any = {
|
|
|
+ STAVE: "staff",
|
|
|
+ JIAN: "fixedTone",
|
|
|
+ FIRST: "firstTone"
|
|
|
+ }
|
|
|
+ if (details.scoreType) {
|
|
|
+ return template[details.scoreType] || "staff"
|
|
|
+ }
|
|
|
+ return "staff"
|
|
|
+ })
|
|
|
+
|
|
|
/** 选中的item */
|
|
|
const activeItem = computed(() => {
|
|
|
const list = state.list[state.listActive] || {}
|
|
@@ -128,22 +142,23 @@ export default defineComponent({
|
|
|
defaultScoreRender: list?.defaultScoreRender,
|
|
|
musicPdfUrl: list?.musicPdfUrl
|
|
|
}
|
|
|
+ console.log(tempList, "tempList --- tempList")
|
|
|
} else if (userStoreHook.roles === "KLX") {
|
|
|
- const item: any = list.background?.[0]
|
|
|
+ // 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,
|
|
|
- titleImg: list?.titleImg,
|
|
|
- musicImg: list.musicImg,
|
|
|
- musicJianImg: list.musicJianSvg,
|
|
|
- musicFirstImg: list.musicFirstSvg,
|
|
|
- isScoreRender: false,
|
|
|
- defaultScoreRender: false,
|
|
|
- musicPdfUrl: list?.musicPdfUrl
|
|
|
+ name: list?.name,
|
|
|
+ // background: list?.background,
|
|
|
+ // xmlUrl: list?.xmlFileUrl,
|
|
|
+ // musicSheetType: list?.musicSheetType,
|
|
|
+ audioFileUrl: list?.audioFileUrl,
|
|
|
+ titleImg: list?.titleImg
|
|
|
+ // musicImg: list.musicImg,
|
|
|
+ // musicJianImg: list.musicJianSvg,
|
|
|
+ // musicFirstImg: list.musicFirstSvg,
|
|
|
+ // isScoreRender: false,
|
|
|
+ // defaultScoreRender: false,
|
|
|
+ // musicPdfUrl: list?.musicPdfUrl
|
|
|
}
|
|
|
}
|
|
|
return tempList
|
|
@@ -420,7 +435,7 @@ export default defineComponent({
|
|
|
return {
|
|
|
label: item.name,
|
|
|
value: item.id,
|
|
|
- instrumentIds: item.instrumentIds
|
|
|
+ instrumentIds: item.instrumentId
|
|
|
}
|
|
|
})
|
|
|
|
|
@@ -465,11 +480,7 @@ export default defineComponent({
|
|
|
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.totalPage
|
|
|
} else {
|
|
@@ -481,6 +492,19 @@ export default defineComponent({
|
|
|
})
|
|
|
}
|
|
|
|
|
|
+ const handleGetDetail_klx = async () => {
|
|
|
+ loading.value = true
|
|
|
+ const { id } = state.list[state.listActive] || {}
|
|
|
+ if (!id) return (loading.value = false)
|
|
|
+ await httpAjaxErrMsg(cbsDetail_klx, id, { simpleFlag: "1", providerType: "TENANT" }).then(res => {
|
|
|
+ loading.value = false
|
|
|
+ if (res.code === 200) {
|
|
|
+ const result = res.data || {}
|
|
|
+ state.details = result
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
const handleSelectCondition_klx = async () => {
|
|
|
if (!state.categoryId || !state.firstTreeId) return
|
|
|
loading.value = true
|
|
@@ -569,9 +593,9 @@ export default defineComponent({
|
|
|
if (userStoreHook.roles === "GYM") {
|
|
|
await handleGetDetail_gym()
|
|
|
} else if (userStoreHook.roles === "GYT") {
|
|
|
- // await handleGetList_gyt()
|
|
|
+ //
|
|
|
} else if (userStoreHook.roles === "KLX") {
|
|
|
- // await handleGetList_klx()
|
|
|
+ await handleGetDetail_klx()
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -756,7 +780,7 @@ export default defineComponent({
|
|
|
state.selectedPartName = ""
|
|
|
state.selectedTrack = ""
|
|
|
state.selectedPartIndex = 0
|
|
|
- // state.musicPdfUrl = ""
|
|
|
+ // state.musicPdfUrl = ""
|
|
|
state.partXmlIndex = 0
|
|
|
document.querySelector(".musicList-container")?.scroll(0, 0)
|
|
|
state.page = 1
|
|
@@ -766,13 +790,26 @@ export default defineComponent({
|
|
|
await handleAllGetList()
|
|
|
}
|
|
|
|
|
|
+ // 获取PDF
|
|
|
+ const getCurrentPdf = (item: any, scoreType: string) => {
|
|
|
+ let pdfUrl = ""
|
|
|
+ if (scoreType === "FIRST") {
|
|
|
+ pdfUrl = item.firstPdfUrl
|
|
|
+ } else if (scoreType === "JIAN") {
|
|
|
+ pdfUrl = item.jianPdfUrl
|
|
|
+ } else if (scoreType === "STAVE") {
|
|
|
+ pdfUrl = item.musicPdfUrl
|
|
|
+ }
|
|
|
+ return pdfUrl || ""
|
|
|
+ }
|
|
|
+
|
|
|
const toDetailGYM = () => {
|
|
|
// const row: any = activeItem.value
|
|
|
const details: any = state.details
|
|
|
state.imgs = []
|
|
|
if (details.musicSheetType === "SINGLE") {
|
|
|
loading.value = false
|
|
|
- state.musicPdfUrl = details.musicPdfUrl
|
|
|
+ state.musicPdfUrl = getCurrentPdf(details, details.scoreType)
|
|
|
return
|
|
|
}
|
|
|
// state.partNames = await getPartNames(row.xmlUrl)
|
|
@@ -786,7 +823,7 @@ export default defineComponent({
|
|
|
label: item.track + (instrumentName ? `(${instrumentName})` : ""),
|
|
|
instrumentName: instrumentName,
|
|
|
track: item.track,
|
|
|
- musicPdfUrl: item.musicPdfUrl,
|
|
|
+ musicPdfUrl: getCurrentPdf(item, details.scoreType),
|
|
|
// xmlIndex: -1,
|
|
|
value: index
|
|
|
}
|
|
@@ -799,7 +836,7 @@ export default defineComponent({
|
|
|
label: "总谱",
|
|
|
instrumentName: null,
|
|
|
track: null,
|
|
|
- musicPdfUrl: "",
|
|
|
+ musicPdfUrl: getCurrentPdf(details, details.scoreType),
|
|
|
xmlIndex: 999,
|
|
|
value: 999
|
|
|
})
|
|
@@ -832,20 +869,19 @@ export default defineComponent({
|
|
|
}
|
|
|
|
|
|
defaultShowStaff || (defaultShowStaff = partColumns.value.find((item: any) => item.value === state.selectedPartIndex))
|
|
|
-
|
|
|
state.selectedPartName = defaultShowStaff?.instrumentName
|
|
|
state.selectedTrack = defaultShowStaff?.track
|
|
|
state.partXmlIndex = defaultShowStaff?.xmlIndex
|
|
|
state.selectedPartIndex = defaultShowStaff?.value
|
|
|
if (details.isScoreRender && details.defaultScoreRender) {
|
|
|
- state.musicPdfUrl = details?.musicPdfUrl || ""
|
|
|
+ state.musicPdfUrl = getCurrentPdf(details, details.scoreType)
|
|
|
} else {
|
|
|
state.musicPdfUrl = defaultShowStaff?.musicPdfUrl || ""
|
|
|
}
|
|
|
}
|
|
|
|
|
|
const toDetail = async () => {
|
|
|
- if (userStoreHook.roles === "GYM") {
|
|
|
+ if (userStoreHook.roles === "GYM" || userStoreHook.roles === "KLX") {
|
|
|
toDetailGYM()
|
|
|
return
|
|
|
}
|
|
@@ -854,6 +890,7 @@ export default defineComponent({
|
|
|
if (row.musicSheetType === "SINGLE") {
|
|
|
loading.value = false
|
|
|
state.musicPdfUrl = row.musicPdfUrl
|
|
|
+ return
|
|
|
}
|
|
|
state.partNames = await getPartNames(row.xmlUrl)
|
|
|
let partList = row.background || []
|
|
@@ -925,7 +962,7 @@ export default defineComponent({
|
|
|
}
|
|
|
|
|
|
const musicIframeLoad = async () => {
|
|
|
- if (userStoreHook.roles === "GYM") {
|
|
|
+ if (userStoreHook.roles === "GYM" || userStoreHook.roles === "KLX") {
|
|
|
// 判断是用哪个渲染的
|
|
|
loading.value = false
|
|
|
staffLoading.value = false
|
|
@@ -952,8 +989,10 @@ export default defineComponent({
|
|
|
}
|
|
|
const resetRender = async () => {
|
|
|
const iframeRef: any = document.getElementById("staffIframeRef")
|
|
|
- if (userStoreHook.roles === "GYM") {
|
|
|
- iframeRef.contentWindow.location.replace(getPreViewCloud(activeItem.value.id, state.partXmlIndex, state.selectedTrack))
|
|
|
+ if (userStoreHook.roles === "GYM" || userStoreHook.roles === "KLX") {
|
|
|
+ iframeRef.contentWindow.location.replace(
|
|
|
+ getPreViewCloud(activeItem.value.id, state.partXmlIndex, state.selectedTrack, musicRenderType.value)
|
|
|
+ )
|
|
|
// state.iframeSrc = getPreViewCloud(activeItem.value.id, state.partXmlIndex)
|
|
|
return
|
|
|
}
|
|
@@ -980,13 +1019,15 @@ export default defineComponent({
|
|
|
// https://cdn.oss.dayaedu.com/daya202409/UOFVK2A.pdf
|
|
|
// https://cdn.oss.dayaedu.com/daya202409/UODQffO.pdf
|
|
|
} else {
|
|
|
- if (userStoreHook.roles === "GYM") {
|
|
|
+ if (userStoreHook.roles === "GYM" || userStoreHook.roles === "KLX") {
|
|
|
nextTick(() => {
|
|
|
const iframeRef: any = document.getElementById("staffIframeRef")
|
|
|
if (iframeRef) {
|
|
|
- iframeRef.contentWindow.location.replace(getPreViewCloud(activeItem.value.id, state.partXmlIndex, state.selectedTrack))
|
|
|
+ iframeRef.contentWindow.location.replace(
|
|
|
+ getPreViewCloud(activeItem.value.id, state.partXmlIndex, state.selectedTrack, musicRenderType.value)
|
|
|
+ )
|
|
|
} else {
|
|
|
- state.iframeSrc = getPreViewCloud(activeItem.value.id, state.partXmlIndex, state.selectedTrack)
|
|
|
+ state.iframeSrc = getPreViewCloud(activeItem.value.id, state.partXmlIndex, state.selectedTrack, musicRenderType.value)
|
|
|
}
|
|
|
})
|
|
|
} else {
|
|
@@ -999,7 +1040,7 @@ export default defineComponent({
|
|
|
}
|
|
|
|
|
|
/** 音频控制 */
|
|
|
- const handleChangeAudio = (type: "play" | "pause" | "pre" | "next") => {
|
|
|
+ const handleChangeAudio = async (type: "play" | "pause" | "pre" | "next") => {
|
|
|
if (type === "play") {
|
|
|
state.playState = "play"
|
|
|
} else if (type === "pause") {
|
|
@@ -1007,10 +1048,16 @@ export default defineComponent({
|
|
|
} else if (type === "pre") {
|
|
|
if (state.list[state.listActive - 1]) {
|
|
|
handlePlay(state.list[state.listActive - 1])
|
|
|
+
|
|
|
+ await handleGetDetail()
|
|
|
+ searchContent()
|
|
|
}
|
|
|
} else if (type === "next") {
|
|
|
if (state.list[state.listActive + 1]) {
|
|
|
handlePlay(state.list[state.listActive + 1])
|
|
|
+
|
|
|
+ await handleGetDetail()
|
|
|
+ searchContent()
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -1058,7 +1105,7 @@ export default defineComponent({
|
|
|
osmdImg[i].width,
|
|
|
osmdImg[i].height,
|
|
|
musicName,
|
|
|
- userStoreHook.roles === "GYM" ? false : true
|
|
|
+ userStoreHook.roles === "GYM" || userStoreHook.roles === "KLX" ? false : true
|
|
|
)
|
|
|
imgs.push({
|
|
|
url: img,
|
|
@@ -1130,12 +1177,10 @@ export default defineComponent({
|
|
|
if (instrumentIds) {
|
|
|
// GYM,GYT,KLX 区分 查询声部数据
|
|
|
let cbsDetails: any = []
|
|
|
- if (userStoreHook.roles === "GYM") {
|
|
|
+ if (userStoreHook.roles === "GYM" || userStoreHook.roles === "KLX") {
|
|
|
cbsDetails = state.details.musicalInstruments || []
|
|
|
} else if (userStoreHook.roles === "GYT") {
|
|
|
//
|
|
|
- } else if (userStoreHook.roles === "KLX") {
|
|
|
- //
|
|
|
}
|
|
|
const { code } =
|
|
|
cbsDetails.find((item: any) => {
|
|
@@ -1389,7 +1434,8 @@ export default defineComponent({
|
|
|
{/* <i class={styles.leftArrow}></i> */}
|
|
|
|
|
|
<NSpin show={staffLoading.value} stroke="#FF531C">
|
|
|
- {activeItem.value?.id ? (
|
|
|
+ {(userStoreHook.roles === "GYT" && activeItem.value?.id) ||
|
|
|
+ ((userStoreHook.roles === "GYM" || userStoreHook.roles === "KLX") && state.details?.id) ? (
|
|
|
state.musicPdfUrl ? (
|
|
|
<div class={[styles.staffImgs]}>
|
|
|
<iframe
|
|
@@ -1444,7 +1490,7 @@ export default defineComponent({
|
|
|
src={btnSubmit as any}
|
|
|
onClick={() => {
|
|
|
handleChangeAudio("pause")
|
|
|
- goToCloud(activeItem.value.id, state.partXmlIndex, state.selectedTrack)
|
|
|
+ goToCloud(activeItem.value.id, state.partXmlIndex, state.selectedTrack, musicRenderType.value)
|
|
|
}}
|
|
|
/>
|
|
|
|
|
@@ -1481,13 +1527,18 @@ export default defineComponent({
|
|
|
state.imgs = []
|
|
|
nextTick(() => {
|
|
|
let tempPdf = ""
|
|
|
- if (activeItem.value?.isScoreRender && value === 999) {
|
|
|
- if (activeItem.value?.musicPdfUrl) {
|
|
|
- tempPdf = activeItem.value?.musicPdfUrl
|
|
|
- }
|
|
|
- } else {
|
|
|
+ if (userStoreHook.roles === "GYM" || userStoreHook.roles === "KLX") {
|
|
|
tempPdf = item.musicPdfUrl
|
|
|
+ } else {
|
|
|
+ if (activeItem.value?.isScoreRender && value === 999) {
|
|
|
+ if (activeItem.value?.musicPdfUrl) {
|
|
|
+ tempPdf = activeItem.value?.musicPdfUrl
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ tempPdf = item.musicPdfUrl
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
if (tempPdf) {
|
|
|
state.musicPdfUrl = tempPdf
|
|
|
staffLoading.value = true
|