|
@@ -44,15 +44,19 @@ export default defineComponent({
|
|
type: 'MUSIC', //
|
|
type: 'MUSIC', //
|
|
name: '',
|
|
name: '',
|
|
subjectId: subjectId.value as any,
|
|
subjectId: subjectId.value as any,
|
|
- bookVersionId: null
|
|
|
|
|
|
+ grade: null as any,
|
|
|
|
+ bookVersionId: null as any,
|
|
|
|
+ musicSheetCategoriesId: null as any
|
|
});
|
|
});
|
|
const state = reactive({
|
|
const state = reactive({
|
|
- tempSubjectId: null
|
|
|
|
|
|
+ tempSubjectId: null,
|
|
|
|
+ gradeList: [] as any[],
|
|
|
|
+ musicCategory: [] as any
|
|
});
|
|
});
|
|
const resourceType = ref([] as any);
|
|
const resourceType = ref([] as any);
|
|
|
|
|
|
- const onSearch = () => {
|
|
|
|
- emit('search', forms);
|
|
|
|
|
|
+ const onSearch = (type?: string) => {
|
|
|
|
+ emit('search', forms, type);
|
|
};
|
|
};
|
|
|
|
|
|
const throttleFn = useThrottleFn(() => onSearch(), 500);
|
|
const throttleFn = useThrottleFn(() => onSearch(), 500);
|
|
@@ -114,6 +118,27 @@ export default defineComponent({
|
|
});
|
|
});
|
|
return obj;
|
|
return obj;
|
|
};
|
|
};
|
|
|
|
+
|
|
|
|
+ const onChangeSearch = (type: string, list: any) => {
|
|
|
|
+ if (type === 'version') {
|
|
|
|
+ console.log(list, 'list');
|
|
|
|
+ state.gradeList = list || [];
|
|
|
|
+ if (state.gradeList.length > 0) {
|
|
|
|
+ forms.grade = state.gradeList[0].id;
|
|
|
|
+ state.musicCategory = state.gradeList[0].children || [];
|
|
|
|
+ if (state.musicCategory.length > 0) {
|
|
|
|
+ forms.musicSheetCategoriesId = state.musicCategory[0].id;
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ state.musicCategory = [] as any;
|
|
|
|
+ }
|
|
|
|
+ } else if (type === 'grade') {
|
|
|
|
+ state.musicCategory = list || [];
|
|
|
|
+ if (state.musicCategory.length > 0) {
|
|
|
|
+ forms.musicSheetCategoriesId = state.musicCategory[0].id;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ };
|
|
onMounted(async () => {
|
|
onMounted(async () => {
|
|
// if (props.type === 'myCollect') {
|
|
// if (props.type === 'myCollect') {
|
|
// resourceType.value.push({
|
|
// resourceType.value.push({
|
|
@@ -130,8 +155,9 @@ export default defineComponent({
|
|
// }
|
|
// }
|
|
});
|
|
});
|
|
|
|
|
|
- // 获取教材分类列表
|
|
|
|
- await catchStore.getMusicSheetCategory();
|
|
|
|
|
|
+ // // 获取教材分类列表
|
|
|
|
+ // await catchStore.getMusicSheetCategory();
|
|
|
|
+ await catchStore.getMusicTagTreeApi();
|
|
// 获取声部
|
|
// 获取声部
|
|
await catchStore.getSubjects();
|
|
await catchStore.getSubjects();
|
|
|
|
|
|
@@ -157,6 +183,23 @@ export default defineComponent({
|
|
hiddenHeight.value = collapseWrapRef.value?.offsetHeight / line.value;
|
|
hiddenHeight.value = collapseWrapRef.value?.offsetHeight / line.value;
|
|
// 默认隐藏
|
|
// 默认隐藏
|
|
getLive();
|
|
getLive();
|
|
|
|
+
|
|
|
|
+ const musicTagTreeList = catchStore.getMusicTagTree;
|
|
|
|
+ if (musicTagTreeList.length > 0) {
|
|
|
|
+ forms.bookVersionId = musicTagTreeList[0].id;
|
|
|
|
+ state.gradeList = musicTagTreeList[0].children || [];
|
|
|
|
+ if (state.gradeList.length > 0) {
|
|
|
|
+ forms.grade = state.gradeList[0].id;
|
|
|
|
+ state.musicCategory = state.gradeList[0].children || [];
|
|
|
|
+ if (state.musicCategory.length > 0) {
|
|
|
|
+ forms.musicSheetCategoriesId = state.musicCategory[0].id;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (props.type === 'shareResources') {
|
|
|
|
+ onSearch('timer');
|
|
}
|
|
}
|
|
});
|
|
});
|
|
return () => (
|
|
return () => (
|
|
@@ -207,54 +250,101 @@ export default defineComponent({
|
|
</div>
|
|
</div>
|
|
<NForm labelAlign="left" labelPlacement="left">
|
|
<NForm labelAlign="left" labelPlacement="left">
|
|
{forms.type === 'MUSIC' && props.type === 'shareResources' && (
|
|
{forms.type === 'MUSIC' && props.type === 'shareResources' && (
|
|
- <div class={styles.collapsSection}>
|
|
|
|
- <NFormItem label="教材:">
|
|
|
|
- <div
|
|
|
|
- class={[
|
|
|
|
- styles.collapseWrap,
|
|
|
|
- loadingCollapse.value ? '' : styles.hideButton,
|
|
|
|
- isCollapse.value ? '' : styles.isHidden
|
|
|
|
- ]}
|
|
|
|
- ref={collapseWrapRef}>
|
|
|
|
- <NSpace class={[styles.spaceSection]}>
|
|
|
|
- {catchStore.getAllMusicCategories.map((music: any) => (
|
|
|
|
- <NButton
|
|
|
|
- ref={musicCateRef}
|
|
|
|
- secondary={forms.bookVersionId === music.id}
|
|
|
|
- quaternary={forms.bookVersionId !== music.id}
|
|
|
|
- strong
|
|
|
|
- focusable={false}
|
|
|
|
- type={
|
|
|
|
- forms.bookVersionId === music.id
|
|
|
|
- ? 'primary'
|
|
|
|
- : 'default'
|
|
|
|
- }
|
|
|
|
|
|
+ <>
|
|
|
|
+ <NFormItem label="版本:">
|
|
|
|
+ <NSpace class={styles.spaceSection}>
|
|
|
|
+ {catchStore.getMusicTagTree.map((subject: any) => (
|
|
|
|
+ <span
|
|
|
|
+ class={[
|
|
|
|
+ styles.textBtn,
|
|
|
|
+ forms.bookVersionId === subject.id &&
|
|
|
|
+ styles.textBtnActive
|
|
|
|
+ ]}
|
|
|
|
+ onClick={() => {
|
|
|
|
+ forms.bookVersionId = subject.id;
|
|
|
|
+ onChangeSearch('version', subject.children || []);
|
|
|
|
+ onSearch();
|
|
|
|
+ }}>
|
|
|
|
+ {subject.name}
|
|
|
|
+ </span>
|
|
|
|
+ ))}
|
|
|
|
+ </NSpace>
|
|
|
|
+ </NFormItem>
|
|
|
|
+ {state.gradeList.length > 0 && (
|
|
|
|
+ <NFormItem label="年级:">
|
|
|
|
+ <NSpace class={styles.spaceSection}>
|
|
|
|
+ {state.gradeList.map((subject: any) => (
|
|
|
|
+ <span
|
|
|
|
+ class={[
|
|
|
|
+ styles.textBtn,
|
|
|
|
+ forms.grade === subject.id && styles.textBtnActive
|
|
|
|
+ ]}
|
|
onClick={() => {
|
|
onClick={() => {
|
|
- forms.bookVersionId = music.id;
|
|
|
|
|
|
+ forms.grade = subject.id;
|
|
|
|
+ onChangeSearch('grade', subject.children || []);
|
|
onSearch();
|
|
onSearch();
|
|
}}>
|
|
}}>
|
|
- {music.name}
|
|
|
|
- </NButton>
|
|
|
|
|
|
+ {subject.name}
|
|
|
|
+ </span>
|
|
))}
|
|
))}
|
|
- {line.value > 1 && (
|
|
|
|
- <div
|
|
|
|
- class={styles.collaoseGroup}
|
|
|
|
- onClick={() => {
|
|
|
|
- setCollapse(!isCollapse.value);
|
|
|
|
- }}>
|
|
|
|
- <NImage
|
|
|
|
- previewDisabled
|
|
|
|
- src={isCollaose}
|
|
|
|
- class={[
|
|
|
|
- styles.collaoseBtn,
|
|
|
|
- isCollapse.value ? styles.isStart : ''
|
|
|
|
- ]}></NImage>
|
|
|
|
- </div>
|
|
|
|
- )}
|
|
|
|
</NSpace>
|
|
</NSpace>
|
|
|
|
+ </NFormItem>
|
|
|
|
+ )}
|
|
|
|
+ {state.musicCategory.length > 0 && (
|
|
|
|
+ <div class={styles.collapsSection}>
|
|
|
|
+ <NFormItem label="教材:">
|
|
|
|
+ <div
|
|
|
|
+ class={[
|
|
|
|
+ styles.collapseWrap,
|
|
|
|
+ loadingCollapse.value ? '' : styles.hideButton,
|
|
|
|
+ isCollapse.value ? '' : styles.isHidden
|
|
|
|
+ ]}
|
|
|
|
+ ref={collapseWrapRef}>
|
|
|
|
+ <NSpace class={[styles.spaceSection]}>
|
|
|
|
+ {state.musicCategory.map((music: any) => (
|
|
|
|
+ <NButton
|
|
|
|
+ ref={musicCateRef}
|
|
|
|
+ secondary={
|
|
|
|
+ forms.musicSheetCategoriesId === music.id
|
|
|
|
+ }
|
|
|
|
+ quaternary={
|
|
|
|
+ forms.musicSheetCategoriesId !== music.id
|
|
|
|
+ }
|
|
|
|
+ strong
|
|
|
|
+ focusable={false}
|
|
|
|
+ type={
|
|
|
|
+ forms.musicSheetCategoriesId === music.id
|
|
|
|
+ ? 'primary'
|
|
|
|
+ : 'default'
|
|
|
|
+ }
|
|
|
|
+ onClick={() => {
|
|
|
|
+ forms.musicSheetCategoriesId = music.id;
|
|
|
|
+ onSearch();
|
|
|
|
+ }}>
|
|
|
|
+ {music.name}
|
|
|
|
+ </NButton>
|
|
|
|
+ ))}
|
|
|
|
+ {line.value > 1 && (
|
|
|
|
+ <div
|
|
|
|
+ class={styles.collaoseGroup}
|
|
|
|
+ onClick={() => {
|
|
|
|
+ setCollapse(!isCollapse.value);
|
|
|
|
+ }}>
|
|
|
|
+ <NImage
|
|
|
|
+ previewDisabled
|
|
|
|
+ src={isCollaose}
|
|
|
|
+ class={[
|
|
|
|
+ styles.collaoseBtn,
|
|
|
|
+ isCollapse.value ? styles.isStart : ''
|
|
|
|
+ ]}></NImage>
|
|
|
|
+ </div>
|
|
|
|
+ )}
|
|
|
|
+ </NSpace>
|
|
|
|
+ </div>
|
|
|
|
+ </NFormItem>
|
|
</div>
|
|
</div>
|
|
- </NFormItem>
|
|
|
|
- </div>
|
|
|
|
|
|
+ )}
|
|
|
|
+ </>
|
|
)}
|
|
)}
|
|
|
|
|
|
<NFormItem label="乐器:">
|
|
<NFormItem label="乐器:">
|