lex 1 rok pred
rodič
commit
0dd9d59c4e

+ 11 - 0
src/utils/contants.ts

@@ -47,3 +47,14 @@ export const trainingStatus = {
   SUBMITTED: '不合格',
   TARGET: '合格'
 } as any;
+
+/** 周 */
+export const weekToCN = {
+  0: '星期天',
+  1: '星期一',
+  2: '星期二',
+  3: '星期三',
+  4: '星期四',
+  5: '星期五',
+  6: '星期六'
+} as any;

+ 1 - 1
src/views/classList/classDetail.tsx

@@ -11,7 +11,7 @@ import { getTabsCache, setTabsCaches } from '@/hooks/use-async';
 export default defineComponent({
   name: 'base-setting',
   setup() {
-    const activeTab = ref('attendclass');
+    const activeTab = ref('student');
     const route = useRoute();
     const routerList = ref([
       { name: '班级管理', path: '/classList' },

+ 6 - 0
src/views/home/index.module.less

@@ -133,6 +133,7 @@
     display: flex;
     align-items: center;
     justify-content: space-between;
+    height: 42px;
 
     .className {
       font-size: 26px;
@@ -208,6 +209,11 @@
     .n-form-item {
       --n-feedback-height: 20px !important;
     }
+
+    .n-base-selection.n-base-selection--disabled {
+      background-color: var(--n-color-disabled);
+      cursor: not-allowed;
+    }
   }
 }
 

+ 52 - 40
src/views/home/index.tsx

@@ -1,4 +1,4 @@
-import { defineComponent, reactive } from 'vue';
+import { computed, defineComponent, reactive } from 'vue';
 import styles from './index.module.less';
 import {
   NImage,
@@ -27,6 +27,9 @@ import t3 from './images/t3.png';
 import { useRouter } from 'vue-router';
 import { useUserStore } from '/src/store/modules/users';
 import SelectClass from './modals/selectClass';
+import dayjs from 'dayjs';
+import { weekToCN } from '/src/utils/contants';
+import { getCLassStudent } from '../classList/api';
 
 export default defineComponent({
   name: 'home-page',
@@ -35,17 +38,55 @@ export default defineComponent({
     const userStore = useUserStore();
     const forms = reactive({
       applyClass: null as any,
-      applyStatus: false
+      applyClassItem: {} as any, // 选择的内容
+      applyStatus: false,
+      studentList: [] as any
     });
 
+    // 显示选择的内容
+    const bookInfo = computed(() => {
+      return '';
+    });
+
+    // 学生列表
+    // getStdentList
+    // 应用选择年级班级
+    const onApplyConfirm = async (item: any) => {
+      try {
+        //
+        const { data } = await getCLassStudent({
+          page: 1,
+          rows: 999,
+          classGroupId: item.classGroupId
+        });
+
+        const temps = data.rows || [];
+        temps.forEach((row: any) => {
+          forms.studentList.push({
+            name: row.nickname,
+            src: row.avatar
+          });
+        });
+
+        console.log(item, data);
+        forms.applyClass = item.currentGradeLabel + item.className;
+        forms.applyClassItem = item;
+      } catch {
+        //
+      }
+    };
     return () => (
       <div class={styles.homeWrap}>
         <div class={styles.homeInfoLeft}>
           <div class={styles.homeBanner}>
             <div class={styles.welcomeInfo}>
               <div class={styles.userInfo}>
-                <div class={styles.userName}>Hi,张老师 下午好~</div>
-                <div class={styles.userTime}>7月4日,星期三</div>
+                <div class={styles.userName}>
+                  Hi,{userStore.getUserInfo?.nickname} 下午好~
+                </div>
+                <div class={styles.userTime}>
+                  {dayjs().format('MM月DD日')},{weekToCN[dayjs().day()]}
+                </div>
               </div>
               <div class={styles.userTips}>
                 <span>欢迎您使用酷乐秀课堂乐器数字化教学平台!</span>
@@ -71,43 +112,11 @@ export default defineComponent({
                   <span
                     class={styles.className}
                     onClick={() => (forms.applyStatus = true)}>
-                    三年级2班
+                    {forms.applyClass || '请选择班级'}
                   </span>
-                  <NAvatarGroup
-                    options={
-                      [
-                        {
-                          name: '张三',
-                          src: 'https://gw.alipayobjects.com/zos/antfincdn/aPkFc8Sj7n/method-draw-image.svg'
-                        },
-                        {
-                          name: '李四',
-                          src: 'https://07akioni.oss-cn-beijing.aliyuncs.com/07akioni.jpeg'
-                        },
-                        {
-                          name: '王五',
-                          src: 'https://gw.alipayobjects.com/zos/antfincdn/aPkFc8Sj7n/method-draw-image.svg'
-                        },
-                        {
-                          name: '赵六',
-                          src: 'https://07akioni.oss-cn-beijing.aliyuncs.com/07akioni.jpeg'
-                        },
-                        {
-                          name: '七仔',
-                          src: 'https://gw.alipayobjects.com/zos/antfincdn/aPkFc8Sj7n/method-draw-image.svg'
-                        },
-                        {
-                          name: '七仔',
-                          src: 'https://gw.alipayobjects.com/zos/antfincdn/aPkFc8Sj7n/method-draw-image.svg'
-                        }
-                      ] as any
-                    }
-                    max={5}
-                  />
-                </div>
-                <div class={styles.informations}>
-                  人教版二年级上册 | 第1课 好朋友 |
+                  <NAvatarGroup options={forms.studentList} max={5} />
                 </div>
+                <div class={styles.informations}>{bookInfo.value}</div>
 
                 <NForm showLabel={false}>
                   <NFormItem>
@@ -230,7 +239,10 @@ export default defineComponent({
           class={['modalTitle background', styles.assignHomework]}
           title={'选择年级'}
           blockScroll={false}>
-          <SelectClass onClose={() => (forms.applyStatus = false)} />
+          <SelectClass
+            onConfirm={(item: any) => onApplyConfirm(item)}
+            onClose={() => (forms.applyStatus = false)}
+          />
         </NModal>
       </div>
     );

+ 20 - 13
src/views/home/modals/selectClass.tsx

@@ -1,30 +1,18 @@
 import { defineComponent, reactive, ref } from 'vue';
 import styles from '../index.module.less';
-import {
-  NButton,
-  NForm,
-  NFormItem,
-  NSelect,
-  NSpace,
-  useMessage
-} from 'naive-ui';
+import { NButton, NForm, NFormItem, NSelect, NSpace } from 'naive-ui';
 import { BOOK_DATA } from '/src/views/natural-resources/model/add-teaching';
-import dayjs from 'dayjs';
 import { classGroupPage } from '../../prepare-lessons/api';
 
 export default defineComponent({
   name: 'select-class',
   emits: ['close', 'confirm'],
   setup(props, { emit }) {
-    const message = useMessage();
-
     const forms = reactive({
-      currentTime: dayjs(dayjs().format('YYYY-MM-DD')).valueOf(),
       id: null as any,
       uploading: false,
       classList: [] as any,
       currentGradeNum: null,
-      expireDate: dayjs().add(7, 'day').format('YYYY-MM-DD') as any, // 默认7天
       classGroupId: null as any
     });
     const formsRef = ref();
@@ -57,6 +45,25 @@ export default defineComponent({
         }
         forms.uploading = true;
         try {
+          let gradeName = '';
+          BOOK_DATA.grades.forEach((item: any) => {
+            if (forms.currentGradeNum === item.value) {
+              gradeName = item.label;
+            }
+          });
+
+          let className = '';
+          forms.classList.forEach((item: any) => {
+            if (item.value === forms.classGroupId) {
+              className = item.label;
+            }
+          });
+          emit('confirm', {
+            currentGradeNum: forms.currentGradeNum, // 年级
+            currentGradeLabel: gradeName,
+            classGroupId: forms.classGroupId, // 班级
+            className
+          });
           emit('close');
         } catch {
           //