import { defineComponent, reactive } from 'vue'; import styles from './index.module.less'; import { NTabs, NTabPane, NModal } from 'naive-ui'; import SelectMusicModal from '../../model/select-music'; import { usePrepareStore } from '/src/store/modules/prepareLessons'; import SelectResources from '../../model/select-resources'; import SelectMusic from './components/select-music'; import ResourceItem from './components/resource-item'; import TrainUpdate from '/src/views/attend-class/model/train-update'; import requestOrigin from 'umi-request'; export default defineComponent({ name: 'resource-main', setup() { const prepareStore = usePrepareStore(); const forms = reactive({ tabType: 'shareResources', selectMusicStatus: false, selectResourceStatus: false, editStatus: false, editItem: {} as any }); const onAdd = async (item: any) => { let xmlStatus = 'init'; // 第一个声部小节 let firstMeasures: any = null; try { // 获取文件 const res = await requestOrigin.get(item.xmlFileUrl, { mode: 'cors' }); const xmlParse = new DOMParser().parseFromString(res, 'text/xml'); const parts = xmlParse.getElementsByTagName('part'); firstMeasures = parts[0]?.getElementsByTagName('measure'); xmlStatus = 'success'; } catch (error) { xmlStatus = 'error'; } // 判断读取小节数 if (xmlStatus == 'success') { item.practiceChapterMax = firstMeasures.length; } else { item.practiceChapterMax = 0; } item.coursewareKnowledgeDetailId = prepareStore.getSelectKey; item.subjectId = prepareStore.getSubjectId; forms.editItem = item; forms.editStatus = true; }; return () => (