NeeDaye месяцев назад: 6
Родитель
Сommit
1b754a2488

+ 4 - 0
src/layouts/SideMenu.tsx

@@ -75,6 +75,8 @@ function SideMenu  ({
       setTeacherData(data.data)
       if (data.data.length > 0) {
         setActiveKey(data.data[0].teacherName as string)
+        localStorage.setItem('teacherName', data.data[0].teacherName as string)
+        localStorage.setItem('schoolName', data.data[0].schoolName as string)
         history.push('/record?teacherId=' + data.data[0].teacherId);
       }
     }
@@ -192,6 +194,8 @@ function SideMenu  ({
                 return {
                   onClick: () => {
                     setActiveKey(record.teacherName);
+                    localStorage.setItem('teacherName', record.teacherName)
+                    localStorage.setItem('schoolName', record.schoolName)
                     history.push('/record?teacherId=' + record.teacherId);
                   },
                 };

+ 55 - 121
src/pages/Record/index.tsx

@@ -5,10 +5,9 @@ import React, { useEffect, useRef, useState } from 'react';
 import ProList from '@ant-design/pro-list';
 import { Image, Tabs } from 'antd';
 import './style/index.less';
-import CourseImage from '@/assets/img/course_image.png';
 import { history } from "@umijs/max";
 import { useLocation, useRouteProps } from '@@/exports';
-import { getTeacherCourses } from '@/services/record/RecordController';
+import { getExpertActives, getSelectSubject, getTeacherCourses } from '@/services/record/RecordController';
 import { ActionType } from '@ant-design/pro-table/lib';
 
 const TableList: React.FC<unknown> = () => {
@@ -17,6 +16,10 @@ const TableList: React.FC<unknown> = () => {
   const [selectedKeys, setSelectedKeys] = useState(location.pathname);
   const [teacherId, setTeacherId] = useState<string>('');
   const actionRef = useRef<ActionType>();
+  const [actives, setActives] = useState<{ label: string; value: string }[]>([]);
+  const [gradeSubjects, setGradeSubjects] = useState<{ label: string, value: string }[]>([]);
+  const [courseStart, setCourseStart] = useState<string>();
+  const [courseEnd, setCourseEnd] = useState<string>();
 
   useEffect(() => {
     if(location.pathname) {
@@ -34,119 +37,31 @@ const TableList: React.FC<unknown> = () => {
     }
   }, [location.search]);
 
+  useEffect(() => {
+    const oneData = async () => {
+      const activeData = await getExpertActives()
+      if (activeData.code === 200) {
+        if (activeData.data.length > 0) {
+          setActives(activeData.data.map((item: any) =>
+            ({ label: item.activeName, value: item.id })
+          ));
+        }
+      }
 
-  const data = [
-    {
-      courseId: '1',
-      image: 'https://gw.alipayobjects.com/zos/antfincdn/aPkFc8Sj7n/method-draw-image.svg',
-      courseName: '这是课程名称',
-      gradeSubjectName: '高中数学',
-      schoolName: '杭州市滨江区市一中',
-      teacherName: '张老师',
-      teacherTime: '2025-05-28 12:00:00',
-      classRoom: '高一4班'
-    },
-    {
-      courseId: '2',
-      image: 'https://gw.alipayobjects.com/zos/antfincdn/aPkFc8Sj7n/method-draw-image.svg',
-      courseName: '这是课程名称',
-      gradeSubjectName: '高中数学',
-      schoolName: '杭州市滨江区市一中',
-      teacherName: '张老师',
-      teacherTime: '2025-05-28 12:00:00',
-      classRoom: '高一4班'
-    },
-    {
-      courseId: '3',
-      image: 'https://gw.alipayobjects.com/zos/antfincdn/aPkFc8Sj7n/method-draw-image.svg',
-      courseName: '这是课程名称',
-      gradeSubjectName: '高中数学',
-      schoolName: '杭州市滨江区市一中',
-      teacherName: '张老师',
-      teacherTime: '2025-05-28 12:00:00',
-      classRoom: '高一4班'
-    },
-    {
-      courseId: '4',
-      image: 'https://gw.alipayobjects.com/zos/antfincdn/aPkFc8Sj7n/method-draw-image.svg',
-      courseName: '这是课程名称',
-      gradeSubjectName: '高中数学',
-      schoolName: '杭州市滨江区市一中',
-      teacherName: '张老师',
-      teacherTime: '2025-05-28 12:00:00',
-      classRoom: '高一4班'
-    },
-    {
-      courseId: '5',
-      image: 'https://gw.alipayobjects.com/zos/antfincdn/aPkFc8Sj7n/method-draw-image.svg',
-      courseName: '这是课程名称',
-      gradeSubjectName: '高中数学',
-      schoolName: '杭州市滨江区市一中',
-      teacherName: '张老师',
-      teacherTime: '2025-05-28 12:00:00',
-      classRoom: '高一4班'
-    },
-    {
-      courseId: '6',
-      image: 'https://gw.alipayobjects.com/zos/antfincdn/aPkFc8Sj7n/method-draw-image.svg',
-      courseName: '这是课程名称',
-      gradeSubjectName: '高中数学',
-      schoolName: '杭州市滨江区市一中',
-      teacherName: '张老师',
-      teacherTime: '2025-05-28 12:00:00',
-      classRoom: '高一4班'
-    },
-    {
-      courseId: '7',
-      image: 'https://gw.alipayobjects.com/zos/antfincdn/aPkFc8Sj7n/method-draw-image.svg',
-      courseName: '这是课程名称',
-      gradeSubjectName: '高中数学',
-      schoolName: '杭州市滨江区市一中',
-      teacherName: '张老师',
-      teacherTime: '2025-05-28 12:00:00',
-      classRoom: '高一4班'
-    },
-    {
-      courseId: '1',
-      image: 'https://gw.alipayobjects.com/zos/antfincdn/aPkFc8Sj7n/method-draw-image.svg',
-      courseName: '这是课程名称',
-      gradeSubjectName: '高中数学',
-      schoolName: '杭州市滨江区市一中',
-      teacherName: '张老师',
-      teacherTime: '2025-05-28 12:00:00',
-      classRoom: '高一4班'
-    },
-    {
-      courseId: '9',
-      image: 'https://gw.alipayobjects.com/zos/antfincdn/aPkFc8Sj7n/method-draw-image.svg',
-      courseName: '这是课程名称',
-      gradeSubjectName: '高中数学',
-      schoolName: '杭州市滨江区市一中',
-      teacherName: '张老师',
-      teacherTime: '2025-05-28 12:00:00',
-      classRoom: '高一4班'
-    },
-    {
-      courseId: '10',
-      image: 'https://gw.alipayobjects.com/zos/antfincdn/aPkFc8Sj7n/method-draw-image.svg',
-      courseName: '这是课程名称',
-      gradeSubjectName: '高中数学',
-      schoolName: '杭州市滨江区市一中',
-      teacherName: '张老师',
-      teacherTime: '2025-05-28 12:00:00',
-      classRoom: '高一4班'
-    },
-    {
-      courseId: '11',
-      image: 'https://gw.alipayobjects.com/zos/antfincdn/aPkFc8Sj7n/method-draw-image.svg',
-      courseName: '这是课程名称',
-      gradeSubjectName: '高中数学',
-      schoolName: '杭州市滨江区市一中',
-      teacherName: '张老师',
-      teacherTime: '2025-05-28 12:00:00',
-      classRoom: '高一4班'
-    },
-  ];
+      // 获取学科下拉列表
+      const subjectData = await getSelectSubject()
+      if (subjectData.code === 200) {
+        const subjectList = subjectData.data.map((item: any) => {
+          return {
+            'label': item.configLabel,
+            'value': item.id,
+          }
+        })
+        setGradeSubjects(subjectList)
+      }
+    }
+    oneData();
+  }, []);
 
   return (
     <PageContainer className="page-box">
@@ -182,16 +97,16 @@ const TableList: React.FC<unknown> = () => {
               width={'100%'}
               style={{ aspectRatio: '16/9', borderRadius: '15px 15px 0 0' }}
               preview={false}
-              src={CourseImage}
+              src={item.fullScreenOssUrl + '?x-oss-process=video/snapshot,t_0,f_jpg,w_800,h_450'}
             />
             <div className="course-info">
               <div className="info-flex">
-                <div style={{ fontWeight: 'bold', fontSize: '18px' }}>{item.courseName}</div>
+                <div style={{ fontWeight: 'bold', fontSize: '18px' }}>{item.courseTitle}</div>
                 <div style={{ color: '#3C50E0' }}>{item.gradeSubjectName}</div>
               </div>
               <div className="info-flex">
-                <div>所属学校:{item.schoolName}</div>
-                <div>授课老师:{item.teacherName}</div>
+                <div>所属学校:{localStorage.getItem('schoolName')}</div>
+                <div>授课老师:{localStorage.getItem('teacherName')}</div>
               </div>
               <div className="info-flex">
                 <div>授课时间:{item.courseDate}</div>
@@ -203,32 +118,51 @@ const TableList: React.FC<unknown> = () => {
         metas={{
           active: {
             title: '评审活动',
-            dataIndex: 'active',
+            dataIndex: 'activeId',
+            valueType: 'select',
             fieldProps: {
               placeholder: '请输入评审活动',
+              options: actives,
             }
           },
           gradeSubjectName: {
             title: '授课学科',
-            dataIndex: 'gradeSubjectName',
+            dataIndex: 'subjectCode',
+            valueType: 'select',
             fieldProps: {
               placeholder: '请选择授课学科',
+              options: gradeSubjects,
             }
           },
           teacherTime: {
             title: '授课时间',
-            dataIndex: 'teacherTime',
+            dataIndex: 'teachTime',
+            valueType: 'dateRange',
             fieldProps: {
+              format: 'YYYY-MM-DD HH:mm:ss',
               placeholder: '请选择授课时间',
+              onChange: (value: [Date, Date]) => {
+                if (value) {
+                  setCourseStart(value[0].toString());
+                  setCourseEnd(value[1].toString());
+                } else {
+                  setCourseStart(undefined);
+                  setCourseEnd(undefined);
+                }
+              }
             }
           },
           actions: {},
         }}
         request={async (params) => {
+          delete params.teachTime;
           const { pageSize } = params
           const data = await getTeacherCourses({
+            ...params,
             teacherId: teacherId,
             size: pageSize,
+            courseStart: courseStart,
+            courseEnd: courseEnd,
           })
           return {
             data: data.data.records,

+ 19 - 0
src/services/record/RecordController.ts

@@ -17,3 +17,22 @@ export async function getTeacherCourses(
     ...(options || {}),
   });
 }
+
+export async function getExpertActives(
+  options?: { [key: string]: any },
+) {
+  return request<API.RecordRes>('/api/expert/active/actives', {
+    method: 'GET',
+    ...(options || {}),
+  });
+}
+
+/** 获取下拉框中的学科选项 */
+export async function getSelectSubject(
+  options?: { [key: string]: any },
+) {
+  return request<API.SelectSubjectRes>('/api/grade_subject_config/list', {
+    method: 'GET',
+    ...(options || {}),
+  });
+}

+ 25 - 0
src/services/record/typings.d.ts

@@ -5,6 +5,8 @@ declare namespace API {
     activeId?: string;
     subjectCode?: string;
     courseTitle?: string;
+    courseStart?: string;
+    courseEnd?: string;
     size?: number,
   }
 
@@ -15,4 +17,27 @@ declare namespace API {
     message: string;
     timestamp: number;
   }
+
+  // 获取下拉框学科列表
+  interface SelectSubject {
+    /**学段+学科 */
+    configLabel: string;
+    /**学段编号 */
+    gradeCode: string;
+    /**学段名称 */
+    gradeName: string;
+    /**id */
+    id: string;
+    /**学科编号 */
+    subjectCode: string;
+    /**学科名称 */
+    subjectName: string;
+  }
+
+  interface SelectSubjectRes {
+    code: number;
+    data: SelectSubject[];
+    message: string;
+    timestamp: number;
+  }
 }