Przeglądaj źródła

Merge branch 'develop5.0-tmd' of http://106.12.23.251:10000/TEAMMODEL/TEAMModelOS into develop5.0-tmd

zhouj1203@hotmail.com 3 lat temu
rodzic
commit
270ae77080

+ 6 - 0
TEAMModelOS/ClientApp/src/api/mark.js

@@ -60,4 +60,10 @@ export default {
      findArb: function (data) {
         return post('/common/exam/find-arb', data)
     },
+    /**
+     * 仲裁打分API
+     * */
+     saveArb: function (data) {
+        return post('/common/exam/save-arb', data)
+    }
 }

+ 12 - 1
TEAMModelOS/ClientApp/src/assets/student-web/component_styles/homework-feedback.less

@@ -17,6 +17,10 @@
     @media screen and (max-width: 1280px) {
       height: 380px;
     }
+
+    .timeRate{
+      align-items: center;
+    }
   }
   .classmates-comment,
   .teacher-comment {
@@ -26,6 +30,13 @@
     width: 100%;
     padding: 18px 28px 20px 28px;
   }
+  
+  .teacher-comment {
+    .timeRate{
+      flex-direction: column;
+    }
+  }
+
   .teacher-avatar,.classmates-avatar{
     width:30px;
     height: 30px;
@@ -102,7 +113,7 @@
       margin-top: 10px;
       display: flex;
       justify-content: space-between;
-      align-items: center;
+      // align-items: center;
     }
   }
 }

+ 4 - 4
TEAMModelOS/ClientApp/src/components/student-web/EventView/EventContentTypeTemplate/Homework.vue

@@ -226,22 +226,22 @@ export default {
             maxSize: 50*1024*1024, //文件最大
             fileCol: [
                 {
-                    title: "文件名称",
+                    title: this.$t("studentWeb.homework.table1"),
                     key: "name",
                     align: "center"
                 },
                 {
-                    title: "上传时间",
+                    title: this.$t("studentWeb.homework.table2"),
                     key: "time",
                     align: "center"
                 },
                 {
-                    title: "文件类型",
+                    title: this.$t("studentWeb.homework.table3"),
                     key: "extension",
                     align: "center"
                 },
                 {
-                    title: "操作",
+                    title: this.$t("studentWeb.homework.table4"),
                     slot: "action",
                     align: "center"
                 },

+ 3 - 3
TEAMModelOS/ClientApp/src/components/student-web/EventView/EventContentTypeTemplate/HomeworkFeedback.vue

@@ -2,7 +2,7 @@
     <div class="homework-feedback">
         <Row :gutter="30">
             <!-- 教师评分 -->
-            <i-col :xs="24" :sm="24" :md="24" :lg="10">
+            <i-col :xs="24" :sm="24" :md="24" :lg="24" :xl="10">
                 <div class="title-rect-group">
                     <h2 class="title-rect-name">
                         {{ $t("studentWeb.homework.score") }}
@@ -28,7 +28,7 @@
                             </p>
                             <div class="timeRate">
                                 <div>
-                                    {{ $t("studentWeb.homework.grade") }}:
+                                    <span>{{ $t("studentWeb.homework.grade") }}:</span>
                                     <Rate class allow-half disabled v-model="item.star" />
                                 </div>
                                 <span>{{ $t("studentWeb.homework.time") }}:{{ dateFormat(item.replies[0].time) }}</span>
@@ -39,7 +39,7 @@
                 </div>
             </i-col>
             <!-- 同學給分 -->
-            <i-col :xs="24" :sm="24" :md="24" :lg="14">
+            <i-col :xs="24" :sm="24" :md="24" :lg="24" :xl="14">
                 <div class="title-rect-group">
                     <h2 class="title-rect-name">
                         {{ $t("studentWeb.homework.classmatesComments") }}

+ 2 - 2
TEAMModelOS/ClientApp/src/components/student-web/EventView/EventContentTypeTemplate/LessonTestReportCharts/KeyPointPerformChart.vue

@@ -112,11 +112,11 @@ export default {
             let ckps = []
             this.knowledge.kn.map((item, index) => {
                 kps.push({
-                    value: this.knowledge.kps[index] ? this.knowledge.kps[index] : 0,
+                    value: this.knowledge.kps[index] ? this.knowledge.kps[index].toFixed(2) : 0,
                     name: item
                 })
                 ckps.push({
-                    value: this.knowledge.ckps[index] ? this.knowledge.ckps[index] : 0,
+                    value: this.knowledge.ckps[index] ? this.knowledge.ckps[index].toFixed(2) : 0,
                     name: item
                 })
             })

+ 3 - 3
TEAMModelOS/ClientApp/src/components/student-web/EventView/EventContentTypeTemplate/LessonTestReportCharts/LessonTestReportCharts.vue

@@ -14,17 +14,17 @@
       <CarouselItem class="demo-carousel"><RecognizePerformChart></RecognizePerformChart></CarouselItem>
     </Carousel> -->
         <Row :gutter="20">
-            <i-col :xs="24" :sm="24" :md="24" :lg="8">
+            <i-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" :xxl="8">
                 <Card>
                     <ScoreBarChart :total="chartsData.total"></ScoreBarChart>
                 </Card>
             </i-col>
-            <i-col :xs="24" :sm="24" :md="24" :lg="8">
+            <i-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" :xxl="8">
                 <Card>
                     <KeyPointPerformChart :knowledge="chartsData.knowledge"></KeyPointPerformChart>
                 </Card>
             </i-col>
-            <i-col :xs="24" :sm="24" :md="24" :lg="8">
+            <i-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" :xxl="8">
                 <Card>
                     <RecognizePerformChart :filed="chartsData.filed"></RecognizePerformChart>
                 </Card>

+ 18 - 6
TEAMModelOS/ClientApp/src/components/student-web/EventView/EventContentTypeTemplate/LessonTestReportCharts/RecognizePerformChart.vue

@@ -17,7 +17,6 @@ export default {
     },
     data() {
         return {
-            type: true, //个人的类型
             categories: [
                 {
                     name: this.$t("evaluation.level1"),
@@ -44,6 +43,8 @@ export default {
                     max: 1
                 }
             ],
+            cfps: [], //班级
+            fps: [], //个人
         }
     },
     methods: {
@@ -60,7 +61,7 @@ export default {
                     }
                 },
                 legend: {
-                    data: ["个人", "班级"],
+                    data: [this.$t("studentWeb.exam.chart.me"), this.$t("studentWeb.exam.chart.participantClass")],
                     bottom: 0,
                 },
                 tooltip: {
@@ -77,12 +78,12 @@ export default {
                         type: 'radar',
                         data: [
                             {
-                                value: this.filed.fps,
-                                name: '个人'
+                                value: this.fps,
+                                name: this.$t("studentWeb.exam.chart.me")
                             },
                             {
-                                value: this.filed.cfps,
-                                name: '班级'
+                                value: this.cfps,
+                                name: this.$t("studentWeb.exam.chart.participantClass")
                             }
                         ]
                     }
@@ -90,8 +91,19 @@ export default {
             }
             myChart.setOption(option)
         },
+        getFiled() {
+            let fps = []
+            let cfps = []
+            this.filed.fs.map((item, index) => {
+                fps.push(this.filed.fps[index] ? this.filed.fps[index].toFixed(2) : 0)
+                cfps.push(this.filed.cfps[index] ? this.filed.cfps[index].toFixed(2) : 0)
+            })
+            this.fps = fps
+            this.cfps = cfps
+        },
     },
     mounted () {
+        this.getFiled()
         this.setMap()
     }
 }

+ 6 - 12
TEAMModelOS/ClientApp/src/components/student-web/EventView/EventContentTypeTemplate/LessonTestReportCharts/ScoreBarChart.vue

@@ -6,12 +6,6 @@
             <span class="timeNum">{{ Attendance }}</span><!--  / {{ Attendance }} -->
             {{ $t("studentWeb.exam.chart.student") }}
         </div>
-        <!-- <BarChart :option="option" /> -->
-        <!-- <div></div> -->
-        <!-- <img
-            class="avatar"
-            src="https://images.unsplash.com/photo-1520223297779-95bbd1ea79b7?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=500&q=60"
-        /> -->
         <div>
             <div id="scoreStu" style="width: 306px; height: 400px"></div>
         </div>
@@ -19,13 +13,8 @@
 </template>
 
 <script>
-import { BarChart } from "dr-vue-echarts"
-import { Random } from "mockjs"
 export default {
     name: "ScoreBarChart",
-    components: {
-        [BarChart.name]: BarChart,
-    },
 
     computed: {
         Attendance: function () {
@@ -116,7 +105,7 @@ export default {
                 series: [
                     {
                         data: this.total,
-                        type: "line",
+                        type: "bar",
                         itemStyle: { color: "#73a373" }
                     },
                 ],
@@ -153,4 +142,9 @@ export default {
     top: -60px;
     left: 26.5%;
 }
+.attendance .timeNum {
+    color: #575757;
+    font-weight: 500;
+    font-size: 44px;
+}
 </style>

+ 4 - 0
TEAMModelOS/ClientApp/src/locale/lang/en-US/studentWeb.js

@@ -310,6 +310,10 @@ export default {
         attachment: '附件',
         success1: "点评成功",
         error1: "点评失败",
+        table1: "文件名称",
+        table2: "上传时间",
+        table3: "文件类型",
+        table4: "操作",
     },
     classmatesComment: {
         title: "Classmates' assignment observation and mutual evaluation",

+ 4 - 0
TEAMModelOS/ClientApp/src/locale/lang/zh-CN/studentWeb.js

@@ -310,6 +310,10 @@ export default {
         attachment: '附件',
         success1: "点评成功",
         error1: "点评失败",
+        table1: "文件名称",
+        table2: "上传时间",
+        table3: "文件类型",
+        table4: "操作",
     },
     classmatesComment: {
         title: '同学作业观摩与互评',

+ 4 - 0
TEAMModelOS/ClientApp/src/locale/lang/zh-TW/studentWeb.js

@@ -310,6 +310,10 @@ export default {
         attachment: '附件',
         success1: "點評成功",
         error1: "點評失敗",
+        table1: "檔案名稱",
+        table2: "上傳時間",
+        table3: "檔案類型",
+        table4: "操作",
     },
     classmatesComment: {
         title: '同學作業觀摩與互評',

+ 195 - 37
TEAMModelOS/ClientApp/src/view/task/arb/ArbView.vue

@@ -5,12 +5,12 @@
             <span class="quit-marking-text">
                 <Icon type="ios-arrow-back" class="quit-marking-icon" :title="$t('learnActivity.mark.quit')" @click="quit" />
             </span>
-            <span class="info-label">{{$t('learnActivity.mark.examName')}}</span>
-            <span class="info-value">{{taskInfo.name}}</span>
-            <span class="info-label">{{$t('learnActivity.mark.stuId')}}</span>
-            <span class="info-value stu-id-info">{{stuId}}</span>
+            <!-- <span class="info-label">{{$t('learnActivity.mark.examName')}}</span>
+            <span class="info-value">{{taskInfo.name}}</span> -->
+            <span class="info-label">{{$t('learnActivity.mark.stuId')}}: </span>
+            <span class="info-value stu-id-info">{{stuInfo.stuId}}</span>
             <span class="info-label">{{$t('learnActivity.mark.curQu')}}</span>
-            <span class="info-value cur-qu-index">{{'--'}}</span>
+            <span class="info-value cur-qu-index">{{stuInfo.arbQus[arbIndex].label}}</span>
         </div>
         <div class="mark-main">
             <!-- 工具条 -->
@@ -31,18 +31,43 @@
             </div>
             <div class="mark-stage">
                 <MarkCanvas ref="markCanvas" @getImg="saveMark" :status="mouseStatus" :bgImg="ansImg" :drawImgData="drawImgData" style="padding-bottom:85px"></MarkCanvas>
+                <!-- 题号显示部分 -->
+                <div class="qu-index-box">
+                    <div class="qu-tips-box">
+                        <span class="qu-tips-tag">
+                            {{$t('learnActivity.mark.marked')}}
+                        </span>
+                        <span class="qu-tips-tag">
+                            {{$t('learnActivity.mark.unmark')}}
+                        </span>
+                        <!-- <span class="qu-tips-tag">
+                            {{$t('learnActivity.mark.exTag')}}
+                        </span> -->
+                        <!-- <span class="objective-tips">
+                            {{$t('learnActivity.mark.scoreTips')}}
+                        </span> -->
+                    </div>
+                    <!-- 异常信息 -->
+                    <div>
+                        <span v-for="(item,index) in stuInfo.arbQus" :key="index">
+                            <span :class="['qu-index',stuScore[index] > -1 ? 'right-qu' : '']" @click="toQu(index)">
+                                {{item.label}}
+                            </span>
+                        </span>
+                    </div>
+                </div>
             </div>
             <!-- 打分部分 -->
             <div class="score-wrap">
                 <div class="quick-score-box score-input-box">
                     <span>阅卷评分1:</span>
-                    <span class="score-num">10</span>
-                    <span class="view-mark">查看批注</span>
+                    <span class="score-num" v-if="curQuMarkScore[0]">{{curQuMarkScore[0].sc}}分</span>
+                    <span class="view-mark" v-if="curQuMarkScore[0] && curQuMarkScore[0].mark">查看批注</span>
                 </div>
                 <div class="quick-score-box score-input-box">
                     <span>阅卷评分2:</span>
-                    <span class="score-num">20</span>
-                    <span class="view-mark">查看批注</span>
+                    <span class="score-num" v-if="curQuMarkScore[1]">{{curQuMarkScore[1].sc}}分</span>
+                    <span class="view-mark" v-if="curQuMarkScore[1] && curQuMarkScore[1].mark">查看批注</span>
                 </div>
                 <div class="quick-score-box score-input-box">
                     <span>仲裁分数:</span>
@@ -58,7 +83,7 @@
                     <Icon :type="isShowNum ? 'md-eye-off' : 'md-eye'" class="toggle-num-status" @click="isShowNum = !isShowNum" />
                     <div :class="['score-key-box', isShowNum ? '':'hind-key-box']">
                         <vuescroll>
-                            <span v-for="(item,index) in quScoreArr" :key="index" :class="['score-key', stuScore[quIndex] == index ? 'score-key-active':'']" @click="setScore(index)">
+                            <span v-for="(item,index) in quScoreArr" :key="index" :class="['score-key', score == item ? 'score-key-active':'']" @click="setScore(item)">
                                 {{item}}
                             </span>
                         </vuescroll>
@@ -84,14 +109,13 @@ export default {
     },
     data() {
         return {
-            quScoreArr:[],
             score: null,
             mouseStatus: 'move',
             drawImgData: '',
             ansImg: '',
             imgs: [],
             isShowNum: true,
-            quIndex: 0,
+            // quIndex: 0,
             stuData: {
                 name: '',
                 id: '',
@@ -105,9 +129,31 @@ export default {
             stusData: [],
             stuId: '',
             markImg: undefined,
+            quNoList: [],
+            stuInfo: {},
+            stuAnswerData: [],
+            arbQuList: [],
+            arbIndex: 0,
+            taskInfo: {}
         }
     },
     methods: {
+        toQu(index) {
+            this.arbIndex = index
+            this.ansToImg()
+        },
+        async getStuAnswerData() {
+            let sas = this.$store.state.user.schoolProfile.blob_sas //目前只有校本评测安排阅卷任务
+            let blobUrl = JSON.parse(decodeURIComponent(localStorage.school_profile, "utf-8")).blob_uri //目前只有校本评测安排阅卷任务
+            let ansBlob = this.stuInfo.blob
+            try {
+                this.stuAnswerData = JSON.parse(await this.$tools.getFile(`${blobUrl}/exam/${ansBlob}?${sas}`) || '[]')
+                console.log('学生作答shuju ', this.stuAnswerData)
+                this.ansToImg()
+            } catch (e) {
+                console.log('获取学生作答数据失败')
+            }
+        },
         //保存批注
         saveMark(data) {
             this.markImg = data.base64
@@ -126,6 +172,7 @@ export default {
         },
         /**将答案绘制到canvas上 */
         ansToImg() {
+            console.log('当前答案', this.curAnswer)
             let answerIframe = document.getElementById('markIframe')
             answerIframe.onload = () => {
                 answerIframe.style.width = '850px'
@@ -154,31 +201,30 @@ export default {
         //提交分数
         submit() {
             if (this.score > -1 && this.score != null) {
-                //保存批注
-                let mark
-                if (this.markImg) {
-                    let img = document.createElement('img')
-                    img.src = this.markImg
-                    this.stuAnswer[this.quIndex] = img.outerHTML
-                    mark = this.stuAnswer
-                    this.markImg = undefined
-                }
+                //保存批注(暂无处理仲裁批注)
+                // let mark
+                // if (this.markImg) {
+                //     let img = document.createElement('img')
+                //     img.src = this.markImg
+                //     this.stuAnswer[this.quIndex] = img.outerHTML
+                //     mark = this.stuAnswer
+                //     this.markImg = undefined
+                // }
                 let requstData = {
-                    id: this.taskInfo.cid,
-                    stuId: this.stuId,
-                    subjectId: this.taskInfo.subject,
-                    tmdId: this.$store.state.userInfo.TEAMModelId,
-                    score: this.stuScore,
-                    count: this.taskInfo.count,
-                    code: this.taskInfo.ecode.replace('Exam-', ''),
-                    qu: this.taskInfo.qu,
-                    mark
+                    id: this.stuInfo.id,
+                    stuId: this.stuInfo.stuId,
+                    index: this.quIndex,
+                    score: this.score,
+                    code: this.taskInfo.ecode.replace('Exam-', '')
                 }
-                this.$api.mark.saveScore(requstData).then(
+                this.$api.mark.saveArb(requstData).then(
                     res => {
                         // 按人阅卷自动跳转下一题
-                        this.nextQuestion()
+                        if (this.arbIndex < this.stuInfo.arbQus.length - 1) {
+                            this.arbIndex++
+                        }
                         this.ansToImg()
+                        this.$Message.success('分数保存成功')
                     },
                     err => {
                         this.$Message.error(this.$t('learnActivity.mark.saveErr'))
@@ -195,17 +241,58 @@ export default {
             })
         }
     },
+    computed: {
+        quIndex() {
+            if (this.stuInfo && this.stuInfo.arbQus) {
+                console.log('切换题号')
+                return this.stuInfo.arbQus[this.arbIndex].value
+            } else {
+                return 0
+            }
+        },
+        curAnswer() {
+            if (this.stuAnswerData && this.stuAnswerData.length) {
+                console.log('更新答案', this.stuAnswerData, this.quIndex)
+                let answer = this.stuAnswerData[this.quIndex]
+                return answer || '未作答'
+            } else {
+                return ''
+            }
+        },
+        curQuMarkScore() {
+            if (this.stuInfo && this.stuInfo.items && this.stuInfo.items[this.arbIndex]) {
+                return this.stuInfo.items[this.arbIndex].scores
+            } else {
+                return []
+            }
+        },
+        quScoreArr() {
+            if (this.stuInfo && this.stuInfo.items && this.stuInfo.items[this.arbIndex]) {
+                return this.stuInfo.items[this.arbIndex].ssc
+            } else {
+                return 15
+            }
+        }
+    },
     mounted() {
     },
     created() {
-    },
-    computed: {
-        
+        let routeData = this.$route.params
+        this.paperData = routeData.paperInfo
+        this.quNoList = routeData.quNoList
+        this.stuInfo = routeData.stuInfo
+        this.taskInfo = routeData.taskInfo
+        console.log(routeData)
+        if (this.paperData && this.quNoList && this.stuInfo && this.arbQuList && this.taskInfo) {
+            this.getStuAnswerData()
+        } else {
+            this.quit()
+        }
     }
 }
 </script>
 <style scoped lang="less">
-.view-mark{
+.view-mark {
     color: white;
     font-size: 12px;
     padding: 1px 5px;
@@ -214,7 +301,7 @@ export default {
     cursor: pointer;
     background: #2db7f5;
 }
-.score-num{
+.score-num {
     font-size: 18px;
     color: #ed4014;
     font-weight: 800;
@@ -382,6 +469,77 @@ export default {
         border-color: transparent;
     }
 }
+.qu-index-box {
+    position: absolute;
+    bottom: 0px;
+    background: #fafafa;
+    width: 100%;
+    left: 0px;
+    height: fit-content;
+    text-align: left;
+    max-height: 180px;
+    padding: 10px 10px 20px 10px;
+    box-shadow: 0 -2px 20px -12px #595959;
+    p {
+        width: fit-content;
+    }
+}
+.qu-tips-box {
+    & :nth-child(1)::before {
+        background: #19be6b;
+    }
+    & :nth-child(2)::before {
+        background: #e1e1e1;
+    }
+    & :nth-child(3)::before {
+        background: #ed4014;
+    }
+    & :nth-child(4)::before {
+        background: #e1e1e1;
+    }
+}
+.qu-tips-tag {
+    display: inline-block;
+    margin-right: 15px;
+    color: #909090;
+    font-size: 12px;
+    &::before {
+        content: "";
+        width: 15px;
+        height: 10px;
+        display: inline-block;
+        border-radius: 3px;
+        vertical-align: baseline;
+    }
+}
+.qu-index {
+    padding: 0px 3px;
+    height: 22px;
+    border-radius: 5px;
+    display: inline-block;
+    border: 1px solid #e1e1e1;
+    line-height: 22px;
+    text-align: center;
+    margin-bottom: 5px;
+    margin-top: 5px;
+    margin-right: 5px;
+    cursor: pointer;
+    background: #f1f1f1;
+    &:hover {
+        // background: white;
+        box-shadow: 0px 0px 4px rgba(70, 43, 43, 0.3);
+    }
+}
+.right-qu {
+    color: #fff;
+    border-color: #19be6b;
+    background: #19be6b;
+}
+.err-qu {
+    color: #fff;
+    border-color: #ed4014;
+    background: #ed4014;
+}
 </style>
 <style>
 .mark-tools-wrap .ivu-poptip-title::after {

+ 68 - 16
TEAMModelOS/ClientApp/src/view/task/arb/Arbitration.vue

@@ -16,23 +16,16 @@
         </div>
         <div class="arb-content">
             <vuescroll v-if="taskInfo.progress == 'finish'">
-                <div class="arb-paper-item" v-for="(item,index) in arr" :key="index">
+                <EmptyData v-show="!arbList.length" textContent="暂无仲裁卷处理" :top="120"></EmptyData>
+                <div class="arb-paper-item" v-for="(item,index) in arbList" :key="index">
                     <p class="qu-info-wrap">
-                        <span class="qu-info-label">题目:</span>
-                        <span class="qu-info-value">5-5</span>
+                        <span class="qu-info-label">学生ID: </span>
+                        <span class="qu-info-value">{{item.stuId}}</span>
                     </p>
                     <div style="flex:1">
                         <p>
-                            <span class="score-info-label">分数1:</span>
-                            <span class="score-info-value">5</span>
-                            <span class="score-info-label">分数2:</span>
-                            <span class="score-info-value">15</span>
-                            <span class="score-info-label">配分:</span>
-                            <span class="score-info-value">20</span>
-                            <span class="score-info-label">
-                                <Icon type="md-time" />
-                                2021-09-01
-                            </span>
+                            <span class="score-info-label">仲裁题目: </span>
+                            <span class="score-info-value">{{item.arbQuLabel.join(', ')}}</span>
                         </p>
                     </div>
                     <div style="width:100px">
@@ -53,12 +46,26 @@ export default {
                 return {}
             },
             required: true
+        },
+        paperInfo: {
+            type: Object,
+            default: () => {
+                return {}
+            },
+            required: true
+        },
+        quNoList: {
+            type: Array,
+            default: () => {
+                return []
+            },
+            required: true
         }
     },
     data() {
         return {
             curBarIndex: 0,
-            arr: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
+            arbList: []
         }
     },
     created() {
@@ -67,7 +74,13 @@ export default {
     methods: {
         toArb(index) {
             this.$router.push({
-                name: 'ArbView'
+                name: 'ArbView',
+                params: {
+                    quNoList: this.quNoList,
+                    paperInfo: this.paperInfo,
+                    stuInfo: this.arbList[index],
+                    taskInfo: this.taskInfo
+                }
             })
         },
         selectBar(index) {
@@ -82,6 +95,23 @@ export default {
             }
             this.$api.mark.findArb(params).then(
                 res => {
+                    res.arbs.forEach(stu => {
+                        let index = []
+                        stu.items.forEach(item => {
+                            if (item.scores && item.scores.length) {
+                                let quInfo = this.quNoList[item.scores[0].index]
+                                console.log(quInfo)
+                                item.quIndex = item.scores[0].index
+                                index.push(quInfo || {
+                                    label: item.scores[0].index,
+                                    value: item.scores[0].index
+                                })
+                            }
+                        })
+                        stu.arbQus = index
+                        stu.arbQuLabel = index.map(i => { return i.label })
+                    })
+                    this.arbList = res.arbs
 
                 },
                 err => {
@@ -99,6 +129,28 @@ export default {
             },
             deep: true,
             immediate: true
+        },
+        quNoList: {
+            handler(n, o) {
+                this.arbList.forEach(stu => {
+                    let index = []
+                    stu.items.forEach(item => {
+                        if (item.scores && item.scores.length) {
+                            let quInfo = this.quNoList[item.scores[0].index]
+                            console.log(quInfo)
+                            item.quIndex = item.scores[0].index
+                            index.push(quInfo || {
+                                label: item.scores[0].index,
+                                value: item.scores[0].index
+                            })
+                        }
+                    })
+                    stu.arbQus = index
+                    stu.arbQuLabel = index.map(i => { return i.label })
+                })
+            },
+            deep: true,
+            immediate: true
         }
     }
 }
@@ -116,7 +168,7 @@ export default {
     cursor: pointer;
 }
 .qu-info-wrap {
-    width: 150px;
+    max-width: 240px;
     text-align: center;
 }
 .score-info-label {

+ 1 - 1
TEAMModelOS/ClientApp/src/view/task/index.vue

@@ -109,7 +109,7 @@
             <!-- 异常卷任务 -->
             <ErrPaper slot="right" :taskInfo="markList[curTaskIndex]" v-else-if="markList[curTaskIndex].type == 2"></ErrPaper>
             <!-- 仲裁卷任务 -->
-            <Arbitration slot="right" v-else-if="markList[curTaskIndex].type == 3" :taskInfo="markList[curTaskIndex]"></Arbitration>
+            <Arbitration slot="right" v-else-if="markList[curTaskIndex].type == 3" :taskInfo="markList[curTaskIndex]" :paperInfo="fullPaper" :quNoList="quNoList"></Arbitration>
         </Split>
     </div>
 </template>

+ 1 - 0
TEAMModelOS/ClientApp/src/view/task/mark/ByQu.vue

@@ -273,6 +273,7 @@ export default {
                     )
                     this.stusInfo[this.stuIndex].markArr.splice(this.quIndex, 1, `${path}/${fileName}`)
                 }
+                console.log('学生数据',this.stusInfo)
                 let requstData = {
                     id: this.taskInfo.cid,
                     stuId: this.stusInfo[this.stuIndex].stuId,

+ 1 - 1
TEAMModelOS/Controllers/Paper/PaperController.cs

@@ -174,7 +174,7 @@ namespace TEAMModelOS.Controllers
             }
             if (scope.ToString().Equals("private"))
             {
-                sql.Append("select c.id,c.code,c.name,c.blob,c.subjectName,c.score,c.useCount,c.scope,c.scoring ,c.createTime ,c.sheet from c");
+                sql.Append("select c.id,c.code,c.name,c.blob,c.subjectName,c.score,c.useCount,c.scope,c.scoring ,c.createTime ,c.sheet,c.sheetNo from c");
                 AzureCosmosQuery cosmosDbQuery = SQLHelper.GetSQL(dict, sql);
                 await foreach (var item in client.GetContainer(Constant.TEAMModelOS, "Teacher").GetItemQueryStreamIterator(queryDefinition: cosmosDbQuery.CosmosQueryDefinition, requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"Paper-{code}") }))
                 {