index.vue 24 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063
  1. <template>
  2. <div id="report_container">
  3. <!-- 头部信息 -->
  4. <view class="user_info">
  5. <img :src="userinfo.portrait" />
  6. <view class="info_wrap">
  7. <view class="box_wrap">
  8. <text>{{ record.user_name }}</text>
  9. <text>{{ record.phone }}</text>
  10. </view>
  11. <view class="box_wrap info_right">
  12. <text>{{ record.start_time }}</text>
  13. <text>训练时间 : {{ record.play_time }}</text>
  14. </view>
  15. </view>
  16. </view>
  17. <div class="bran_wrap">
  18. <img
  19. src="http://img.shuimuai.com/report_ brain_coefficient.png"
  20. alt=""
  21. >
  22. <div class="bran">
  23. <p class="p_num">{{record.ratio}}</p>
  24. <p class="p_text">智脑系数</p>
  25. </div>
  26. </div>
  27. <!-- 训练时长和训练设备 -->
  28. <!-- <view class="po1 padding-lr margin-top-xl">
  29. <van-row>
  30. <van-col span="11">
  31. <view>
  32. <text>训练时长</text>
  33. <text class="text-bold text-xl"> &nbsp; {{ record.play_time }}</text>
  34. </view>
  35. </van-col>
  36. <van-col
  37. span="11"
  38. offset="2"
  39. >
  40. <view>
  41. <text>训练设备</text>
  42. <text class="text-bold text-xl">&nbsp; {{ record.name }}</text>
  43. </view>
  44. </van-col>
  45. </van-row>
  46. </view> -->
  47. <view>
  48. <van-divider
  49. contentPosition="left"
  50. borderColor="#E98F36"
  51. >
  52. <van-image
  53. src="https://img.shuimuai.com/line.png"
  54. alt=""
  55. width="40"
  56. height="40"
  57. ></van-image>
  58. </van-divider>
  59. </view>
  60. <!-- 专注力维持区间、受干扰次数,专注力最大爆发值、专注力启动时长-->
  61. <view class="margin-tb">
  62. <!-- 高专注力占比 -->
  63. <view class="margin_left">
  64. <view class="hight_pie_chart">
  65. <mpvue-echarts
  66. :echarts="echarts"
  67. :onInit="hight_att_charts"
  68. canvasId="demo-canvas-interfere"
  69. />
  70. </view>
  71. <view class="left_content">
  72. <view class="left_num">{{ record.height_absorbed }}%</view>
  73. <view class="left_text">高专注力占比</view>
  74. </view>
  75. </view>
  76. <!-- 数据详情 -->
  77. <view class="margin_centent">
  78. <view class="detail">
  79. <te class="detail_num">{{ record.scope_diff }}</te>
  80. <view>专注力维持区间</view>
  81. </view>
  82. <view class="detail">
  83. <view class="detail_num">{{ record.interfere }}</view>
  84. <view>受干扰次数</view>
  85. </view>
  86. <view class="detail">
  87. <view class="detail_num">{{ record.burst }}</view>
  88. <view>专注力最大爆发值</view>
  89. </view>
  90. <view class="detail">
  91. <view class="detail_num">{{ record.start }}</view>
  92. <view>专注力启动时长</view>
  93. </view>
  94. </view>
  95. <!-- 平均专注力 -->
  96. <view class="margin_right ">
  97. <view class="right_num">{{ record.att_average }}</view>
  98. <view class="right_text">平均专注力</view>
  99. </view>
  100. </view>
  101. <view class="bar">
  102. <view>
  103. <view class="line"></view>
  104. <view class="title">专注力要素分析</view>
  105. </view>
  106. </view>
  107. <view class="radar_chart">
  108. <mpvue-echarts
  109. :echarts="echarts"
  110. :onInit="radar_charts"
  111. canvasId="demo-canvas2"
  112. />
  113. </view>
  114. <view class="">
  115. <view class="bar">
  116. <view>
  117. <view class="line"></view>
  118. <view class="title">报告分析</view>
  119. </view>
  120. </view>
  121. <view class="conclution">{{ record.content }}</view>
  122. <!-- <view class="conclution">{{ record.content2 }}</view> -->
  123. <view class="bar">
  124. <view>
  125. <view class="line"></view>
  126. <view class="title">训练建议</view>
  127. </view>
  128. </view>
  129. <view class="conclution">{{ record.advise }}</view>
  130. </view>
  131. <view class="bar">
  132. <view>
  133. <view class="line"></view>
  134. <view class="title">专注力数值曲线</view>
  135. </view>
  136. </view>
  137. <view class="chart">
  138. <mpvue-echarts
  139. :echarts="echarts"
  140. :onInit="attCharts"
  141. canvasId="demo-canvas"
  142. />
  143. </view>
  144. <view
  145. class="section_container"
  146. v-if="is_cut"
  147. >
  148. <van-tabs
  149. :active="0"
  150. color="#6858C4"
  151. type="card"
  152. @change="changeMin"
  153. >
  154. <van-tab
  155. :name="index"
  156. :title="(5*index)+'-'+(5*(index+1)) + '分钟'"
  157. v-for="(section,index) in data_section"
  158. :key="index"
  159. ></van-tab>
  160. </van-tabs>
  161. </view>
  162. <view class="cu-bar bg-white">
  163. <view class="action">
  164. <text class="cuIcon-titles text-primary"></text>
  165. <text class="">专注力数值累计比例</text>
  166. </view>
  167. </view>
  168. <view class="chart">
  169. <mpvue-echarts
  170. :echarts="echarts"
  171. :onInit="pie_charts"
  172. canvasId="demo-canvas-1"
  173. />
  174. </view>
  175. <!-- 核销详情 -->
  176. <view class="bar">
  177. <view>
  178. <view class="line"></view>
  179. <view class="title">核销详情</view>
  180. </view>
  181. </view>
  182. <view class="sheet">
  183. <view class="left">
  184. <view>专注力训练设备: {{ record.name }}</view>
  185. </view>
  186. <view class="right">
  187. <view>核销方式:
  188. <text v-if="record.consumption_type==1">次卡</text>
  189. <text v-if="record.consumption_type==2">时间卡</text>
  190. </view>
  191. </view>
  192. </view>
  193. <!-- 专注力变化看板 -->
  194. <view class="absorbed_change">
  195. <view class="interfere_title_wrap">
  196. <view class="line"></view>
  197. <view class="title">专注力变化分析</view>
  198. </view>
  199. <!-- 看板一 干扰 -->
  200. <view class="interfere_wrap">
  201. <view class="interfere">
  202. <img
  203. src="http://img.shuimuai.com/program_interfere_log.png"
  204. alt=""
  205. class="interfere_logo"
  206. >
  207. <view class="interfere_text">
  208. 受干扰次数:
  209. <title class="interfere_text_num"> {{record.interfere}}</title>
  210. </view>
  211. </view>
  212. <!-- 表图 -->
  213. <view class="interfere_echarts_wrap">
  214. <view class="interfere_echarts">
  215. <mpvue-echarts
  216. :echarts="echarts"
  217. :onInit="interfere_charts"
  218. canvasId="demo-canvas-4"
  219. />
  220. </view>
  221. <view class="interfere_echarts_bottom">
  222. <text>0</text>
  223. <text>2</text>
  224. <text>4</text>
  225. <text>6</text>
  226. <text>8</text>
  227. <text>10</text>
  228. <text>12</text>
  229. <text>14</text>
  230. <text>16</text>
  231. <text>18</text>
  232. <text>20</text>
  233. </view>
  234. </view>
  235. <view class="interfere_footer">
  236. <title class="interfere_footer_logo"></title>专注力干扰
  237. </view>
  238. </view>
  239. <!-- 调整能力分析 -->
  240. <view class="adjustment_warp">
  241. <view class="adjustment_title">
  242. <img
  243. src="http://img.shuimuai.com/program_rise_log.png"
  244. alt=""
  245. class="adjustment_title_logo"
  246. >
  247. <text>调整能力分析</text>
  248. </view>
  249. <!-- 表图 -->
  250. <view class="adjustment_echarts_wrap">
  251. <view class="adjustment_echarts">
  252. <mpvue-echarts
  253. :echarts="echarts"
  254. :onInit="adjustment_charts"
  255. canvasId="demo-canvas-5"
  256. />
  257. </view>
  258. <view class="adjustment_echarts_bottom">
  259. <text>0</text>
  260. <text>2</text>
  261. <text>4</text>
  262. <text>6</text>
  263. <text>8</text>
  264. <text>10</text>
  265. <text>12</text>
  266. <text>14</text>
  267. <text>16</text>
  268. <text>18</text>
  269. <text>20</text>
  270. </view>
  271. </view>
  272. <view class="adjustment_footer">
  273. <view class="adjustment_footer_logo"></view>专注力上升
  274. </view>
  275. </view>
  276. <!-- 爆发值和调整时间 -->
  277. <view class="absorbed_change_footer">
  278. <view class="footer_text">
  279. 最大爆发值:
  280. <text class="footer_text_W">{{ record.burst }}</text>
  281. </view>
  282. <view class="footer_text">
  283. 平均调整时间:
  284. <text class="footer_text_W">{{ record.burstTime}}</text>
  285. s
  286. </view>
  287. </view>
  288. </view>
  289. <van-toast id="van-toast" />
  290. </div>
  291. </template>
  292. <script>
  293. import mpvueEcharts from "mpvue-echarts";
  294. import echarts from "../../../static/echarts.min";
  295. import util, {
  296. filterPieData,
  297. formatSeconds,
  298. getHightPieChartOption,
  299. getPieChartsOption,
  300. getRadarChartOption,
  301. timestampToTimeS,
  302. getInterfereChartsOption,
  303. interfereAction,
  304. getAdjustmentChartsOption,
  305. } from "../../utils/index";
  306. import { gameDetail, gameLineChart } from "../../requests/game";
  307. import game_store from "../../store/game";
  308. import Toast from "../../../static/vant/toast/toast";
  309. var att_charts,
  310. hight_att_pie_charts,
  311. radar_charts,
  312. $pie_charts,
  313. $interfere_echarts,
  314. $adjustment_echarts,
  315. $this;
  316. // 大脑图表初始化
  317. function initAttChart(canvas, width, height) {
  318. att_charts = echarts.init(canvas, null, {
  319. width: width,
  320. height: height,
  321. });
  322. canvas.setChart(att_charts);
  323. var option = util.getLineOption([0], [0]); // ECharts 配置项
  324. att_charts.setOption(option);
  325. return att_charts; // 返回 chart 后可以自动绑定触摸操作
  326. }
  327. // 大脑图表初始化
  328. function initHightPieChart(canvas, width, height) {
  329. hight_att_pie_charts = echarts.init(canvas, null, {
  330. width: width,
  331. height: height,
  332. });
  333. canvas.setChart(hight_att_pie_charts);
  334. var option = getHightPieChartOption(0, 0); // ECharts 配置项
  335. hight_att_pie_charts.setOption(option);
  336. return hight_att_pie_charts; // 返回 chart 后可以自动绑定触摸操作
  337. }
  338. // 大脑图表初始化
  339. function initRadarChart(canvas, width, height) {
  340. radar_charts = echarts.init(canvas, null, {
  341. width: width,
  342. height: height,
  343. });
  344. canvas.setChart(radar_charts);
  345. var option = getRadarChartOption(0); // ECharts 配置项
  346. radar_charts.setOption(option);
  347. return radar_charts; // 返回 chart 后可以自动绑定触摸操作
  348. }
  349. function initPieChart(canvas, width, height) {
  350. $pie_charts = echarts.init(canvas, null, {
  351. width: width,
  352. height: height,
  353. });
  354. canvas.setChart($pie_charts);
  355. var option = getPieChartsOption(); // ECharts 配置项
  356. $pie_charts.setOption(option);
  357. return $pie_charts; // 返回 chart 后可以自动绑定触摸操作
  358. }
  359. // 干扰图表初始化 interfere_echarts
  360. function interfereChart(canvas, width, height) {
  361. $interfere_echarts = echarts.init(canvas, null, {
  362. width: width,
  363. height: height,
  364. });
  365. canvas.setChart($interfere_echarts);
  366. var option = getInterfereChartsOption(); // ECharts 配置项
  367. $interfere_echarts.setOption(option);
  368. return $interfere_echarts; // 返回 chart 后可以自动绑定触摸操作
  369. }
  370. // 调整能力表初始化 interfere_echarts
  371. function adjustmentCharts(canvas, width, height) {
  372. $adjustment_echarts = echarts.init(canvas, null, {
  373. width: width,
  374. height: height,
  375. });
  376. canvas.setChart($adjustment_echarts);
  377. var option = getAdjustmentChartsOption(); // ECharts 配置项
  378. $adjustment_echarts.setOption(option);
  379. return $adjustment_echarts; // 返回 chart 后可以自动绑定触摸操作
  380. }
  381. export default {
  382. name: "index_container",
  383. components: {
  384. mpvueEcharts,
  385. },
  386. data() {
  387. return {
  388. // 0:未选择 1:时间 2:次数
  389. // 折线图 表格数据
  390. attCharts: initAttChart,
  391. hight_att_charts: initHightPieChart,
  392. radar_charts: initRadarChart,
  393. pie_charts: initPieChart,
  394. interfere_charts: interfereChart,
  395. adjustment_charts: adjustmentCharts,
  396. echarts,
  397. record: {},
  398. userinfo: {},
  399. record_id: 0,
  400. //是否截断数据
  401. is_cut: false,
  402. //数据截断数
  403. data_section: 0,
  404. //数据集合
  405. data_lines: [],
  406. // 干扰值
  407. interfereData: [],
  408. // 调整能力值
  409. adjustmentData: [],
  410. };
  411. },
  412. methods: {
  413. // 获取游戏报告
  414. get_report($record_id) {
  415. $this.record = {};
  416. Toast.loading({
  417. forbidClick: true,
  418. message: "加载中",
  419. duration: 0,
  420. });
  421. setTimeout(() => {
  422. gameDetail($record_id).then(
  423. (res) => {
  424. Toast.clear();
  425. let $res = res.data;
  426. $this.record = $res.data;
  427. // console.log("成绩记录数据", $res.data.interfereArr);
  428. // console.log("数据长度:", $res.data.line);
  429. $this.record.play_time = formatSeconds($this.record.play_time);
  430. $this.record.start_time = timestampToTimeS($this.record.start_time);
  431. $this.record.height_absorbed = Math.ceil(
  432. $this.record.height / $this.record.total * 100
  433. );
  434. let $options = getHightPieChartOption(
  435. $this.record.height,
  436. $this.record.total
  437. );
  438. hight_att_pie_charts.setOption($options);
  439. //设置雷达图
  440. $options = getRadarChartOption([
  441. $this.record.att_average, //平均
  442. $this.record.att_scope, //广度
  443. $this.record.att_burst, //爆发
  444. $this.record.att_interfere, //抗干扰
  445. $this.record.att_start, //启动
  446. $this.record.att_height, // 高专注占比
  447. ]);
  448. radar_charts.setOption($options);
  449. let $pie_data = filterPieData($this.record.level);
  450. let $pie_option = getPieChartsOption($pie_data);
  451. $pie_charts.setOption($pie_option);
  452. //5分钟阶段
  453. let $five_min = 5 * 60;
  454. $this.is_cut = $this.record.play_time > $five_min;
  455. if ($this.is_cut) {
  456. //截断得数量
  457. $this.data_section = Math.ceil(
  458. $this.record.play_time / $five_min
  459. );
  460. }
  461. // 干扰值数据传输
  462. $this.interfereData = interfereAction($res.data.interfereArr);
  463. let $interfere_option = getInterfereChartsOption(
  464. $this.interfereData
  465. );
  466. $interfere_echarts.setOption($interfere_option);
  467. // 调整能力数据传输
  468. $this.adjustmentData = interfereAction($res.data.burstArr);
  469. let $adjustment_option = getAdjustmentChartsOption(
  470. $this.adjustmentData
  471. );
  472. $adjustment_echarts.setOption($adjustment_option);
  473. },
  474. (err) => {
  475. Toast.fail("错误代码:" + res.code + ",联系客服");
  476. }
  477. );
  478. }, 800);
  479. },
  480. get_game_line($record_id) {
  481. let $params = {
  482. game_record_id: $record_id,
  483. };
  484. gameLineChart($params).then(
  485. (res) => {
  486. let $res = res.data;
  487. let $option = {};
  488. setTimeout(() => {
  489. let $line_data = $res.data.line;
  490. if ($this.is_cut) {
  491. //需要截断数据
  492. let $more_than_count = $line_data.length % $this.data_section;
  493. let i = 0;
  494. //根据多出来的数 删除结尾得数量
  495. for (i = 0; i < $more_than_count; i++) {
  496. $line_data.pop();
  497. }
  498. $this.data_lines = [];
  499. //获取每一组得数据长度
  500. let $item_len = $line_data.length / $this.data_section;
  501. for (i = 0; i < $this.data_section; i++) {
  502. $this.data_lines.push(
  503. $line_data.slice(i * $item_len, (i + 1) * $item_len)
  504. );
  505. }
  506. $option = util.getLineOption($this.data_lines[0], [0]);
  507. } else {
  508. $option = util.getLineOption($line_data, [0]);
  509. }
  510. att_charts.setOption($option);
  511. }, 800);
  512. },
  513. (err) => {
  514. Toast.fail("错误代码:" + res.code + ",联系客服");
  515. }
  516. );
  517. },
  518. to_game_records() {
  519. mpvue.navigateTo({
  520. url: "/pages/game_record/main",
  521. });
  522. },
  523. // 切换时间查看线 数据
  524. changeMin($e) {
  525. let $index = $e.mp.detail.name;
  526. let $option = util.getLineOption($this.data_lines[$index], [0]);
  527. att_charts.setOption($option);
  528. },
  529. },
  530. mounted() {
  531. $this.userinfo = wx.getStorageSync("userinfo");
  532. //设置游戏时间长
  533. wx.removeStorageSync("played_time");
  534. $this.get_report($this.record_id);
  535. $this.get_game_line($this.record_id);
  536. },
  537. created() {
  538. $this = this;
  539. },
  540. onLoad(options) {
  541. $this.record_id = options.id
  542. ? options.id
  543. : game_store.getters.getGameRecordId();
  544. },
  545. };
  546. </script>
  547. <style scoped>
  548. #report_container {
  549. background: white;
  550. padding-top: 10px;
  551. padding-bottom: 10px;
  552. }
  553. /* 头部椭圆 */
  554. .head {
  555. width: 442px;
  556. height: 385px;
  557. background-color: #4b3ab0;
  558. border-radius: 50%;
  559. position: absolute;
  560. left: -34px;
  561. top: -252px;
  562. z-index: -1;
  563. }
  564. /* 头部个人信息 */
  565. image.boy {
  566. width: 110px;
  567. height: 111px;
  568. position: absolute;
  569. left: 225px;
  570. top: 45px;
  571. }
  572. .user_info {
  573. width: 95%;
  574. height: 51px;
  575. display: flex;
  576. margin: 0 auto;
  577. margin-bottom: 10px;
  578. align-items: center;
  579. padding-right: 10px;
  580. box-sizing: border-box;
  581. box-shadow: 0px 0px 10px rgba(51, 56, 74, 0.11);
  582. border-radius: 5px;
  583. background: #fff;
  584. }
  585. .user_info img {
  586. display: inline-block;
  587. width: 40px;
  588. height: 40px;
  589. margin-left: 10px;
  590. margin-right: 8px;
  591. }
  592. .user_info .info_wrap {
  593. display: flex;
  594. justify-content: space-between;
  595. flex: 1;
  596. }
  597. .user_info .box_wrap {
  598. display: flex;
  599. flex-direction: column;
  600. color: #676767;
  601. }
  602. /* 智脑系数 */
  603. .bran_wrap {
  604. width: 100%;
  605. height: 101px;
  606. background-color: #fff;
  607. display: flex;
  608. justify-content: center;
  609. align-items: center;
  610. }
  611. .bran_wrap img {
  612. display: inline-block;
  613. width: 60px;
  614. height: 68px;
  615. margin-right: 20px;
  616. }
  617. .bran_wrap .bran {
  618. display: flex;
  619. flex-direction: column;
  620. justify-content: space-around;
  621. align-items: center;
  622. }
  623. .bran_wrap .bran .p_num {
  624. color: #ffb72d;
  625. font-size: 40px;
  626. font-weight: 900;
  627. }
  628. .bran_wrap .bran .p_text {
  629. color: #333333;
  630. font-size: 12px;
  631. font-weight: 900;
  632. }
  633. /* 详细数据 */
  634. .margin-tb {
  635. width: 95%;
  636. height: 110px;
  637. margin: 0 auto;
  638. display: flex;
  639. justify-content: space-between;
  640. background: #f3f3f3;
  641. border-radius: 5px;
  642. }
  643. .margin-tb .margin_left {
  644. flex: 1;
  645. overflow: hidden;
  646. display: flex;
  647. flex-direction: column;
  648. }
  649. .margin-tb .margin_left .left_content {
  650. display: flex;
  651. flex-direction: column;
  652. justify-content: center;
  653. align-items: center;
  654. color: #676767;
  655. }
  656. .margin-tb .margin_left .left_content .left_num {
  657. font-size: 16px;
  658. font-weight: 900;
  659. }
  660. .margin-tb .margin_left .left_content .left_text {
  661. font-size: 8px;
  662. }
  663. .margin-tb .margin_centent {
  664. flex: 3;
  665. display: flex;
  666. flex-wrap: wrap;
  667. justify-content: space-around;
  668. }
  669. .margin-tb .margin_right {
  670. flex: 1;
  671. display: flex;
  672. flex-direction: column;
  673. justify-content: center;
  674. align-items: center;
  675. color: #90df24;
  676. box-sizing: border-box;
  677. padding: 0 3px;
  678. }
  679. .margin-tb .margin_right .right_num {
  680. font-size: 25px;
  681. font-weight: 900;
  682. margin-bottom: 10px;
  683. }
  684. .margin-tb .margin_right .right_text {
  685. width: 90%;
  686. height: 20px;
  687. background: #90df24;
  688. color: #fff;
  689. text-align: center;
  690. line-height: 20px;
  691. font-size: 10px;
  692. border-radius: 1px;
  693. }
  694. .margin-tb .detail {
  695. width: 48%;
  696. height: 50%;
  697. display: flex;
  698. flex-direction: column;
  699. justify-content: center;
  700. align-items: center;
  701. color: #676767;
  702. font-size: 11px;
  703. }
  704. .margin-tb .detail .detail_num {
  705. font-size: 18px;
  706. font-weight: 900;
  707. }
  708. /* .detail view {
  709. display: flex;
  710. flex-direction: column;
  711. align-items: center;
  712. justify-content: space-around;
  713. color: #6c6c6c;
  714. font-size: 10px;
  715. }
  716. .detail view view:first-child {
  717. color: #000;
  718. font-size: 30px;
  719. } */
  720. /* 小标题 */
  721. .bar {
  722. width: 100%;
  723. height: 10px;
  724. display: flex;
  725. align-items: center;
  726. justify-content: space-between;
  727. padding: 0 7px;
  728. box-sizing: border-box;
  729. margin: 11px 0;
  730. }
  731. .bar view {
  732. display: flex;
  733. align-items: center;
  734. justify-content: start;
  735. }
  736. .conclution {
  737. width: 100%;
  738. padding: 5px 19px 8px;
  739. font-size: 12px;
  740. color: #6c6c6c;
  741. box-sizing: border-box;
  742. }
  743. .conclution_title {
  744. font-weight: 600;
  745. color: #000;
  746. }
  747. .bar .line {
  748. width: 4px;
  749. height: 15px;
  750. background-color: #5d4db8;
  751. margin-right: 7px;
  752. }
  753. .bar .title {
  754. color: #010101;
  755. font-size: 15px;
  756. }
  757. /* 图表 */
  758. #mychart-dom-multi-line {
  759. width: 360px;
  760. height: 193px;
  761. }
  762. .chart {
  763. margin: 0 auto;
  764. width: 360px;
  765. height: 193px;
  766. background: #f3f3f3;
  767. opacity: 0.6;
  768. border-radius: 10px;
  769. box-shadow: 0px 6px 11px #dadada;
  770. }
  771. /*雷达图*/
  772. .radar_chart {
  773. margin: 0 auto;
  774. width: 360px;
  775. height: 293px;
  776. background: #f3f3f3;
  777. opacity: 0.6;
  778. border-radius: 10px;
  779. box-shadow: 0px 6px 11px #dadada;
  780. }
  781. .hight_pie_chart {
  782. /* margin: 0 auto; */
  783. width: 100%;
  784. height: 50px;
  785. background: #f3f3f3;
  786. margin-top: 15px;
  787. /*border-radius: 10px;*/
  788. /*box-shadow: 0px 6px 11px #dadada;*/
  789. }
  790. /* 核销详情 */
  791. .sheet {
  792. color: #6d6d6d;
  793. font-size: 12px;
  794. display: flex;
  795. padding: 0 16px;
  796. box-sizing: border-box;
  797. }
  798. .sheet .left,
  799. .sheet .right {
  800. height: 15px;
  801. display: flex;
  802. flex-direction: column;
  803. align-items: flex-start;
  804. justify-content: space-between;
  805. }
  806. .sheet .left {
  807. width: 195px;
  808. }
  809. .content_card {
  810. border-radius: 10px;
  811. box-shadow: 0px 6px 11px #dadada;
  812. }
  813. /* 专注力干扰看板 */
  814. .absorbed_change {
  815. width: 100%;
  816. padding: 0 7px;
  817. box-sizing: border-box;
  818. margin-top: 40px;
  819. }
  820. .absorbed_change .line {
  821. width: 4px;
  822. height: 15px;
  823. background-color: #5d4db8;
  824. margin-right: 7px;
  825. }
  826. .absorbed_change .title {
  827. color: #010101;
  828. font-size: 15px;
  829. }
  830. .interfere_title_wrap {
  831. width: 100%;
  832. height: 40px;
  833. display: flex;
  834. align-items: center;
  835. border-top: 1px solid #e5e5e5;
  836. }
  837. /* 干扰 标题*/
  838. .interfere {
  839. display: flex;
  840. margin-left: 8px;
  841. height: 54px;
  842. align-items: center;
  843. margin-bottom: 14px;
  844. }
  845. .interfere .interfere_logo {
  846. display: inline-block;
  847. width: 19px;
  848. height: 19px;
  849. margin-right: 7px;
  850. }
  851. .interfere .interfere_text {
  852. font-size: 15px;
  853. color: #676767;
  854. }
  855. .interfere .interfere_text .interfere_text_num {
  856. font-size: 18px;
  857. font-weight: 900;
  858. }
  859. /* 干扰 echarts */
  860. .interfere_echarts_wrap {
  861. width: 360px;
  862. height: 193px;
  863. background: #f3f3f3;
  864. opacity: 0.6;
  865. box-shadow: 0px 6px 11px #dadada;
  866. }
  867. .interfere_echarts {
  868. /* margin: 0 auto; */
  869. width: 100%;
  870. height: 173px;
  871. /* background: #f3f3f3;
  872. opacity: 0.6;
  873. box-shadow: 0px 6px 11px #dadada; */
  874. }
  875. .interfere_echarts_bottom {
  876. margin: 0 auto;
  877. width: 90%;
  878. height: 20px;
  879. display: flex;
  880. align-items: center;
  881. justify-content: space-around;
  882. font-size: 15px;
  883. color: #828282;
  884. }
  885. /* 干扰 bottom */
  886. .interfere_footer {
  887. width: 100%;
  888. height: 26px;
  889. font-size: 13px;
  890. font-family: Microsoft YaHei;
  891. font-weight: 400;
  892. color: #676767;
  893. display: flex;
  894. justify-content: center;
  895. align-items: center;
  896. margin-top: 10px;
  897. }
  898. .interfere_footer .interfere_footer_logo {
  899. display: inline-block;
  900. width: 13px;
  901. height: 13px;
  902. background-color: #23cc92;
  903. margin-right: 5px;
  904. }
  905. /* 调整能力 */
  906. .adjustment_warp {
  907. margin-top: 50px;
  908. }
  909. .adjustment_title {
  910. display: flex;
  911. color: #676767;
  912. font-size: 15px;
  913. padding-left: 8px;
  914. box-sizing: border-box;
  915. margin-bottom: 35px;
  916. }
  917. .adjustment_title .adjustment_title_logo {
  918. display: inline-block;
  919. width: 19px;
  920. height: 19px;
  921. margin-right: 7px;
  922. }
  923. /* 调整能力表图 */
  924. .adjustment_echarts_wrap {
  925. margin: 0 auto;
  926. width: 360px;
  927. height: 193px;
  928. background: #f3f3f3;
  929. opacity: 0.6;
  930. box-shadow: 0px 6px 11px #dadada;
  931. }
  932. .adjustment_echarts {
  933. width: 100%;
  934. height: 173px;
  935. }
  936. .adjustment_echarts_bottom {
  937. margin: 0 auto;
  938. width: 90%;
  939. height: 20px;
  940. display: flex;
  941. align-items: center;
  942. justify-content: space-around;
  943. font-size: 15px;
  944. color: #828282;
  945. }
  946. .adjustment_footer {
  947. width: 100%;
  948. height: 26px;
  949. font-size: 13px;
  950. font-family: Microsoft YaHei;
  951. font-weight: 400;
  952. color: #676767;
  953. display: flex;
  954. justify-content: center;
  955. align-items: center;
  956. margin-top: 10px;
  957. }
  958. .adjustment_footer .adjustment_footer_logo {
  959. display: inline-block;
  960. width: 13px;
  961. height: 13px;
  962. background-color: #f3a100;
  963. margin-right: 5px;
  964. }
  965. /* 爆发值和调整时间 */
  966. .absorbed_change_footer {
  967. display: flex;
  968. justify-content: space-around;
  969. margin-top: 28px;
  970. }
  971. .absorbed_change_footer .footer_text {
  972. font-size: 16px;
  973. color: #676767;
  974. }
  975. .footer_text_W {
  976. font-size: 21px;
  977. font-weight: 600;
  978. }
  979. .test {
  980. color: rgb(163, 7, 7);
  981. }
  982. </style>