Browse Source

Merge branch 'iteration-large-version' into jenkins

lex 1 year ago
parent
commit
78c398f188

+ 1 - 1
dev-dist/sw.js

@@ -99,7 +99,7 @@ define(['./workbox-5357ef54'], function (workbox) {
     "revision": "3ca0b8505b4bec776b69afdba2768812"
   }, {
     "url": "index.html",
-    "revision": "0.g5tojh8s4j8"
+    "revision": "0.or3kugpmq98"
   }], {});
 >>>>>>> iteration-large-version
   workbox.cleanupOutdatedCaches();

+ 1 - 1
src/views/home/index.tsx

@@ -279,7 +279,7 @@ export default defineComponent({
           v-model:show={forms.subjectSyncVisiable}
           preset="card"
           class={['modalTitle background', styles.subjectSyncModal]}
-          title={'请选择乐器'}>
+          title={'请选择声部'}>
           <SubjectModal
             onClose={() => (forms.subjectSyncVisiable = false)}
             onConfirm={async (item: any) => {

+ 115 - 7
src/views/studentList/index.tsx

@@ -26,6 +26,8 @@ import TheEmpty from '/src/components/TheEmpty';
 import { useUserStore } from '/src/store/modules/users';
 import UpdateStudent from './modals/update-student';
 import { initCache, setCache } from '/src/hooks/use-async';
+import { classArray, getgradeNumList } from '../classList/contants';
+import { getGradeLevelList, getGradeYearList } from '../home/api';
 export default defineComponent({
   name: 'student-studentList',
   setup(props, { emit }) {
@@ -35,8 +37,13 @@ export default defineComponent({
         keyword: '',
         gender: '' as any,
         classGroupId: '' as any,
-        membership: '' as any
+        membership: '' as any,
+        currentClass: '' as any,
+        currentGradeNum: '' as any,
+        gradeYear: '' as any,
+        gradeLevel: ''
       },
+      gradeNumList: [] as any,
       searchWord: '',
       orchestraType: null,
       courseTypeCode: null,
@@ -53,8 +60,11 @@ export default defineComponent({
       classList: [],
       addStudentVisible: false,
       editStatus: false,
-      activeRow: {} as any
+      activeRow: {} as any,
+      popSelectYearList: [] as any,
+      popSelectLevelList: [] as any
     });
+    state.gradeNumList = getgradeNumList();
     const route = useRoute();
     const router = useRouter();
     const showGuide = ref(false);
@@ -93,8 +103,15 @@ export default defineComponent({
         keyword: '',
         gender: '' as any,
         classGroupId: '' as any,
-        membership: '' as any
+        membership: '' as any,
+        currentClass: '' as any,
+        currentGradeNum: '' as any,
+        gradeYear: '' as any,
+        gradeLevel: ''
       };
+      if (state.popSelectYearList.length > 0) {
+        state.searchForm.gradeYear = state.popSelectYearList[1].id;
+      }
       search();
       setCache({ current: state.searchForm, saveKey: route.path });
     };
@@ -124,9 +141,54 @@ export default defineComponent({
       console.log('getList');
     };
 
-    onMounted(() => {
-      getList();
-      getClasslist();
+    // 获取学年
+    const getYearList = async () => {
+      try {
+        const { data } = await getGradeYearList();
+        const temp = data || [];
+        temp.forEach((i: any) => {
+          i.name = i.name + '学年';
+        });
+        temp.unshift({
+          id: '',
+          name: '全部学年'
+        });
+        state.popSelectYearList = temp || [];
+        if (temp.length > 0 && !state.searchForm.gradeYear) {
+          state.searchForm.gradeYear = temp[1].id;
+        }
+      } catch {
+        //
+      }
+    };
+    // 获取学级
+    const getLevelList = async () => {
+      try {
+        const { data } = await getGradeLevelList();
+        const temp = data || [];
+        temp.forEach((i: any) => {
+          i.name = i.name + '级';
+        });
+        temp.unshift({
+          id: '',
+          name: '全部学级'
+        });
+        state.popSelectLevelList = temp || [];
+        if (temp.length > 0 && !state.searchForm.gradeLevel) {
+          state.searchForm.gradeLevel = temp[0].id;
+        }
+      } catch {
+        //
+      }
+    };
+
+    onMounted(async () => {
+      state.loading = true;
+      await getYearList();
+      await getLevelList();
+      await getList();
+      await getClasslist();
+      state.loading = false;
     });
     const columns = () => {
       return [
@@ -247,6 +309,7 @@ export default defineComponent({
               <SearchInput
                 {...{ placeholder: '请输入学生姓名' }}
                 class={styles.searchInput}
+                style={{ width: '160px' }}
                 searchWord={state.searchForm.keyword}
                 onChangeValue={(val: string) =>
                   (state.searchForm.keyword = val)
@@ -279,6 +342,51 @@ export default defineComponent({
             <NFormItem>
               <CSelect
                 {...({
+                  options: state.popSelectYearList,
+                  placeholder: '选择学年',
+                  clearable: true,
+                  inline: true,
+                  labelField: 'name',
+                  valueField: 'id'
+                } as any)}
+                v-model:value={state.searchForm.gradeYear}></CSelect>
+            </NFormItem>
+            <NFormItem>
+              <CSelect
+                {...({
+                  options: state.popSelectLevelList,
+                  placeholder: '选择学级',
+                  clearable: true,
+                  inline: true,
+                  labelField: 'name',
+                  valueField: 'id'
+                } as any)}
+                v-model:value={state.searchForm.gradeLevel}></CSelect>
+            </NFormItem>
+
+            <NFormItem>
+              <CSelect
+                {...({
+                  options: state.gradeNumList,
+                  placeholder: '选择年级',
+                  clearable: true,
+                  inline: true
+                } as any)}
+                v-model:value={state.searchForm.currentGradeNum}></CSelect>
+            </NFormItem>
+            <NFormItem>
+              <CSelect
+                {...({
+                  options: classArray,
+                  placeholder: '选择班级',
+                  clearable: true,
+                  inline: true
+                } as any)}
+                v-model:value={state.searchForm.currentClass}></CSelect>
+            </NFormItem>
+            {/* <NFormItem>
+              <CSelect
+                {...({
                   options: [
                     { label: '全部年级班级', value: '' },
                     ...state.classList
@@ -288,7 +396,7 @@ export default defineComponent({
                   inline: true
                 } as any)}
                 v-model:value={state.searchForm.classGroupId}></CSelect>
-            </NFormItem>
+            </NFormItem> */}
             <NFormItem>
               <CSelect
                 {...({

+ 6 - 0
src/views/xiaoku-music/index.module.less

@@ -318,6 +318,12 @@
   display: flex;
   justify-content: center;
   min-height: 80px;
+
+  &.showLoading {
+    height: 0;
+    opacity: 0;
+    min-height: 0;
+  }
 }
 
 .musicStaff {

+ 33 - 33
src/views/xiaoku-music/index.tsx

@@ -97,8 +97,10 @@ export default defineComponent({
           resultList.push(item);
         }
       });
-      data.tags = [{ name: '全部', id: 0 }, ...resultList];
-      console.log(data.tags);
+      data.tags = [
+        { name: '全部', id: 0, value: 0, label: '全部' },
+        ...resultList
+      ];
       // }
     };
     const getList = async () => {
@@ -113,10 +115,13 @@ export default defineComponent({
       } catch (error) {
         console.log(error);
       }
+
+      console.log(res, 'data', data.reshing, 'musicSubject');
       if (data.reshing) {
         data.list = [];
         data.reshing = false;
       }
+
       if (res?.code === 200 && Array.isArray(res?.data?.rows)) {
         data.list = [...data.list, ...res.data.rows];
         data.finshed = res.data.rows.length < forms.rows;
@@ -140,7 +145,6 @@ export default defineComponent({
     };
     const spinRef = ref();
     const handleResh = () => {
-      console.log(data.finshed);
       if (data.loading || data.finshed) return;
       forms.page = forms.page + 1;
       getList();
@@ -177,9 +181,7 @@ export default defineComponent({
           handleResh();
         }
       });
-      nextTick(() => {
-        obv.observe(spinRef.value);
-      });
+      obv.observe(spinRef.value);
       window.addEventListener('message', iframeHandle);
     });
     onUnmounted(() => {
@@ -358,19 +360,13 @@ export default defineComponent({
                           onUpdate:value={() => {
                             // onSearch();
                             data.reshing = true;
+                            document
+                              .querySelector('.musicList-container')
+                              .scroll(0, 0);
                             handleGetList();
                           }}
-                          key={item.id}
+                          key={item.value}
                           class={[styles.popSelect]}>
-                          {/* <span
-                            class={[
-                              styles.textBtn,
-                              selectChildObj(item.instruments).selected &&
-                                styles.textBtnActive
-                            ]}>
-                            {selectChildObj(item.instruments).name || item.name}
-                            <i class={styles.iconArrow}></i>
-                          </span> */}
                           <NButton
                             round
                             textColor={
@@ -392,13 +388,7 @@ export default defineComponent({
                               styles.textBtn,
                               selectChildObj(item.instruments).selected &&
                                 styles.textBtnActive
-                            ]}
-                            // onClick={() => {
-                            //   data.tagIndex = item.id;
-                            //   data.reshing = true;
-                            //   handleGetList();
-                            // }}
-                          >
+                            ]}>
                             {selectChildObj(item.instruments).name || item.name}
                             <i class={styles.iconArrow}></i>
                           </NButton>
@@ -407,15 +397,20 @@ export default defineComponent({
                         <NButton
                           round
                           textColor={
-                            data.tagIndex === item.id ? '#fff' : '#000'
+                            data.tagIndex === item.value ? '#fff' : '#000'
+                          }
+                          color={
+                            data.tagIndex === item.value ? '#198CFE' : '#fff'
                           }
-                          color={data.tagIndex === item.id ? '#198CFE' : '#fff'}
                           type={
-                            data.tagIndex === item.id ? 'primary' : 'default'
+                            data.tagIndex === item.value ? 'primary' : 'default'
                           }
                           onClick={() => {
-                            data.tagIndex = item.id;
+                            data.tagIndex = item.value || 0;
                             data.reshing = true;
+                            document
+                              .querySelector('.musicList-container')
+                              .scroll(0, 0);
                             handleGetList();
                           }}>
                           {item.name}
@@ -439,7 +434,7 @@ export default defineComponent({
 
             <div class={styles.contentWrap}>
               <div class={[styles.musicList, 'musicList-container']}>
-                <div class={styles.wrapList}>
+                <div class={[styles.wrapList, 'music-wrap-list']}>
                   {data.list.map((item: IMusicItem, index) => {
                     return (
                       <div class={styles.itemContainer}>
@@ -527,11 +522,16 @@ export default defineComponent({
                       </div>
                     );
                   })}
-                  {!data.finshed && (
-                    <div ref={spinRef} class={styles.loadingWrap}>
-                      <NSpin show={true}></NSpin>
-                    </div>
-                  )}
+
+                  <div
+                    ref={spinRef}
+                    class={[
+                      styles.loadingWrap,
+                      data.finshed && styles.showLoading
+                    ]}>
+                    <NSpin show={true}></NSpin>
+                  </div>
+
                   {!data.loading && data.list.length === 0 && (
                     <div class={styles.empty}>
                       <TheEmpty></TheEmpty>

+ 2 - 2
vite.config.ts

@@ -23,8 +23,8 @@ function resolve(dir: string) {
 }
 // https://vitejs.dev/config/
 // https://github.com/vitejs/vite/issues/1930 .env
-const proxyUrl = 'https://dev.kt.colexiu.com/';
-// const proxyUrl = 'https://test.lexiaoya.cn';
+// const proxyUrl = 'https://dev.kt.colexiu.com/';
+const proxyUrl = 'https://test.lexiaoya.cn';
 // const proxyUrl = 'http://192.168.3.14:7989';
 const now = new Date().getTime();
 export default defineConfig(() => {