console2.html 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>数据分析</title>
  6. <meta name="renderer" content="webkit">
  7. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  8. <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  9. <link rel="stylesheet" href="../../component/pear/css/pear.css" />
  10. <link rel="stylesheet" href="../../demos/css/console2.css" />
  11. </head>
  12. <body class="pear-container">
  13. <div class="layui-row layui-col-space10">
  14. <div class="layui-col-md8">
  15. <div class="layui-row layui-col-space10">
  16. <div class="layui-col-md6">
  17. <div class="layui-card">
  18. <div class="layui-card-header">
  19. 快捷菜单
  20. </div>
  21. <div class="layui-card-body">
  22. <div class="layui-row layui-col-space10">
  23. <div class="layui-col-md3 layui-col-sm3 layui-col-xs3">
  24. <div class="pear-card" data-id="home1" data-title="主页" data-url="http://www.baidu.com">
  25. <i class="layui-icon layui-icon-home"></i>
  26. </div>
  27. <span class="pear-card-title">主页</span>
  28. </div>
  29. <div class="layui-col-md3 layui-col-sm3 layui-col-xs3">
  30. <div class="pear-card" data-id="home2" data-title="弹层" data-url="http://www.baidu.com">
  31. <i class="layui-icon layui-icon-camera"></i>
  32. </div>
  33. <span class="pear-card-title">弹层</span>
  34. </div>
  35. <div class="layui-col-md3 layui-col-sm3 layui-col-xs3">
  36. <div class="pear-card" data-id="home2" data-title="聊天" data-url="http://www.baidu.com">
  37. <i class="layui-icon layui-icon-star"></i>
  38. </div>
  39. <span class="pear-card-title">聊天</span>
  40. </div>
  41. <div class="layui-col-md3 layui-col-sm3 layui-col-xs3">
  42. <div class="pear-card" data-id="home3" data-title="相机" data-url="http://www.baidu.com">
  43. <i class="layui-icon layui-icon-camera"></i>
  44. </div>
  45. <span class="pear-card-title">相机</span>
  46. </div>
  47. <div class="layui-col-md3 layui-col-sm3 layui-col-xs3">
  48. <div class="pear-card" data-id="home4" data-title="表单" data-url="http://www.baidu.com">
  49. <i class="layui-icon layui-icon-console"></i>
  50. </div>
  51. <span class="pear-card-title">表单</span>
  52. </div>
  53. <div class="layui-col-md3 layui-col-sm3 layui-col-xs3">
  54. <div class="pear-card" data-id="home5" data-title="安全" data-url="http://www.baidu.com">
  55. <i class="layui-icon layui-icon-auz"></i>
  56. </div>
  57. <span class="pear-card-title">安全</span>
  58. </div>
  59. <div class="layui-col-md3 layui-col-sm3 layui-col-xs3">
  60. <div class="pear-card" data-id="home6" data-title="公告" data-url="http://www.baidu.com">
  61. <i class="layui-icon layui-icon-cart"></i>
  62. </div>
  63. <span class="pear-card-title">公告</span>
  64. </div>
  65. <div class="layui-col-md3 layui-col-sm3 layui-col-xs3">
  66. <div class="pear-card" data-id="home7" data-title="更多" data-url="http://www.baidu.com">
  67. <i class="layui-icon layui-icon-app"></i>
  68. </div>
  69. <span class="pear-card-title">更多</span>
  70. </div>
  71. </div>
  72. </div>
  73. </div>
  74. </div>
  75. <div class="layui-col-md6">
  76. <div class="layui-card">
  77. <div class="layui-card-header">
  78. 代办任务
  79. </div>
  80. <div class="layui-card-body">
  81. <div class="layui-row layui-col-space10">
  82. <div class="layui-col-md6 layui-col-sm6 layui-col-xs6">
  83. <div class="pear-card2">
  84. <div class="title">待审评论</div>
  85. <div class="count pear-text">21</div>
  86. </div>
  87. </div>
  88. <div class="layui-col-md6 layui-col-sm6 layui-col-xs6">
  89. <div class="pear-card2">
  90. <div class="title">待审帖子</div>
  91. <div class="count pear-text">32</div>
  92. </div>
  93. </div>
  94. <div class="layui-col-md6 layui-col-sm6 layui-col-xs6">
  95. <div class="pear-card2">
  96. <div class="title">待审文章</div>
  97. <div class="count pear-text">14</div>
  98. </div>
  99. </div>
  100. <div class="layui-col-md6 layui-col-sm6 layui-col-xs6">
  101. <div class="pear-card2">
  102. <div class="title">待审用户</div>
  103. <div class="count pear-text">63</div>
  104. </div>
  105. </div>
  106. </div>
  107. </div>
  108. </div>
  109. </div>
  110. <div class="layui-col-md12">
  111. <div class="layui-card">
  112. <div class="layui-card-body">
  113. <div class="layui-tab custom-tab layui-tab-brief" lay-filter="docDemoTabBrief">
  114. <div id="echarts-records" style="background-color:#ffffff;min-height:400px;"></div>
  115. </div>
  116. </div>
  117. </div>
  118. <div class="layui-card">
  119. <div class="layui-card-header">
  120. 使用记录
  121. </div>
  122. <div class="layui-card-body">
  123. <table id="role-table" lay-filter="role-table"></table>
  124. </div>
  125. </div>
  126. </div>
  127. </div>
  128. </div>
  129. <div class="layui-col-md4">
  130. <div class="layui-card">
  131. <div class="layui-card-header">留言板</div>
  132. <div class="layui-card-body">
  133. <ul class="pear-card-status">
  134. <li>
  135. <p>要不要作为我的家人,搬来我家。</p>
  136. <span>12月25日 19:92</span>
  137. <a href="javascript:;" data-id="1" class="pear-btn pear-btn-primary pear-btn-xs pear-reply">回复</a>
  138. </li>
  139. <li>
  140. <p>快乐的时候不敢尽兴,频繁警戒自己保持清醒。</p>
  141. <span>4月30日 22:43</span>
  142. <a href="javascript:;" data-id="1" class="pear-btn pear-btn-primary pear-btn-xs pear-reply">回复</a>
  143. </li>
  144. <li>
  145. <p>夏天真的来了,尽管它还有些犹豫。</p>
  146. <span>4月30日 22:43</span>
  147. <a href="javascript:;" data-id="1" class="pear-btn pear-btn-primary pear-btn-xs pear-reply">回复</a>
  148. </li>
  149. <li>
  150. <p>看似不可达到的高度,只要坚持不懈就可能到达。</p>
  151. <span>4月30日 22:43</span>
  152. <a href="javascript:;" data-id="1" class="pear-btn pear-btn-primary pear-btn-xs pear-reply">回复</a>
  153. </li>
  154. <li>
  155. <p>当浑浊变成了一种常态,那么清白就成了一种罪过。</p>
  156. <span>4月30日 22:43</span>
  157. <a href="javascript:;" data-id="1" class="pear-btn pear-btn-primary pear-btn-xs pear-reply">回复</a>
  158. </li>
  159. <li>
  160. <p>那是一种内在的东西,他们到达不了,也无法触及!</p>
  161. <span>5月12日 01:25</span>
  162. <a href="javascript:;" data-id="1" class="pear-btn pear-btn-primary pear-btn-xs pear-reply">回复</a>
  163. </li>
  164. </li>
  165. <li>
  166. <p>希望是一个好东西,也许是最好的,好东西是不会消亡的!</p>
  167. <span>6月11日 15:33</span>
  168. <a href="javascript:;" data-id="1" class="pear-btn pear-btn-primary pear-btn-xs pear-reply">回复</a>
  169. </li>
  170. <li>
  171. <p>一切都在不可避免的走向庸俗。</p>
  172. <span>2月09日 13:40</span>
  173. <a href="javascript:;" data-id="1" class="pear-btn pear-btn-primary pear-btn-xs pear-reply">回复</a>
  174. </li>
  175. <li>
  176. <p>路上没有灯火的时候,就点亮自己的头颅。</p>
  177. <span>3月11日 12:30</span>
  178. <a href="javascript:;" data-id="1" class="pear-btn pear-btn-primary pear-btn-xs pear-reply">回复</a>
  179. </li>
  180. <li>
  181. <p>我们应该不虚度一生,应该能够说:"我已经做了我能做的事。"</p>
  182. <span>4月30日 22:43</span>
  183. <a href="javascript:;" data-id="1" class="pear-btn pear-btn-primary pear-btn-xs pear-reply">回复</a>
  184. </li>
  185. </li>
  186. <li>
  187. <p>接近,是我对一切的态度,是我对一切态度的距离</p>
  188. <span>6月11日 15:33</span>
  189. <a href="javascript:;" data-id="1" class="pear-btn pear-btn-primary pear-btn-xs pear-reply">回复</a>
  190. </li>
  191. <li>
  192. <p>没有锚的船当然也可以航行,只是紧张充满你的一生。</p>
  193. <span>2月09日 13:40</span>
  194. <a href="javascript:;" data-id="1" class="pear-btn pear-btn-primary pear-btn-xs pear-reply">回复</a>
  195. </li>
  196. </ul>
  197. </div>
  198. </div>
  199. </div>
  200. </div>
  201. <!--</div>-->
  202. <script src="../../component/layui/layui.js"></script>
  203. <script src="../../component/pear/pear.js"></script>
  204. <script>
  205. layui.use(['layer', 'echarts', 'carousel', 'element', 'table'], function() {
  206. var $ = layui.jquery,
  207. layer = layui.layer,
  208. element = layui.element,
  209. echarts = layui.echarts,
  210. table = layui.table,
  211. carousel = layui.carousel;
  212. let cols = [
  213. [{
  214. type: 'checkbox'
  215. },
  216. {
  217. title: '角色名',
  218. field: 'roleName',
  219. align: 'center',
  220. width: 100
  221. },
  222. {
  223. title: 'Key值',
  224. field: 'roleCode',
  225. align: 'center'
  226. },
  227. {
  228. title: '描述',
  229. field: 'details',
  230. align: 'center'
  231. },
  232. {
  233. title: '是否可用',
  234. field: 'enable',
  235. align: 'center',
  236. templet: '#role-enable'
  237. }
  238. ]
  239. ]
  240. table.render({
  241. elem: '#role-table',
  242. url: '../../demos/data/role.json',
  243. page: true,
  244. cols: cols,
  245. skin: 'line'
  246. });
  247. var echartsRecords = echarts.init(document.getElementById('echarts-records'), 'walden');
  248. $("body").on("click", "[data-url]", function() {
  249. parent.layui.tab.addTabOnlyByElem("content", {
  250. id: $(this).attr("data-id"),
  251. title: $(this).attr("data-title"),
  252. url: $(this).attr("data-url"),
  253. close: true
  254. })
  255. })
  256. let bgColor = "#fff";
  257. let color = [
  258. "#0090FF",
  259. "#36CE9E",
  260. "#FFC005",
  261. "#FF515A",
  262. "#8B5CFF",
  263. "#00CA69"
  264. ];
  265. let echartData = [{
  266. name: "1",
  267. value1: 100,
  268. value2: 233
  269. },
  270. {
  271. name: "2",
  272. value1: 138,
  273. value2: 233
  274. },
  275. {
  276. name: "3",
  277. value1: 350,
  278. value2: 200
  279. },
  280. {
  281. name: "4",
  282. value1: 173,
  283. value2: 180
  284. },
  285. {
  286. name: "5",
  287. value1: 180,
  288. value2: 199
  289. },
  290. {
  291. name: "6",
  292. value1: 150,
  293. value2: 233
  294. },
  295. {
  296. name: "7",
  297. value1: 180,
  298. value2: 210
  299. },
  300. {
  301. name: "8",
  302. value1: 230,
  303. value2: 180
  304. }
  305. ];
  306. let xAxisData = echartData.map(v => v.name);
  307. //  ["1", "2", "3", "4", "5", "6", "7", "8"]
  308. let yAxisData1 = echartData.map(v => v.value1);
  309. // [100, 138, 350, 173, 180, 150, 180, 230]
  310. let yAxisData2 = echartData.map(v => v.value2);
  311. // [233, 233, 200, 180, 199, 233, 210, 180]
  312. const hexToRgba = (hex, opacity) => {
  313. let rgbaColor = "";
  314. let reg = /^#[\da-f]{6}$/i;
  315. if (reg.test(hex)) {
  316. rgbaColor =
  317. `rgba(${parseInt("0x" + hex.slice(1, 3))},${parseInt(
  318. "0x" + hex.slice(3, 5)
  319. )},${parseInt("0x" + hex.slice(5, 7))},${opacity})`;
  320. }
  321. return rgbaColor;
  322. }
  323. option = {
  324. backgroundColor: bgColor,
  325. color: color,
  326. legend: {
  327. right: 10,
  328. top: 10
  329. },
  330. tooltip: {
  331. trigger: "axis",
  332. formatter: function(params) {
  333. let html = '';
  334. params.forEach(v => {
  335. console.log(v)
  336. html +=
  337. `<div style="color: #666;font-size: 14px;line-height: 24px">
  338. <span style="display:inline-block;margin-right:5px;border-radius:10px;width:10px;height:10px;background-color:${color[v.componentIndex]};"></span>
  339. ${v.seriesName}.${v.name}
  340. <span style="color:${color[v.componentIndex]};font-weight:700;font-size: 18px">${v.value}</span>
  341. 万元`;
  342. })
  343. return html
  344. },
  345. extraCssText: 'background: #fff; border-radius: 0;box-shadow: 0 0 3px rgba(0, 0, 0, 0.2);color: #333;',
  346. axisPointer: {
  347. type: 'shadow',
  348. shadowStyle: {
  349. color: '#ffffff',
  350. shadowColor: 'rgba(225,225,225,1)',
  351. shadowBlur: 5
  352. }
  353. }
  354. },
  355. grid: {
  356. top: 100,
  357. containLabel: true
  358. },
  359. xAxis: [{
  360. type: "category",
  361. boundaryGap: false,
  362. axisLabel: {
  363. formatter: '{value}月',
  364. textStyle: {
  365. color: "#333"
  366. }
  367. },
  368. axisLine: {
  369. lineStyle: {
  370. color: "#D9D9D9"
  371. }
  372. },
  373. data: xAxisData
  374. }],
  375. yAxis: [{
  376. type: "value",
  377. name: '单位:万千瓦时',
  378. axisLabel: {
  379. textStyle: {
  380. color: "#666"
  381. }
  382. },
  383. nameTextStyle: {
  384. color: "#666",
  385. fontSize: 12,
  386. lineHeight: 40
  387. },
  388. splitLine: {
  389. lineStyle: {
  390. type: "dashed",
  391. color: "#E9E9E9"
  392. }
  393. },
  394. axisLine: {
  395. show: false
  396. },
  397. axisTick: {
  398. show: false
  399. }
  400. }],
  401. series: [{
  402. name: "2018",
  403. type: "line",
  404. smooth: true,
  405. // showSymbol: false,/
  406. symbolSize: 8,
  407. zlevel: 3,
  408. lineStyle: {
  409. normal: {
  410. color: color[0],
  411. shadowBlur: 3,
  412. shadowColor: hexToRgba(color[0], 0.5),
  413. shadowOffsetY: 8
  414. }
  415. },
  416. areaStyle: {
  417. normal: {
  418. color: new echarts.graphic.LinearGradient(
  419. 0,
  420. 0,
  421. 0,
  422. 1,
  423. [{
  424. offset: 0,
  425. color: hexToRgba(color[0], 0.3)
  426. },
  427. {
  428. offset: 1,
  429. color: hexToRgba(color[0], 0.1)
  430. }
  431. ],
  432. false
  433. ),
  434. shadowColor: hexToRgba(color[0], 0.1),
  435. shadowBlur: 10
  436. }
  437. },
  438. data: yAxisData1
  439. }, {
  440. name: "2019",
  441. type: "line",
  442. smooth: true,
  443. // showSymbol: false,
  444. symbolSize: 8,
  445. zlevel: 3,
  446. lineStyle: {
  447. normal: {
  448. color: color[1],
  449. shadowBlur: 3,
  450. shadowColor: hexToRgba(color[1], 0.5),
  451. shadowOffsetY: 8
  452. }
  453. },
  454. areaStyle: {
  455. normal: {
  456. color: new echarts.graphic.LinearGradient(
  457. 0,
  458. 0,
  459. 0,
  460. 1,
  461. [{
  462. offset: 0,
  463. color: hexToRgba(color[1], 0.3)
  464. },
  465. {
  466. offset: 1,
  467. color: hexToRgba(color[1], 0.1)
  468. }
  469. ],
  470. false
  471. ),
  472. shadowColor: hexToRgba(color[1], 0.1),
  473. shadowBlur: 10
  474. }
  475. },
  476. data: yAxisData2
  477. }]
  478. };
  479. echartsRecords.setOption(option);
  480. window.onresize = function() {
  481. echartsRecords.resize();
  482. }
  483. });
  484. </script>
  485. </body>
  486. </html>