modeReport.vue 28 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106
  1. <template>
  2. <view class="report-content">
  3. <view class="topinfo">
  4. <image style="position: relative; left: 7%;" src="/static/img/modeReport.png"></image>
  5. <view class="mark">得分:{{serverData.examMark}} 分</view>
  6. </view>
  7. <view class="topinfos">
  8. <view class="title">评 测 报 告</view>
  9. <view>EVALUATION REPORT</view>
  10. <view>机构名称:{{serverData.schoolName}}</view>
  11. <view>姓名:{{serverData.studentName}}</view>
  12. <view>科目:{{serverData.subjectName}}</view>
  13. <view>时间:{{serverData.createDate}}</view>
  14. <view>用时:{{serverData.examTime}}</view>
  15. </view>
  16. <view class="ehcarts-title">测评结果等级</view>
  17. <view>
  18. <image
  19. style="width: 100%; height: 360upx; 30px"
  20. :src="'/static/img/' + serverData.level + '.png'"></image>
  21. <view class="min_title">
  22. 根据教育部《关于普通高中学业水平考试的实施意见》
  23. (教基二[2014]10号)所给的标准,以等级呈现成绩,
  24. 位次由高到低为A至E等级。其中A等级15%,B等级30%,C等级30%,D、E等级共25%,
  25. 智能提分系统参照此文件,在义务教育阶段同等适用。
  26. </view>
  27. </view>
  28. <view class="ehcarts-title">评测分析</view>
  29. <view class="qiun-columns">
  30. <view >
  31. <view class="item">学科: {{serverData.subjectName}}</view>
  32. <view class="item">试题数量: {{serverData.questionNumber}}题</view>
  33. </view>
  34. <view >
  35. <view class="item">总分: 100</view>
  36. <view class="item">知识点: {{serverData.languagePointsNumber}}</view>
  37. </view>
  38. <view class="qiun-charts">
  39. <canvas canvas-id="analyse"
  40. id="analyse"
  41. class="charts"
  42. :width="cWidth * pixelRatio"
  43. :height="cHeight * pixelRatio"
  44. :style="{'width': cWidth + 'px', 'height' : cHeight+'px'}"
  45. @touchstart="touchPie($event, 'analyse')">
  46. </canvas>
  47. </view>
  48. </view>
  49. <view class="ehcarts-title">知识点掌握情况</view>
  50. <view class="qiun-columns">
  51. <view class="qiun-charts3">
  52. <!--#ifdef MP-ALIPAY -->
  53. <canvas
  54. canvas-id="languagePintsRate"
  55. id="languagePintsRate"
  56. class="charts3"
  57. :style="{'width':cWidth3*pixelRatio+'px',
  58. 'height':cHeight3*pixelRatio+'px',
  59. 'transform': 'scale('+(1/pixelRatio)+')',
  60. 'position': relative, 'left': 20%,
  61. 'margin-top':-cHeight3*(pixelRatio-1)/2+'px'}">
  62. </canvas>
  63. <canvas
  64. canvas-id="questionRate"
  65. id="questionRate"
  66. class="charts3"
  67. :style="{'width':cWidth3*pixelRatio+'px',
  68. 'height':cHeight3*pixelRatio+'px',
  69. 'position': relative, 'left': 20% ,
  70. 'transform': 'scale('+(1/pixelRatio)+')',
  71. 'margin-top':-cHeight3*(pixelRatio-1)/2+'px'}">
  72. </canvas>
  73. <!--#endif-->
  74. <!--#ifndef MP-ALIPAY -->
  75. <canvas
  76. canvas-id="languagePintsRate"
  77. style="position': relative; left: 6%"
  78. id="languagePintsRate" class="charts3"></canvas>
  79. <canvas
  80. canvas-id="questionRate"
  81. id="questionRate"
  82. class="charts3" style="position': relative; left: 50%">
  83. </canvas>
  84. <!--#endif-->
  85. </view>
  86. <view>
  87. <view class="count_item">
  88. <!-- 39B54A-->
  89. <view style="color: #98eac2; padding-left: 50px;">已掌握 {{serverData.graspLanguagePointsNumber}}</view>
  90. <view style="color: #F19192;padding-left: 50px;">未掌握 {{serverData.noGraspLanguagePointsNumber}}</view>
  91. <view class="tip" v-html="serverData.languagePointsRateDiffer" style="padding-left: 30upx;">
  92. </view>
  93. <!--<view class="tip" style="padding-left: 30upx;">
  94. 本次测评全网平均掌握程度
  95. <text style="color: #E49C98; font-weight: bold;">65%</text>
  96. 您低于平均水平<text style="color: #E49C98;font-weight: bold;">50%</text>
  97. </view>-->
  98. </view>
  99. <view class="count_item">
  100. <view style="color: #77ABDF;padding-left: 22px;">答对题数 {{serverData.rightQuestionNumber}}</view>
  101. <view style="color: #F19192;padding-left: 22px;">答错题数 {{serverData.errorQuestionNumber}}</view>
  102. <view class="tip " v-html="serverData.rightQuestionRateDiffer">
  103. </view>
  104. <!--<view class="tip ">
  105. 本次测评全网平均掌握程度
  106. <text style="color: #E49C98;font-weight: bold;">65%</text>
  107. 您低于平均水平<text style="color: #E49C98;font-weight: bold;">50%</text>
  108. </view>-->
  109. </view>
  110. </view>
  111. </view>
  112. <view class="ehcarts-title">测评结果</view>
  113. <view
  114. v-for="(item, index) in serverData.ctLanguagePointsResponseList"
  115. style="margin:10px;"
  116. class="qiun-columns">
  117. <ai-progress
  118. :content="item.languagePointsName"
  119. :lineData="true"
  120. strokeWidth="20"
  121. :textInside="true" :percentage="item.rightRate">
  122. </ai-progress>
  123. <view style="margin: 15upx;">
  124. <view @click="showMsg" class="icons_item">
  125. <uni-icons type="eye" size="20"></uni-icons>
  126. 知识点视频</view>
  127. <view @click="showMsg" class="icons_item">
  128. <uni-icons type="compose" size="20"></uni-icons>
  129. 推荐学习路径1</view>
  130. <view @click="showMsg" class="icons_item">
  131. <uni-icons type="compose" size="20"></uni-icons>
  132. 推荐学习路径2</view>
  133. </view>
  134. </view>
  135. <view class="ehcarts-title">答题详情</view>
  136. <view style="background: #fff;" class="page">
  137. <!-- <page-head :title="title"></page-head> -->
  138. <view class="uni-list">
  139. <!-- <view style="margin-top: 10upx;margin-left: 20upx;">总答题:10 总答题:10 总答题:10</view> -->
  140. <view>
  141. <view class="question_count_item">总答题{{serverData.questionNumber}}题</view>
  142. <view style="color: #1ddceb" class="question_count_item">答对{{serverData.rightQuestionNumber}}题</view>
  143. <view style="color: #eb2a17" class="question_count_item">答错{{serverData.errorQuestionNumber}}题</view>
  144. </view>
  145. <block
  146. v-for="(item,index) in serverData.studentQuestionAnswerList"
  147. :key="index">
  148. <view class="uni-list-cell" hover-class="uni-list-cell-hover">
  149. <view class="uni-triplex-row">
  150. <view class="uni-triplex-left">
  151. <uni-tag
  152. :text="item.questionName"
  153. type="error" :circle="true">
  154. </uni-tag>
  155. <!-- <text class="uni-title uni-ellipsis">
  156. {{item.questionName}}
  157. </text> -->
  158. <view class="uni-padding-wrap">
  159. <uParse :content="item.content" />
  160. </view>
  161. <!-- <text class="uni-text" v-html="item.content"></text> -->
  162. <!-- 判断题 -->
  163. <view v-if="item.question_type === 6" class="uni-padding-wrap">
  164. <view style="margin-top: 10upx;">
  165. <label class="radio">
  166. <radio
  167. value="1"
  168. :checked="item.userInfoAnswer === '1'"
  169. :disabled="true"/>对
  170. </label>
  171. </view>
  172. <view style="margin-top: 10upx;">
  173. <label >
  174. <radio value="0"
  175. :disabled="true"
  176. :checked="item.userInfoAnswer === '0'"
  177. class="radio" />错</label>
  178. </view>
  179. </view>
  180. <!-- 单项选择题 -->
  181. <view v-if="item.question_type === 3" class="uni-padding-wrap">
  182. <view
  183. v-for="(subItem, index) in item.options"
  184. :key="index" style="margin-top: 10upx;">
  185. <label class="radio">
  186. <radio
  187. :value="subItem.value"
  188. :disabled="true"
  189. :checked="item.userInfoAnswer === subItem.value"
  190. />{{subItem.option}}
  191. </label>
  192. </view>
  193. </view>
  194. <!-- 多项选择题 -->
  195. <view v-if="item.question_type === 4" class="uni-padding-wrap">
  196. <view
  197. v-for="(subItem, index) in item.options"
  198. :key="index" style="margin-top: 10upx;">
  199. <label class="radio">
  200. <checkbox
  201. :disabled="true"
  202. :value="subItem.value"
  203. :checked="subItem.checked" />{{subItem.option}}
  204. </label>
  205. </view>
  206. </view>
  207. <view v-if="item.enclosure.length > 0">
  208. <text>你的答案:</text>
  209. <xyz-choose-image
  210. :uploadFlag="false"
  211. :imgList="item.enclosure">
  212. </xyz-choose-image>
  213. </view>
  214. <text
  215. v-else-if="item.question_type === 6 && item.userInfoAnswer === '1'"
  216. class="uni-ellipsis">你的答案: 对</text>
  217. <text
  218. v-else-if="item.question_type === 6 && item.userInfoAnswer === '0'"
  219. class="uni-ellipsis">你的答案: 错</text>
  220. <text
  221. v-else
  222. class="uni-ellipsis">你的答案: {{item.userInfoAnswer | parserAnswer}}</text>
  223. <text
  224. v-if="item.question_type === 6 && item.answer === '1'"
  225. class="uni-ellipsis">正确答案: 对</text>
  226. <text
  227. v-else-if="item.question_type === 6 && item.answer === '0'"
  228. class="uni-ellipsis">正确答案: 错</text>
  229. <text
  230. v-else-if="item.question_type === 3 || item.question_type === 4"
  231. class="uni-ellipsis">正确答案: {{item.answer | parserAnswer}}</text>
  232. <text
  233. v-else
  234. class="uni-ellipsis">正确答案:
  235. <uParse :content="item.answer" />
  236. </text>
  237. <text class="uni-ellipsis">解析:</text>
  238. <uParse :content="item.analysis" />
  239. <!-- <text v-html="item.analysis" class="uni-ellipsis"></text> -->
  240. </view>
  241. </view>
  242. </view>
  243. </block>
  244. </view>
  245. </view>
  246. </view>
  247. </template>
  248. <script>
  249. import xyzChooseImage from "@/components/xyz-choose-image/xyz-choose-image.vue"
  250. import {getQueryString} from '../../utils/common.js'
  251. import uniTag from '@/components/uni-tag/uni-tag.vue'
  252. import uCharts from '@/components/u-charts/u-charts.js'
  253. import uniIcons from '@/components/uni-icons/uni-icons.vue'
  254. import aiProgress from '@/components/ai-progress/ai-progress.vue'
  255. import { mapGetters } from 'vuex'
  256. var _self;
  257. var canvasObj = {};
  258. import uParse from '@/components/uParse/src/wxParse.vue'
  259. export default {
  260. components: {aiProgress, uniIcons, uniTag, uParse, xyzChooseImage},
  261. data() {
  262. return {
  263. title: 'Hello',
  264. imgList: ['https://files.91lz.com/uploads/files/publish/e5d637135c2642848d7b210e7fdc69c0/qrCode/2020/11/04/151021386.jpg'],
  265. modeId: null,
  266. studentId: null,
  267. modeQuestionType: 0,
  268. title: 'list-triplex-row',
  269. lists: [],
  270. serverData: {},
  271. cWidth: '',
  272. cHeight: '',
  273. cWidth2: '', //横屏图表
  274. cHeight2: '', //横屏图表
  275. cWidth3: '', //圆弧进度图
  276. cHeight3: '', //圆弧进度图
  277. arcbarWidth: '', //圆弧进度图,进度条宽度,此设置可使各端宽度一致
  278. gaugeWidth: '', //仪表盘宽度,此设置可使各端宽度一致
  279. tips: '',
  280. pixelRatio: 1,
  281. serverData: '',
  282. itemCount: 30, //x轴单屏数据密度
  283. sliderMax: 50
  284. }
  285. },
  286. onBackPress (event) {
  287. },
  288. computed: {
  289. ...mapGetters({
  290. fileHost: 'common/fileHost'
  291. })
  292. },
  293. onLoad(params) {
  294. let headBack = document.getElementsByClassName('uni-page-head-hd')[0]
  295. headBack.style.display = 'none' // 隐藏返回图标
  296. this.modeId = params.modeId
  297. this.studentId = params.studentId
  298. this.modeQuestionType = params.modeQuestionType
  299. let list = []
  300. for (let i = 0; i < 5; i++) {
  301. list.push(i)
  302. }
  303. this.lists = list
  304. _self = this;
  305. //#ifdef MP-ALIPAY
  306. uni.getSystemInfo({
  307. success: function(res) {
  308. if (res.pixelRatio > 1) {
  309. //正常这里给2就行,如果pixelRatio=3性能会降低一点
  310. //_self.pixelRatio =res.pixelRatio;
  311. _self.pixelRatio = 2;
  312. }
  313. }
  314. });
  315. //#endif
  316. this.cWidth = uni.upx2px(750);
  317. this.cHeight = uni.upx2px(500);
  318. this.cWidth2 = uni.upx2px(700);
  319. this.cHeight2 = uni.upx2px(1100);
  320. this.cWidth3 = uni.upx2px(250);
  321. this.cHeight3 = uni.upx2px(250);
  322. this.arcbarWidth = uni.upx2px(24);
  323. this.gaugeWidth = uni.upx2px(30);
  324. this.getModeReport()
  325. //this.fillData(Data);
  326. },
  327. /* onReady() {
  328. this.getServerData();
  329. }, */
  330. methods: {
  331. /* test () {
  332. alert(1)
  333. }, */
  334. showMsg () {
  335. uni.showToast({
  336. icon: 'none',
  337. title: '请与当地加盟校联系开通即可享受服务'
  338. })
  339. },
  340. getModeReport () {
  341. let params = {
  342. studentId: this.studentId,
  343. modeId: this.modeId,
  344. modeQuestionType: this.modeQuestionType
  345. }
  346. this.$httpApi.get('/weChat/getModeQuestionReport', params)
  347. .then(response => {
  348. this.serverData = response.data
  349. let studentQuestionAnswerList = this.serverData.studentQuestionAnswerList
  350. if (studentQuestionAnswerList !== null && studentQuestionAnswerList.length > 0) {
  351. studentQuestionAnswerList.forEach(item => {
  352. // 多选题
  353. if (item.question_type === 4) {
  354. let optionList = item.options
  355. let userInfoAnswer = item.userInfoAnswer
  356. optionList.forEach(option => {
  357. let value = option.value
  358. option.checked = false
  359. if (userInfoAnswer.length > 0) {
  360. userInfoAnswer.forEach(answer => {
  361. if (answer === value) {
  362. option.checked = true
  363. }
  364. })
  365. }
  366. })
  367. }
  368. if (item.question_type != 3 && item.question_type != 4
  369. && item.question_type != 6) {
  370. if (item.enclosure && item.enclosure.length > 0) {
  371. let newEnclosure = []
  372. item.enclosure.forEach(imgUrl => {
  373. imgUrl = this.fileHost + imgUrl
  374. newEnclosure.push(imgUrl)
  375. })
  376. item.enclosure = newEnclosure
  377. }
  378. }
  379. })
  380. }
  381. // 记载测评分析图表
  382. let ctLanguagePointsResponseList = this.serverData.ctLanguagePointsResponseList
  383. this.loadAnalyseReport(ctLanguagePointsResponseList)
  384. let graspLanguagePointsNumber = this.serverData.graspLanguagePointsNumber
  385. let noGraspLanguagePointsNumber = this.serverData.noGraspLanguagePointsNumber
  386. let languagePintsSeries = [
  387. {
  388. "name": "知识点掌握",
  389. "data": graspLanguagePointsNumber / (graspLanguagePointsNumber + noGraspLanguagePointsNumber),
  390. "color": "#7ee1c4"
  391. }
  392. ]
  393. this.loadLanguagePintsReport(languagePintsSeries)
  394. let rightQuestionNumber = this.serverData.rightQuestionNumber
  395. let errorQuestionNumber = this.serverData.errorQuestionNumber
  396. let questionSeries = [
  397. {
  398. "name": "准确率",
  399. "data": rightQuestionNumber / (rightQuestionNumber + errorQuestionNumber),
  400. "color": "#409eff"
  401. }
  402. ]
  403. this.loadQuestionRateReport(questionSeries)
  404. })
  405. },
  406. loadAnalyseReport (ctLanguagePointsResponseList) {
  407. let languagePointsList = []
  408. ctLanguagePointsResponseList.forEach(item => {
  409. // languagePointsNameArray.push(item.languagePointsName)
  410. languagePointsList.push({
  411. data: item.languagePointsQuestionNumber,
  412. name: item.languagePointsName
  413. })
  414. })
  415. let options = {
  416. series: []
  417. }
  418. options.series = languagePointsList;
  419. this.showPie("analyse", options);
  420. },
  421. loadLanguagePintsReport (data) {
  422. let options = {
  423. series: data
  424. }
  425. this.showArcbar('languagePintsRate', options);
  426. },
  427. loadQuestionRateReport (data) {
  428. let options = {
  429. series: data
  430. }
  431. this.showArcbar2('questionRate', options);
  432. },
  433. showPie(canvasId, chartData) {
  434. canvasObj[canvasId] = new uCharts({
  435. $this: _self,
  436. canvasId: canvasId,
  437. type: 'pie',
  438. fontSize: 11,
  439. padding:[15,15,0,15],
  440. legend:{
  441. show:true,
  442. padding:5,
  443. lineHeight:11,
  444. margin:0,
  445. },
  446. background: '#FFFFFF',
  447. pixelRatio: _self.pixelRatio,
  448. series: chartData.series,
  449. animation: false,
  450. width: _self.cWidth * _self.pixelRatio,
  451. height: _self.cHeight * _self.pixelRatio,
  452. dataLabel: true,
  453. extra: {
  454. pie: {
  455. lableWidth: 15
  456. }
  457. },
  458. })
  459. },
  460. showRadar(canvasId, chartData) {
  461. canvasObj[canvasId] = new uCharts({
  462. $this: _self,
  463. canvasId: canvasId,
  464. type: 'radar',
  465. fontSize: 11,
  466. padding:[15,15,0,15],
  467. legend:{
  468. show:true,
  469. padding:5,
  470. lineHeight:11,
  471. margin:0,
  472. },
  473. background: '#FFFFFF',
  474. pixelRatio: _self.pixelRatio,
  475. animation: false,
  476. dataLabel: true,
  477. categories: chartData.categories,
  478. series: chartData.series,
  479. width: _self.cWidth * _self.pixelRatio,
  480. height: _self.cHeight * _self.pixelRatio,
  481. extra: {
  482. radar: {
  483. max: 200 //雷达数值的最大值
  484. }
  485. }
  486. })
  487. },
  488. showArcbar(canvasId, chartData) {
  489. new uCharts({
  490. $this: _self,
  491. canvasId: canvasId,
  492. type: 'arcbar',
  493. fontSize: 11,
  494. title: {
  495. name: Math.round(chartData.series[0].data * 100) + '%',
  496. color: chartData.series[0].color,
  497. fontSize: 25 * _self.pixelRatio
  498. },
  499. subtitle: {
  500. name: chartData.series[0].name,
  501. color: '#666666',
  502. fontSize: 15 * _self.pixelRatio
  503. },
  504. extra: {
  505. arcbar: {
  506. backgroundColor: '#C2F8EB',
  507. type: 'circle', //整圆类型进度条图
  508. width: _self.arcbarWidth * _self.pixelRatio, //圆弧的宽度
  509. startAngle: 0.5 //整圆类型只需配置起始角度即可
  510. }
  511. },
  512. background: '#FFFFFF',
  513. pixelRatio: _self.pixelRatio,
  514. series: chartData.series,
  515. animation: false,
  516. width: _self.cWidth3 * _self.pixelRatio,
  517. height: _self.cHeight3 * _self.pixelRatio,
  518. dataLabel: true,
  519. })
  520. },
  521. showArcbar2(canvasId, chartData) {
  522. new uCharts({
  523. $this: _self,
  524. canvasId: canvasId,
  525. type: 'arcbar',
  526. fontSize: 11,
  527. title: {
  528. name: Math.round(chartData.series[0].data * 100) + '%',
  529. color: chartData.series[0].color,
  530. fontSize: 25 * _self.pixelRatio
  531. },
  532. subtitle: {
  533. name: chartData.series[0].name,
  534. color: '#666666',
  535. fontSize: 15 * _self.pixelRatio
  536. },
  537. extra: {
  538. arcbar: {
  539. backgroundColor: '#50e1c2',
  540. type: 'circle', //整圆类型进度条图
  541. width: _self.arcbarWidth * _self.pixelRatio, //圆弧的宽度
  542. startAngle: 0.5 //整圆类型只需配置起始角度即可
  543. }
  544. },
  545. background: '#FFFFFF',
  546. pixelRatio: _self.pixelRatio,
  547. series: chartData.series,
  548. animation: false,
  549. width: _self.cWidth3 * _self.pixelRatio,
  550. height: _self.cHeight3 * _self.pixelRatio,
  551. dataLabel: true,
  552. })
  553. },
  554. changeData() {
  555. canvasObj['canvasColumn'].updateData({
  556. series: _self.serverData.ColumnB.series,
  557. categories: _self.serverData.ColumnB.categories
  558. })
  559. },
  560. touchPie(e,id) {
  561. canvasObj[id].showToolTip(e, {
  562. format: function(item) {
  563. return item.name + ':' + item.data
  564. }
  565. })
  566. },
  567. },
  568. filters: {
  569. parserAnswer(answer) {
  570. if (answer) {
  571. if (answer instanceof Array) {
  572. let answerStr = ''
  573. answer.forEach(item => {
  574. answerStr += item + ","
  575. })
  576. return answerStr.substr(0, answerStr.length - 1)
  577. }
  578. return answer
  579. }
  580. return '未作答'
  581. }
  582. }
  583. }
  584. </script>
  585. <style scoped>
  586. .uni-tag {
  587. width: 30%
  588. }
  589. .wxParse uni-view {
  590. }
  591. /* 图文列表 */
  592. .uni-media-list {
  593. padding: 22upx 30upx;
  594. box-sizing: border-box;
  595. display: flex;
  596. width: 100%;
  597. flex-direction: row;
  598. }
  599. .uni-navigate-right.uni-media-list {
  600. padding-right: 74upx;
  601. }
  602. .uni-pull-right {
  603. flex-direction: row-reverse;
  604. }
  605. .uni-pull-right>.uni-media-list-logo {
  606. margin-right: 0upx;
  607. margin-left: 20upx;
  608. }
  609. .uni-media-list-logo {
  610. height: 84upx;
  611. width: 84upx;
  612. margin-right: 20upx;
  613. }
  614. .uni-media-list-logo image {
  615. height: 100%;
  616. width: 100%;
  617. }
  618. .uni-media-list-body {
  619. height: 84upx;
  620. display: flex;
  621. flex: 1;
  622. flex-direction: column;
  623. justify-content: space-between;
  624. align-items: flex-start;
  625. overflow: hidden;
  626. }
  627. .uni-media-list-text-top {
  628. width: 100%;
  629. line-height: 36upx;
  630. font-size: 30upx;
  631. }
  632. .uni-media-list-text-bottom {
  633. width: 100%;
  634. line-height: 30upx;
  635. font-size: 26upx;
  636. color: #8f8f94;
  637. }
  638. </style>
  639. <style>
  640. .uni-list-cell-navigate.uni-navigate-right:after {
  641. content: '' !important;
  642. }
  643. .icons_item {
  644. font-size: 30upx;
  645. margin-top: 10upx;
  646. margin-left: 10upx;
  647. color: red;
  648. width: 265upx;
  649. float: left;
  650. display: inline-block;
  651. }
  652. .uni-text-small {
  653. font-size:24upx;
  654. }
  655. /* page */
  656. .uni-h5 {font-size: 28upx; color: #8f8f94;}
  657. /* 文本溢出隐藏 */
  658. .uni-ellipsis {
  659. overflow: hidden;
  660. white-space: nowrap;
  661. margin-top: 15upx;
  662. color: #999999;
  663. text-overflow: ellipsis;
  664. }
  665. .uni-page-head{
  666. padding:35upx;
  667. text-align: center;
  668. }
  669. .question_count_item {
  670. width: 30%;
  671. margin: 12upx;
  672. display: inline-block;
  673. }
  674. .uni-page-head-title {
  675. display: inline-block;
  676. padding: 0 40upx;
  677. font-size: 30upx;
  678. height: 88upx;
  679. line-height: 88upx;
  680. color: #BEBEBE;
  681. box-sizing: border-box;
  682. border-bottom: 2upx solid #D8D8D8;
  683. }
  684. .min_title {
  685. font-size: 14px;
  686. margin: 5px;
  687. color: #DADADA;
  688. }
  689. .uni-page-body {
  690. width: 100%;
  691. flex-grow: 1;
  692. overflow-x: hidden;
  693. }
  694. .uni-list-cell {
  695. position: relative;
  696. display: flex;
  697. flex-direction: row;
  698. justify-content: space-between;
  699. align-items: center;
  700. }
  701. .uni-list-cell-hover {
  702. background-color: #eee;
  703. }
  704. .uni-list-cell-pd {
  705. padding: 22upx 30upx;
  706. }
  707. .uni-list-cell-left {
  708. font-size:28upx;
  709. padding: 0 30upx;
  710. }
  711. .uni-list-cell-db,
  712. .uni-list-cell-right {
  713. flex: 1;
  714. }
  715. .uni-list-cell::after {
  716. position: absolute;
  717. z-index: 3;
  718. right: 0;
  719. bottom: 0;
  720. left: 30upx;
  721. height: 1px;
  722. content: '';
  723. -webkit-transform: scaleY(.5);
  724. transform: scaleY(.5);
  725. background-color: #c8c7cc;
  726. }
  727. .uni-list .uni-list-cell:last-child::after {
  728. height: 0upx;
  729. }
  730. .uni-list-cell-last.uni-list-cell::after {
  731. height: 0upx;
  732. }
  733. .uni-list-cell-divider {
  734. position: relative;
  735. display: flex;
  736. color: #999;
  737. background-color: #f7f7f7;
  738. padding:15upx 20upx;
  739. }
  740. .uni-list-cell-divider::before {
  741. position: absolute;
  742. right: 0;
  743. top: 0;
  744. left: 0;
  745. height: 1px;
  746. content: '';
  747. -webkit-transform: scaleY(.5);
  748. transform: scaleY(.5);
  749. background-color: #c8c7cc;
  750. }
  751. .uni-padding-wrap{
  752. width:690upx;
  753. padding:0 30upx;
  754. }
  755. .tip {
  756. color: #9A9A9A;
  757. font-size: 26upx;
  758. margin-top: 2upx;
  759. width: 300upx;
  760. text-align: center;
  761. }
  762. .uni-list-cell-divider::after {
  763. position: absolute;
  764. right: 0;
  765. bottom: 0;
  766. left: 0upx;
  767. height: 1px;
  768. content: '';
  769. -webkit-transform: scaleY(.5);
  770. transform: scaleY(.5);
  771. background-color: #c8c7cc;
  772. }
  773. .uni-list-cell-navigate {
  774. font-size:30upx;
  775. padding: 22upx 30upx;
  776. line-height: 48upx;
  777. position: relative;
  778. display: flex;
  779. box-sizing: border-box;
  780. width: 100%;
  781. flex: 1;
  782. justify-content: space-between;
  783. align-items: center;
  784. }
  785. .uni-list-cell-navigate {
  786. padding-right: 36upx;
  787. }
  788. .uni-navigate-badge {
  789. padding-right: 50upx;
  790. }
  791. .uni-list-cell-navigate.uni-navigate-right:after {
  792. font-family: uniicons;
  793. content: '\e583';
  794. position: absolute;
  795. right: 24upx;
  796. top: 50%;
  797. color: #bbb;
  798. -webkit-transform: translateY(-50%);
  799. transform: translateY(-50%);
  800. }
  801. .uni-list-cell-navigate.uni-navigate-bottom:after {
  802. font-family: uniicons;
  803. content: '\e581';
  804. position: absolute;
  805. right: 24upx;
  806. top: 50%;
  807. color: #bbb;
  808. -webkit-transform: translateY(-50%);
  809. transform: translateY(-50%);
  810. }
  811. .uni-list-cell-navigate.uni-navigate-bottom.uni-active::after {
  812. font-family: uniicons;
  813. content: '\e580';
  814. position: absolute;
  815. right: 24upx;
  816. top: 50%;
  817. color: #bbb;
  818. -webkit-transform: translateY(-50%);
  819. transform: translateY(-50%);
  820. }
  821. .uni-collapse.uni-list-cell {
  822. flex-direction: column;
  823. }
  824. .uni-list-cell-navigate.uni-active {
  825. background: #eee;
  826. }
  827. .uni-list.uni-collapse {
  828. box-sizing: border-box;
  829. height: 0;
  830. overflow: hidden;
  831. }
  832. .uni-collapse .uni-list-cell {
  833. padding-left: 20upx;
  834. }
  835. .uni-collapse .uni-list-cell::after {
  836. left: 52upx;
  837. }
  838. .uni-list.uni-active {
  839. height: auto;
  840. }
  841. /* 三行列表 */
  842. .uni-triplex-row {
  843. display: flex;
  844. flex: 1;
  845. width: 100%;
  846. box-sizing: border-box;
  847. flex-direction: row;
  848. padding: 22upx 30upx;
  849. }
  850. .uni-triplex-right,
  851. .uni-triplex-left {
  852. display: flex;
  853. flex-direction: column;
  854. }
  855. .uni-triplex-left {
  856. width: 84%;
  857. }
  858. .uni-triplex-left .uni-title{
  859. padding:8upx 0;
  860. }
  861. .uni-text {
  862. display: inherit !important;
  863. }
  864. .uni-triplex-left .uni-text, .uni-triplex-left .uni-text-small{color:#999999;}
  865. .uni-triplex-right {
  866. width: 16%;
  867. text-align: right;
  868. }
  869. .count_item {
  870. display: inline-block;
  871. width: 50%;
  872. /* margin-left: 13%; */
  873. /* width: 40%;
  874. margin-left: 9%; */
  875. margin-top: 10px;
  876. }
  877. .topinfos {
  878. margin: 20px auto;
  879. padding: 10px 0 20px;
  880. display: flex;
  881. background-color: #ed2828;
  882. color: #fff;
  883. justify-content: center;
  884. align-items: center;
  885. flex-direction: column;
  886. }
  887. .report-content {
  888. width: 100%;
  889. height: 100%;
  890. }
  891. .mark {
  892. position: relative;
  893. right: 4%;
  894. text-align: center;
  895. font-size: 24px;
  896. font-weight: 700;
  897. }
  898. .ehcarts-title {
  899. display: flex;
  900. justify-content: space-between;
  901. align-items: center;
  902. font-size: 32upx;
  903. color: white;
  904. padding: 30upx 30upx 30upx 50upx;
  905. margin-top: 20upx;
  906. width: 100%;
  907. position: relative;
  908. background-color: #FF9966;
  909. border-bottom: 1px #FF9966 solid
  910. }
  911. .qiun-columns .item {
  912. /* width: 20upx; */
  913. display: inline-block;
  914. float: left;
  915. margin-top: 20upx;
  916. margin-bottom: 20upx;
  917. margin-left: 50upx;
  918. }
  919. page {
  920. background: #F2F2F2;
  921. width: 750upx;
  922. overflow-x: hidden;
  923. }
  924. .qiun-padding {
  925. padding: 2%;
  926. width: 96%;
  927. }
  928. .qiun-wrap {
  929. display: flex;
  930. flex-wrap: wrap;
  931. }
  932. .qiun-rows {
  933. display: flex;
  934. flex-direction: row !important;
  935. }
  936. .ai_btn {
  937. display: inline-block;
  938. line-height: 40px;
  939. position: relative;
  940. left: 8%;
  941. }
  942. .ai_btn_item {
  943. border-radius: 60upx;
  944. float: left;
  945. line-height: 50px;
  946. margin-left: 20px;
  947. margin-top: 20px;
  948. }
  949. .qiun-columns {
  950. display: flex;
  951. flex-direction: column !important;
  952. }
  953. .qiun-common-mt {
  954. margin-top: 10upx;
  955. }
  956. .qiun-bg-white {
  957. background: #FFFFFF;
  958. }
  959. .qiun-title-bar {
  960. width: 96%;
  961. padding: 10upx 2%;
  962. flex-wrap: nowrap;
  963. }
  964. .qiun-title-dot-light {
  965. border-left: 10upx solid #0ea391;
  966. padding-left: 10upx;
  967. font-size: 32upx;
  968. color: #000000
  969. }
  970. /* 通用样式 */
  971. .qiun-charts {
  972. width: 750upx;
  973. height: 500upx;
  974. background-color: #FFFFFF;
  975. }
  976. .charts {
  977. width: 750upx;
  978. height: 500upx;
  979. background-color: #FFFFFF;
  980. }
  981. /* 横屏样式 */
  982. .qiun-charts-rotate {
  983. width: 700upx;
  984. height: 1100upx;
  985. background-color: #FFFFFF;
  986. padding: 25upx;
  987. }
  988. .charts-rotate {
  989. width: 700upx;
  990. height: 1100upx;
  991. background-color: #FFFFFF;
  992. }
  993. /* 圆弧进度样式 */
  994. .qiun-charts3 {
  995. width: 750upx;
  996. height: 250upx;
  997. background-color: #FFFFFF;
  998. position: relative;
  999. }
  1000. .charts3 {
  1001. position: absolute;
  1002. width: 250upx;
  1003. height: 250upx;
  1004. background-color: #FFFFFF;
  1005. }
  1006. .qiun-tip {
  1007. display: block;
  1008. width: auto;
  1009. overflow: hidden;
  1010. padding: 15upx;
  1011. height: 30upx;
  1012. line-height: 30upx;
  1013. margin: 10upx;
  1014. background: #ff9933;
  1015. font-size: 30upx;
  1016. border-radius: 8upx;
  1017. justify-content: center;
  1018. text-align: center;
  1019. border: 1px solid #dc7004;
  1020. color: #FFFFFF;
  1021. }
  1022. </style>