mapDataStatistics.vue 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749
  1. <template>
  2. <div class="heat-lay">
  3. <div class="heat-lay-flex">
  4. <div class="heat-lay-item" style="width: 190%">
  5. <div class="heat-item-style1">
  6. <div class="heat-item-style1-title">今日新增安装单</div>
  7. <div class="duplicatelay">
  8. <div
  9. id="lingshou1"
  10. style="cursor: pointer"
  11. @click="
  12. openPopUp($event, 'lingshou1', '今日新增安装单-零售(台/单)')
  13. "
  14. >
  15. <div class="heat-item-style1-num1-2">零售</div>
  16. <div class="heat-item-style1-num1">
  17. <span class="heat-item-style1-num1-1 c1">
  18. {{ info.machineTotalR || 0 }}
  19. </span>
  20. <span class="heat-item-style1-num1-2"> 台 </span>
  21. </div>
  22. <div class="heat-item-style1-num2">
  23. <span class="heat-item-style1-num2-1 c2">
  24. {{ info.orderTotalR || 0 }}
  25. </span>
  26. <span class="heat-item-style1-num2-2">单</span>
  27. </div>
  28. </div>
  29. <div
  30. id="gongcheng1"
  31. style="cursor: pointer"
  32. @click="
  33. openPopUp($event, 'gongcheng1', '今日新增安装单-工程(台/单)')
  34. "
  35. >
  36. <div class="heat-item-style1-num1-2">工程</div>
  37. <div class="heat-item-style1-num1">
  38. <span class="heat-item-style1-num1-1 c1">
  39. {{ info.machineTotalP || 0 }}
  40. </span>
  41. <span class="heat-item-style1-num1-2"> 台 </span>
  42. </div>
  43. <div class="heat-item-style1-num2">
  44. <span class="heat-item-style1-num2-1 c2">
  45. {{ info.orderTotalP || 0 }}
  46. </span>
  47. <span class="heat-item-style1-num2-2">单</span>
  48. </div>
  49. </div>
  50. </div>
  51. </div>
  52. </div>
  53. <div class="averticalBart"></div>
  54. <div class="heat-lay-item" style="width: 190%">
  55. <div class="heat-item-style1">
  56. <div class="heat-item-style1-title">今日完工安装单</div>
  57. <div class="duplicatelay">
  58. <div
  59. id="lingshou2"
  60. style="cursor: pointer"
  61. @click="
  62. openPopUp($event, 'lingshou2', '今日完工安装单-零售(台/单)')
  63. "
  64. >
  65. <div class="heat-item-style1-num1-2">零售</div>
  66. <div class="heat-item-style1-num1">
  67. <span class="heat-item-style1-num1-1 c1">
  68. {{ info.machineCompleteR || 0 }}
  69. </span>
  70. <span class="heat-item-style1-num1-2"> 台 </span>
  71. </div>
  72. <div class="heat-item-style1-num2">
  73. <span class="heat-item-style1-num2-1 c2">
  74. {{ info.orderCompleteR || 0 }}
  75. </span>
  76. <span class="heat-item-style1-num2-2">单</span>
  77. </div>
  78. </div>
  79. <div
  80. id="gongcheng2"
  81. style="cursor: pointer"
  82. @click="
  83. openPopUp($event, 'gongcheng2', '今日完工安装单-工程(台/单)')
  84. "
  85. >
  86. <div class="heat-item-style1-num1-2">工程</div>
  87. <div class="heat-item-style1-num1">
  88. <span class="heat-item-style1-num1-1 c1">
  89. {{ info.machineCompleteP || 0 }}
  90. </span>
  91. <span class="heat-item-style1-num1-2"> 台 </span>
  92. </div>
  93. <div class="heat-item-style1-num2">
  94. <span class="heat-item-style1-num2-1 c2">
  95. {{ info.orderCompleteP || 0 }}
  96. </span>
  97. <span class="heat-item-style1-num2-2">单</span>
  98. </div>
  99. </div>
  100. </div>
  101. </div>
  102. </div>
  103. <div class="averticalBart"></div>
  104. <div class="heat-lay-item" style="width: 190%">
  105. <div class="heat-item-style1">
  106. <div class="heat-item-style1-title">安装未完工累计</div>
  107. <div class="duplicatelay">
  108. <div
  109. id="lingshou3"
  110. style="cursor: pointer"
  111. @click="
  112. openPopUp($event, 'lingshou3', '安装未完工累计-零售(台/单)')
  113. "
  114. >
  115. <div class="heat-item-style1-num1-2">零售</div>
  116. <div class="heat-item-style1-num1">
  117. <span class="heat-item-style1-num1-1 c4">
  118. {{ info.machineOpenR || 0 }}
  119. </span>
  120. <span class="heat-item-style1-num1-2"> 台 </span>
  121. </div>
  122. <div class="heat-item-style1-num2">
  123. <span class="heat-item-style1-num2-1 c3">
  124. {{ info.orderOpenR || 0 }}
  125. </span>
  126. <span class="heat-item-style1-num2-2">单</span>
  127. </div>
  128. </div>
  129. <div
  130. id="gongcheng3"
  131. style="cursor: pointer"
  132. @click="
  133. openPopUp($event, 'gongcheng3', '安装未完工累计-工程(台/单)')
  134. "
  135. >
  136. <div class="heat-item-style1-num1-2">工程</div>
  137. <div class="heat-item-style1-num1">
  138. <span class="heat-item-style1-num1-1 c4">
  139. {{ info.machineOpenP || 0 }}
  140. </span>
  141. <span class="heat-item-style1-num1-2"> 台 </span>
  142. </div>
  143. <div class="heat-item-style1-num2">
  144. <span class="heat-item-style1-num2-1 c3">
  145. {{ info.orderOpenP || 0 }}
  146. </span>
  147. <span class="heat-item-style1-num2-2">单</span>
  148. </div>
  149. </div>
  150. </div>
  151. </div>
  152. </div>
  153. <div class="averticalBart"></div>
  154. <div class="heat-lay-item">
  155. <div
  156. id="jinrshifucq"
  157. class="heat-item-style1"
  158. style="cursor: pointer"
  159. @click="openPopUp($event, 'jinrshifucq', '今日出勤师傅')"
  160. >
  161. <div class="heat-item-style1-title">今日出勤师傅</div>
  162. <br />
  163. <div class="heat-item-style1-num1">
  164. <span class="heat-item-style1-num1-1 c2">
  165. {{ info.cqry || 0 }}
  166. </span>
  167. <span class="heat-item-style1-num1-2"> 人 </span>
  168. </div>
  169. </div>
  170. </div>
  171. <div class="averticalBart"></div>
  172. <div class="heat-lay-item" style="cursor: pointer" @click="jinrhaop(0)">
  173. <div class="heat-item-style1">
  174. <div class="heat-item-style1-title">今日差评数</div>
  175. <br />
  176. <div class="heat-item-style1-num1">
  177. <span class="heat-item-style1-num1-1 c4">
  178. {{ info.badNum || 0 }}
  179. </span>
  180. <span class="heat-item-style1-num1-2"> 单 </span>
  181. </div>
  182. </div>
  183. </div>
  184. </div>
  185. <div class="horizontalLine"></div>
  186. <div class="heat-lay-flex">
  187. <div class="heat-lay-item" style="width: 190%">
  188. <div class="heat-item-style1">
  189. <div class="heat-item-style1-title">今日新增维修单</div>
  190. <div class="duplicatelay">
  191. <div
  192. id="weixiu1"
  193. style="cursor: pointer"
  194. @click="openPopUp($event, 'weixiu1', '今日新增维修单-维修(单)')"
  195. >
  196. <div class="heat-item-style1-num1-2">维修</div>
  197. <div class="heat-item-style1-num1">
  198. <span class="heat-item-style1-num1-1 c1">
  199. {{ info.newwx || 0 }}
  200. </span>
  201. <span class="heat-item-style1-num1-2"> 单 </span>
  202. </div>
  203. </div>
  204. <div
  205. id="qingxi1"
  206. style="cursor: pointer"
  207. @click="openPopUp($event, 'qingxi1', '今日新增清洗单-清洗(单)')"
  208. >
  209. <div class="heat-item-style1-num1-2">清洗</div>
  210. <div class="heat-item-style1-num1">
  211. <span class="heat-item-style1-num1-1 c1">
  212. {{ info.newqx || 0 }}
  213. </span>
  214. <span class="heat-item-style1-num1-2"> 单 </span>
  215. </div>
  216. </div>
  217. </div>
  218. </div>
  219. </div>
  220. <div class="averticalBarb"></div>
  221. <div class="heat-lay-item" style="width: 190%">
  222. <div class="heat-item-style1">
  223. <div class="heat-item-style1-title">今日完工维修单</div>
  224. <div class="duplicatelay">
  225. <div
  226. id="weixiu2"
  227. style="cursor: pointer"
  228. @click="openPopUp($event, 'weixiu2', '今日完工维修单-维修(单)')"
  229. >
  230. <div class="heat-item-style1-num1-2">维修</div>
  231. <div class="heat-item-style1-num1">
  232. <span class="heat-item-style1-num1-1 c1">
  233. {{ info.completewx || 0 }}
  234. </span>
  235. <span class="heat-item-style1-num1-2"> 单 </span>
  236. </div>
  237. </div>
  238. <div
  239. id="qingxi2"
  240. style="cursor: pointer"
  241. @click="openPopUp($event, 'qingxi2', '今日完工清洗单-清洗(单)')"
  242. >
  243. <div class="heat-item-style1-num1-2">清洗</div>
  244. <div class="heat-item-style1-num1">
  245. <span class="heat-item-style1-num1-1 c1">
  246. {{ info.completeqx || 0 }}
  247. </span>
  248. <span class="heat-item-style1-num1-2"> 单 </span>
  249. </div>
  250. </div>
  251. </div>
  252. </div>
  253. </div>
  254. <div class="averticalBarb"></div>
  255. <div class="heat-lay-item" style="width: 190%">
  256. <div class="heat-item-style1">
  257. <div class="heat-item-style1-title">维修未完工累计</div>
  258. <div class="duplicatelay">
  259. <div
  260. id="weixiu3"
  261. style="cursor: pointer"
  262. @click="openPopUp($event, 'weixiu3', '维修未完工累计-维修(单)')"
  263. >
  264. <div class="heat-item-style1-num1-2">维修</div>
  265. <div class="heat-item-style1-num1">
  266. <span class="heat-item-style1-num1-1 c4">
  267. {{ info.openwx || 0 }}
  268. </span>
  269. <span class="heat-item-style1-num1-2"> 单 </span>
  270. </div>
  271. </div>
  272. <div
  273. id="qingxi3"
  274. style="cursor: pointer"
  275. @click="openPopUp($event, 'qingxi3', '清洗未完工累计-清洗(单)')"
  276. >
  277. <div class="heat-item-style1-num1-2">清洗</div>
  278. <div class="heat-item-style1-num1">
  279. <span class="heat-item-style1-num1-1 c4">
  280. {{ info.openqx || 0 }}
  281. </span>
  282. <span class="heat-item-style1-num1-2"> 单 </span>
  283. </div>
  284. </div>
  285. </div>
  286. </div>
  287. </div>
  288. <div class="averticalBarb"></div>
  289. <div class="heat-lay-item">
  290. <div class="heat-item-style1">
  291. <div class="heat-item-style1-title">今日回收工单</div>
  292. <br />
  293. <div class="heat-item-style1-num1">
  294. <span class="heat-item-style1-num1-1 c1">
  295. {{ info.hsgd || 0 }}
  296. </span>
  297. <span class="heat-item-style1-num1-2"> 单 </span>
  298. </div>
  299. </div>
  300. </div>
  301. <div class="averticalBarb"></div>
  302. <!-- style="cursor: pointer" @click="jinrhaop(1)" -->
  303. <div class="heat-lay-item">
  304. <div class="heat-item-style1">
  305. <div class="heat-item-style1-title">今日好评率</div>
  306. <br />
  307. <div class="heat-item-style1-num1">
  308. <span class="heat-item-style1-num1-1 c2">
  309. {{ info.goodRate || 0 }}
  310. </span>
  311. <span class="heat-item-style1-num1-2"> % </span>
  312. </div>
  313. </div>
  314. </div>
  315. </div>
  316. <Teleport to="body">
  317. <popUp
  318. :show="show"
  319. :top="top"
  320. :left="left"
  321. :title="title"
  322. :item="item"
  323. :style="style"
  324. @col="
  325. (bool) => {
  326. show = bool;
  327. if (!bool) {
  328. style = {};
  329. item = [];
  330. renshu = false;
  331. timeId2 && timeId2();
  332. }
  333. }
  334. "
  335. >
  336. <div v-if="renshu">
  337. <div v-for="(item, index) in renshuliev" :key="index">
  338. <br />
  339. <div style="display: flex; justify-content: space-between">
  340. <span class="subheading">{{ item.typeName }}:</span
  341. ><span class="jinge">{{ item.numbers }}人</span>
  342. </div>
  343. </div>
  344. </div>
  345. </popUp>
  346. <el-dialog
  347. width="70%"
  348. v-model="dialogVisible"
  349. :before-close="handleClose"
  350. style="z-index: 10000000000"
  351. >
  352. <table border="1" style="width: 100%">
  353. <thead>
  354. <tr>
  355. <th>类型</th>
  356. <th>工单号</th>
  357. <th>网点名称</th>
  358. <th>主服务人员编号</th>
  359. <th>主服务人员名称</th>
  360. <th>评价述</th>
  361. </tr>
  362. </thead>
  363. <tbody>
  364. <tr v-for="(item, index) in cplie" :key="index">
  365. <td class="xiaolie">{{ item.type }}</td>
  366. <td class="xiaolie300">{{ item.workerOrderNo }}</td>
  367. <td class="xiaolie320">{{ item.websitName }}</td>
  368. <td class="xiaolie150">{{ item.wonumber }}</td>
  369. <td class="xiaolie120">{{ item.woname }}</td>
  370. <td>{{ item.tips }}</td>
  371. </tr>
  372. </tbody>
  373. </table>
  374. <el-pagination
  375. layout="prev, pager, next"
  376. :page-size="pageSize"
  377. :current-page="pageNum"
  378. :total="total"
  379. @current-change="currentChange"
  380. />
  381. </el-dialog>
  382. </Teleport>
  383. </div>
  384. </template>
  385. <script>
  386. import {
  387. getCommonly,
  388. getQuery15,
  389. getQuery22,
  390. getQuery23_1,
  391. } from '@/api/bigView.js';
  392. import popUp from '@/components/pop-up.vue';
  393. import bus from '@/utils/eventBus.js';
  394. export default {
  395. components: { popUp },
  396. data() {
  397. return {
  398. info: {},
  399. show: false,
  400. top: 0,
  401. left: 0,
  402. title: '',
  403. item: [],
  404. timeId2: null,
  405. renshu: false,
  406. style: {},
  407. renshuliev: [],
  408. dialogVisible: false,
  409. cplie: [],
  410. total: 0,
  411. pageNum: 1,
  412. pageSize: 10,
  413. typenum: null,
  414. };
  415. },
  416. watch: {
  417. dialogVisible() {
  418. if (this.dialogVisible) {
  419. bus.emit('autoplay', false);
  420. } else {
  421. bus.emit('autoplay', true);
  422. }
  423. },
  424. },
  425. mounted() {
  426. this.timeId = getCommonly((res) => {
  427. this.info = res.data;
  428. }, 60000);
  429. },
  430. beforeUnmount() {
  431. this.timeId();
  432. },
  433. methods: {
  434. currentChange(a) {
  435. this.pageNum = a;
  436. this.jinrhaop();
  437. },
  438. jinrhaop() {
  439. getQuery23_1({
  440. params: {
  441. typeCode: 0,
  442. pageNum: this.pageNum,
  443. pageSize: this.pageSize,
  444. },
  445. }).then((res) => {
  446. if (!this.dialogVisible) {
  447. this.dialogVisible = true;
  448. }
  449. this.total = res.data.total;
  450. this.cplie = res.data.records;
  451. });
  452. },
  453. handleClose() {
  454. this.pageNum = 1;
  455. this.dialogVisible = false;
  456. },
  457. openPopUp(e, id, title) {
  458. if (id === 'jinrshifucq') {
  459. getQuery22((res) => {
  460. var { height, top, left } = document
  461. .getElementById(id)
  462. .getBoundingClientRect();
  463. this.renshuliev = res.data;
  464. this.title = title;
  465. this.top = top + height;
  466. this.left = left;
  467. this.show = true;
  468. this.renshu = true;
  469. this.style = {
  470. width: 'auto',
  471. };
  472. });
  473. } else {
  474. this.timeId2 = getQuery15((res) => {
  475. var list = [
  476. { city: '广州公司' },
  477. { city: '佛山公司' },
  478. { city: '天猫优品' },
  479. ];
  480. var keys = [];
  481. var gz = [];
  482. var fs = [];
  483. res.data.map((item) => {
  484. var { city, ...obj } = item;
  485. var ind = ~['广州市', '清远市', '韶关市'].indexOf(city)
  486. ? 0
  487. : ~['佛山市', '肇庆市', '云浮市'].indexOf(city)
  488. ? 1
  489. : 2;
  490. if (ind === 0) {
  491. gz.push(item);
  492. }
  493. if (ind === 1) {
  494. fs.push(item);
  495. }
  496. keys = Object.keys(obj);
  497. keys.map((key) => {
  498. if (list[ind][key] === undefined) {
  499. list[ind][key] = 0;
  500. }
  501. list[ind][key] += obj[key];
  502. });
  503. });
  504. list.map((obj) => {
  505. if (Object.keys(obj).length === 1) {
  506. keys.map((key) => {
  507. obj[key] = 0;
  508. });
  509. }
  510. });
  511. gz.sort((a, b) => {
  512. return (
  513. ['广州市', '清远市', '韶关市'].indexOf(a.city) -
  514. ['广州市', '清远市', '韶关市'].indexOf(b.city)
  515. );
  516. });
  517. fs.sort((a, b) => {
  518. return (
  519. ['佛山市', '肇庆市', '云浮市'].indexOf(a.city) -
  520. ['佛山市', '肇庆市', '云浮市'].indexOf(b.city)
  521. );
  522. });
  523. this.item = [list[0], ...gz, list[1], ...fs, list[2]].map((item) => {
  524. var obj = {
  525. area: item.city,
  526. };
  527. if (id === 'lingshou1') {
  528. obj.amount = item.insMacNewR;
  529. obj.bills = item.insNewR;
  530. } else if (id === 'lingshou2') {
  531. obj.amount = item.insMacFinishR;
  532. obj.bills = item.insFinishR;
  533. } else if (id === 'lingshou3') {
  534. obj.amount = item.insMacOpenR;
  535. obj.bills = item.insOpenR;
  536. } else if (id === 'gongcheng1') {
  537. obj.amount = item.insMacNewP;
  538. obj.bills = item.insNewP;
  539. } else if (id === 'gongcheng2') {
  540. obj.amount = item.insMacFinishP;
  541. obj.bills = item.insFinishP;
  542. } else if (id === 'gongcheng3') {
  543. obj.amount = item.insMacOpenP;
  544. obj.bills = item.insOpenP;
  545. } else if (id === 'weixiu1') {
  546. obj.amount = item.repNew;
  547. } else if (id === 'weixiu2') {
  548. obj.amount = item.repFinish;
  549. } else if (id === 'weixiu3') {
  550. obj.amount = item.repOpen;
  551. } else if (id === 'qingxi1') {
  552. obj.amount = item.repNewqx;
  553. } else if (id === 'qingxi2') {
  554. obj.amount = item.repFinishqx;
  555. } else if (id === 'qingxi3') {
  556. obj.amount = item.repOpenqx;
  557. }
  558. return obj;
  559. });
  560. var { height, top, left } = document
  561. .getElementById(id)
  562. .getBoundingClientRect();
  563. this.title = title;
  564. this.top = top + height;
  565. this.left = left;
  566. this.show = true;
  567. }, 100000000000000);
  568. }
  569. },
  570. },
  571. };
  572. </script>
  573. <style scoped lang="scss">
  574. table {
  575. width: 100%;
  576. border-collapse: collapse;
  577. }
  578. table caption {
  579. font-size: 2em;
  580. font-weight: bold;
  581. margin: 1em 0;
  582. }
  583. th,
  584. td {
  585. border: 1px solid #ddd;
  586. text-align: center;
  587. padding: 6px 6px;
  588. }
  589. table thead tr {
  590. background-color: #008c8c;
  591. color: #fff;
  592. }
  593. table tbody tr:nth-child(odd) {
  594. background-color: #eee;
  595. }
  596. table tbody tr:hover {
  597. background-color: #ccc;
  598. }
  599. table tfoot tr td {
  600. text-align: right;
  601. padding-right: 20px;
  602. }
  603. .xiaolie {
  604. width: 80px;
  605. }
  606. .xiaolie300 {
  607. width: 220px;
  608. }
  609. .xiaolie320 {
  610. width: 280px;
  611. }
  612. .xiaolie150 {
  613. width: 150px;
  614. }
  615. .xiaolie120 {
  616. width: 100px;
  617. }
  618. .heat-lay {
  619. width: 100%;
  620. height: 220px;
  621. & > div:nth-child(1) {
  622. height: 128px;
  623. }
  624. & > div:nth-child(3) {
  625. height: 82px;
  626. }
  627. .horizontalLine {
  628. width: 100%;
  629. height: 1px;
  630. border-radius: 2px;
  631. background: linear-gradient(to right, #082570, #156ccf, #156ccf, #082570);
  632. }
  633. .averticalBart {
  634. height: 100%;
  635. min-width: 1px;
  636. border-radius: 2px;
  637. background: linear-gradient(#082570, #156ccf);
  638. }
  639. .averticalBarb {
  640. height: 100%;
  641. min-width: 1px;
  642. border-radius: 2px;
  643. background: linear-gradient(#156ccf, #082570);
  644. }
  645. .heat-lay-item {
  646. height: 100%;
  647. width: 100%;
  648. box-sizing: border-box;
  649. padding: 8px 8px;
  650. }
  651. .heat-lay-flex {
  652. width: 100%;
  653. height: 100%;
  654. display: flex;
  655. flex-direction: row;
  656. align-items: center;
  657. }
  658. .heat-item-style1-num1-2 {
  659. font-size: 16px;
  660. font-family: Source Han Sans CN, Source Han Sans CN-Regular;
  661. font-weight: 400;
  662. // margin-left: 10px;
  663. color: #8ab1dc;
  664. }
  665. .heat-item-style1 {
  666. width: 100%;
  667. height: 100%;
  668. .heat-item-style1-title {
  669. font-size: 16px;
  670. font-family: Source Han Sans CN, Source Han Sans CN-Regular;
  671. font-weight: 400;
  672. // text-align: center;
  673. color: #8ab1dc;
  674. margin-bottom: 5px;
  675. }
  676. .heat-item-style1-num1,
  677. .heat-item-style1-num2 {
  678. width: 100%;
  679. height: auto;
  680. display: flex;
  681. flex-direction: row;
  682. align-items: center;
  683. // justify-content: flex-end;
  684. .heat-item-style1-num1-1 {
  685. font-size: 22px;
  686. font-family: Source Han Sans CN, Source Han Sans CN-Medium;
  687. font-weight: 500;
  688. }
  689. .heat-item-style1-num2-1 {
  690. font-size: 16px;
  691. font-family: Source Han Sans CN, Source Han Sans CN-Regular;
  692. font-weight: 400;
  693. }
  694. .heat-item-style1-num2-2 {
  695. font-size: 16px;
  696. font-family: Source Han Sans CN, Source Han Sans CN-Regular;
  697. font-weight: 400;
  698. color: #8ab1dc;
  699. }
  700. .c1 {
  701. color: #3be9ff;
  702. }
  703. .c2 {
  704. color: #3ce783;
  705. }
  706. .c3 {
  707. color: #e15960;
  708. }
  709. .c4 {
  710. color: #ff9900;
  711. }
  712. }
  713. }
  714. .duplicatelay {
  715. width: 100%;
  716. height: auto;
  717. display: flex;
  718. justify-content: space-between;
  719. & > div {
  720. width: 100%;
  721. }
  722. }
  723. }
  724. .subheading {
  725. font-size: 18px;
  726. font-family: Source Han Sans CN, Source Han Sans CN-Medium;
  727. font-weight: 500;
  728. color: #93b0d8;
  729. line-height: 25px;
  730. text-align: right;
  731. }
  732. .jinge {
  733. font-size: 18px;
  734. font-family: Source Han Sans CN, Source Han Sans CN-Medium;
  735. font-weight: 500;
  736. color: #ffffff;
  737. line-height: 25px;
  738. text-align: right;
  739. }
  740. </style>