import { defineComponent, onMounted, ref } from 'vue'; import styles from './index.module.less'; import { NButton, NScrollbar, NSpace, NTabPane, NTabs } from 'naive-ui'; import { useCatchStore } from '/src/store/modules/catchData'; import iconSelect from '../../../prepare-lessons/images/icon-select.png'; export default defineComponent({ name: 'subject-sync', emits: ['close', 'confirm'], setup(props, { emit }) { const catchStore = useCatchStore(); const tabId = ref('' as any); const selectSubjectId = ref(null as any); const subjectList = ref([] as any); const onSubmit = () => { const item = subjectList.value.find( (subject: any) => subject.id === selectSubjectId.value ); if (item) { item.code = item.code ? item.code.split(',')[0] : ''; } emit('confirm', item); }; 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.getSubjects(); await catchStore.getSubjects(); formatSubjectList(); }); return () => (
{ tabId.value = val; formatSubjectList(); }}> {[{ name: '全部声部', id: '' }, ...catchStore.getEnableSubjects].map( (item: any) => ( ) )}
{subjectList.value.map((subject: any) => (
{ selectSubjectId.value = subject.id; }}>
{selectSubjectId.value === subject.id && ( )}

{subject.name}

))}
emit('close')}> 取消 确认选择
); } });