ソースを参照

修改查看练习结果详情页面展示

lm 1 ヶ月 前
親
コミット
108930e59f

+ 1 - 0
src/views/targetImprove/components/ImageJumpPreview.vue

@@ -18,6 +18,7 @@
         <!-- 注意:Vue 2 中 el-image-viewer 的关闭事件可能是 'close',具体依 ElementUI 版本而定 -->
         <el-image-viewer
             v-if="imgVisible"
+            :z-index="9999"
             :url-list="[fileMessage ? fileMessage.url : '']"
             show-progress
             :on-close="()=>{imgVisible = false}"

+ 1 - 1
src/views/targetImprove/components/TopBackNav.vue

@@ -2,7 +2,7 @@
     <div class="top_header">
         <div class="top_left">
             <slot name="back">
-                <el-button class="button_default_background" @click="$router.go(-1)">
+                <el-button class="button_default_background" @click="$emit('goBack')">
                     <i class="iconfont icon_return"></i>返回
                 </el-button>
             </slot>

+ 34 - 7
src/views/targetImprove/practice/practiceResults.vue

@@ -1,6 +1,6 @@
 <!-- 自主练习——查看练习结果 -->
 <template>
-    <div class="practice_result">
+    <div class="stu_practice_result">
         <div class="page_search">
             <div class="search_content">
                 <div class="content_left">
@@ -25,7 +25,7 @@
             </template>
         </FiltersItem>
       
-        <Table class="practice_table" 
+        <Table class="practice_table end_item" 
             :currentPage="currentPage" :pageSize="pageSize" :totalNum="totalNum"
             :tableData="tableData"  :tableColumns="tableColumns" 
             @paginationChange="HandlePaginationChange">
@@ -93,6 +93,19 @@
                 </div>
             </template>
         </Table>
+
+        <div class="page_dialog">
+            <el-dialog title="" 
+                :visible.sync="showPracticeResultDialog" 
+                class="preview_dialog"  
+                fullscreen height="100%">
+                <PracticeDetail 
+                    v-if="showPracticeResultDialog" 
+                    :localPracticeDetail="practiceResultData"
+                    @CloseDialog="CloseDetailDialog">
+                </PracticeDetail>
+            </el-dialog>
+        </div>
     </div>
 
 </template>
@@ -108,6 +121,8 @@ import FiltersItem from "../components/FiltersItem_ruoyan.vue"//筛选组件
 import Table from "../components/Table.vue";
 import TableRowStatus from "../components/TableRowStatus.vue";
 
+import PracticeDetail from './practiceResults/practiceDetail.vue'
+
 import upIcon from '@/assets/arrow-up.png'
 import downIcon from '@/assets/arrow-down.png'
 
@@ -119,7 +134,8 @@ export default ({
     components: {
         FiltersItem,
         Table,
-        TableRowStatus
+        TableRowStatus,
+        PracticeDetail,
     },
     data(){
         return {
@@ -227,6 +243,11 @@ export default ({
                 }
             ],
             startAndEndTime:undefined,
+
+            // 查看练习结果弹窗有关数据
+            showPracticeResultDialog:false,
+            practiceResultData:{},
+
         }
     },
     methods: {
@@ -317,15 +338,21 @@ export default ({
         // 跳转练习结果详情
         viewDetails(row){
             let tmpStorage = {
+                id:row.exerciseId,
                 practiceTime:row.submitTime,  //练习时间(提交时间)
                 frontRate:row.frontRate,   //练前得分率
                 afterRate:row.afterRate,   //练后得分率
                 difference:row.difference,   //提升情况
                 exerciseStatus:row.exerciseStatus,   // 批阅状态(1未批阅 2批阅中 3/4已批阅)
             }
-            sessionStorage.setItem('practice_detail',JSON.stringify(tmpStorage))
-            this.$router.push(`/targetImprove/praciceResultDetail?id=${row.exerciseId}`);
+            this.practiceResultData = tmpStorage
+            this.showPracticeResultDialog = true
         },
+        CloseDetailDialog(){
+            this.showPracticeResultDialog = false
+        }
+
+
      },
     computed:{
       ...mapState("target", ["subjectCode"]),
@@ -347,7 +374,7 @@ export default ({
 
 
 <style lang="scss" scoped>
-.practice_result{
+.stu_practice_result{
     flex:1;
     display: flex;
     flex-direction: column;
@@ -360,7 +387,7 @@ export default ({
     margin-bottom: 10px;
     padding: 10px;
 
-    > *:last-child{
+    .end_item{
         flex-grow: 1;
     }
     .page_search{

+ 11 - 6
src/views/targetImprove/practice/practiceResults/practiceDetail.vue

@@ -1,7 +1,7 @@
 <!-- 自主练习——查看练习结果 -->
 <template>
     <div class="practice_result">
-        <TopBackNav>
+        <TopBackNav @goBack="$emit('CloseDialog')">
             <template #topRight>
                 <span class="header_title">{{ localPracticeDetail.practiceTime }} 提交记录</span>
             </template>
@@ -116,6 +116,11 @@ export default ({
         studentAnswerDetail
     },
     inject: ['openAiRobot'],//注入Ai机器人组件调用方法
+    props:{
+        localPracticeDetail:{
+            type:Object,
+        }
+    },
     data(){
         return {
             // 图标数据
@@ -126,7 +131,6 @@ export default ({
             deteaiIconLight:deteaiIconLight,
             
             questionList:[], // 试题列表
-            localPracticeDetail:{}, //本地存储的数据  
         }
     },
     methods: {
@@ -148,8 +152,7 @@ export default ({
         },
         GetExersiseDetail(){
             let params = {
-                exerciseId:this.$route.query.id,
-                // type:this.$route.query.exerciseType
+                exerciseId:this.localPracticeDetail.id,
                 type:2
             }
             this.$api.target.getExerciseResultDetail(params).then(res=>{
@@ -168,8 +171,6 @@ export default ({
         ...mapState("target", ["subjectName"]),
     },
     mounted() {
-        this.localPracticeDetail = JSON.parse(sessionStorage.getItem('practice_detail') || '{}')
-        console.log('页面加载中')
         this.GetExersiseDetail()
     },
 })
@@ -181,6 +182,9 @@ export default ({
 <style lang="scss" scoped>
 
 .practice_result{
+    width: 100%;
+    background-color: #f0f4fb;
+
     box-sizing: border-box;
     height: 100%;
     display: flex;
@@ -188,6 +192,7 @@ export default ({
     gap:10px;
 }
 ::v-deep .top_header{
+    border-radius: 0;
     .top_right{
         align-self: center;
         .header_title{