|
@@ -1,4 +1,4 @@
|
|
|
-import { defineComponent, onMounted, reactive, ref } from 'vue';
|
|
|
+import { defineComponent, nextTick, onMounted, reactive, ref } from 'vue';
|
|
|
import styles from './index.module.less';
|
|
|
import { NButton, NForm, NFormItem, NImage, NSpace } from 'naive-ui';
|
|
|
import iconAdd from '../../images/icon-add.png';
|
|
@@ -20,24 +20,16 @@ export default defineComponent({
|
|
|
});
|
|
|
|
|
|
const onSearch = () => {
|
|
|
- console.log('onSearch')
|
|
|
- divDomList.value = []
|
|
|
- setCollapse(true)
|
|
|
emit('search', forms);
|
|
|
};
|
|
|
- const init = () => {
|
|
|
- setCollapse(false)
|
|
|
- }
|
|
|
const collapseWrapRef = ref();
|
|
|
const divDomList = ref([] as any);
|
|
|
const orginHeight = ref(0);
|
|
|
- const hiddenHeight = ref(0);
|
|
|
const line = ref(0);
|
|
|
const isCollapse = ref(false);
|
|
|
+ const loadingCollapse = ref(false); // 是否加载完成
|
|
|
const musicCateRef = (el: any) => {
|
|
|
- console.log('musicCateRef', musicCateRef)
|
|
|
- // console.log(el?.selfElRef, 'el.selfElRef')
|
|
|
- if (el?.selfElRef?.parentNode) {
|
|
|
+ if (el?.selfElRef) {
|
|
|
divDomList.value.push(el.selfElRef.parentNode);
|
|
|
}
|
|
|
};
|
|
@@ -46,45 +38,47 @@ export default defineComponent({
|
|
|
getLive();
|
|
|
};
|
|
|
const getLive = () => {
|
|
|
- console.log(divDomList.value.length)
|
|
|
- divDomList.value = [...new Set(divDomList.value)];
|
|
|
- let offsetLeft = -1;
|
|
|
- console.log(divDomList.value, ' divDomList.value')
|
|
|
- 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) {
|
|
|
- //从第2行开始 隐藏标签
|
|
|
- item.style.display = 'none';
|
|
|
- // 显示展开按钮 class名chu是在前面动态添加的
|
|
|
+ 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';
|
|
|
}
|
|
|
- } else {
|
|
|
- item.style.display = 'block';
|
|
|
- }
|
|
|
- });
|
|
|
+ });
|
|
|
+ loadingCollapse.value = true;
|
|
|
+ } catch {
|
|
|
+ //
|
|
|
+ }
|
|
|
};
|
|
|
onMounted(async () => {
|
|
|
- console.log('加载')
|
|
|
+ console.log('加载');
|
|
|
// 获取教材分类列表
|
|
|
await catchStore.getMusicSheetCategory();
|
|
|
// 获取声部列表
|
|
|
await catchStore.getSubjects();
|
|
|
|
|
|
-
|
|
|
- orginHeight.value = collapseWrapRef.value.offsetHeight;
|
|
|
- hiddenHeight.value = collapseWrapRef.value.offsetHeight / line.value;
|
|
|
- // 默认隐藏
|
|
|
- setCollapse(false)
|
|
|
- // 这里开始
|
|
|
-
|
|
|
+ if (forms.type === 'MUSIC') {
|
|
|
+ orginHeight.value = collapseWrapRef.value.offsetHeight;
|
|
|
+ // hiddenHeight.value = collapseWrapRef.value.offsetHeight / line.value;
|
|
|
+ // 默认隐藏
|
|
|
+ getLive();
|
|
|
+ }
|
|
|
});
|
|
|
return () => (
|
|
|
<div class={styles.searchGroup}>
|
|
@@ -100,6 +94,18 @@ export default defineComponent({
|
|
|
onClick={() => {
|
|
|
forms.type = item.value;
|
|
|
onSearch();
|
|
|
+
|
|
|
+ nextTick(() => {
|
|
|
+ if (forms.type === 'MUSIC') {
|
|
|
+ orginHeight.value = collapseWrapRef.value.offsetHeight;
|
|
|
+ // hiddenHeight.value =
|
|
|
+ // collapseWrapRef.value.offsetHeight / line.value || 0;
|
|
|
+ // 默认隐藏
|
|
|
+ getLive();
|
|
|
+ } else {
|
|
|
+ divDomList.value = [];
|
|
|
+ }
|
|
|
+ });
|
|
|
}}>
|
|
|
{item.label}
|
|
|
</NButton>
|
|
@@ -123,6 +129,7 @@ export default defineComponent({
|
|
|
<div
|
|
|
class={[
|
|
|
styles.collapseWrap,
|
|
|
+ loadingCollapse.value ? '' : styles.hideButton,
|
|
|
isCollapse.value ? '' : styles.isHidden
|
|
|
]}
|
|
|
ref={collapseWrapRef}>
|