Browse Source

完成自主练习-查看练习结果接口调用

lm 1 ngày trước cách đây
mục cha
commit
7f13eb4d5b
1 tập tin đã thay đổi với 61 bổ sung63 xóa
  1. 61 63
      src/views/targetImprove/practice/practiceResults.vue

+ 61 - 63
src/views/targetImprove/practice/practiceResults.vue

@@ -20,6 +20,7 @@
                     start-placeholder="开始日期"
                     end-placeholder="结束日期"
                     size="default"
+                    @change="GetTargetExerciseResult"
                 />
             </template>
         </FiltersItem>
@@ -28,30 +29,44 @@
             :currentPage="currentPage" :pageSize="pageSize" :totalNum="totalNum"
             :tableData="tableData"  :tableColumns="tableColumns" 
             @paginationChange="HandlePaginationChange">
-            <template v-slot:gradingStatus="{row}">
-                <TableRowStatus :useStatus="row.gradingStatus"
+
+            <template v-slot:exerciseType="{row}">
+                {{ HandlePracticeNumTypeToStr(row.exerciseType) }}
+            </template>
+            <template v-slot:exerciseStatus="{row}">
+                <TableRowStatus :useStatus="row.exerciseStatus"
                     :statusMsg="[
                         {
-                            statusFlag:0,
+                            statusFlag:1,
                             title:'未批阅',
                             themeClass:'need_summary_icon'
-                        },
-                            {
-                            statusFlag:1,
-                            title:'已批阅',
-                            themeClass:'normal_icon'
                         },
                         {
                             statusFlag:2,
                             title:'批阅中',
                             themeClass:'no_release_icon'
                         },
+                        {
+                            statusFlag:3,
+                            title:'已批阅',
+                            themeClass:'normal_icon'
+                        },
                     ]">
                 </TableRowStatus>
             </template>
-            <template v-slot:improvement="{row}">
-                <img v-if="['up','down'].includes(row.improvement.type)" width="16px" height="16px" style="margin-right: 2px;" :src="row.improvement.type == 'up' ? upIcon : downIcon" alt="" />
-               {{ row.improvement.value }}
+                
+            <template v-slot:frontRate="{row}">
+                {{ row.frontRate === '-' ? row.frontRate : row.frontRate + '%' }}
+            </template>
+            <template v-slot:afterRate="{row}">
+                {{ row.afterRate === '-' ? row.afterRate : row.afterRate + '%' }}
+            </template>
+
+            <template v-slot:difference="{row}">
+                <img v-if="row.difference!== '-'" 
+                    width="16px" height="16px" style="margin-right: 2px;" 
+                    :src="Number(row.afterRate) > Number(row.frontRate) ? upIcon : downIcon" alt="" />
+                {{ row.difference }}
             </template>
             <template v-slot:action="{row}">
                 <div class="table_row_operation">
@@ -94,19 +109,19 @@ export default ({
             totalNum:0,
             tableColumns: [
                 {
-                    name: 'practiceTime',      
+                    name: 'submitTime',      
                     label: '练习时间',
                     minWidth: '180',              
                     hidden: false,
                     custom: false,
                 },
                 {
-                    name: 'practiceType',     
+                    name: 'exerciseType',     
                     label: '练习类型',
                     minWidth: '120',
                     align: 'center',         
                     hidden: false,
-                    custom: false,
+                    custom: true,
                 },
                 {
                     name: 'knowledgeName',     
@@ -116,7 +131,7 @@ export default ({
                     custom: false,
                 },
                 {
-                    name: 'questionCount',    
+                    name: 'questionNum',    
                     label: '试题数量',
                     minWidth: '100',
                     align: 'center',
@@ -124,7 +139,7 @@ export default ({
                     custom: false,
                 },
                 {
-                    name: 'gradingStatus',   
+                    name: 'exerciseStatus',   
                     label: '批阅状态',
                     minWidth: '120',
                     align: 'center',
@@ -132,23 +147,23 @@ export default ({
                     custom: true,             
                 },
                 {
-                    name: 'preScoreRate',    
+                    name: 'frontRate',    
                     label: '练前得分率',
                     minWidth: '120',
                     align: 'center',
                     hidden: false,
-                    custom: false,            
+                    custom: true,            
                 },
                 {
-                    name: 'postScoreRate',    
+                    name: 'afterRate',    
                     label: '练后得分率',
                     minWidth: '120',
                     align: 'center',
                     hidden: false,
-                    custom: false,
+                    custom: true,
                 },
                 {
-                    name: 'improvement',       
+                    name: 'difference',       
                     label: '提升情况',
                     minWidth: '120',
                     align: 'center',
@@ -165,47 +180,12 @@ export default ({
                     custom: true,   
                 }
             ],
-            tableData: [
-                {
-                    id:'1',
-                    practiceTime: '2023-08-09 16:00:00',
-                    practiceType: '指定练习',
-                    knowledgeName: '一般词语',
-                    questionCount: 3,
-                    gradingStatus: 0,
-                    preScoreRate: '64.37%',
-                    postScoreRate: '54.38%',
-                    // 提升情况对象,方便 custom 插槽判断箭头颜色
-                    improvement: { type: 'up', value: '80.37%' },
-                },
-                {
-                    id:'2',
-                    practiceTime: '2023-08-09 15:30:00',
-                    practiceType: '指定练习',
-                    knowledgeName: '句式仿写',
-                    questionCount: 3,
-                    gradingStatus: 1,
-                    preScoreRate: '91.29%',
-                    postScoreRate: '64.37%',
-                    improvement: { type: 'down', value: '89.36%' },
-                },
-                {
-                    id:'3',
-                    practiceTime: '2023-08-09 14:15:00',
-                    practiceType: '指定练习',
-                    knowledgeName: '现代诗歌',
-                    questionCount: 3,
-                    gradingStatus: 2,
-                    preScoreRate: '64.29%',
-                    postScoreRate: '89.36%',
-                    improvement: { type: 'none', value: '0' },
-                }
-            ],
+            tableData: [],
             filtersData: [
                 {
                     key:'time',
                     name: '时间',
-                    value: 'custom', // 默认选中项
+                    value: 'all', // 默认选中项
                     list: [
                         { label: '全部', value: 'all' },
                         { label: '本周', value: 'this_week' },
@@ -229,19 +209,32 @@ export default ({
         }
     },
     methods: {
+        // 处理练习类型转换
+        HandlePracticeNumTypeToStr(num){
+            switch(Number(num)){
+                case 1:
+                    return '自主练习'
+                case 2:
+                    return '指定练习'
+                default:
+                    return ''
+            }
+        },
         // 筛选组件回调
         ChangeFilters(e) {
             // console.log('当前选中的信息',e)
             this.filtersData[e.index].value = e.value;
+            this.GetTargetExerciseResult()
         },
         // 处理表格分页变化
         HandlePaginationChange(params){
             const {type, val} = params
             if(type == 'currentPage'){
-                this.currentPage = val
+                this.currentPage = Number(val)
             }else if(type == 'pageSize'){
-                this.pageSize = val
+                this.pageSize = Number(val)
             }
+            this.GetTargetExerciseResult()
         },
         // 获取本周一(本周起始日)的 00:00:00
         getCurrentWeekStart(){
@@ -278,8 +271,8 @@ export default ({
                     endDate = dayjs().format("YYYY-MM-DD HH:mm:ss")
                     break
                 case 'custom':
-                    startDate =  dayjs(this.startAndEndTime?.[0]).format("YYYY-MM-DD HH:mm:ss") 
-                    endDate = dayjs(this.startAndEndTime?.[1]).format("YYYY-MM-DD HH:mm:ss") 
+                    startDate = this.startAndEndTime?.[0] ?  dayjs(this.startAndEndTime?.[0]).format("YYYY-MM-DD HH:mm:ss") : ''
+                    endDate = this.startAndEndTime?.[1] ? dayjs(this.startAndEndTime?.[1]).format("YYYY-MM-DD HH:mm:ss") : ''
                     break
             }
             let prams = {
@@ -294,11 +287,16 @@ export default ({
                 subjectCode: this.$store.state.target.subjectCode     //学科code
             }
             this.$api.target.getTargetExerciseResult(prams).then(res=>{
+                if(res?.code == 200){
+                    this.tableData = res.data.records
+                    this.totalNum = Number(res.data.total)
+                    this.currentPage = Number( res.data.current)
+                }
             })
         },
         // 跳转练习结果详情
         viewDetails(row){
-            this.$router.push(`/targetImprove/praciceResultDetail?id=${row.id}`);
+            this.$router.push(`/targetImprove/praciceResultDetail?id=${row.exerciseId}`);
         },
      },
     computed:{},