SanHQin 9 months ago
parent
commit
5d0687e884

+ 1 - 1
dist/index.html

@@ -27,7 +27,7 @@
     html,
     body{
       font-family: '黑体';
-    }</style><link href=./static/css/app.41cd5c76fa30bb5af5a48cdbc741ef57.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=./static/js/manifest.3ad1d5771e9b13dbdad2.js></script><script type=text/javascript src=./static/js/vendor.0eb3ff1f4c979300a113.js></script><script type=text/javascript src=./static/js/app.34b5167992d80e71c4c9.js></script></body></html><script>function stopSafari() {
+    }</style><link href=./static/css/app.9010df89b8e3b1902d92235f43fc56d4.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=./static/js/manifest.3ad1d5771e9b13dbdad2.js></script><script type=text/javascript src=./static/js/vendor.0eb3ff1f4c979300a113.js></script><script type=text/javascript src=./static/js/app.ed97b9131fb027bc9900.js></script></body></html><script>function stopSafari() {
     //阻止safari浏览器双击放大功能
     let lastTouchEnd = 0  //更新手指弹起的时间
     document.documentElement.addEventListener("touchstart", function (event) {

File diff suppressed because it is too large
+ 0 - 0
dist/static/css/app.41cd5c76fa30bb5af5a48cdbc741ef57.css.map


File diff suppressed because it is too large
+ 0 - 0
dist/static/css/app.9010df89b8e3b1902d92235f43fc56d4.css


File diff suppressed because it is too large
+ 0 - 0
dist/static/css/app.9010df89b8e3b1902d92235f43fc56d4.css.map


File diff suppressed because it is too large
+ 0 - 0
dist/static/js/app.ed97b9131fb027bc9900.js


File diff suppressed because it is too large
+ 0 - 0
dist/static/js/app.ed97b9131fb027bc9900.js.map


File diff suppressed because it is too large
+ 0 - 0
dist/static/js/manifest.3ad1d5771e9b13dbdad2.js.map


BIN
src/assets/icon/newIcons/rootImg.png


+ 449 - 0
src/components/easy2/commpont/markScore.vue

@@ -0,0 +1,449 @@
+<template>
+  <div>
+    <div v-loading="loading">
+      <div class="scoreTit">
+        <div>任务得分</div>
+        <div>{{ totalScore ? totalScore : 0 }}分</div>
+      </div>
+      <div class="scoreStar">
+        <div v-for="(e, index) in scoTitList" :key="index">
+          <div class="scoreStarBack">
+            <el-tooltip
+              class="item"
+              effect="dark"
+              :content="e.value"
+              placement="top"
+            >
+              <div class="briefTit">{{ e.value }}</div>
+            </el-tooltip>
+
+            <el-rate v-model="e.cog"></el-rate>
+          </div>
+        </div>
+
+        <!-- <div
+          v-if="scoTitList.length > 2"
+          style="color:#4188FC;cursor: pointer;width: 30%;"
+          @click="allList"
+        >
+          <div>
+            <span style="margin-right:5px;">{{
+              !showAll ? "全部" : "折叠"
+            }}</span>
+            <i
+              :class="!showAll ? 'el-icon-arrow-down' : 'el-icon-arrow-up'"
+            ></i>
+          </div>
+        </div> -->
+      </div>
+      <div style="width:100%;display:flex;justify-content: flex-end;">
+        <el-button size="mini" @click="reset">重置</el-button>
+        <el-button type="primary" size="mini" @click="submit">确认</el-button>
+        <el-button type="primary" size="mini" @click="AIsubmit"
+          >AI评分</el-button
+        >
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import { v4 as uuidv4 } from "uuid";
+
+export default {
+  name: "PblStudentTableMarkScore",
+  props: [
+    "scoTit",
+    "scoCon",
+    "task",
+    "stage",
+    "allData",
+    "loading",
+    "wIndex",
+    "toolIndex",
+    "toolDetail"
+  ],
+
+  data() {
+    return {
+      homeworkVal: [],
+      scoTitList: [],
+      markScoPopover: false,
+      id: this.$route.query.courseId,
+      stUid: this.scoCon.userid,
+      userid: this.$route.query.userid,
+      total: 0
+    };
+  },
+  computed: {
+    totalScore() {
+      let a = 0;
+      this.scoTitList.forEach(e => {
+        a += e.cog;
+      });
+      let data = 0
+      data = (a / this.scoTit.length).toFixed(1);
+      this.$emit("updateDocSco", {
+        val: this.toolIndex,
+        val2: this.wIndex,
+        val3: data
+      });
+
+      return data;
+    }
+  },
+
+  mounted() {
+    this.scoTitList = JSON.parse(JSON.stringify(this.scoTit));
+    console.log("scoCon", this.scoCon);
+    // console.log("scoTit", this.scoTit);
+
+    this.getData();
+  },
+
+  methods: {
+    // 获取单个数据
+    getData() {
+      let params = {
+        uid: this.scoCon.userid,
+        cid: this.id
+      };
+      this.ajax
+        .get(this.$store.state.api + "selectWorksEvaScore", params)
+        .then(res => {
+          // console.log(res);
+          if (res.data[0].length > 0) {
+            let data = JSON.parse(res.data[0][this.task].rate);
+            // console.log("data", data);
+            this.scoTitList.forEach((e, index) => {
+              e.cog = 0;
+              for (const key in data) {
+                if (e.value == key) {
+                  e.cog = data[key] * 1;
+                }
+              }
+            });
+          }
+        })
+        .catch(err => {
+          console.error(err);
+        });
+    },
+    // 重置
+    reset() {
+      this.getData();
+    },
+    // 老师提交评分
+    submit() {
+      let data = this.scoTitList.map(e => {
+        return e.value + ":" + e.cog;
+      });
+      // console.log("data", data);
+      const processedData = {};
+
+      data.forEach(item => {
+        const [key, value] = item.split(":");
+        processedData[key] = Number(value);
+      });
+      processedData.content = "";
+      // console.log(processedData);
+      let params = {
+        cid: this.id,
+        s: this.stage,
+        t: this.task,
+        rate: JSON.stringify(processedData),
+        uid: this.stUid
+      };
+      // return console.log(params);
+      this.ajax
+        .get(this.$store.state.api + "updateWorksEva", params)
+        .then(res => {
+          this.$message({
+            message: "评价成功",
+            type: "success"
+          });
+        })
+        .catch(err => {
+          this.$message.error("评价失败");
+          console.error(err);
+        });
+    },
+
+    // ai评分
+    AIsubmit() {
+      let tit = this.scoTit;
+      let con = JSON.parse(this.scoCon.works);
+      // this.markScoPopover = true;
+      this.$emit("updateLoading", {
+        val: this.toolIndex,
+        val2: this.wIndex,
+        val3: true
+      });
+      let _text = "";
+      for (let i = 0; i < tit.length; i++) {
+        _text += `维度名称:${tit[i].value} 维度描述:${tit[i].detail} \n`;
+      }
+      // console.log(_text);
+      let msg = `NOTICE
+      Role: 你是一个专业的项目式学习导师,你要对学生的评价高度负责。你要根据“五级评价细则”给学生作品评分。
+      Language: Please use the same language as the user requirement, if the user speaks Chinese, the specific text of your answer should also be in Chinese.
+      ATTENTION: Use '##' to SPLIT SECTIONS, not '#'. Output format carefully referenced "Format example".
+      Instruction: Based on the context, follow "Format example", write content.
+
+      #Context
+      ## 评价细则
+      ${_text}
+
+      ## 作业题目
+      ${this.toolDetail}
+
+      ## 作业内容
+      ${con.text}
+
+      ## 要求
+      根据评价细则和作业内容与作业题目的相关性评价作业,判断该作业属于五级中的哪个等级。
+      具体的评价标准分为5级——1级,2级,3级,4级,5级。输出格式参考===输出范例===。
+      ===
+      1 级,没有识别问题和需求;
+      2 级,问题或需求没有被清晰理解或准确识别;
+      3 级,问题或需求的一部分被识别;
+      4 级,问题或需求的大部分被识别;
+      5 级,问题或需求都被识别。
+      ===
+
+      ## Format example
+      输出格式:[{'评价细则维度':'1'}],
+      属性名为每个评价细则的维度名称
+      不能不做评价,必须每个都有分数,分数只用数字来评分
+      `;
+      // console.log(msg);
+      this.aiGet2(msg);
+    },
+    // ai打分
+    aiGet2(messages, callback) {
+      let _this = this;
+      let parm = {
+        assistant_id: "6063369f-289a-11ef-8bf4-12e77c4cb76b",
+        message: [
+          {
+            type: "text",
+            text: messages.replaceAll("\n", " ").replaceAll("*", "")
+          }
+        ],
+        session_name: uuidv4(),
+        userId: this.userid,
+        file_ids: ""
+      };
+      this.ajax
+        .post("https://gpt4.cocorobo.cn/ai_agent_park_chat", parm)
+        .then(response => {
+          let data = response.data.FunctionResponse;
+          // console.log("data", data);
+          if (data.message) {
+            let dArray = {};
+            try {
+              dArray = JSON.parse(
+                data.message.replaceAll("```json", "").replaceAll("```", "")
+              );
+            } catch (error) {
+              console.log("error_________________" + error);
+              try {
+                let regex = new RegExp("(?<=```json)([\\s\\S]*?)(?=```)");
+                let match = data.message.match(regex);
+                dArray = JSON.parse(
+                  match[0]
+                    .replace(/\n/g, "")
+                    .replace(/\s{2,}/g, "")
+                    .replace(/\'/g, '"')
+                );
+              } catch (error) {
+                console.log("error_________________" + error);
+              }
+            }
+            // console.log("dArray", dArray);
+            // _this.submit2(dArray);
+            // 提交评分
+            // if (!dArray) {
+            //   _this.$emit("updateLoading", {val:_this.task,val2:_this.wIndex,val3:false});
+            // }
+            let processedData = {};
+
+            dArray.forEach(function(item) {
+              let key = Object.keys(item)[0];
+              let value = item[key];
+              processedData[key] = value;
+            });
+            processedData.content = "";
+
+            let params = {
+              cid: _this.id,
+              s: _this.stage,
+              t: _this.task,
+              rate: JSON.stringify(processedData),
+              uid: _this.stUid
+            };
+            // console.log(params);
+            _this.ajax
+              .get(_this.$store.state.api + "updateWorksEva", params)
+              .then(res => {
+                _this.$message({
+                  message: "评价成功",
+                  type: "success"
+                });
+                console.log(_this.wIndex, _this.task);
+                _this.$emit("updateLoading", {
+                  val: _this.toolIndex,
+                  val2: _this.wIndex,
+                  val3: false
+                });
+
+                _this.getData();
+                // _this.markScoPopover = false;
+                // _this.$emit("update:loading", false);
+              })
+              .catch(err => {
+                _this.$message.error("评价失败");
+                _this.$emit("updateLoading", {
+                  val: _this.toolIndex,
+                  val2: _this.wIndex,
+                  val3: false
+                });
+                console.error(err);
+              });
+          }
+          this.$forceUpdate();
+
+          callback ? callback() : "";
+        })
+        .catch(error => {
+          // _this.markScoPopover = false;
+          // _this.$emit("update:loading", false);
+          _this.$emit("updateLoading", {
+            val: _this.toolIndex,
+            val2: _this.wIndex,
+            val3: false
+          });
+          _this.$message.error("评价失败");
+
+          // _this.loading = false
+          console.log(error);
+        });
+    },
+    // ai循环评分
+    aiupdetaSco(messages, uid, stage, task, callback) {
+      let _this = this;
+
+      let parm = {
+        assistant_id: "6063369f-289a-11ef-8bf4-12e77c4cb76b",
+        message: [
+          {
+            type: "text",
+            text: messages.replaceAll("\n", " ").replaceAll("*", "")
+          }
+        ],
+        session_name: uuidv4(),
+        userId: this.userid,
+        file_ids: ""
+      };
+      return new Promise(resolve => {
+        this.ajax
+          .post("https://gpt4.cocorobo.cn/ai_agent_park_chat", parm)
+          .then(response => {
+            let data = response.data.FunctionResponse;
+            // console.log(data);
+
+            if (data.message) {
+              let dArray = {};
+              try {
+                dArray = JSON.parse(
+                  data.message.replaceAll("```json", "").replaceAll("```", "")
+                );
+              } catch (error) {
+                console.log("error_________________" + error);
+                try {
+                  let regex = new RegExp("(?<=```json)([\\s\\S]*?)(?=```)");
+                  let match = data.message.match(regex);
+                  dArray = JSON.parse(
+                    match[0]
+                      .replace(/\n/g, "")
+                      .replace(/\s{2,}/g, "")
+                      .replace(/\'/g, '"')
+                  );
+                } catch (error) {
+                  console.log("error_________________" + error);
+                }
+              }
+              // console.log("dArray", dArray);
+              let processedData = {};
+
+              dArray.forEach(function(item) {
+                let key = Object.keys(item)[0];
+                let value = item[key];
+                processedData[key] = value;
+              });
+              processedData.content = "";
+
+              let params = {
+                cid: _this.id,
+                s: stage,
+                t: task,
+                rate: JSON.stringify(processedData),
+                uid: uid
+              };
+              // console.log("params", params);
+              _this.ajax
+                .get(_this.$store.state.api + "updateWorksEva", params)
+                .then(res => {
+                  resolve(1);
+                  _this.$message({
+                    message: "评价成功",
+                    type: "success"
+                  });
+                })
+                .catch(err => {
+                  resolve(1);
+                  _this.$message.error("评价失败");
+                  console.error(err);
+                });
+            }
+            callback ? callback() : "";
+          })
+          .catch(error => {
+            resolve(1);
+            _this.$message.error("评价失败");
+            // _this.loading = false
+            console.log(error);
+          });
+      });
+    }
+  }
+};
+</script>
+<style scoped>
+.scoreTit {
+  font-size: 16px;
+  font-weight: 600;
+  display: flex;
+  justify-content: space-between;
+}
+.scoreStar {
+  background-color: #f3f7fd;
+  padding: 10px;
+  margin: 10px 0;
+  max-height: 100px;
+  min-height: 60px;
+  overflow: auto;
+}
+.scoreStarBack {
+  width: 100%;
+  display: flex;
+  justify-content: space-between;
+  margin-bottom: 10px;
+}
+.briefTit {
+  width: 150px;
+  text-overflow: ellipsis;
+  overflow: hidden;
+  white-space: nowrap;
+}
+</style>

+ 219 - 5
src/components/easy2/studyStudent.vue

@@ -6531,6 +6531,7 @@
                   >
                     <div
                       class="zuoyeYulan"
+                      style="display: flex;justify-content: space-between;align-items: center;"
                       v-if="
                         worksStudent.length &&
                         worksStudent[toolIndex].length > 0
@@ -6556,6 +6557,17 @@
                           展开
                         </div>
                       </div>
+                      <div v-if="chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList && courseDetail.state == 5">
+                        <div class="ScoreBtn" v-if="!loopLoading[toolIndex].loading" @click="loopEva(worksStudent[toolIndex],chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList,courseType,taskCount,toolIndex,tool.toolDetail)" >
+                          <img src="../../assets/icon/newIcons/rootImg.png" alt="">
+                          AI评分
+                        </div>
+                        <div class="ScoreBtn" v-else >
+                          <img src="../../assets/icon/newIcons/rootImg.png" alt="">
+                          正在评分
+                        </div>
+                        
+                      </div>
                       <!-- <el-button type="text" @click="jump()" v-if="tType == 2" class="buttonA">我的评价</el-button> -->
                     </div>
                     <div
@@ -6603,7 +6615,7 @@
                           <div
                             class="answerScore"
                             @click.stop="openScore(w)"
-                            v-else-if="courseDetail.userid == userid"
+                            v-else-if="courseDetail.userid == userid && courseDetail.state != 5 && !chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList"
                             :class="{
                               rightW:
                                 w.userid == userid ||
@@ -6614,6 +6626,50 @@
                           >
                             评分
                           </div>
+
+                           
+                          <div v-else-if="courseDetail.userid == userid && courseDetail.state == 5">
+                            <el-popover
+                              placement="top"
+                              width="300"
+                              :disabled="AIloading[toolIndex][wIndex].loading"
+                              trigger="click"
+                              >
+                            <markScore 
+                              :loading="AIloading[toolIndex][wIndex].loading" 
+                              ref="markSco" 
+                              @updateLoading=updateLoading
+                              @updateDocSco=updateDocSco
+                              :wIndex=wIndex
+                              :scoCon="w" 
+                              :TotalScore="AIloading[toolIndex][wIndex].sco"
+                              :toolIndex="toolIndex" 
+                              :key="refreshKey" 
+                              :toolDetail=tool.toolDetail
+                              :stage="courseType"
+                              :task="taskCount"  
+                              :scoTit=chapInfoList[courseType].chapterInfo[0].taskJson[taskCount].eList>
+                            </markScore>
+                              <div
+                                class="answerScore"
+                                slot="reference"
+                                @click="refreshAssembly(wIndex)"
+                                :class="{
+                                  rightW:
+                                    w.userid == userid ||
+                                    tType == 1 ||
+                                    tType == 4 ||
+                                    w.ateacher == userid,
+                                }"
+                              >
+                              <span v-if="AIloading[toolIndex][wIndex].sco">{{ AIloading[toolIndex][wIndex].loading? '评分中' : AIloading[toolIndex][wIndex].sco + "分" }}</span>
+                              <span v-else>
+                                {{AIloading[toolIndex][wIndex].loading? '评分中' :'评分'}}{{w.Total}}
+                              </span>    
+                              </div>
+                            </el-popover>
+                          </div>
+
                           <img
                             class="deleteImg"
                             src="../../assets/deleteworks.png"
@@ -6624,7 +6680,6 @@
                             alt
                           />
                         </div>
-
                         <div class="comment" style="min-width: 200px">
                           <div class="worksName">
                             <div>{{ w.sName }}</div>
@@ -11944,6 +11999,7 @@ import correctText from '../components/correctText.vue'
 import scoreItem from '../scoreList/scoreItem.vue'
 import scoreZong from '../scoreZong/index.vue'
 import classRoomHelper from '../classRoomHelper/index.vue'
+import markScore from "./commpont/markScore";
 
 const getFile = (url) => {
   return new Promise((resolve, reject) => {
@@ -12019,7 +12075,8 @@ export default {
 		correctText,
 		scoreItem,
 		classRoomHelper,
-    scoreZong
+    scoreZong,
+    markScore
   },
   data() {
     return {
@@ -12390,6 +12447,123 @@ export default {
     };
   },
   methods: {
+    // 获取单个分数
+    // getTotal( ) {
+    //   let params = {
+    //     uid: this.scoCon.userid,
+    //     cid: this.id
+    //   };
+
+    //   return new Promise(resolve => { this.ajax
+    //     .get(this.$store.state.api + "selectWorksEvaScore", params)
+    //     .then(res => {
+    //       if (res.data[0].length > 0) {
+    //         let data = JSON.parse(res.data[0][this.task].rate);
+    //         console.log(data);
+    //         resolve(data)
+    //         // this.scoTitList.forEach((e, index) => {
+    //         //   e.cog = 0;
+    //         //   for (const key in data) {
+    //         //     if (e.value == key) {
+    //         //       e.cog = data[key] * 1;
+    //         //     }
+    //         //   }
+    //         // });
+    //       }
+    //     })
+    //     .catch(err => {
+    //       console.error(err);
+    //     });
+    //   })
+    //   .catch(error => {
+    //     console.log(error);
+    //   });
+    // },
+
+    async loopEva(con,tit,stage,task,toolIndex,toolDetail){
+        console.log(con,tit,stage,task,toolIndex,toolDetail);
+
+        let jude = false
+        this.AIloading.forEach((e,index)=>{
+          if(index == toolIndex){
+            e.forEach(k=>{
+              if(k.loading == true)
+                jude=true
+            })
+          }
+        })
+      if(jude) return this.$message.info('请勿同时间进行AI评分')
+
+      this.AIloading.forEach((e,index)=>{
+          if(index == toolIndex){
+            e.forEach(k=>{
+              k.loading=true
+            })
+          }
+        })
+
+      this.loopLoading[toolIndex].loading=true
+      // return console.log(this.loopLoading,this.AIloading);
+      
+      let _text = ''
+      for (let i = 0; i < tit.length; i++) {
+          _text += `维度名称:${tit[i].value} 维度描述:${tit[i].detail} \n`
+      }
+       for (let i = 0; i < con.length; i++) {
+        let msg = `NOTICE
+        Role: 你是一个专业的项目式学习导师,你要对学生的评价高度负责。你要根据“五级评价细则”给学生作品评分。
+        Language: Please use the same language as the user requirement, if the user speaks Chinese, the specific text of your answer should also be in Chinese.
+        ATTENTION: Use '##' to SPLIT SECTIONS, not '#'. Output format carefully referenced "Format example".
+        Instruction: Based on the context, follow "Format example", write content.
+
+        #Context
+        ## 评价细则
+        ${_text}
+
+        ## 作业题目
+        ${toolDetail}
+
+        ## 作业内容
+        ${JSON.parse(con[i].works).text}
+
+        ## 要求
+        根据评价细则和作业内容与作业题目的相关性评价作业,判断该作业属于五级中的哪个等级。
+        具体的评价标准分为5级——1级,2级,3级,4级,5级。输出格式参考===输出范例===。
+        ===
+        1 级,没有识别问题和需求;
+        2 级,问题或需求没有被清晰理解或准确识别;
+        3 级,问题或需求的一部分被识别;
+        4 级,问题或需求的大部分被识别;
+        5 级,问题或需求都被识别。 
+        ===
+
+        ## Format example
+        输出格式:[{'评价细则维度':'1'}],
+        属性名为每个评价细则的维度名称
+        不能不做评价,必须每个都有分数,分数只用数字来评分
+        `
+        await this.$refs.markSco[0].aiupdetaSco(msg,con[i].userid,stage,task)
+        this.refreshKey++
+        this.AIloading[toolIndex][i].loading=false
+      }
+      this.loopLoading[toolIndex].loading = false;
+
+    },
+
+    // 组件刷新
+    refreshAssembly(val){
+      this.refreshKey++
+      // console.log(this.refreshKey)
+    },
+    updateLoading(payload){
+      // console.log('payloadpayloadpayloadpayload',payload);
+      this.AIloading[payload.val][payload.val2].loading=payload.val3
+    },
+    updateDocSco(payload){
+      // console.log('payloadpayloadpayloadpayload',payload);
+
+      this.AIloading[payload.val][payload.val2].sco=payload.val3*1
+    },
     gx(){
       this.$forceUpdate();
     },
@@ -12641,6 +12815,7 @@ export default {
       }
     },
     jumpGj(i, j, k, l) {
+      this.refreshAssembly()
       for (var z = 0; z < this.navList.length; z++) {
         for (var q = 0; q < this.navList[z].task.length; q++) {
           for (var w = 0; w < this.navList[z].task[q].tool.length; w++) {
@@ -15378,6 +15553,19 @@ export default {
             this.joinGroup(gindex);
           }
           this.worksStudent = _worksStudent;
+          if( JSON.stringify(this.worksStudentCopy) != JSON.stringify(this.worksStudent)){
+            this.worksStudentCopy=this.worksStudent
+            this.AIloading=[]
+            this.loopLoading=[]
+
+            this.worksStudent.forEach((e,index)=>{
+              this.loopLoading.push({loading:false})
+              this.AIloading.push([])
+              e.forEach(k=>{
+                this.AIloading[index].push({loading:false,sco:0})
+              })
+            })
+          }
           this.selectWorksStudent();
           for (let ci = 0; ci < this.isCloseList.length; ci++) {
             this.$nextTick(()=>{
@@ -16145,6 +16333,7 @@ export default {
       this.$forceUpdate();
     },
     openTask(s, n, i) {
+      this.refreshAssembly()
       if (this.IsFollow && this.tType == 2) {
         this.$message.error("已经开启跟随模式,请认真跟堂听讲");
         return;
@@ -19944,6 +20133,7 @@ export default {
       unbind(el) {
         clearInterval(el.__vueSetInterval__);
       },
+      
     },
     autoHeight: {
       update(el, binding) {
@@ -19957,7 +20147,7 @@ export default {
       componentUpdated(el) {
         el.style.height = `${el.scrollHeight + 5}px`
       },
-    },
+    }
   },
   beforeDestroy() {
     window.onresize = null;
@@ -19967,6 +20157,12 @@ export default {
     this.opertimer = null;
   },
   computed: {
+    // getdocumentSco(){
+    //   return function (w,task,tooindex) {
+    //     console.log(w);
+    //     return task;
+    //   };
+    // },
     getHeight(){
       return document.querySelectorAll(".engUpTop")[0].offsetHeight;
     },
@@ -21995,7 +22191,9 @@ export default {
 .elist_input {
   /* width: 40%; */
   width: 45%;
-  margin: 20px;
+  padding: 20px; 
+  /* margin: 20px; */
+  box-sizing: border-box;
 }
 
 .elist_input .elist_input_box input {
@@ -24544,4 +24742,20 @@ ol {
   background: #409eff;
   color: #fff;
 }
+.ScoreBtn{
+  background: rgba(87, 159, 248, 1);
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  color: #fff;
+  font-size: 14px;
+  padding:8px 12px;
+  border-radius: 5px;
+  cursor: pointer;
+}
+.max-height-popover .el-popover {
+  min-height: 200px;
+  max-height: 400px; /* 设置最大高度 */
+  overflow: auto; /* 超出部分显示滚动条 */
+}
 </style>

Some files were not shown because too many files changed in this diff