import { defineComponent, nextTick, onMounted, reactive, ref } from 'vue'; import styles from './index.module.less'; import { NButton, NForm, NFormItem, NImage, NPopselect, NSpace } from 'naive-ui'; import iconAdd from '../../images/icon-add.png'; import TheSearch from '/src/components/TheSearch'; import { resourceTypeArray } from '/src/utils/searchArray'; import { useCatchStore } from '/src/store/modules/catchData'; import isCollaose from '../../images/isCollaose.png'; export default defineComponent({ name: 'search-group', emits: ['search', 'add'], expose: ['init'], setup(props, { emit }) { const catchStore = useCatchStore(); const forms = reactive({ type: 'MUSIC', // name: '', bookVersionId: null, subjectId: null }); const state = reactive({ tempSubjectId: null }); const onSearch = () => { emit('search', forms); }; const collapseWrapRef = ref(); const divDomList = ref([] as any); const orginHeight = ref(0); const line = ref(0); const isCollapse = ref(false); const loadingCollapse = ref(false); // 是否加载完成 const musicCateRef = (el: any) => { if (el?.selfElRef) { divDomList.value.push(el.selfElRef.parentNode); } }; const setCollapse = (flag: boolean) => { isCollapse.value = flag; getLive(); }; const getLive = () => { try { divDomList.value = [...new Set(divDomList.value)]; let offsetLeft = -1; divDomList.value.forEach((item: any, index: number) => { if (index === 0) { line.value = 1; offsetLeft = item.offsetLeft; } else if (item.offsetLeft === offsetLeft && index != 0) { // 如果某个标签的offsetLeft和第一个标签的offsetLeft相等 说明增加了一行 line.value++; } if (!isCollapse.value) { if (line.value > 1) { //从第3行开始 隐藏标签 item.style.display = 'none'; // 显示展开按钮 class名chu是在前面动态添加的 } else { item.style.display = 'block'; } } else { item.style.display = 'block'; } }); loadingCollapse.value = true; } catch { // } }; const selectChildObj = (item: any) => { const obj: any = {}; item?.forEach((child: any) => { if (child.id === forms.subjectId) { obj.selected = true; obj.name = child.name; } }); return obj; }; onMounted(async () => { // console.log('加载'); // 获取教材分类列表 await catchStore.getMusicSheetCategory(); // 获取声部列表 await catchStore.getSubjects(); if (forms.type === 'MUSIC') { orginHeight.value = collapseWrapRef.value?.offsetHeight; // hiddenHeight.value = collapseWrapRef.value.offsetHeight / line.value; // 默认隐藏 getLive(); } }); return () => (