previewPage.html 5.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. <div class="content">
  2. <div @click="xxxxx" class="dowload"> 下载到本地 </div>
  3. <div id="pdfDom" class="pdfContent">
  4. <div class="pHeader">
  5. <div class="projectTitle">项目答题数据</div>
  6. <div class="testList"> <span v-for="(item, index) in options" :key="index">【{{item.label}}】</span></div>
  7. <div class="tip">截止到{{currentDate}},问卷共{{answerData.answerJoin || 0}}人参与,完成全部题目的有{{answerData.answerAll || 0}}人。
  8. </div>
  9. </div>
  10. <div class="filterResult" v-if="filterStr">已为您筛选出【{{filterStr}}】共{{answerData.answerCondition}}人,此条件下的用户题目答题情况如下:
  11. </div>
  12. <div v-if="!isCrossAnalyse">
  13. <!-- 答题统计->表格 -->
  14. <div class="result" v-if="isShowTable">
  15. <div class="resultItem" v-for="(item, index) in answerData.questionList" :key="index">
  16. <div class="testLable"
  17. v-if="index == 0 || answerData.questionList[index-1].belongTestOrder != answerData.questionList[index].belongTestOrder">
  18. 测试{{item.belongTestOrder}}:{{item.lable}}</div>
  19. <div class="resultTitle"><img v-if="item.isFilter" style="width: 32px;height: 17px;margin-right: 5px;"
  20. src="https://dm.static.elab-plus.com/diaoyanbao/%E6%9D%A1%E4%BB%B6%E6%A0%87%E8%AE%B0@2x.png" alt="">
  21. 题目{{index+1}}:{{item.content}}[{{item.chooseType == '1'? '单选':'多选'}}]<span
  22. v-if="item.testOrderList.length">(包含测试<span v-for="(testOrder,textIndex) in item.testOrderList"
  23. :key="index">{{testOrder}}<span
  24. v-if="textIndex!=(item.testOrderList.length-1)">、</span></span>中的数据)</span></div>
  25. <div class="resultTable">
  26. <div class="tableHeader">
  27. <div class="option">选项</div>
  28. <div class="numbers">答题人数</div>
  29. <div class="percent">占该题总答题人数百分比</div>
  30. </div>
  31. <div class="tableRow" v-for="(optionItem, optionIndex) in item.optionList" :key="optionIndex">
  32. <div class="option">{{optionItem.content}}</div>
  33. <div class="numbers">{{optionItem.answerCount}}</div>
  34. <div class="percent">
  35. <div style="width: 100%;">
  36. <el-progress
  37. :percentage="parseInt(item.answerTotal==0?0:((optionItem.answerCount/item.answerTotal)*100).toFixed(0))"
  38. color="#4E5DFF" :stroke-width="8">
  39. </el-progress>
  40. </div>
  41. </div>
  42. </div>
  43. <div class="tableRow">
  44. <div class="option">总计</div>
  45. <div class="numbers">{{item.answerTotal}}</div>
  46. <div class="percent">_ _</div>
  47. </div>
  48. </div>
  49. </div>
  50. </div>
  51. <div class="chart" v-if="!isShowTable">
  52. <div class="chartItem" v-for="(item, index) in chartData" :key="index">
  53. <div class="chartTitle"><span v-if="item.isFilter"
  54. class="filterTag">条件</span>题目{{index+1}}:{{item.content}}[{{item.chooseType == '1'? '单选':'多选'}}]<span
  55. v-if="item.testOrderList.length">(包含测试<span v-for="(testOrder,textIndex) in item.testOrderList"
  56. :key="index">{{testOrder}}<span
  57. v-if="textIndex!=(item.testOrderList.length-1)">、</span></span>中的数据)</span>
  58. </div>
  59. <div class="chartData">
  60. <HistogramHorizontal :id="'c1'" :chartId="'c'+item.questionId" :chart-data="item.data">
  61. </HistogramHorizontal>
  62. </div>
  63. </div>
  64. </div>
  65. </div>
  66. <div v-if="isCrossAnalyse" class="crossAnalyse">
  67. <div class="crossAnalyseTable" v-for="(item, index) in crossAnalyse" :key="index">
  68. <div class="crossAnalyseTitle">题目{{index+1}}:{{item.name}}</div>
  69. <div class="crossAnalyseChart">
  70. <HistogramHorizontals :id="'c2'" :chartId="'caaaaa'+index" :chart-data="item.data">
  71. </HistogramHorizontals>
  72. </div>
  73. <div class="table">
  74. <div class="caTable">
  75. <div class="headerRow" style="width: 100px;">X\Y</div>
  76. <div class="headerRow" v-for="(item1,index1) in item.table[0].title" :key="index1" v-if="index1"
  77. :style="`width:${740/(item.table[0].title.length-1 || 1)}px`">{{item1}}</div>
  78. <div class="headerRow" style="width: 100px;">总计(人次)</div>
  79. </div>
  80. <div class="caTable" v-for="(items,indexs) in item.table" :key="indexs">
  81. <div class="tabkeRow" style="width: 100px;">{{items.name}}</div>
  82. <div class="tabkeRow" v-for="(item0,index0) in items.value" :key="index0" v-if="index0"
  83. :style="`width:${740/(items.value.length-1 || 1)}px`">
  84. {{item0}} ({{items.value[0]==0?0:((item0 / items.value[0]) * 100).toFixed(0)}}%)</div>
  85. <div class="tabkeRow" style="width: 100px;">{{items.value[0]}}</div>
  86. </div>
  87. </div>
  88. </div>
  89. </div>
  90. </div>
  91. </div>