lex 1 gadu atpakaļ
vecāks
revīzija
5f079b46b0

+ 1 - 1
public/version.json

@@ -1 +1 @@
-{"version":1714276110112}
+{"version":1714284936219}

+ 261 - 267
src/views/natural-resources/components/my-collect/search-group-resources.tsx

@@ -1,267 +1,261 @@
-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 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'],
-  setup(props, { emit }) {
-    const catchStore = useCatchStore();
-    const resourceList = ref([] as any[]);
-    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 () => {
-      resourceList.value = [
-        // {
-        //   label: '全部',
-        //   value: ''
-        // },
-        ...resourceTypeArray
-      ];
-
-      // 获取教材分类列表
-      await catchStore.getMusicSheetCategory();
-      // 获取声部列表
-      await catchStore.getSubjects();
-
-      // 这里开始
-      // if (forms.type === 'MUSIC') {
-      //   orginHeight.value = collapseWrapRef.value.offsetHeight;
-      //   // 默认隐藏
-      //   getLive();
-      // }
-    });
-    return () => (
-      <div class={styles.searchGroup}>
-        <div class={styles.searchCatatory}>
-          <NSpace size="small" class={styles.btnType}>
-            {resourceList.value.map((item: any) => (
-              <NButton
-                type={forms.type === item.value ? 'primary' : 'default'}
-                secondary={forms.type === item.value ? false : true}
-                round
-                size="small"
-                focusable={false}
-                onClick={() => {
-                  forms.type = item.value;
-                  forms.subjectId = null;
-                  state.tempSubjectId = null;
-                  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>
-            ))}
-          </NSpace>
-        </div>
-        <NForm labelAlign="left" labelPlacement="left">
-          {/* {forms.type === 'MUSIC' && (
-            <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
-                        data-id={music.id}
-                        ref={musicCateRef}
-                        secondary={forms.bookVersionId === music.id}
-                        quaternary={forms.bookVersionId !== music.id}
-                        strong
-                        focusable={false}
-                        type={
-                          forms.bookVersionId === music.id
-                            ? 'primary'
-                            : 'default'
-                        }
-                        onClick={() => {
-                          forms.bookVersionId = music.id;
-                          onSearch();
-                        }}>
-                        {music.name}
-                      </NButton>
-                    ))}
-                    {line.value > 1 && (
-                      <div
-                        style={{
-                          height: 'var(--n-blank-height)',
-                          position: 'absolute',
-                          display: 'flex',
-                          alignItems: 'center'
-                        }}
-                        onClick={() => {
-                          setCollapse(!isCollapse.value);
-                        }}>
-                        <NImage
-                          previewDisabled
-                          src={isCollaose}
-                          class={[
-                            styles.collaoseBtn,
-                            isCollapse.value ? styles.isStart : ''
-                          ]}></NImage>
-                      </div>
-                    )}
-                  </NSpace>
-                </div>
-              </NFormItem>
-            </div>
-          )} */}
-          <NFormItem label="乐器:">
-            <NSpace class={styles.spaceSection2}>
-              {catchStore.getSubjectInstruments.map((subject: any) =>
-                subject.instruments && subject.instruments.length > 1 ? (
-                  <NPopselect
-                    options={subject.instruments}
-                    trigger="hover"
-                    scrollable
-                    v-model:value={state.tempSubjectId}
-                    onUpdate:value={() => {
-                      forms.subjectId = state.tempSubjectId;
-
-                      onSearch();
-                    }}
-                    key={subject.value}
-                    class={[styles.popSelect]}>
-                    <span
-                      class={[
-                        styles.textBtn,
-                        selectChildObj(subject.instruments).selected &&
-                          styles.textBtnActive
-                      ]}>
-                      {selectChildObj(subject.instruments).name || subject.name}
-                      <i class={styles.iconArrow}></i>
-                    </span>
-                  </NPopselect>
-                ) : (
-                  <span
-                    class={[
-                      styles.textBtn,
-                      (forms.type === 'MUSIC'
-                        ? forms.subjectId === subject.value
-                        : forms.subjectId === subject.id) &&
-                        styles.textBtnActive
-                    ]}
-                    onClick={() => {
-                      if (forms.type === 'MUSIC') {
-                        forms.subjectId = subject.value;
-                      } else {
-                        forms.subjectId = subject.id;
-                      }
-                      state.tempSubjectId = null;
-                      onSearch();
-                    }}>
-                    {subject.name}
-                  </span>
-                )
-              )}
-            </NSpace>
-          </NFormItem>
-
-          <TheSearch
-            class={styles.inputSearch}
-            round
-            onSearch={(val: string) => {
-              forms.name = val;
-              onSearch();
-            }}
-          />
-        </NForm>
-      </div>
-    );
-  }
-});
+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 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'],
+  setup(props, { emit }) {
+    const catchStore = useCatchStore();
+    const resourceList = ref([] as any[]);
+    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 () => {
+      resourceList.value = [
+        // {
+        //   label: '全部',
+        //   value: ''
+        // },
+        ...resourceTypeArray
+      ];
+
+      // 获取教材分类列表
+      await catchStore.getMusicSheetCategory();
+      // 获取声部列表
+      await catchStore.getSubjects();
+
+      // 这里开始
+      // if (forms.type === 'MUSIC') {
+      //   orginHeight.value = collapseWrapRef.value.offsetHeight;
+      //   // 默认隐藏
+      //   getLive();
+      // }
+    });
+    return () => (
+      <div class={styles.searchGroup}>
+        <div class={styles.searchCatatory}>
+          <NSpace size="small" class={styles.btnType}>
+            {resourceList.value.map((item: any) => (
+              <NButton
+                type={forms.type === item.value ? 'primary' : 'default'}
+                secondary={forms.type === item.value ? false : true}
+                round
+                size="small"
+                focusable={false}
+                onClick={() => {
+                  forms.type = item.value;
+                  forms.subjectId = null;
+                  state.tempSubjectId = null;
+                  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>
+            ))}
+          </NSpace>
+        </div>
+        <NForm labelAlign="left" labelPlacement="left">
+          {/* {forms.type === 'MUSIC' && (
+            <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
+                        data-id={music.id}
+                        ref={musicCateRef}
+                        secondary={forms.bookVersionId === music.id}
+                        quaternary={forms.bookVersionId !== music.id}
+                        strong
+                        focusable={false}
+                        type={
+                          forms.bookVersionId === music.id
+                            ? 'primary'
+                            : 'default'
+                        }
+                        onClick={() => {
+                          forms.bookVersionId = music.id;
+                          onSearch();
+                        }}>
+                        {music.name}
+                      </NButton>
+                    ))}
+                    {line.value > 1 && (
+                      <div
+                        style={{
+                          height: 'var(--n-blank-height)',
+                          position: 'absolute',
+                          display: 'flex',
+                          alignItems: 'center'
+                        }}
+                        onClick={() => {
+                          setCollapse(!isCollapse.value);
+                        }}>
+                        <NImage
+                          previewDisabled
+                          src={isCollaose}
+                          class={[
+                            styles.collaoseBtn,
+                            isCollapse.value ? styles.isStart : ''
+                          ]}></NImage>
+                      </div>
+                    )}
+                  </NSpace>
+                </div>
+              </NFormItem>
+            </div>
+          )} */}
+          <NFormItem label="乐器:">
+            <NSpace class={styles.spaceSection2}>
+              {catchStore.getSubjectInstruments.map((subject: any) =>
+                subject.instruments && subject.instruments.length > 1 ? (
+                  <NPopselect
+                    options={subject.instruments}
+                    trigger="hover"
+                    scrollable
+                    v-model:value={state.tempSubjectId}
+                    onUpdate:value={() => {
+                      forms.subjectId = state.tempSubjectId;
+
+                      onSearch();
+                    }}
+                    key={subject.value}
+                    class={[styles.popSelect]}>
+                    <span
+                      class={[
+                        styles.textBtn,
+                        selectChildObj(subject.instruments).selected &&
+                          styles.textBtnActive
+                      ]}>
+                      {selectChildObj(subject.instruments).name || subject.name}
+                      <i class={styles.iconArrow}></i>
+                    </span>
+                  </NPopselect>
+                ) : (
+                  <span
+                    class={[
+                      styles.textBtn,
+                      forms.subjectId === subject.value && styles.textBtnActive
+                    ]}
+                    onClick={() => {
+                      forms.subjectId = subject.value;
+
+                      state.tempSubjectId = null;
+                      onSearch();
+                    }}>
+                    {subject.name}
+                  </span>
+                )
+              )}
+            </NSpace>
+          </NFormItem>
+
+          <TheSearch
+            class={styles.inputSearch}
+            round
+            onSearch={(val: string) => {
+              forms.name = val;
+              onSearch();
+            }}
+          />
+        </NForm>
+      </div>
+    );
+  }
+});

+ 3 - 9
src/views/natural-resources/components/my-resources/search-group-resources.tsx

@@ -240,17 +240,11 @@ export default defineComponent({
                   <span
                     class={[
                       styles.textBtn,
-                      (forms.type === 'MUSIC'
-                        ? forms.subjectId === subject.value
-                        : forms.subjectId === subject.id) &&
-                        styles.textBtnActive
+                      forms.subjectId === subject.value && styles.textBtnActive
                     ]}
                     onClick={() => {
-                      if (forms.type === 'MUSIC') {
-                        forms.subjectId = subject.value;
-                      } else {
-                        forms.subjectId = subject.id;
-                      }
+                      forms.subjectId = subject.value;
+
                       state.tempSubjectId = null;
                       onSearch();
                     }}>

+ 4 - 9
src/views/natural-resources/components/share-resources/search-group-resources.tsx

@@ -231,17 +231,12 @@ export default defineComponent({
                   <span
                     class={[
                       styles.textBtn,
-                      (forms.type === 'MUSIC'
-                        ? forms.subjectId === subject.value
-                        : forms.subjectId === subject.id) &&
-                        styles.textBtnActive
+
+                      forms.subjectId === subject.value && styles.textBtnActive
                     ]}
                     onClick={() => {
-                      if (forms.type === 'MUSIC') {
-                        forms.subjectId = subject.value;
-                      } else {
-                        forms.subjectId = subject.id;
-                      }
+                      forms.subjectId = subject.value;
+
                       state.tempSubjectId = null;
                       onSearch();
                     }}>