11wqe1 9 tháng trước cách đây
mục cha
commit
9a8d9cdeb8

+ 93 - 8
src/components/pages/components/exportWorksDialog.vue

@@ -78,7 +78,7 @@
             v-if="isStage(i.taskList)"
             class="stageCon"
           >
-            <div class="stageTit">
+            <div v-if="CState != 5" class="stageTit">
               第{{ i.id * 1 + 1 }}阶段<span v-if="i.name">:{{ i.name }}</span>
             </div>
             <div
@@ -104,7 +104,7 @@
                 </div>
               </div>
               <div v-if="k.taskDetail" class="taskBri">
-                {{ k.taskDetail }}
+                <div v-html="k.taskDetail"></div>
               </div>
               <div
                 class="WorksCon"
@@ -319,6 +319,8 @@
                                     alt=""
                                   />
                                 </div>
+                                <span>{{ item2.src }}</span>
+
                               </div>
                               <span v-else v-html="item2"></span>
                             </el-radio>
@@ -385,6 +387,9 @@
                       :src="l.selectJson.url"
                       alt=""
                     />
+                    <div>
+                      {{ l.selectJson.url }}
+                    </div>
                     <div>
                       <span style="margin-right: 10px">选项:</span
                       ><span
@@ -476,10 +481,10 @@
                   </div>
                 </div>
 
+                 <!-- ai作业得分  -->
                 <div
-                
                   v-if="
-                    l.content && l.content.length && l.eList && l.eList.length
+                    l.content && l.content.length && l.eList && l.eList.length && CState == 5 
                   "
                   class="taskSco"
                 >
@@ -567,13 +572,92 @@
                     </div>
                   </div>
                 </div>
+                 <!-- 阶段作业得分  -->
+               <div
+                  class="taskSco"
+                  v-if="
+                    k.toolEList[0].content &&
+                    k.toolEList[0].content.length &&
+                    k.toolEList[0].eList && CState != 5
+                  "
+                >
+                  <div class="taskScoTit">
+                    <div>
+                      任务得分:<span style="color: rgba(242, 161, 75, 1)">{{
+                        totalScore( k.toolEList[0].rate)
+                      }}</span>
+                      分
+                    </div>
+                    <div>提交时间:{{  k.toolEList[0].time }}</div>
+                  </div>
+
+                  <!-- 作业评分 -->
+                  <div class="taskScoCon">
+                    <!-- 分数详情与素养 -->
+                    <div
+                      v-if=" k.toolEList[0].eList"
+                      class="taskScoConEList"
+                      style="flex: 1;display: flex;" >
+                      <div style="width: 49%; margin: 0 20px 10px 0">
+                        <div class="taskScoConTit">分数详情</div>
+                        <div style="display: flex;flex-wrap: wrap;">
+                          <div
+                            v-for="(wItem, ind) in  k.toolEList[0].eList"
+                            :key="ind + 's'"
+                            class="score_box"
+                          >
+                            <div class="RootImgBlock">
+                              <div>{{ wItem.value }}</div>
+                            </div>      
+                            <el-rate
+                              class="rate_size"
+                              style="width: 120px;display: flex;flex-shrink: 0;"
+                              v-model=" k.toolEList[0].rate[wItem.value]"
+                              @change="updateRate(i.id, k.task, 0)"
+                            ></el-rate>
+                          </div>
+                        </div>
+                      </div>
+
+                      <div
+                        v-if=" k.toolEList[0].eList"
+                        style="width: 49%;display: flex;flex-direction: column;"
+                      >
+                        <div class="taskScoConTit">素养</div>
+                        <div class="WorkConSY">
+                          <div v-for="(wItem, ind) in  k.toolEList[0].eList" :key="ind + 's'">
+                              <div class="RootImgBlockSy">
+                                 {{ wItem.target[wItem.target.length - 1] }}
+                              </div>
+                          </div>
+                        </div>
+                      </div>
+                    </div>
+
+                    <!-- 评语 -->
+                    <div
+                      style="
+                          width: 48%;
+                          display: flex;
+                          flex-direction: column;
+                          margin-left: 10px;
+                        "
+                      v-if=" k.toolEList[0].rate.content ||  k.toolEList[0].rate.comment"
+                    >
+                      <div class="taskScoConTit">评语</div>
+                      <div class="WorkCon">
+                        {{  k.toolEList[0].rate.content ||  k.toolEList[0].rate.comment }}
+                      </div>
+                    </div>
+                  </div>
+                </div>
               </div>
               <!-- 思维导图 -->
-              <div class="taskTitInd">
+              <div v-if="CState == 5" class="taskTitInd">
                 <div></div>
                 <span>任务评价体系</span>
               </div>
-              <exjsmind :treeData="k.treeData" :keyL="(k.task).toString()"></exjsmind>
+              <exjsmind v-if="CState == 5" :treeData="k.treeData" :keyL="(k.task).toString()"></exjsmind>
             </div>
           </div>
           <div style="display: flex;justify-content: flex-end;width: 100%;">
@@ -601,7 +685,7 @@ export default {
       dyList: [],
       workEvaList: "",
       elist: [],
-      state: 0,
+      CState: 0,
       oid: this.$route.query.oid,
       org: this.$route.query.org,
       uid2: this.uid,
@@ -1065,7 +1149,7 @@ export default {
         this.ajax
           .get(this.$store.state.api + "getCourseWorksReport2", params) //getCourseWorksReport
           .then(res => {
-            this.state = res.data[0][0].state;
+            this.CState = res.data[0][0].state;
 
             this.worksDialogCon2.uname = res.data[0][0].username;
 
@@ -1418,6 +1502,7 @@ export default {
   justify-content: space-between;
   margin-bottom: 15px;
   /* margin: 10px 0 0 30px; */
+  width: 100%;
   margin: 5px 0;
   position: relative;
 }

+ 147 - 43
src/components/pages/components/lookWork.vue

@@ -67,14 +67,14 @@
       </div>
 
       <div class="workCon">
-        <div>
+        <div style="width: 100%;">
           <div
             v-for="i in workList"
             :key="i.id"
             v-if="isStage(i.taskList)"
             class="stageCon"
           >
-            <div class="stageTit">阶段{{ i.id + 1 }}</div>
+            <div v-if="CState != 5" class="stageTit">阶段{{ i.id + 1 }}</div>
 
             <div
               v-for="(k, kIndex) in i.taskList"
@@ -98,14 +98,21 @@
                 <div></div>
               </div>
               <div v-if="k.taskDetail" class="taskBri">
-                {{ k.taskDetail }}
+                <div v-html="k.taskDetail"></div>
               </div>
               <div
                 v-for="(l, lind) in k.toolEList"
                 :key="lind + 'l'"
                 class="toolEListCon"
               >
-                <div v-if="l.content && l.content.length">
+                <div
+                  style="position: relative;"
+                  v-if="l.content && l.content.length"
+                >
+                  <div class="JSCo" v-if="l.score">
+                    <div>评分:{{ JSON.parse(l.score).wScore }}</div>
+                    <div>评语:{{ JSON.parse(l.score).detail }}</div>
+                  </div>
                   <div v-if="l.tool[0] == 15">
                     <div class="toolBlk">
                       <img
@@ -481,8 +488,11 @@
                   </div>
                 </div>
 
-                <!-- 作业得分  -->
-                <div class="taskSco" v-if="l.content && l.content.length && TeaStuInt.includes(l.tool[0])">
+                <!-- ai作业得分  -->
+                <div
+                  class="taskSco"
+                  v-if="l.content && l.content.length && l.eList && CState == 5"
+                >
                   <div class="taskScoTit">
                     <div>
                       作业得分:<span style="color: rgba(242, 161, 75, 1)">{{
@@ -498,30 +508,20 @@
                     <!-- 分数详情与素养 -->
                     <div
                       v-if="l.eList"
-                      style="
-                          justify-content: space-between;
-                          display: flex;
-                          width: 49%;
-                        "
+                      class="taskScoConEList"
+                      style="width:49%"
                     >
-                      <div style="width: 49; margin: 0 20px 10px 0">
+                      <div style="width: 49%; margin: 0 20px 10px 0">
                         <div class="taskScoConTit">分数详情</div>
-                        <div>
+                        <div style="display: flex;flex-wrap: wrap;">
                           <div
                             v-for="(wItem, ind) in l.eList"
                             :key="ind + 's'"
                             class="score_box"
                           >
-                            <el-tooltip
-                              class="item"
-                              effect="dark"
-                              :content="wItem.detail"
-                              placement="top-start"
-                            >
-                              <div class="RootImgBlock">
-                                {{ wItem.detail }}
-                              </div>
-                            </el-tooltip>
+                            <div class="RootImgBlock">
+                              <div>{{ wItem.detail }}</div>
+                            </div>
 
                             <el-rate
                               class="rate_size"
@@ -533,20 +533,16 @@
                         </div>
                       </div>
 
-                      <div v-if="l.eList" style="width: 49%;">
+                      <div
+                        v-if="l.eList"
+                        style="width: 49%;display: flex;flex-direction: column;"
+                      >
                         <div class="taskScoConTit">素养</div>
                         <div class="WorkConSY">
                           <div v-for="(wItem, ind) in l.eList" :key="ind + 's'">
-                            <el-tooltip
-                              class="item"
-                              effect="dark"
-                              :content="wItem.detail"
-                              placement="top-start"
-                            >
-                              <div class="RootImgBlockSy">
-                                {{ wItem.target }}
-                              </div>
-                            </el-tooltip>
+                            <div class="RootImgBlockSy">
+                              <span> {{ wItem.target }}</span>
+                            </div>
                           </div>
                         </div>
                       </div>
@@ -570,6 +566,95 @@
                   </div>
                 </div>
               </div>
+              <!-- 阶段作业得分  -->
+              <div
+                class="taskSco"
+                v-if="
+                  k.toolEList[0].content &&
+                    k.toolEList[0].content.length &&
+                    k.toolEList[0].eList &&
+                    CState != 5
+                "
+              >
+                <div class="taskScoTit">
+                  <div>
+                    任务得分:<span style="color: rgba(242, 161, 75, 1)">{{
+                      totalScore(k.toolEList[0].rate)
+                    }}</span>
+                    分
+                  </div>
+                  <div>提交时间:{{ k.toolEList[0].time }}</div>
+                </div>
+
+                <!-- 作业评分 -->
+                <div class="taskScoCon">
+                  <!-- 分数详情与素养 -->
+                  <div
+                    v-if="k.toolEList[0].eList"
+                    class="taskScoConEList"
+                    style="width:100%"
+                  >
+                    <div style="width: 49%; margin: 0 20px 10px 0">
+                      <div class="taskScoConTit">分数详情</div>
+                      <div style="display: flex;flex-wrap: wrap;">
+                        <div
+                          v-for="(wItem, ind) in k.toolEList[0].eList"
+                          :key="ind + 's'"
+                          class="score_box"
+                        >
+                          <div class="RootImgBlock">
+                            <div>{{ wItem.value }}</div>
+                          </div>
+                          <el-rate
+                            class="rate_size"
+                            style="width: 120px;display: flex;flex-shrink: 0;"
+                            v-model="k.toolEList[0].rate[wItem.value]"
+                            @change="updateRate(i.id, k.task, 0)"
+                          ></el-rate>
+                        </div>
+                      </div>
+                    </div>
+
+                    <div
+                      v-if="k.toolEList[0].eList"
+                      style="width: 49%;display: flex;flex-direction: column;"
+                    >
+                      <div class="taskScoConTit">素养</div>
+                      <div class="WorkConSY">
+                        <div
+                          v-for="(wItem, ind) in k.toolEList[0].eList"
+                          :key="ind + 's'"
+                        >
+                          <div class="RootImgBlockSy">
+                            {{ wItem.target[wItem.target.length - 1] }}
+                          </div>
+                        </div>
+                      </div>
+                    </div>
+                  </div>
+
+                  <!-- 评语 -->
+                  <div
+                    style="
+                          width: 48%;
+                          display: flex;
+                          flex-direction: column;
+                          margin-left: 10px;
+                        "
+                    v-if="
+                      k.toolEList[0].rate.content || k.toolEList[0].rate.comment
+                    "
+                  >
+                    <div class="taskScoConTit">评语</div>
+                    <div class="WorkCon">
+                      {{
+                        k.toolEList[0].rate.content ||
+                          k.toolEList[0].rate.comment
+                      }}
+                    </div>
+                  </div>
+                </div>
+              </div>
             </div>
           </div>
         </div>
@@ -610,11 +695,9 @@ export default {
       dyList: [],
       courseName: "",
       workList: [],
-      state: 0,
+      CState: 0,
       tableData: [],
-      loading: false,
-      // 师生互动工具list
-      TeaStuInt: [7, 1, 52, 3, 48, 16, 50, 57]
+      loading: false
     };
   },
 
@@ -708,6 +791,7 @@ export default {
     updateRate(stage, task, tool) {
       let processedData = this.workList[stage].taskList[task].toolEList[tool]
         .rate;
+      console.log("processedData", processedData);
 
       console.log(stage, task, tool);
       let params = {
@@ -784,7 +868,7 @@ export default {
             this.workEvaList = res.data[13];
 
             this.courseName = res.data[0][0].course;
-            this.state = res.data[0][0].state;
+            this.CState = res.data[0][0].state;
 
             var dyJSON = JSON.parse(res.data[0][0].chapters);
 
@@ -808,7 +892,7 @@ export default {
             let framework = [];
             if (res.data[0].length) {
               let elistData = JSON.parse(res.data[0][0].chapters);
-              // console.log("elistData", JSON.parse(JSON.stringify(elistData)));
+              console.log("elistData", JSON.parse(JSON.stringify(elistData)));
 
               elistData.forEach((e, i) => {
                 framework[i] = {
@@ -901,6 +985,7 @@ export default {
                   l.content = [];
                   l.rate = "";
                   l.time = "";
+                  l.score = "";
                   // 将作业答案添加进数组里
                   AreaAllWork.forEach((i, index) => {
                     i.tool = i.tool ? i.tool : 0;
@@ -911,6 +996,7 @@ export default {
                     ) {
                       l.content.push(i.content);
                       l.time = i.tTime;
+                      l.score = i.score;
                     }
                   });
 
@@ -943,7 +1029,7 @@ export default {
               });
             });
 
-            // console.log("framework", JSON.parse(JSON.stringify(framework)));
+            console.log("framework", JSON.parse(JSON.stringify(framework)));
 
             this.workList = framework;
             this.loading = false;
@@ -1013,6 +1099,20 @@ export default {
   /* justify-content: space-between; */
   /* flex-shrink: 1; */
 }
+.JSCo {
+  position: absolute;
+  top: 10px;
+  right: 10px;
+  display: flex;
+  flex-direction: column;
+  align-items: flex-start;
+}
+.JSCoTxt{
+  width: 300px;
+  overflow: hidden;
+  white-space: nowrap;
+  text-overflow: ellipsis;
+}
 .pageCon {
   display: flex;
   height: calc(100% - 60px);
@@ -1215,6 +1315,7 @@ export default {
   font-size: 14px !important;
   margin-bottom: 15px;
   margin: 5px 0;
+  width: 100%;
   display: flex;
   justify-content: space-between;
   align-items: center;
@@ -1351,7 +1452,10 @@ export default {
   display: flex;
   justify-content: space-between;
 }
-
+.taskScoConEList {
+  justify-content: space-between;
+  display: flex;
+}
 .taskScoConTit {
   text-align: left;
   font-weight: 600;
@@ -1381,7 +1485,7 @@ export default {
   font-size: 12px;
   font-weight: 400;
   width: 100%;
-  /* flex: 1; */
+  flex: 1;
 }
 .WorkConSY div {
   margin-bottom: 8px;

+ 13 - 23
src/components/pages/components/worksDetail2.vue

@@ -272,9 +272,9 @@
           <div slot="title" class="header-title">
             <div style="color: #fff">查看&批改</div>
           </div>
-          <LookWork v-if="DState == 5" :id="id" :studentId="studentId" :key="studentId"></LookWork>
+          <LookWork  :id="id" :studentId="studentId" :key="studentId"></LookWork>
 
-          <div v-else class="zyBoxC" ref="reportPdf">
+          <!-- <div v-else class="zyBoxC" ref="reportPdf">
             <div class="courseTitle" v-if="allWorks.course">
               <div class="txName">
                 <div class="tx"><img :src="tx" alt="" /></div>
@@ -339,12 +339,7 @@
                               dy.id == stageIndex,
                           }"
                         >
-                        <!-- :class="{
-                            openTaskActive:
-                              nav.id == taskCount &&
-                              dy.id + '-' + nav.id == navId &&
-                              dy.id == stageIndex,
-                          }" -->
+                      
                           <div
                             class="vedioNav"
                             :class="{
@@ -433,11 +428,7 @@
                     </div>
                     <div class="contentBox">
                       <div class="contentAuto">
-                        <!-- :style="{
-                            width: worksDetail[sIndex].eList.length
-                              ? '95%'
-                              : '95%',
-                          }" -->
+                       
                         <div
                           class="left_top"
                           v-if="worksDetail[sIndex].img.length > 0"
@@ -575,7 +566,6 @@
                                 display: flex;
                                 flex-direction: row;
                                 align-items: center;
-                                /* justify-content: center; */
                                 flex-wrap: wrap;
                                 margin-top: 10px;
                                 font-size: 16px;
@@ -1433,7 +1423,7 @@
                 >保存评分</el-button
               >
             </div>
-          </div>
+          </div> -->
         </el-dialog>
       </div>
       <div class="student_page" v-if="!typeCheck">
@@ -4528,10 +4518,10 @@ export default {
   margin-left: 10px;
 }
 
-.courseTitle span:nth-child(2) {
+/* .courseTitle span:nth-child(2) { */
   /* font-size: 14px;
   cursor: pointer; */
-}
+/* } */
 
 .bigImg {
   margin-top: 10px;
@@ -4829,9 +4819,9 @@ font-size: 14px !important;
   font-weight: 700;
 }
 
-.ask_Answer {
+/* .ask_Answer { */
   /* margin-top: 10px; */
-}
+/* } */
 
 .ask_Answer_title {
   font-size: 18px;
@@ -5315,10 +5305,10 @@ font-size: 14px !important;
   align-items: baseline;
 }
 
-.fullBox {
+/* .fullBox { */
   /* overflow: unset !important;
   height: auto !important; */
-}
+/* } */
 
 .fullZyBox {
   width: 60% !important;
@@ -5689,8 +5679,8 @@ font-size: 14px !important;
 /* code 样式 */
 .cont >>> code {
   display: inline-block;
-  *display: inline;
-  *zoom: 1;
+  /* *display: inline;
+  *zoom: 1; */
   background-color: #f1f1f1;
   border-radius: 3px;
   padding: 3px 5px;