瀏覽代碼

添加问卷进度页接口调用

lm 2 周之前
父節點
當前提交
121f59e131

+ 12 - 0
src/api/selfQuestionnaireProcess.ts

@@ -0,0 +1,12 @@
+import request from '../utils/request.ts'
+
+
+let studentPrefix = import.meta.env.VITE_API_STUDENT_PRE 
+
+// 查询评价教师进度列表数据
+export const getEvaluationProcessMsgApi = () => {
+  return request({
+    url: `${studentPrefix}/api/v1/assessment/center/evaluation/queryEvaluationTeacherList`,
+    method: 'get',
+  })
+}

+ 47 - 26
src/views/appView/SelfQuestionnaireProcess.vue

@@ -5,17 +5,17 @@
             <div class="search_content">
                 <div class="content_left stats_container">
                     <div class="stat-item">
-                        <span class="stat-num blue">8位</span>
+                        <span class="stat-num blue">{{teacherCount}}</span>
                         <span class="stat-label">评价教师</span>
                     </div>
                     <div class="stat-divider"></div>
                     <div class="stat-item">
-                        <span class="stat-num green">5科</span>
+                        <span class="stat-num green">{{evaluationOverCount}}</span>
                         <span class="stat-label">已评科目</span>
                     </div>
                     <div class="stat-divider"></div>
                     <div class="stat-item">
-                        <span class="stat-num red">3科</span>
+                        <span class="stat-num red">{{evaluationNotOverCount}}</span>
                         <span class="stat-label">待评科目</span>
                     </div>
                 </div>
@@ -27,23 +27,21 @@
 
         <!-- 教师卡片列表区域 -->
         <ul class="teacher_list">
-            <!-- 模拟数据循环 -->
             <li  v-for="(item) in teacherList" 
                 :key="item.id"  
                 class="teacher_card">
-
                 <div class="card_header">
-                    <div class="subject_tag" :style="{ backgroundColor: subjectToColor(item.subject)?.color }">
-                        {{ item.subject }}
+                    <div class="subject_tag" :style="{ backgroundColor: subjectToColor(item.evaluationSubjectName)?.color }">
+                        {{ item.evaluationSubjectName }}
                     </div>
                     <div class="info_text">
-                        <div class="teacher_name">教师:{{ item.name }}</div>
-                        <div class="class_name">班级:{{ item.className }}</div>
+                        <div class="teacher_name">{{ item.teacherName }}</div>
+                        <div class="class_name">{{ item.evaluationClassName }}</div>
                     </div>
                 </div>
                 <div class="card_footer">
-                    <span class="status_text" :style="{color:fillOutStatusToColor(item.status)?.color}" >
-                        {{ fillOutStatusToColor(item.status)?.statusName }}
+                    <span class="status_text" :style="{color:fillOutStatusToColor(item.evaluationStatus)?.color}" >
+                        {{ fillOutStatusToColor(item.evaluationStatus)?.statusName }}
                     </span>
                 </div>
             </li>
@@ -58,24 +56,34 @@
 </template>
 
 <script setup lang="ts">
+import { ref, onMounted } from 'vue';
 import { useRouter } from 'vue-router';
-import { ref } from 'vue';
-
 import { subjectToColor,fillOutStatusToColor } from '@/components/commonDictConvert';
 
+import {getEvaluationProcessMsgApi} from '@/api/selfQuestionnaireProcess'
+
+
+interface TeacherItm {
+    id: string|number
+    evaluationClassName: string     //班级
+    evaluationStatus: number   //评价状态  0-待评价  1-进行中  2-已评价
+    subjectType: number      // 科目类型 0-班主任  1 科目(单科)
+    teacherName: string      //教师名称
+    evaluationSubjectName:string  //科目名称
+}
+
+
 const router = useRouter()
 
-// 模拟教师列表数据
-const teacherList = ref([
-    { id:'1', subject: '班主任', name: '张文华', className: '1班', status: 'done',  },
-    { id:'2', subject: '数学', name: '张文华', className: '1班', status: 'done',},
-    { id:'3', subject: '英语', name: '张文华', className: '1班', status: 'pending',  },
-    { id:'4', subject: '物理', name: '张文华', className: '1班', status: 'unfinish', },
-    { id:'5', subject: '道法', name: '张文华', className: '1班', status: 'unfinish', },
-    { id:'6', subject: '化学', name: '张文华', className: '1班', status: 'unfinish', },
-    { id:'7', subject: '生物', name: '张文华', className: '1班', status: 'unfinish',  },
-    { id:'8', subject: '政治', name: '张文华', className: '1班', status: 'unfinish', },
-]);
+// 基础信息数据
+const teacherCount = ref()            // 评价教师数量
+const evaluationOverCount = ref()   // 已评科目数量
+const evaluationNotOverCount = ref()  //待评科目数量
+const deadlineTime = ref()      //评价截止时间
+const remainTime = ref()      //剩余时间
+
+// 教师列表数据
+const teacherList = ref<TeacherItm[]>([]);
 
 
 
@@ -87,8 +95,21 @@ const GoToElectiveSubject = ()=>{
 const GoToFillOutQuestionnaire = ()=>{
     // 模拟数据
     sessionStorage.setItem('teacherList',JSON.stringify(teacherList.value)) 
-    router.push('/main/questionnaireCommit')
+    router.push('/app/questionnaireCommit')
 }
+
+
+onMounted( async()=>{
+    let res = await getEvaluationProcessMsgApi()
+    if(res?.code == 200){
+        teacherCount.value = res.data.teacherCount
+        evaluationOverCount.value = res.data.evaluationOverCount
+        evaluationNotOverCount.value = res.data.evaluationNotOverCount
+        deadlineTime.value = res.data.endDateTime
+        remainTime.value = res.data.endTime
+        teacherList.value = res.data.dataList
+    }
+})
 </script>
 
 <style lang="scss" scoped>
@@ -129,7 +150,7 @@ const GoToFillOutQuestionnaire = ()=>{
             }
         }
         .stat-divider {
-            width: 1px;
+            width: calc(1 * var(--app-rpx));
             height: calc(32 * var(--app-rpx));
             background-color: #F3F3F3;
         }

+ 44 - 26
src/views/selfQuestionnaireProcess/SelfQuestionnaireProcess.vue

@@ -5,27 +5,27 @@
             <div class="search_content">
                 <div class="content_left stats_container">
                     <div class="stat-item">
-                        <span class="stat-num blue">8位</span>
+                        <span class="stat-num blue">{{teacherCount}}</span>
                         <span class="stat-label">评价教师</span>
                     </div>
                     <div class="stat-divider"></div>
                     <div class="stat-item">
-                        <span class="stat-num green">5科</span>
+                        <span class="stat-num green">{{evaluationOverCount}}</span>
                         <span class="stat-label">已评科目</span>
                     </div>
                     <div class="stat-divider"></div>
                     <div class="stat-item">
-                        <span class="stat-num red">3科</span>
+                        <span class="stat-num red">{{evaluationNotOverCount}}</span>
                         <span class="stat-label">待评科目</span>
                     </div>
                     <div class="stat-divider"></div>
                     <div class="stat-item">
-                        <span class="stat-num black">3天</span>
+                        <span class="stat-num black">{{remainTime}}</span>
                         <span class="stat-label">剩余时间</span>
                     </div>
                     <div class="stat-divider"></div>
                     <div class="stat-item">
-                        <span class="stat-num black">26-11-20 17:00</span>
+                        <span class="stat-num black">{{deadlineTime}}</span>
                         <span class="stat-label">截止时间</span>
                     </div>
                 </div>
@@ -37,23 +37,21 @@
 
         <!-- 教师卡片列表区域 -->
         <ul class="teacher_list">
-            <!-- 模拟数据循环 -->
             <li  v-for="(item) in teacherList" 
                 :key="item.id"  
                 class="teacher_card">
-
                 <div class="card_header">
-                    <div class="subject_tag" :style="{ backgroundColor: subjectToColor(item.subject)?.color }">
-                        {{ item.subject }}
+                    <div class="subject_tag" :style="{ backgroundColor: subjectToColor(item.evaluationSubjectName)?.color }">
+                        {{ item.evaluationSubjectName }}
                     </div>
                     <div class="info_text">
-                        <div class="teacher_name">教师:{{ item.name }}</div>
-                        <div class="class_name">班级:{{ item.className }}</div>
+                        <div class="teacher_name">教师:{{ item.teacherName }}</div>
+                        <div class="class_name">班级:{{ item.evaluationClassName }}</div>
                     </div>
                 </div>
                 <div class="card_footer">
-                    <span class="status_text" :style="{color:fillOutStatusToColor(item.status)?.color}" >
-                        {{ fillOutStatusToColor(item.status)?.statusName }}
+                    <span class="status_text" :style="{color:fillOutStatusToColor(item.evaluationStatus)?.color}" >
+                        {{ fillOutStatusToColor(item.evaluationStatus)?.statusName }}
                     </span>
                 </div>
             </li>
@@ -73,26 +71,34 @@
 </template>
 
 <script setup lang="ts">
+import { ref, onMounted } from 'vue';
 import { useRouter } from 'vue-router';
 import SubjectAndClassChooseDialog from '@/components/subjectAndClassChooseDialog/SubjectAndClassChooseDialog.vue';
-import { ref } from 'vue';
-
 import { subjectToColor,fillOutStatusToColor } from '@/components/commonDictConvert';
+import {getEvaluationProcessMsgApi} from '@/api/selfQuestionnaireProcess'
+
+
+interface TeacherItm {
+    id: string|number
+    evaluationClassName: string     //班级
+    evaluationStatus: number   //评价状态  0-待评价  1-进行中  2-已评价
+    subjectType: number      // 科目类型 0-班主任  1 科目(单科)
+    teacherName: string      //教师名称
+    evaluationSubjectName:string  //科目名称
+}
+
 
 const router = useRouter()
 
-// 模拟教师列表数据
-const teacherList = ref([
-    { id:'1', subject: '班主任', name: '张文华', className: '1班', status: 'done',  },
-    { id:'2', subject: '数学', name: '张文华', className: '1班', status: 'done',},
-    { id:'3', subject: '英语', name: '张文华', className: '1班', status: 'pending',  },
-    { id:'4', subject: '物理', name: '张文华', className: '1班', status: 'unfinish', },
-    { id:'5', subject: '道法', name: '张文华', className: '1班', status: 'unfinish', },
-    { id:'6', subject: '化学', name: '张文华', className: '1班', status: 'unfinish', },
-    { id:'7', subject: '生物', name: '张文华', className: '1班', status: 'unfinish',  },
-    { id:'8', subject: '政治', name: '张文华', className: '1班', status: 'unfinish', },
-]);
+// 基础信息数据
+const teacherCount = ref()            // 评价教师数量
+const evaluationOverCount = ref()   // 已评科目数量
+const evaluationNotOverCount = ref()  //待评科目数量
+const deadlineTime = ref()      //评价截止时间
+const remainTime = ref()      //剩余时间
 
+// 教师列表数据
+const teacherList = ref<TeacherItm[]>([]);
 
 
 // 打开更改科目班级弹窗
@@ -107,6 +113,18 @@ const GoToFillOutQuestionnaire = ()=>{
     sessionStorage.setItem('teacherList',JSON.stringify(teacherList.value)) 
     router.push('/main/questionnaireCommit')
 }
+
+onMounted( async()=>{
+    let res = await getEvaluationProcessMsgApi()
+    if(res?.code == 200){
+        teacherCount.value = res.data.teacherCount
+        evaluationOverCount.value = res.data.evaluationOverCount
+        evaluationNotOverCount.value = res.data.evaluationNotOverCount
+        deadlineTime.value = res.data.endDateTime
+        remainTime.value = res.data.endTime
+        teacherList.value = res.data.dataList
+    }
+})
 </script>
 
 <style lang="scss" scoped>