import { defineComponent, onMounted, ref } from 'vue'; import styles from './index.module.less'; import { NButton, NScrollbar, NSpace, NTabPane, NTabs, useMessage } from 'naive-ui'; import { useCatchStore } from '/src/store/modules/catchData'; import iconSelect from '../../images/icon-select.png'; import { usePrepareStore } from '/src/store/modules/prepareLessons'; import { PageEnum } from '/src/enums/pageEnum'; export default defineComponent({ name: 'subject-sync', props: { subjectId: { type: [String, Number], default: '' } }, emits: ['close', 'confirm'], setup(props, { emit }) { const catchStore = useCatchStore(); const prepareStore = usePrepareStore(); const tabId = ref('' as any); const message = useMessage(); const selectSubjectIds = ref([] as any); const subjectList = ref([] as any); const subjectImgs = { Panpipes: 'https://oss.dayaedu.com/ktqy/17103860536976fd4a751.png', // Ocarina: 'https://oss.dayaedu.com/ktqy/171038605369851874b22.png', Ocarina: 'https://oss.dayaedu.com/ktqy/17143623857205dba41a5.png', Whistling: 'https://oss.dayaedu.com/ktqy/1714362351692fcf8c0b8.png', Woodwind: 'https://oss.dayaedu.com/ktqy/17103860536966826c50d.png', 'Tenor Recorder': 'https://oss.dayaedu.com/ktqy/17103860536950592e357.png', Nai: 'https://oss.dayaedu.com/ktqy/1710386053697af4aa985.png', 'Baroque Recorder': 'https://oss.dayaedu.com/ktqy/1710386053698031e847a.png' } as any; /* https://oss.dayaedu.com/ktqy/17103860536950592e357.png https://oss.dayaedu.com/ktqy/17103860536966826c50d.png https://oss.dayaedu.com/ktqy/1710386053697af4aa985.png https://oss.dayaedu.com/ktqy/17103860536976fd4a751.png https://oss.dayaedu.com/ktqy/171038605369851874b22.png https://oss.dayaedu.com/ktqy/1710386053698031e847a.png */ const onSubmit = () => { if (selectSubjectIds.value.length <= 0) { message.error('至少选择一个声部进行同步'); return; } const subjectCode: any[] = []; // subjectList.value.forEach((subject: any) => { // if (selectSubjectIds.value.includes(subject.id)) { // subjectCode.push({ // materialId: subject.id, // coverImg: subjectImgs[subject.code] || subjectImgs.Panpipes, // dataJson: null, // title: subject.name, // isCollect: false, // isSelected: false, // content: subject.code // }); // } // }); selectSubjectIds.value.forEach((id: any) => { const item = subjectList.value.find( (subject: any) => subject.id === id ); console.log(item, 'item'); if (item) { subjectCode.push({ materialId: item.id, coverImg: subjectImgs[item.code] || subjectImgs.Panpipes, dataJson: null, title: item.name, isCollect: false, isSelected: false, content: item.code }); } }); emit('confirm', { subjectIds: selectSubjectIds.value, subjectCode }); }; const formatSubjectList = () => { const subjects = catchStore.getEnableSubjects; const temp: any = []; subjects.forEach((subject: any) => { if (tabId.value === '' && subject.instruments) { temp.push(...subject.instruments); } else if ( tabId.value && subject.instruments && Number(tabId.value) === subject.id ) { temp.push(...subject.instruments); } }); subjectList.value = temp; }; onMounted(async () => { // 获取教材分类列表 // await catchStore.getMusicInstrument(); // subjectList.value = catchStore.getMusicInstruments; await catchStore.getSubjects(); formatSubjectList(); // const teachingSubjectList = prepareStore.getSubjectList; // 教材自带声部; // const tempSubjectList: any = []; // baseAllSubjectList.forEach((subject: any) => { // const index = teachingSubjectList.findIndex( // (t: any) => t.id == subject.id // ); // if (index != -1) { // tempSubjectList.push(subject); // } // }); // subjectList.value = tempSubjectList; if (props.subjectId) { selectSubjectIds.value = [Number(props.subjectId)]; } }); return () => (
{/*
请选择当前课件可使用的乐器 (勾选后则对应乐器下的课件内容将被当前课件内容全部替换)
*/} { tabId.value = val; formatSubjectList(); }}> {[{ name: '全部声部', id: '' }, ...catchStore.getEnableSubjects].map( (item: any) => ( ) )}
{subjectList.value.map((subject: any) => (
{ if (selectSubjectIds.value.includes(subject.id)) { const index = selectSubjectIds.value.indexOf(subject.id); selectSubjectIds.value.splice(index, 1); } else { selectSubjectIds.value.push(subject.id); } }}>
{selectSubjectIds.value.includes(subject.id) && ( )}

{subject.name}

))}
emit('close')}> 取消 确定
); } });