|
@@ -76,6 +76,15 @@ export default defineComponent({
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ const resetRenderPage = (type: string, xmlUrl: string) => {
|
|
|
+ console.log(type, xmlUrl)
|
|
|
+ const iframeRef: any = document.getElementById('staffIframeRef')
|
|
|
+ if (iframeRef && iframeRef.contentWindow.renderXml) {
|
|
|
+ console.log('resetRenderPage')
|
|
|
+ iframeRef.contentWindow.resetRenderPage(type, xmlUrl)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
const renderStaff = async () => {
|
|
|
try {
|
|
|
// staffData.iframeSrc = `${location.origin}/osmd/index.html`
|
|
@@ -101,6 +110,10 @@ export default defineComponent({
|
|
|
}
|
|
|
|
|
|
const toDetail = async (row: any) => {
|
|
|
+ if (row.musicSheetType === 'SINGLE') {
|
|
|
+ loading.value = false
|
|
|
+ return
|
|
|
+ }
|
|
|
staffData.partNames = await getPartNames(row.xmlFileUrl)
|
|
|
let partList = row.background || []
|
|
|
partList = partList.filter(
|
|
@@ -137,10 +150,6 @@ export default defineComponent({
|
|
|
if (data.audioFileUrl) {
|
|
|
initAudio()
|
|
|
} else {
|
|
|
- // if (data.musicSheetType === 'SINGLE') {
|
|
|
- // loading.value = false
|
|
|
- // return
|
|
|
- // }
|
|
|
await toDetail(staffData.details)
|
|
|
renderStaff()
|
|
|
}
|
|
@@ -353,7 +362,26 @@ export default defineComponent({
|
|
|
class={styles.staffChange}
|
|
|
round
|
|
|
>
|
|
|
- <StaffChange v-model:radio={staffData.radio} onClose={() => (staffData.status = false)} />
|
|
|
+ <StaffChange
|
|
|
+ radio={staffData.radio}
|
|
|
+ onClose={() => (staffData.status = false)}
|
|
|
+ onChange={(type: string) => {
|
|
|
+ // 更改预览状态
|
|
|
+
|
|
|
+ staffData.radio = type
|
|
|
+ staffData.status = false
|
|
|
+ if (type == 'first') {
|
|
|
+ loading.value = true
|
|
|
+ resetRenderPage('first', staffData.details.xmlFileUrl)
|
|
|
+ } else if (type == 'fixed') {
|
|
|
+ loading.value = true
|
|
|
+ resetRenderPage('fixed', staffData.details.xmlFileUrl)
|
|
|
+ } else {
|
|
|
+ loading.value = true
|
|
|
+ resetRenderPage('staff', staffData.details.xmlFileUrl)
|
|
|
+ }
|
|
|
+ }}
|
|
|
+ />
|
|
|
</Popup>
|
|
|
|
|
|
<Popup v-model:show={downloadStatus.value} position="bottom" round>
|