dashboard.blade.php 36 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071
  1. @extends('admin/layout')
  2. @section('header_extend')
  3. <style>
  4. .btn-info {
  5. padding: 0 10px !important;
  6. line-height: 25px !important;
  7. border: none !important;
  8. margin: 0 !important;
  9. }
  10. .float-e-margins .btn {
  11. }
  12. .singles-boxs .lis-boxs {
  13. display: block;
  14. width: 100%;
  15. background: #fff;
  16. border-radius: 6px;
  17. overflow: hidden;
  18. }
  19. .singles-boxs .titles-boxs {
  20. display: block;
  21. width: 100%;
  22. background: #2a94e0;
  23. padding: 0 9%;
  24. }
  25. .singles-boxs .titles-boxs img {
  26. margin-right: 8px;
  27. }
  28. .singles-boxs .titles-a {
  29. display: block;
  30. width: 100%;
  31. position: relative;
  32. }
  33. .singles-boxs .times {
  34. display: block;
  35. line-height: 22px;
  36. background: #fff;
  37. padding: 0 8px;
  38. border-radius: 4px;
  39. position: absolute;
  40. right: 0;
  41. top: 10px;
  42. }
  43. </style>
  44. @endsection
  45. @section('content')
  46. <style>
  47. .singles-boxs {
  48. font-family: 微软雅黑;
  49. }
  50. .singles-boxs * {
  51. font-family: 微软雅黑;
  52. }
  53. .singles-boxs .lis-boxs {
  54. display: block;
  55. width: 100%;
  56. background: #fff;
  57. border-radius: 6px;
  58. overflow: hidden;
  59. margin-bottom: 25px;
  60. }
  61. .singles-boxs .titles-boxs {
  62. display: block;
  63. width: 100%;
  64. background: #2a94e0;
  65. padding: 0 9%;
  66. }
  67. .singles-boxs .titles-boxs img {
  68. margin-right: 6px;
  69. }
  70. .singles-boxs .titles-a {
  71. display: block;
  72. width: 100%;
  73. position: relative;
  74. color: #fff;
  75. font-size: 14px;
  76. line-height: 24px;
  77. padding: 10px 0;
  78. white-space: nowrap;
  79. }
  80. .singles-boxs .lis-boxs.active {
  81. background: none;
  82. }
  83. .singles-boxs .lis-boxs.active .titles-boxs {
  84. padding: 15px 8%;
  85. border-radius: 6px;
  86. }
  87. .singles-boxs .lis-boxs .titles-boxs .span {
  88. font-size: 20px;
  89. color: #fff;
  90. line-height: 24px;
  91. position: absolute;
  92. right: 18px;
  93. top: 10px;
  94. }
  95. .singles-boxs .lis-boxs.active .titles-boxs + .titles-boxs {
  96. margin-top: 5px;
  97. }
  98. .singles-boxs .boxs {
  99. padding: 0px 0px 12px;
  100. overflow: hidden;
  101. }
  102. .singles-boxs .times {
  103. display: block;
  104. line-height: 22px;
  105. background: #fff;
  106. padding: 0 8px;
  107. border-radius: 4px;
  108. position: absolute;
  109. right: 0;
  110. top: 10px;
  111. color: #2a94e0;
  112. font-size: 14px;
  113. }
  114. .singles-boxs .times.ons {
  115. font-size: 12px;
  116. padding: 0 4px;
  117. }
  118. .singles-boxs .numbers {
  119. font-size: 20px;
  120. line-height: 34px;
  121. text-align: center;
  122. color: #2a93e0;
  123. margin-top: 8px;
  124. }
  125. .singles-boxs .numbers .n-span {
  126. display: inline-block;
  127. font-size: 12px;
  128. color: #2a93e0;
  129. line-height: 16px;
  130. vertical-align: top;
  131. margin-top: 11px;
  132. margin-left: -7px;
  133. }
  134. .singles-boxs .lists {
  135. display: block;
  136. width: 100%;
  137. padding: 0 15%;
  138. overflow: hidden;
  139. }
  140. .singles-boxs .lists.active {
  141. margin-top: 8px;
  142. padding: 3px 15%;
  143. }
  144. .singles-boxs .lists.active .lists-lefts {
  145. color: #2a93e0;
  146. }
  147. .singles-boxs .lists.active .lists-rights {
  148. color: #2a93e0;
  149. background: none;
  150. }
  151. .singles-boxs .lists-lefts {
  152. float: left;
  153. font-size: 14px;
  154. color: #646464;
  155. line-height: 28px;
  156. }
  157. .singles-boxs .lists-rights {
  158. float: right;
  159. font-size: 14px;
  160. color: #f21919;
  161. line-height: 28px;
  162. padding-right: 15px;
  163. background: url(/img/kzt-top-img.png) no-repeat right 8px;
  164. }
  165. .singles-boxs .lists-rights.ons {
  166. color: #00b91a;
  167. background: url(/img/kzt-down-img.png) no-repeat right 8px;
  168. }
  169. .singles-boxs .lists-rights.onss {
  170. background: none;
  171. }
  172. @media (max-width: 1680px) {
  173. .singles-boxs .col-sm-2 {
  174. width: 25%;
  175. }
  176. }
  177. @media (max-width: 1024px) {
  178. .singles-boxs .col-sm-2 {
  179. width: 33.3333%;
  180. }
  181. }
  182. @media (max-width: 768px) {
  183. .singles-boxs .col-sm-2 {
  184. width: 50%;
  185. float: left;
  186. }
  187. }
  188. @media (max-width: 640px) {
  189. .singles-boxs .col-sm-2 {
  190. width: 100%;
  191. }
  192. }
  193. </style>
  194. <body class="gray-bg">
  195. @php
  196. $last1M=date('n',strtotime('first day of -1 month'));
  197. $last2M=date('n',strtotime('first day of -2 month'));
  198. $last3M=date('n',strtotime('first day of -3 month'));
  199. @endphp
  200. <div class="wrapper wrapper-content">
  201. <div class="singles-boxs">
  202. <div class="row">
  203. <div class="col-sm-3">
  204. <div class="lis-boxs">
  205. <div class="titles-boxs">
  206. <div class="titles-a">
  207. <img src="/img/kzt-img-01.png" alt="">
  208. 竞价项目个数
  209. <button class="times" style="border:none" onclick="units.details(0,'竞价项目个数')">
  210. 总数 : {{$totalPpc}}
  211. </button>
  212. </div>
  213. </div>
  214. <div class="col-sm-16">
  215. <div class="ibox float-e-margins">
  216. <div class="ibox-title" style="border-style: none">
  217. <h5>三个月内竞价项目个数</h5>
  218. </div>
  219. <div class="ibox-content">
  220. <div id="ppcDiff" style="width: 100%;height: 300px;"></div>
  221. </div>
  222. </div>
  223. </div>
  224. </div>
  225. </div>
  226. <div class="col-sm-3">
  227. <div class="lis-boxs">
  228. <div class="titles-boxs">
  229. <div class="titles-a">
  230. <img src="/img/kzt-img-02.png" alt="">
  231. 已投放个数
  232. <button class="times" style="border:none" onclick="units.details(1,'已投放个数')">
  233. 总数 :{{$totalRedPpc}}
  234. </button>
  235. </div>
  236. </div>
  237. <div class="col-sm-16">
  238. <div class="ibox float-e-margins">
  239. <div class="ibox-title" style="border-style: none">
  240. <h5>三个月内已投放个数</h5>
  241. </div>
  242. <div class="ibox-content">
  243. <div id="redPpcDiff" style="width: 100%;height: 300px;"></div>
  244. </div>
  245. </div>
  246. </div>
  247. </div>
  248. </div>
  249. <div class="col-sm-3">
  250. <div class="lis-boxs">
  251. <div class="titles-boxs">
  252. <div class="titles-a">
  253. <img src="/img/kzt-img-02.png" alt="">
  254. 待投放个数
  255. <button class="times" style="border:none" onclick="units.details(2,'待投放个数')">
  256. 总数 :{{$totalGrayPpc}}
  257. </button>
  258. </div>
  259. </div>
  260. <div class="col-sm-16">
  261. <div class="ibox float-e-margins">
  262. <div class="ibox-title" style="border-style: none">
  263. <h5>三个月内待投放个数</h5>
  264. </div>
  265. <div class="ibox-content">
  266. <div id="grayPpcDiff" style="width: 100%;height: 300px;"></div>
  267. </div>
  268. </div>
  269. </div>
  270. </div>
  271. </div>
  272. <div class="col-sm-3">
  273. <div class="lis-boxs">
  274. <div class="titles-boxs">
  275. <div class="titles-a">
  276. <img src="/img/kzt-img-02.png" alt="">
  277. 已暂停个数
  278. <button class="times" style="border:none" onclick="units.details(3,'已暂停个数')">
  279. 总数 :{{$totalLineRedPpc}}
  280. </button>
  281. </div>
  282. </div>
  283. <div class="col-sm-16">
  284. <div class="ibox float-e-margins">
  285. <div class="ibox-title" style="border-style: none">
  286. <h5>三个月内已经暂停个数</h5>
  287. </div>
  288. <div class="ibox-content">
  289. <div id="lineRedPpcDiff" style="width: 100%;height: 300px;"></div>
  290. </div>
  291. </div>
  292. </div>
  293. </div>
  294. </div>
  295. <div class="col-sm-3">
  296. <div class="lis-boxs">
  297. <div class="titles-boxs">
  298. <div class="titles-a">
  299. <img src="/img/kzt-img-02.png" alt="">
  300. 已续费个数
  301. <button class="times" style="border:none" onclick="units.details(4,'已续费个数')">
  302. 总数 :{{$totalRenewalNum}}
  303. </button>
  304. </div>
  305. </div>
  306. <div class="col-sm-16">
  307. <div class="ibox float-e-margins">
  308. <div class="ibox-title" style="border-style: none">
  309. <h5>三个月内已续费个数</h5>
  310. </div>
  311. <div class="ibox-content">
  312. <div id="renewalNumDiff" style="width: 100%;height: 300px;"></div>
  313. </div>
  314. </div>
  315. </div>
  316. </div>
  317. </div>
  318. <div class="col-sm-3">
  319. <div class="lis-boxs">
  320. <div class="titles-boxs">
  321. <div class="titles-a">
  322. <img src="/img/kzt-img-02.png" alt="">
  323. 续费率
  324. <span class="times">
  325. {{$totalRenewalRate}}
  326. </span>
  327. </div>
  328. </div>
  329. <div class="col-sm-16">
  330. <div class="ibox float-e-margins">
  331. <div class="ibox-title" style="border-style: none">
  332. <h5>三个月内续费率</h5>
  333. </div>
  334. <div class="ibox-content">
  335. <div id="renewalRateDiff" style="width: 100%;height: 300px;"></div>
  336. </div>
  337. </div>
  338. </div>
  339. </div>
  340. </div>
  341. <div class="col-sm-3">
  342. <div class="lis-boxs">
  343. <div class="titles-boxs">
  344. <div class="titles-a">
  345. <img src="/img/kzt-img-02.png" alt="">
  346. 竞价金额
  347. <span class="times">
  348. 总数 :{{$totalTotalFee}}
  349. </span>
  350. </div>
  351. </div>
  352. <div class="col-sm-16">
  353. <div class="ibox float-e-margins">
  354. <div class="ibox-title" style="border-style: none">
  355. <h5>三个月内总费用</h5>
  356. </div>
  357. <div class="ibox-content">
  358. <div id="totalFeeDiff" style="width: 100%;height: 300px;"></div>
  359. </div>
  360. </div>
  361. </div>
  362. </div>
  363. </div>
  364. <div class="col-sm-3">
  365. <div class="lis-boxs">
  366. <div class="titles-boxs">
  367. <div class="titles-a">
  368. <img src="/img/kzt-img-02.png" alt="">
  369. 续费金额
  370. <span class="times">
  371. 总数 : {{$totalAvgScore}}
  372. </span>
  373. </div>
  374. </div>
  375. <div class="col-sm-16">
  376. <div class="ibox float-e-margins">
  377. <div class="ibox-title" style="border-style: none">
  378. <h5>三个月内续费金额</h5>
  379. </div>
  380. <div class="ibox-content">
  381. <div id="avgScoreDiff" style="width: 100%;height: 300px;"></div>
  382. </div>
  383. </div>
  384. </div>
  385. </div>
  386. </div>
  387. </div>
  388. </div>
  389. <div class="row">
  390. <div class="col-sm-6">
  391. <div class="ibox float-e-margins">
  392. <div class="ibox-title" style="border-style: none">
  393. <h5>项目类型饼图</h5>
  394. </div>
  395. <div class="ibox-content">
  396. <div id="siteStatusPie" style="width: 100%;height: 300px;"></div>
  397. </div>
  398. </div>
  399. </div>
  400. <div class="col-sm-6">
  401. <div class="ibox float-e-margins">
  402. <div class="ibox-title" style="border-style: none">
  403. <h5>项目类型趋势图</h5>
  404. </div>
  405. <div class="ibox-content">
  406. <div id="siteStatus" style="width: 100%;height: 300px;"></div>
  407. </div>
  408. </div>
  409. </div>
  410. </div>
  411. </div>
  412. </body>
  413. @endsection
  414. @section('footer')
  415. {{--echarts--}}
  416. <script src="{{asset('js/plugins/echarts/echarts.min.js')}}"></script>
  417. <script src="{{asset('js/plugins/wonderland/wonderland.js?v=1.3')}}"></script>
  418. <script>
  419. /* var units = {
  420. details: function (type) {
  421. // console.log(11)
  422. layer.open({
  423. type: 2,
  424. content: ['/admin/bid/site-list/' + type],
  425. area: ['100%', '80%'],
  426. title: '详情'
  427. });
  428. },
  429. };*/
  430. var units = {
  431. details: function (type, title) {
  432. tips.page('/admin/bid/site-list/'+type, title);
  433. },
  434. };
  435. //项目情况饼图
  436. var siteStatusPieChart = echarts.init(document.getElementById('siteStatusPie'),'wonderland');
  437. var siteStatusPieData = JSON.parse('{!! json_encode($ppcPie['hybrid']) !!}');
  438. var siteStatusPieName = JSON.parse('{!! json_encode($ppcPie['xAxis']) !!}');
  439. var siteStatusPieOption = {
  440. tooltip: {
  441. trigger: 'item',
  442. formatter: "{a} <br/>{b} : {c} ({d}%)"
  443. },
  444. legend: {
  445. orient: 'vertical',
  446. left: 'left',
  447. data: siteStatusPieName
  448. },
  449. series: [
  450. {
  451. name: '访问来源',
  452. type: 'pie',
  453. radius: '55%',
  454. center: ['50%', '60%'],
  455. data: siteStatusPieData,
  456. itemStyle: {
  457. emphasis: {
  458. shadowBlur: 10,
  459. shadowOffsetX: 0,
  460. shadowColor: 'rgba(0, 0, 0, 0.5)'
  461. }
  462. }
  463. }
  464. ]
  465. };
  466. siteStatusPieChart.setOption(siteStatusPieOption);
  467. // 项目情况折线图
  468. var siteStatusLineChart = echarts.init(document.getElementById('siteStatus'),'wonderland');
  469. var siteStatusLineXAxis = JSON.parse('{!! json_encode($feeLine['xAxis']) !!}');
  470. var siteStatusLineYAix = JSON.parse('{!! json_encode($feeLine['yAxis']) !!}');
  471. var siteStatusLineOption = {
  472. tooltip: {
  473. trigger: 'axis',
  474. axisPointer: {
  475. type: 'cross',
  476. crossStyle: {
  477. color: '#999'
  478. }
  479. }
  480. },
  481. /* toolbox: {
  482. feature: {
  483. dataView: {show: true, readOnly: false},
  484. magicType: {show: true, type: ['bar', 'pie']},
  485. restore: {show: true},
  486. saveAsImage: {show: true}
  487. }
  488. },*/
  489. legend: {
  490. data: ['充值金额']
  491. },
  492. xAxis: [
  493. {
  494. type: 'category',
  495. data: siteStatusLineXAxis,
  496. axisPointer: {
  497. type: 'shadow'
  498. },
  499. splitLine: {
  500. show: false
  501. }
  502. }
  503. ],
  504. yAxis: [
  505. {
  506. type: 'value',
  507. name: '',
  508. min: 0,
  509. axisLabel: {
  510. formatter: '{value}'
  511. },
  512. axisLine: {
  513. show: false //隐藏Y轴
  514. }
  515. }
  516. ],
  517. series: [
  518. {
  519. name: '充值金额',
  520. type: 'line',
  521. data: siteStatusLineYAix
  522. }
  523. ]
  524. };
  525. siteStatusLineChart.setOption(siteStatusLineOption);
  526. // 项目情况折线图
  527. var ppcDiffLineChart = echarts.init(document.getElementById('ppcDiff'),'wonderland');
  528. var ppcDiffLineXAxis = JSON.parse('{!! json_encode($ppcDiff['xAxis']) !!}');
  529. var ppcDiffLineYAix = JSON.parse('{!! json_encode($ppcDiff['yAxis']) !!}');
  530. var ppcDiffLineOption = {
  531. tooltip: {
  532. trigger: 'axis',
  533. axisPointer: {
  534. type: 'cross',
  535. crossStyle: {
  536. color: '#999'
  537. }
  538. }
  539. },
  540. /* toolbox: {
  541. feature: {
  542. dataView: {show: true, readOnly: false},
  543. magicType: {show: true, type: ['bar', 'pie']},
  544. restore: {show: true},
  545. saveAsImage: {show: true}
  546. }
  547. },*/
  548. legend: {
  549. data: ['项目数']
  550. },
  551. xAxis: [
  552. {
  553. type: 'category',
  554. data: ppcDiffLineXAxis,
  555. axisPointer: {
  556. type: 'shadow'
  557. },
  558. splitLine: {
  559. show: false
  560. }
  561. }
  562. ],
  563. yAxis: [
  564. {
  565. type: 'value',
  566. name: '',
  567. min: 0,
  568. axisLabel: {
  569. formatter: '{value}'
  570. },
  571. axisLine: {
  572. show: false //隐藏Y轴
  573. }
  574. }
  575. ],
  576. series: [
  577. {
  578. name: '项目数',
  579. type: 'line',
  580. data: ppcDiffLineYAix
  581. }
  582. ]
  583. };
  584. ppcDiffLineChart.setOption(ppcDiffLineOption);
  585. // 项目情况折线图
  586. var redPpcDiffLineChart = echarts.init(document.getElementById('redPpcDiff'),'wonderland');
  587. var redPpcDiffLineXAxis = JSON.parse('{!! json_encode($redPpcDiff['xAxis']) !!}');
  588. var redPpcDiffLineYAix = JSON.parse('{!! json_encode($redPpcDiff['yAxis']) !!}');
  589. var redPpcDiffLineOption = {
  590. tooltip: {
  591. trigger: 'axis',
  592. axisPointer: {
  593. type: 'cross',
  594. crossStyle: {
  595. color: '#999'
  596. }
  597. }
  598. },
  599. /* toolbox: {
  600. feature: {
  601. dataView: {show: true, readOnly: false},
  602. magicType: {show: true, type: ['bar', 'pie']},
  603. restore: {show: true},
  604. saveAsImage: {show: true}
  605. }
  606. },*/
  607. legend: {
  608. data: ['投放数']
  609. },
  610. xAxis: [
  611. {
  612. type: 'category',
  613. data: redPpcDiffLineXAxis,
  614. axisPointer: {
  615. type: 'shadow'
  616. },
  617. splitLine: {
  618. show: false
  619. }
  620. }
  621. ],
  622. yAxis: [
  623. {
  624. type: 'value',
  625. name: '',
  626. min: 0,
  627. axisLabel: {
  628. formatter: '{value}'
  629. },
  630. axisLine: {
  631. show: false //隐藏Y轴
  632. }
  633. }
  634. ],
  635. series: [
  636. {
  637. name: '投放数',
  638. type: 'line',
  639. data: redPpcDiffLineYAix
  640. }
  641. ]
  642. };
  643. redPpcDiffLineChart.setOption(redPpcDiffLineOption);
  644. // 项目情况折线图
  645. var grayPpcDiffLineChart = echarts.init(document.getElementById('grayPpcDiff'),'wonderland');
  646. var grayPpcDiffLineXAxis = JSON.parse('{!! json_encode($grayPpcDiff['xAxis']) !!}');
  647. var grayPpcDiffLineYAix = JSON.parse('{!! json_encode($grayPpcDiff['yAxis']) !!}');
  648. var grayPpcDiffLineOption = {
  649. tooltip: {
  650. trigger: 'axis',
  651. axisPointer: {
  652. type: 'cross',
  653. crossStyle: {
  654. color: '#999'
  655. }
  656. }
  657. },
  658. /* toolbox: {
  659. feature: {
  660. dataView: {show: true, readOnly: false},
  661. magicType: {show: true, type: ['bar', 'pie']},
  662. restore: {show: true},
  663. saveAsImage: {show: true}
  664. }
  665. },*/
  666. legend: {
  667. data: ['待投放数']
  668. },
  669. xAxis: [
  670. {
  671. type: 'category',
  672. data: grayPpcDiffLineXAxis,
  673. axisPointer: {
  674. type: 'shadow'
  675. },
  676. splitLine: {
  677. show: false
  678. }
  679. }
  680. ],
  681. yAxis: [
  682. {
  683. type: 'value',
  684. name: '',
  685. min: 0,
  686. axisLabel: {
  687. formatter: '{value}'
  688. },
  689. axisLine: {
  690. show: false //隐藏Y轴
  691. }
  692. }
  693. ],
  694. series: [
  695. {
  696. name: '待投放数',
  697. type: 'line',
  698. data: grayPpcDiffLineYAix
  699. }
  700. ]
  701. };
  702. grayPpcDiffLineChart.setOption(grayPpcDiffLineOption);
  703. // 项目情况折线图
  704. var lineRedPpcDiffLineChart = echarts.init(document.getElementById('lineRedPpcDiff'),'wonderland');
  705. var lineRedPpcDiffLineXAxis = JSON.parse('{!! json_encode($lineRedPpcDiff['xAxis']) !!}');
  706. var lineRedPpcDiffLineYAix = JSON.parse('{!! json_encode($lineRedPpcDiff['yAxis']) !!}');
  707. var lineRedPpcDiffLineOption = {
  708. tooltip: {
  709. trigger: 'axis',
  710. axisPointer: {
  711. type: 'cross',
  712. crossStyle: {
  713. color: '#999'
  714. }
  715. }
  716. },
  717. /* toolbox: {
  718. feature: {
  719. dataView: {show: true, readOnly: false},
  720. magicType: {show: true, type: ['bar', 'pie']},
  721. restore: {show: true},
  722. saveAsImage: {show: true}
  723. }
  724. },*/
  725. legend: {
  726. data: ['项目暂停数']
  727. },
  728. xAxis: [
  729. {
  730. type: 'category',
  731. data: lineRedPpcDiffLineXAxis,
  732. axisPointer: {
  733. type: 'shadow'
  734. },
  735. splitLine: {
  736. show: false
  737. }
  738. }
  739. ],
  740. yAxis: [
  741. {
  742. type: 'value',
  743. name: '',
  744. min: 0,
  745. axisLabel: {
  746. formatter: '{value}'
  747. },
  748. axisLine: {
  749. show: false //隐藏Y轴
  750. }
  751. }
  752. ],
  753. series: [
  754. {
  755. name: '项目暂停数',
  756. type: 'line',
  757. data: lineRedPpcDiffLineYAix
  758. }
  759. ]
  760. };
  761. lineRedPpcDiffLineChart.setOption(lineRedPpcDiffLineOption);
  762. // 项目情况折线图
  763. var renewalNumDiffLineChart = echarts.init(document.getElementById('renewalNumDiff'),'wonderland');
  764. var renewalNumDiffLineXAxis = JSON.parse('{!! json_encode($renewalNumDiff['xAxis']) !!}');
  765. var renewalNumDiffLineYAix = JSON.parse('{!! json_encode($renewalNumDiff['yAxis']) !!}');
  766. var renewalNumDiffLineOption = {
  767. tooltip: {
  768. trigger: 'axis',
  769. axisPointer: {
  770. type: 'cross',
  771. crossStyle: {
  772. color: '#999'
  773. }
  774. }
  775. },
  776. /* toolbox: {
  777. feature: {
  778. dataView: {show: true, readOnly: false},
  779. magicType: {show: true, type: ['bar', 'pie']},
  780. restore: {show: true},
  781. saveAsImage: {show: true}
  782. }
  783. },*/
  784. legend: {
  785. data: ['续费项目个数']
  786. },
  787. xAxis: [
  788. {
  789. type: 'category',
  790. data: renewalNumDiffLineXAxis,
  791. axisPointer: {
  792. type: 'shadow'
  793. },
  794. splitLine: {
  795. show: false
  796. }
  797. }
  798. ],
  799. yAxis: [
  800. {
  801. type: 'value',
  802. name: '',
  803. min: 0,
  804. axisLabel: {
  805. formatter: '{value}'
  806. },
  807. axisLine: {
  808. show: false //隐藏Y轴
  809. }
  810. }
  811. ],
  812. series: [
  813. {
  814. name: '续费项目个数',
  815. type: 'line',
  816. data: renewalNumDiffLineYAix
  817. }
  818. ]
  819. };
  820. renewalNumDiffLineChart.setOption(renewalNumDiffLineOption);
  821. // 项目情况折线图
  822. var renewalRateDiffLineChart = echarts.init(document.getElementById('renewalRateDiff'),'wonderland');
  823. var renewalRateDiffLineXAxis = JSON.parse('{!! json_encode($renewalRateDiff['xAxis']) !!}');
  824. var renewalRateDiffLineYAix = JSON.parse('{!! json_encode($renewalRateDiff['yAxis']) !!}');
  825. var renewalRateDiffLineOption = {
  826. tooltip: {
  827. trigger: 'axis',
  828. axisPointer: {
  829. type: 'cross',
  830. crossStyle: {
  831. color: '#999'
  832. }
  833. }
  834. },
  835. /* toolbox: {
  836. feature: {
  837. dataView: {show: true, readOnly: false},
  838. magicType: {show: true, type: ['bar', 'pie']},
  839. restore: {show: true},
  840. saveAsImage: {show: true}
  841. }
  842. },*/
  843. legend: {
  844. data: ['续费率']
  845. },
  846. xAxis: [
  847. {
  848. type: 'category',
  849. data: renewalRateDiffLineXAxis,
  850. axisPointer: {
  851. type: 'shadow'
  852. },
  853. splitLine: {
  854. show: false
  855. }
  856. }
  857. ],
  858. yAxis: [
  859. {
  860. type: 'value',
  861. name: '',
  862. min: 0,
  863. axisLabel: {
  864. formatter: '{value}'
  865. },
  866. axisLine: {
  867. show: false //隐藏Y轴
  868. }
  869. }
  870. ],
  871. series: [
  872. {
  873. name: '续费率',
  874. type: 'line',
  875. data: renewalRateDiffLineYAix
  876. }
  877. ]
  878. };
  879. renewalRateDiffLineChart.setOption(renewalRateDiffLineOption);
  880. // 项目情况折线图
  881. var totalFeeDiffLineChart = echarts.init(document.getElementById('totalFeeDiff'),'wonderland');
  882. var totalFeeDiffLineXAxis = JSON.parse('{!! json_encode($totalFeeDiff['xAxis']) !!}');
  883. var totalFeeDiffLineYAix = JSON.parse('{!! json_encode($totalFeeDiff['yAxis']) !!}');
  884. var totalFeeDiffLineOption = {
  885. tooltip: {
  886. trigger: 'axis',
  887. axisPointer: {
  888. type: 'cross',
  889. crossStyle: {
  890. color: '#999'
  891. }
  892. }
  893. },
  894. /* toolbox: {
  895. feature: {
  896. dataView: {show: true, readOnly: false},
  897. magicType: {show: true, type: ['bar', 'pie']},
  898. restore: {show: true},
  899. saveAsImage: {show: true}
  900. }
  901. },*/
  902. legend: {
  903. data: ['费用']
  904. },
  905. xAxis: [
  906. {
  907. type: 'category',
  908. data: totalFeeDiffLineXAxis,
  909. axisPointer: {
  910. type: 'shadow'
  911. },
  912. splitLine: {
  913. show: false
  914. }
  915. }
  916. ],
  917. yAxis: [
  918. {
  919. type: 'value',
  920. name: '',
  921. min: 0,
  922. axisLabel: {
  923. formatter: '{value}'
  924. },
  925. axisLine: {
  926. show: false //隐藏Y轴
  927. }
  928. }
  929. ],
  930. series: [
  931. {
  932. name: '费用',
  933. type: 'line',
  934. data: totalFeeDiffLineYAix
  935. }
  936. ]
  937. };
  938. totalFeeDiffLineChart.setOption(totalFeeDiffLineOption);
  939. // 项目情况折线图
  940. var avgScoreDiffLineChart = echarts.init(document.getElementById('avgScoreDiff'),'wonderland');
  941. var avgScoreDiffLineXAxis = JSON.parse('{!! json_encode($avgScoreDiff['xAxis']) !!}');
  942. var avgScoreDiffLineYAix = JSON.parse('{!! json_encode($avgScoreDiff['yAxis']) !!}');
  943. var avgScoreDiffLineOption = {
  944. tooltip: {
  945. trigger: 'axis',
  946. axisPointer: {
  947. type: 'cross',
  948. crossStyle: {
  949. color: '#999'
  950. }
  951. }
  952. },
  953. /* toolbox: {
  954. feature: {
  955. dataView: {show: true, readOnly: false},
  956. magicType: {show: true, type: ['bar', 'pie']},
  957. restore: {show: true},
  958. saveAsImage: {show: true}
  959. }
  960. },*/
  961. legend: {
  962. data: ['续费金额']
  963. },
  964. xAxis: [
  965. {
  966. type: 'category',
  967. data: avgScoreDiffLineXAxis,
  968. axisPointer: {
  969. type: 'shadow'
  970. },
  971. splitLine: {
  972. show: false
  973. }
  974. }
  975. ],
  976. yAxis: [
  977. {
  978. type: 'value',
  979. name: '',
  980. min: 0,
  981. axisLabel: {
  982. formatter: '{value}'
  983. },
  984. axisLine: {
  985. show: false //隐藏Y轴
  986. }
  987. }
  988. ],
  989. series: [
  990. {
  991. name: '续费金额',
  992. type: 'line',
  993. data: avgScoreDiffLineYAix
  994. }
  995. ]
  996. };
  997. avgScoreDiffLineChart.setOption(avgScoreDiffLineOption);
  998. </script>
  999. @endsection