lrf402788946 před 4 roky
rodič
revize
f96c821a9d
1 změnil soubory, kde provedl 21 přidání a 1 odebrání
  1. 21 1
      src/views/classes/completion-detail.vue

+ 21 - 1
src/views/classes/completion-detail.vue

@@ -1,7 +1,13 @@
 <template>
   <div id="detail">
     <detail-frame :title="pageTitle" :returns="toReturns">
-      <el-card :header="quest.name">
+      <el-card>
+        <template #header>
+          <span>{{ quest.name }}</span>
+          [<span>完成度:</span><span>{{ questionAnswer.percentage }}%</span> <span>已答:</span><span>{{ questionAnswer.yesAnswer }}</span> <span>未答:</span
+          ><span>{{ questionAnswer.noAnswer }}</span
+          >]
+        </template>
         <el-tabs v-model="tabs" :stretch="true" type="card">
           <el-tab-pane label="图表分析" name="chart">
             <el-row
@@ -61,6 +67,7 @@ export default {
       quest: {},
       cdata: [], //具体数据
       nodata: false,
+      questionAnswer: {},
     };
   },
   created() {
@@ -78,8 +85,11 @@ export default {
           this.$set(this, `nodata`, true);
         }
         let data = _.cloneDeep(_.get(res, 'data'));
+        console.log(data);
+        data = _.uniqBy(data, 'studentid');
         let quests = _.cloneDeep(_.get(res.data, `question`, []));
         let allAnswer = _.cloneDeep(ansres.data);
+        allAnswer = _.uniqBy(allAnswer, 'studentid');
         let naa = _.flatten(allAnswer.map(i => i.answers)).map(i => {
           i.answer = JSON.parse(i.answer);
           return i;
@@ -91,6 +101,16 @@ export default {
         this.$set(this, `quest`, sta);
         //具体数据
         let concreteData = this.getConcreteData(quests, allAnswer);
+        // 查学生,算已答未答
+        const { questionnaireid, ...stuquery } = this.querys;
+        let studentList = await this.studentQuery(stuquery);
+        let answerDta = {
+          yesAnswer: allAnswer.length,
+          noAnswer: studentList.total - allAnswer.length,
+          percentage: _.ceil(allAnswer.length / studentList.total, 4) * 100,
+        };
+        console.log(answerDta);
+        this.$set(this, `questionAnswer`, answerDta);
         this.$set(this, `cdata`, concreteData);
       }
     },