lsc 1 year ago
parent
commit
dc1f421e2a

+ 1 - 1
dist/index.html

@@ -25,7 +25,7 @@
       height: 100%;
       width: 100%;
       background: #e6eaf0;
-    }</style><link href=./static/css/app.77513a6c6a50aebb6e2fcfd425b7b542.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=./static/js/manifest.3512a67a6213c2df4180.js></script><script type=text/javascript src=./static/js/vendor.b01159b52abeac4e6216.js></script><script type=text/javascript src=./static/js/app.68fabe0cf004a5c6ea62.js></script></body></html><script>function stopSafari() {
+    }</style><link href=./static/css/app.aeffb5b75ddc358d5b9585be8f17eb69.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=./static/js/manifest.3512a67a6213c2df4180.js></script><script type=text/javascript src=./static/js/vendor.b01159b52abeac4e6216.js></script><script type=text/javascript src=./static/js/app.6f2f0e90be16624295f6.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.77513a6c6a50aebb6e2fcfd425b7b542.css.map


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


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


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


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


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


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


+ 3 - 3
src/components/pages/test/add/components/checkOrder.vue

@@ -2,7 +2,7 @@
     <div class="co_box">
         <div v-for="(item1, index1) in this.checkJson" :key="index1" class="mc_ti_1" :draggable="isdrag == `${index1}`"
             :class="{ active: checkC === `x${index1}` }" @click.stop="checkTitle(`${index1}`, 1, item1)">
-            <div class="title">
+            <div class="title" :style="{fontSize: etype == 'order' && '16px'}">
                 <div class="drag" @mousedown="setDrag(`${index1}`)" @mouseup="isdrag = ''"></div>
                 <span>{{ selectType(item1, index1) }}</span>
                 <div class="btnBox">
@@ -16,7 +16,7 @@
                 <div v-for="(item2, index2) in item1.array" :key="`${index1}-${index2}`" class="mc_ti_2"
                     :draggable="isdrag == `${index1}-${index2}`" :class="{ active: checkC === `x${index1}-${index2}` }"
                     @click.stop="checkTitle(`${index1}-${index2}`, 2, item2)">
-                    <div class="title">
+                    <div class="title" :style="{fontSize: etype == 'order' && '16px'}">
                         <div class="drag" @mousedown="setDrag(`${index1}-${index2}`)" @mouseup="isdrag = ''"></div>
                         <span>{{ selectType(item2, index2) }}</span>
                         <div class="btnBox">
@@ -31,7 +31,7 @@
                             :draggable="isdrag == `${index1}-${index2}-${index3}`"
                             :class="{ active: checkC === `x${index1}-${index2}-${index3}` }"
                             @click.stop="checkTitle(`${index1}-${index2}-${index3}`, 3, item3)">
-                            <div class="title">
+                            <div class="title" :style="{fontSize: etype == 'order' && '16px'}">
                                 <div class="drag" @mousedown="setDrag(`${index1}-${index2}-${index3}`)"
                                     @mouseup="isdrag = ''"></div>
                                 <span>{{ selectType(item3, index3) }}</span>

+ 5 - 1
src/components/pages/test/add/edit/check/index.vue

@@ -209,10 +209,14 @@ export default {
   margin: 0 auto;
 }
 
-.check_box {}
+.check_box {
+
+}
 
 .check_box+.check_box {
   margin-top: 10px;
+  padding-top: 10px;
+  border-top: 1px solid #eee;
 }
 
 .check_box>.title {

+ 1 - 1
src/components/pages/test/add/edit/edit/index.vue

@@ -31,7 +31,7 @@
         <div class="e_order">
             <div class="title">题目排序 <span style="font-size: 14px;color: #373737;">总分:{{ score }}分</span></div>
             <div class="e_order_box" style="margin-top: 20px;">
-                <checkOrder :checkC.sync="checkC" :checkJson="manualJson" @changeJson="changeJson"></checkOrder>
+                <checkOrder :checkC.sync="checkC" :checkJson="manualJson" @changeJson="changeJson" etype="order"></checkOrder>
             </div>
         </div>
     </div>

+ 2 - 2
src/components/pages/testPerson/index.vue

@@ -1,8 +1,8 @@
 <template>
   <div class="tp_body">
     <div class="tp_left">
-        <infoA></infoA>
-        <panelA></panelA>
+        <infoA :userid="userid"></infoA>
+        <panelA :userid="userid" :oid="oid" :org="org"></panelA>
     </div>
     <div class="tp_right">
         <testA :userid="userid" :oid="oid"></testA>

+ 43 - 9
src/components/pages/testPerson/info/index.vue

@@ -2,32 +2,40 @@
   <div class="i_body">
     <div class="i_top">
       <div class="img">
-        <img :src="avator" alt="">
+        <img :src="info.headportrait ? info.headportrait : avator" alt="">
       </div>
       <div class="name">
-        <span>王晓芳</span>
+        <span>{{info.username}}</span>
       </div>
       <div class="detail">
-        <span>用心教,用爱导,为每一个学生的成长负责,为每一个学生的未来负责</span>
+        <el-tooltip :content="info.intro ? info.intro : '暂无简介'" placement="top" effect="dark">
+          <span>{{info.intro ? info.intro : '暂无简介'}}</span>
+        </el-tooltip>
       </div>
     </div>
     <div class="i_bottom">
         <div class="i_bottom_span">
           <span>教研室</span>
-          <span>三年级</span>
+          <el-tooltip :content="info.classname ? info.classname : '暂无'" placement="top" effect="dark">
+            <span>{{info.classname ? info.classname : '暂无'}}</span>
+          </el-tooltip>
         </div>
         <div class="i_bottom_span">
           <span>学科</span>
-          <span>信息技术与应用</span>
+          <el-tooltip :content="info.subject ? info.subject : '暂无'" placement="top" effect="dark">
+            <span>{{info.subject ? info.subject : '暂无'}}</span>
+          </el-tooltip>
         </div>
         <div class="i_bottom_span">
           <span>职务</span>
-          <span>班主任</span>
+          <el-tooltip :content="info.job ? info.job : '暂无'" placement="top" effect="dark">
+            <span>{{info.job ? info.job : '暂无'}}</span>
+          </el-tooltip>
         </div>
-        <div class="i_bottom_btn">
+        <!-- <div class="i_bottom_btn">
           <span class="edit"></span>
           <span>编辑个人信息</span>
-        </div>
+        </div> -->
     </div>
   </div>
 </template>
@@ -35,11 +43,37 @@
 <script>
 import avator from '../../../../assets/icon/test/teacher.jpg'
 export default {
+  props: {
+    userid: {
+      type: String
+    },
+  },
   data() {
     return {
-      avator: avator
+      avator: avator,
+      info: {},
     }
   },
+  methods: {
+    getData() {
+      let params = {
+        uid: this.userid,
+      };
+      this.ajax
+        .get(this.$store.state.api + "selectTestUser", params)
+        .then((res) => {
+          this.info = res.data[0][0]
+          // 用于存储归类后的数据的对象
+  
+        })
+        .catch((err) => {
+          console.error(err);
+        });
+    }
+  },
+  mounted () {
+    this.getData();
+  },
 }
 </script>
 

+ 41 - 4
src/components/pages/testPerson/panel/index.vue

@@ -4,21 +4,21 @@
     <div class="i_body_panel">
       <div class="i_icon"><span></span></div>
       <div class="i_detail">
-        <div><span>25</span><span>个</span></div>
+        <div><span>{{test.length}}</span><span>个</span></div>
         <div>测评项目总数</div>
       </div>
     </div>
     <div class="i_body_panel">
       <div class="i_icon"><span></span></div>
       <div class="i_detail">
-        <div><span>15</span><span>个</span></div>
+        <div><span>{{work.length}}</span><span>个</span></div>
         <div>已完成</div>
       </div>
     </div>
     <div class="i_body_panel">
       <div class="i_icon"><span></span></div>
       <div class="i_detail">
-        <div><span>10</span><span>个</span></div>
+        <div><span>{{test.length - work.length}}</span><span>个</span></div>
         <div>待完成</div>
       </div>
     </div>
@@ -27,7 +27,44 @@
 
 <script>
 export default {
-
+  props: {
+    userid: {
+      type: String
+    },
+    oid: {
+      type: String
+    },
+    org: {
+      type: String
+    },
+  },
+  data() {
+    return {
+      test:  [],
+      work: []
+    }
+  },
+  methods: {
+    getData() {
+      let params = {
+        uid: this.userid,
+        oid: this.oid,
+        org: this.org,
+      };
+      this.ajax
+        .get(this.$store.state.api + "selectTestUserY", params)
+        .then((res) => {
+          this.test = res.data[0]
+          this.work = res.data[1]
+        })
+        .catch((err) => {
+          console.error(err);
+        });
+    }
+  },
+  mounted () {
+    this.getData();
+  },
 }
 </script>
 

+ 66 - 2
src/components/pages/testPerson/test/index.vue

@@ -36,11 +36,11 @@
             </div>
             <div class="panel">
               <div class="score">
-                <div><span>25</span><span>题</span></div>
+                <div><span>{{getNum(item.chapters)}}</span><span>题</span></div>
                 <div>题目总数</div>
               </div>
               <div class="score">
-                <div><span>98</span><span>分</span></div>
+                <div><span>{{getScore(item.array)}}</span><span>分</span></div>
                 <div>综合得分</div>
               </div>
               <div class="btn">
@@ -92,6 +92,69 @@ export default {
       role: this.$route.query.role,
     }
   },
+  computed: {
+    getNum() {
+      return function (array) {
+        let _array = JSON.parse(array)
+        let num = 0;
+        _array.forEach(el => {
+          if ((el.ttype == 3 || el.ttype == 2) && el.array.length > 0) {
+            el.array.forEach(item => {
+              if (item.ttype == 2 && item.array.length > 0) {
+                item.array.forEach(item2 => {
+                  if (item2.ttype == 1 && item2.json) {
+                      num++
+                  }
+                })
+              } else if (item.ttype == 1 && item.json) {
+                num++
+              }
+            })
+          } else if (el.ttype == 1 && el.json) {
+            num++
+          }
+        })
+        return num;
+      };
+    },
+    getScore() {
+      return function (array) {
+        // let _array = JSON.parse(array)
+        let _score = 0;
+        let scoreArray = [];
+        for(var i = 0;i<array.length;i++){
+          let _array = JSON.parse(array[i].courseJson)
+          let score = 0;
+          for(var j = 0;j<_array.length;j++){ 
+            let el = _array[j];
+            if ((el.ttype == 3 || el.ttype == 2) && el.array.length > 0) {
+              for(var k = 0;k<el.array.length;k++){ 
+                let item = el.array[k];
+                if (item.ttype == 2 && item.array.length > 0) {
+                  for(var z = 0;z<item.array.length;z++){
+                    let item2 = item.array[k];
+                    if (item2.ttype == 1 && item2.json && item2.json.score2) {
+                      score+=parseInt(item2.json.score2)
+                    }
+                  }
+                } else if (item.ttype == 1 && item.json && item.json.score2) {
+                    score+=parseInt(item.json.score2)
+                }
+              }
+            } else if (el.ttype == 1 && el.json && el.json.score2) {
+              score+=parseInt(el.json.score2)
+            }
+          }
+          scoreArray.push(score)
+        }
+        scoreArray.forEach(el => {
+          _score+=el
+        })
+        console.log(scoreArray)
+        return (_score ? _score / scoreArray.length : 0);
+      };
+    },
+  },
   methods: {
     checkType(type) {
       this.type = type
@@ -125,6 +188,7 @@ export default {
           // 遍历原始数据,根据 parentId 进行分组
           array.forEach(item => {
             if (!worksArray[item.courseid]) {
+              // console.log(item.chapters);
               worksArray[item.courseid] = {
                 id: item.id,
                 courseid: item.courseid,

+ 2 - 0
src/components/pages/testStudent/view/component/topic.vue

@@ -255,6 +255,8 @@ export default {
 
 .check_box+.check_box {
   margin-top: 10px;
+  padding-top: 10px;
+  border-top: 1px solid #eee;
 }
 
 .check_box>.title {

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